iptables 或 firewalld 关闭除 ssh 之外的所有端口?

iptables 或 firewalld 关闭除 ssh 之外的所有端口?

我有以下问题:如何关闭除端口 22 之外的所有端口。nmap 显示了所有使用的端口:

nmap localhost

Starting Nmap 7.01 ( https://nmap.org ) at 2017-02-20 20:06 CET
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000050s latency).
Other addresses for localhost (not scanned): ::1
Not shown: 999 closed ports
PORT   STATE SERVICE
22/tcp open  ssh

Nmap done: 1 IP address (1 host up) scanned in 0.08 seconds

netstate显示打开的连接:

sudo netstat -tulpen | grep -v '127.0.0.1'  | grep -v '::1:'
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      0          160309215   286/sshd        
tcp6       0      0 :::22                   :::*                    LISTEN      0          160309218   286/sshd  

但是这 999 个并没有真正关闭,它们并没有被使用。

iptables -L 给出:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

所以现在每个端口都开放了。

由于这是一个外部服务器,所以我必须保持端口 22 打开,因为我在更改设置时使用通过端口 22 的 ssh 连接。

配置此功能的最佳方法是什么?

我可以停止 iptables 并启动防火墙并进行配置吗?或者我可以暂时停止 iptables,进行更改然后重新启动 iptables 吗?

或者是否有一些我可以编辑的配置文件?

我对这些配置不是很熟悉,但我必须小心且正确地进行配置。

在此先感谢您的帮助!

答案1

对于这种简单的事情,我会使用 ufw。它是默认安装的,但让我们确保:

~$ which ufw如果安装了 ufw,则应返回\usr\bin\ufw。如果 ufw不是已安装: ~$ sudo apt-get install ufw

以下步骤只有在您启用或重新加载防火墙后才会生效,因此您不会被踢出。

~$ sudo ufw default deny incoming
~$ sudo ufw default allow outgoing
~$ sudo ufw allow in 22/tcp

您刚刚告诉防火墙 (a) 不让任何东西进入,(b) 让所有内容出去,以及 (c) 让 tcp 从端口 22 进入。要使这些规则生效:

~ $ sudo ufw disable
~ $ sudo ufw enable

现在您将收到警告:

Command may disrupt existing ssh connections. Proceed with operation (y|n)? 

如果你确定你已经仔细遵循了这些说明,那么回答是。最后,让我们使用以下命令显示防火墙状态sudo ufw status verbose

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW IN    Anywhere                  
22/tcp (v6)                ALLOW IN    Anywhere (v6) 

请阅读 ufw 手册页以获取更多信息。

相关内容