systems:media_server:secure_the_server:install_fail2ban
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
systems:media_server:secure_the_server:install_fail2ban [2025/05/30 20:00] – peter | systems:media_server:secure_the_server:install_fail2ban [2025/05/30 21:31] (current) – peter | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Systems - Media Server - Secure the Server - Install fail2ban ====== | ====== Systems - Media Server - Secure the Server - Install fail2ban ====== | ||
+ | |||
+ | **Fail2ban** is an intrusion prevention software framework. | ||
+ | |||
+ | * It bans IP addresses conducting too many failed login attempts. | ||
+ | |||
+ | ---- | ||
===== Update the system: ===== | ===== Update the system: ===== | ||
Line 16: | Line 22: | ||
---- | ---- | ||
- | |||
- | ===== Configure Fail2Ban ===== | ||
- | |||
- | The default configuration is defined in **/ | ||
- | |||
- | <WRAP important> | ||
- | **WARNING: | ||
- | </ | ||
- | |||
- | Here are salient lines from the default configuration: | ||
- | |||
- | <file bash / | ||
- | # line 87 : ignore your own local IP | ||
- | #ignoreself = true | ||
- | |||
- | # line 92 : possible to add ignored networks | ||
- | #ignoreip = 127.0.0.1/8 ::1 | ||
- | |||
- | # line 101 : number of seconds that a host is banned | ||
- | # - 1m ⇒ 1 minutes | ||
- | # - 1h ⇒ 1 houer | ||
- | # - 1d ⇒ 1 day | ||
- | # - 1mo ⇒ 1 month | ||
- | # - 1y ⇒ 1 year | ||
- | bantime | ||
- | |||
- | # line 105 : A host is banned if it has generated " | ||
- | findtime | ||
- | |||
- | # line 108 : " | ||
- | maxretry = 5 | ||
- | |||
- | # line 178 : destination email address if enabling email notification | ||
- | destemail = root@localhost | ||
- | |||
- | # line 181 : sender address if enabling email notification | ||
- | sender = root@< | ||
- | |||
- | # line 263 : default action | ||
- | # - %(action_)s ⇒ ban only | ||
- | # - %(action_mw)s ⇒ band and email notification (includes Whois info) | ||
- | # - %(action_mwl)s ⇒ band and email notification (includes Whois info and logs) | ||
- | action = %(action_)s | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | ===== Override the default values ===== | ||
- | |||
- | As root, create a **/ | ||
- | |||
- | <file bash / | ||
- | [DEFAULT] | ||
- | ignoreip = 127.0.0.1/8 ::1 | ||
- | bantime | ||
- | findtime | ||
- | maxretry = 5 | ||
- | destemail = root@localhost | ||
- | sender = root@mediaserver | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | ===== Restart Fail2Ban ===== | ||
- | |||
- | <code bash> | ||
- | sudo systemctl restart fail2ban | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | ===== Verify Fail2Ban ===== | ||
- | |||
- | <code bash> | ||
- | sudo systemctl status fail2ban | ||
- | </ | ||
- | |||
- | returns: | ||
- | |||
- | < | ||
- | fail2ban.service - Fail2Ban Service | ||
- | | ||
- | | ||
- | Docs: man: | ||
- | Main PID: 3108 (fail2ban-server) | ||
- | Tasks: 5 (limit: 154383) | ||
- | | ||
- | CPU: 110ms | ||
- | | ||
- | | ||
- | |||
- | May 30 19:38:01 mediaserver systemd[1]: Started fail2ban.service - Fail2Ban Service. | ||
- | May 30 19:38:02 mediaserver fail2ban-server[3108]: | ||
- | May 30 19:38:02 mediaserver fail2ban-server[3108]: | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | ===== Check the fail2ban status ===== | ||
- | |||
- | <code bash> | ||
- | sudo fail2ban-client status | ||
- | </ | ||
- | |||
- | returns: | ||
- | |||
- | < | ||
- | Status | ||
- | |- Number of jail: 1 | ||
- | `- Jail list: sshd | ||
- | </ | ||
<WRAP info> | <WRAP info> | ||
- | **NOTE: | + | **NOTE: |
- | </ | + | |
- | ---- | + | |
- | + | ||
- | ===== Check the fail2ban status of the sshd service ===== | + | |
- | + | ||
- | <code bash> | + | |
- | sudo fail2ban-client status sshd | + | |
- | </ | + | |
- | + | ||
- | returns: | + | |
- | + | ||
- | < | + | |
- | Status for the jail: sshd | + | |
- | |- Filter | + | |
- | | |- Currently failed: 0 | + | |
- | | |- Total failed: 0 | + | |
- | | `- Journal matches: | + | |
- | `- Actions | + | |
- | | + | |
- | |- Total banned: 0 | + | |
- | `- Banned IP list: | + | |
- | </ | + | |
- | + | ||
- | <WRAP info> | + | |
- | **NOTE: | + | |
- | + | ||
- | The actual ban action is controlled by nftables. | + | |
- | + | ||
- | * Check the nft status with: <code bash> | + | |
- | sudo nft list ruleset | + | |
- | </ | + | |
</ | </ | ||
Line 167: | Line 32: | ||
---- | ---- | ||
- | ===== To manually add banned hosts ===== | + | ===== References |
- | <code bash> | + | [[Ubuntu:Fail2Ban|Fail2Ban]] |
- | sudo fail2ban-client set sshd banip 1.2.3.4/28 | + | |
- | </ | + | |
- | + | ||
- | <WRAP info> | + | |
- | **NOTE:** This will ban IP 1.2.3.4/ | + | |
- | </ | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | ===== To manually add banned hosts ===== | + | |
- | + | ||
- | <code bash> | + | |
- | sudo fail2ban-client set sshd unbanip 1.2.3.4 | + | |
- | </ | + | |
- | + | ||
- | <WRAP info> | + | |
- | **NOTE: | + | |
- | </ | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | ===== To remove all banned hosts ===== | + | |
- | + | ||
- | <code bash> | + | |
- | sudo fail2ban-client unban --all | + | |
- | </ | + | |
- | + | ||
- | ---- | + | |
systems/media_server/secure_the_server/install_fail2ban.1748635253.txt.gz · Last modified: 2025/05/30 20:00 by peter