主要内容:
iptables规则备份和恢复
firewalld的9个zone
firewalld关于zone的操作
firewalld关于service的操作
1.iptables补充——规则备份和恢复
保存和备份iptables规则
service iptables save //会把规则保存到/etc/sysconfig/iptables
把iptables规则备份到my.ipt文件中
iptables-save > my.ipt
恢复刚才备份的规则
iptables-restore < my.ipt
2.firewalld的9个zone
安装firewalld:root执行 # yum install firewalld firewall-config
关闭之前打开的iptables
[root@gregory ~]# systemctl disable iptables
Removed symlink /etc/systemd/system/basic.target.wants/iptables.service.
[root@gregory ~]# systemctl stop iptables
打开firewalld
[root@gregory ~]# systemctl enable firewalld
Created symlink from /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service to /usr/lib/systemd/system/firewalld.service.
Created symlink from /etc/systemd/system/basic.target.wants/firewalld.service to /usr/lib/systemd/system/firewalld.service.
[root@gregory ~]# systemctl start firewalld
#查看firewalld规则
[root@gregory ~]# iptables –nvL
#查看所有zone
[root@gregory ~]# firewall-cmd --get-zones
work drop internal external trusted home dmz public block
#查看默认zone
[root@gregory ~]# firewall-cmd --get-default-zone
public
firewalld的终端管理工具是 firewall-cmd
firewalld默认配置文件有两个:/usr/lib/firewalld/ (系统配置,尽量不要修改)和 /etc/firewalld/ (用户配置地址)
zone概念:
硬件防火墙默认一般有三个区,firewalld引入这一概念系统默认存在以下区域:
drop:(丢弃),任何接受的网络数据包都被丢弃,没有任何回复。仅能有发送出去的网络连接。
block:(限制)拒绝所有外部连接,允许内部发起的连接,任何接受的网络连接都被IPV4的icmp-host-prohibited信息和ipv6的icmp6-adm-prohibited信息所拒绝。
public:(公共)在公共区域内使用,不能相信网络内的其他计算机不会对你的计算造成危害,只能接受经过选取的连接。
external:(外部)特别是为路由器启用了伪装功能的外部网。你不能信任来自网络的其他计算,不嫩更相信他们不会对你的计算机造成危害,只能接受经过选择的连接。
dmz:(非军事区)用于你的非军事区内的电脑,此区域内可公开访问,可以有限地进入你的内部网络,仅仅接受经过选择的连接。
work:用于工作区。你可以基本相信网络内的其他电脑不会危害你的电脑。仅仅接受经过选择的连接。
home:用于家庭网络。你可以基本相信网络内的其他计算机不会危害你的计算机。仅仅接受经过选择的连接。
internal:用于内部网络,你可以基本信任网络内的其他计算机不会威胁你的计算机,仅仅接受经过选择的连接。
trusted:可接受所有的网络连接
3.firewalld关于zone的操作
这时复制ens33到ens37
systemctl restart network.service重启网络服务
systemctl restart firewalld重启防火墙
[root@gregory /etc/sysconfig/network-scripts]# firewall-cmd --get-zone-of-interface=ens37
work
重新设置zone
firewall-cmd --get-zone-of-interface=ens33 //查指定网卡
firewall-cmd --zone=public --add-interface=lo //给指定网卡设置zone
firewall-cmd --zone=dmz --change-interface=lo //针对网卡更改zone
firewall-cmd --zone=dmz --remove-interface=lo //针对网卡删除zone
firewall-cmd --get-active-zones //查看系统所有网卡所在的zone
4.firewalld关于service的操作
9种zone,每个zone里面都是用了不同的service,而service就是针对一个服务(端口)做的iptables规则。
例如http 默认80端,https 43端口,ssh 22端口,ftp 21端口,
firewall-cmd --get-services 查看所有的servies
这些service都是由一个个配置文件定义的,配置文件的模板在/usr/lib/firewalld/services/目录下,真正生效的配置在/etc/firewalld/services/目录下(默认为空):
firewall-cmd --list-services //查看当前zone下有哪些service
firewall-cmd –zone=public --list-services //查看指定zone下有哪些service
一个zone下面有某个service,意味着这个service是被信任的。比如,当前zone下面有ssh,那么ssh服务(也就是22)端口是放行的。可以给一个zone添加一个service。
firewall-cmd --zone=public --add-service=http //把http增加到public zone下面
firewall-cmd --zone=public --remove-service=http
ls /usr/lib/firewalld/zones/ //zone的配置文件模板
firewall-cmd --zone=public --add-service=http --permanent //更改配置文件,之后会在/etc/firewalld/zones目录下面生成配置文件
这里没有ftp是因为没有把ftp设置为permanent(永久的)。
需求:ftp服务自定义端口1121,需要在work zone下面放行ftp
具体做法:
cp /usr/lib/firewalld/services/ftp.xml /etc/firewalld/services
vi /etc/firewalld/services/ftp.xml //把21改为1121
cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/
vi /etc/firewalld/zones/work.xml //增加一行
<service name="ftp"/>
firewall-cmd --reload //重新加载
firewall-cmd --zone=work --list-services