내 Ubuntu 컴퓨터의 VirtualBox가 호스팅하는 Debian 서버에서 iptables를 사용하여 포트 범핑을 설정하려고 합니다. 어떤 이유에서인지 호스트에서 서버의 포트를 탭하면 가상 게이트웨이가 탭을 여러 번 반복하여 포트 탭에 문제가 발생합니다.
들어오는 모든 연결을 기록하기 위해 게스트 서버에 iptables를 설정했습니다.
iptables -A INPUT -j LOG --log-prefix '*WALL Hit! '
무슨 일이 일어나고 있는지 디버깅하기 위해. iptables 논리가 제대로 작동하는 것 같지만 포트를 순서대로 올바르게 입력할 수 없습니다.
Virtualbox 설정에서는 서비스 포트(22) 외에 노크 시퀀스에 사용되는 포트도 포트 전달했습니다. 내가 9514를 "노크"하려고 하면
nmap -sT --host-timeout 201 --max-parallelism 1 --max-retries 0 -p 9514 localhost
sudo tcpdump -i lo port 9514
내 호스트에서 다음 결과를 올바르게 생성합니다.
4:44:51.225394 IP localhost.37776 > localhost.9514: Flags [S], seq 3516530284, win 65495, options [mss 65495,sackOK,TS val 586800892 ecr 0,nop,wscale 7], length 0
14:44:51.225400 IP localhost.9514 > localhost.37776: Flags [S.], seq 2374911314, ack 3516530285, win 65483, options [mss 65495,sackOK,TS val 586800892 ecr 586800892,nop,wscale 1], length 0
14:44:51.225406 IP localhost.37776 > localhost.9514: Flags [.], ack 1, win 512, options [nop,nop,TS val 586800892 ecr 586800892], length 0
14:44:51.225421 IP localhost.37776 > localhost.9514: Flags [R.], seq 1, ack 1, win 512, options [nop,nop,TS val 586800892 ecr 586800892], length 0
이는 호스트가 VM 서버와 TCP 핸드셰이크를 올바르게 수행했음을 나타냅니다.
그러나 내 게스트 서버에서는 이 초기 핸드셰이크로 인해 방화벽에 대한 적중이 먼저 올바르게 표시되지만 약 10초를 기다리면 다음과 같이 반복적인 연결 시도가 표시되고 세 번째 시도 등이 표시됩니다. iptables 로그:
Feb 9 14:44:51 uname kernel: [347106.973331] *WALL Hit! IN=enp0s3 OUT= MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:08:00 SRC=10.0.2.2 DST=10.0.2.15 LEN=44 TOS=0x00 PREC=0x00 TTL=64 ID=22453 PROTO=TCP SPT=37776 DPT=9514 WINDOW=65535 RES=0x00 SYN URGP=0
Feb 9 14:44:57 uname kernel: [347113.109626] *WALL Hit! IN=enp0s3 OUT= MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:08:00 SRC=10.0.2.2 DST=10.0.2.15 LEN=44 TOS=0x00 PREC=0x00 TTL=64 ID=22455 PROTO=TCP SPT=37776 DPT=9514 WINDOW=65535 RES=0x00 SYN URGP=0
Feb 9 14:45:09 uname kernel: [347125.126824] *WALL Hit! IN=enp0s3 OUT= MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:08:00 SRC=10.0.2.2 DST=10.0.2.15 LEN=44 TOS=0x00 PREC=0x00 TTL=64 ID=22457 PROTO=TCP SPT=37776 DPT=9514 WINDOW=65535 RES=0x00 SYN URGP=0
Feb 9 14:45:21 uname kernel: [347137.143457] *WALL Hit! IN=enp0s3 OUT= MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:08:00 SRC=10.0.2.2 DST=10.0.2.15 LEN=44 TOS=0x00 PREC=0x00 TTL=64 ID=22459 PROTO=TCP SPT=37776 DPT=9514 WINDOW=65535 RES=0x00 SYN URGP=0
Feb 9 14:45:33 uname kernel: [347149.159284] *WALL Hit! IN=enp0s3 OUT= MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:08:00 SRC=10.0.2.2 DST=10.0.2.15 LEN=44 TOS=0x00 PREC=0x00 TTL=64 ID=22461 PROTO=TCP SPT=37776 DPT=9514 WINDOW=65535 RES=0x00 SYN URGP=0
Feb 9 14:45:45 uname kernel: [347161.175126] *WALL Hit! IN=enp0s3 OUT= MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:08:00 SRC=10.0.2.2 DST=10.0.2.15 LEN=44 TOS=0x00 PREC=0x00 TTL=64 ID=22463 PROTO=TCP SPT=37776 DPT=9514 WINDOW=65535 RES=0x00 SYN URGP=0
Feb 9 14:45:57 uname kernel: [347173.190381] *WALL Hit! IN=enp0s3 OUT= MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:08:00 SRC=10.0.2.2 DST=10.0.2.15 LEN=44 TOS=0x00 PREC=0x00 TTL=64 ID=22465 PROTO=TCP SPT=37776 DPT=9514 WINDOW=65535 RES=0x00 SYN URGP=0
타임스탬프에서 볼 수 있듯이 이상한 이유로 추가 적중이 발생하고 이러한 연결 시도가 tcpdump
호스트에 표시되지 않습니다.
tcpdump
그러나 게스트 서버에서 실행하면 다음과 같은 줄이 표시됩니다.
15:51:50.838919 IP 10.0.2.2.37792 > 10.0.2.15.9514: Flags [S], seq 1873367041, win 65535, options [mss 1460], length 0
각 중복 SYN 패킷에 해당합니다. 이는 (가상) IP 10.0.2.2의 게이트웨이가 (가상) IP 10.0.2.15의 게스트 서버에 반복적으로 syn 패킷을 보내고 있음을 나타냅니다.
추가 범프가 다른 포트에 대한 범프를 방해하기 때문에 포트 전달을 설정하려고 할 때 이것이 큰 문제가 되었습니다. 이 동작이 발생하는 이유와 연결 시도를 하나로 제한하기 위해 무엇을 할 수 있는지 아는 사람이 있습니까?