패킷을 리디렉션하고 콘텐츠를 디스크에 저장

패킷을 리디렉션하고 콘텐츠를 디스크에 저장

rinetd그런 식으로 연결을 다시 라우팅 하고 클라이언트 및 서버 메시지를 저장하고 싶습니다 .

그런 도구가 있나요? 저는 데비안을 사용하고 있습니다.

답변1

rinetd 배경

rinetd.conf이 기사에서 찾은 다음 제목의 간단한 예제 파일을 확인하십시오 .Rinetd – 한 IP 주소 및 포트에서 다른 IP 주소 및 포트로 TCP 연결 리디렉션:

# bindadress bindport connectaddress connectport
192.168.2.1 80 192.168.2.3 80
192.168.2.1 443 192.168.2.3 443

iptables 리디렉션 사용

이와 같은 규칙을 사용하면 비슷한 결과를 얻을 수 있습니다 iptables.

$ sudo iptables -t nat -A PREROUTING -p tcp --dport 80 \
    -j DNAT --to-destination 192.168.2.3:80
$ sudo iptables -t nat -A POSTROUTING -p tcp --dport 25 -j MASQUERADE

위 코드는 로컬 호스트(192.168.2.1)의 포트 80을 원격 호스트(192.168.2.3)로 리디렉션합니다. 이 규칙은 다음과 같은 제목의 기사에서 찾은 내용을 기반으로 합니다.iptables 팁과 요령 - 포트 리디렉션.

ulogd를 사용하여 패킷 기록

netfilter의 사용자 공간 로깅 데몬을 사용하면 ulogd추가 규칙/스위치를 추가하여 다음 기사에 따라 패킷 로깅을 얻을 수 있습니다.커널에서 패킷 꺼내기. 배포판의 패키지 관리를 사용하여 설치 ulogd하고 시작했다고 가정합니다.

$ sudo service ulogd start 

기사의 예에서는 ping패킷을 주소 99.99.99.99에 기록합니다.

$ ping -c 5 99.99.99.99
$ sudo iptables -I OUTPUT -d 99.99.99.99 -j ULOG --ulog-nlgroup 1 \
    --ulog-cprange 100

그런 다음 로그 파일을 사용하여 저장된 파일을 tcpdump볼 수 있습니다 .ulogd/var/log/ulogd.pcap

$ sudo tcpdump -r /var/log/ulogd.pcap -qtnp
172.27.1.66 > 99.99.99.99: icmp: echo request (DF)
172.27.1.66 > 99.99.99.99: icmp: echo request (DF)
172.27.1.66 > 99.99.99.99: icmp: echo request (DF)
172.27.1.66 > 99.99.99.99: icmp: echo request (DF)
172.27.1.66 > 99.99.99.99: icmp: echo request (DF)

다음과 같이 실시간 스트림을 시청할 수 있습니다.

$ tail -f /var/log/ulogd.pcap | tcpdump -r - -qtnp

패킷을 보려면 iptables필요에 따라 위의 규칙을 변경해야 합니다.

관련 정보