失落的紀錄

2010-06-08

fail2ban 安裝

分類: Llinux — 番茄 @ 11:15

1.到 http://www.fail2ban.org/wiki/index.php/Downloads
Packages -> swackware

資料夾的 fail2ban 是 swackware 12.1 使用的
此時點一直點選 Parent Directory 直到出現 slackware-13.0/ 的資料夾

再依序點選 slackware-13.0 -> system -> fail2ban -> 0.8.4

下載 fail2ban-0.8.4-noarch-1cv.txz 檔案

下載的檔案存放在 /tmp 資料夾
# cd /tmp
# pkgtools

選擇第一項


選擇Yes -> ok ,套件完成安裝

3.設定 jail.conf 檔

/etc/fail2ban/ 的內容:
fail2bad.conf fail2bad本身的設定檔
jail.conf 設定要判斷的程式的設定檔
action.d(目錄) 這是放fail2ban觸發的動作設定檔
filter.d(目錄) 這是放fail2ban分析log的規則檔

4.將 DNS 也加入 fail2bad 的規則

# vi /etc/named.conf
  在最後面加入下列內容,然後存檔,重新啟動 Bind
logging {
  channel security_file {
    file "/var/log/named/security.log" versions 3 size 30m;
    severity dynamic;
    print-time yes;
    };
  category security {
  security_file;
  };
}

 

5.編輯 jail.conf 設定檔

# vi /etc/fail2ban/jail.conf

[DEFAULT]
ignoreip = 127.0.0.1 192.168.1.0/24(忽略的IP,中間要空一格)
bantime  = 86400(Ban的時間(單位為秒))
findtime  = 600(這是監視的log時間區段,用來配合maxretry(單位為秒))

maxretry = 3(針對來源在findtime設定的時間內,幾次失敗後要ban)
backend = auto(分為 gamin , polling ,auto ,選擇何種方式去偵測檔案是否有異動)
# This jail corresponds to the standard configuration in Fail2ban 0.6.
# The mail-whois action send a notification e-mail with a whois request
# in the body.

[ssh-iptables]個別設定
enabled  = true (啟動=true)(關閉=false)
filter   = sshd (在 /etc/fail2ban/failter.d/內的判斷名稱)
action   = iptables[name=SSH, port=ssh, protocol=tcp]
sendmail-whois[name=SSH, dest=you@mail.com, sender=fail2ban@mail.com]
要觸發的action.d動作檔名與參數上面的例子為:
使用iptables這動作檔並使用[ ]內的參數使用iptables阻擋,如果您的 SSH有改埠,
請在 port=ssh 改成您的埠 Port=12345
使用sendmail-whois這動作檔並使用[ ]內的參數將通知信寄到dest以及sender
logpath = /var/log/messages(這個ssh服務的log檔位置,就是會顯示ssh登入失敗的那個檔案) maxretry = 5(針對來源在findtime設定的時間內,幾次失敗後要ban) ..... 略 ..... # These jails block attacks against named (bind9). By default, logging is off # with bind9 installation. You will need something like this: # # logging { # channel security_file { # file "/var/log/named/security.log" versions 3 size 30m; # severity dynamic; # print-time yes; # }; # category security { # security_file; # }; # }; # # in your named.conf to provide proper logging. # This jail blocks UDP traffic for DNS requests. [named-refused-udp] enabled = true filter = named-refused action = iptables-multiport[name=Named, port="domain,953", protocol=udp] sendmail-whois[name=Named, dest=you@ymail.com] logpath = /var/log/named/dns-security.log ignoreip = 168.192.0.1 # This jail blocks TCP traffic for DNS requests. [named-refused-tcp] enabled = true filter = named-refused action = iptables-multiport[name=Named, port="domain,953", protocol=tcp] sendmail-whois[name=Named, dest=you@ymail.com] logpath = /var/log/named/dns-security.log ignoreip = 168.192.0.1

 

6.啟動 fail2ban
# cd /etc/rc.d/
# chmod 755 rc.fail2ban

 

7.編輯 rc.local 以及rc.local_shutdown

# vi rc.local
加入/etc/rc.d/rc.fail2ban

# cd /etc/rc.d
# vi
rc.local_shutdown
加入/etc/rc.d/rc.fail2ban

8.啟動 .fail2ban
# rc.fail2ban start

======================

filter 的設定(filter.d/*.conf)
欲定義過濾條件,可以編輯 /etc/fail2ban/filter.d/*.(conf|local) 目錄下的檔案,如「sshd.conf」,後續於 jail.conf 中使用該 filter 則名為 sshd。每個 filter 設定檔中可分為以下幾個主要部分:

1.INCLUDES
可用來載入其他檔案的設定值,預設會自動引用 .local 檔案。
before
於設定檔載入前先引用此檔案。
after
於設定檔載入後再引用此檔案。

2.Definition
failregex
用來比對錯誤訊息的條件設定,使用 Python 的正規表示法語法。
ignoreregex
用來設定當符合此條件設定時,則忽略該行文字內容。

例如:
log顯示:
popa3d[123456]: connect from 59.105.191.124 (59.105.191.124)
條件表示:
failregex = popa3d(?:[d+])?: connect from S+ (<HOST>)

log顯示:
Info: auth(default): shadow(t1,211.20.219.236): Password mismatch
條件表示:
Info: auth(default): shadow(.*,<HOST>): Password mismatch

======================
action 的設定(action.d/*.conf)
定義動作內容,可以編輯 /etc/fail2ban/action.d/*.(conf|local) 目錄下的檔案,如「iptables.conf」,後續於 jail.conf 中使用該 action 則名為 iptables。每個 action 設定檔中可分為以下幾個主要部分:

INCLUDES
可用來載入其他檔案的設定值,預設可自動引用 .local 檔案。
Init
可用來預先定義變數,供 Definition 中使用。
Definition
1.actionstart:定義當 Fail2ban 啟動時,所要執行的指令,如初使化設定。
2.actionstop:定義當 Fail2ban 停止時,所要執行的指令。
3.actionban: 定義要阻擋某個 IP 時,所要執行的指令。
4.actionunban:定義要取消阻擋某個 IP 時,所要執行的指令。
5.actioncheck:定義於每次執行 actionban 或 actionunban 前,所要執行的指令,以判斷是否要執行 actionban 或 actionunban。

 

無迴響

No comments yet.

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

Powered by WordPress