[root@rhclient Desktop]# dnf install iptables-services -y
从iptables切换至firewalld:
[root@rhclient Desktop]# systemctl stop iptables [root@rhclient Desktop]# systemctl disable iptables [root@rhclient Desktop]# systemctl mask iptables [root@rhclient Desktop]# systemctl enable --now firewalld
[root@rhclient Desktop]# dnf install iptables-services -y
从firewalld切换至firewalldiptables:
[root@rhclient Desktop]# systemctl stop firewalld [root@rhclient Desktop]# systemctl disable firewalld [root@rhclient Desktop]# systemctl mask firewalld [root@rhclient Desktop]# systemctl enable --now iptables
chain
input #输入 output #输出 forward #内核转发 postrouting #路由之后 prerouting #路由之前
tables
filter #使用内核转发(input output forward) nat #不经过内核的数据(postrouting,prerouting,input,output) mangle #当filter和nat表不够用时使用
配置文件储存在 /etc/sysconfig/iptables
保存当前配置 :
[root@rhclient Desktop]# iptales-save > /etc/sysconfig/iptables [root@rhclient Desktop]# service iptables save
[root@rhclient Desktop]# iptables -[options] <-t table> [chain] [condition] [measure]
-t #指定表名称 -n #不做解析 -L #查看 -A #添加策略 -N #新建链 -E #更改链名称 -X #删除链 -D #删除规则 -I #插入规则 -R #更改规则 -P #更改默认规则 -m #修改 -p #协议 --dport #目的地端口 -s #来源 RELATED #建立过连接的(数据包) ESTABLISHED #正在连接的(数据包) NEW #新的(数据包) -j #动作 ACCEPT #允许 DROP #丢弃 REJECT #拒绝 SNAT #源地址转换 DNAT #目的地地址转换
使用范例:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT # filter表INPUT中添加规则: 接受状态为RELATED,ESTABLISHED的数据包 iptables -A INPUT -m state --state NEW -i lo -j ACCEPT # filter表INPUT中添加规则: 接受状态为NEW数据包 iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT # filter表INPUT中添加规则: 接受状态为NEW并且tcp协议来自80端口的数据包 iptables -A INPUT -m state --state NEW ! -s 192.168.0.10 -p tcp --dport 22 -j ACCEPT # filter表INPUT中添加规则: 接受状态为NEW tcp协议端口为22的来源不是的192.168.0.10 的数据包 iptables -A INPUT -m state --state NEW -j REJECT # filter表INPUT中添加规则: 拒绝状态为new的数据包 iptable -t nat -A POSTROUTING -o ens160 -j SNAT --to-source 192.168.0.20 # 添加snat规则,从ens160发出的数据来源更改为 192.168.0.20 iptables -t nat -A PREROUTING -i ens160 -j DNAT --to-dest 172.25.254.30 # 添加dnat规则,ens160 收到的数据目标地址改为172.25.254.30
firewalld 配置目录 /etc/firewalld ;模块目录 /lib/firewalld
firewalld 默认存在数个域,工作在每个域时,防火墙开放接口不同。
域 | 说明 |
---|---|
trusted | 开放所有服务 |
home | 开放ssh mdns ipp-client samba-client dhcp-client |
work | 开放ssh ipp-client dhcp-client |
public | 开放 ssh dhcp-client |
dmz | 军级网络 ssh |
block | 拒绝所有 |
drop | 丢弃 所有数据全部丢弃无任何回复 |
internal | 内部网络,开放 ssh mdns ipp-client samba-client dhcp-client |
external | ipv4网络地址伪装转发 sshd |
[root@rhclient Desktop]# firewall-cmd [options]
firewall-cmd --state #查看状态 firewall-cmd --get-active-zones #查看生效域 firewall-cmd --get-default-zone #查看默认域 firewall-cmd --list-all #查看默认域中的火墙策略 firewall-cmd --list-all --zone=work #查看指定域的火墙策略 firewall-cmd --set-default-zone=trusted #设定默认域 firewall-cmd --get-services #查看所有可以设定的服务 firewall-cmd --permanent --remove-service=dhcp #移除服务 firewall-cmd --reload #刷新防火墙策略 firewall-cmd --permanent --add-source=192.168.158.0/24 --zone=trusted # 指定数据来源访问域 firewall-cmd --reload firewall-cmd --permanent --remove-source=192.168.158.0/24 --zone=trusted # 删指定的域中的数据来源 firewall-cmd --permanent --add-interface=ens224 --zone=trusted # 添加网络接口至指定域 firewall-cmd --permanent --remove-interface=ens224 --zone=trusted # 删除指定域的网络接口 firewall-cmd --permanent --change-interface=ens224 --zone=trusted # 更改网络接口指定的域
[root@rhclient Desktop]# firewall-cmd --direct --get-all-rules #查看高级规则 [root@rhclient Desktop]# firewall-cmd --direct --add-rule ipv4 filter INPUT 0 ! -s 192.168.158.128 -p tcp --dport 22 -j REJECT # 添加规则:非来自192.168.158.128 tcp 端口为22的数据包拒绝接受
[root@rhclient Desktop]# firewall-cmd --permanent --add-masquerade
[root@rhclient Desktop]# firewall-cmd --permanent --add-forward port=port=22:proto=tcp:toaddr=192.168.158.128