SSH를 통한 tcpdump 트래픽 - 그러나 루트 SSH 액세스는 없음

SSH를 통한 tcpdump 트래픽 - 그러나 루트 SSH 액세스는 없음

상태

Wireshark를 사용하여 서버 중 하나의 트래픽을 분석하고 싶지만 서버 자체에 Wireshark를 설치하고 싶지 않습니다. 이해해요 할 수 있어요파이프 tcpdump 트래픽Wireshark가 설치된 로컬 컴퓨터(Ubuntu)에 SSH를 통해 연결합니다.

질문

루트 계정이 비활성화되어 있어서 서버에 로그인할 수 없습니다. sudo 권한이 있는데 sudo tcpdump서버에 로그인한 후 명령이 작동하지 않습니다. 다음 명령(sudo 포함 또는 제외)은 작동하지 않습니다.

$ ssh [email protected] "sudo tcpdump -s 0 -U -n -w - -i eth0 not port 22" > /tmp/remote

질문

작동하게 하는 방법이 있나요? 그렇다면 어떻게 해야 할까요?

답변1

이 명령이 없으면 sudo장치를 캡처할 수 있는 권한이 없습니다.

tcpdump: eth0: 이 장치에서 캡처할 수 있는 권한이 없습니다.

그러나 sudo이를 사용하고 나중에 실행하면 원격 서버에서 비밀번호 입력을 얻지 못하므로 ssh해결책은 ()를 사용하고 다음과 같이 비밀번호를 파이프하는 것입니다.sudo-Sman sudosudo

ssh [email protected] "echo sudo_password | sudo -S tcpdump -s 0 -U -n -w - -i eth0 not port 22" > /tmp/remote"

한편으로 이것은 자동화에 좋으며, sudo비밀번호 프롬프트를 받을 필요가 없으며, 완전히 자동화된 코드/스크립트를 추가할 수 있습니다 sshpass -p password ssh....

그러나 서버에서는 ssh세션 중에 공개 텍스트로 제공되는 sudo 비밀번호를 다른 사람이 쉽게 읽을 수 있으므로 보안 측면에서 권장되지 않습니다. 그럼 꼭 갖고 sudo안전하게 ssh사용하세요ssh -t

예를 들어, -t파이핑은 불가능하지만 -S를 사용하고 비밀번호를 에코하는 것은 가능합니다.ssh "sudo command"| commandssh -t server "cd path/to/directory && sudo"|grep "text"ssh server 'echo password | sudo -S ls -l'| grep 'a'

답변2

서버에서 sudo를 통해 이 명령을 실행하여 먼저 데이터를 캡처한 다음 결과 파일을 워크스테이션으로 다시 보내 데이터를 볼 수 있습니다.

sudo tcpdump -i eth0 -s 65535 -w /tmp/wireshark

관련 정보