自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何在Linux上用Fail2Ban保護服務(wù)器免受暴力攻擊

系統(tǒng) Linux 系統(tǒng)運維
Linux管理員的一個重要任務(wù)是保護服務(wù)器免受非法攻擊或訪問。 默認情況下,Linux系統(tǒng)帶有配置良好的防火墻,可以防止多種攻擊。任何連接到互聯(lián)網(wǎng)的機器都是惡意攻擊的潛在目標。 有一個名為Fail2Ban的工具可用來緩解服務(wù)器上的非法訪問。

[[219006]]

Linux 管理員的一個重要任務(wù)是保護服務(wù)器免受非法攻擊或訪問。 默認情況下,Linux 系統(tǒng)帶有配置良好的防火墻,比如iptables、Uncomplicated Firewall(UFW),ConfigServer Security Firewall(CSF)等,可以防止多種攻擊。

任何連接到互聯(lián)網(wǎng)的機器都是惡意攻擊的潛在目標。 有一個名為 Fail2Ban 的工具可用來緩解服務(wù)器上的非法訪問。

 

什么是 Fail2Ban?

Fail2Ban 是一款入侵防御軟件,可以保護服務(wù)器免受暴力攻擊。 它是用 Python 編程語言編寫的。 Fail2Ban 基于auth 日志文件工作,默認情況下它會掃描所有 auth 日志文件,如 /var/log/auth.log/var/log/apache/access.log 等,并禁止帶有惡意標志的IP,比如密碼失敗太多,尋找漏洞等等標志。

通常,F(xiàn)ail2Ban 用于更新防火墻規(guī)則,用于在指定的時間內(nèi)拒絕 IP 地址。 它也會發(fā)送郵件通知。 Fail2Ban 為各種服務(wù)提供了許多過濾器,如 ssh、apache、nginx、squid、named、mysql、nagios 等。

Fail2Ban 能夠降低錯誤認證嘗試的速度,但是它不能消除弱認證帶來的風險。 這只是服務(wù)器防止暴力攻擊的安全手段之一。

 

如何在 Linux 中安裝 Fail2Ban

Fail2Ban 已經(jīng)與大部分 Linux 發(fā)行版打包在一起了,所以只需使用你的發(fā)行包版的包管理器來安裝它。

對于 Debian / Ubuntu,使用 APT-GET 命令APT 命令安裝。

  1. $ sudo apt install fail2ban

對于 Fedora,使用 DNF 命令安裝。

  1. $ sudo dnf install fail2ban

對于 CentOS/RHEL,啟用 EPEL 庫RPMForge 庫,使用 YUM 命令安裝。

  1. $ sudo yum install fail2ban

對于 Arch Linux,使用 Pacman 命令安裝。

  1. $ sudo pacman -S fail2ban

對于 openSUSE , 使用 Zypper命令安裝。

  1. $ sudo zypper in fail2ban

 

如何配置 Fail2Ban

默認情況下,F(xiàn)ail2Ban 將所有配置文件保存在 /etc/fail2ban/ 目錄中。 主配置文件是 jail.conf,它包含一組預定義的過濾器。 所以,不要編輯該文件,這是不可取的,因為只要有新的更新,配置就會重置為默認值。

只需在同一目錄下創(chuàng)建一個名為 jail.local 的新配置文件,并根據(jù)您的意愿進行修改。

  1. # cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

默認情況下,大多數(shù)選項都已經(jīng)配置的很完美了,如果要啟用對任何特定 IP 的訪問,則可以將 IP 地址添加到 ignoreip 區(qū)域,對于多個 IP 的情況,用空格隔開 IP 地址。

配置文件中的 DEFAULT 部分包含 Fail2Ban 遵循的基本規(guī)則集,您可以根據(jù)自己的意愿調(diào)整任何參數(shù)。

  1. # nano /etc/fail2ban/jail.local
  2.  
  3. [DEFAULT]
  4. ignoreip = 127.0.0.1/8 192.168.1.100/24
  5. bantime = 600
  6. findtime = 600
  7. maxretry = 3
  8. destemail = 2daygeek@gmail.com
  • ignoreip:本部分允許我們列出 IP 地址列表,F(xiàn)ail2Ban 不會禁止與列表中的地址匹配的主機
  • bantime:主機被禁止的秒數(shù)
  • findtime:如果在最近 findtime 秒期間已經(jīng)發(fā)生了 maxretry 次重試,則主機會被禁止
  • maxretry:是主機被禁止之前的失敗次數(shù)

 

如何配置服務(wù)

