前言本片教程是rhel7和centOS7下的教程,希望对你有帮助。
查看屏蔽的ip规则:
用下列命令:
1 | [root@www ~]# firewall-cmd --list-rich-rules |
有两条规则:
表示屏蔽了ip192.168.254.201 其中 reject是禁止的意思
设置了黑名单通过 ipset 来解禁 ip
如果要移除此两条规则:则用
1 | [root@www ~]# firewall-cmd --permanent --remove-rich-rule="rule family='ipv4' source address='192.168.254.201' reject" |
必须重启防火墙才能生效。
IP 封禁 (这个是我们平时用得最多的)
# firewall-cmd –permanent –add-rich-rule=”rule family=’ipv4′ source address=’222.222.222.222′ reject” 单个IP
# firewall-cmd –permanent –add-rich-rule=”rule family=’ipv4′ source address=’222.222.222.0/24′ reject” IP段
# firewall-cmd –permanent –add-rich-rule=”rule family=ipv4 source address=192.168.1.2 port port=80 protocol=tcp accept” 单个IP的某个端口
如果要解禁ip吧上面的add改成remove即可。
1 | [root@www ~]# firewall-cmd --permanent --zone=public --remove-rich-rule='rule source ipset=blacklist drop' |
就是把–add 改变成–remove即可移除规则
查询防火墙的规则:
1 | firewall-cmd --zone=drop --list-all |
查看所有的规则:
1 | firewall-cmd --list-all-zones |
services:ssh mdns samba-client dhcpv6-client
drop: 丢弃所有进入的包,而不给出任何响应
block: 拒绝所有外部发起的连接,允许内部发起的连接
public: 允许指定的进入连接
external: 同上,对伪装的进入连接,一般用于路由转发
dmz: 允许受限制的进入连接
work: 允许受信任的计算机被限制的进入连接,类似 workgroup
home: 同上,类似 homegroup
internal: 同上,范围针对所有互联网用户
trusted: 信任所有连接
一、管理端口
1 2 3 4 5 6 | 列出 dmz 级别的被允许的进入端口 # firewall-cmd --zone=dmz --list-ports 允许 tcp 端口 8080 至 dmz 级别 # firewall-cmd --zone=dmz --add-port=8080/tcp 允许某范围的 udp 端口至 public 级别,并永久生效 # firewall-cmd --zone=public --add-port=5060-5059/udp --permanent |
二、 网卡接口
1 2 3 4 5 6 7 8 | 列出 public zone 所有网卡 # firewall-cmd --zone=public --list-interfaces 将 eth0 添加至 public zone,永久 # firewall-cmd --zone=public --permanent --add-interface=eth0 eth0 存在与 public zone,将该网卡添加至 work zone,并将之从 public zone 中删除 # firewall-cmd --zone=work --permanent --change-interface=eth0 删除 public zone 中的 eth0,永久 # firewall-cmd --zone=public --permanent --remove-interface=eth0 |
三、 管理服务
1 2 3 4 | 添加 smtp 服务至 work zone # firewall-cmd --zone=work --add-service=smtp 移除 work zone 中的 smtp 服务 # firewall-cmd --zone=work --remove-service=smtp |
四、 配置 external zone 中的 ip 地址伪装
1 2 3 4 5 6 | 查看 # firewall-cmd --zone=external --query-masquerade 打开伪装 # firewall-cmd --zone=external --add-masquerade 关闭伪装 # firewall-cmd --zone=external --remove-masquerade |
五、 配置 public zone 的端口转发
1 2 3 4 5 6 7 8 | 要打开端口转发,则需要先 # firewall-cmd --zone=public --add-masquerade 然后转发 tcp 22 端口至 3753 # firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toport=3753 转发 22 端口数据至另一个 ip 的相同端口上 # firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toaddr=192.168.1.100 转发 22 端口数据至另一 ip 的 2055 端口上 # firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toport=2055:toaddr=192.168.1.100 |
六 、配置 public zone 的 icmp
1 2 3 4 5 6 7 8 9 | 查看所有支持的 icmp 类型 # firewall-cmd --get-icmptypes destination-unreachable echo-reply echo-request parameter-problem redirect router-advertisement router-solicitation source-quench time-exceeded 列出 # firewall-cmd --zone=public --list-icmp-blocks 添加 echo-request 屏蔽 # firewall-cmd --zone=public --add-icmp-block=echo-request [--timeout=seconds] 移除 echo-reply 屏蔽 # firewall-cmd --zone=public --remove-icmp-block=echo-reply |
七、 IP 封禁 (这个是我们平时用得最多的)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | # firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='222.222.222.222' reject" 单个IP # firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='222.222.222.0/24' reject" IP段 # firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=192.168.1.2 port port=80 protocol=tcp accept" 单个IP的某个端口 这个是我们用得最多的。封一个IP,和一个端口 reject 拒绝 accept 允许 当然,我们仍然可以通过 ipset 来封禁 ip 封禁 ip # firewall-cmd --permanent --zone=public --new-ipset=blacklist --type=hash:ip # firewall-cmd --permanent --zone=public --ipset=blacklist --add-entry=222.222.222.222 封禁网段 # firewall-cmd --permanent --zone=public --new-ipset=blacklist --type=hash:net # firewall-cmd --permanent --zone=public --ipset=blacklist --add-entry=222.222.222.0/24 倒入 ipset 规则 # firewall-cmd --permanent --zone=public --new-ipset-from-file=/path/blacklist.xml 然后封禁 blacklist # firewall-cmd --permanent --zone=public --add-rich-rule='rule source ipset=blacklist drop' |
八、IP封禁和端口
1 2 3 4 5 | # firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=192.168.1.2 port port=80 protocol=tcp accept" 只对192.168.1.2这个IP只能允许80端口访问 (拒绝访问只需把 accept 换成 reject、删除该规则把 –add-rich-rule 改成 –remove-rich-rule即可) # firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=192.168.1.2/24 port port=80 protocol=tcp accept" 只对192.168.1.2这个IP段只能允许80端口访问(拒绝访问只需把 accept 换成 reject、删除该规则把 –add-rich-rule 改成 –remove-rich-rule即可 |
九、双网卡内网网卡不受防火墙限制
1 2 3 4 | # firewall-cmd --permanent --zone=public --add-interface=eth1 公网网卡–zone=public默认区域 # firewall-cmd --permanent --zone=trusted --add-interface=eth2 内网网卡–zone=trusted是受信任区域 可接受所有的网络连接 |
十、重新载入以生效
1 | # firewall-cmd --reload |