顯示具有 FreeBSD 標籤的文章。 顯示所有文章
顯示具有 FreeBSD 標籤的文章。 顯示所有文章

2010年5月26日 星期三

BruteForceBlocker

今天無聊裝的
其實最主要想以daemon的方式來把一些惡意的ssh attempt attack block 掉
同時這套搭配packet filter 使用

基本上僅是一隻perl 程式 

要準備好的條件有

1 加入以下到你現在在運行的pf rule

 table persist file "/var/db/ssh-bruteforce"
 block in log quick proto tcp from to any port ssh

2 加入以下在 /etc/syslog.conf 

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

3 安裝缺少的perl 模組

perl -MCPAN -e shell 

內容共使用四個module 

use Sys::Syslog;
use Sys::Hostname;
use LWP::UserAgent;
use Net::DNS::Resolver;



2010年5月12日 星期三

今天make world 發現 -j4 參數餵了以後
會出現錯誤

重新make 一次不加任何參數就ok 了

gcc 版本是

Using built-in specs.

Target: i386-undermydesk-freebsd

Configured with: FreeBSD/i386 system compiler

Thread model: posix

gcc version 4.2.1 20070719 [FreeBSD]

2009年2月11日 星期三

更新完ports tree 後

記得 portsdb -Fu 更新ports tree index db 

給我自己看的XD

FreeBSD 更新security patch

FreeBSD 7.1 STABLE 

cp /usr/share/examples/cvsup/stable-supfile /path/cvsupfile/

vi stable-supfile 

*default host=CHANGE_THIS.FreeBSD.org -> *default host=cvsup.tw.freebsd.org 

*default release=cvs tag=RELENG_7 -> *default release=cvs tag=RELENG_7_1

cvsup -g -L 2 /path/cvsupfile/stable-supfile 

縮小pietty ....站起來倒咖啡 . 回去座位 放咖啡 走到窗戶旁. 看綠色 .....

更新完後

cd /usr/src 

make -j4 buildworld  (j4 :用4個process 處理buildworld , 衝呀!) 

但你別天真的以為這樣就會音速build 好你的新world !......建議你再去喝一杯咖啡 

跑完了之後. 

