打印本文 打印本文 关闭窗口 关闭窗口
安装完整的http+ftp+mail的linux server
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2071  更新时间:2009/4/22 23:08:20  文章录入:mintao  责任编辑:mintao
"$NOFILESGID" 0 smtp /var/qmail/bin/qmail-smtpd 2>&1


生成/var/qmail/supervise/qmail-smtpd/log/run
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/smtpd

生成/var/qmail/supervise/qmail-pop3d/run

#!/bin/sh

QMAILDUID=`id -u vpopmail`
NOFILESGID=`id -g vpopmail`
LOCAL=`head -1 /var/qmail/control/me`

if [ -z "$QMAILDUID" -o -z "$NOFILESGID" -o -z "$LOCAL" ]; then
echo QMAILDUID, NOFILESGID, or LOCAL is unset in
echo /var/qmail/supervise/qmail-pop3d/run
exit 1
fi

exec /usr/local/bin/softlimit -m 5000000 \
/usr/local/bin/tcpserver -R -H -x /etc/qmail/tcp.pop3.cdb \
-u "$QMAILDUID" -g "$NOFILESGID" 0 110 /var/qmail/bin/qmail-popup \
"$LOCAL" /server/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2>&1

生成/var/qmail/supervise/qmail-pop3d/log/run
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t \
/var/log/qmail/pop3d

echo 20 > /var/qmail/control/concurrencyincoming
chmod 644 /var/qmail/control/concurrencyincoming

chmod 755 /var/qmail/supervise/qmail-send/run
chmod 755 /var/qmail/supervise/qmail-send/log/run
chmod 755 /var/qmail/supervise/qmail-smtpd/run
chmod 755 /var/qmail/supervise/qmail-smtpd/log/run

mkdir -p /var/log/qmail/smtpd
chown qmaill /var/log/qmail /var/log/qmail/smtpd
mkdir -p /var/log/qmail/pop3d
chown qmaill /var/log/qmail /var/log/qmail/pop3d

mkdir /etc/qmail
echo ''''127.:allow,RELAYCLIENT=""'''' >>/etc/qmail/tcp.smtp
echo '''':allow'''' >>/etc/qmail/tcp.pop3
qmailctl cdb

vpopmail
groupadd -g 89 vchkpw
useradd -g vchkpw -u 89 vpopmail

用/server/mysql/bin/mysql登录进mysql,建vpopmail数据库
CREATE DATABASE vpopmail;
GRANT select,insert,update,delete,create,drop ON vpopmail.*
TO vpopmailuser@localhost IDENTIFIED BY ''''vpoppasswd'''';

./configure \
--prefix=/server/vpopmail \
--enable-qmaildir=/var/qmail \
--enable-vpopuser=vpopmail \
--enable-vpopgroup=vchkpw \
--enable-roaming-users \
--enable-tcprules-prog=/usr/local/bin/tcprules \
--enable-tcpserver-file=/etc/qmail/tcp.smtp \
--enable-relay-clear-minutes=20 \
--enable-auth-logging \
--enable-mysql-logging \
--enable-clear-passwd \
--disable-sqwebmail-pass \
--enable-log-name=vpopmail \
--enable-incdir=/server/mysql/include/mysql \
--enable-libdir=/server/mysql/lib/mysql \
--enable-libs=mysqlclient \
--enable-auth-module=mysql \
--enable-ip-alias-domains \
--enable-mysql-limits \
--enable-many-domains \
--disable-passwd \
--enable-mysql-limits

make
make install-strip

echo "localhost|0|vpopmailuser|vpoppasswd|vpopmail" > /server/vpopmail/etc/vpopmail.mysql
chown vpopmail.vchkpw /server/vpopmail/etc/vpopmail.mysql
chmod 640 ~vpopmail/etc/vpopmail.mysql

echo ''''mydomain.com'''' >/var/qmail/control/rcpthosts
/var/qmail/bin/vadddomain mydomain.com

qmailadmin
./configure --enable-cgibindir=/server/apache2/cgi-bin \
--enable-htmldir=/server/apache2/htdocs
make
make install

sqwebmail
./configure \
--prefix=/server/sqwebmail \
--with-cachedir=/server/sqwebmail/cachetmp \
--enable-imagedir=/server/apache2/htdocs/webmail \
--enable-cgibindir=/server/apache2/cgi-bin \
--enable-softtimeout=1200 \
--enable-hardtimeout=1800 \
--with-fcgi
make
make install

ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /var/qmail/supervise/qmail-pop3d /service

启动apache,就可以从qmailadmin用 postmaster@mydomain.com 来登录管理mydomain.com。增加一个email地址test@mydomain.com后,就可以用outlook和test@mydomain.com用户进行收发email了。

其他安装文章:《基于qmail的完整WEBMAIL解决方案安装详解》http://www.phpx.com/index.php?itemid=130

