Linux - iptables는 3개의 IP만 허용합니다.

Linux - iptables는 3개의 IP만 허용합니다.

저는 Linux Mint를 사용하고 있으며 포트 5210(IP 3개 제외)으로 들어오는 모든 연결을 차단하고 싶습니다. 많은 스레드를 검색하고 탐색한 결과 LAN IP 범위만 허용하는 결과만 찾았으며 LAN에 없는 정확히 3개의 다른 IP를 허용하는 것과 관련된 내용을 찾을 수 없었습니다.

무엇을 해야 하며 무엇을 검색해야 합니까?

답변1

3개를 허용하고 나머지는 거부/삭제합니다. 명령줄에서 다음을 수행합니다 iptables.

iptables -A INPUT -p tcp --dport 5210 --source "$addr1" -j ACCEPT
iptables -A INPUT -p tcp --dport 5210 --source "$addr2" -j ACCEPT
iptables -A INPUT -p tcp --dport 5210 --source "$addr3" -j ACCEPT
iptables -A INPUT -p tcp --dport 5210 -j REJECT

예를 들어 addr2첫 번째 규칙은 일치하지 않아 무시되는 반면, 두 번째 규칙은 일치하고 패킷을 수락합니다.

또는 세 개의 주소에 대해 아무 작업도 수행하지 않고 나머지는 거부한 다음 상위 수준에서 추가 처리를 수락하거나 수행하는 체인을 만듭니다.

iptables -N p5210
iptables -A p5210 --source "$addr1" -j RETURN
iptables -A p5210 --source "$addr2" -j RETURN
iptables -A p5210 --source "$addr3" -j RETURN
iptables -A p5210 -j REJECT

iptables -A INPUT -p tcp --dport 5210 -j p5210
# add whatever further limitations you want
iptables -A INPUT -p tcp --dport 5210 -j ACCEPT 

물론 주소를 변수에 넣고 루프를 사용하여 모든 주소에 대해 동일한 명령을 실행하는 것도 옵션입니다.

#!/bin/bash
allowed_addresses=(1.2.3.4 4.5.6.7 7.8.9.0)
for addr in "${allowed_addresses[@]}" ; do 
    iptables -A INPUT -p tcp --dport 5210 --source "$addr" -j ACCEPT
done

관련 정보