iptables-persist는 모든 아웃바운드 연결을 차단합니다.

iptables-persist는 모든 아웃바운드 연결을 차단합니다.

방화벽 규칙을 설정하기 위해 iptables-persist를 사용합니다.

이것은 내 표준 구성입니다.

*filter     
:INPUT DROP [0:0]     
:FORWARD ACCEPT [0:0]     
:OUTPUT ACCEPT [0:0]     
-A INPUT -p tcp --dport 2123 -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT     
COMMIT

문제는 데비안 서버에서 패키지를 다운로드할 수 없고 로컬 및 외부 IP 주소를 핑할 수 없다는 것입니다.

INPUT은 "들어오는" 연결에서만 작동합니다. 이것이 맞습니까?

다음은 IPv6에 대한 규칙입니다.

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
COMMIT

답변1

당신이 겪고 있는 문제는 들어오는 패킷을 허용하지 않는다는 것입니다. 따라서 외부 서버에 접속하려고 하면 응답을 받을 수 없습니다!

종종 이는 "확립된" 규칙에 의해 처리될 수 있습니다.

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

여기서의 아이디어는 나가는 연결과 일치하는 들어오는 패킷이 다시 허용된다는 것입니다.

지금은기본적으로 폐기됨수신 체인의 경우 다른 문제(예: ICMP 패킷)가 나타날 수 있으므로 요구 사항에 따라 이를 허용해야 할 수도 있습니다.

답변2

문제가 해결되었습니다.

새로운 고정 규칙:

*filter
:INPUT DROP [0:0] 
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -i lo -j ACCEPT
-A FORWARD -o lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp --dport 2123 -m mac --mac-source XX:XX:XX:XX:XX:XX -j    ACCEPT
COMMIT

답변3

iptables를 더 효과적으로 제어하려면 conntrack "--ctstate" 모듈을 사용하세요. "--state"보다 더 좋고 최신입니다.

예를 들어:

iptables -A INPUT -p tcp -m tcp -m conntrack --ctstate ESTABLISHED -j ACCEPT

답변4

나는 iptables 규칙에 대한 전문가라고 주장하지 않지만 conntrack 모듈은 연결 추적 확장(conntrack)을 사용하고 있고 두 번째 모듈은 상태 확장을 사용하고 있습니다. ~에 따르면이 파일conntrack 확장은 상태를 대체합니다.

Obsolete extensions: • -m state: replaced by -m conntrack

추가 정보여기

관련 정보