Rocky8 에서 기본 저장소에는 mod_evasive 가 없는거 같다.
그래서, 여기저기 찾아보니 raven 저장소를 설치하면 된다고 한다.
- raven 저장소 설치 
#dnf install https://pkgs.sysadmins.ws/el8/base/x86_64/raven-release-1.0-1.el8.noarch.rpm -y 
- 확인 
#yum repolist 
raven                                                                                             Raven's RPM repo for el8-x86_64 - base 
raven이 보이면 된다 
- raven 저장소에서 mod_evasive 설치하기 
#dnf --enablerepo=raven-extra install mod_evasive 
- 설치확인 
#ls /usr/lib64/httpd/modules/ | grep evasive 
mod_evasive  
- 설치가 잘 되었으니, 이제 설정을 해주면 된다. 
#vi /etc/httpd/conf.d/mod_evasive.conf 
DOSPageCount 5 #동일페이지 요청횟수, DOSPageInterval 에 설정된 초동안 동일 아이피에서 호출할 수 있는 수 
DOSSiteCount        50 #기본값 
DOSPageInterval     1 #기본값 
DOSSiteInterval     1 #기본값 
DOSBlockingPeriod   10 #기본값 
DOSLogDir   "/var/log/mod_evasive" #로그를 기록하는 디렉토리, 디렉토기 권한 apache에서 쓰기 가능하게 chown apache 권한 준다. 
DOSWhitelist    127.0.0.1 192.168.0.* #이 부분도 중요하다. 이 IP들은 ddos 공격형태가 되더라도 접속 허용해주는 설정이다. 
이 부분만 수정해 줬다.  
다른 부분은 운영하는 사이트에 맞게 조절해주면 된다. 
다만, 너무 값을 낮게 설정하게 되면, 정상적인 트래픽도 차단이 될 수 있으니, 
적정한 수를 확인하면서 적용해 주도록 한다. 
모두 적용을 했으면,  
#systemctl restart httpd 
적용이 잘 되고 있다면,  차단이 되었을때 httpd status에서도 볼 수 있다. 
#systemctl status httpd 
~~~ 
~~~ 
7월 10 14:41:18 svr133 mod_evasive[3269551]: Blacklisting address 112.223.109.114: possible DoS attack. 
7월 10 14:43:32 svr133 mod_evasive[3269549]: Blacklisting address 39.119.233.194: possible DoS attack. 
7월 10 14:50:42 svr133 mod_evasive[3269551]: Blacklisting address 210.124.191.225: possible DoS attack. 
7월 10 14:51:07 svr133 mod_evasive[3269550]: Blacklisting address 221.150.189.139: possible DoS attack. 
mod_evasive를 운영하다가 중지를 시키려면, 
1. 설정값들을 크게 설정해 주거나, 비활성화(주석) 
ㄴex) DOSPageCount 10000 또는 DOSBlockingPeriod 0 으로 해서 설정을 거의 무효화 하는 방식 
ㄴex) mod_evasive.conf 에서 <IfModule mod_evasive20.c>~</IfModule> 블럭 전체를 주석처리하는 방식 
2. 모듈을 삭제하거나 
ㄴdnf remove mod_evasive -y 
3. mod_evasive.conf 파일명을 변경 해줘도 된다. 
ㄴmv mod_evasive.conf mod_evasive.conf.bak 
4. mod_evasive 모듈 로드 되지 않게 하기 
ㄴmod_evasive.conf 에서 주석처리해 준다.  
ㄴ#LoadModule evasive20_module modules/mod_evasive.so 
편하게 할 수 있는 방법으로 하면된다. 
나라면, 파일명 바꾸는 식으로 하겠다.
변경을 했으면,
#systemctl restart httpd