一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

服务器访问控制如何配置拒绝所有默认连接并按需放行

时间:2026-08-22 20:53:49 编辑:袖梨 来源:一聚教程网

最稳妥的iptables配置是默认策略设为DROP再逐条放行。先执行iptables -P INPUT DROP、iptables -P FORWARD DROP、iptables -P OUTPUT ACCEPT锁定流量;再优先放行lo接口和ESTABLISHED/RELATED状态连接;然后按需限制源IP开放服务端口;最后保存规则并验证。

直接设默认策略为 DROP,再逐条添加明确允许的规则,是最稳妥的做法。关键不是“加白名单”,而是建立一套有顺序、有状态、可验证的防护逻辑。

先锁定入口,再放行必要流量

执行以下三条命令,把 INPUT、FORWARD、OUTPUT 链的默认行为定下来:

  1. iptables -P INPUT DROP:所有进来的连接,默认拒绝
  2. iptables -P FORWARD DROP:不作路由或 NAT 时,直接关掉转发
  3. iptables -P OUTPUT ACCEPT:本机主动发出的请求,一般无需限制

注意:操作 INPUT 默认策略前,务必确保你有本地终端、带外管理(如 IPMI)或已提前放行 SSH(比如先加了 -p tcp --dport 22 的规则),否则可能被锁死。

必须优先放行的基础通信

这几条规则要放在其他服务规则之前,否则后续连接会失败:

  1. 回环接口(lo):iptables -A INPUT -i lo -j ACCEPT
  2. 已建立和关联连接:iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

这两条保障了本机自检、服务间调用、以及响应包能正常返回——没有它们,哪怕你开了 80 端口,网页也打不开。

按需开放具体服务端口

只开真正需要的端口,并尽量绑定来源限制:

  1. 仅允许某 IP 访问 SSH:iptables -A INPUT -p tcp -s 192.168.1.100 --dport 22 -j ACCEPT
  2. 只放行公司办公网段访问 Web:iptables -A INPUT -p tcp -s 203.0.113.0/24 --dport 80 -j ACCEPT
  3. 数据库端口严格限定来源:iptables -A INPUT -p tcp -s 10.0.5.20 --dport 3306 -j ACCEPT

不要写“-p tcp --dport 3306 -j ACCEPT”这种无来源限制的规则,那是高危配置。

保存并验证规则是否生效

规则在内存中运行,重启后会丢失,需手动保存:

  1. Debian/Ubuntu:iptables-save > /etc/iptables/rules.v4
  2. CentOS/RHEL:service iptables save 或使用 iptables-save > /etc/sysconfig/iptables

验证方式:iptables -L -n -v,重点看每条规则的 packet 计数是否随真实访问而增长;再用外部机器尝试访问已开放端口和未开放端口,确认行为符合预期。

热门栏目