By | 2020-04-06

设置iptables开机启动

root@localhost:~# vi /etc/network/if-pre-up.d/iptables
# ---添加内容---
#!/bin/bash
/sbin/iptables-restore < /etc/local/iptables/rules.v4
# ---添加文件执行权限---
root@localhost:~# chmod +x /etc/network/if-pre-up.d/iptables

iptables规则查看、保存、加载

# ---查看当前iptables规则---
root@localhost:~# iptables -L -n -v
# ---保存当前防火墙规则---
root@localhost:~# iptables-save > /etc/local/iptables/rules.v4
# ---重新加载防火墙规则---
root@localhost:~# iptables-restore < /etc/local/iptables/rules.v4

iptables规则清理

root@localhost:~# iptables -F #清除所有规则
root@localhost:~# iptables -X #清除自定义chain
root@localhost:~# iptables -Z #将chain计数与统计归零

iptables全局配置

root@localhost:~# iptables -P INPUT DROP   #禁止流入
root@localhost:~# iptables -P OUTPUT DROP  #禁止流出
root@localhost:~# iptables -P FORWARD DROP #禁止转发

iptables常用规则

# ---允许本地回环接口--
root@localhost:~# iptables -A INPUT -i lo -j ACCEPT
# ---允许icmp流量通过---
root@localhost:~# iptables -A INPUT -p icmp -j ACCEPT
# ---允许已建立的或相关连的通过---
root@localhost:~# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# ---允许本地接口全部流量流出---
root@localhost:~# iptables -A OUTPUT -j ACCEPT
# ---禁止指定地址流入---
root@localhost:~# iptables -I INPUT -s 8.8.8.8 -j DROP
# ---允许TCP协议22端口流入---
root@localhost:~# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# ---允许UDP协议123端口流入--
root@localhost:~# iptables -A INPUT -p udp --dport 123 -j ACCEPT
# ---禁用指定MAC转发---
root@localhost:~# iptables -I FORWARD -m mac --mac-source ff:ff:ff:ff:ff:ff -j DROP
# ---禁止访问指定地址---
root@localhost:~# iptables -t nat -A PREROUTING -d 8.8.8.8 -j DROP
# ---禁止访问指定端口---
root@localhost:~# iptables -t nat -A PREROUTING --dport 443 -j DROP
# ---流量转发至1080端口---
root@localhost:~# iptables -t nat -A OUTPUT -p tcp -m tcp --dport 53 -d 8.8.8.8/32 -j REDIRECT --to-ports 1080
root@localhost:~# iptables -t nat -I PREROUTING -p tcp -m tcp --dport 53 -d 8.8.8.8/32 -j REDIRECT --to-port 1080
# 均衡公式 p = 1 / (n − i + 1)
# i = 规则序号
# n = 规则总数
# p = 第 i 条规则 --probability 参数
# ---基于白名单配置&&随机均衡[Random balancing]---
root@localhost:~# iptables -t nat -N REINTERNET
root@localhost:~# iptables -t nat -A REINTERNET -p tcp -m statistic --mode random --probability 0.33 -j REDIRECT --to-ports 8000
root@localhost:~# iptables -t nat -A REINTERNET -p tcp -m statistic --mode random --probability 0.5 -j REDIRECT --to-ports 8001
root@localhost:~# iptables -t nat -A REINTERNET -p tcp -j REDIRECT --to-ports 8002
root@localhost:~# iptables -t nat -I OUTPUT -p tcp -d 8.8.8.8/32 -m tcp --dport 53 -j REINTERNET
root@localhost:~# iptables -t nat -I PREROUTING -p tcp -d 8.8.8.8/32 -m tcp --dport 53 -j REINTERNET
#---基于黑名单配置&&随机均衡[Random balancing]---
root@localhost:~# iptables -t nat -N REINTERNET
root@localhost:~# iptables -t nat -A REINTERNET -o lo -j RETURN
root@localhost:~# iptables -t nat -A REINTERNET -d 169.254.0.0/16 -j RETURN
root@localhost:~# iptables -t nat -A REINTERNET -d 224.0.0.0/4 -j RETURN
root@localhost:~# iptables -t nat -A REINTERNET -d 240.0.0.0/4 -j RETURN
root@localhost:~# iptables -t nat -A REINTERNET -d 192.168.0.0/16 -j RETURN
root@localhost:~# iptables -t nat -A REINTERNET -p tcp -m statistic --mode random --probability 0.33 -j REDIRECT --to-port 8000
root@localhost:~# iptables -t nat -A REINTERNET -p tcp -m statistic --mode random --probability 0.5 -j REDIRECT --to-port 8001
root@localhost:~# iptables -t nat -A REINTERNET -p tcp -j REDIRECT --to-port 8002
root@localhost:~# iptables -t nat -I OUTPUT -p tcp -j REINTERNET
root@localhost:~# iptables -t nat -I PREROUTING -p tcp -j REINTERNET

发表评论