Linux 防火墙

/ Linux / 907浏览

firewalld

查看状态

systemctl status firewalld

禁用

systemctl stop firewalld systemctl disable firewalld

启用

systemctl start firewalld

查看所有

sudo firewall-cmd --zone=public --list-all

查看端口

返回 yes 代表开启成功 firewall-cmd --zone=public --query-port=80/tcp

放行端口

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=8080/tcp --permanent

删除端口

返回 success 代表成功

firewall-cmd --zone=public --remove-port=80/tcp --permanent #关闭80端口
firewall-cmd --zone=public --remove-port=8289/tcp --permanent 

重新载入

返回 success 代表成功 firewall-cmd --reload

iptables

查看规则

# 查看所有规则(带序号)
iptables -L -n --line-numbers

# 只看 INPUT 规则
iptables -L INPUT -n --line-numbers

# 清空所有规则(慎用!)
iptables -F

放行 / 禁止 端口

# 放行 80 端口(HTTP)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# 放行 443 端口(HTTPS)
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# 放行 22 端口(SSH,千万别漏!)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# 禁止某个端口(例如 3306)
iptables -A INPUT -p tcp --dport 3306 -j DROP

按 IP 限制

# 允许单个 IP 访问(信任IP)
iptables -A INPUT -s 192.168.1.100 -j ACCEPT

# 禁止单个IP
iptables -A INPUT -s 112.112.112.112 -j DROP

# 禁止 IP 段
iptables -A INPUT -s 112.112.112.0/24 -j DROP

删除规则

# 先查看规则序号
iptables -L INPUT --line-numbers

# 删除第 2 条规则
iptables -D INPUT 2

保存规则

# CentOS/RHEL
service iptables save

# Ubuntu/Debian
iptables-save > /etc/iptables/rules.v4