Iptables의 INPUT에서 언제 sport 또는 dport를 사용합니까?

Iptables의 INPUT에서 언제 sport 또는 dport를 사용합니까?

로컬 네트워크의 사용자가 포트 22를 사용하지 못하도록 하고 싶습니다. 내 Linux 서버가 트래픽을 제어합니다.iptables. 어떤 규칙이 가장 적절합니까?

iptables -A INPUT -i $LAN -p tcp --sport 22 -j DROP

또는

iptables -A INPUT -i $LAN -p tcp --dport 22 -j DROP

중요: 이 규칙은 단지 예일 뿐입니다. 답변에서 예시 포트를 선택할 수 있습니다.

dport나는 체인의 합계가 sport어떤 시나리오에서 사용되는지 알고 싶습니다 INPUT. 대답은 다른 예를 사용할 수 있습니다

추신: 질문의 목적은 로컬 LAN 네트워크 사용자가 이 포트(또는 다른 포트)에 액세스하지 못하도록 방지하는 것입니다. 따라서 규칙은 로컬 LAN 네트워크(WAN이 아님)의 인터페이스만 대상으로 해야 합니다. $LANLAN 인터페이스의 변수입니다(예 enp2s1: eth1등).

답변1

dport나는 체인의 합계가 sport어떤 시나리오에서 사용되는지 알고 싶습니다 INPUT.

컴퓨터의 서비스에 대한 액세스를 제한하려는 경우가 많습니다. TCP 핸드셰이크의 초기 패킷은 클라이언트에서 서버로 이루어지기 때문에 체인 dport에서 INPUT로컬 서비스에 대한 액세스를 제어하거나 dport체인에서 OUTPUT제거된 서비스(로컬 호스트에서)에 대한 액세스를 제어하는 ​​데 더 일반적으로 사용됩니다. ).

iptables -A INPUT -p tcp --dport 22 -j DROP // prevents access to a local SSH server
iptables -A OUTPUT -p tcp --dport 22 -j DROP // prevents access to a remote SSH server

대부분의 TCP 기반 프로토콜은 클라이언트가 바인딩된 포트에 관심이 없습니다. 관리자는 특정 클라이언트 포트에서만 로컬 서비스에 대한 액세스를 허용할 수 있지만(기본적으로 Linux에서는 1024 미만의 포트 번호에 바인딩하려면 추가 권한이 필요하다는 점을 기억하세요) 이는 일반적이지 않습니다.

답변2

iptables -A INPUT -p tcp --sport 22 -j DROP

SSH 서버의 INPUT 프레임이 차단됩니다. 그러면 외부 SSH 서버에 액세스할 수 없습니다.

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

SSH 클라이언트의 INPUT 데이터 프레임이 차단됩니다. 그러면 누구도 귀하의 SSH 서버에 접근할 수 없습니다. 나는 이것이 당신이 원하는 것이라고 생각합니다.

참고: 호스트를 보호하는 일반적인 방법은 모든 것을 차단하고 필요한 것을 허용하는 것입니다. 아마도 ufw당신을 보호하는 데 도움이 될 것입니다. 대부분의 요구 사항을 충족하는 더 높은 수준의 방화벽입니다. ( ufw연결 방향을 처리합니다. iptable데이터 프레임의 방향은 낮은 수준에 있습니다.)

관련 정보