当前位置:   article > 正文

iptables常用命令_iptables命令

iptables命令

iptables 是 Linux 中的一个防火墙软件,可以管理 Linux 系统上的网络流量,帮助保护网络安全。

1 常用命令

1.1 iptables -L

列出 iptables 规则,可以查看当前系统中的所有防火墙规则。

1.2 iptables -F

清空 iptables 规则,可以删除所有规则,从而重新开始配置。

1.3 iptables -P INPUT DROP

将 INPUT 链的默认策略设置为 DROP,拒绝所有的入站数据包。

1.4 iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT

允许来自 192.168.1.0/24 网段的数据包进入系统。

1.5 iptables -A INPUT -p tcp --dport 22 -j ACCEPT

允许通过 SSH 连接进入系统,前提是 SSH 服务已经开启并监听在 22 端口上。

1.6 iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

允许已经建立的连接数据包通过防火墙。

1.7 iptables -A INPUT -i lo -j ACCEPT

允许本地回环接口的数据包通过防火墙。

1.8 iptables -A INPUT -j DROP

拒绝所有未匹配到规则的数据包进入系统。

1.9 iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT

在 INPUT 链的第一条规则之前插入一条允许 HTTP 流量的规则。

1.10 iptables-save

保存 iptables 规则,可以将当前配置的防火墙规则保存到一个文件中。

1.11 iptables-restore

还原 iptables 规则,可以从一个文件中加载之前保存的防火墙规则。

1.12 iptables -D

删除指定规则,可以根据规则的编号或者内容来删除已经存在的规则。例如:

1.13 iptables -D INPUT 2

删除 INPUT 链中的第二条规则。

1.14 iptables -D INPUT -s 192.168.1.0/24 -j ACCEPT

删除允许 192.168.1.0/24 网段的数据包进入系统的规则。

1.15 iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

允许从 eth0 接口到 eth1 接口的数据包转发,用于多网卡的情况。

1.16 iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

使用 NAT 技术将内部网络的 IP 地址转换成公网 IP 地址,从而实现对外访问。这个命令是在 nat 表中新增 POSTROUTING 规则,表示对从 192.168.1.0/24 网段发出的数据包,通过 eth0 接口发送出去时进行地址转换,使用 MASQUERADE 参数可以自动获取外部网络的 IP 地址。

1.17 iptables -A OUTPUT -d 192.168.1.10 -j DROP

拒绝系统向指定 IP 地址发送数据包,用于限制系统对某些地址的访问。

1.18 iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT

限制 HTTP 流量,每分钟最多接受 25 个数据包,最大缓冲 100 个数据包。

1.19 iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/second -j ACCEPT

限制 ICMP 流量,每秒最多接受一个 echo-request 数据包。

1.20 iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 10 -j REJECT

限制 HTTP 流量,最多允许 10 个并发连接,超过限制则拒绝连接。

1.21 iptables -A INPUT -p tcp --dport 22 -m recent --name ssh --set -j ACCEPT

使用 recent 模块记录 SSH 连接,设置为 SSH,如果连续多次连接失败,则拒绝连接。可以通过以下命令实现:

1.22 iptables -A INPUT -p tcp --dport 22 -m recent --name ssh --rcheck --seconds 60 --hitcount 3 -j DROP

检查 SSH 连接是否已经超过 3 次,如果在 60 秒内达到了 3 次,则拒绝连接。

1.23 iptables -A INPUT -m geoip --src-cc CN -j DROP

使用 geoip 模块限制国家/地区访问,只允许来自中国的数据包进入系统。

2  注意事项

iptables 是一个非常强大的工具,可以帮助我们保障系统的网络安全,但需要掌握一定的网络知识和技能,才能够正确地配置和使用 iptables。在使用 iptables 的时候,需要注意以下几点:

  • 确保自己已经备份了原始的 iptables 配置,以防止在操作过程中出现意外情况,导致系统无法访问网络。
  • iptables 规则的优先级很重要,如果某个规则匹配了数据包,则之后的规则就不再执行,因此必须保证规则的顺序正确。
  • 避免在 iptables 中使用 DROP 命令,除非非常必要,因为 DROP 会丢弃数据包,而 REJECT 会向发送方发送拒绝连接的消息,可以让发送方知道连接失败的原因。
  • 避免在 iptables 中使用 ACCEPT 命令,因为 ACCEPT 会接受所有的数据包,包括恶意数据包,容易被攻击者利用。
  • iptables 支持多个链,可以根据不同的目的和功能,将规则添加到不同的链中,从而更加灵活地管理网络安全。
  • iptables 支持模块化设计,可以使用不同的模块来扩展 iptables 的功能,例如使用 conntrack 模块来跟踪连接状态,使用 limit 模块限制流量,使用 geoip 模块限制地理位置等。
  • iptables 规则是在内核中执行的,因此对性能有一定的影响,需要合理地配置规则,避免过多的规则和不必要的复杂度,以保证系统的稳定性和安全性。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/211121
推荐阅读
相关标签
  

闽ICP备14008679号