2010年1月28日 星期四

使用outlook2003(含)以上寄信,outlook express收不到附件的問題

解決方法:將使用outlook 2003 之信件格式改為純文字,再寄出
 
工具->選項->郵件格式->純文字
徵狀
當您傳送內含附件的電子郵件訊息給不是使用 Microsoft Outlook 的收件者時,當收件者開啟電子郵件訊息,或是如果電子郵件訊息中有 Winmail.dat 附件時,附件可能會遺漏。
發生的原因
這種情形的發生原因可能是因為接收電子郵件的用戶端,無法辨識附件資訊的內部 Outlook 封裝,這種封裝稱為 Transport Neutral Encapsulation Format (TNEF)。Outlook 會使用 TNEF,藉由 RTF 格式來傳送電子郵件訊息。

Linux安裝proftpd (CentOS 5.4)

先安裝好gcc、gcc-c++、make、xinetd
[root@centos ~]# yum -y install gcc
[root@centos ~]# yum -y install gcc-c++
[root@centos ~]# yum -y install make
[root@centos ~]# yum -y install xinetd
下載 proftpd:
proftpd-1.3.2c.tar.gz
http://www.proftpd.org/
安裝proftpd
[root@centos ~]# tar -zxvf proftpd-1.3.2c.tar.gz
[root@centos ~]# cd proftpd-1.3.2c
[root@centos proftpd-1.3.2c]# ./configure --enable-shadow
[root@centos proftpd-1.3.2c]# make[root@centos proftpd-1.3.2c]# make install
備份設定檔
[root@centos proftpd-1.3.2c]# cp /usr/local/etc/proftpd.conf /usr/local/etc/proftpd.bak

啟動ProFTP
ProFTP啟動方式有兩種,一種是standalone,另一種則為inetd,若此Server為專門之FTP則建議採用Standalone方式啟動,若還有其他服務則建議採inetd啟動其效能較佳。以下為inetd方式作為範例:
在 /etc/xinetd.d/ 下建立 proftpd 檔,內容為 :
[root@centos proftpd-1.3.2c]# vi /etc/xinetd.d/proftpd
Service ftp
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/local/sbin/proftpd
}
要先建立一個proftpd的資料夾
[root@centos ~]# mkdir /var/log/proftpd
設定proftpd.conf
[root@centos ~]# vi /usr/local/etc/proftpd.conf
ServerName "Marcus FTP Server"
ServerType inetd
Group nobody
Defaultroot ~ !ftpadmin
# ftpadmin是群組,在這群組內的使用者都可以離開家目錄,”~ ”和” ! ”中間要有空格。
沒有” ! ”代表該群組內的使用者都不能離開家目錄。
不允許匿名登入(以下部份make掉)# A basic anonymous configuration, no upload directories. If you do not
# want anonymous users, simply delete this entire <Anonymous> section.

#<Anonymous ~ftp>
# User ftp
# Group ftp
#
# # We want clients to be able to login with "anonymous" as well as "ftp"
# UserAlias anonymous ftp
#
# # Limit the maximum number of anonymous logins
# MaxClients 10
#
# # We want 'welcome.msg' displayed at login, and '.message' displayed
# # in each newly chdired directory.
# DisplayLogin welcome.msg
# DisplayChdir .message
#
# # Limit WRITE everywhere in the anonymous chroot
# <Limit WRITE>
# DenyAll
# </Limit>
#</Anonymous>
# 使用本地時間 SetEnv TZ :/etc/localtime
TimesGMT off
# 指定站台系統 Log 位置 SystemLog /var/log/proftpd/proftpd.log
# 自己定義 Log 格式,紀錄登入 (login.log) 和傳檔 (transfer.log) 的細節
# TransferLog /var/log/proftpd/xferlog

