종료하지 않고 TCP 세션 설정(RST/FIN을 보내지 않음)

종료하지 않고 TCP 세션 설정(RST/FIN을 보내지 않음)

프로젝트에 대한 정보를 찾고 있어요. 저는 TCP 세션을 설정하고 FIN/RST를 보내지 않고도 세션을 유지할 수 있는 Linux 도구를 찾고 있습니다.

나는 iperf이와 같은 도구를 사용해 보았고 연결이 설정되면 FIN도 발급합니다.

사용 가능한 도구가 있는지 알려주세요.

답변1

커널은 TCP 프로토콜의 일부로 SYN/FIN/RST를 관리하므로 도구가 없습니다.이와 같이종료하지 않고 TCP 스트림을 생성합니다.

몇 가지 가능성

  • 원시 SYN 및 SYN/ACK 패킷을 직접 생성하는 코드를 직접 작성하세요.

  • 표준 도구를 사용하되 더 이상 필요하지 않을 때까지 일시 중지하세요.

    nc remoteHost remotePort &    # nc example.com 80
    ncPID=$!
    
    sleep 1
    kill -STOP $ncPID
    
  • 흐름을 닫기 전에 표준 도구를 사용하고 방화벽 규칙을 구현하여 흐름을 차단하세요.

    nc remoteHost remotePort &
    ncPID=$!
    
    sleep 1
    iptables -I OUTPUT --dst remoteHost --dport remotePort -j DROP
    kill $ncPID
    
    sleep 1
    iptables -D OUTPUT --dst remoteHost --dport remotePort -j DROP
    

관련 정보