[FreeBSD] 安裝 sshit 設定教學

系統: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檔,格式跟官方網不一樣,所以程式是正確的 ssh_patch檔 http://alumni.ee.ccu.edu.tw/~appleboy/patch/sshit_patch.txt 自行修改主機的port,這是預設值 http://anp.ath.cx/sshit/ http://blog.gfchen.org/2006/01/22/248/

[FreeBSD] 系統核心支援ipfw 更新kernel

系統預設是不能使用 ipfw 指令,因為系統核心不支援,要使系統支援 ipfw,則需要修改核心

cd /usr/src/sys/i386/conf
vi GENERIC

#在最後面加入

options IPFIREWALL
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=10
options IPDIVERT
#然後存檔
config GENERIC
cd ../compile/GENERIC/
make cleandepend; make depend;
make depend all install

編譯好沒有錯誤之後,就可以重新開機 ipfw list 65535 allow ip from any to any 看到上面訊息,就是成功 我在自己的論壇寫過一遍

http://www.forum.wu-boy.com/t=10210
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/firewalls-ipfw.html
http://freebsd.lab.mlc.edu.tw/natd/

[Linux] 使用 yum 更新 redhat enterprise server 4

由於 redhat enterprise server 4 伺服器版本,沒有提供線上升級套件的功能yum 所以我利用 centos的yum/apt的server來更新 設定檔如下 [base] name=Fedora Core $releasever – $basearch – Base baseurl=http://ftp.isu.edu.tw/pub/Linux/CentOS/4.4/os/$basearch/ [updates-released] name=Fedora Core $releasever – $basearch – Released Updates baseurl=http://ftp.isu.edu.tw/pub/Linux/CentOS/4.4/updates/$basearch/ 更新 yum 指令如下 yum的常用指令: yum update [套件1] [套件2] […] 更新套件,若後面不加任何的套件,則會更新所有系統目前已經安裝了的套件 yum install 套件1 [套件2] […] 安裝套件 yum upgrade [套件1] [套件2] […] 升級套件,將一些過舊即將洮汰的套件也一起升級 yum remove 套件1 [套件2] […] 移除套件 yum clean packages 清除暫存(/var/cache/yum)目錄下的套件 yum clean headers 清除暫存(/var/cache/yum)目錄下的 headers yum clean oldheaders 清除暫存(/var/cache/yum)目錄下舊的 headers yum clean 或是 yum clean all 清除暫存(/var/cache/yum)目錄下的套件及舊的 headers 等於是執行 yum clean packages 及 yum clean oldheaders yum list 列出所有的套件 yum list updates 列出所有可以更新的套件 yum list installed 列出所有已安裝的套件 yum list extras 列出所有已安裝但不在 Yum Repository 內的套件 yum list [參數] 列出所指定的套件,參數可以是套件名稱或是在 shell 中所使用的表示式,如 ? 等 yum check-update 檢查可以更新的套件 yum info 列出所有套件的資訊 yum info updates 列出所有可以更新的套件資訊 yum info installed 列出所有已安裝的套件資訊 yum info extras 列出所有已安裝但不在 Yum Repository 內的套件資訊 yum info [參數] 列出所指定的套件資訊,參數可以是套件名稱或是在 shell 中所使用的表示式,如 ? 等 yum provides 套件1 [套件2] […] 列出套件提供哪些檔案 yum search [參數] 搜尋套件 reference http://www.php5.idv.tw/modules.php?mod=books&act=show&shid=2536

[Ubuntu] 開機自動執行script

因為在安裝 maple bbs 的時候 發現itoc的方式沒辦法解決開機自動執行 沒有 inetd.conf 也沒有 xinetd 的方式 ,所以利用下面方式才可以達成 我是增加一個檔案 /etc/init.d/bbsd 然後增加以下內容 ————————————–
#!/bin/sh # # MapleBBS # su bbs -c ‘/home/bbs/bin/camera’ su bbs -c ‘/home/bbs/bin/account’ /home/bbs/bin/bbsd /home/bbs/bin/bmtad /home/bbs/bin/bpop3d /home/bbs/bin/gemd /home/bbs/bin/bguard /home/bbs/bin/xchatd /home/bbs/innd/innbbsd
—————————————
chmod 755 /etc/init.d/bbsd
然後 cd /etc
update-rc.d bbsd defaults 90
90為開機時的執行順序, 端看您如何設定. update-rc.d會自動幫各個rcX.d目錄下建立一link至/etc/init.d/執行檔 或者是 update-rc.d iptables start 20 2 3 4 5 . stop 0 1 6 . 後面有一個點喔 2.3.4.5 是指 rcX.d 複製到底下 當開機run level 2.3.4.5 當開機run level的話才會執行 該執行檔

