一 Firewall-cmd优点
firewalld是CentOS 7的一大特性,具有支持动态更新、不用重启服务,以及加入了防火墙的“zone”概念等好处。
firewall-cmd的主要优点在于:
- 它可以动态修改单条规则,而不需要像iptables那样在修改了规则后必须得全部刷新才可以生效。
- 使用上比iptables人性化很多,即使对TCP/IP协议的理解不深,也可以实现大部分功能。
关于firewall-cmd的基本语法和常用命令参数,有以下几点:
- 基本语法为:firewall-cmd --zone=zone-name --add-service=service-name --permanent。其中,--zone指定要添加服务的区域名称,--add-service指定要添加的服务名称,--permanent指定该规则永久生效。
- 其他可选参数包括:--list-all列出所有规则,--reload重新加载防火墙规则,--list-services列出当前系统中所有可用服务,--add-source添加一个IP或IP段,--list-sources列出所有已添加的IP或IP段,--add-port添加端口,--list-ports列出所有已添加的端口等
二 经典的一些使用例子
1 端口转发设置
要打开端口转发设置,需要先开启伪装功能,命令如下:
#firewall-cmd --zone=public --add-masquerade
设置下22端口蜜罐端口(网上扫描最多的22端口)
#firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toport=10022
转发 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-prot=port=22:proto=tcp:toprot=10022:toaddr=192.168.1.100
2 封禁IP和端口
拒绝某个IP访问
#firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=192.168.12.110 reject"
#firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=192.168.12.0/24 port port=80 protocol=tcp accept"
只对192.168.12.XX这个IP只能允许80端口访问 (拒绝访问只需把 accept 换成 reject、删除该规则把 –add-rich-rule 改成 –remove-rich-rule即可)
3 对内网IP段进行放通
经常需要对内网进行整段放通
#firewall-cmd --add-source=192.168.12.0/24 --zone=trusted --permanent
将内网网段放到trusted 区,信任区
4 设置生效
firewall-cmd --reload
三 其他一些如ipset用法
firewall-cmd 还有一些灵活用法,如ipset 设置,请参见
四 总结
总的来说,firewall-cmd是一个强大且灵活的防火墙管理工具,可以帮助用户有效地管理Linux系统的防火墙规则。放置在云上的服务器,无防火墙情况下建议一定要开启系统自身这个firewall-cmd,如需更多关于firewall-cmd的信息,建议查阅相关手册或在线文档