Fail2Ban 帶有一組預定義的過濾器,用于各種服務(wù),如 ssh、apache、nginx、squid、named、mysql、nagios 等。 我們不希望對配置文件進行任何更改,只需在服務(wù)區(qū)域中添加 enabled = true 這一行就可以啟用任何服務(wù)。 禁用服務(wù)時將 true 改為 false 即可。

  1. # SSH servers
  2. [sshd]
  3. enabled = true
  4. port = ssh
  5. logpath = %(sshd_log)s
  6. backend = %(sshd_backend)s
  • enabled: 確定服務(wù)是打開還是關(guān)閉。
  • port:指明特定的服務(wù)。 如果使用默認端口,則服務(wù)名稱可以放在這里。 如果使用非傳統(tǒng)端口,則應(yīng)該是端口號。
  • logpath:提供服務(wù)日志的位置
  • backend:指定用于獲取文件修改的后端。

 

重啟 Fail2Ban

進行更改后,重新啟動 Fail2Ban 才能生效。

  1. [For SysVinit Systems]
  2. # service fail2ban restart
  3.  
  4. [For systemd Systems]
  5. # systemctl restart fail2ban.service

 

驗證 Fail2Ban iptables 規(guī)則

你可以使用下面的命令來確認是否在防火墻中成功添加了Fail2Ban iptables 規(guī)則。

  1. # iptables -L
  2. Chain INPUT (policy ACCEPT)
  3. target prot opt source destination
  4. f2b-apache-auth tcp -- anywhere anywhere multiport dports http,https
  5. f2b-sshd tcp -- anywhere anywhere multiport dports 1234
  6. ACCEPT tcp -- anywhere anywhere tcp dpt:1234
  7.  
  8. Chain FORWARD (policy ACCEPT)
  9. target prot opt source destination
  10.  
  11. Chain OUTPUT (policy ACCEPT)
  12. target prot opt source destination
  13.  
  14. Chain f2b-apache-auth (1 references)
  15. target prot opt source destination
  16. RETURN all -- anywhere anywhere
  17.  
  18. Chain f2b-sshd (1 references)
  19. target prot opt source destination
  20. RETURN all -- anywhere anywhere

 

如何測試 Fail2Ban

