亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網管 > 服務器 > 正文

基于openldap郵件系統的完全ports安裝

2019-09-11 22:22:11
字體:
來源:轉載
供稿:網友

為什么使用FREEBSD?因為它有PORTS,有什么好處,就是你安裝軟件時就不用再考慮軟件的依賴關系,它自己會添加的。這一點就足以位列所有的UNIX,包括類UNIX之首!?。。。?
本文力求使用最簡單的方法,構建出高效的大容量的郵件系統。本次實踐過程中得到了hefish的鼓勵和幫助,基本過程是hefish的KUNMAIL系統地freebsd上的一次試驗。由于新版openldap對某些字段定義的變化,kunmail.schema需要作一些變動,liut對此作些改動mail.schema,同時也使用了陳景峰的postfix.schema。其實直接使用qmail.schema就挺好。

本文旨在幫助初學者,通過基本的架設過程,理解mail系統的基本原理,所以構建的系統也是最基本的,病毒防護和垃圾過濾網上的參照文件很多,就不寫了。
本文假設你對類UNIX有一定的了解,最好是架設或使用過郵件系統。本文的重點在openldap,如果你想使用mysql,請參照我的另一篇文章。
本次試驗在freebsd4.10下和freebsd5.4下成功通過。SASL2認證采用courier的AUTHDAEMOND認證,認證方式簡單高效,只要courier認證通過,postfix認證肯定能通過。與postfix+mysql相比,只是數據庫更改了,便于使用現有的經驗來架設新的系統。
暫時只使用PLAIN LOGIN,大多數電信都是這兩種,對于openldap來說,這種認證方式并不比其自已本身的認證更好(openldap原文),但與sasl2結合,可以有更高的、更安全的認證方式。
參考文章:
1、http://kunmail.cz8.net/
2、http://www.huihoo.com/internet/postfix/pis/book1.html


第一章 系統準備


如果你能夠安裝基本系統,可以跳過本章。本文未特別申明的,一律是以root身份操作。

freebsd5.4安裝
選擇最小化安裝,配置好網絡,添加perl5.8軟件包。
在本例中,機器名:mail.chinake.com
域名:chinake.com
默認網關:192.168.0.1
IP地址:192.168.0.66

1、cvsup安裝
由于5.4將不少軟件包放在第二張盤上,所以只有通過網絡安裝了。
設計pkg_add環境變量,使它使用國內的服務器,freebsd默認的shell是csh。
bash shell
#export PACKAGEROOT="ftp://ftp.freebsdchina.org"
csh shell
#setenv PACKAGEROOT "ftp://ftp.freebsdchina.org"
#pkg_add -r cvsup-without-gui

2、設計/etc/make.conf
添加
MASTER_SITE_OVERRIDE=ftp://ftp.freebsdchina.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}

3、更新ports樹
#/usr/local/bin/cvsup -g -L 2 -h ftp.freebsdchina.org /usr/share/examples/cvsup/ports-supfile ;

第二章 郵件系統軟件的安裝

1、安裝openssl
#cd /usr/ports/security/openssl; make install clean

2 安裝apache
#cd /usr/ports/www/apache13-modssl;make install clean
支持https連接,web服務路徑為:/usr/local/www/data/。也可以選擇apache2。
#ee /etc/rc.conf;加入:apache_enable="YES"

3 安裝php4
#cd /usr/ports/lang/php4;make install clean
#cp /usr/local/etc/php.ini.dist /usr/local/etc/php.ini
#ee /usr/local/etc/apache/httpd.conf
在最后加入:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

4 安裝expect
#cd /usr/ports/lang/expect
#make install clean

5 安裝SASL2
cd /usr/ports/security/cyrus-sasl2;make install WITH_AUTHDAEMON=yes clean;
或者使用:make -DWITH_AUTHDAEMOND install clean
#ln -s /usr/local/lib/sasl2 /usr/lib/sasl2;
下面的這個smtpd.conf就是postfix調用的,很簡單吧。
#ee /usr/local/lib/sasl2/smtpd.conf ;
pwcheck_method: authdaemond
log_level: 3
mech_list: PLAIN LOGIN
authdaemond_path:/var/run/authdaemond/socket

