|
|
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已! |
|
恭喜您是本站第 1730064
位訪客!
登入 | 註冊
|
|
|
|
發表者 |
討論內容 |
冷日 (冷日) |
發表時間:2010/3/29 10:16 |
- Webmaster

- 註冊日: 2008/2/19
- 來自:
- 發表數: 15773
|
- [轉貼]自動擋掉嘗試用ssh入侵Linux的攻擊者IP
- 在 Linux 系統上的 /var/log/secure 裡面常會發現一些類似底下的紀錄
Jan 21 05:32:32 www sshd[24782]: Invalid user office from ::ffff:210.202.33.129
Jan 20 21:32:32 www sshd[24783]: input_userauth_request: invalid user office
Jan 21 05:32:35 www sshd[24782]: Failed password for invalid user office from ::ffff:210.202.33.129 port 61321 ssh2
可是系統上並沒有office這個使用者,而且這個210.202.33.129還出現在其他連續的多筆記錄上,可以知道這是個嘗試入侵的行為,我們可以寫支 shell script 程式來自動擋掉這些討厭的傢伙。
將底下的程式碼複製存檔為 /root/admin/banip.sh
#!/bin/bash
# Name: banip.sh
# Author: Andowson Chang (andowson [at] gmail [dot] com)
# Version: 0.1
# Last Modified: 2007-01-21
# 修改這邊的參數
EXTERNAL_INTERFACE="ppp0" # you must edit this
BANNEDHOSTFILE="/tmp/bannedhosts.txt" #edit this as required
HISTORYHOSTSFILE="/tmp/history.txt" #edit this as required
IPTABLES="/sbin/iptables"
GREP_PARAM="^[[:digit:]]*\.[[:digit:]]*\.[[:digit:]]*\.[[:digit:]]*"
# 找出攻擊的主機IP
grep "Failed password for invalid user" /var/log/secure | cut -d" " -f13 | sort | uniq | cut -d":" -f4 > /tmp/attack.log
grep "Failed password for invalid user" /var/log/secure | cut -d" " -f14 | sort | uniq | cut -d":" -f4 >> /tmp/attack.log
# 刪除一些不是IP的字,目前發現的有from和port,也可以包含測試用的來源IP
sed -e '/from/d' -e '/port/d' -e '/192.168.1/d' /tmp/attack.log > /tmp/attack.txt
# 加入新增的主機
touch $HISTORYHOSTSFILE
sort /tmp/attack.txt | uniq > /tmp/ip1
sort $HISTORYHOSTSFILE | uniq > /tmp/ip2
comm -23 /tmp/ip[1-2] > $BANNEDHOSTFILE # 新增站台資料
rm -rf /tmp/ip[1-2]
rm -rf /tmp/attack.*
# 將攻擊的主機IP加到iptables擋掉
for i in $( grep $GREP_PARAM $BANNEDHOSTFILE )
do
echo "Deny access to host: $i"
$IPTABLES -A INPUT -i $EXTERNAL_INTERFACE -s $i -j DROP
$IPTABLES -A OUTPUT -o $EXTERNAL_INTERFACE -d $i -j DROP
done
# 將處理過的IP清單加到歷史檔去
cat $BANNEDHOSTFILE >> $HISTORYHOSTSFILE
sort $HISTORYHOSTSFILE | uniq > /tmp/history.tmp
mv -f /tmp/history.tmp $HISTORYHOSTSFILE
rm -rf $BANNEDHOSTFILE
然後chmod 755 /root/admin/banip.sh 接著掛到/etc/crontab讓它每五分鐘執行一次
# ban intruder's ip (2007.01.21)
2 */5 * * * * root /root/admin/banip.sh > /var/log/banip.log
察看目前被擋掉的IP:iptables -L -n 如果有誤加的IP,可以利用類似底下的指令來刪除設定
view sourceprint?1 iptables -D INPUT -i ppp0 -s 192.168.1.5 -j DROP
iptables -D OUTPUT -o ppp0 -d 192.168.1.5 -j DROP
為避免重複加入iptables,已在$HISTORYHOSTSFILE裡面的ip,會被自動過濾掉。可是重開機之後iptables的設定會回到預設值,只剩下開放的服務port的設定,沒有擋掉任何主機的設定。如此一來,重開機後將不會再擋掉先前已在歷史檔內的主機。解決的方法是每次重開機後將歷史檔更名,如改為history.txt-yyyymmdd vi /etc/rc.local
view sourceprint?1 mv /tmp/history.txt /tmp/history.txt-`date +%Y%m%d`
原文出處:自動擋掉嘗試用ssh入侵Linux的攻擊者IP
|
|
|
討論串
-
[分享]簡易 NAT 伺服器 (冷日 (冷日), 2005/2/19 19:51)
-
[分享]PROXY.IP Masquerading.Transparent Proxy.工作原理 (冷日 (冷日), 2005/2/19 19:58)
-
[分享]iptables/chains + squid transparent proxy (冷日 (冷日), 2005/2/19 20:05)
-
[分享]使用 iptables 設定使用 NAT 分享網路頻寬 (冷日 (冷日), 2005/2/19 20:06)
-
[分享]使用 iptables 設定一些安全防護功能 (1) (冷日 (冷日), 2005/2/19 20:08)
-
[分享]使用 iptables 設定一些安全防護功能 (2) (冷日 (冷日), 2005/2/19 20:11)
-
[分享]使用 iptables 設定一些安全防護功能 (3) (冷日 (冷日), 2005/2/19 20:12)
-
[分享]IPtables與防火牆 (冷日 (冷日), 2005/2/19 20:18)
-
[轉貼]How to bind 2 WAN 1 LAN (冷日 (冷日), 2005/2/19 20:23)
-
[分享]Linux 上多條對外連線(Multi-Path)實作 (冷日 (冷日), 2005/2/19 20:26)
-
[分享]iptables ─ 功能看齊 enterprise 防火牆 (冷日 (冷日), 2005/2/25 14:52)
-
[分享]iptables經典設置 (冷日 (冷日), 2005/5/18 19:42)
-
[分享]iptables動態NAT對應測試 (冷日 (冷日), 2005/11/4 6:44)
-
[分享]一張網卡 bind 兩個不同網段的 IP (冷日 (冷日), 2005/11/4 7:00)
-
[分享]Linux 指令簡單將攻擊IP列入iptables 限制範圍 (冷日 (冷日), 2008/4/24 6:21)
-
[轉貼]防 ssh 暴力攻擊 使用iptables & shell (冷日 (冷日), 2010/3/29 10:12)
- »
[轉貼]自動擋掉嘗試用ssh入侵Linux的攻擊者IP (冷日 (冷日), 2010/3/29 10:16)
|