我做了一些失敗的嘗試來測試這個。 為了證實這一點,我要驗證 /var/log/fail2ban.log 文件。

  1. 2017-11-05 14:43:22,901 fail2ban.server [7141]: INFO Changed logging target to /var/log/fail2ban.log for Fail2ban v0.9.6
  2. 2017-11-05 14:43:22,987 fail2ban.database [7141]: INFO Connected to fail2ban persistent database '/var/lib/fail2ban/fail2ban.sqlite3'
  3. 2017-11-05 14:43:22,996 fail2ban.database [7141]: WARNING New database created. Version '2'
  4. 2017-11-05 14:43:22,998 fail2ban.jail [7141]: INFO Creating new jail 'sshd'
  5. 2017-11-05 14:43:23,002 fail2ban.jail [7141]: INFO Jail 'sshd' uses poller {}
  6. 2017-11-05 14:43:23,019 fail2ban.jail [7141]: INFO Initiated 'polling' backend
  7. 2017-11-05 14:43:23,019 fail2ban.filter [7141]: INFO Set maxRetry = 5
  8. 2017-11-05 14:43:23,020 fail2ban.filter [7141]: INFO Set jail log file encoding to UTF-8
  9. 2017-11-05 14:43:23,020 fail2ban.filter [7141]: INFO Added logfile = /var/log/auth.log
  10. 2017-11-05 14:43:23,021 fail2ban.actions [7141]: INFO Set banTime = 600
  11. 2017-11-05 14:43:23,021 fail2ban.filter [7141]: INFO Set findtime = 600
  12. 2017-11-05 14:43:23,022 fail2ban.filter [7141]: INFO Set maxlines = 10
  13. 2017-11-05 14:43:23,070 fail2ban.server [7141]: INFO Jail sshd is not a JournalFilter instance
  14. 2017-11-05 14:43:23,081 fail2ban.jail [7141]: INFO Jail 'sshd' started
  15. 2017-11-05 14:43:23,763 fail2ban.filter [7141]: INFO [sshd] Found 103.5.134.167
  16. 2017-11-05 14:43:23,763 fail2ban.filter [7141]: INFO [sshd] Found 103.5.134.167
  17. 2017-11-05 14:43:23,764 fail2ban.filter [7141]: INFO [sshd] Found 181.129.54.170
  18. 2017-11-05 14:43:23,764 fail2ban.filter [7141]: INFO [sshd] Found 181.129.54.170
  19. 2017-11-05 14:43:23,765 fail2ban.filter [7141]: INFO [sshd] Found 181.129.54.170
  20. 2017-11-05 14:43:23,765 fail2ban.filter [7141]: INFO [sshd] Found 181.129.54.170
  21. 2017-11-05 15:19:06,192 fail2ban.server [7141]: INFO Stopping all jails
  22. 2017-11-05 15:19:06,874 fail2ban.jail [7141]: INFO Jail 'sshd' stopped
  23. 2017-11-05 15:19:06,879 fail2ban.server [7141]: INFO Exiting Fail2ban
  24. 2017-11-05 15:19:07,123 fail2ban.server [8528]: INFO Changed logging target to /var/log/fail2ban.log for Fail2ban v0.9.6
  25. 2017-11-05 15:19:07,123 fail2ban.database [8528]: INFO Connected to fail2ban persistent database '/var/lib/fail2ban/fail2ban.sqlite3'
  26. 2017-11-05 15:19:07,126 fail2ban.jail [8528]: INFO Creating new jail 'sshd'
  27. 2017-11-05 15:19:07,129 fail2ban.jail [8528]: INFO Jail 'sshd' uses poller {}
  28. 2017-11-05 15:19:07,141 fail2ban.jail [8528]: INFO Initiated 'polling' backend
  29. 2017-11-05 15:19:07,142 fail2ban.actions [8528]: INFO Set banTime = 60
  30. 2017-11-05 15:19:07,142 fail2ban.filter [8528]: INFO Set findtime = 60
  31. 2017-11-05 15:19:07,142 fail2ban.filter [8528]: INFO Set jail log file encoding to UTF-8
  32. 2017-11-05 15:19:07,143 fail2ban.filter [8528]: INFO Set maxRetry = 3
  33. 2017-11-05 15:19:07,144 fail2ban.filter [8528]: INFO Added logfile = /var/log/auth.log
  34. 2017-11-05 15:19:07,144 fail2ban.filter [8528]: INFO Set maxlines = 10
  35. 2017-11-05 15:19:07,189 fail2ban.server [8528]: INFO Jail sshd is not a JournalFilter instance
  36. 2017-11-05 15:19:07,195 fail2ban.jail [8528]: INFO Jail 'sshd' started
  37. 2017-11-05 15:20:03,263 fail2ban.filter [8528]: INFO [sshd] Found 103.5.134.167
  38. 2017-11-05 15:20:05,267 fail2ban.filter [8528]: INFO [sshd] Found 103.5.134.167
  39. 2017-11-05 15:20:12,276 fail2ban.filter [8528]: INFO [sshd] Found 103.5.134.167
  40. 2017-11-05 15:20:12,380 fail2ban.actions [8528]: NOTICE [sshd] Ban 103.5.134.167
  41. 2017-11-05 15:21:12,659 fail2ban.actions [8528]: NOTICE [sshd] Unban 103.5.134.167

要查看啟用的監(jiān)獄列表,請運行以下命令。

  1. # fail2ban-client status
  2. Status
  3. |- Number of jail: 2
  4. `- Jail list: apache-auth, sshd

通過運行以下命令來獲取禁止的 IP 地址。

  1. # fail2ban-client status ssh
  2. Status for the jail: ssh
  3. |- filter
  4. | |- File list: /var/log/auth.log
  5. | |- Currently failed: 1
  6. | `- Total failed: 3
  7. `- action
  8. |- Currently banned: 1
  9. | `- IP list: 192.168.1.115
  10. `- Total banned: 1

要從 Fail2Ban 中刪除禁止的 IP 地址,請運行以下命令。

  1. # fail2ban-client set ssh unbanip 192.168.1.115 
責任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2015-12-10 11:04:31

2015-03-17 09:50:00

2015-01-06 09:03:18

2014-09-24 09:27:02

2012-09-06 09:53:49

2017-05-03 16:00:02

Linux數(shù)據(jù)安全服務(wù)器

2020-07-15 20:32:45

fail2banFirewallD系統(tǒng)運維

2022-05-19 14:36:54

SQL Server服務(wù)器暴力攻擊

2014-06-13 09:15:48

2022-04-25 08:18:18

Linux 服務(wù)器SSH 暴力攻擊

2009-10-21 14:44:11

2021-03-03 08:00:00

CrowdSec防火墻Linux

2018-02-05 15:10:35

2022-07-18 10:15:14

文件傳輸協(xié)議TFTPLinux

2009-07-15 09:42:46

2021-03-19 08:59:42

forkLinux漏洞

2022-06-13 10:18:13

物聯(lián)網(wǎng)IoT

2021-11-09 15:16:49

物聯(lián)網(wǎng)物理資產(chǎn)IoT

2019-10-29 05:00:58

黑客攻擊網(wǎng)絡(luò)安全

2022-08-24 08:33:27

Git系統(tǒng)Linux
點贊
收藏

51CTO技術(shù)棧公眾號