Пример: ограничение количества SSH-подключений на IP-адрес/хост

Пример: ограничение количества SSH-подключений на IP-адрес/хост

У меня есть открытый порт 40002, я хочу ограничить, чтобы одновременно к порту мог подключаться только один IP-адрес (не конкретный адрес). Если к этому порту уже подключен IP-адрес, другие IP-адреса не смогут подключиться.

возможно ли настроить его с помощью Iptables или скриптов? у меня Ubuntu 14.04 спасибо.

решение1

Это можно сделать, настроив iptables.

/sbin/iptables -A INPUT -p tcp --syn --dport $port -m connlimit --connlimit-above N -j REJECT --reject-with tcp-reset
# save the changes see iptables-save man page, the following is redhat and friends specific command
service iptables save

Пример: ограничение количества SSH-подключений на IP-адрес/хост

/sbin/iptables  -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 3 -j REJECT
# save the changes see iptables-save man page, the following is redhat and friends specific command
service iptables save

ТЕСТИРОВАНИЕ:

#!/bin/bash
ip="202.1.2.3"
port="80"
for i in {1..100}
 do
 # do nothing just connect and exit
echo "exit" | nc ${ip} ${port};
done

ОК: Чтобы ограничить максимальное количество подключений, вот пример использования модуля ограничения IP:

iptables -A INPUT -p tcp --syn -dport 40002 -m iplimit --iplimit-above 3 -J REJECT

Это ОТКЛОНИТ соединения, если подключено 3 IP. Извините, если я неправильно понял ваш вопрос ;)

Связанный контент