你以為等待的戲碼已經完了嗎.. 錯! (大錯特錯 不要來! ) ....(冷

再來你可以到 /usr/src/sys/i386/conf 內 

把原本的GENERIC kernel cp 一份到你想放的地方去 比如 /root/kernel的家/ ...etc 

但請切記 做個軟連結到目前目錄 

就是 cp /usr/src/sys/i386/conf/GENERIC /root/kernel_home/SUPERMANKERNEL 

     在/usr/src/sys/i386/conf/ 底下 ln -s /root/kernel_home/SUPERMANKERNEL .  <- 是的,這裡有個點

然後你就可以使用你喜歡的編輯器 vi ee  whenever ..

把你的kernel 瘦身一下  . . 把一些不必要用不到的東西拿掉 

要知道, 我的kernel 不需要全副武裝只是為了打開我家角落那台長滿灰塵 高中生看到都把他當垃圾一樣的PIII 800

好了之後

恭喜你 . 出運了 . 再來是 第三次等待

cd /usr/src 

make buildkernel KERNCONF=SUPERMANKERNEL 

................一樣照慣例 , 你可以縮小pietty . 看一下搖桿驅動程式內有沒有還沒有溫習的 (誤

在make buildkernel 完成後, 你就可以進行

make installkernel KERNCONF=SUPERMANKERNEL <- 這部份快多了, 畢竟不是重新去build 一個kernel 或world 

kernel install 完了, 請重新開機 reboot 

開機選單選6 
在OK 後面輸入 boot -s 進入單人模式 

進來之後 你會發現 囧 只有 /  

沒關希  mount -u /  <- 這個動作就像是 linux 的mount -o remount rw / 

再mount -a  <- 依據/etc/fstab 將 partition mount 起來

df 一下..哇~ 都回來了 

cd /usr/src 

開始mergemaster -p  建立一個臨時環境 把新的config 文件放在這 然後跟系統的文件比較

the directory specified for temporary root environment, /var/tmp/temproot, 

exist , This can be a security risk if untrusted user have access to the system 

他說, 將這個目錄指定到root 的環境, 但是這會有風險的 如果曾經有不可信任的使用者存取過這個系統

都這樣講了, 我們就選擇d 先刪除原有的目錄 再新建一個臨時的目錄供他存放

再來

我們就make installworld  這部份也很快滴

installworld 完之後

使用 mergemaster 將/etc 底下設定檔更新 

這時他會問你 要使用什麼方式來對該文件配置

d 不更新

i 直接用新的蓋過去

m 根據新的文件 與系統文件合併

v 查看新的跟原有的有什麼不同 

所以通常 這些事 我會再安裝新系統時做, 全部選擇 i 就好了XD

再來就重新開機 你花了幾個小時 不就為了看uname -a 居然變成了

7.1-RELEASE-p2 FreeBSD 7.1-RELEASE-p2 #1

傑克 這真是太神奇了!

再來為了不讓以後發生不必要的錯誤 及加快下次make buildworld 的速度 請記得
cd /usr/obj (存放編輯的結果) chflags -R noschg * (某些檔案在過程中會賦予不可更動的flag 把此取消) rm -rf * (做這個動作請確認你在對的目錄 對的機器上, 我通常一次會連五六台機器)
參考的網站有 
net網誌 Freebsd.doc

2009年2月8日 星期日

更新完perl , openwebmail 無法開啟 -.-

cd /var/db/pkg
portupgrade -m ENABLE_SUIDPERL=yes -f perl-5.8.\*
perl-after-upgrade perl-after-upgrade -f
portupgrade -m "-DFORCE_PKG_REGISTER" -rf perl-5.8.\* -x perl-5.8.\*

edit /usr/local/etc/pkgtools.conf

at MAKE_ARGS setcion

MAKE_ARGS = {
'lang/perl5.8' => 'ENABLE_SUIDPERL=yes', }

2009年2月3日 星期二

bsd nginx php5 fastcgi

安裝
nginx by port
php5 by port
mod_fastcgi by port
rehash
/usr/local/bin/php-cgi -h
-b | Bind Path for external FASTCGI Server mode
/usr/local/bin/php-cgi -b 127.0.0.1:9000 & 錯誤的做法 , 關聯性都搞錯了 090310
應再安裝
spawn-fcgi
此套件包在lighttpd ,不過已經分割出來成為一個獨立的project了,相關的訊息在here
anyway 開始安裝 lightttpd
pkg_add -r -v lighttpd  (-r 處理相依性, -v 詳細模式)

裝完了之後, 其實我們僅僅需要 spawn-fcgi 此執行檔

先將spawn-fcgi 搬到家目錄下

rehash

whereis spawn-fcgi

spawn-fcgi: /usr/local/bin/spawn-fcgi

cp /usr/local/bin/spawn-fcgi ~

pkg_delete -v lighttpd-1.4.18_1

vi /usr/local/etc/nginx/nginx.conf
修改server_name
location 修改
index index.php index.html

unmark 以下部分

location ~ \.php$ {
root /usr/local/www/nginx;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
紅色是修改的部分

/usr/local/etc/rc.d/nginx restart

啟動

php 的fastcgi

/usr/local/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www -g www -f /usr/local/bin/php-cgi

轉錄自 FreeBSDCHINAWiki 的 fastcgi script

#!/bin/sh
PROVIDES=php-cgi
LIGHTTPD_FCGI=/usr/local/bin/spawn-fcgi
SERVER_IP=127.0.0.1
SERVER_PORT=9000
SERVER_USER=www
SERVER_GROUP=www
PHP_CGI=/usr/local/bin/php-cgi
PGREP=/bin/pgrep
KILLALL=/usr/bin/killall
### No editing below ####
cmd=$1

pcgi_start(){
echo "Starting $PROVIDES..."
$LIGHTTPD_FCGI -a $SERVER_IP -p $SERVER_PORT -u $SERVER_USER -g $SERVER_GROUP -f $PHP_CGI
}

pcgi_stop(){
echo "Killing $PROVIDES..."
$KILLALL $PROVIDES
}

pcgi_restart(){
pcgi_stop
pcgi_start
}

pcgi_status(){
$PGREP $PROVIDES > /dev/null
[ $? -eq 0 ] && echo "$PROVIDES running" || echo "$PROVIDES NOT running"

}

pcgi_help(){
echo "Usage: $0 {start|stop|restart|status}"
}

case ${cmd} in
[Ss][Tt][Aa][Rr][Tt]) pcgi_start;;
[Ss][Tt][Oo][Pp]) pcgi_stop;;
[Rr][Ee][Ss][Tt][Aa][Rr][Tt]) pcgi_restart;;
[Ss][Tt][Aa][Tt][Uu][Ss]) pcgi_status ;;
*) pcgi_help ;;
esac

參考網站有

shiningray張宴義氣幫的gslin大大

及剛提到的FreeBSDChinaWiki