LogFormat myxfer "%{%Y/%m/%d %H:%M:%S}t [%u] \"%m %f\" (%bB/%TS)"
LogFormat myauth "%{%Y/%m/%d %H:%M:%S}t [%u] \"%r\": %S (%a)"
ExtendedLog /var/log/proftpd/login.log auth myauth
ExtendedLog /var/log/proftpd/transfer.log read,write myxfer
# 同主機只允許 5 個登入、同帳號只允許 2 個登入、最多只允許 5 個連線
MaxClientsPerHost 5 "一台主機最多只允許 5 個登入!"
MaxHostsPerUser 2 "一個帳號最多允許 2 個登入!"
MaxClients 5 "連線數超過上限!"
# 限制upload目錄不給砍檔和更名,但是ftpadmin群組可以擁有最大權限
<Directory /home/ftp/upload>
<Limit RNFR RNTO RMD DELE>
AllowGroup ftpadmin
DenyAll
</Limit>
< /Directory>
#限制marcus目錄只給marcus使用者進入
<Directory /home/ftp/marcus>
<Limit All>
AllowUser marcus
</Limit>
< /Directory>
# 限制wisdom目錄只給wisdom使用者和ftpadmin群組進入
<Directory /home/ftp/wisdom>
<Limit All>
AllowGroup ftpadmin
AllowUser wisdom
DenyAll
</Limit>
< /Directory>
# 限制upload目錄只能上傳,不能改檔名和刪除,但ftpadmin群組擁有最大權限
<Directory /home/ftp/upload>
<Limit WRITE>
AllowAll
</Limit>
<Limit DELE RMD RNFR>
DenyAll
AllowGroup ftpadmin
</Limit>
< /Directory>

在home底下建立一個755的ftp資料夾
[root@linuxftp /]# mkdir -m 755 /home/ftp
建立ftpadmin、ftpuser群組
[root@centos ~]# groupadd ftpadmin
[root@centos ~]# groupadd ftpuser
建立marcus使用者,加入到ftpadmin群組
[root@centos ~]# adduser marcus
[root@centos ~]# passwd macus
[root@centos ~]# gpasswd -a marcus ftpadmin
建立wisdom和upload使用者,加入到ftpuser群組
[root@centos ~]# adduser wisdom
[root@centos ~]# passwd wisdom
[root@centos ~]# gpasswd -a wisdom ftpuser
[root@centos ~]# adduser upload
[root@centos ~]# passwd upload
[root@centos ~]# gpasswd -a upload ftpuser
※如果有其他一般使用者就加到ftpuser群組內
建立相關的資料夾權限
[root@centos ~]# mkdir /home/ftp/marcus
[root@centos ~]# chown marcus:root /home/ftp/marcus[root@centos ~]# chmod 700 /home/ftp/marcus
[root@centos ~]# mkdir /home/ftp/wisdom
[root@centos ~]# chown wisdom:ftpadmin /home/ftp/wisdom
[root@centos ~]# chmod 770 /home/ftp/wisdom
[root@centos ~]# chown upload:ftpadmin /home/ftp/upload
[root@centos ~]# chmod 770 /home/ftp/upload
讓使用者帳號只能做ftp登入,在 /etc/passwd 中,將使用者的 /bin/bash 改成 /sbin/nologin 即可!(紅色字部份)
[root@centos ~]# vi /etc/passwd
marcus:x:500:501::/home/marcus:/sbin/nologin
wisdom:x:501:501::/home/wisdom:/sbin/nologin
update:x:503:504::/home/ftp/update:/sbin/nologin
依需求修改家目錄的位置(紅色字部份)[root@centos ~]# vi /etc/passwd
marcus:x:500:501::/home/ftp:/sbin/nologin
wisdom:x:501:501::/home/ftp/wisdom:/sbin/nologin
update:x:503:504::/home/ftp/upload:/sbin/nologin
proftp還有其他更細微的權限設定。
以下是各參數及其修改方式:
CMD:Change Working Directory 改變目錄
MKD:MaKe Directory建立目錄的權限
RNFR: ReName FRom 更改目錄名的權限
DELE:DELEte 刪除文件的權限
RMD:ReMove Directory 刪除目錄的權限
RETR:RETRieve 從服務端下載到客戶端的權限
STOR:STORe 從客戶端上傳到服務端的權限
READ:可讀的權限,不包括列目錄的權限,相當於RETR,STAT等
WRITE:寫文件或者目錄的權限,包括MKD和RMD
DIRS:是否允許列目錄,相當於LIST,NLST等權限,還是比較實用的
ALL:所有權限
LOGIN:是否允許登陸的權限
針對上面這個Limit所應用的對象,又包括以下範圍AllowUser 針對某個用戶允許的Limit
DenyUser 針對某個用戶禁止的Limit
AllowGroup 針對某個用戶組允許的Limit
DenyGroup 針對某個用戶組禁止的Limit
AllowAll 針對所有用戶組允許的Limit
DenyAll 針對所有用戶禁止的Limit
重新啟動 xinetd
[root@centos ~]# /etc/rc.d/init.d/xinetd restart
設定開機啟動xinetd
[root@centos ~]# chkconfig xinetd on
察看目前在線上的使用者
[root@centos ~]# ftpwho
有其他需要新增使用者的步驟(一般權限使用者)
[root@centos ~]# adduser 使用者
[root@centos ~]# passwd 使用者[root@centos ~]# gpasswd -a 使用者 ftpuser[root@centos ~]# mkdir /home/ftp/使用者
[root@centos ~]# chmod 750 /home/ftp/使用者
[root@centos ~]# chown 使用者:ftpuser /home/ftp/使用者在 /etc/passwd 中,將使用者的 /bin/bash 改成 /sbin/nologin
請參考設定quota
[root@centos ~]# edquota -p test -u 使用者[root@centos ~]# repquota -auvs
如果有開防火牆的話,請在proftpd.conf加入下列這行
[root@linux /]# vi /usr/local/etc/proftpd.conf
PassivePorts 60000 61000
編輯iptables並加入這幾行
[root@linux /]# vi /etc/sysconfig/iptables
-A INPUT -p tcp --dport 60000:61000 -j ACCEPT
-A INPUT -i eth0 -p tcp --dport 20 -j ACCEPT
-A INPUT -i eth0 -p tcp --dport 21 -j ACCEPT
檢查port 21是否有LISTEN
[root@linux /]# netstat -na | grep :21
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
ProFTPD作為主機的FTP Server,不過經常覺得ProFTPD登入的速度很慢,在Google上找了一下發現原來很多人都有ProFTPD登入過慢的問題。
會造成登入速度非常慢的原因是ProFTPD預設在登入的時候會作「反查」的動作,也因此如果user用來登入的機器沒有在DNS上登記Domain就會造成連線非常緩慢(無法找到對應的Domain name record.)
解決方法
修改proftpd.conf,加入下列兩行
UseReverseDNS off
IdentLookups off

