如何设置iptables来阻止除SSH在Debian的Linux的所有流量?

检查当前iptables配置
iptables -S

如下输出应该是空的…

  -p输入ACCEPT
  -P FORWARD ACCEPT
  -P OUTPUT ACCEPT

 

如果你的iptables是不是空的正上方,然后额外的端口可能是你的机器上开启. 在这种情况下, 刷新表, 类型 iptables -F, 然后通过键入检查iptables配置 iptables -S.

 

保证是根

su
 

一次输入以下配置命令一行. 请确保输入顺序是一样的下面, 否则,你可能会阻止SSH.

   iptables的INPUT -A -i LO -j ACCEPT
   iptables的INPUT -A -p tcp的-m TCP --dport 22 -ĴACCEPT
   iptables的-A OUTPUT -o LO -j ACCEPT
   iptables的-A OUTPUT -p tcp的--sport 22 -米状态--state ESTABLISHED -j ACCEPT
   iptables的-P INPUT DROP
   iptables的-P OUTPUT DROP

在以上, Lo是这是由一些应用程序,没有它的一些应用程序可能需要打破的环回适配器.

 

您也可以允许所有流量输出. 因此, 以下规则将改为适用上述的…

   iptables的INPUT -A -i LO -j ACCEPT
   iptables的INPUT -A -p tcp的-m TCP --dport 22 -ĴACCEPT
   iptables的-P INPUT DROP

 

如果你想允许建立相关的数据包,然后下面的规则将适用. 如果没有这个,你将无法使用apt-get和git请求. 改用以上的下列 2 规则集.

   iptables的INPUT -I -m状态--state ESTABLISHED,相关-j ACCEPT
   iptables的INPUT -A -i LO -j ACCEPT
   iptables的INPUT -A -p tcp的-m TCP --dport 22 -ĴACCEPT
   iptables的-P INPUT DROP

一旦你决定最适合您的系统的规则, 你将需要保存的规则, 否则他们不会重启后持续

保存规则文件

iptables-save > /etc/iptables.conf

上述保存您的规则文件. 然后,您将需要加载在每次重新启动您的规则

nano /etc/rc.local

以下行添加到文件, 以上 exit 0

iptables-restore < /etc/iptables.conf
 

下面是一些含义的规则...

确定的含义,所述分组与已经看到分组在两个方向上的连接相关联

相关含义数据包开始新的连接, 但与现有连接相关联, 如FTP数据传送, 或者一个ICMP错误.