這陣子 沒寫blog
心血來潮打算寫一下
才發現blog 不能開
當下以為是辜狗的問題
後來才發現....我自己的灰塵機上次上pre-release 7.2
因為套件有些問題
自己耍笨下了pkg_delete -af 清掉所有套件
只把php nginx php-cgi 編回去就丟著了XD
完全忘了dns 掛在那台
2009年2月20日 星期五
使用google 服務 讓你也有一台mail server 還不用管理
出神入化的google 又一讓我大驚的創舉
若我們擁有以下條件即可達成輕鬆, 不需任何成本
只要一杯咖啡的時間, 完成這個工作
1. gmail account (這個應該大家都有吧)
2. 自己的domain (這個不貴吧)
以下以funnyd.idv.tw 為例, 因我本身已提供funnyd.idv.tw 的mail services
故以下使用mail.funnyd.idv.tw 環境是BSD6.1
3 設定DNS . 新增MX 記錄 開啟funnyd.idv.tw 的zone file
mail IN MX 1 ASPMX.L.GOOGLE.COM.
mail IN MX 5 ALT1.ASPMX.L.GOOGLE.COM.
mail IN MX 5 ALT2.ASPMX.L.GOOGLE.COM.
mail IN MX 10 ASPMX2.GOOGLEMAIL.COM.
mail IN MX 10 ASPMX3.GOOGLEMAIL.COM.
mail IN MX 10 ASPMX4.GOOGLEMAIL.COM.
mail IN MX 10 ASPMX5.GOOGLEMAIL.COM.
www.mail IN CNAME ghs.google.com.
kill -1 `cat /var/run/named/pid`
4.
至https://www.google.com/a/ 申請mail.funnyd.idv.tw
然後依網頁說明step by step 建立
建立完畫面-> webmail : http://mail.google.com/a/mail.funnyd.idv.tw/
(  ̄ c ̄)y▂ξ 還送網頁空間
http://www.mail.funnyd.idv.tw-a.googlepages.com/home
還可以用 pop3 收下來
教學如下網址
http://mail.google.com/support/bin/answer.py?ctx=%67mail&hl=zh_TW&answer=12103
另外, 你說用gmail 有什麼好處, 什麼都不用說, 光說共用行事曆這個功能就嚇嚇叫了
還要提一點...有人一次申請3000個帳號, 也過...3000 * 2GB ...趨近6TB
辜狗果然是神...
若我們擁有以下條件即可達成輕鬆, 不需任何成本
只要一杯咖啡的時間, 完成這個工作
1. gmail account (這個應該大家都有吧)
2. 自己的domain (這個不貴吧)
以下以funnyd.idv.tw 為例, 因我本身已提供funnyd.idv.tw 的mail services
故以下使用mail.funnyd.idv.tw 環境是BSD6.1
3 設定DNS . 新增MX 記錄 開啟funnyd.idv.tw 的zone file
mail IN MX 1 ASPMX.L.GOOGLE.COM.
mail IN MX 5 ALT1.ASPMX.L.GOOGLE.COM.
mail IN MX 5 ALT2.ASPMX.L.GOOGLE.COM.
mail IN MX 10 ASPMX2.GOOGLEMAIL.COM.
mail IN MX 10 ASPMX3.GOOGLEMAIL.COM.
mail IN MX 10 ASPMX4.GOOGLEMAIL.COM.
mail IN MX 10 ASPMX5.GOOGLEMAIL.COM.
www.mail IN CNAME ghs.google.com.
kill -1 `cat /var/run/named/pid`
4.
至https://www.google.com/a/ 申請mail.funnyd.idv.tw
然後依網頁說明step by step 建立
建立完畫面-> webmail : http://mail.google.com/a/mail.funnyd.idv.tw/
(  ̄ c ̄)y▂ξ 還送網頁空間
http://www.mail.funnyd.idv.tw-a.googlepages.com/home
還可以用 pop3 收下來
教學如下網址
http://mail.google.com/support/bin/answer.py?ctx=%67mail&hl=zh_TW&answer=12103
另外, 你說用gmail 有什麼好處, 什麼都不用說, 光說共用行事曆這個功能就嚇嚇叫了
還要提一點...有人一次申請3000個帳號, 也過...3000 * 2GB ...趨近6TB
辜狗果然是神...
ldap
LDAP 在原本的設計是整合多個伺服器的帳號, 不過其實LDAP 可以使用在通訊錄的整合
這些通訊錄或帳號也許可以不用是本機的實體帳號
但藉由OE or thundbird 此MUA 軟體, 也可以輕鬆達到自通訊錄尋找符合特定條件的人員相關資料
STEP 1
查詢是否有安裝LDAP 相關套件
rpm -qa | grep openldap
openldap-devel-2.3.19-4
openldap-servers-2.3.19-4
openldap-2.3.19-4
openldap-clients-2.3.19-4
STEP 2
修改openldap server端的設定檔
vi /etc/openldap/sldap.conf
找到以下
database bdb
suffix "dc=EXAMPLE,dc=com"
rootdn "cn=Manager,dc=EXAMPLE,dc=com"
修改如下
database bdb
suffix "dc=orz,dc=com" ; 這邊依你的需求
rootdn "cn=Manager,dc=orz,dc=com" 這邊dc的部份要與suffix 相同
以及認證的部份
rootpw {SSHA}ph2MuDim6HvZURdNqjqTkZiqE4WMMgDl
以上加密過的密碼是如何產生的呢?
先讓我們暫時將目前的vi 工作退至背景
esc 到命令模式 ctrl +z
[1]+ Stopped vim /etc/openldap/slapd.conf
使用slappasswd -s 欲產生的密碼
ex
slappasswd -s seednet
再將{SSHA}ph2MuDim6HvZURdNqjqTkZiqE4WMMgDl (加密過的seednet)
複製到/etc/openldap/slapd.conf
ok 在bash下打fg回到vi 工作
找到rootpw 將編碼過後的密碼加到rootpw 後
server端的設定就完成了,超簡單的..
啟動ldap 吧
/etc/init.d/ldap start
再來,建立屬於你的第一個ldif 檔案
內容如下
dn: dc=orz,dc=com
dc: orz
o: orz
ObjectClass: organization
ObjectClass: dcObject
dn: ou=people,dc=orz,dc=com
ObjectClass: top
ObjectClass: organizationalUnit
ou: people
dn: uid=geeko,ou=people,dc=orz,dc=com
ObjectClass: top
ObjectClass: PosixAccount
ObjectClass: ShadowAccount
ObjectClass: inetOrgPerson
uid: geeko
uidNumber: 1010
gidNumber: 100
cn: Geeko Chameleon
givenName: Geeko
sn: Chameleon
homeDirectory: /home/geeko
loginShell: /bin/bash
shadowMax: 99999
shadowWarning: 7
shadowInactive: -1
shadowMin: 0
shadowLastChange: 12609
這邊稍微提一下,在ObjectClass 的定義,有些欄位是MUST BE 所以當你定義了
ObjectClass: PosixAccount
那麼如 uidNumber 是必須,一定要填寫的
所以同理可證 你也可以自己定義屬於你自己需求的schema
位置在/etc/openldap/schema
所以目前我們就可以加入第一筆嘍
ldapadd -v -x -D "cn=Man" -W -f test.ldif
出現
Enter LDAP Password:
這邊當然是輸入剛剛由slappasswd -s 產生的那組seednet 嘍
add dc:
orz
add o:
orz
add ObjectClass:
organization
dcObject
adding new entry "dc=orz,dc=com"
modify complete
add ObjectClass:
top
organizationalUnit
add ou:
people
adding new entry "ou=people,dc=orz,dc=com"
modify complete
add ObjectClass:
top
PosixAccount
ShadowAccount
inetOrgPerson
add uid:
geeko
add uidNumber:
1010
add gidNumber:
100
add cn:
Geeko Chameleon
add givenName:
Geeko
add sn:
Chameleon
add homeDirectory:
/home/geeko
add loginShell:
/bin/bash
add shadowMax:
99999
add shadowWarning:
7
add shadowInactive:
-1
add shadowMin:
0
add shadowLastChange:
12609
adding new entry "uid=geeko,ou=people,dc=orz,dc=com"
modify complete
霹靂啪啦就加完了
也就是說,目前你已經可以透過MUA 透過LDAP SERVER 查詢資料嘍
打開oe 點選通訊錄->工具->帳戶->新增->輸入ldap server 所在的ip->是否檢查
個人地址,這邊視個人需求->完成
再回到剛新增的通訊錄目錄服務內,選擇剛新增的ldap server 點選內容->進階
搜查依據選擇dc=orz,dc=com
再來就可以使用嘍
這些通訊錄或帳號也許可以不用是本機的實體帳號
但藉由OE or thundbird 此MUA 軟體, 也可以輕鬆達到自通訊錄尋找符合特定條件的人員相關資料
STEP 1
查詢是否有安裝LDAP 相關套件
rpm -qa | grep openldap
openldap-devel-2.3.19-4
openldap-servers-2.3.19-4
openldap-2.3.19-4
openldap-clients-2.3.19-4
STEP 2
修改openldap server端的設定檔
vi /etc/openldap/sldap.conf
找到以下
database bdb
suffix "dc=EXAMPLE,dc=com"
rootdn "cn=Manager,dc=EXAMPLE,dc=com"
修改如下
database bdb
suffix "dc=orz,dc=com" ; 這邊依你的需求
rootdn "cn=Manager,dc=orz,dc=com" 這邊dc的部份要與suffix 相同
以及認證的部份
rootpw {SSHA}ph2MuDim6HvZURdNqjqTkZiqE4WMMgDl
以上加密過的密碼是如何產生的呢?
先讓我們暫時將目前的vi 工作退至背景
esc 到命令模式 ctrl +z
[1]+ Stopped vim /etc/openldap/slapd.conf
使用slappasswd -s 欲產生的密碼
ex
slappasswd -s seednet
再將{SSHA}ph2MuDim6HvZURdNqjqTkZiqE4WMMgDl (加密過的seednet)
複製到/etc/openldap/slapd.conf
ok 在bash下打fg回到vi 工作
找到rootpw 將編碼過後的密碼加到rootpw 後
server端的設定就完成了,超簡單的..
啟動ldap 吧
/etc/init.d/ldap start
再來,建立屬於你的第一個ldif 檔案
內容如下
dn: dc=orz,dc=com
dc: orz
o: orz
ObjectClass: organization
ObjectClass: dcObject
dn: ou=people,dc=orz,dc=com
ObjectClass: top
ObjectClass: organizationalUnit
ou: people
dn: uid=geeko,ou=people,dc=orz,dc=com
ObjectClass: top
ObjectClass: PosixAccount
ObjectClass: ShadowAccount
ObjectClass: inetOrgPerson
uid: geeko
uidNumber: 1010
gidNumber: 100
cn: Geeko Chameleon
givenName: Geeko
sn: Chameleon
homeDirectory: /home/geeko
loginShell: /bin/bash
shadowMax: 99999
shadowWarning: 7
shadowInactive: -1
shadowMin: 0
shadowLastChange: 12609
這邊稍微提一下,在ObjectClass 的定義,有些欄位是MUST BE 所以當你定義了
ObjectClass: PosixAccount
那麼如 uidNumber 是必須,一定要填寫的
所以同理可證 你也可以自己定義屬於你自己需求的schema
位置在/etc/openldap/schema
所以目前我們就可以加入第一筆嘍
ldapadd -v -x -D "cn=Man" -W -f test.ldif
出現
Enter LDAP Password:
這邊當然是輸入剛剛由slappasswd -s 產生的那組seednet 嘍
add dc:
orz
add o:
orz
add ObjectClass:
organization
dcObject
adding new entry "dc=orz,dc=com"
modify complete
add ObjectClass:
top
organizationalUnit
add ou:
people
adding new entry "ou=people,dc=orz,dc=com"
modify complete
add ObjectClass:
top
PosixAccount
ShadowAccount
inetOrgPerson
add uid:
geeko
add uidNumber:
1010
add gidNumber:
100
add cn:
Geeko Chameleon
add givenName:
Geeko
add sn:
Chameleon
add homeDirectory:
/home/geeko
add loginShell:
/bin/bash
add shadowMax:
99999
add shadowWarning:
7
add shadowInactive:
-1
add shadowMin:
0
add shadowLastChange:
12609
adding new entry "uid=geeko,ou=people,dc=orz,dc=com"
modify complete
霹靂啪啦就加完了
也就是說,目前你已經可以透過MUA 透過LDAP SERVER 查詢資料嘍
打開oe 點選通訊錄->工具->帳戶->新增->輸入ldap server 所在的ip->是否檢查
個人地址,這邊視個人需求->完成
再回到剛新增的通訊錄目錄服務內,選擇剛新增的ldap server 點選內容->進階
搜查依據選擇dc=orz,dc=com
再來就可以使用嘍
由ms 備份至linux
需求: Windows WebServer 要備份至Linux Server
建立folder 就叫backup
置放rar.exe
至backup folder 內
建立一Backup.bat
內容如下:
@echo off
rar a -ag[YYYYMMDD] backup @backup.lst
ftp -n -s:myfile.scr
del backup[*].rar
建立backup.lst 檔案
內容為你要備份的完整路徑
如D:\IWANNABACKUPTHISFOLDER
建立myfile.scr
內容:
open YourLinuxServerIP
user backup ->You must create before use
backup -> passwd about accout backup
hash
prompt
mput backup[*].rar
bye
建立完成後,即可使用m$內的排程工作定期執行該任務
這部份就不多賛敘了
P.s 由於這樣做對安全上是有一定的影響
iptables 要設定限制
另外
記得要/sbin/modprobe ip_conntrack_ftp
建立folder 就叫backup
置放rar.exe
至backup folder 內
建立一Backup.bat
內容如下:
@echo off
rar a -ag[YYYYMMDD] backup @backup.lst
ftp -n -s:myfile.scr
del backup[*].rar
建立backup.lst 檔案
內容為你要備份的完整路徑
如D:\IWANNABACKUPTHISFOLDER
建立myfile.scr
內容:
open YourLinuxServerIP
user backup ->You must create before use
backup -> passwd about accout backup
hash
prompt
mput backup[*].rar
bye
建立完成後,即可使用m$內的排程工作定期執行該任務
這部份就不多賛敘了
P.s 由於這樣做對安全上是有一定的影響
iptables 要設定限制
另外
記得要/sbin/modprobe ip_conntrack_ftp
mutt db to gmail
#!/bin/sh
DATESTR=`date "+%Y%m%d%H"`
/usr/bin/mysqldump --add-locks btwoe > /root/tmp/backupb2e.$DATESTR.sql
/bin/tar -zcvf /root/tmp/etcbackup$DATESTR.tar.gz /etc
/bin/tar -zcvf /tmp/mybackup.tgz /root/tmp
echo "etc and sql backup" | mutt -a /tmp/mybackup.tgz yourgmailaccout@gmail.com "etc and sql backup"
DATESTR=`date "+%Y%m%d%H"`
/usr/bin/mysqldump --add-locks btwoe > /root/tmp/backupb2e.$DATESTR.sql
/bin/tar -zcvf /root/tmp/etcbackup$DATESTR.tar.gz /etc
/bin/tar -zcvf /tmp/mybackup.tgz /root/tmp
echo "etc and sql backup" | mutt -a /tmp/mybackup.tgz yourgmailaccout@gmail.com "etc and sql backup"
iptables block ssh attempt attack
iptables block ssh attempt 適用於RedHat,Fedora
#容忍值可以調高一點(粗體字)
#! /bin/bash
VAL=`grep Failed /var/log/secure | awk '{print $(NF-3)}' |cut -d: -f4 | sort | uniq -c |awk '{print $1"="$2}'`
for i in $VAL
do
NUM=`echo $i|awk -F= '{print $1}'`
IP=`echo $i|awk -F= '{print $2}'`
if [ $NUM -gt 5 ] && [ -z "`iptables -vnL INPUT|grep $IP`" ]
then
iptables -I INPUT -p tcp -s $IP -j REJECT --reject-with tcp-reset
echo "platinum log: `date` $IP($NUM)" >> /var/log/val.log
fi
done
iptables block ssh attempt 適用於Debian
#容忍值可以調高一點(粗體字)
#!/bin/bash
VAL=`grep Illegal /var/log/auth.log | awk '{print $10}' | sort | uniq -c | awk '{print $1"="$2}'`
for i in $VAL
do
NUM=`echo $i|awk -F= '{print $1}'`
echo $NUM
IP=`echo $i|awk -F= '{print $2}'`
echo $IP
if [ $NUM -gt 5 ] && [ -z "`iptables -vnL INPUT|grep $IP`" ]
then
iptables -I INPUT -p tcp -s $IP -j REJECT --reject-with tcp-reset
echo "platinum log: `date` $IP($NUM)" >> /var/log/val.log
fi
done
#容忍值可以調高一點(粗體字)
#! /bin/bash
VAL=`grep Failed /var/log/secure | awk '{print $(NF-3)}' |cut -d: -f4 | sort | uniq -c |awk '{print $1"="$2}'`
for i in $VAL
do
NUM=`echo $i|awk -F= '{print $1}'`
IP=`echo $i|awk -F= '{print $2}'`
if [ $NUM -gt 5 ] && [ -z "`iptables -vnL INPUT|grep $IP`" ]
then
iptables -I INPUT -p tcp -s $IP -j REJECT --reject-with tcp-reset
echo "platinum log: `date` $IP($NUM)" >> /var/log/val.log
fi
done
iptables block ssh attempt 適用於Debian
#容忍值可以調高一點(粗體字)
#!/bin/bash
VAL=`grep Illegal /var/log/auth.log | awk '{print $10}' | sort | uniq -c | awk '{print $1"="$2}'`
for i in $VAL
do
NUM=`echo $i|awk -F= '{print $1}'`
echo $NUM
IP=`echo $i|awk -F= '{print $2}'`
echo $IP
if [ $NUM -gt 5 ] && [ -z "`iptables -vnL INPUT|grep $IP`" ]
then
iptables -I INPUT -p tcp -s $IP -j REJECT --reject-with tcp-reset
echo "platinum log: `date` $IP($NUM)" >> /var/log/val.log
fi
done
SMTP protocol synchronization error (next input sent too soon: pipelining was not advertised)
在某些硬體spam 設備做將被隔離的信件撈回動作時, 會被exim 擋掉
錯誤訊息如下
SMTP protocol synchronization error (next input sent too soon: pipelining was not advertised)
可以將exim 的檢查選項關閉
default 是開啟的
在main configure 內
加入
smtp_enforce_sync = false
可避免再發生上敘問題
錯誤訊息如下
SMTP protocol synchronization error (next input sent too soon: pipelining was not advertised)
可以將exim 的檢查選項關閉
default 是開啟的
在main configure 內
加入
smtp_enforce_sync = false
可避免再發生上敘問題
exim with DNS SPF
在exim 配置DNS SPF 檢查
在EXIM 上的應用在exim configure acl sector 加入
acl_check_rcpt:
#...
# Use spfquery to perform a pair of SPF checks (for details, see
# http://www.openspf.org/)
#
# This is quite costly in terms of DNS lookups (~6 lookups per mail). Do not
# enable if that's an issue. Also note that if you enable this, you must
# install "libmail-spf-query-perl" which provides the spfquery command.
# Missing libmail-spf-query-perl will trigger the "Unexpected error in
# SPF check" warning.
deny
message = [SPF] $sender_host_address is not allowed to send mail from \
${if def:sender_address_domain {$sender_address_domain}{$sender_helo_name}}. \
Please see http://www.openspf.org/why.html?sender=$sender_address&ip=$sender_host_address
log_message = SPF check failed.
condition = ${run{/usr/bin/spfquery --ip \"$sender_host_address\" \
--mail-from \"$sender_address\" --helo \"$sender_helo_name\"} \
{no}{${if eq {$runrc}{1}{yes}{no}}}}
defer
message = Temporary DNS error while checking SPF record. Try again later.
condition = ${if eq {$runrc}{5}{yes}{no}}
warn
message = Received-SPF: ${if eq {$runrc}{0}{pass}{${if eq {$runrc}{2}{softfail}\
{ ${if eq {$runrc}{3}{neutral}{${if eq {$runrc}{4}{unknown}\
{${if eq {$runrc}{6}{none}{error}}}}}}}}}}
condition = ${if le {$runrc}{6}{yes}{no}}
warn
log_message = Unexpected error in SPF check.
condition = ${if gt {$runrc}{6}{yes}{no}}
# Support for best-guess (see http://www.openspf.org/developers-guide.html)
warn
message = X-SPF-Guess: ${run{/usr/bin/spfquery --ip \"$sender_host_address\" \
--mail-from \"$sender_address\" \ --helo \"$sender_helo_name\" --guess true}\
{pass}{${if eq {$runrc}{2}{softfail}{${if eq {$runrc}{3}{neutral}{${if eq {$runrc}{4}{unknown}\
{${if eq {$runrc}{6}{none}{error}}}}}}}}}}
condition = ${if le {$runrc}{6}{yes}{no}}
defer
message = Temporary DNS error while checking SPF record. Try again later.
condition = ${if eq {$runrc}{5}{yes}{no}}[img][/img]
簡單來說
DNS SPF record 應先配置在dns server 上
而DNS SPF check 則應在該機制成熟後加入,減少spam 信件
在EXIM 上的應用在exim configure acl sector 加入
acl_check_rcpt:
#...
# Use spfquery to perform a pair of SPF checks (for details, see
# http://www.openspf.org/)
#
# This is quite costly in terms of DNS lookups (~6 lookups per mail). Do not
# enable if that's an issue. Also note that if you enable this, you must
# install "libmail-spf-query-perl" which provides the spfquery command.
# Missing libmail-spf-query-perl will trigger the "Unexpected error in
# SPF check" warning.
deny
message = [SPF] $sender_host_address is not allowed to send mail from \
${if def:sender_address_domain {$sender_address_domain}{$sender_helo_name}}. \
Please see http://www.openspf.org/why.html?sender=$sender_address&ip=$sender_host_address
log_message = SPF check failed.
condition = ${run{/usr/bin/spfquery --ip \"$sender_host_address\" \
--mail-from \"$sender_address\" --helo \"$sender_helo_name\"} \
{no}{${if eq {$runrc}{1}{yes}{no}}}}
defer
message = Temporary DNS error while checking SPF record. Try again later.
condition = ${if eq {$runrc}{5}{yes}{no}}
warn
message = Received-SPF: ${if eq {$runrc}{0}{pass}{${if eq {$runrc}{2}{softfail}\
{ ${if eq {$runrc}{3}{neutral}{${if eq {$runrc}{4}{unknown}\
{${if eq {$runrc}{6}{none}{error}}}}}}}}}}
condition = ${if le {$runrc}{6}{yes}{no}}
warn
log_message = Unexpected error in SPF check.
condition = ${if gt {$runrc}{6}{yes}{no}}
# Support for best-guess (see http://www.openspf.org/developers-guide.html)
warn
message = X-SPF-Guess: ${run{/usr/bin/spfquery --ip \"$sender_host_address\" \
--mail-from \"$sender_address\" \ --helo \"$sender_helo_name\" --guess true}\
{pass}{${if eq {$runrc}{2}{softfail}{${if eq {$runrc}{3}{neutral}{${if eq {$runrc}{4}{unknown}\
{${if eq {$runrc}{6}{none}{error}}}}}}}}}}
condition = ${if le {$runrc}{6}{yes}{no}}
defer
message = Temporary DNS error while checking SPF record. Try again later.
condition = ${if eq {$runrc}{5}{yes}{no}}[img][/img]
簡單來說
DNS SPF record 應先配置在dns server 上
而DNS SPF check 則應在該機制成熟後加入,減少spam 信件
exim with maildir
platform :centos 5 , exim 4.69
begin routers 區段
localuser:
driver = accept
check_local_user
# local_part_suffix = +* : -*
# local_part_suffix_optional
transport = maildir_delivery
cannot_route_message = Unknown user
begin transports 區段
maildir_delivery:
driver = appendfile
directory = /home/$local_part/maildir
delivery_date_add
envelope_to_add
return_path_add
maildir_format
check_string =
restart exim services .
log
2008-09-02 13:23:07 1KaOM7-0001P7-Bc <= lalala@mail.abc.com.tw H=mail.proeurotex.com.tw [123.123.123.123] P=esmtp S=823 id=200809020523.m825NCvl022516@mail.abc.com.tw
2008-09-02 13:23:07 1KaOM7-0001P7-Bc => admin R=localuser T=maildir_delivery
2008-09-02 13:23:07 1KaOM7-0001P7-Bc Completed
驗證一下 , 使用者家目錄
產生了maidlr 此目錄 內有cur new tmp 目錄
在new 目錄
1220332987.H475850P5403.andrew.usnei.net
在imap pop3 server 我使用dovecot
在 /etc/dovecot.conf 內
加入
mail_location = maildir:~/maildir
如果要使用ipop3 的話 ,
我不確定有沒有支援
同時我也不建議, ipop3 基本上已經過時了
dovecot 支援較多的功能
效能也一直隨著版本更新改善
begin routers 區段
localuser:
driver = accept
check_local_user
# local_part_suffix = +* : -*
# local_part_suffix_optional
transport = maildir_delivery
cannot_route_message = Unknown user
begin transports 區段
maildir_delivery:
driver = appendfile
directory = /home/$local_part/maildir
delivery_date_add
envelope_to_add
return_path_add
maildir_format
check_string =
restart exim services .
log
2008-09-02 13:23:07 1KaOM7-0001P7-Bc <= lalala@mail.abc.com.tw H=mail.proeurotex.com.tw [123.123.123.123] P=esmtp S=823 id=200809020523.m825NCvl022516@mail.abc.com.tw
2008-09-02 13:23:07 1KaOM7-0001P7-Bc => admin
2008-09-02 13:23:07 1KaOM7-0001P7-Bc Completed
驗證一下 , 使用者家目錄
產生了maidlr 此目錄 內有cur new tmp 目錄
在new 目錄
1220332987.H475850P5403.andrew.usnei.net
在 /etc/dovecot.conf 內
加入
mail_location = maildir:~/maildir
如果要使用ipop3 的話 ,
我不確定有沒有支援
同時我也不建議, ipop3 基本上已經過時了
dovecot 支援較多的功能
效能也一直隨著版本更新改善
2009年2月11日 星期三
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', }
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
修改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
shiningray 與 張宴 及 義氣幫的gslin大大
及剛提到的FreeBSDChinaWiki
nginx by port
php5 by port
mod_fastcgi by port
rehash
/usr/local/bin/php-cgi -h
-b
應再安裝
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
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
2009年1月19日 星期一
: undefined reference to `ieee80211_next_scan'
今天在編bsd 6.2 kernel 出現這個錯誤
結果仔細看了好一陣子.....機車的要命
是device ural # Ralink Technology RT2500USB wireless NICs 沒有刪掉
-____- gy
結果仔細看了好一陣子.....機車的要命
是device ural # Ralink Technology RT2500USB wireless NICs 沒有刪掉
-____- gy
訂閱:
文章 (Atom)