centos

CentOS SFTP如何进行日志审计

小樊
40
2025-05-02 21:44:28
栏目: 智能运维

在CentOS系统中,SFTP(SSH File Transfer Protocol)的日志审计可以通过以下步骤进行:

1. 配置SSH和SFTP日志记录

首先,确保SSH和SFTP的日志记录功能已启用。

编辑SSH配置文件

打开SSH配置文件 /etc/ssh/sshd_config

sudo vi /etc/ssh/sshd_config

找到并确保以下行未被注释(即没有 # 在行首):

LogLevel VERBOSE

这会启用详细的日志记录。

重启SSH服务

保存并退出编辑器后,重启SSH服务以应用更改:

sudo systemctl restart sshd

2. 配置SFTP日志记录

SFTP的日志通常会包含在SSH的通用日志中,但你可以进一步细化日志记录。

编辑PAM配置文件(可选)

如果你使用PAM(Pluggable Authentication Modules)进行认证,可以编辑 /etc/pam.d/sshd 文件:

sudo vi /etc/pam.d/sshd

确保以下行存在:

session required pam_tally2.so onerr=fail deny=5 unlock_time=600

这会启用登录失败计数器,并在5次失败后锁定账户600秒。

3. 查看和分析日志

SSH和SFTP的日志通常记录在 /var/log/secure 文件中。你可以使用以下命令查看日志:

实时查看日志

sudo tail -f /var/log/secure

搜索特定事件

例如,搜索所有SFTP连接尝试:

sudo grep "sftp" /var/log/secure

分析日志

你可以使用 grepawksed 等工具进一步分析日志。例如,统计某个时间段的SFTP连接次数:

sudo grep "sftp" /var/log/secure | awk '{print $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33, $34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44, $45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55, $56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66, $67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77, $78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88, $89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99, $100' | sort | uniq -c | sort -nr

4. 使用日志管理工具

为了更方便地管理和分析日志,你可以使用一些日志管理工具,如 ELK Stack(Elasticsearch, Logstash, Kibana)或 Splunk

安装和配置ELK Stack

  1. 安装Elasticsearch

    sudo yum install elasticsearch
    sudo systemctl start elasticsearch
    sudo systemctl enable elasticsearch
    
  2. 安装Logstash

    sudo yum install logstash
    sudo systemctl start logstash
    sudo systemctl enable logstash
    
  3. 安装Kibana

    sudo yum install kibana
    sudo systemctl start kibana
    sudo systemctl enable kibana
    
  4. 配置Logstash: 编辑 /etc/logstash/conf.d/sftp.conf 文件,添加以下内容:

    input {
      file {
        path => "/var/log/secure"
        start_position => "beginning"
      }
    }
    
    filter {
      grok {
        match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:programname}(?:\[%{POSINT:pid}\])?: %{DATA:msg}" }
      }
    }
    
    output {
      elasticsearch {
        hosts => ["localhost:9200"]
        index => "sftp-logs-%{+YYYY.MM.dd}"
      }
    }
    
  5. 重启Logstash

    sudo systemctl restart logstash
    
  6. 访问Kibana: 打开浏览器,访问 http://your_server_ip:5601,配置索引模式并开始分析日志。

通过以上步骤,你可以有效地进行CentOS SFTP的日志审计。

0
看了该问题的人还看了