Amazon Linux 2023 레포지토리에는 fail2ban이 포함되어있지 않습니다. (Amazon Linux 2에는 포함)
만약 들어있었다면 간단하게 `sudo dnf install fail2ban`로 설치 할 수 있었지만 우리는 직접 설치해줘야합니다.
(현재 패키지 요청은 2023 6월 21일에 되어있으나 공식 답변은 없는 상황이다.)
(미래 보시는 분들은 지금 추가되었나 확인하고 싶으시면 Amazon Linux 2023 release notes를 확인해보세요)
(정말 엄청난 삽질을 하고 제대로된 설치 방법을 알아냈습니다. 여러분의 시간을 아껴드립니다)
1️⃣ python3-devel 패키지 설치
`python3-devel`패키지는 python 소스를 빌드하고 개발하는 데 필요한 헤더 파일과 라이브러리를 포함합니다.
sudo dnf install python3-devel
2️⃣ fail2ban 소스 코드 다운로드
현재 24년 9월 27일 기준 fail2ban의 최신버전은 1.1.0입니다.
wget https://github.com/fail2ban/fail2ban/archive/refs/tags/1.1.0.tar.gz
3️⃣ 다운로드한 파일 압축 해제
tar xzvf 1.1.0.tar.gz
4️⃣ 압축 해제된 디렉토리로 이동
cd fail2ban-1.1.0/
5️⃣ fail2ban 빌드
sudo python3 setup.py build
6️⃣ fail2ban 설치
빌드된 `fail2ban`을 시스템에 설치합니다.
sudo python3 setup.py install
7️⃣ 서비스 파일 복사
`fail2ban` 서비스 파일을 /etc/systemd/system/ 결로로 복사하여 서비스로 설정합니다.
sudo cp ./build/fail2ban.service /etc/systemd/system/fail2ban.service
8️⃣ 서비스 파일에 PYTHONPATH 설정 추가
`fail2ban.service` 파일에 `PYTHONPATH` 환경 변수를 추가하여 Python 라이브러리 경로를 설정합니다.
sudo sed -i '/PYTHONNOUSERSITE/a Environment="PYTHONPATH=/usr/local/lib/python3.9/site-packages"' /etc/systemd/system/fail2ban.service
9️⃣ fail2ban 서비스 활성화
서비스를 부팅 시 자동으로 시작되도록 활성화합니다.
sudo systemctl enable fail2ban
이제 설치가 끝났으니 바로 시작해봅시다.
sudo systemctl start fail2ban
sudo systemctl status fail2ban
📌 Reference
- https://github.com/fail2ban/fail2ban
- https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes.html
- https://repost.aws/questions/QU_Mw5I44TQ_ucMNb73Lakbw/fail2ban-mia-for-amazon-linux-2023