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

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

我怎样才能阻止除以下端口之外的所有端口:

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

使用iptablesipchains

答案1

哪个 Linux 发行版?你最好使用更高级别的防火墙,例如 ufw:

以 root/sudo 身份:

ufw default deny
ufw allow ssh
ufw allow http
ufw enable

答案2

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

答案3

ufw默认使用阻止所有内容但允许 ssh 和 http/https:

sudo ufw default deny incoming
sudo ufw default deny outgoing
sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable

还请记住,默认情况下 Docker 和 ufw 不能很好地协同工作,您需要按照那里的说明更改 Docker 守护程序配置:https://stackoverflow.com/a/49563279/561309

相关内容