iptable로 인해 ssh가 중단됩니까?

iptable로 인해 ssh가 중단됩니까?

두 개의 브리지를 통해 여러 VM을 실행하는 서버가 있고 iptables를 통해 호스트를 보호하고 싶습니다.

따라서 IN/OUTPUT: drop 및 FORWARD: accept에 대한 기본값과 SSH 액세스를 허용하는 일부 IN/OUTPUT 규칙이 있습니다.

이제 문제는 명령이 일부 출력 라인을 생성할 때 ssh-session이 겉보기에 정지되는 것처럼 보이는 이 설정에 있습니다. 예를 들어 date작동하지만 iptables -L또는 top출력 중간에 중단됩니다. 으로 세션을 종료 ~.하고 다시 로그인하고 iptables를 기본값으로 다시 설정하면 모든 것이 다시 작동합니다.

또한 iptables 규칙을 설정한 후 문제가 발생하기까지 시간이 걸립니다. 정확한 시간은 알 수 없지만 대략 5~20분 정도 된 것 같습니다.

그러한 문제의 원인이 무엇인지 또는 어떻게 진단할 수 있는지 아십니까?

답변1

실행해 보세요 iptables -L -n(-n 옵션 추가). 이름 확인으로 인해 iptables -L이 중단될 수 있습니다.

답변2

ICMP를 완전히 차단하고 있나요? 그렇다면PMTU 블랙홀.

답변3

설정된 트래픽을 허용하는 iptable 규칙이 있습니까?

iptables -A OUTPUT -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

네트워크의 분할된 지평선으로 인해 이 문제도 보았지만 iptable 규칙을 제거하면 문제가 사라지기 때문에 문제처럼 들리지 않습니다.

답변4

이는 MTU 블랙홀 문제일 수 있습니다.

MTU는 최대 전송 단위입니다. 각 측면에서 처리할 수 있는 패킷의 크기입니다. 이더넷의 기본값은 1500바이트이지만 이것이 유일한 가능성은 아닙니다.

짧은 명령은 두 MTU 크기보다 작기 때문에 작동합니다. 더 긴 것은 그렇지 않기 때문에 그렇지 않습니다.

연결의 양쪽 끝이 동일한 MTU를 사용하지 않거나 중간 네트워크의 MTU가 더 작은 경우 시스템은 이를 어떻게든 파악해야 합니다. 이 프로세스를 경로 MTU 검색이라고 합니다.

이것이 발생하는 방식은 ICMP 메시지를 사용하는 것입니다. 모든 ICMP를 차단하는 경우 유용한 항목을 차단하는 것입니다.

자세한 내용은 여기를 참조하세요:ICMP를 차단하지 않는 이유는 무엇입니까?

또한 중간에 있는 소규모 MTU 네트워크가 계층 2(예: 구성한 브리지)인 경우 경로 MTU 검색이 작동하지 않습니다. 패킷은 삭제되고 스위치/브리지 및/또는 이더넷 인터페이스에 오류로 표시됩니다.

관련 정보