返回   qkShare香港討論區 > 電腦專區 > UNIX / Linux (*nix)
註冊 論壇輔助說明 會員名單 搜尋 今日新文章 標記討論區已讀


UNIX / Linux (*nix)
UNIX: AIX HPUX Solaris
Linux: Arklinux CentOS Conectiva Debian Fedora Gentoo Mandrake Mandriva OpenSuSE RedHat SuSE Trustix TurboLinux Ubuntu
電腦 精華 教學 密技 技巧 應用 知識

回覆
 
主題工具 顯示模式
舊 02-29-2008, 11:57   #1
初心者
 
註冊日期: Jan 2008
文章: 2424
積分: 59487
acid1031
預設 以 Fail2ban 封鎖嘗試侵入的 IP

基本運作原理: fail2ban (daemon) → 監視 log file → 連續出現多次錯誤訊息 → 封鎖來源 IP
以下是分別在 Fedora Core 3 (python-2.3 & fail2ban 0.6.1) 與 Fedora 7 (python-2.5 & fail2ban 0.8) 針對 sshd 與 proftpd 的防護設置
環境
  • Fedora Core 3
  • python-2.3.4
  • fail2ban 0.6.1 (required: python >= 2.3)
安裝 fail2ban 0.6.1
download page
wget http://fail2ban.sourceforge.net/rpms/fail2ban-0.6.1-2jik.noarch.rpm
rpm -ivh fail2ban-0.6.1-2jik.noarch.rpm
啟用 fail2ban
vi /etc/fail2ban.conf
#以 daemon 方式啟動 fail2ban
background = true
#允許嘗試次數
maxfailures = 3
#觸發 maxfailures 之後的封鎖時間(秒); 設為 -1 表示永遠封鎖
bantime = 600
#以 findtime (秒) 時間內的錯誤記錄作為 maxfailures 的計數基準
findtime = 600
#排除 IP 範圍, 以空白隔開
ignoreip = 127.0.0.1 192.168.0.0/24
#不啟用 mail 通知
[MAIL]
enabled = false
#修改自 VSFTPD, 未提及的部份保持原設定
[PROFTPD]
enabled = true
logfile = /var/log/proftpd/proftpd.log
failregex = no such user|Incorrect password
#未提及的部份保持原設定
[SSH]
enabled = true
logfile = /var/log/secure
service fail2ban start
環境
  • Fedora 7
  • python-2.5
  • fail2ban 0.8 (required: python >= 2.4)
安裝 fail2ban 0.8
download page
yum install python-devel
wget http://nchc.dl.sourceforge.net/sourceforge/fail2ban/fail2ban-0.8.0.tar.bz2
tar jxf fail2ban-0.8.0.tar.bz2
cd fail2ban-0.8.0
python setup.py install
啟用 fail2ban
cd /etc/fail2ban
vi jail.conf
#全域設置
[DEFAULT]
#排除 IP 範圍, 以空白隔開
ignoreip = 127.0.0.1 192.168.0.0/24
#觸發 maxretry 之後的封鎖時間(秒); 設為 -1 表示永遠封鎖
bantime = 600
#以 findtime (秒) 時間內的錯誤記錄作為 maxretry 的計數基準
findtime = 600
#允許嘗試次數
maxretry = 3
#以 iptables 阻擋嚐試登入 sshd 的來源 ip
[ssh-iptables]
enabled = true
filter = sshd #對應 /etc/fail2ban/filter.d
action = iptables[name=SSH, port=ssh, portocol=tcp] #對應 /etc/fail2ban/action.d
logpath = /var/log/secure #這是 Fedora 的 sshd log file
maxretry = 5 #取代全域設定值 (maxretry = 3)
[proftpd-iptables]
enabled = true
filter = proftpd
action = iptables[name=ProFTPD, port=ftp, protocol=tcp]
logpath = /var/log/proftpd/proftpd.log
maxretry = 6
fail2ban-client start
ProFTPD 補充
  • 產生 log 檔:
    • 編輯 proftpd.conf
    • 加入: SystemLog /var/log/proftpd/proftpd.log
  • 若要連密碼錯誤也一併計入 "maxretry":
    • 編輯 /etc/fail2ban/filter.d/proftpd.conf
    • 於 failregex 加入一行: Incorrect password

此文章於 02-29-2008 11:58 被 acid1031 編輯.
acid1031 目前離線   回覆時引用此篇文章
回覆


目前檢視此主題的會員: 1 (0 位會員和 1 位遊客)
 
主題工具
顯示模式

發表文章規則
不可以發表新主題
不可以回覆主題
不可以上傳附件
不可以編輯您的文章

開啟 vB 代碼
關閉 HTML 程式碼
Trackbacks are 關閉
Pingbacks are 關閉
Refbacks are 關閉
論壇跳轉


所有時間均為 +8。現在的時間是 12:43


qkShare All Rights Reserved.
重要聲明:本討論區是以即時上載留言的方式運作,qkShare香港討論區 對所有留言的真實性、完整性及立場等,不負任何 法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見 (如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。qkShare香港討論區有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿撰寫粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。