iptables-debian

安装

如果还未安装 iptables,可以通过以下命令安装:

sudo apt-get update
sudo apt-get install iptables

常用命令

清空现有的规则

#iptables -F 慎用

查看当前策略

iptables -nvL

其他

# 设置默认策略为 DROP
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# 允许本地回环
iptables -A INPUT -i lo -j ACCEPT

# 允许已建立的连接和相关的流量
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# 允许 ICMP (ping) 请求
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

# 如果你希望只允许特定的 IP 地址进行 ping,可以这样做:
# iptables -A INPUT -p icmp --icmp-type echo-request -s YOUR_ALLOWED_IP -j ACCEPT

# 保存规则(对于 Debian/Ubuntu 系统)
iptables-save > /etc/iptables/rules.v4

# 对于其他系统(如 CentOS),可以使用下面的命令
# service iptables save

编辑脚本

vim /etc/iptables/rules.v4

脚本样例

# Generated by iptables-save v1.8.9 (nf_tables) on Sat Nov 16 13:47:57 2024 
*filter 
# 默认拒绝所有进入流量
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]

# 允许本地流量
-A INPUT -i lo -j ACCEPT

# 开放 SSH (33379端口) 
-A INPUT -p tcp --dport 33379 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

# 允许已建立的连接
-A INPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
# 开放frp接口
-A INPUT -p tcp --dport 33370:33399 -j ACCEPT


# Docker 规则
:DOCKER - [0:0]
:DOCKER-ISOLATION-STAGE-1 - [0:0]
:DOCKER-ISOLATION-STAGE-2 - [0:0]
:DOCKER-USER - [0:0]
-A FORWARD -j DOCKER-USER
-A FORWARD -j DOCKER-ISOLATION-STAGE-1
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o docker0 -j DOCKER
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT
-A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -j RETURN
-A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -j RETURN
-A DOCKER-USER -j RETURN

COMMIT

完成这些步骤后,确保通过以下命令重新加载规则:

重载

sudo iptables-restore < /etc/iptables/rules.v4

保存现有规则

iptables-save > /etc/iptables/rules.v4