這兩個設定分別的意義如下:
UseReverseDNS:在使用者登入時反查對方的DNS記錄。
IdentLookups:在使用者登入時反查對方的Username。(RFC1413:ident通訊協定,用來判斷此連線的使用者名稱。)

Linux安裝vsftpd (CentOS 5.4)

檢查vsftpd套件是否有安裝
[root@mail html]# rpm -qa | grep vsftpd
vsftpd-2.0.5-12.el5_3.1
沒有的話就安裝
[root@mail html]# yum –y install vsftpd
設定vsftpd.conf
[root@linux ~]# vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
# 將匿名登入取消
local_enable=YES
# 與實體用戶相關的資訊
write_enable=YES
local_umask=002

# 可寫入,且新增目錄、檔案權限為 775,因為 umask 為 002!
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd.user_list
# 設定抵擋某些使用者登入的項目設定值!

dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
pam_service_name=vsftpd
listen=YES
tcp_wrappers=YES
# 與主機有關的設定
chroot_list_enable=YES
chroot_local_user=YES
chroot_list_file=/etc/vsftpd/chroot_list
# 未來所有新增的用戶都是預設被 chroot 的,除非該user被寫入 /etc/vsftpd.chroot_list 才能夠不會被 chroot

use_localtime=YES
max_clients=20
max_per_ip=2
local_root=/home/ftp
#預設ftp路徑
# 在檔案最尾端加上設定
建立一個chroot_list的檔案
[root@ns1 /]# echo username >> /etc/vsftpd/chroot_list
※沒有這個檔案就會出現錯誤訊息
以下範例建立kelly和marcus使用者,kelly只能進到自己的資料夾新增修改刪除,marcus可以進到自己的資料夾新增修改刪除,還可以進到kelly資料夾,擁有讀取的權限,不允許匿名使用者登入。
建立kelly和marcus使用者
[root@ns1 /home]# useradd kelly
[root@ns1 /home]# useradd marcus
設定密碼
[root@ns1 /home]# passwd kelly
[root@ns1 /home]# passwd marcus
建立群組
[root@ns1 /home]# groupadd ftpuser
將使用者加入、移出群組
[someone@www ~]$ gpasswd [-ad] user groupname
選項與參數:
-a :將某位使用者加入到 groupname 這個群組當中!
-d :將某位使用者移除出 groupname 這個群組當中。
將macus使用者加入ftpuser群組
[root@ns1 /home]# gpasswd –a marcus ftpuser
看所有user的群組
[root@ns1 /home]# vi /etc/group
讓使用者帳號只能做ftp登入,在 /etc/passwd 中,將使用者的 /bin/bash 改成 /sbin/nologin 即可!
marcus:x:500:501::/home/marcus:/sbin/nologin
kelly:x:501:501::/home/ftpuser:/sbin/nologin
在home底下建立一個755的ftp資料夾
[root@linuxftp /]# mkdir -m 755 /home/ftp
建立兩個使用者資料夾
[root@linuxftp /]# mkdir -m 750 /home/ftp/kelly
[root@linuxftp /]# mkdir -m 700 /home/ftp/marcus
修改資料夾權限
[root@linuxftp /]# chown marcus:root /home/ftp/marcus
[root@linuxftp /]# chown kelly:ftpuser /home/ftp/kelly
啟動vsftpd
[root@ns1 /]# /etc/init.d/vsftpd start
設定開機啟動vsftpd
[root@ns1 /]# chkconfig vsftpd on

