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