问题描述
如何封锁除1962、999、12020以外的所有端口?
一个用于SSH的端口,另一个用于一个脚本的端口。因此,有必要允许这些端口上的传出,对吗?
我的iptables:
# Generated by iptables-save v1.4.4 on Sat Feb 25 17:25:21 2012
*mangle
:PREROUTING ACCEPT [643521:136954367]
:INPUT ACCEPT [643521:136954367]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [645723:99904505]
:POSTROUTING ACCEPT [645723:99904505]
COMMIT
# Completed on Sat Feb 25 17:25:21 2012
# Generated by iptables-save v1.4.4 on Sat Feb 25 17:25:21 2012
*filter
:INPUT ACCEPT [643490:136950781]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [645723:99904505]
-A INPUT -p tcp -m tcp --dport 1962 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 999 -j ACCEPT
COMMIT
# Completed on Sat Feb 25 17:25:21 2012
# Generated by iptables-save v1.4.4 on Sat Feb 25 17:25:21 2012
*nat
:PREROUTING ACCEPT [5673:734891]
:POSTROUTING ACCEPT [2816:179474]
:OUTPUT ACCEPT [2816:179474]
COMMIT
# Completed on Sat Feb 25 17:25:21 2012
抱歉,但是我真的是个新手,我只想让我的服务器更安全。
最佳回答
起初,您应该始终冲洗以确保已定义了什么……没什么
iptables -F
然后,如果到达末尾并且没有匹配的规则,则将INPUT链的默认策略设置为DROP:
iptables -P INPUT DROP
为了确保不影响环回,您应该添加
iptables -A INPUT -i lo -p all -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
以允许lo-if上的所有流量以及您建立的连接的所有传入流量。之后,添加您服务所需的每条规则(如果需要,请不要忘记打开ssh!否则您就出局了):
iptables -A INPUT -p tcp -m tcp --dport 1962 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 999 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 12020 -j ACCEPT
我做了一些小技巧,以防止自己和其他人意外地钻入我最终添加的安全性漏洞:
iptables -A INPUT -j DROP
该行匹配INPUT链的所有内容,并且该策略不应获得任何东西。这样做的好处是,即使您在初始化规则集后的某个时候添加了ACCEPT-rule,也不会检查它,因为之前已删除所有内容。这样可以确保您将所有内容都放在一个地方。
对于您的问题,整个内容总结如下:
iptables -F
iptables -P INPUT DROP
iptables -A INPUT -i lo -p all -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 1962 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 999 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 12020 -j ACCEPT
iptables -A INPUT -j DROP
次佳回答
像您这样的新手回复:-)我也需要保护我的Ubuntu服务器,学习iptables是我无法克服的痛苦。 UFW(简单防火墙)是使防火墙配置尽可能简单的程序。
-
安装ufw:
sudo apt-get install ufw
-
立即禁用它(我必须使用rescue-boot,因为我被自己的SSH登录名锁定了):
sudo ufw disable
-
将”deny”设置为默认规则(这将阻止所有端口):
sudo ufw default deny
-
允许您需要的端口:
sudo ufw allow to 1962 sudo ufw allow to 999 sudo ufw allow to 12020 sudo ufw allow from 1962 sudo ufw allow from 999 sudo ufw allow from 12020
-
如果确定上述规则不会破坏ssh连接,请启用ufw:
sudo ufw enable
文档写得很好,并提供了更多示例:https://help.ubuntu.com/community/UFW