내 Linux 시스템에서 VIA sftp 연결이 활성화되어 있는지 어떻게 알 수 있나요?

내 Linux 시스템에서 VIA sftp 연결이 활성화되어 있는지 어떻게 알 수 있나요?

나는 리눅스 머신 red-hat 5.X를 가지고 있습니다.

제안해 주십시오. 누군가가 sftp 또는 ftp를 통해 내 컴퓨터에서 파일을 복사하는 데 지쳤다면 어떤 명령을 사용하여 파일을 식별할 수 있으며 내 Linux 컴퓨터에서 이를 확인할 수 있습니까?

감사해요

답변1

물론 lsof이를 사용하여 현재 서버에서 어떤 활동이 일어나고 있는지 확인할 수 있습니다. 다음은 SFTP 서버에 대한 유휴 연결의 출력입니다.

$ sudo /usr/sbin/lsof -p $(pgrep sftp)
COMMAND     PID USER   FD   TYPE     DEVICE SIZE/OFF      NODE NAME
sftp-serv 30268  sam  cwd    DIR       0,19    20480  28312529 /home/sam (mulder:/export/raid1/home/sam)
sftp-serv 30268  sam  rtd    DIR      253,0     4096         2 /
sftp-serv 30268  sam  txt    REG      253,0    51496  48727430 /usr/libexec/openssh/sftp-server
sftp-serv 30268  sam  mem    REG      253,0   109740  46368404 /lib/libnsl-2.5.so
sftp-serv 30268  sam  mem    REG      253,0   613716  48382913 /usr/lib/libkrb5.so.3.3
sftp-serv 30268  sam  mem    REG      253,0  1205988  48387619 /usr/lib/libnss3.so
sftp-serv 30268  sam  mem    REG      253,0    33968  48377969 /usr/lib/libkrb5support.so.0.1
sftp-serv 30268  sam  mem    REG      253,0    15556  48387614 /usr/lib/libplc4.so
sftp-serv 30268  sam  mem    REG      253,0    11524  48387615 /usr/lib/libplds4.so
sftp-serv 30268  sam  mem    REG      253,0   190712  48383685 /usr/lib/libgssapi_krb5.so.2.2
sftp-serv 30268  sam  mem    REG      253,0  1706232  46368382 /lib/libc-2.5.so
sftp-serv 30268  sam  mem    REG      253,0    50848  46367899 /lib/libnss_files-2.5.so
sftp-serv 30268  sam  mem    REG      253,0    46624  46367905 /lib/libnss_nis-2.5.so
sftp-serv 30268  sam  mem    REG      253,0  1298276  46368392 /lib/libcrypto.so.0.9.8e
sftp-serv 30268  sam  mem    REG      253,0   232156  48387613 /usr/lib/libnspr4.so
sftp-serv 30268  sam  mem    REG      253,0    45432  46368394 /lib/libcrypt-2.5.so
sftp-serv 30268  sam  mem    REG      253,0   121324  48387616 /usr/lib/libnssutil3.so
sftp-serv 30268  sam  mem    REG      253,0    75088  46368385 /lib/libz.so.1.2.3
sftp-serv 30268  sam  mem    REG      253,0   137944  46368395 /lib/libpthread-2.5.so
sftp-serv 30268  sam  mem    REG      253,0    15308  46368401 /lib/libutil-2.5.so
sftp-serv 30268  sam  mem    REG      253,0    20668  46368384 /lib/libdl-2.5.so
sftp-serv 30268  sam  mem    REG      253,0   130860  46368381 /lib/ld-2.5.so
sftp-serv 30268  sam  mem    REG      253,0   157336  48382170 /usr/lib/libk5crypto.so.3.1
sftp-serv 30268  sam  mem    REG      253,0    93508  46368390 /lib/libselinux.so.1
sftp-serv 30268  sam  mem    REG      253,0   233296  46368389 /lib/libsepol.so.1
sftp-serv 30268  sam  mem    REG      253,0     7812  46368391 /lib/libcom_err.so.2.1
sftp-serv 30268  sam  mem    REG      253,0    84904  46368388 /lib/libresolv-2.5.so
sftp-serv 30268  sam  mem    REG      253,0     7880  46368387 /lib/libkeyutils-1.2.so
sftp-serv 30268  sam    0u  unix 0xcb014040      0t0 104100868 socket
sftp-serv 30268  sam    1u  unix 0xcb014040      0t0 104100868 socket
sftp-serv 30268  sam    2u  unix 0xd8077580      0t0 104100870 socket
sftp-serv 30268  sam    3u  unix 0xcb014040      0t0 104100868 socket
sftp-serv 30268  sam    4u  unix 0xcb014040      0t0 104100868 socket

이제 일부 파일이 서버에서 복사되는 동안:

$ sudo /usr/sbin/lsof -p $(pgrep sftp)
COMMAND     PID USER   FD   TYPE     DEVICE SIZE/OFF      NODE NAME
sftp-serv 30268  sam  cwd    DIR       0,19    20480  28312529 /home/sam (mulder:/export/raid1/home/sam)
...
sftp-serv 30268  sam    5r   REG       0,19  3955027   9257067 /home/sam/which witch is wich-dDSr2oxZeAM.mp3 (mulder:/export/raid1/home/sam)

복사한 파일을 표시하는 줄은 which witch is wich-dDSr2oxZeAM.mp3출력 맨 아래에 있습니다.

SFTP를 사용하여 파일에 액세스하면 put다음과 같이 표시됩니다.

sftp-serv 30268  sam    5r   REG       0,19  1933312   9257073 /home/sam/bob.mp3 (mulder:/export/raid1/home/sam)

차이점이 보이나요?

put나도 마찬가지입니다. 따라서 이 방법은 파일이 현재 a 또는 를 통해 액세스되고 있는지 여부만 알려줄 수 있지만 get둘을 구별할 수는 없습니다. 그러나 이는 연결이 "활성"인지, 즉 SFTP 서버에서 읽거나 쓰는 파일이 있는지 알려줍니다.

시계 데몬

SFTP 서버를 모니터링하고 싶을 때 주로 이 방법을 사용합니다.

$ sudo watch "/usr/sbin/lsof -p $(pgrep sftp)"

그러면 lsof2초마다 명령이 실행되어 모든 활동에 대해 "폴링"됩니다.

다중 연결

한 번에 1명 이상의 사용자가 연결되어 있고 인스턴스 $(pgrep sftp)가 여러 개인 경우 sftp-server특정 PID를 수정하고 선택해야 할 수도 있습니다. 또한 SFTP를 통해 파일에 액세스하는 사용자를 확인해야 합니다. 그러나 lsof출력에서 ​​"USER" 열을 볼 수 있습니다 .

관련 정보