적절한 패킷이 허용되어야 하는데 iptables가 삭제/로그되는 이유는 무엇입니까?

적절한 패킷이 허용되어야 하는데 iptables가 삭제/로그되는 이유는 무엇입니까?

저는 iptables 방화벽, fall2ban, openvpn, apache 등과 같은 일부 애플리케이션을 사용하여 Debian Jessie를 실행하는 서버를 설정하고 있습니다.

iptables 방화벽은 삭제된 모든 패킷을 기록하도록 구성됩니다. iptables 구성에서 작은 발췌:

...
-A INPUT -m comment --comment "003 accept related established rules IPv4" -m state --state RELATED,ESTABLISHED -j ACCEPT
...
-A INPUT -p tcp -m multiport --dports 1194 -m comment --comment "303 allow incoming OpenVPN" -m state --state NEW -j ACCEPT
...
-A INPUT -m comment --comment "900 IPv4 log dropped input chain" -j LOG --log-prefix "[IPTABLES INPUT IPv4] DROP " --log-level 6
-A INPUT -m comment --comment "910 IPv4 deny all other input requests" -j DROP

OpenVPN(포트 1194 사용)이 제대로 작동합니다. 많은 데이터를 전송해야 할 때까지 연결하고 연결을 사용하고 몇 시간 동안 작업할 수 있습니다. 이때 로그에는 다음 줄이 나타납니다.

Mar 02 20:39:27 rs3 kernel: [IPTABLES INPUT IPv4] DROP IN=eth0 OUT= MAC=ae:12:7b:9b:5d:e4:00:15:c7:c9:45:80:08:00 SRC=<MyIPAddress> DST=<ServerIPAddress> LEN=40 TOS=0x00 PREC=0x00 TTL=55 ID=20713 DF PROTO=TCP SPT=61941 DPT=1194 WINDOW=3040 RES=0x00 ACK URGP=0
Mar 02 20:39:27 rs3 kernel: [IPTABLES INPUT IPv4] DROP IN=eth0 OUT= MAC=ae:12:7b:9b:5d:e4:00:15:c7:c9:45:80:08:00 SRC=<MyIPAddress> DST=<ServerIPAddress> LEN=40 TOS=0x00 PREC=0x00 TTL=55 ID=20718 DF PROTO=TCP SPT=61941 DPT=1194 WINDOW=3040 RES=0x00 ACK URGP=0 
Mar 02 20:39:27 rs3 kernel: [IPTABLES INPUT IPv4] DROP IN=eth0 OUT= MAC=ae:12:7b:9b:5d:e4:00:15:c7:c9:45:80:08:00 SRC=<MyIPAddress> DST=<ServerIPAddress> LEN=40 TOS=0x00 PREC=0x00 TTL=55 ID=20719 DF PROTO=TCP SPT=61941 DPT=1194 WINDOW=3040 RES=0x00 ACK URGP=0 

[이 로그는 Fail2ban에서 가져온 것입니다. 서버가 내 로컬 컴퓨터에 대한 연결을 끊었습니다. ]

Q: 이러한 패킷이 삭제(및 기록)되는 이유는 무엇입니까? 즉, 이러한 패킷이 "RELATED,ESTABLISHED" 규칙에 의해 처리되지 않는 이유는 무엇입니까?

지금까지 내가 한 일은 문서를 읽고, 문제에 대해 생각하고, 규칙을 계속해서 확인하고, 인터넷에서 검색했지만 아무것도 나오지 않았습니다.

편집: 아마도 이것이 중요할 것입니다: Fail2ban에 의해 생성된 DROP 목록에는 약 500개의 항목이 있습니다.

편집: 이유를 알고 싶습니다(그래서 질문에 "왜"를 사용했습니다). 나는 해결책에 관심이 없습니다.

편집: 이 동작은 OpenVPN에만 국한되지 않으며 다른 프로토콜(예: ssh)을 사용해도 동일한 문제가 있습니다.

