使用iptables限制到端口的IP连接,但允许一个IP到无限制的连接

时间:2016-07-27 16:42:32

标签: linux iptables connection

我需要限制同时连接到我的linux服务器上的某些端口,然后我发现这个iptables规则限制:

iptables -I INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 10 -j DROP

但我需要知道,如何将IP列入白名单以跳过限制。

参见示例:

netstat -antu | grep:80 | awk'{print $ 5}'| cut -d:-f1 |排序| uniq -c | sort -nr |头-20

406 45.43.xxx.xxx
246 186.249.7.100
118 108.171.138.160
 16 200.209.136.11
  9 189.125.114.245
  8 164.85.83.104
  7 108.21.116.86

我需要将连接限制为10,例如允许IP 45.43.xxx.xxx无限制连接。

我需要在80,1935和554端口上进行此操作

2 个答案:

答案 0 :(得分:0)

这样的事情会起作用:

iptables -s <goodip> ... other stuff ... -j ACCEPT
iptables ... other stuff ... --connlimit-above 10 -j REJECT

REJECT可能比DROP更好。这样,至少,客户端会收到连接被拒绝的通知,因此它将停止重试,而不仅仅是&#34;嘿,我从来没有得到对最后一次连接的响应,所以我会尝试再次&#34; ...

答案 1 :(得分:0)

这是对的吗?

允许IP:

iptables -I INPUT -p tcp -s 000.000.000.000 --syn --dport 80 -m connlimit --connlimit-above 10 -j DROP

拒绝其他人限制为10个连接:

iptables -I INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 10 -j DROP