-
Firewalld出入站策略配置
FirewallD 是 iptables 的一个封装,可以让你更容易地管理 iptables 规则 - 它并不是 iptables 的替代品。虽然 iptables 命令仍可用于 FirewallD,但建议使用 FirewallD 时仅使用 FirewallD 命令。 Firewalld基本管理命令(CentOS7已默认安装firewalld) #查看firewall状态 firewall-cmd --state #安装 yum -y install firewalld yum -y install firewall-config #启动, systemctl start firewalld #设置开机启动 systemctl enable firewalld #关闭 systemctl stop firewalld #取消开机启动 systemctl disable firewalld 端口开放相关命令 #查询已经开放的端口 firewall-cmd --list-port #查询某个端口是否开放 firewall-cmd --query-port=80/tcp #开启端口(可以是一个端口范围,如1000-2000/tcp) firewall-cmd --zone=public --add-port=80/tcp --permanent #移除端口 firewall-cmd --zone=public --remove-port=80/tcp --permanent 封禁某一个IP或IP段 #单个ip firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='xx.xx.xx.xx' reject" #ip段 firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='xx.xx.xx.0/24' reject" 使用上是没什么问题,只不过一旦大量ip需要拉黑,管理上就会很混乱。因此这里介绍firewalld配置ipset来实现。 创建ipset firewall-cmd --permanent --zone=public --new-ipset=blacklist --type=hash:net #创建一个名为blacklist的库 执行完命令可在/etc/firewalld/ipsets路径下看到生成的blacklist.xml文件。 添加/删除要禁止的IP或IP段 #添加单ip firewall-cmd --permanent --zone=public --ipset=blacklist --add-entry=xxx.x.x.xx #添加ip段 firewall-cmd --permanent --zone=public --ipset=blacklist --add-entry=xxx.xx.xx.0/24 #删除ip firewall-cmd --permanent --zone=public --ipset=blacklist --remove-entry=xxx.x.x.xx #删除ip段 firewall-cmd --permanent --zone=public --ipset=blacklist --remove-entry=xxx.xx.xx.0/24 备注: –permanent参数表示永久生效,内容会写入blacklist.xml文件且需要重启防火墙firewall-cmd --reload生效,如果不加该参数,则立即生效,内容不会写入blacklist.xml文件,服务重启则规则失效。 封禁ipset 前面只是创建了名为blacklist的ipset,而且也往里面增加了内容,最后一步即防火墙封禁该ipset即可,这样的好处是防火墙只是一条规则就封禁了文件里管理的大量IP。 #封禁名为blacklist的ipset firewall-cmd --permanent --zone=public --add-rich-rule='rule source ipset=blacklist drop' 禁止本机向外访问某个IP或IP段 #单IP firewall-cmd --direct --add-rule ipv4 filter OUTPUT 0 -d 10.10.10.22/32 -j REJECT #IP段 firewall-cmd --direct --add-rule ipv4 filter OUTPUT 0 -d 10.10.10.0/24 -j REJECT 最后重新载入防火墙即可生效 firewall-cmd --reload