6 安裝courier-imap
#cd /usr/ports/mail/courier-imap
#make install clean
選擇添加:[auth_ldap],[openssl],[gdbm]如果沒有做,可以make config,進行重新選擇。
然后編輯/etc/rc.conf;增加courier_authdaemond_enable="YES"自啟動,并啟動:
#/usr/local/etc/rc.d/courier_authdaemond.sh start。
此時會在/var/run/authdaemond/下產生socket。
chmod +x /var/run/authdaemond;
給sasl可執行權限。

我們這里是使用authdaemond認證,不使用pam認證,所以以下的不需要做:
In case you use authpam, you should put the following lines
in your /etc/pam.d/imap
auth required pam_unix.so try_first_pass
account required pam_unix.so try_first_pass
session required pam_permit.so
至此,認證部分基本完成。

7、openldap安裝
#cd /usr/ports/net/openldap22-server;
#make WITH_SASL=yes install clean;
#ee /etc/rc.conf;
添加:
slapd_enable="YES"
slapd_flags='-h "ldapi://%2fvar%2frun%2fopenldap%2fldapi/ ldap://0.0.0.0/"'
slapd_sockets="/var/run/openldap/ldapi"
我們來啟動它:
#/usr/local/etc/rc.d/slapd.sh start

8、 安裝POSTFIX
3.3.1 cd /usr/ports/mail/postfix
安裝時選中[sasl2]+[tls]+[ldap]+[vda]+[test]。
make install clean
在安裝快結束時會提示兩個問題,分別是加入用戶組和修改mailer.conf。全部回答為y。
添加postfix別名:
#cd /etc;
#echo ‘postfix: root’ >> /etc/aliases
產生別名數據庫,每次改動都必須要做一次:
#/usr/local/bin/newaliases
如果提示opiekeys錯誤
#chown postfix:postfix /etc/opiekeys

替換并停止sendmail
#ee /etc/rc.conf;
修改sendmail_enable=’NONE’
建立啟動鏈接:
#cd /usr/local/etc/rc.d/;
#ln –s /usr/local/sbin/postfix postfix.sh
創建/etc/periodic.conf
#ee /etc/periodic.conf
daily_clean_hoststat_enable="NO"
daily_status_mail_rejects_enable="NO"
daily_status_include_submit_mailq="NO"
daily_submit_queuerun="NO"

9、phpldapadmin安裝
強烈建議安裝此程序,這是一個web界面的openldap的管理程序,對于理解和運用openldap大有幫助,我們可以把它看作是mysql的phpmyadmin一樣。
#cd /usr/ports/net/phpldapadmin/
#ee Makefile,修改 www/為www/data/
#make install clean;

phpldapadmin的配置,與phpmyadmin基本上一樣,無非就是用戶名、密碼等。
#ee /usr/local/www/data/phpldapadmin/config.php;
$blowfish_secret = 'mytestopenldap'; //隨機加密碼字符串,默認是空,使用cooki認證時必須要填,內容隨便。
$servers[$i]['name'] = 'My LDAP Server'; //名稱,隨便。
$servers[$i]['host'] = '192.168.0.66'; //主機IP
$servers[$i]['base'] = 'dc=chinake,dc=com'; //與slapd.conf保持一致。下面有講到。
$servers[$i]['port'] = 389; //默認端口號。
$servers[$i]['auth_type'] = 'cookie'; //進入模式,開始的時候可以使用config(默認值)
$servers[$i]['login_dn'] = 'cn=chaohu,dc=chinake,dc=com' //與slapd.conf的rootdn保持一致。
$servers[$i]['login_pass'] = 'chaohu'; //rootpw的密碼。使用cookie時,不需要。
$language = 'zh-tw'; //語言,默認為 auto亂碼,設為zh-cn也亂碼,所以使用繁體的或en。


第三章 openldap的配置

