iptables를 사용하여 SSH 차단

iptables를 사용하여 SSH 차단

두 개의 네트워크 카드가 있는 Linux 상자(Turnkey Core 14.2)가 있습니다.

eth0공용 IP, WAN(우리가 부르는 이름 123.123.123.123)입니다.

eth1그것은 내 네트워크, LAN입니다.

SSHWAN을 통해 차단 하고 싶습니다 iptables.

나는 명령을 사용한다

sudo iptables -A INPUT -p tcp -s 123.123.123.123 --dport 22 -j DROP

내가 그때 글을 쓴다면

sudo iptables -L

나는 답을 얻었다

Chain INPUT (policy ACCEPT)

target   prot opt source            destination

DROP     tcp  --  123.123.123.123   anywhere      tcp dpt:ssh

PuTTY문제는 123.123.123.123에 연결하는 데 사용하면 차단되지 않는다는 것입니다.

내가 뭘 잘못하고 있는지 아시나요?

답변1

-s대상 주소(옵션)가 아닌 소스 주소(옵션)를 기준으로 트래픽을 일치시키므로 -d규칙이 다른 호스트의 트래픽을 삭제하지 않습니다.

주소 대신 인터페이스를 입력하여 -i옵션을 일치시킬 수도 있습니다. 예를 들어 모든 수신 포트 트래픽을 삭제합니다.번호 22~을 위한이더넷 0:

iptables -A INPUT -i eth0 -p tcp --dport 22 -j DROP

답변2

@sebasth가 대답했듯이 공용 IP에 연결하려는 트래픽을 차단하고 싶기 때문에 123.123.123.123다음 아키텍처가 됩니다.

source `INTERNET`
destination `123.123.123.123`

따라서 -s(소스)를 -d(대상) 으로 변경할 수 있습니다.

회선 과 관련하여 (추가) 대신 (삽입) iptables을 사용하여 추가하는 것이 좋습니다. 왜냐하면 어떤 이유로든 들어오는 모든 트래픽을 허용하는 이전 규칙이 있는 경우 해당 규칙이 회선 끝에 추가되고 첫 번째 규칙이 발견됩니다.-I-Aport 22-Aiptables

iptables -I INPUT -p tcp -d 123.123.123.123/32 --dport 22 -j DROP

~에서man iptables

-A, --append chain 규칙 사양은 선택한 체인의 끝에 하나 이상의 규칙을 추가합니다. 소스 및/또는 대상 이름이 여러 주소로 확인되면 가능한 각 주소 조합에 대한 규칙이 추가됩니다.

-I, --insert chain [rulenum] 규칙 사양은 선택한 체인에 하나 이상의 규칙을 주어진 규칙 번호로 삽입합니다. 따라서 규칙 번호가 1이면 체인의 선두에 하나 이상의 규칙이 삽입됩니다. 규칙 번호가 지정되지 않은 경우에도 이는 기본값입니다.

관련 정보