편집: 인상을 주려면 Wireshark 스크린샷을 살펴보십시오. 강조 표시된 패킷은 삭제/기록되었으며 스크린샷의 다른 모든 패킷은 삭제되지 않았습니다.

적절한 로그는 다음과 같습니다.

Mar 03 10:16:23 rs3 kernel: [IPTABLES INPUT IPv4] DROP IN=eth0 OUT= MAC=ae:12:7b:9b:5d:e4:00:15:c7:c9:45:80:08:00 SRC=<MyIPAddress>.117 DST=<ServerIPAddress>.116 LEN=40 TOS=0x00 PREC=0x00 TTL=55 ID=11550 DF PROTO=TCP SPT=63526 DPT=1194 WINDOW=32038 RES=0x00 ACK URGP=0 

IP ID(11550)를 사용하여 Wireshark에서 패킷을 찾았습니다. 이 ID를 가진 유일한 IP 패킷입니다.

Wireshark 패킷 세부 정보 로깅

편집: 서버 IP는 고정 IP입니다. 동적으로 할당된 IP 주소는 테스트 중에 변경되지 않았습니다. 연결은 로컬 컴퓨터에서 서버로 시작됩니다. 설정은 다음과 같습니다:

=================      ===================      ===============
| LocalComputer | ---- | NAT Router .117 | ---- | Server .116 |
=================      ===================      ===============
   Private IP            Dynam. Assigned            Fixed IP
                       but fixed during test

답변1

이러한 로그 항목이 있지만 iptables규칙과 일치하지 않으므로 RELATED,ESTABLISHED연결 추적기 보고서에서는 이를 이전과 관련이 없는 새 세션의 시작으로 간주합니다. 항상 그런 것은 아니지만 일반적으로 이는 세션이 연결 추적기 시간 초과보다 오랫동안 유휴 상태인 경우 발생할 수 있습니다. 끝점 사이의 다른 NAT 장치가 시간 초과되어 새 포트 번호를 생성했거나 다른 끝점의 IP 주소가 변경되었을 수 있으므로(일부 ISP의 DHCP 기반 네트워크에서) 반드시 끝점 연결 추적기 오류가 발생한 것은 아닙니다.

세 가지 선택지를 생각해봤는데,

  1. ~할 수 있게 하다핑 계속 살아있어OpenVPN 구성에서. 적어도 한번 시도해 보세요 ping 10. 원하는 경우 클라이언트/서버 설정 방법에 따라 이를 선호할 수도 있습니다 keepalive 10 60. 보다매뉴얼 페이지정말 잔혹한 세부 사항을 위해. (엔드포인트의 IP 주소/포트 쌍이 변경되면 문제가 해결되지 않습니다.)

  2. fail2ban1194/tcp에서 OpenVPN 트래픽과 일치하는 구성을 비활성화합니다 .

  3. 트리거할 내용이 없도록 iptables1194/tcp에서 OpenVPN 트래픽에 대한 로그 메시지를 인쇄하지 않도록 하세요 .fail2ban

답변2

연결 추적기는 패킷이 동일한 연결에서 나오는지 여부를 추적할 뿐만 아니라 특정 타이밍(예: 늦은 ACK 또는 너무 늦은 SEQ)도 확인합니다.

다음 명령을 사용하여 연결 추적기 로깅을 켤 수 있습니다.

echo 255 >/proc/sys/net/netfilter/nf_conntrack_log_invalid

이는 삭제되고 기록된 모든 패킷이 다음 유형임을 보여줍니다.

nf_ct_tcp: ACK is under the lower bound (possible overly delayed ACK) ...

하나 있다논의하다이 팁을 어디서 찾았나요?

현재로서는 왜 이런 일이 발생하는지 알 수 없지만 이는 또 다른 문제일 수 있습니다.

관련 정보