1、關于schema
一個schema就是一張字段和字段關系的定義表(與mysql的數據庫相比)。postfix和courier需要查找的基本字段是用戶名(用戶郵件地址)、密碼(postfix不需要)、用戶郵件的存儲目錄。
①kunmail.schema基本字段:
kunmailuser: userName - 郵件系統用戶名 (是完整的用戶名,包括@后面的部分)
userHome - 用戶的home目錄
userMaildir - 用戶的maildir (一般為 userHome + “/Maildir/”)
userClearpw - 用戶密碼 (明碼)
②postfix.schema基本字段:
postfixAccount:mail – 用戶郵件地址
mailbox - 用戶的maildir
clearPassword - 用戶密碼
homeDirectory -用戶的home目錄
③mail.schema基本字段:
mailUser: mail – 用戶郵件地址
userPassword - 用戶密碼
homeDirectory -用戶的home目錄
mailMessageStore - 用戶的maildir
④qmail.schema基本字段:
qmailUser: mail – 用戶郵件地址
mailMessageStore - 用戶的maildir
homeDirectory -用戶的home目錄
userPassword - 用戶密碼
注意:用戶的home目錄+用戶的maildir要構成一個郵件用戶完整的絕對路徑。本文使用mail.schema進行講解。(幾個schema文件附后)

2、關于slapd.conf
這是openldap主要配置文件,這個文件可以分成三個部分來理解:
第一部分:載入schema文件,主要是裝載所有字段定義和屬性。其依賴關系可以這樣理解:如某個schema文件中未定義mailhost這個字段,而其屬性值里引用了這個字段,則定義了mailhost這個字段的schema必須先載入。我們先將mail.schema放到/usr/local/etc/openldap/schema/下,必須要先放。
根據其依賴關系我們加入了幾個schema文件:
include /usr/local/etc/openldap/schema/core.schema
include /usr/local/etc/openldap/schema/cosine.schema
include /usr/local/etc/openldap/schema/inetorgperson.schema
include /usr/local/etc/openldap/schema/nis.schema
include /usr/local/etc/openldap/schema/misc.schema
include /usr/local/etc/openldap/schema/mail.schema
對于openldap的配置文件,行尾一定不能有空格。

第二部分:控制權限。其默認的控制權限是rootdn任何時候都擁有寫入權,這一部分我們可以不加定義,直接使用rootdn,但這樣不太安全,所以我們添加一個用戶或組來擁有對郵箱用戶組寫入權,郵箱用戶自己可以讀寫。

access to dn.base="" by * read //只讀
access to dn.base="cn=Subschema" by * read //只讀
access to dn.subtree="ou=admin,dc=chinake,dc=com" attr=userPassword
by * auth //添加管理組ou=admin,對自己可以認證。
access to dn.subtree="ou=mail,dc=chinake,dc=com" attr=userPassword
by * auth //添加郵箱組ou=mail,對自己可以認證。
access to dn.subtree="ou=mail,dc=chinake,dc=com"
by dn="cn=kunmail,ou=admin,dc=chinake,dc=com" write
by * none //添加管理員kumail,對ou=mail擁有寫入權,對其它無權。

第三部分:根及根用戶

suffix "dc=chinake,dc=com" //默認前綴
rootdn "cn=chaohu,dc=chinake,dc=com" //根用戶,名稱隨便。
rootpw chaohu //根用戶密碼。

這種結構與我的路徑很相似,只是倒過來的,可以這樣對比:
/com/chinake/chaohu,這樣就容易理解多了。

那么我們的slapd.conf看起來就象這樣。
#ee /usr/local/etc/openldap/slapd.conf

# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
include /usr/local/etc/openldap/schema/core.schema
include /usr/local/etc/openldap/schema/cosine.schema
include /usr/local/etc/openldap/schema/inetorgperson.schema
include /usr/local/etc/openldap/schema/nis.schema
include /usr/local/etc/openldap/schema/misc.schema
include /usr/local/etc/openldap/schema/mail.schema
# Define global ACLs to disable default read access.
# Do not enable referrals until AFTER you have a working directory
# service AND an understanding of referrals.
#referral ldap://root.openldap.org
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args
# Load dynamic backend modules:
# modulepath /usr/local/libexec/openldap
# moduleload back_bdb
# moduleload back_ldap
# moduleload back_ldbm
# moduleload back_passwd
# moduleload back_shell

# Sample security restrictions
# Require integrity protection (prevent hijacking)
# Require 112-bit (3DES or better) encryption for updates
# Require 63-bit encryption for simple bind
# security ssf=1 update_ssf=112 simple_bind=64

