CentOS 7에 fail2ban 설치


15

이 질문 에 대한 @GarethTheRed의 답변을 사용하여 원격 CentOS 7 서버에 fail2ban을 설치하고 있습니다. 까지 모든 단계를 완료 할 수 있으며 tail -f /var/log/fail2ban.log,이 시점에서 그는 자신의 답변과 다른 결과를 얻습니다.

이 단계에서 얻은 결과는 다음과 같습니다.

[root@remotecentosserver.com ~]# tail -f /var/log/fail2ban.log
2014-12-02 16:55:53,548 fail2ban.server.server[6667]: INFO    Changed logging target to /var/log/fail2ban.log for Fail2ban v0.9.0
2014-12-02 16:55:53,550 fail2ban.server.database[6667]: INFO    Connected to fail2ban persistent database '/var/lib/fail2ban/fail2ban.sqlite3'
2014-12-02 16:55:54,239 fail2ban.server.database[6667]: WARNING New database created. Version '2'  

마지막 줄 다음에 커서를 얻지 만 입력하지 않으면 명령 프롬프트가 표시되지 않습니다 Ctrl-C.

내가 입력하면 활성 상태 systemctl status fail2ban임을 알려줍니다 fail2ban. 시스템에서 로그 아웃했다가 나중에 다시 sshd로그인하면 마지막 로그인 이후에 로그인 시도가 많이 실패했음을 알려줍니다. 따라서 fail2ban로그 가 있어야합니다 . 그러나 나는 그들을 찾을 수없는 것 같습니다.

누군가 fail2ban내가 추적 할 수있는 로그를 생성 하도록이 설정을 얻는 방법을 보여줄 수 있습니까 ?


파일 권한을 확인 했습니까? 권한이 문제라는 것을 알기 위해 두 번 이상 시간을 낭비했습니다.
codewaggle

1
fail2banEPEL 저장소에 있습니다. 거기에서 설치해보십시오. 현재 버전을 제거하고 잔여 구성 파일 등이 없는지 확인하십시오. 그런 다음 EPEL에서 설치하십시오. 문제없이 CentOS 7 컴퓨터에서 실행 중입니다.
garethTheRed

나는 마지막 의견에 작은 거짓말을했다. 나는 그것을 고쳐야한다는 것을 잊었다. 아래에 긴 답변 ...
garethTheRed

답변:


32

EPELfail2ban 에서 설치해보십시오 . CentOS 7 용으로 패키지되어 있으며 업데이트되면 업데이트가 제공됩니다. 양식을 설치하면 다른 리포지토리가 작동 할 수 있지만 (이 경우에는 가능) 최선의 방법은 아닙니다.rpm

먼저 다음을 루트로 발행하여 EPEL 저장소를 설치하십시오.

yum install epel-release

위의 내용은 EPEL을 설치하고 많은 새로운 패키지에 액세스 할 수있게 합니다 . 이러한 패키지 중 하나는 fail2ban이므로 다음을 실행하여 설치하십시오.

yum install fail2ban

기본적으로 감옥이 구성되어 있지 않으므로 기본 sshd감옥 을 구성해야합니다 .

파일을 작성 / 편집 /etc/fail2ban/jail.local하고 다음을 추가하십시오.

[sshd]
enabled = true

다음으로 시작하십시오.

systemctl start fail2ban

부팅시 시작하십시오.

systemctl enable fail2ban

예전에는 SELinux가 fail2ban작업을 수행하는 데 필요한 로그 파일에 액세스하는 것을 차단 알려진 버그 가 있었습니다. 이것은 최신 버전의 CentOS 7에서 수정 된 것으로 보입니다. 아래에서 변경하지 않아도됩니다.

이 문제가 발생하면 로그에 증상이 나타나지 않고의 출력에서 ​​실패하거나 차단 된 것으로 나타나지 않습니다 fail2ban-client status sshd.

SELinux 오류를 확인하려면 다음을 사용하여 저널을 읽으십시오.

journalctl -lfu fail2ban

다음과 같은 메시지를 확인하십시오.

SELinux is preventing /usr/bin/python2.7 from getattr access on the file .
       *****  Plugin catchall (100. confidence) suggests   **************************
       If you believe that python2.7 should be allowed getattr access on the  file by default.
       Then you should report this as a bug.
       You can generate a local policy module to allow this access.
       Do 
       allow this access for now by executing:
       # grep fail2ban-server /var/log/audit/audit.log | audit2allow -M mypol
       # semodule -i mypol.pp

따라서 제안대로 실행하십시오.

grep fail2ban-server /var/log/audit/audit.log | audit2allow -M mypol
semodule -i mypol.pp

그런 다음 안전을 위해 다시 시작하십시오 fail2ban.

systemctl restart fail2ban

더 이상 오류 메시지가 로그에 표시되지 않을 때까지 위의 프로세스를 반복해야 할 수도 있습니다.

서버가 인터넷에있는 경우 모니터 fail2ban-client status sshd . 모든 SELinux 문제를 발견하면 곧 실패 및 금지 된 수를 표시하기 시작합니다.

SELinux 정책 업데이트를 주시해야합니다. 경우 selinux-policy패키지 업데이트가 나타납니다, 그 위를 덮어 쓸 수 있습니다 당신은 다시 위의 명령을 실행해야 할 수도 있습니다. fail2ban다시 작동을 멈출 수 있는 경우 입니다.


정말 고맙습니다. fail2ban을 먼저 제거하려면 특정 단계를 수행해야합니까? 아니면 위의 단계에서 자동으로 처리됩니까?
CodeMed

먼저 Fedora 20에서 버전을 제거하고 디렉토리 /etc/fail2ban가 삭제 되었는지 확인하십시오 .
garethTheRed

enabled = true부분은 효과가 있었다. ssh가 기본적으로 구성되고 활성화되어있는 곳 어디에서나 읽었지만 이것은 사실이 아닙니다.
Rahil Wazir
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.