Linux安裝phpmyadmin (CentOS 5.4)

確認php版本,太舊的話安裝新版本的phpMyAdmin會無法顯示
先到 phpMyAdmin的官方網站上去下載最近的 phpMyAdmin程式。
http://www.phpmyadmin.net/
下載到目前最新的 phpMyAdmin-2.8.2.tar.gz 檔案,則以下列指令解壓縮它成為一個名為 phpMyAdmin-2.8.2的資料夾。
[root@ns1 /]# tar -zxvf phpMyAdmin-2.8.2.tar.gz
將phpMyAdmin-2.8.2的資料夾改名為 phpmyadmin。
[root@ns1 /]# mv phpMyAdmin-2.8.2 phpmyadmin
將資料夾 phpmyadmin複製到網頁的根目錄 /var/www/html下。
[root@ns1 /]# cp phpmyadmin /var/www/html
將config.default.php 改名為 config.inc.php,並且複製到/var/www/html/phpmyadmin 目錄中。
[root@ns1 /]# cd /var/www/html/phpmyadmin/libraries
[root@ns1 /]# cp config.default.php /var/www/html/phpmyadmin/config.inc.php
修改 config.inc.php檔案的內容。
[root@ns1 /]# vi /config.inc.php
輸入 MYSQL使用者名稱及密碼及phpmyadmin的認證登入方法後,將 config.inc.php檔案存檔。
$cfg['Servers'][$i]['controluser'] = '';
$cfg['Servers'][$i]['controlpass'] = '';
$cfg['Servers'][$i]['auth_type'] = 'config';

更改成
$cfg['Servers'][$i]['controluser'] = 'root';
$cfg['Servers'][$i]['controlpass'] = '你的mysql密碼';
$cfg['Servers'][$i]['auth_type'] = 'http';
使用 firefox 或 IE網路瀏覽器中輸入下列網址去使用 phpmyadmin。
http://xxxxxxxxxxx/phpmyadmin

Linux安裝httpd (CentOS 5.4)

檢查Apache套件是否有安裝
[root@ns1 ~]# rpm -qa | grep apr
apr-1.2.7-11
apr-util-1.2.7-7.el5
[root@ns1 ~]# rpm -qa | grep httpd
httpd-2.2.3-22.el5.centos
設定httpd.conf
[root@ns1 ~]# vi /etc/httpd/conf/httpd.conf
AddDefaultCharset UTF-8#網頁編碼是UTF-8
ServerName bear110.com:80#網址名稱
啟動httpd
[root@ns1 /]# /etc/rc.d/init.d/httpd start
設定開機啟動httpd
[root@ns1 /]# chkconfig httpd on
開啟瀏覽器輸入你的網址,是否有預設畫面
預設放置目錄
/var/www/html

