作者 主題: ssh 問題,請高手教我(已解決)  (閱讀 9620 次)

0 會員 與 1 訪客 正在閱讀本文。

wbyron

  • 懷疑的國中生
  • **
  • 文章數: 81
  • 性別: 男
    • 檢視個人資料
ssh 問題,請高手教我(已解決)
« 於: 2011-04-15 03:04 »
因為 ssh log 有很多看起來很不舒服的紀錄,所小弟爬了很多文後,決定自己寫一段程式來封阻不善的 ip,單獨測試都很成功,為什麼放在一起就出現很奇怪的結果,請高手教我,感激不盡。

Freebsd 8.2

引用
#!/bin/sh
badip="/tmp/badip"
badiplist="/tmp/badiplist"
denylist="/tmp/denylist"

grep "PAM: authentication" /var/log/messages | cut -d " " -f14 | sort | uniq > $badip
grep "Invalid user" /var/log/auth.log | cut -d " " -f10 | sort | uniq >> $badip
ipfw list | grep "deny" | grep "to me" | cut -d " " -f5 | sort | uniq >> $badip
cat $badip | sort | uniq > $badiplist

i=100
date > $denylist
echo "#--------------------------------------------" >> $denylist
for rule in $(cat $badiplist)
do
  echo "add new rule $i into ipfw : deny all from $rule to me" >> $denylist
  /sbin/ipfw add $i deny all from $rule to me
  i=$(($i+100))
done

rm $badip

單獨測試:

grep "PAM: authentication" /var/log/messages | cut -d " " -f14 | sort | uniq > $badip
cat /tmp/badip

引用
124.117.239.67
60.13.176.3
grep "Invalid user" /var/log/auth.log | cut -d " " -f10 | sort | uniq >> $badip
cat /tmp/badip

引用
124.117.239.67
60.13.176.3
117.102.109.16
175.198.81.27
88.190.16.9
ipfw list | grep "deny" | grep "to me" | cut -d " " -f5 | sort | uniq >> $badip
cat /tmp/badip

引用
124.117.239.67
60.13.176.3
117.102.109.16
175.198.81.27
88.190.16.9
117.102.109.16
123.49.61.58
124.117.239.67
175.198.81.27
189.111.194.74
202.102.108.11
207.45.165.214
210.66.168.73
211.206.123.115
212.138.82.25
218.240.1.117
218.44.198.72
218.75.21.26
221.133.24.18
59.120.234.76
60.13.176.3
62.165.171.89
64.196.35.218
8.17.103.15
84.235.126.106
88.190.16.9

在 /etc/crontab 中加入:
引用
*/1   *   *   *   *   root   /root/bin/banhost

等了一段時間,檢查我的 ipfw rule,出現很奇怪的結果,請問是什麼原因?
ipfw list
引用
00100 deny ip from 189.111.194.74 to me
00100 deny ip from 117.102.109.16 to me
00100 deny ip from 117.102.109.16 to me
00100 deny ip from 117.102.109.16 to me
00100 deny ip from 117.102.109.16 to me
00100 deny ip from 117.102.109.16 to me
00200 deny ip from 202.102.108.11 to me
00200 deny ip from 123.49.61.58 to me
00200 deny ip from 123.49.61.58 to me
00200 deny ip from 123.49.61.58 to me
00200 deny ip from 123.49.61.58 to me
00200 deny ip from 123.49.61.58 to me
00200 deny ip from 123.49.61.58 to me

………

02100 deny ip from 88.190.16.9 to me
02100 deny ip from 88.190.16.9 to me
02100 deny ip from 88.190.16.9 to me
02100 deny ip from 88.190.16.9 to me
02100 deny ip from 88.190.16.9 to me
30000 allow ip from any to any via lo0
30100 allow ip from any to me dst-port 80
30200 allow icmp from any to any
30300 allow ip from any to me dst-port 22 keep-state
30400 allow ip from me to any keep-state
30500 deny ip from any to 127.0.0.0/8
30600 deny ip from 127.0.0.0/8 to any
30700 deny ip from any to any
65535 allow ip from any to any

就是說同一條 rule 會出現很多次。
« 上次編輯: 2011-04-16 10:35 由 wbyron »

wbyron

  • 懷疑的國中生
  • **
  • 文章數: 81
  • 性別: 男
    • 檢視個人資料
回覆: ssh 問題,請高手教我(已解決)
« 回覆 #1 於: 2011-04-16 10:38 »


引用
#!/bin/sh
badip="/tmp/badip"
badiplist="/tmp/badiplist"
denylist="/tmp/denylist"

