用外链技术做视频网站,免费购物的软件,网站开发需要什么,id创建网站运维之 Centos7 防火墙 1.介绍
Linux CentOS 7 防火墙/端口设置#xff1a; 基础概念#xff1a; 防火墙是一种网络安全设备#xff0c;用于监控和控制网络流量#xff0c;以保护计算机系统免受未经授权的访问和恶意攻击。Linux CentOS 7操作系统自带了一个名为iptables的…运维之 Centos7 防火墙 1.介绍
Linux CentOS 7 防火墙/端口设置 基础概念 防火墙是一种网络安全设备用于监控和控制网络流量以保护计算机系统免受未经授权的访问和恶意攻击。Linux CentOS 7操作系统自带了一个名为iptables的防火墙工具用于配置和管理网络流量。
优势
1. 提供网络安全防火墙可以限制网络流量阻止未经授权的访问和恶意攻击提高系统的安全性。
2. 灵活性iptables工具提供了丰富的配置选项可以根据具体需求进行定制化设置。
3. 可扩展性可以通过添加规则来支持新的网络服务和应用程序。
类型 在Linux CentOS 7中防火墙主要有两种类型
1. 传统防火墙基于iptables工具可以通过命令行进行配置。
2. 新一代防火墙基于firewalld服务提供了更高级的配置选项并支持动态更新。
应用场景
1. 保护服务器防火墙可以限制对服务器的访问防止未经授权的用户或恶意攻击者入侵系统。
2. 网络分割通过配置防火墙规则可以将网络分割成多个安全区域提高网络的安全性。
3. 限制网络服务访问可以使用防火墙规则限制特定网络服务的访问例如只允许特定IP地址访问SSH服务。
在centos7中有几种防火墙共存firewald , iptables . 默认情况下CentOS是使用firewalld来管理netfilter子系统不过底层调用的命令仍然是iptables
2.firewalld 和 iptables区别 firewalld 可以动态修改单挑规则而不像iptables那样在修改了规则后必须全部刷新才可以生效。 firewalld在使用上比iptables人性化很多即使不明白五张表五条链而且对TCP/IP协议也不理解也可以实现大部分功能。 firewalld跟iptables比起来不好的地方是每个服务都需要去设置才能放行因为默认是拒绝。而iptables里默认每个服务是允许需要拒绝才去限制。 firewalld自身并不具备防火墙的功能而是和iptables一样需要通过内核的netfilter来实现也就是说firewalld和iptables一样他们的作用是用于维护规则而真正使用规则干活的是内核的netfilter,只不过firewalld和iptables的结构以及使用方法不一样罢了。
3.区域管理概念
区域管理
通过将网络划分成不同的区域制定不同区域之间的访问控制策略来控制不同程序间传送的数据流。例如互联网不是可信任的区域而内部网络是高度信任的区域。网络安全模型可以在安装初次启动和首次建立网络连接时选择初始化。该模型描述了主机所连接的整个网络环境的可信级别并定义了新连接的处理方式。
有如下几种不同的初始化区域 阻塞区域block任何传入的网络数据包都将被阻止 工作区域work相信网络上的其他计算机不会损害你的计算机 家庭区域home相信网络上的其他计算机不会损害你的计算机 公共区域public不相信网络上的任何计算机只有选择接受传入的网络连接 隔离区域DMZ隔离区域也称为非军事区域内外网络之间增加的一层网络起到缓冲作用。对于隔离区域只有选择接受传入的网络连接。 信任区域trusted所有的网络连接都可以接受 丢弃区域drop任何传入的网络连接都被拒绝 内部区域internal信任网络上的其他计算机不会损害你的计算机。只有选择接受传入的网络连接 外部区域external不相信网络上的其他计算机不会损害你的计算机。只有选择接受传入的网络连接
注Firewalld的默认区域是public
firewalld默认提供了九个zone配置文件block.xml、dmz.xml、drop.xml、external.xml、 home.xml、internal.xml、public.xml、trusted.xml、work.xml他们都保存在“/usr/lib /firewalld/zones/”目录下。
4.iptables的配置
1.简述
iptables防火墙由Netfilter项目(http://www.netfilter.org) 开发自2001年1月在Linux2.4内核发布以来就是Linux的一部分了。
Netfilter是由Linux提供的所有包过滤和包修改设施的官方项目名称但这个术语同时也指Linux内核的一个框架他可以用于在不同的阶段将函数挂接(hook)进网络栈。另一方面iptables使用Netfilter框架指在将对数据包进行操作(如过滤)的函数挂接进网络栈。
所以你可以认为Netfilter提供了一个框架而iptables在它之上建立了防火墙功能
2.基本原理
规则rules其实就是网络管理员预定义的条件规则一般的定义为“如果数据包头符合这样的条件就这样处理这个数据包”。规则存储在内核空间的信息 包过滤表中这些规则分别指定了源地址、目的地址、传输协议如TCP、UDP、ICMP和服务类型如HTTP、FTP和SMTP等。当数据包与规 则匹配时iptables就根据规则所定义的方法来处理这些数据包如放行accept、拒绝reject和丢弃drop等。配置防火墙的 主要工作就是添加、修改和删除这些规则
3.iptables传输数据包的过程 当一个数据包进入网卡时它首先进入PREROUTING链内核根据数据包目的IP判断是否需要转送出去 如果数据包就是进入本机的它就会沿着图向下移动到达INPUT链。数据包到了INPUT链后任何进程都会收到它。本机上运行的程序可以发送数据包这些数据包会经过OUTPUT链然后到达POSTROUTING链输出 如果数据包是要转发出去的且内核允许转发数据包就会如图所示向右移动经过FORWARD链然后到达POSTROUTING链输出 4、iptables规则表和链
表(tables)
iptables一共有四张表称为filter, nat, mangle, raw。filter用于过滤nat用于网络地址转换mangle用于给数据包做标记以修改分组数据的特定规则raw表则独立于Netfilter连接跟踪子系统
因此如果你的目标是保护主机安全那么着重考虑的是filter表而如果像OpenStack那样目的是做网络地址转换就用NAT表而mangle则用于QoS服务质量控制如对打上某个标记的分组数据分配较多带宽等等
链(chains)
是数据包传播的路径每个链其实就是众多规则中的一个检查清单每一条链中可以有1条或者数条规则。当一个数据包到达一个链时iptables就会从链中第一条规则开始检查看数据包是否满足规则所定义的条件如果满足就会根据该规则所定义的方法处理该数据包。否则iptables将继续检查下一条规则如果数据包不符合链中任一条规则iptables就会根据该链预先定义的策略来处理数据包。 5.规则表处理的优先顺序
Raw--mangle--nat--filter
对filter表来说最重要的是内置链INPUT/OUTPUT/FORWARD。顾名思义INPUT应用于外部网络进入到本地主机的数据包OUPTU则应用于从本地主机发送到外部网络的数据包。FORWARD则可以理解为将本地主机作为路由器数据包从本地主机经过但目标位于本地主机的下游。
6.管理和设置iptables规则 7.配置iptables之前firewalld的关闭
CentOS7默认的防火墙是firewall所以要使用iptables得先将默认的firewall关闭并另安装iptables进行防火墙的规则设定
[rootlocalhost ~]# systemctl stop firewalld.service //停止firewall [rootlocalhost ~]# systemctl disable firewalld.service //禁止firewall开机启动
8.iptables的安装
先检查iptables是否有安装
[rootlocalhost ~]# rpm –qa | grep iptables
iptables-1.4.21-16.el7.x86_64 //如果有显示这个则说明已经安装了iptables
安装iptables
[rootlocalhost ~]# yum install –y iptables
[rootlocalhost ~]# yum install –y iptables-services
9.iptables的基本语法格式
iptables [-t 表名] 命令选项 链名条件匹配 -j 目标动作或跳转
说明表名、链名用于指定 iptables命令所操作的表和链命令选项用于指定管理iptables规则的方式比如插入、增加、删除、查看等条件匹配用于指定对符合什么样 条件的数据包进行处理目标动作或跳转用于指定数据包的处理方式比如允许通过、拒绝、丢弃、跳转Jump给其它链处理。
10.iptables命令的管理控制选项
-A 在指定链的末尾添加append一条新的规则
-D 删除delete指定链中的某一条规则可以按规则序号和内容删除
-I 在指定链中插入insert一条新的规则默认在第一行添加
-R 修改、替换replace指定链中的某一条规则可以按规则序号和内容替换
-L 列出list指定链中所有的规则进行查看
-E 重命名用户定义的链不改变链本身
-F 清空flush
-N 新建new-chain一条用户自己定义的规则链
-X 删除指定表中用户自定义的规则链delete-chain
-P 设置指定链的默认策略policy
-Z 将所有表的所有链的字节和数据包计数器清零
-n 使用数字形式numeric显示输出结果
-v 查看规则表详细信息verbose的信息
-V 查看版本(version)
-h 获取帮助help
11.iptables命令的保存
[rootlocalhost ~]# service iptables save
12.iptables的基本操作
清除所有规则
⑴清除预设表filter中所有规则链中的规则
[rootlocalhost ~]# iptables -F
⑵清除预设表filter中使用者自定义链中的规则
[rootlocalhost ~]# iptables –X
[rootlocalhost ~]# iptables -Z
⑶清除NAT表规则
[rootlocalhost ~]# iptables –F –t nat
设置链的默认策略一般有二种方法
⑴允许所有的包然后再禁止所有危险的包通过防火墙
[rootlocalhost ~]# iptables –P INPUT ACCEPT
[rootlocalhost ~]# iptables –P OUTPUT ACCEPT
[rootlocalhost ~]# iptables –P FORWARD ACCEPT
⑵首先禁止所有的包然后根据需要的服务允许特定的包通过防火墙
[rootlocalhost ~]# iptables –P INPUT DROP
[rootlocalhost ~]# iptables –P OUTPUT DROP
[rootlocalhost ~]# iptables –P FORWARD DROP
向链中添加规则下面的语句用于允许SSH连接本服务器
[rootlocalhost ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
[rootlocalhost ~]# iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
向链中添加规则下面的语句用于允许PING命令测试本服务器
[rootlocalhost ~]# iptables -A INPUT -p icmp -j ACCEPT
[rootlocalhost ~]# iptables -A OUTPUT -p icmp -j ACCEPT
iptables的配置文件
直接编辑iptables的配置文件
[rootlocalhost ~]# vim /etc/sysconfig/iptables[rootlocalhost ~]# systemctl restart iptables.service //最后重启防火墙使配置生效
[rootlocalhost ~]# systemctl enable iptables.service //设置防火墙开机启动[rootlocalhost ~]# iptables -L
//查看防火墙规则,默认的是t filter如果是nat表查看即iptables t n