最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
怎样通过 iptables 防火墙设置 Linux 入站访问过滤规则
时间:2026-07-02 10:16:45 编辑:袖梨 来源:一聚教程网
iptables设置入站规则核心是合理配置INPUT链,默认策略设为DROP、优先放行lo和ESTABLISHED连接、按需开放端口、最后持久化保存。直接设置入站访问过滤规则,核心是控制 INPUT 链的流量走向。关键不在“加多少条”,而在于顺序、默认策略和状态匹配是否合理。下面分四块说清楚:
先设默认拒绝策略
不设默认策略,所有规则都可能失效。执行以下命令,让 INPUT 和 FORWARD 链默认丢弃所有未明确允许的入站包:
- sudo iptables -P INPUT DROP
- sudo iptables -P FORWARD DROP
- OUTPUT 一般保持 ACCEPT(sudo iptables -P OUTPUT ACCEPT),确保本机可正常发请求
注意:这条命令要最先执行,否则后续添加的 ACCEPT 规则可能被隐式放行覆盖。
必须放行的基础连接
设了 DROP 后,连 SSH 都连不上——所以得立刻补上两条保命规则:
- 本地回环通信:sudo iptables -A INPUT -i lo -j ACCEPT
- 已建立/关联连接:sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
这两条放在最前(用 -A 追加即可,因默认策略在链首生效,它们实际排在 DROP 前面),保证你不会被锁在服务器外。
按需开放服务端口
只开真正需要的端口,避免宽泛放行。常用写法:
- SSH(限制来源更安全):sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT
- HTTP/HTTPS:sudo iptables -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
- 自定义端口(如 8080):sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
如果只给特定 IP 访问某端口,把 -s x.x.x.x 加在对应规则里即可;不要用 -j ACCEPT 放行整个网段,除非真有必要。
保存规则并验证
iptables 规则重启即失效,必须持久化:
- Debian/Ubuntu 系统:sudo netfilter-persistent save(需先安装
iptables-persistent) - CentOS/RHEL:sudo service iptables save 或 sudo iptables-save > /etc/sysconfig/iptables
验证是否生效:
- 查规则列表:sudo iptables -L -n --line-numbers
- 看计数是否增长:sudo iptables -L -v -n(观察 pkts 列)
- 测试端口连通性(从另一台机器 telnet 或 curl)
相关文章
- 提升设计效率的ai排版软件下载怎样满足快速创作需求 07-02
- 女吊第三章假人装扮谜题解法攻略分享 07-02
- 如何利用ai公文写作软件提升办公效率:快速生成专业文档 07-02
- AI公文写作软件推荐:这5款高效又专业! 07-02
- AI排版软件下载: 轻松搞定设计与排版的利器 07-02
- AI排版画册:让设计变得更简单 07-02