前言:下是一些非常实用的 iptables
命令合集,涵盖网络攻击防护和日常网络安全防护
1. 查看当前规则
iptables -L -v -n
查看现有的所有规则,-v
显示详细信息,-n
禁止解析IP地址和端口以加快显示速度。
2. 清空所有规则
iptables -F
清除所有已设置的规则,适用于规则重置时。
3. 允许所有本地回环接口流量
iptables -A INPUT -i lo -j ACCEPT
确保允许 localhost
的内部流量。
4. 允许特定IP访问
iptables -A INPUT -s 192.168.1.100 -j ACCEPT
- 允许从特定IP(例如
192.168.1.100
)访问。
5. 允许特定端口(例如SSH,端口22)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
- 允许通过TCP协议的SSH端口流量。
6. 拒绝特定IP的访问
iptables -A INPUT -s 192.168.1.200 -j DROP
- 拒绝来自特定IP的所有流量。
7. 防止简单的DDOS攻击(限制每秒请求次数)
iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT
- 允许TCP 80端口的请求,但限制为每分钟最多25个连接,防止过多连接导致的DoS攻击。
8. 阻止Ping Flood攻击
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/second -j ACCEPT
- 限制每秒接收的ICMP echo-request (Ping)请求数,防止Ping Flood攻击。
9. 阻止所有入站流量(默认拒绝)
iptables -P INPUT DROP
- 默认情况下拒绝所有入站流量,除非明确允许。
10. 允许已有连接及相关的流量
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
- 允许已经建立的连接和相关流量,确保不会影响合法的现有连接。
11. 阻止指定端口(如防止某些服务被攻击)
iptables -A INPUT -p tcp --dport 3306 -j DROP
- 阻止所有对MySQL(端口3306)的连接请求。
12. 记录被拒绝的连接
iptables -A INPUT -j LOG --log-prefix "iptables: "
- 记录所有被拒绝的连接请求以供日后分析。
13. 防止IP扫描攻击(SYN Flood)
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
- 阻止所有异常的TCP SYN数据包,防御SYN Flood攻击。
14. 允许特定端口的出站流量
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
- 允许通过TCP协议的HTTPS端口出站流量。
15. 阻止特定国家/地区IP(使用GeoIP)
iptables -A INPUT -m geoip --src-cc CN -j DROP
- 阻止来自中国的所有流量(需要GeoIP模块支持)。
16. 限制同一IP的SSH连接次数
iptables -A INPUT -p tcp --dport 22 -m recent --name ssh_attack --rcheck --seconds 60 --hitcount 4 -j DROP
- 在60秒内限制同一IP的SSH连接次数不得超过4次,防止暴力破解。
17. 允许所有出站流量
iptables -P OUTPUT ACCEPT
- 默认允许所有出站流量。
18. 阻止所有入站和出站的IPv6流量
ip6tables -P INPUT DROP ip6tables -P OUTPUT DROP
- 阻止所有IPv6流量,以防未启用的IPv6接口被攻击。
19. 阻止恶意IP地址列表
for ip in $(cat bad_ips.txt); do iptables -A INPUT -s $ip -j DROP done
- 使可以从多个来源获取已知的恶意IP列表,并使用如下命令批量阻止:用文件中的恶意IP地址阻止这些IP的流量。
20. 保存并重新加载iptables规则
-
保存当前规则: iptables-save > /etc/iptables/rules.v4重新加载保存的规则: iptables-restore < /etc/iptables/rules.v4