检查localhost是否正在进行ftp连接

时间:2014-06-19 06:33:55

标签: unix ftp monitoring connection

是否有办法检查localhost是否正在与其他服务器建立ftp连接?

要求如下:本地主机 - > serverA的 远程服务器 - > serverB上。

需要检查serverA是否正在与serverB进行ftp连接。

因此,每当serverA与服务器B进行ftp连接时,如何获得通知。

我试过这样:ps -ef | grep -i ftp;但是由于ps进程也会得到通知,因此无法在shell脚本中使用,有没有更好的方法来检查serverA是否正在与serverB建立ftp连接,如果是,则通知/记录到文件。

由于

3 个答案:

答案 0 :(得分:1)

你的问题“ps -ef | grep -i ftp”也报告'ps'过程是由grep搜索字符串“ftp”引起的。这也会影响很多其他进程,它们的命令行中也有“ftp”这个词。

如果您安装了procps工具“pgrep”和“pkill”,请修复该检查。它们对“grepping”进程和运行命令行非常有帮助。

要解决您的初始问题,您可以检查是否安装了'ss'(显示来自iproute2软件包的套接字)命令。

它的输出可能有用(11.22.33.44是你本地的IP 130.133.3.130遥控器):

root:sigkill:~/# ss -p|cat
State      Recv-Q Send-Q      Local Address:Port          Peer Address:Port   
[...]
ESTAB      0      0           11.22.33.44:43681        130.133.3.130:ftp      users:(("ftp",19729,4),("ftp",19729,3))
[...]

答案 1 :(得分:0)

您可以采取以下几种方法:

  • 您可以轮询ftp的正在运行的进程。这不会捕获其他FTP客户端(如果你关心它),并且它不会捕获在民意调查之间滑动的非常短的ftp会话。
  • 如果您的系统支持执行日志记录,则可以记录ftp的所有执行。同样,这不会捕获其他FTP客户端。
  • 您可以使用系统提供的某种机制来监视端口21 / tcp上的出站连接(例如,在Linux上,使用iptables规则将出站FTP连接与您关心的任何服务器进行匹配并记录日志他们使用LOG目标)。无论客户端如何,这都会捕获所有连接,但是跟踪进程和用户会更复杂一些。

答案 2 :(得分:0)

您可以使用$ grep ftp /etc/services列出当前的ftp连接。

 $ grep ftp /etc/services 
    ftp-data        20/tcp
    ftp-data        20/udp
     ...
    ftp             21/tcp
    ftp             21/udp          fsp fspd
     ...
     sftp            115/tcp
     sftp            115/udp
      ...
     ftp-data        20/sctp                 # FTP
     ftp             21/sctp                 # FTP
      ...
     ftps-data       989/tcp                 # ftp protocol, data, over TLS/SSL
     ftps-data       989/udp                 # ftp protocol, data, over TLS/SSL
     ftps            990/tcp                 # ftp protocol, control, over TLS/SSL
     ftps            990/udp                 # ftp protocol, control, over TLS/SSL

使用netstat查看打开的连接。例如,对于简单的FTP ...

      $ netstat -tan | grep \:21
        tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN      
        tcp        0      0 :::21                       :::*                        LISTEN