메시지가 전송되고 있는지 확인하기 위해 local#을 어떻게 확인하나요?

메시지가 전송되고 있는지 확인하기 위해 local#을 어떻게 확인하나요?

내 SFTP 서버에서 추가 작업 로깅을 수집하려고 합니다. 인터넷의 많은 게시물에서 지시한 대로 /etc/ssh/sshd_config에 다음 줄을 추가했습니다.

Subsystem sftp internal-sftp -l VERBOSE -f LOCAL6

Match Group sftponly
    ChrootDirectory /data/%u
    ForceCommand internal-sftp -l VERBOSE -f LOCAL6
    X11Forwarding no
    AllowTcpForwarding no

그런 다음 로깅 정보를 수집하기 위해 다음 줄을 사용하여 /etc/rsyslog.d/60-sftp.conf를 만들었습니다.

# Parse the data logged at level INFO and facility LOCAL6 into /var/log/sftp
local6.* /var/log/sftp

# Report logins and logoffs
:syslogtag,startswith,"internal-sftp" /var/log/sftp

# Log internal-sftp in a separate file
:programname, isequal, "internal-sftp" -/var/log/sftp

이 시점에서 나는 /var/log/sftp에 대한 로깅을 얻을 수 없는 것 같습니다. 모든 것이 계속 /var/log/messages로 이동하고 있으며 전혀 장황하지 않은 것 같습니다. 내가 얻는 모든 것의 일부는 다음과 같습니다.

Sep 28 16:46:11 ftp sshd[10060]: Accepted publickey for root from 172.25.50.117 port 54836 ssh2
Sep 28 16:46:11 ftp sshd[10060]: Received disconnect from 172.25.50.117: 11: disconnected by user
Sep 28 16:46:16 ftp sshd[10109]: Accepted keyboard-interactive/pam for account1000002664 from 172.25.50.86 port 34255 ssh2

다음을 실행하여 시스템이 rsyslogd를 실행하고 있는지 확인했습니다.

ftp:~ # ps ax | grep syslog
 9205 ?        Sl     0:00 /sbin/rsyslogd -c 5 -f /etc/rsyslog.conf

따라서 제가 알 수 있는 한 올바른 파일을 편집하고 있습니다. 다음 단계는 예상 로그가 local6으로 전송되는지 확인하는 것입니다. 여기서 목표는 vsftpd가 생성한 xferlog와 정확히 같지는 않더라도 유사한 로그를 출력하는 데 필요한 데이터를 얻는 것입니다.

진행 방법에 대해 생각하는 사람이 있습니까? 참고로 이는 OpenSuse 12.1에서 실행됩니다.

답변1

이를 통해 로그를 기록하려면 /dev/log에 로깅 소켓( ) 이 있어야 합니다. 그렇지 않으면 실행 중에 파일 설명자를 유지하는 방법을 구현해야 합니다.chrootinternal-sftp

현재 RHEL에서 작동해야 합니다(적어도 테스트해 본 결과문서화), 하지만 수세에 대한 지식이 없습니다.

어쩌면 이 기능이 완전히 구현되지 않았을 수도 있지만, 항상 소켓을 생성 하고 이 소켓에서 메시지를 수락하도록 chroot설정할 수 있다면 가능합니다. rsyslog댓글에서 제안한 대로 로거를 사용하여 테스트할 수 있습니다.

관련 정보