연결이 imap.gmail.com으로 제한되면 Mutt가 때때로 중단됩니다.

연결이 imap.gmail.com으로 제한되면 Mutt가 때때로 중단됩니다.

이메일 클라이언트가 1개의 IMAP 서버(imap.gmail.com)에만 연결되도록 제한하고 싶습니다. 그리고 다음과 같은 iptables 규칙을 작성했습니다.

iptables -A OUTPUT -d imap.gmail.com -p tcp --dport imaps -j ACCEPT

나는 이메일 클라이언트를 가지고 있습니다: mutt는 때때로 이 서버에 연결합니다. 때로는 그렇지 않습니다.

규칙에서 "-d imap.gmail.com"을 제거하면 매번 작동하기 시작합니다.

iptables -A OUTPUT -p tcp --dport imaps -j ACCEPT

어쩌면 이것은 Gmail에 많은 IP가 있고 mutt가 다음에 다른 IP에 연결을 시도한다는 사실과 관련이 있을 수 있습니다. 방화벽이 차단할까요?

이 경우 허용된 호스트를 어떻게 지정해야 합니까?

답변1

imap.gmail.com대용량, 고가용성 서비스의 경우 다양한 IP 주소를 갖는 것은 놀라운 일이 아닙니다. DNS 서버는 분명히 두 개의 주소를 반환하지만(적어도 나에게는) 주소 집합은 시간이 지남에 따라 변경됩니다(캐싱으로 인해 몇 분 동안 동일하게 유지됨).

규칙을 설정하면 DNS 서버는 A1과 A2라는 두 개의 주소를 반환합니다. iptables 프로그램은 이를 감지하고 두 개의 IP 주소 각각에 대해 하나씩 두 개의 규칙을 생성할 만큼 똑똑합니다.

몇 분 후 이메일 클라이언트를 실행하면 DNS 요청이 A3 및 A4라는 두 개의 주소를 반환합니다. 이 주소는 대부분의 경우 A1 및 A2와 다릅니다. 따라서 mutt는 첫 번째 A3를 사용하고 해당 주소는 방화벽에 의해 차단됩니다.

방화벽은 IP 패킷만 볼 수 있습니다. 이메일 클라이언트가 어떤 DNS 이름을 사용하는지 알 수 없습니다. 실제로 이메일 클라이언트는 IP 주소를 직접 사용할 수 있습니다. IP 패킷은 IP 주소로 전송되며 호스트 이름을 포함하지 않습니다. IMAP 연결 내부에 호스트 이름이 있을 수 있지만 IMAPS를 사용하고 있으므로 연결이 암호화되어 방화벽이 트래픽을 모니터링할 수 없습니다.

서버는 SSL 핸드셰이크 중에 인증서에 있는 ID를 보내므로 트래픽을 검사하고 서버 인증서가 마음에 들지 않으면 연결을 중단할 수 있습니다.iptables를 사용하여 이 작업을 수행할 수 있습니다., 100% 신뢰할 수는 없지만 (일치하는 문자열이 단일 TCP 패킷 내에 있는 경우에만 작동한다고 생각합니다). 이 작업을 완전히 안정적으로 수행하려면 내용에 민감한 프록시를 설정해야 합니다.

관련 정보