프로그램 실행 중에 열린 원격 서버의 클라이언트 소켓을 식별하는 방법

프로그램 실행 중에 열린 원격 서버의 클라이언트 소켓을 식별하는 방법

저는 조직 외부의 어떤 것에도 의존하지 않도록 빌드 프로세스 중에 외부 시스템에 액세스하지 못하도록 하고 싶은 특정 빌드 프로세스를 가지고 있습니다. 인터페이스를 닫는 대신 특정 프로세스가 어떤 클라이언트 소켓을 열고 있는지 확인하는 데 사용할 수 있는 모니터링 도구가 있습니까?

나는 실제로 거기에 아무것도 보이지 않습니다 strace. recvfrom이 정도면 증명할 수 있지 않을까? 더 좋은 방법이 있나요?

답변1

리눅스를 사용할 수 있습니다네임스페이스네트워크에서 빌드 프로세스를 격리합니다. 이것unshare이 작업은 간단히 명령을 사용하여 수행할 수 있습니다. 그러나 이로 인해 빌드 프로세스가 TCP/IP를 통해 로컬 호스트에 연결되는 것도 방지됩니다. 빌드 프로세스를 보자오직localhost에 연결하는 것은 좀 더 복잡하고 상세합니다.여기.

위의 모든 작업에는 루트 액세스가 필요합니다. 빌드 프로세스를 일반 사용자로 실행하려면 네임스페이스에서 실행되도록 명령을 설정할 수 있습니다 su build-user -c build-command.

답변2

나는 결국 다음을 수행했습니다.

strace -s 1000 -e trace=network build-command

관련 정보