예: IP/호스트당 SSH 연결 제한

예: IP/호스트당 SSH 연결 제한

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

예: IP/호스트당 SSH 연결 제한

/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

OK : n 연결을 최대로 제한하려면 다음은 ip 제한 모듈을 사용하는 예입니다.

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

3개의 IP가 연결되어 있으면 연결이 거부됩니다. 귀하의 질문을 오해했다면 죄송합니다;)

관련 정보