作者 主題: [教學] FreeBSD 安裝 sshit 設定教學  (閱讀 6031 次)

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

appleboy

  • 活潑的大學生
  • ***
  • 文章數: 224
    • 檢視個人資料
    • 小惡魔筆記
[教學] FreeBSD 安裝 sshit 設定教學
« 於: 2006-10-30 09:20 »
系統:FreeBSD 6.0-RELEASE

安裝方式:

cd /usr/ports/security/sshit/

make install clean

設定檔 /usr/local/etc/sshit.conf

# Sample configuration file of sshit.pl

# We use pf as firewall on default 看你喜歡用什麼防火牆,我熟悉ipfw
FIREWALL_TYPE = ipfw

# Number of failed login attempts within time before we block
MAX_COUNT = 3

# Time in seconds in which all failed login attempts must occur
WITHIN_TIME = 60

# Time in seconds to block ip in firewall 失敗後禁止登入幾秒鐘
RESET_IP = 300

IPFW_CMD = /sbin/ipfw

# Make sure you don't have any important rules here already
IPFW_RULE_START = 2100
IPFW_RULE_END = 3100

IPFW2_CMD = /sbin/ipfw
IPFW2_TABLE_NO = 0

PFCTL_CMD = /sbin/pfctl
PF_TABLE = badhosts

vi /etc/syslog.conf 加上

auth.info;authpriv.info |exec /usr/local/sbin/sshit

不過安裝好之後,照常裡來說可以使用,結果發現完全沒有效果

所以我去看了一下 sshit perl的這隻程式,跟官方網站提供的log檔資料

官方網log檔如下

Jul 23 05:30:51 sshd[36291]: Failed password for root from 200.204.175.122 port 48830 ssh2
Jul 23 05:30:51 sshit.pl: BLOCKING 200.204.175.122, rule 2100FreeBSD auth.log 檔如下

Oct 30 06:53:07 bbs sshd[13935]: error: PAM: authentication error for illegal user test from 163.29.208.2
Oct 30 06:53:07 bbs sshd[13935]: Failed keyboard-interactive/pam for invalid user test from 163.29.208.2 port 48102 ssh2
Oct 30 06:53:07 bbs sshit.pl: BLOCKING 163.29.208.2, rule 2101

發現freebsd的log檔,格式跟官方網不一樣,所以程式是正確的
所以我去改了一下sshit,patch檔如下

代碼: [選擇]

--- /usr/local/sbin/sshit Sun Oct 29 23:38:08 2006
+++ /usr/local/sbin/sshit.new Mon Oct 30 08:42:10 2006
@@ -157,6 +157,8 @@
 
 ### DEFAULT SETTINGS
 
+$SSH_PORT = 22; # SSH PORT
+$FTP_PORT = 21; # FTP PORT
 $FIREWALL_TYPE = "pf"; # We use pf as firewall on default
 $MAX_COUNT = 3; # Number of failed login attempts within time before we block
 $WITHIN_TIME = 60; # Time in seconds in which all failed login attempts must occur
@@ -290,7 +292,7 @@
 
 while (<>) {
  chomp;
- if (/failed .*from (\d+\.\d+\.\d+\.\d+|[\da-fA-F:]+)/i ) { # IPv4 & IPv6
+ if (/error .*from (.*|[\da-fA-F:]+)/i ) { # Domain & IPv4 & IPv6
  $ip = $1;
  if ($list{$ip}{name}) {
  if ($list{$ip}{n} >= $MAX_COUNT) {
@@ -311,7 +313,7 @@
  {
  # Assign a rule number and do the actual block
  $list{$ip}{rulenr} = $ipfw_rulenr;
- system("$IPFW_CMD add $ipfw_rulenr deny tcp from $ip to me 21,22 > /dev/null");
+ system("$IPFW_CMD add $ipfw_rulenr deny tcp from $ip to me $SSH_PORT,$FTP_PORT > /dev/null");
  syslog(LOG_ERR, "BLOCKING $ip, rule $ipfw_rulenr\n");
  $ipfw_rulenr++;
  if ($ipfw_rulenr > $IPFW_RULE_END) { $ipfw_rulenr = $IPFW_RULE_START; }


sshit_pach檔

$SSH_PORT = 22; # SSH PORT
$FTP_PORT = 21; # FTP PORT

自行修改主機的port,這是預設值

http://anp.ath.cx/sshit/

http://blog.gfchen.org/2006/01/22/248/

文章同步於 http://blog.wu-boy.com/2006/11/04/31

歡迎來到 CodeIgniter 繁體中文討論區
My Blog:小惡魔 - 電腦技術 - 生活日記 - 美食介紹 - AppleBOY

ato101

  • 可愛的小學生
  • *
  • 文章數: 17
    • 檢視個人資料
我是用key..該改哪理.如何檔
« 回覆 #1 於: 2006-10-31 22:41 »
if (/(failed|Invalid user) .*from (\d+\.\d+\.\d+\.\d+|[\da-fA-F:]+)/i )
我把上面改成
if (/(failed|Illegal user) .*from (\d+\.\d+\.\d+\.\d+|[\da-fA-F:]+)/i )

因為我被侵入的訊息..是
Illegal user test from 222.xxx.xxx.xxx
Illegal user addf from 222.xxx.xxx.xxx

...可是我改了還是不能...why?

appleboy

  • 活潑的大學生
  • ***
  • 文章數: 224
    • 檢視個人資料
    • 小惡魔筆記
Re: 我是用key..該改哪理.如何檔
« 回覆 #2 於: 2006-11-04 22:24 »
引述: "ato101"
if (/(failed|Invalid user) .*from (\d+\.\d+\.\d+\.\d+|[\da-fA-F:]+)/i )
我把上面改成
if (/(failed|Illegal user) .*from (\d+\.\d+\.\d+\.\d+|[\da-fA-F:]+)/i )

因為我被侵入的訊息..是
Illegal user test from 222.xxx.xxx.xxx
Illegal user addf from 222.xxx.xxx.xxx

...可是我改了還是不能...why?


你改成這樣的話

請把該行的下一行

 $ip = $1;  改成

 $ip = $2;

歡迎來到 CodeIgniter 繁體中文討論區
My Blog:小惡魔 - 電腦技術 - 生活日記 - 美食介紹 - AppleBOY

wbyron

  • 懷疑的國中生
  • **
  • 文章數: 81
  • 性別: 男
    • 檢視個人資料
[教學] FreeBSD 安裝 sshit 設定教學
« 回覆 #3 於: 2006-11-22 12:45 »
請教 sshit_patch 是否移除了?可否再提供下載?

thanks