[Linux] Ubuntu 6.06 Proftpd + Mysql 安裝方式

ProFTPD Version 1.2.10 Mysql Version 4.1.0 支援 UTF8 請確定你的proftpd有支援sql module
proftpd -l | grep mysql

proftpd -l | grep sql
mod_sql.c
mod_sql_mysql.c
mod_quotatab_sql.c
確定有支援之後 再來就是建立mysql資料庫 * 建立 proftp 資料庫
CREATE DATABASE `ftp` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
* 建立使用者資料表
 CREATE TABLE `ftp` (
`username` varchar( 60 ) default NULL ,
`uid` int( 11 ) NOT NULL ,
`gid` int( 11 ) default NULL ,
`password` varchar( 30 ) default NULL ,
`homedir` varchar( 60 ) default NULL ,
`shell` varchar( 11 ) default ‘/bin/false’,
PRIMARY KEY ( `uid` ) ,
UNIQUE KEY ( `username` )
) TYPE = MYISAM;
此資料表是在紀錄使用者的基本資訊,uid是使用者系統uid,gid是使用者group的id,passwd使用者的密碼 homedir為使用者登入的家目錄, shell可以為該使用者指定相應的shell * 建立使用者群組資料表
 CREATE TABLE `groups` (
`groupname` varchar( 30 ) NOT NULL default ‘’,
`gid` int( 11 ) NOT NULL default ‘0′,
`members` text default NULL
) TYPE = MYISAM;
其中grpname是組的名稱,gid是系統組的ID,members是組的成員。注意:多成員,他們之間要用逗號隔開,不能使用空格 例如 3個使用者 test1 test2 test3 ,members就要寫 (test1,test2,test3) #設置MySQL認證: SQLConnectInfo 資料庫 資料庫帳號 資料庫密碼 #設置user資料表資訊『對應你的設定的資料表』 SQLUserInfo ftp username password uid gid homedir shell #設置group資料表資訊『對應你的設定的資料表』 SQLGroupInfo groups groupname gid members #設定使用者密碼編碼方式 ex:Plaintext 純文字 SQLAuthTypes Plaintext #設定mysql log檔 SQLLogFile /var/log/sql.log PersistentPasswd off #如果home目錄不存在,則系統會為根據它的home項新建一個目錄: SQLHomedirOnDemand on 再來呢,建立ftp的專屬group,當然你如果有許多群組,請自行建立 1. 建立groupgroupadd ftpgroup 2. 建立一個使用者home目錄
useradd -G ftpgroup -d /home/ftp -m -s /bin/false ftp
為FTPUSR建立HOME,把所有的FTP user 活動空間全放在此目錄下:
mkdir /home/ftp #剛剛建立使用者已經建立了
chown -R ftp:ftpgroup /home/ftp
開始建立ftp的使用者,可以的話利用phpmyadmin
INSERT INTO user (`userid`, `passwd`, `uid`, `gid`, `home`, `shell`) values (’test’, ‘1234′, ‘1000′, ‘1001′, ‘/home/ftp/’, ‘/bin/false’ );
INSERT INTO `groups` VALUES (’ftpgroup’, 1001, ‘test’);
上面那個是新增group對應使用者,如果你有多個使用者對應到同一個group 那麼你就要修改 group 改成 VALUES (’ftpgroup’, 1001, ‘test1,test2,test3′) 所以每增加一個使用者,就要去修改一次,有點麻煩,不過寫程式就可以解決了 大致上是如此,有問題在提出吧 我的proftpd.conf設定檔 http://bbs.ee.ndhu.edu.tw/~appleboy/proftpd.conf

[FreeBSD] 安裝Awstats 6.6

