Firewall配置
一、安装firewall
#yum install -y firewalld firewall-config
二、启动并设置开机自启动
# systemctl start firewalld
# systemctl enable firewalld
# systemctl stop firewalld
# systemctl disable firewalld
三、firewall配置
# firewall-config 防火墙图形配置界面
# firewall-cmd --list-all
# firewall-cmd --zone=public --list-all
# firewall-cmd --list-all-zones 列出所有区域的设置
# firewall-cmd --list-services 列出所有预设服务
# firewall-cmd --list-rich-rules
设置网络地址到指定的区域
# firewall-cmd --permanent --zone=internal --add-source=172.25.254.0/24
#firewall-cmd --permanent --zone=internal --remove-source=172.25.254.0/24
添加、改变、删除网络接口:
# firewall-cmd --permanent --zone=internal --add-interface=eth0
# firewall-cmd --permanent --zone=internal --change-interface=eth0
# firewall-cmd --permanent --zone=internal --remove-interface=eth0
添加、删除服务:
# firewall-cmd --permanent --zone=public --add-service=smtp
# firewall-cmd --permanent --zone=public --remove-service=smtp
列出、添加、删除端口:
# firewall-cmd --zone=public --list-ports
# firewall-cmd --permanent --zone=public --add-port=8080/tcp
# firewall-cmd --permanent --zone=public --remove-port=8080/tcp
使用 –direct 选项在运行时间里增加或者移除链:
# firewall-cmd --direct --remove-rule ipv4 filter IN_public_allow 0 -p tcp --dport 80 -j ACCEPT
删除规则:
# firewall-cmd --direct --remove-rule ipv4 filter IN_public_allow 10 -p tcp --dport 80 -j ACCEPT
列出规则:
# firewall-cmd --direct --get-all-rules
重载防火墙:
# firewall-cmd --reload
添加复杂路由:
#firewall-cmd --add-rich-rule='rule family="ipv4" source address="172.17.0.0/16" port port="3306" protocol="tcp" accept'
四、复杂路由:rich-rules
在这个部分,所有命令都必须以 root 用户身份运行。增加一项规则的命令格式如下:
firewall-cmd [--zone=zone] --add -rich-rule='rule' [--timeout=seconds]
这样将为 zone 分区增加一项多语言规则 rule 。这个选项可以多次指定。如果分区被省略,将使用默认分区。如果出现超时,规则将在指定的秒数内被激活,并在之后被自动移除移除一项规则:
firewall-cmd [--zone=zone] --remove-rich-rule='rule'
检查一项规则是否存在:
firewall-cmd [--zone=zone] --query-rich-rule='rule'
这将复查是否已经为区域增加一个多语言规则 。如果可用,屏幕会显示 yes,退出状态为0; 否则,屏幕显示 no ,退出状态为 1。如果省略 zone,默认区域将被使用。
列出所有多语言规则:
firewall-cmd --list-rich-rules
添加规则:
#firewall-cmd --add-rich-rule='rule family="ipv4" source address="172.25.0.10" accept'
允许172.25.0.10主机所有连接。
# firewall-cmd --add-rich-rule='rule service name=ftp limit value=2/m accept'
每分钟允许2个新连接访问ftp服务。
# firewall-cmd --add-rich-rule='rule service name=ftp log limit value="1/m" audit accept'
同意新的 IP v4 和 IP v6 连接 FT P ,并使用审核每分钟登录一次。
#firewall-cmd --add-rich-rule='rule family="ipv4" source address="172.25.0.0/24" service name=ssh log prefix="ssh" level="notice" limit value="3/m" accept'
允许来自172.25.0.0/24地址的新 IPv4连接连接TFTP服务,并且每分钟记录一次。
# firewall-cmd --permanent --add-rich-rule='rule protocol value=icmp drop'
丢弃所有icmp包
# firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.25.0.0/24 reject' --timeout=10
当使用source和destination指定地址时,必须有family参数指定ipv4或ipv6。如果指定超时,
规则将在指定的秒数内被激活,并在之后被自动移除。
#firewall-cmd --add-rich-rule='rule family=ipv6 source address="2001:db8::/64" service name="dns" audit limit value="1/h" reject' --timeout=300
拒绝所有来自2001:db8::/64子网的主机访问dns服务,并且每小时只审核记录1次日志。
# firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=172.25.0.0/24 service name=ftp accept'
允许172.25.0.0/24网段中的主机访问ftp服务
# firewall-cmd --add-rich-rule='rule family="ipv6" source address="1:2:3:4:6::" forward-port to-addr="1::2:3:4:7" to-port="4012" protocol="tcp" port="4011"'
转发来自ipv6地址1:2:3:4:6::TCP端口4011,到1:2:3:4:7的TCP端口4012
#firewall-cmd --add-rich-rule='rule family="ipv4" source address="172.17.0.0/16" port port="3306" protocol="tcp" accept'