iptables详细使用教程
1、检查是否安装iptables服务
- 检查
iptables
是否安装
iptables --version
- 如果未安装,使用以下命令重新安装。
sudo install iptables
2、(可选)安装 iptables-persistent
如果你希望在重启后保持iptables
规则,可以安装iptables-persistent
sudo install iptables-persistent
# 在安装过程中,会提示你是否要保存当前的 iptables 规则,选择“是”即可。
3、查看当前规则
sudo iptables -L -n -v
4、设置默认策略
- 拒绝所有入站流量
sudo iptables -P INPUT DROP
- 允许所有出站流量
sudo iptables -P OUTPUT ACCEPT
5、允许特定流量
- 允许本地回环接口
sudo iptables -A INPUT -i lo -j ACCEPT
- 允许SSH(端口22)
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
- 允许HTTP(端口80)
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
- 允许HTTPS(端口443)
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
6、允许特定IP地址
- 允许来自特定IP的流量
sudo iptables -A INPUT -s 192.168.1.100 -j ACCEPT
7、删除规则
- 删除特定规则(使用规则编号)
sudo iptables -D INPUT <规则编号>
- 例如
sudo iptables -D INPUT -p tcp --dport 22 -j ACCEPT
8、保存规则
- 在Debian/Ubuntu上
sudo iptables-save > /etc/iptables/rules.v4
- 在Red Hat/CentOS上
service iptables save
9、还原规则
sudo iptables-restore < /etc/iptables/rules.v4
10、清空所有规则
sudo iptables -F
11、查看特定链的规则
sudo iptables -L INPUT -n -v
12、记录日志
- 记录丢弃的包
sudo iptables -A INPUT -j LOG --log-prefix "IPTables-Dropped: "
13、限制连接速率
- 限制SSH连接速率
sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m limit --limit 5/minute --limit-burst 10 -j ACCEPT
14、查看规则详细信息
sudo iptables -S
15、保存和恢复规则
- 保存规则
sudo iptables-save > /etc/iptables/rules.v4
- 恢复规则
sudo iptables-restore < /etc/iptables/rules.v4
16、使用systemctl
管理服务
- 启动服务
sudo systemctl start iptables
- 停止服务
sudo systemctl stop iptables
- 重启服务
sudo systemctl restart iptables
注意:确保在使用 iptables
时小心操作,因为不正确的规则可能会导致网络连接中断。