grep "PAM: authentication" /var/log/messages | cut -d " " -f14 | sort | uniq > $badip
grep "Invalid user" /var/log/auth.log | cut -d " " -f10 | sort | uniq >> $badip
ipfw list | grep "deny" | grep "to me" | cut -d " " -f5 | sort | uniq >> $badip
cat $badip | sort | uniq > $badiplist

i=100
date > $denylist
echo "#--------------------------------------------" >> $denylist
for rule in $(cat $badiplist)
do
  echo "add new rule $i into ipfw : deny all from $rule to me" >> $denylist
  /sbin/ipfw add $i deny all from $rule to me
  i=$(($i+100))
done

rm $badip

中間,i=100,那行後面加上「/sbin/ipfw flush」,先清除所有的 rule,就可以了。

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17327
    • 檢視個人資料
    • http://www.study-area.org
回覆: ssh 問題,請高手教我(已解決)
« 回覆 #2 於: 2011-04-16 11:26 »
不是 linux 系統?
很早之前小弟也有試過類似的script:
http://www.study-area.org/tips/ssh_tips.htm

wbyron

  • 懷疑的國中生
  • **
  • 文章數: 81
  • 性別: 男
    • 檢視個人資料
回覆: ssh 問題,請高手教我(已解決)
« 回覆 #3 於: 2011-04-19 03:46 »
是 Freebsd 的系統。

您的程式有一些看不太懂,慢慢研究,只是現在又有一個問題,那就是我這兩天 ipfw 的成長由 10 條到 26 條規則,代表我的 script 有用,但是擔心未來如果成長到太龐大該怎麼辦?

引用
sudo ipfw list
00100 deny ip from 117.102.109.16 to me
00200 deny ip from 122.193.25.52 to me
00300 deny ip from 123.49.61.58 to me
00400 deny ip from 124.117.239.67 to me
00500 deny ip from 168.143.154.222 to me
00600 deny ip from 168.7.21.146 to me
00700 deny ip from 175.198.81.27 to me
00800 deny ip from 186.19.254.45 to me
00900 deny ip from 189.111.194.74 to me
01000 deny ip from 202.102.108.11 to me
01100 deny ip from 207.45.165.214 to me
01200 deny ip from 210.66.168.73 to me
01300 deny ip from 211.206.123.115 to me
01400 deny ip from 212.138.82.25 to me
01500 deny ip from 218.240.1.117 to me
01600 deny ip from 218.44.198.72 to me
01700 deny ip from 218.75.21.26 to me
01800 deny ip from 221.133.24.18 to me
01900 deny ip from 58.211.5.179 to me
02000 deny ip from 59.120.234.76 to me
02100 deny ip from 60.13.176.3 to me
02200 deny ip from 62.165.171.89 to me
02300 deny ip from 64.196.35.218 to me
02400 deny ip from 8.17.103.15 to me
02500 deny ip from 84.235.126.106 to me
02600 deny ip from 88.190.16.9 to me

50000 allow ip from any to any via lo0
50100 allow ip from any to me dst-port 80
50200 allow icmp from any to any
50300 allow ip from any to me dst-port 22 keep-state
50400 allow ip from me to any keep-state
50500 deny ip from any to 127.0.0.0/8
50600 deny ip from 127.0.0.0/8 to any
50700 deny ip from any to any
65535 allow ip from any to any
« 上次編輯: 2011-04-19 03:48 由 wbyron »

kknrs29423

  • 懷疑的國中生
  • **
  • 文章數: 58
    • 檢視個人資料
回覆: ssh 問題,請高手教我(已解決)
« 回覆 #4 於: 2011-04-19 10:18 »
把i設小一點,間隔也用小一點,就可以多塞一點了

或是也可以定期清掉之前的設定  ;D

wbyron

  • 懷疑的國中生
  • **
  • 文章數: 81
  • 性別: 男
    • 檢視個人資料
回覆: ssh 問題,請高手教我(已解決)
« 回覆 #5 於: 2011-04-20 19:58 »
引用
把i設小一點,間隔也用小一點,就可以多塞一點了

或是也可以定期清掉之前的設定

thanks。

了。

aknine

  • 懷疑的國中生
  • **
  • 文章數: 47
    • 檢視個人資料
回覆: ssh 問題,請高手教我(已解決)
« 回覆 #6 於: 2011-05-29 23:07 »
把 sshd的tcp port 22改到其他port ,單是這樣就可以免去99%以上的 不正常 login.

在Internet上, sshd使用default的tcp port 22 實務上實在是不太建議啦.

純粹是個人的一點經驗...參考看看..


jou

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 4989
  • 性別: 男
    • 檢視個人資料
回覆: ssh 問題,請高手教我(已解決)
« 回覆 #7 於: 2011-05-30 09:43 »
提供另一個方法。

關鍵字搜尋 knock 。