在CentOS系统中,监控SFTP连接可以通过多种方法实现。以下是一些常用的方法:
tcpdump
tcpdump
是一个强大的网络抓包工具,可以用来监控和分析网络流量。
sudo tcpdump -i eth0 port 22 -w sftp_traffic.pcap
-i eth0
:指定监听的网络接口。port 22
:指定监听的端口(SFTP默认端口是22)。-w sftp_traffic.pcap
:将抓包数据保存到文件中,方便后续分析。ss
ss
是netstat
的替代工具,可以用来查看网络连接状态。
sudo ss -tnp | grep ':22'
-t
:显示TCP连接。-n
:显示数字形式的地址和端口号。-p
:显示进程信息。lsof
lsof
可以列出打开的文件和使用这些文件的进程。
sudo lsof -i :22
auditd
auditd
是Linux的审计系统,可以用来监控和记录系统调用和文件访问。
首先,确保auditd
已安装并启用:
sudo yum install audit
sudo systemctl enable auditd
sudo systemctl start auditd
然后,添加规则来监控SFTP连接:
sudo auditctl -a exit,always -F arch=b64 -S connect -F auid>=1000 -F auid!=4294967295 -k sftp
-a exit,always
:在系统调用退出时总是记录。-F arch=b64
:指定架构为64位。-S connect
:监控connect
系统调用。-F auid>=1000
:监控用户ID大于等于1000的连接。-F auid!=4294967295
:排除root用户。-k sftp
:为日志添加关键字sftp
。查看审计日志:
sudo ausearch -k sftp
fail2ban
fail2ban
可以监控日志文件并自动封禁恶意IP地址。
首先,安装fail2ban
:
sudo yum install fail2ban
然后,配置fail2ban
来监控SFTP日志:
sudo cp /etc/fail2ban/jail.local /etc/fail2ban/jail.local.bak
sudo nano /etc/fail2ban/jail.local
在jail.local
文件中添加以下内容:
[DEFAULT]
bantime = 600
findtime = 600
maxretry = 3
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/secure
maxretry = 3
bantime = 600
重启fail2ban
服务:
sudo systemctl restart fail2ban
netstat
和watch
你可以使用watch
命令定期运行netstat
来监控SFTP连接。
watch -n 5 "netstat -tnp | grep ':22'"
-n 5
:每5秒刷新一次。通过这些方法,你可以有效地监控CentOS系统上的SFTP连接。选择适合你需求的方法进行实施。