2010年1月27日 星期三

Linux安裝xoops的前置作業httpd+mysql+php (CentOS 5.4)

先安裝好以下套件
httpd
mysql
mysql-server
php
php-devel
php-mysql
php-mbstring
php-gd
用yum安裝套件
[root@ns1 /]# yum –y install httpd mysql mysql-server php php-devel php-mysql php-mbssting php-gd
啟動mysql服務
[root@ns1 /]# service mysqld start
設定mysql密碼
[root@ns1 /]# mysqladmin –u root password ‘a123456’
登入mysql
[root@ns1 /]# mysql –u root -p
建立一個新資料庫,然後離開
mysql> create database xoops;
mysql> quit
啟動httpd
[root@ns1 /]# service httpd start
設定開機預設啟動httpd和mysql
[root@ns1 /]# chkconfig httpd on
[root@ns1 /]# chkconfig mysqld on
設定httpd.conf
[root@ns1 /]# vi /etc/httpd/conf/httpd.conf
AddDefaultCharset UTF-8#我的XOOPS的編碼是UTF-8
ServerName bear110.com:80#網址名稱
DocumentRoot "/var/www/html/htdocs"#網站的預設目錄
DirectoryIndex index.php index.html index.html.var
#把index.php加在最前面
重新啟動httpd
[root@ns1 /]# service httpd restart

Postfix相關:設定SpamAssassin過濾垃圾信 (CentOS 5.4)

檢查與安裝SpamAssassin相關套件
[root@mail ~]# rpm -qa | grep perl-Digest-SHA1
perl-Digest-SHA1-2.11-1.2.1
perl-HTML-Tagset-3.10-2.1.1
perl-HTML-Parser-3.55-1.fc6
perl-Digest-HMAC-1.01-15
perl-Net-DNS-0.59-3.el5
perl-Time-HiRes
spamassassin-3.2.5-1.el5
有缺的用yum裝一裝
[root@mail ~]# yum -y install xxxxxxx
啟動spamassassin
[root@mail ~]# /etc/rc.d/init.d/spamassassin start
預設開機啟動spamassassin
[root@mail ~]# chkconfig spamassassin on
copy設定檔作備份
[root@mail ~]# cp /etc/mail/spamassassin/spamassassin-spamc.rc /etc/procmailrc
新增下列設定
[root@mail ~]# vi /etc/mail/spamassassin/local.cfrequired_hits 5
report_safe 0
rewrite_header Subject [SPAM]
rewrite_subject 1
subject_tag [SPAM]
score HTML_COMMENT_8BITS 0
score UPPERCASE_25_50 0
score UPPERCASE_50_75 0
score UPPERCASE_75_100 0
[root@mail ~]# vi /etc/postfix/main.cf
#mailbox_command = /some/where/procmail -a "$EXTENSION"
將上面這串字取消註解,把/some/where/procmail改成/var/bin/procmail,如下
mailbox_command = /var/bin/procmail -a "$EXTENSION"
重新啟動postfix
[root@mail ~]# /etc/rc.d/init.d/postfix restart
修改郵件儲存目錄的權限
[root@mail ~]# chmod 1777 /var/spool/mail

讓spamassassin可以自動學習,提昇判斷力
增加user
[root@mail ~]# adduser spam[root@mail ~]# adduser notspam
如果是垃圾信就轉寄到spam@wisdomlines.info
如果非垃圾信就轉寄到notspam@wisdomlines.info

學習判斷垃圾信
[root@mail ~]# /usr/bin/sa-learn --showdots --spam --mbox /var/spool/mail/spam
學習判斷非垃圾信
[root@mail ~]# /usr/bin/sa-learn --showdots --ham --mbox /var/spool/mail/notspam
或是設定自動排程,就不需輸入上述兩列內容
[root@mail ~]# crontab -e
0 1 * * * /usr/bin/sa-learn --showdots --spam --mbox /var/spool/mail/spam
0 1 * * * /usr/bin/sa-learn --showdots --ham --mbox /var/spool/mail/notspam