先查看一下规则列表 .. sudo iptables -L .. 现在 INPUT 这个 Chain 的默认的 Policy 是 ACCEPT ,就是接受所有不符合规则里描述的数据包 ..
另外这里还有一些默认的规则,我们可以先把它们都清洗掉,然后重新去添加一些规则 .. sudo iptables -F ..
再保存一下 sudo service iptables save ..
下面我们可以把 INPUT 这个 Chain 默认的 Policy 修改成 DROP .. 不过要注意,我们不能把自己关外面, 所以需要先添加一个规则允许当前已经建立的或者相关的连接 ..
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-m 表示要用一个 module ,模块,模块的名字是 conntrack .. 它提供了一些功能,比如这个 --ctstate ,就是 conntrack 提供的东西 .. ESTABLISHED 意思就是允许已经创建的连接,RELATED 表示跟已经创建的连接相关的数据包 ..
然后我们可以再为 ssh 打开它需要的端口 .. 默认它使用的端口号是 22 ..
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
这行规则的意思就是允许使用 tcp 协议在 22 这个端口传输数据 .. 这个端口就是 ssh 服务默认使用的端口号 ..
下面我们就可以去把 INPUT 默认的 Policy 修改成 DROP 了 ..
sudo iptables -P INPUT DROP
最后再保存一下 .. sudo service iptables save