# qmail how to
# by mohican
#
[email protected]
# JabberID ==
[email protected]
#
http://mohican.freeshell.org/my/qmail-how-to-with-supervise.txt
# Neophodni fajlovi:
#
http://cr.yp.to/software/qmail-1.03.tar.gz
#
http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
#
http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
#
http://cr.yp.to/checkpwd/checkpassword-0.90.tar.gz
#
http://www.din.or.jp/~ushijima/qmail-conf/qmail-conf-0.60.tar.gz
#
http://cr.yp.to/djbdns/djbdns-1.05.tar.gz # potreban samo da bi qmail-conf procitao njegove biblioteke
#### Instalirajte ove pakete
# probajte da ih sve drzite u /package folderu i tu ih otpakujte
cd /package
tar zxf ucspi-tcp-0.88.tar.gz
cd ucspi-tcp-0.88
make
make setup check
cd ..
tar zxf checkpassword-0.90.tar.gz
cd checkpassword-0.90
make
make setup check
cd ..
tar zxf daemontools-0.76.tar.gz
cd admin/daemontools
./package/install
cd ..
tar zxf djbdns-1.05.tar.gz
tar zxf qmail-conf-0.60.tar.gz
cd qmail-conf-0.60
make -f Makefile.ini djbdns=../djbdns-1.05
make
make setup check
######## Instalacija samog qmail-a ############
# prvo napravite direktorijum u kome ce te instalirati qmail po defaultu je to /var/qmail
# znaci
mkdir /var/qmail
# zatim treba napraviti grupe i korisnike koje ce qmail koristiti
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
# make-ujte i instalirajte fajlove idirektorijume u /var/qmail
make setup check
# zatim u diru gde ste otpakovali qmail uradite
config-fast hostname
# gde je hostname naravno vas host .... to ce te kasnije moci da promenite
# sada udjite u direktorijum korisnika alias koga ste gore napravili
cd ~alias
# i uradite
touch .qmail-postmaster .qmail-mailer-daemon .qmail-root
chmod 644 ~alias/.qmail
# ovime ste namestili da sva posta koja ide na postmastera (kod vecine mail servera admin
# account) bude preusmerena na korisnika alias !!!
# tako isto i za sve sto ide na root -a (obicno ne uspele poruke) i za mailer daemon-a (obicno
# poruke koje nisu mogle biti poslate)
# sada treba namestiti qmail da koristi maildir format umesto mailbox-a
/var/qmail/bin/maildirmake ~username/Maildir
chown -R username:group ~username/Maildir
echo ./Maildir/>>~username/.qmail
chmod 644 ~username/.qmail
chown username:group ~username/.qmail
# ovo treba uraditi za svakog korisnika za kojeg zelite da koristi qmail ...
# ja sam za ovo gore napravio skriptu u kojoj je samo username zamenjen sa $1 i kasnije ta
# skripta pozivana sa ./imeskripte username
############ Startovanje uz pomoc supervise skripti ###############
# dizanje qmail-send-a qmail-lspawn itd itd
qmail-delivery-conf qmaill /var/qmail/service/qmail
# startovanje
ln -s /var/qmail/service/qmail /service
# dizanje qmail-smtpd-a
qmail-smtpd-conf qmaild qmaill /var/qmail/service/smtpd
# startovanje
ln -s /var/qmail/service/smtpd /service
# setovanje relayovanja
/var/qmail/service/smtpd/add-relayclient x.x.x.
# ovim dozvoljavate da korisnici sa x.x.x. mogu da salju mailove preko vas
# dizanje qmail-pop3d-a
qmail-pop3d-conf /bin/checkpassword qmaill /var/qmail/service/pop3d
# startovaje
ln -s /var/qmail/service/pop3d /service
# podesavanje prava pristupa pop3d-u
/var/qmail/service/pop3d/add-client x.x.x.x
# ovim dozvoljavate nekome sa ip adrese x.x.x.x da se poveze na vas pop3d
######### Startovanje qmail-a preko inetd servisa ##############
# prekopirajte fajl za startovanje u qmail dir
cp /var/qmail/boot/home /var/qmail/rc
# editujte ga i tamo gde pise Mailbox zamenite sa Maildir
# startujte qmail
/var/qmail/rc &
# Sad ostaje da podesite pop3 daemon i smtp daemon da se startuju iz inet skripte ...
# to ce te uraditi tako sto ce te dodati sledece linije u /etc/inetd.conf
echo "smtp stream tcp nowait qmaild /usr/sbin/tcpd /var/qmail/bin/tcp-env /var/qmail/bin/qmail-smtpd">>/etc/inetd.conf
echo "pop3 stream tcp nowait root /var/qmail/bin/qmail-popup qmail-popup HOST /bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir">>/etc/inetd.conf
# gde je HOST u drugoj liniji ime vaseg host-a !!!
# sad resetujte inetd servise ....
killall -HUP inetd
# i sad vam ostaje da isprobate vas novi mail server
# telnet localhost 25 ..........
# telnet localhost 110 .........
### RELAYING
# Ovom procedurom gore namesticete sve ali necete moci da saljete mail nigde osim na svoj
# host ....
# to se moze srediti na nekoliko nacina ....
# jedan je da u fajl /var/qmail/control/rcpthosts dodate sve hostove na koje ce te slati mailove
# ovo je neprakticno u slucaju da imate cesto razlicite ljude da mailujete ....
# Drugo resenje je da obrisete ceo fajl /var/qmail/control/rcpthosts ali time bi ste postali
# otvoreni
# za koriscenje od strane bilo koga na internetu i samim tim i spam firmama ...
# ovo se moze opet resiti na dva nacina ... jedan je dodavanjem pravila u firewall kojim se
# zabranjuje prstup portu 25 sem sa odredjenog ip raspona ....
# A drugo resenje je da se koristi program tcpserver ... ovaj program prihvata konekciju sa
# spolja i filtrira je kroz neka nasa pravila
# i onda je prosledjuje u nasem slucaju smtp daemonu !!!
# to bi se uradilo na sledeci nacin !!!
# napravili bi smo fajl
cat >/etc/tcp.smtp
xxx.xxx.xxx.:allow,RELAYCLIENT=""
:allow
^D
# gde je xxx.xxx.xxx pocetni deo neke nase c klase ip adresa ... moze biti i a klase i b itd itd
# a moze i vise klasa da se stavi ....
# Sada cemo programom koji ide u paketu sa tcpserver-om napraviti data baze od ovog fajla
cd /etc
tcprules tcp.smtp.cdb tcp.smtp.temp < tcp.smtp
# i sada cemo preko tcpservera startovati qmail-smtpd
tcpserver -x /etc/tcp.smtp.cdb -u X -g Y 0 smtp /var/qmail/bin/qmail-smtpd &
# gde je X uid od korisnika qmaild (mozete proveriti koji je grep qmaild /etc/passwd)
# a Y guid grupe nofiles (takodje mozete proveriti cat grep nofiles /etc/group)
# Ovim smo za razliku od stavljanja pravila u firevall postigli to da ce neko moci da se poveze
# na smtp server
# (za razliku od opcije stavljanja firewall pravila ) ali nece moci da salje mail nigde osim na
# hostove koje mu vi dozvolite u fajlu
# /var/qmail/control/rcpthosts (pod uslovom naravno da ga niste obrisali)
# ovo se desava zato sto u slucaju da neko ko ne pripada grupi adresa koje smo naveli u
# /etc/tcp.smtp fajlu pokusa da se poveze
# tcpserver ne salje fag RELAYCLIENT i samim tim on nema pravo da se relay-uje preko tog
# smtp-a !!!