在 ipchains 和 iptables 中阻止除 SSH/HTTP 之外的所有端口

5 linux firewall port iptables blocking

我怎样才能阻止所有端口,除了:

  1. ssh(端口 22)
  2. httpd(端口 80)

使用iptablesipchains

3h4*_*h4x 8

IP 链很旧,我不推荐它们。

一个简单的脚本:

#!/bin/bash
IPTABLES=/sbin/iptables

#start and flush
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -X
$IPTABLES -P FORWARD DROP
$IPTABLES -P INPUT   DROP
$IPTABLES -P OUTPUT  ACCEPT

#SSH traffic
$IPTABLES -A INPUT -p tcp --dport 22 -j ACCEPT
#HTTP traffic
$IPTABLES -A INPUT -p tcp --dport 80 -j ACCEPT

#loopback
$IPTABLES -A INPUT -i lo -p all -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

  • 我在我的服务器上运行了这个脚本并将自己锁在外面:) (11认同)
  • @Zilupe 要轻松地访问服务器,请记得在编辑防火墙时使用 cron - 例如:*/2 * * * * iptables -P INPUT ACCEPT (3认同)

ask*_*tor 8

哪个Linux发行版?使用更高级别的防火墙(如 ufw)可能会更好:

以 root/sudo 身份:

ufw default deny
ufw allow ssh
ufw allow http
ufw enable
Run Code Online (Sandbox Code Playgroud)