# Sample access control policy:
# Root DSE: allow anyone to read it
# Subschema (sub)entry DSE: allow anyone to read it
# Other DSEs:
# Allow self write access
# Allow authenticated users read access
# Allow anonymous users to authenticate
# Directives needed to implement policy:
# access to dn.base="" by * read
# access to dn.base="cn=Subschema" by * read
# access to *
# by self write
# by users read
# by anonymous auth
#
# if no access controls are present, the default policy
access to dn.base="" by * read
access to dn.base="cn=Subschema" by * read
access to dn.subtree="ou=admin,dc=chinake,dc=com" attr=userPassword
by * auth
access to dn.subtree="ou=mail,dc=chinake,dc=com" attr=userPassword
by * auth
access to dn.subtree="ou=mail,dc=chinake,dc=com"
by dn="cn=kunmail,ou=admin,dc=chinake,dc=com" write
by * none
#
# rootdn can always read and write EVERYTHING!

#######################################################################
# BDB database definitions
#######################################################################

database bdb
suffix "dc=chinake,dc=com"
rootdn "cn=chaohu,dc=chinake,dc=com"
# Cleartext passwords, especially for the rootdn, should
# be avoid. See slappasswd(8) and slapd.conf(5) for details.
rootdn "cn=chaohu,dc=chinake,dc=com"
# Cleartext passwords, especially for the rootdn, should
# be avoid. See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
rootpw chaohu
# The database directory MUST exist prior to running slapd AND
# should only be accessible by the slapd and slap tools.
# Mode 700 recommended.
directory /var/db/openldap-data
# Indices to maintain
index objectClass eq

3、配置ldap.conf,也可以不配置。

# LDAP Defaults
#
# See ldap.conf(5) for details
# This file should be world readable but not world writable.

BASE dc=chinake, dc=com
HOST localhost
#URI ldap://ldap.example.com ldap://ldap-master.example.com:666

#SIZELIMIT 12
#TIMELIMIT 15
#DEREF never
以上兩個配置文件中間和前面空的部分都是TAB鍵打出來的,不是空格。

重新啟動slapd
/usr/local/etc/rc.d/slapd.sh stop;
/usr/local/etc/rc.d/slapd.sh start;

4、建立用戶數據

建立導入文件,多個記錄間使用空行分隔,我在使用過程中發現根結點必須手動導入,其它記錄可以通過phpldapadmin導入,也可以直接建立。

第一步是建立DN:
文字不多,我們手動建立就可以了

ldapadd -x -D 'cn=chaohu,dc=chinake,dc=com' -W //輸入密碼,然后將下面的內容輸入,完成后按Ctrl+d 存盤。
dn: dc=chinake,dc=com
objectClass: dcObject
objectClass: organization
dc: chinake
Corporation
description: d Corporation

第二步建立組和用戶:
將下面的存為postfix.ldif,然后進入http://192.168.0.66/phpldapadmin/,使用其中的導入功能就可以了。
也可以手動導入:
# ldapadd -x -D "cn=chaohu,dc=chinake,dc=com" -W -f postfix.ldif

#管理組
# 亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

