로그 파일을 검사한 결과 FTP 서버에 무단으로 로그인하려는 시도가 여러 번 발견되었습니다. 시스템은 rDNS를 사용하여 원격 사용자의 호스트 이름을 제공하고, rDNS가 응답을 제공하면 심지어 존재하지 않는 TLD의 호스트 이름도 제공합니다! — 그러면 숫자 IP 주소를 기록하지 않습니다. IP를 감옥에 설정하려고 하는데 IP가 존재하지 않기 때문에 fail2ban
감옥에 넣을 수 없습니다(예를 들어) . hn.kd.ny.adsl
(또한 누군가 자신의 rDNS를 존재하는 관련되지 않은 FQDN 호스트 이름으로 지정하면 분명히 장난할 가능성이 있습니다.) 이상적으로는 IP와 이름을 모두 기록하고 싶지만 선택해야 한다면 다음을 선택하겠습니다. 원본 IP가 있어야 합니다.
저는 CentOS 6을 사용하고 있습니다(CentOS 7로 업그레이드하는 중입니다). 이것은 내 것입니다 vsftpd.conf
. 주석은 생략되었습니다.
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
답변1
이것은 매우 성가신 일이며 쉬운 해결책을 찾을 수 없습니다. xferlog 형식은 wu_ftp와의 하위 호환성을 위한 것이라고 생각합니다.
~에 따르면금지된 실패 위키, 이것이 당신이 해야 할 일입니다:
"dual_log_enable=YES"로 VSFTP를 구성하고 fail2ban이 /var/log/vsftpd.log를 모니터링하도록 합니다. 이 로그 파일에는 DNS 이름 대신 수신 IP 주소가 표시됩니다.
하지만 여전히 나를 짜증나게 하는 것은 DNS 조회 시간 초과에 의존하는 역방향 포인터 조회가 지연된다는 것입니다. 수천 개의 파일을 전송하는데 백 포인터가 없거나 in-addr 블록에 대한 DNS 서버를 설정하지 않은 경우 각 전송이 DNS 시간 초과를 기다리게 됩니까?