安裝路徑
cd /usr/ports/www/awstats-devel/ 安裝好之後 請在 httpd.conf 最後面加入 # Directives to allow use of AWStats as a CGI # Alias /awstatsclasses “/usr/local/www/awstats/classes/” Alias /awstatscss “/usr/local/www/awstats/css/” Alias /awstatsicons “/usr/local/www/awstats/icons/” ScriptAlias /awstats/ “/usr/local/www/awstats/cgi-bin/”
執行 /usr/local/www/awstats/tools/awstats_configure.pl 會出現錯誤訊息~
Error: Failed to open ‘/usr/local/www/awstats/wwwroot/cgi-bin/awstats.model.conf’ for read. Error: AWStats database directory defined in config file by ‘DirData’ parameter (/var/lib/awstats) does not exist or is not writable. Setup (‘/etc/awstats/awstats.192.168.100.244.conf’ file, web server or permissions) may be wrong. Check config file, permissions and AWStats documentation (in ‘docs’ directory).
建立 /var/lib/awstats 目錄,並給予 777 之權限 chmod 777 /var/lib/awstats 註:若不給予777權限,將來若設定 AllowToUpdateStatsFromBrowser=1 時,會無法透過Browser來即時更新Report
—– AWStats awstats_configure 1.0 (build 1.6) (c) Laurent Destailleur —– This tool will help you to configure AWStats to analyze statistics for one web server. You can try to use it to let it do all that is possible in AWStats setup, however following the step by step manual setup documentation (docs/index.html) is often a better idea. Above all if: – You are not an administrator user, – You want to analyze downloaded log files without web server, – You want to analyze mail or ftp log files instead of web log files, – You need to analyze load balanced servers log files, – You want to ‘understand’ all possible ways to use AWStats… Read the AWStats documentation (docs/index.html). —–> Running OS detected: Linux, BSD or Unix Warning: AWStats standard directory on Linux OS is ‘/usr/local/awstats’. If you want to use standard directory, you should first move all content of AWStats distribution from current directory: /usr/local/www/awstats to standard directory: /usr/local/awstats And then, run configure.pl from this location. Do you want to continue setup from this NON standard directory [yN] ? y —–> Check for web server install Enter full config file path of your Web server. Example: /etc/httpd/httpd.conf Example: /usr/local/apache2/conf/httpd.conf Example: c:Program filesapache groupapacheconfhttpd.conf Config file path (‘none’ to skip web server setup): > /usr/local/etc/lighttpd.conf —–> Check and complete web server config file ‘/usr/local/etc/lighttpd.conf’ AWStats directives already present. —–> Update model config file ‘/usr/local/www/awstats/cgi-bin/awstats.model.conf’ File awstats.model.conf updated. —–> Need to create a new config file ? Do you want me to build a new AWStats config/profile file (required if first install) [y/N] ? y —–> Define config file name to create What is the name of your web site or profile analysis ? Example: www.mysite.com Example: demo Your web site, virtual server or profile name: > bbs.ee.ndhu.edu.tw —–> Define config file path In which directory do you plan to store your config file(s) ? Default: /etc/awstats Directory path to store config file(s) (Enter for default): > /usr/local/etc —–> Create config file ‘/usr/local/etc/awstats.bbs.ee.ndhu.edu.tw.conf’ Config file /usr/local/etc/awstats.bbs.ee.ndhu.edu.tw.conf created. —–> Add update process inside a scheduler Sorry, configure.pl does not support automatic add to cron yet. You can do it manually by adding the following command to your cron: /usr/local/www/awstats/cgi-bin/awstats.pl -update -config=bbs.ee.ndhu.edu.tw Or if you have several config files and prefer having only one command: /usr/local/www/awstats/tools/awstats_updateall.pl now Press ENTER to continue… A SIMPLE config file has been created: /usr/local/etc/awstats.bbs.ee.ndhu.edu.tw.conf You should have a look inside to check and change manually main parameters. You can then manually update your statistics for ‘bbs.ee.ndhu.edu.tw’ with command: > perl awstats.pl -update -config=bbs.ee.ndhu.edu.tw You can also read your statistics for ‘bbs.ee.ndhu.edu.tw’ with URL: > http://localhost/awstats/awstats.pl?config=bbs.ee.ndhu.edu.tw Press ENTER to finish…
執行 /usr/local/www/awstats/cgi-bin/awstats.pl -update -config=bbs.ee.ndhu.edu.tw From data in log file “/var/log/lighttpd.access.log”… Phase 1 : First bypass old records, searching new record… Searching new records from beginning of log file… Phase 2 : Now process new records (Flush history on disk after 20000 hosts)… Jumped lines in file: 0 Parsed lines in file: 11219 Found 0 dropped records, Found 6 corrupted records, Found 0 old records, Found 11213 new qualified records. 成功訊息 設定進入該網址的權限

    Options None
    AllowOverride None
    Order allow,deny
    Allow from 192.168.130.211 192.168.160.109

Demo http://bbs.ee.ndhu.edu.tw/awstats/awstats.pl?config=bbs.ee.ndhu.edu.tw lighttpd http://trac.lighttpd.net/trac/wiki/#ReferenceDocumentation Awstats設定檔