모든 포트(UDP 및 TCP)를 수신하는 방법 또는 데비안에서 모두 열려 있는 것처럼 보이게 만드는 방법

모든 포트(UDP 및 TCP)를 수신하는 방법 또는 데비안에서 모두 열려 있는 것처럼 보이게 만드는 방법

외부 데비안 서버가 있습니다. 문제는 우리 대학 캠퍼스에서는 포트가 TCP 포트 22, 80, 443 또는 UDP 포트 123과 다를 경우 외부로의 연결을 허용하지 않는다는 것입니다. 수동으로 테스트했습니다. 내 Debian 서버에서 모든 UDP 및 TCP 포트를 수신하여 우리 대학이 방화벽을 통해 허용하는 TCP 및 UDP 포트를 명확하게 파악하고 싶습니다. Nmap은 클라이언트 측에서 이를 테스트하는 데 적합하지만 서버 측에서는 어떻게 해야 합니까?

답변1

TCP 덤프일반적으로 Linux 배포판에는 표준으로 제공됩니다. 서버에 표시되는 모든 패킷을 기록합니다.

  • 소음을 줄이기 위해 클라이언트 IP 필터와 함께 실행되도록 설정할 수 있습니다.

  • 여기에는 로컬 시스템의 iptables가 허용하지 않는 패킷이 포함되어 있다고 생각합니다. 하지만 이를 테스트해 볼 수도 있습니다.

예를 들어

/usr/sbin/tcpdump -i eth0 -c 3000000 -np host client.example.com >tcp.log

그런 다음 클라이언트에서 nmap을 실행하십시오.

답변2

sudo iptables -t nat -p tcp -I PREROUTING -m multiport --dports 1:65535 -j DNAT --to-destination :5555

ncat -lkp 5555 -vvv

답변3

지금은 이것을 테스트할 좋은 방법이 없지만...

iptables각 포트를 단일 포트로 변환 할 수 있다고 생각합니다 . 다음과 같이 보일 것입니다:

iptables -t nat -I PREROUTING -m multiport -sports 0:65535 -J DNAT --to-destination 127.0.0.1:1024

그러면 들어오는 모든 포트가 1024로 리디렉션됩니다. 그런 다음 1024에서 서버를 시작할 수 있습니다.

답변4

내 생각에는 UDP나 TCP를 사용하여 작은 프로그램을 작성한 raw sockets다음 모든 포트에서 수신 대기하고 헤더를 필터링하여 포트를 알 수 있을 것입니다.

Python의 원시 소켓 프로그래밍(Linux) |

관련 정보