berhubunga banyak banget, ya udah via milis aja ya :) semoga bermanfaat
-- Best regards, Andri mailto:[EMAIL PROTECTED]
Qmail Setup Guide By: Vince Qmail is a replacement for sendmail. If you have tried to install qmail before, you know how yucky that INSTALL file is, do this, read this, then this etc... Well this guide is none of that. Let's get on with it! First things first, grab the qmail source from ftp://ftp.id.wustl.edu/pub/qmail/qmail-1.03.tar.gz next cd to /usr/local/src/, if it's not there don't worry, qmail can be installed from anywhere, I just like using /usr/local/src/ for all my programs source. Now we extract it, tar xzvf qmail-1.03.tar.gz then cd into the new qmail-1.03 directory. Now as root, we make the /var/qmail directory, (mkdir /var/qmail). Next things we have to do is add the qmail users and groups, this is easily done, it is in the INSTALL.ids file, but I hate the qmail install instructions so here it is below... groupadd nofiles useradd -g nofiles -d /var/qmail/alias alias useradd -g nofiles -d /var/qmail qmaild useradd -g nofiles -d /var/qmail qmaill useradd -g nofiles -d /var/qmail qmailp groupadd qmail useradd -g qmail -d /var/qmail qmailq useradd -g qmail -d /var/qmail qmailr useradd -g qmail -d /var/qmail qmails Now that will work on Linux systems, I don't know about any others. Next we compile it, (make setup check) here is a tip, for all you users out there with lots of memory, (128MB+) make -j12 setup check will cause the compilation process to fork, in doing so, it speeds the compiling process up largely, if you have 32MB use -j4. WARNING: Do not hike that number up unless you know what your doing, it will use all your memory and CPU time and will lock your system. Next thing we do, is tell qmail our host name, what our primary host name is that we will receive mail for, we do this by typing ./config-fast your.host.name, mine is vince.lansystems.com so I type ./config-fast vince.lansystems.com. Now we have to setup the system aliases, to do this we type... cd /var/qmail/alias; touch .qmail-postmaster .qmail-mailer-daemon .qmail-root and then chmod those files to 644... chmod 644 /var/qmail/alias/.qmail* Ok that's done, now we setup our user mailboxes, if you are running sendmail, they are /var/spool/mail/$USER, qmail is different. So what we need to do is move the /var/spool/mail/$USER file to ~user/Mailbox, so we type mv /var/spool/mail/user /home/user/Mailbox now we make a symbolic link from /var/spool/mail/user to their actual Mailbox, ln -s /home/user/Mailbox /var/spool/mail/user. Do this for EVERY user on your system. (pain in the butt isn't it? :)) Ok, fingers tired yet? halfway there. Now we make the /var/spool/mail dir 1777 (chmod 1777 /var/spool/mail). Ok, now copy (cp /var/qmail/boot/home to /var/qmail/rc). Now we start up qmail, (csh -cf '/var/qmail/rc &') without the ()'s of course. Well, now it's time to test qmail, see if all this work was worth it! I am gonna just paste the contents of a file here, no sense in me typing it all out... After you start qmail, look for a qmail: status: local 0/10 remote 0/20 line in syslog. qmail-send always prints either ``cannot start'' or ``status''. (The big number is a splogger timestamp.) Do a ps and look for the qmail daemons. There should be four of them, all idle: qmail-send, running as qmails; qmail-lspawn, running as root; qmail-rspawn, running as qmailr; and qmail-clean, running as qmailq. You will also see splogger, running as qmaill. Local-local test: Send yourself an empty message. (Replace ``me'' with your user-name. Make sure to include the ``to:'' colon.) % echo to: me | /var/qmail/bin/qmail-inject The message will show up immediately in your mailbox, and syslog will show something like this: qmail: new msg 53 qmail: info msg 53: bytes 246 from qp 20345 uid 666 qmail: starting delivery 1: msg 53 to local me@domain qmail: status: local 1/10 remote 0/20 qmail: delivery 1: success: did_1+0+0/ qmail: status: local 0/10 remote 0/20 qmail: end msg 53 (53 is an inode number; 20345 is a process ID; your numbers will probably be different.) Local-error test: Send a message to a nonexistent local address. % echo to: nonexistent | /var/qmail/bin/qmail-inject qmail: new msg 53 qmail: info msg 53: bytes 246 from qp 20351 uid 666 qmail: starting delivery 2: msg 53 to local nonexistent@domain qmail: status: local 1/10 remote 0/20 qmail: delivery 2: failure: No_such_address.__#5.1.1_/ qmail: status: local 0/10 remote 0/20 qmail: bounce msg 53 qp 20357 qmail: end msg 53 qmail: new msg 54 qmail: info msg 54: bytes 743 from <> qp 20357 uid 666 qmail: starting delivery 3: msg 54 to local me@domain qmail: status: local 1/10 remote 0/20 qmail: delivery 3: success: did_1+0+0/ qmail: status: local 0/10 remote 0/20 qmail: end msg 54 You will now have a bounce message in your mailbox. Local-remote test: Send an empty message to your account on another machine. % echo to: me@wherever | /var/qmail/bin/qmail-inject qmail: new msg 53 qmail: info msg 53: bytes 246 from qp 20372 uid 666 qmail: starting delivery 4: msg 53 to remote me@wherever qmail: status: local 0/10 remote 1/20 qmail: delivery 4: success: 1.2.3.4_accepted_message./... qmail: status: local 0/10 remote 0/20 qmail: end msg 53 There will be a pause between ``starting delivery'' and ``success''; SMTP is slow. Check that the message is in your mailbox on the other machine. Local-postmaster test: Send mail to postmaster, any capitalization. % echo to: POSTmaster | /var/qmail/bin/qmail-inject Look for the message in the alias mailbox, normally /var/qmail/alias/Mailbox. Double-bounce test: Send a message with a completely bad envelope. % /var/qmail/bin/qmail-inject -f nonexistent To: unknownuser Subject: testing This is a test. This is only a test. % (Use ctrl-d, not dot, to end the message.) Look for the double bounce in the alias mailbox. Group membership test: % cat > ~me/.qmail-groups |groups >> MYGROUPS; exit 0 % /var/qmail/bin/qmail-inject me-groups < /dev/null % cat ~me/MYGROUPS MYGROUPS will show your normal gid and nothing else. (Under Solaris, make sure to use /usr/ucb/groups; /usr/bin/groups is broken.) Now we add /bin/csh -cf '/var/qmail/rc &' to our startup scripts, mine is /etc/rc.d/rc.inet2, I run Slackware so this will most likely be different on your system, also disable sendmail startup in your startup scripts. Now we remove the sendmail stuff, and link it to qmail... rm /usr/lib/sendmail rm /usr/sbin/sendmail ln -s /var/qmail/bin/sendmail /usr/lib/sendmail ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail Great got that, now we add the following to /etc/inetd.conf... smtp stream tcp nowait qmaild /var/qmail/bin/tcp-env tcp-env /var/qmail/bin/qmail-smtpd Now killall -HUP inetd. Now the last and final thing, pasted from the qmail doc, we test qmails receive ability.... 1. SMTP server test: Forge some mail locally via SMTP. Replace ``me'' with your username and ``domain'' with your host's name. % telnet 127.0.0.1 25 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. 220 domain ESMTP helo dude 250 domain mail 250 ok rcpt 250 ok data 354 go ahead Subject: testing This is a test. . 250 ok 812345679 qp 12345 quit 221 domain Connection closed by foreign host. % Look for the message in your mailbox. (Note for programmers: Most SMTP servers need more text after MAIL and RCPT. See RFC 821.) 2. Remote-local test: Send yourself some mail from another machine. Look for the message in your mailbox. 3. Remote-error test: Send some mail from another machine to nonexistent@domain. Look for a bounce message in the remote mailbox. 4. UA test: Try sending mail, first to a local account, then to a remote account, with your normal user agent. 5. Remote-postmaster test: Send mail from another machine to PoStMaStEr@domain. Look for the message in the alias mailbox, normally /var/qmail/alias/Mailbox. Now one last thing, alot of people use fetchmail, which sends mail to user@localhost, qmail is not configured to accept mail for the domain "localhost" so will reject the mail. Add localhost to /var/qmail/control/rcphosts and /var/qmail/control/locals then killall -HUP qmail-send. THAT'S IT! (caps virus) :P ---------------------------------------------------------------------- UPDATE: Relaying in Qmail. 06/14/00 ---------------------------------------------------------------------- If you need to allow relaying in qmail, it is relativly simple to setup. I tried using what the Qmail FAQ suggested, tcpserver a competitor to the tcpwrappers that is most common on all linux systems to no avail. I managed to get it working using the standard tcpwrappers that come with most if not all distributions. Simply change the line in /etc/inetd.conf smtp stream tcp nowait qmaild /var/qmail/bin/tcp-env tcp-env /var/qmail/bin/qmail-smtpd To... smtp stream tcp nowait qmaild /usr/sbin/tcpd /var/qmail/bin/tcp-env /var/qmail/bin/qmail-smtpd Then issue the following command.... killall -HUP inetd Then add something like... tcp-env: 123.123.123.123, 132.132.132.132: setenv = RELAYCLIENT to /etc/hosts.allow, this would allow anyone from 123.123.123.123 or 132.132.132.132 to send mail via your smtp server. ---------------------------------------------------------------------- If you have any problems with this, you can email me at [EMAIL PROTECTED] or see me on IRC, irc.lansystems.com #Linuxhelp Please read the file FAQ in the qmail directory before asking, chances are the answer is in there.
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
