# ipset - 禁止屏蔽海外国外IP访问
https://abc.htmltoo.com/thread-46521.htm
# ipset 封禁ip
https://abc.htmltoo.com/thread-46816.htm
yum install -y firewalld
systemctl status firewalld
# 开启防火墙
systemctl start firewalld.service
# 防火墙开机启动
systemctl enable firewalld.service
# 重启
systemctl restart firewalld;
# 关闭防火墙
systemctl stop firewalld.service
# 查看防火墙状态
firewall-cmd --state
#查看区域信息
firewall-cmd--get-active-zones
#查看指定接口所属区域
firewall-cmd--get-zone-of-interface=eth0
# 查看现有的规则
firewall-cmd --list-all
或
iptables -nL
# 重载防火墙配置
firewall-cmd --reload
# 开启转发,docker要注意
firewall-cmd --add-masquerade --permanent
# 查看转发情况,结果是yes了
firewall-cmd --query-masquerade
# 将接口添加到区域,默认接口都在public
firewall-cmd --zone=public --add-interface=eth0
# 开启nat
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -i eth0 -p gre -j ACCEPT
#禁用firewalld
systemctl mask firewalld
#解锁firewalld
systemctl unmask firewalld
systemctl disable firewalld
systemctl stop firewalld
systemctl mask firewalld
systemctl disable firewalld.service
# 卸载
yum remove -y firewalld
#查看开放的端口
firewall-cmd --list-ports
#将接口添加到区域,默认接口都在public
firewall-cmd --permanent --zone=public --add-interface=docker0
# 添加单个单端口
firewall-cmd --permanent --zone=public --add-port=52341/tcp
# 添加多个端口
firewall-cmd --permanent --zone=public --add-port=8080-8083/tcp
# 删除某个端口
firewall-cmd --permanent --zone=public --remove-port=81/tcp
# 针对某个 IP开放端口
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.142.166" port protocol="tcp" port="6379" accept"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.0.233" accept"
# 删除某个IP
firewall-cmd --permanent --zone=public --remove-rich-rule="rule family="ipv4" source address="192.168.1.51" accept"
# 针对一个ip段访问
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.0.0/16" accept"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="9200" accept"
# 禁ip段
firewall-cmd --permanent --zone=public --add-rich-rule 'rule family="ipv4" source address="92.119.0.0/16" drop'
firewall-cmd --permanent --zone=public --add-rich-rule 'rule family="ipv4" source address="194.49.0.0/16" drop'
firewall-cmd --permanent --zone=public --add-rich-rule 'rule family="ipv4" source address="188.95.0.0/16" drop'
firewall-cmd --permanent --zone=public --add-rich-rule 'rule family="ipv4" source address="194.33.45.0/24" drop'
---允许192.168.1.10所有访问所有端口
firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address="192.168.1.10" accept' --permanent
---移除192.168.1.10所有访问所有端口
firewall-cmd --zone=public --remove-rich-rule 'rule family="ipv4" source address="192.168.1.10" accept' --permanent
---允许192.168.2.0/24(0-255)所有访问所有端口
firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address="192.168.2.0/24" accept' --permanent
---允许192.168.1.10所有访问TCP协议的22端口
firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address="192.168.1.10" port port=22 protocol=tcp reject' --permanent
---移除192.168.1.10所有访问TCP协议的22端口
firewall-cmd --zone=public --remove-rich-rule 'rule family="ipv4" source address="192.168.1.10" port port=22 protocol=tcp reject' --permanent
---防火墙重新载入(必须重新载入后才能生效)
firewall-cmd --reload
---查看rich-rules(富规则)
firewall-cmd --list-rich-rules
---查看防火墙服务规则
firewall-cmd --list-services
---查看 防火墙所有规则
firewall-cmd --list-all
---查看防火墙所有区域的配置规则
firewall-cmd --list-all-zones
---查看默认区域
firewall-cmd --get-default-zone
---查看网络接口使用区域
firewall-cmd --get-active-zones
---查看默认的可用服务
firewall-cmd --get-services
---要启用或禁用HTTP服务
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --zone=public --remove-service=http --permanent
提示
可以根据自己的需求更改设置
accept 允许
reject 拒绝, 会返回一个拒绝(终止)数据包 (内网调试-比较好)
drop 拒绝, 直接丢弃数据,并不反馈任何回应 (外网-比较好)
--add-rich-rule 添加设置
--remove-rich-rule 移除设置
--permanent 永久生效, 需要重新载入后生效
其他参考
firewall-cmd --list-all-zones #查看所有的zone信息
firewall-cmd --get-default-zone #查看默认zone是哪一个
firewall-cmd --zone=internal --change-zone=p3p1 #临时修改接口p3p1所属的zone为internal
firewall-cmd --add-service=http #暂时开放http
firewall-cmd --permanent --add-service=http #永久开放http
firewall-cmd --zone=public --add-port=80/tcp --permanent #在public中永久开放80端口
firewall-cmd --permanent --zone=public --remove-service=ssh #从public zone中移除服务
firewall-cmd --reload #重新加载配置
systemctl restart firewalld #重启firewalld服务,使配置生效/可查
---默认情况下,公共区域是启用防火墙服务后的默认区域。要列出所有可用区域,请运行:
firewall-cmd --get-zones
---以下命令用于更改默认区域并进行验证。
firewall-cmd --set-default-zone=home
firewall-cmd --get-default-zone
---以下命令用于永久打开:
firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --zone=public --permanent --add-service=https
---要实施更改,我们需要重新加载防火墙:
firewall-cmd --reload
---检查开放的端口/服务:
firewall-cmd --list-all
#centos
dnf install epel-release
dnf update
dnf install firewalld
systemctl enable firewalld --now
systemctl enable firewalld
systemctl start firewalld
systemctl status firewalld
#debian
apt update
apt -y install firewalld
firewall-cmd --state
systemctl status firewalld
# firewalld服务
vi /etc/firewalld/services/tcp.xml
<service>
<short>tcp</short>
<description>nginx</description>
<port protocol="tcp" port="80"/>
<port protocol="tcp" port="443"/>
</service>
-才能添加这个服务
firewall-cmd --zone=public --permanent --add-service=tcp
firewall-cmd --zone=public --permanent --remove-service=tcp
firewall-cmd --reload
-白名单whitelist
firewall-cmd --permanent --new-zone=whitelist
firewall-cmd --permanent --zone=whitelist --add-source=172.17.6.247
firewall-cmd --permanent --zone=whitelist --add-source=172.17.6.250
firewall-cmd --permanent --zone=whitelist --add-port=2049/tcp
-黑名单blacklist
firewall-cmd --permanent --new-zone=blacklist
firewall-cmd --permanent --zone=blacklist --add-rich-rule="rule family="ipv4" port protocol="tcp" port="8024" drop"
# 禁止海外vps攻击
# 禁ip段
firewall-cmd --permanent --zone=public --add-rich-rule 'rule family="ipv4" source address="92.119.0.0/16" drop'
firewall-cmd --permanent --zone=public --add-rich-rule 'rule family="ipv4" source address="194.49.0.0/16" drop'
firewall-cmd --permanent --zone=public --add-rich-rule 'rule family="ipv4" source address="188.95.0.0/16" drop'
firewall-cmd --permanent --zone=public --add-rich-rule 'rule family="ipv4" source address="194.33.0.0/16" drop'
firewall-cmd --permanent --zone=public --add-rich-rule 'rule family="ipv4" source address="45.144.0.0/16" drop'
firewall-cmd --permanent --zone=public --add-rich-rule 'rule family="ipv4" source address="193.176.0.0/16" drop'
firewall-cmd --permanent --zone=public --add-rich-rule 'rule family="ipv4" source address="194.33.45.0/24" drop'