모든 사용자에 대한 모든 포트 전달 찾기

모든 사용자에 대한 모든 포트 전달 찾기

저는 SSH 액세스만 허용하는 CentOS 7 시스템을 실행하고 있습니다. 해당 머신에서 저는 여러 개의 QEMU 가상 머신을 실행하고 있으며 각각은 다른 VNC 포트에 표시됩니다. 컴퓨터에 액세스하려면 사람들에게 컴퓨터에 SSH를 통해 연결하고 원하는 VNC 서버의 포트를 전달하도록 요청합니다. 예를 들어 서버 중 하나가 :25에 있으면 실행 중일 수 있습니다.

ssh -L 5901:localhost:5925 user@host

그런 다음 로컬 컴퓨터에서 vncviewer엽니다.localhost:1

이러한 VM은 많은 사용자가 공유하므로 상자 관리자로서 누가 각 VM(또는 다른 임의의 포트)에 대해 포트 전달을 설정했는지 알 수 있는 방법이 있습니까?

이렇게 하면 내 것을 볼 수 있지만 ~#다른 사용자가 이를 쉽게 볼 수 있는 방법이 있습니까?

지금 생각할 수 있는 유일한 것은 netststat -panl | awk '$5 ~ /5925/ {print $7 $8}'관심 있는 각 포트에 대해 비슷한 작업을 수행하고 반복하는 것입니다. 더 "적절한" 또는 더 간결한 방법이 있습니까?

답변1

여전히 정보를 쿼리할 수 있는 방법이 있었으면 좋겠지만 sshd, 누가 localhost의 어떤 포트에 대해 열려 있는 포트 전달을 가지고 있는지 알려주는 또 다른 해결 방법을 생각해냈습니다.

lsof -i -n | awk '/sshd.*->127.0.0.1:/ {n=split($9,a,":"); print $3 " " a[n];}'

예를 들어 다음과 같이 인쇄됩니다.

erenouf 5925
erenouf 5926

그러나 전달을 위해 SSH를 요청하는 대신 해당 연결을 사용해 본 경우에만 가능합니다.

또한 이를 위해서는 대상 IP를 알아야 합니다. 이는 제가 이 시나리오에서 수행한 작업이므로(지금까지 두 번째 시스템을 추가할 때까지) 여전히 완전히 만족스럽지 않습니다.

관련 정보