Firejail에서 열린 인터넷 연결을 나열하는 방법은 무엇입니까?

Firejail에서 열린 인터넷 연결을 나열하는 방법은 무엇입니까?

Firefox를 샌드박스로 만들기 위해 Firejail을 사용하고 있습니다. 사용하면 lsof -i연결이 표시되지 않습니다. Firejail은 프로세스의 네임스페이스 격리를 수행하므로 이렇게 합니다.

ps aux | grep firefox | awk ' { print $2} ' | while read p ; do nsenter -t $p lsof -i ; done

각 네임스페이스를 입력하고 lsof -i를 사용합니다. 나도 nsenter -t <pid> -n lsof -i시도해 보았지만 아무 것도 나타나지 않습니다. 그러나 루트로 실행하면 작동합니다. 사용자가 열린 소켓 연결을 나열할 수 없어야 합니까?

답변1

ps | grep | awk파이프는 낡고 못생겼어요.매우고대의).

그런데, grep자신의 pid와 일치합니다. 그래서 대부분의 변종은 grep의 pid를 제외하기 위해 몇 가지 트릭을 사용합니다. 일반적으로 ps aux | grep command | grep -v grep. 가장 좋은 방법 중 하나는 정규 표현식과 함께 대괄호 표현식에 grep을 사용하는 것입니다. 더 나은 버전은 파이핑 입력이 정규식 패턴 일치를 수행하고 다음과 같이 끝날 수 있기 때문에 grep거의 awk항상 중복되고 무의미하며, 필요하지 않거나 심지어 불필요하다는 것을 인식합니다 .awkps aux | awk '/[c]ommand/ {print $2}'

어쨌든 끔찍한 쓰레기를 사용하지 마십시오. 90년대에 죽을 예정이었지만 좀비 시체가 계속해서 부활하거나 재창조되고 있습니다.

대신 (제목 없음), (cmdlist 일치) 및 (출력 형식) 옵션 과 함께 pgrepOR을 사용하세요 . 이것이 그들의 목적입니다.psh-C-o

예를 들어

pgrep -f firefox | xargs -I {} nsenter -n -t {} lsof -i

또는

ps h -C firefox -o pid | xargs -I {} nsenter -n -t {} lsof -i

또는 다음 없이 xargs:

for pid in $(pgrep -f firefox) ; do
  nsenter -n -t "$pid" lsof -i
done

이는 완벽과는 거리가 멀지만 현재 수행 중인 작업보다 훨씬 더 나은 출발점이 됩니다.

그런데 pgrep네임스페이스의 모든 PID를 나열하는 것이 가능합니다. lsns네임스페이스에 대한 다양한 세부 정보를 검사하고 추출하는 기능 도 있습니다 . psPID와 관련된 다양한 네임스페이스를 나열하는 옵션 도 있습니다. 아마도 이 모든 것에 대한 매뉴얼 페이지를 읽어야 할 것입니다...특히 lsof시스템의 lsof 및/또는 /usr/bin/에 대한 자체 바이너리나 매핑이 없는 네임스페이스에서 네트워크에 연결된 디렉터리를 나열 하려는 경우에는 더욱 그렇습니다 .

불행하게도 lsof자체적으로 내장된 네임스페이스 지원은 없는 것 같습니다. 아마도 향후 버전에서는 가능할 것입니다.

답변2

Firefox는 실행되고 생성된 Firefox 프로세스를 위해 또 다른 샌드박스를 생성하는 것으로 나타났습니다. 따라서 사용자가 명령줄에서 firefox를 사용하여 firejail을 시작하면 현재 사용자의 lsns가 표시됩니다.

그러나 동일한 명령줄에서 모든 Firefox 프로세스에 대해 grep을 수행한 다음 net 네임스페이스를 입력하면 lsof -i실패합니다.

nsenter: cannot open /proc/8958/ns/net: Permission denied

루트로서 lsns는 firefox 프로세스와 각 네임스페이스에 대한 관련 pid를 표시합니다. 모든 네임스페이스를 입력하면 lsof -i특정 PID에 대한 Firefox 소켓의 출력이 표시됩니다.

lspid uid가 사용자이고 생성된 lsof -i 출력이 /proc/pid인 경우 파일은 모두 사용자가 아닌 루트가 소유하므로 lsof -i모든 firefox 프로세스에서 사용자로 실행하면 작동하지 않습니다.

이것이 예상되는 동작인지 말하기 어렵기 때문에 어떤 의견이라도 주시면 감사하겠습니다.

관련 정보