如何阻止除 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
Run Code Online (Sandbox Code Playgroud)
对不起,但我是一个真正的新手,我只是想让我的服务器更安全。
Mos*_*ose 25
起初你应该总是刷新以确保已经定义了什么......没有
iptables -F
Run Code Online (Sandbox Code Playgroud)
然后将 INPUT 链的默认策略设置为 DROP 如果到达末尾并且没有匹配的规则:
iptables -P INPUT DROP
Run Code Online (Sandbox Code Playgroud)
为确保环回不受影响,您应该添加
iptables -A INPUT -i lo -p all -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
允许 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
Run Code Online (Sandbox Code Playgroud)
我做了一个小技巧,以防止自己和其他人不小心在安全性上钻孔,我最后添加:
iptables -A INPUT -j DROP
Run Code Online (Sandbox Code Playgroud)
此行匹配 INPUT 链的所有内容,策略不应获得任何内容。这样做的好处是,即使您在初始化规则集后的某个时间添加了 ACCEPT 规则,它也永远不会被检查,因为之前所有内容都已删除。所以它确保你必须将所有东西放在一个地方。
对于您的问题,整个事情总结如下:
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
Run Code Online (Sandbox Code Playgroud)
小智 23
像你这样的新手的回复:-) 我也需要保护我的 Ubuntu 服务器,学习 iptables 是我无法忍受的痛苦。UFW(Uncomplicated Firewall)是一个使防火墙配置尽可能简单的程序。
安装 ufw:
sudo apt-get install ufw
Run Code Online (Sandbox Code Playgroud)立即禁用它(我不得不救援启动,因为我被锁定在我自己的 SSH 登录之外):
sudo ufw disable
Run Code Online (Sandbox Code Playgroud)将“拒绝”设置为默认规则(这会阻止所有端口):
sudo ufw default deny
Run Code Online (Sandbox Code Playgroud)允许您需要的端口:
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
Run Code Online (Sandbox Code Playgroud)如果您确定上述规则不会破坏您的 ssh 连接,请启用 ufw:
sudo ufw enable
Run Code Online (Sandbox Code Playgroud)文档写得很好并提供了更多示例:https : //help.ubuntu.com/community/UFW
归档时间: |
|
查看次数: |
42891 次 |
最近记录: |