一本色道久久综合亚洲精品小说| 亚洲性日韩精品一区二区| 欧美成人在线影院| 丝袜美腿精品国产二区| 国产在线999| 狠狠色狠狠色综合日日五| 亚洲精品91美女久久久久久久| 欧美性受xxx| 成人性生交大片免费观看嘿嘿视频| 日韩av在线看| 日韩av一区在线| 欧美夜福利tv在线| 亚洲男女自偷自拍图片另类| 在线电影中文日韩| 亚洲欧美自拍一区| 国产精品日韩精品| 成人免费福利在线| 欧美专区福利在线| 91干在线观看| 欧美人与性动交| 欧美激情在线有限公司| 国产精品黄页免费高清在线观看| 精品国产欧美一区二区三区成人| 精品无码久久久久久国产| 黑人巨大精品欧美一区二区三区| 懂色av中文一区二区三区天美| 国产精品免费视频xxxx| 日韩精品欧美国产精品忘忧草| 欧美丰满少妇xxxxx做受| 日韩成人在线免费观看| 久久天天躁夜夜躁狠狠躁2022| 国产日韩欧美中文| 成人乱人伦精品视频在线观看| 亚洲资源在线看| 在线精品高清中文字幕| 亚洲成av人片在线观看香蕉| 亚洲精品久久久久中文字幕二区| 亚洲色图15p| 亚洲精品动漫久久久久| 日韩在线观看网站| 最新的欧美黄色| 中文字幕一区电影| 亚洲欧美精品伊人久久| 97久久精品人人澡人人爽缅北| 韩剧1988免费观看全集| 国产日韩欧美在线| 91中文字幕在线| 国产免费成人av| 国产一区二区美女视频| 91丝袜美腿美女视频网站| 精品日韩中文字幕| 国产在线观看91精品一区| 国产精品啪视频| 欧美激情精品久久久久| 欧美日韩日本国产| 国产精品成久久久久三级| 九九热精品在线| www.欧美三级电影.com| 国内精久久久久久久久久人| 日韩欧美中文字幕在线观看| 亚洲3p在线观看| 亚洲精品一区中文| 亚洲精品欧美一区二区三区| 国产精品狼人色视频一区| 欧美大片在线免费观看| 日韩中文字幕在线看| 2019日本中文字幕| 亚洲天堂av在线免费观看| 欧美性xxxxxxx| 日韩中文字幕网站| 久久久久久久久电影| 色偷偷偷综合中文字幕;dd| 日韩国产中文字幕| 亚洲国产精品va在线| 色诱女教师一区二区三区| 久久久av免费| 日韩成人在线视频网站| 国产成人+综合亚洲+天堂| 亚洲精品一区二区三区婷婷月| 欧美福利视频网站| 欧美亚洲在线播放| 成人福利视频在线观看| 亚洲成av人乱码色午夜| 欧美老妇交乱视频| 国产亚洲精品美女| 久久91精品国产91久久久| 8x海外华人永久免费日韩内陆视频| 欧美日韩国产色视频| 中文字幕精品国产| 日韩av在线一区二区| 日本不卡高字幕在线2019| 亚洲成色777777女色窝| 亚洲精品videossex少妇| 欧美在线视频免费| 久久影院免费观看| 福利视频一区二区| 国产精品久久久久99| 91免费在线视频网站| 日韩中文字幕av| 久久理论片午夜琪琪电影网| 91极品视频在线| 日韩精品免费在线播放| 国产成人中文字幕| 久久精品国产亚洲精品2020| 精品二区三区线观看| 欧美黑人国产人伦爽爽爽| 色综合天天综合网国产成人网| 精品国产乱码久久久久久虫虫漫画| 国产精品人成电影在线观看| 欧美专区在线视频| 一区二区国产精品视频| 中国人与牲禽动交精品| 国产精品国模在线| 91精品国产综合久久久久久蜜臀| 精品成人在线视频| 国产精品爽爽爽爽爽爽在线观看| 在线观看国产精品91| 亚洲丝袜av一区| 狠狠躁夜夜躁人人躁婷婷91| 韩曰欧美视频免费观看| 欧美日韩美女在线观看| 国产亚洲一区二区在线| 欧美日韩福利在线观看| 欧美一区二区.| 欧美乱大交做爰xxxⅹ性3| 人妖精品videosex性欧美| xxav国产精品美女主播| 中文字幕一区二区三区电影| 日韩国产欧美精品一区二区三区| 日韩极品精品视频免费观看| 国产精品久久久久久av福利软件| 久久资源免费视频| 亚洲精品视频久久| 午夜精品三级视频福利| 国产成人精品久久久| 精品无人区乱码1区2区3区在线| 欧美性视频网站| 欧美中文在线视频| 亚洲综合中文字幕在线观看| 国产99视频精品免视看7| 欧美亚洲激情视频| 欧美老肥婆性猛交视频| 亚洲欧美国产va在线影院| 这里精品视频免费| 成人激情免费在线| 国产不卡av在线| 国产精品av在线播放| 日本久久精品视频| 永久免费看mv网站入口亚洲| 欧美激情一区二区三区在线视频观看| 日本中文字幕久久看| 国产成人在线一区二区| 91久久久久久久| 欧美成人第一页| 国产精品亚洲激情| 97久久国产精品| 久久久999精品视频| 欧美精品手机在线| 国语自产精品视频在免费| 国产主播精品在线| 夜色77av精品影院| 欧美最猛性xxxx| 久久久www成人免费精品张筱雨| 国内精品久久久久久久久|