Centos 7 防火墙firewalld
首先介绍下Centos7的firewalld和iptables的关系!
1.centos7 中才开始引用firewalld的概念,它是iptables的升级版,以上两者都不是真正的防火墙,
都需要与内核netfilter配合使用。关于netfiler后续有机会进一步叙述。
2.firewalld 配置相对比较简单。
3.iptables 配置基本上都上命令行模式
如何只使用iptables而禁用firewalld
1.禁用firewalld功能
systemctl stop firewalld.service 关闭firewalld
systemctl disable firewalld.service 禁用firewalld系统重启firewalld服务不会加载
2.安装iptables(YUM 方式,一般系统盘、EPEL源都会有的)
yum list | grep iptables 查看yum源是否有iptables的安装包
yum install -y iptables.x86_64 安装iptables.x86_64 :该安装包主要包含iptables的相关命令以及iptables的相关模块
yum install -y iptables-services.x86_64 该安装包主要配置文件、启动或重启用的systemctl的服务 包含内容如下
iptables配置说明:
iptables 有4表5链
4表有:
filter: 功能对进出服务器数据包的过滤,和通过服务器做数据转发做过滤
nat: 功能主要用于做内外网地址转换数据转发
mangle: 用的不多,不做叙说
raw: 用的不多,不做叙说
5链有:
prerouting: 指定路由前的规则
input : 指定入口时的规则
forward: 指定转发时的规则
ouput: 指定出口的规则
postrouting: 指定路由后的规则
iptables的配置命令介绍
iptables [-t table] {-A|-C|-D} chain rule-specification
-t :指明对哪张表进行操作 系统默认是对filter表
-A:在表的最后一行插入一个规则
-C:检查规则是否存在
-D:删除规则
iptables -A INPUT -d 192.168.1.100 -s 172.16.1.0/24 -j ACCEPT
在filter表的INPUT链中最后一行增加一个规则:允许172.16.1.0这个网段访问服务器的192.168.1.100 这个地址
iptables -A INPUT -d -d 192.168.1.100 -p tcp --dport 80 -j ACCEPT
在filter表的INPUT链中最后一行增加一个规则:允许任何主机访问服务器的192.168.1.100 的80端口
iptables -D INPUT 3
删除filter表INPUT链中的第三条记录
iptables [-t table] -I chain [rulenum] rule-specification
-I (大写的i) :在[rulenum]前面插入一条规则
iptables -I INPUT 3 -i lo -j ACCEPT
在filter表INPUT链第三行规则前面插入允许本机lo环口通过 (服务器ping/ssh/telent自己,以及系统内部自己socket调用都是通过lo环口,该端口配置防火墙时一定要开启)
iptables [-t table] -P chain target
-P :指定链的默认行为
iptables -P INPUT DORP
指定filter表INPUT链默认行为:DROP
iptables [-t table] {-F|-Z|-X} [chain [rulenum]] [options...]
-F:将iptables规则清除
-Z:将iptables规则匹配或拒绝的数据包、字节数清零
-X:删除用户自定的链(该链中规则必须先清除)
通常清空防火墙配置的三步曲:
iptables -F
iptables -Z
iptables -X
iptables -L -n -v :常看当前iptables的配置
iptables 配置文件说明
系统开机iptables 会自动读取/etc/sysconfig/iptables 这个配置文件,也就是说当你配置好防火墙没保存至该文件系统重启后所有配置失效。
iptables-save 命令将保存当前配置规则 用法如下:
iptables-save > /etc/sysconfig/iptables 将当前配置导入配置文件 重启生效
以上是iptables 文件实例 保存的格式和命令配置语法差不多。