Image

지식 기반 → 비밀번호 추측으로부터 보호하기 위해 Fail2Ban 설정

[가상 서버]
출판 날짜: 27.01.2023

Fail2Ban 서비스는 사이트의 비밀번호를 추측하는 봇의 IP 주소를 차단하는 데 도움이 됩니다. 최근에는 게시 요청이 많아지면 웹 서버에 상당한 부하가 발생하기 때문에 공격을 수행하는 데 자주 사용됩니다. 우리의 예에서는 인기 있는 CMS인 Wordpress와 SSH 서비스의 예를 사용하여 IP 주소를 차단하는 방법을 살펴보겠습니다.

1. Fail2Ban 서비스 설치

1.1 Epel 저장소 연결

yum install epel-release 

더 나아가 /etc/yum.repos.d/epel.repo 당신은 그것을 활성화해야, enabled=1

yum install fail2ban

2. 일반 설정

Fail2ban 서비스는 구성 파일을 /etc/fail2ban 디렉터리에 저장합니다. Jail.conf라는 기본값을 가진 파일이 있습니다. 이 파일은 패키지 업데이트로 덮어쓰일 수 있으므로 사용해서는 안 됩니다. 대신, Jail.local이라는 새 파일을 작성하겠습니다. Jail.local에 정의된 모든 값은 Jail.conf의 값보다 우선 적용됩니다.

jail.conf에는 [DEFAULT] 섹션이 포함되어 있으며 그 뒤에 개별 서비스에 대한 섹션이 있습니다. jail.local은 이러한 값을 재정의할 수 있습니다. 또한 /etc/fail2ban/jail.d/에 있는 파일을 사용하여 두 파일 모두의 설정을 재정의할 수 있습니다. 파일은 다음 순서로 적용됩니다:

    /etc/fail2ban/jail.conf
    /etc/fail2ban/jail.d/*.conf, alphabetically
    /etc/fail2ban/jail.local
    /etc/fail2ban/jail.d/*.local, alphabetically

파일에 기본 설정을 확인하고 추가해 보겠습니다 /etc/fail2ban/jail.local

[DEFAULT]

# Ban hosts for one hour:
bantime = 3600

# Override /etc/fail2ban/jail.d/00-firewalld.conf:
banaction = iptables-multiport

[sshd]
enabled = true

서비스를 다시 시작하자

service fail2ban restart

명령어로 상태를 확인해보자

fail2ban-client status

3.워드프레스 필터

10분 이내에 동일한 IP 주소에서 /wp-login.php(워드프레스 관리자) 주소로 10회 이상 접속한 IP 주소를 차단하는 필터와 규칙(감옥)을 추가해 보겠습니다.

3.1 필터

/etc/fail2ban/filter.d/wordpress.conf

[Definition]

failregex = ^.* "POST .*/wp-login.php([/\?#\\].*)? HTTP/.*" 200
ignoreregex =

이 필터를 사용하여 IP 주소를 검색합니다.

3.2 감옥 추가

/etc/fail2ban/jail.d/wordpress.conf

[wordpress]

action = iptables-multiport[name="wordpress", port="http,https"]
filter = admin-wordpress
logpath = /var/www/vhosts/system/*/logs/*access*log
/var/log/httpd/*access_log

다른 웹 서버를 사용하는 경우 로그 생성 방식에 따라 필터를 변경하고 로그 파일(access_log)에 대한 올바른 경로를 지정해야 합니다. 변경한 후에는 서비스를 다시 시작해야 합니다.





No Comments Yet