답변:
배포판에 따라 편집 섹션을 /etc/fail2ban/jail.conf
업데이트하여 [ssh]
다음과 같이 표시하십시오.
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
bantime = 3600
maxretry = 3
필요에 따라 파라미터를 변경하십시오. 특별히 루트를 차단하지는 않지만 모든 시도가 실패합니다. 와에주의 maxretry
하십시오 bantime
. 암호 maxtretry
를 낮게 설정 한 상태에서 암호 를 낮게 설정하면 bantime
. fail2ban을 다시 시작하십시오.
동적 IP에서 많은 시도가 발생하여 나중에 합법적 인 사용자를 차단할 수 있기 때문에 IP를 영원히 차단하려고하지는 않습니다.
(일부 배포판은 수정을위한 jail.options 파일을 제공합니다. 이것은 conf를 덮어 쓰는 업데이트의 영향을받지 않기 때문에 변경 사항을 적용하기에 선호되는 곳입니다.)
이 코드를 새 파일 /etc/fail2ban/filter.d/sshd-root.conf에 복사하십시오.
[INCLUDES]
# Read common prefixes. If any customizations available -- read them from
# common.local
before = common.conf
[Definition]
_daemon = sshd
failregex = ^%(__prefix_line)sFailed (?:password|publickey) for root from <HOST>(?: port \d*)?(?: ssh\d*)?$
ignoreregex =
실패한 루트 로그인 시도를 정확하게 식별하기 위해 failregex를 편집해야 할 수도 있습니다. 다음을 사용하십시오.
fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd-root.conf
올바른 로그 항목을 식별하는지 테스트하십시오.
그런 다음 새 필터를 사용하려면 jail.local을 편집해야합니다.
[ssh]
enabled = true
port = 1:65535
filter = sshd-root
logpath = /var/log/auth.log
bantime = 604800
maxretry = 3
분명히 필요에 따라이 값을 조정해야합니다. 위의 설정은 루트로 3 번 로그온을 시도한 후 문제가있는 IP 주소에서 들어오는 모든 패킷을 삭제하고 일주일 후에 다시 IP를 해제합니다.
기본값 /etc/fail2ban/filter.d/sshd.conf
에는 이미 AllowUsers 및 DenyUsers에 대한 정규식이 있으므로 ...
...
^%(__prefix_line)sUser .+ from <HOST> not allowed because not listed in AllowUsers\s*$
^%(__prefix_line)sUser .+ from <HOST> not allowed because listed in DenyUsers\s*$
...
다음은 :
exampleusername
외부 IP에서 연결 허용root
또는 로컬 네트워크에있는 모든 연결 (192.168.0. *)`/ etc / ssh / sshd_config '줄 :
AllowUsers exampleusername *@192.168.0.* *@localhost *@127.0.0.1
그리고 /etc/fail2ban/jail.conf
:
ignoreip = 127.0.0.1/8 192.168.0.2/255
...
...
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 1
findtime = 99999999
bantime = 99999999
SSH 로그인을 어떻게 차단 했습니까? / bin / false 또는 sshd_config DenyUsers 옵션?
나는 머리에서 대답을 생각할 수 없지만 IIRC denyhosts는 로그 파일을 구문 분석하므로 로그 파일을 비활성화 한 상태에서 루트에 로그인하려고 시도한 후 로그 파일에 실패한 항목이 있는지 확인하십시오.
/etc/ssh/sshd_config
변경 PermitRootLogin
했습니다. 이것이 관련이 있는지는 모르겠지만 특정 사용자가 sftp를 사용하여 로그인하고 ssh는 허용하지 않도록 rssh를 설치했습니다.