6、smtpd用户认证功能
下载http://www.garhee.com/download/qmail-smtpd.c ;这个是从netqmail-1.05版本更改过来的,如果要改新版本,请对照更改

/var/qmail/bin/qmailctl stop
更改/var/qmail/supervise/qmail-smtpd/run中的
exec /usr/local/bin/softlimit -m 5000000 \
/usr/local/bin/tcpserver -v -R -l "$LOCAL" -x /etc/qmail/tcp.smtp.cdb -c "$MAXSMTPD" \
-u "$QMAILDUID" -g "$NOFILESGID" 0 smtp /var/qmail/bin/qmail-smtpd 2>&1

exec /usr/local/bin/softlimit -m 5000000 \
/usr/local/bin/tcpserver -v -H -R -l "$LOCAL" -x /etc/qmail/tcp.smtp.cdb -c "$MAXSMTPD" \
-u "$QMAILDUID" -g "$NOFILESGID" 0 smtp /var/qmail/bin/qmail-smtpd \
/server/vpopmail/bin/vchkpw /bin/true 2>&1
/var/qmail/bin/qmailctl start

7、安装pureftpd
到http://mirrors.sunsite.dk/pure-ftpd/下载(pureftp.org给封掉了)
http://home.9812.net/linux/article/pureftpd/下载安装配置文件
./configure --prefix=/server/pureftp \
--with-boring \
--with-throttling \
--with-ratios \
--with-virtualhosts \
--with-virtualchroot \
--with-peruserlimits \
--with-mysql=/server/mysql \
--with-ftpwho \
--with-language=simplified-chinese \
--without-inetd \
--without-shadow \
--with-diraliases \
--with-sysquotas \
--with-altlog \
--with-quotas \
--with-privsep
make
make install

cp pureftpd-mysql.conf /server/pureftp/etc/
cp configuration-file/pure-ftpd.conf /server/pureftp/etc/
修改两个configure文件直到满意

cp configuration-file/pure-config.pl /server/pureftp/bin/
增加一行/server/pureftp/sbin/pure-ftpd到:
-x && ($PUREFTPD=$_, last) for qw(
$/sbin/pure-ftpd
/usr/local/pure-ftpd/sbin/pure-ftpd
/usr/local/pureftpd/sbin/pure-ftpd
/usr/local/sbin/pure-ftpd
/usr/sbin/pure-ftpd
/server/pureftp/sbin/pure-ftpd
);

useradd ftp -u 1111 -g proftpgroup -s /bin/false -d /bin/null -c "pureftpd user"

登录mysql执行sql语句:
create database pureftp;
GRANT ALL ON pureftp.* TO pureftp@localhost IDENTIFIED BY ''''purepasswd'''';
CREATE TABLE `users` (
`id` int(32) unsigned NOT NULL auto_increment,
`User` varchar(16) NOT NULL default '''''''',
`Password` varchar(64) NOT NULL default '''''''',
`Uid` varchar(11) NOT NULL default ''''-1'''',
`Gid` varchar(11) NOT NULL default ''''-1'''',
`Dir` varchar(128) NOT NULL default '''''''',
`QuotaSize` smallint(5) NOT NULL default ''''0'''',
`QuotaFiles` int(11) NOT NULL default ''''0'''',
`ULBandwidth` smallint(5) NOT NULL default ''''0'''',
`DLBandwidth` smallint(5) NOT NULL default ''''0'''',
`ULRatio` smallint(6) NOT NULL default ''''0'''',
`DLRatio` smallint(6) NOT NULL default ''''0'''',
`comment` tinytext NOT NULL,
`ipaccess` varchar(15) NOT NULL default ''''*'''',
`status` enum(''''0'''',''''1'''') NOT NULL default ''''0'''',
`create_date` datetime NOT NULL default ''''0000-00-00 00:00:00'''',
`modify_date` datetime NOT NULL default ''''0000-00-00 00:00:00'''',
PRIMARY KEY (`id`,`User`),
UNIQUE KEY `User` (`User`)
) TYPE=MyISAM AUTO_INCREMENT=5 ;
INSERT INTO users VALUES (5, ''''test'''', MD5(''''test''''), ''''505'''', ''''505'''', ''''/tmp'''', 0, 0, 0, 0, 0, 0, '''''''', ''''*'''', ''''1'''', ''''2003-06-26 18:04:33'''', ''''2003-06-26 18:04:33'''');

启动pureftpd
/server/pureftp/bin/pure-config.pl /server/pureftp/etc/pure-ftpd.conf
停止pureftpd
kill -INT `cat /var/run/pure-ftpd.pid | sed 1q`

参考文章:《Pure-FTPd + LDAP + MySQL + PGSQL + Virtual-Users + Quota How To》http://www.chinaunix.net/jh/15/102137.html

上一页  [1] [2] 

打印本文 打印本文 关闭窗口 关闭窗口