2009年4月1日 星期三

....這陣子

這陣子 沒寫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 收下來Very Happy
教學如下網址
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

再來就可以使用嘍

由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

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"

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

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

可避免再發生上敘問題