Re: Routing solution on mail servers with all domain pointing at the same externel IP
Stephen Liu <[email protected]>
| Newsgroups | gmane.mail.perdition.user |
|---|---|
| Message-ID | <[email protected]> |
--- Gustavo Luiz Duarte <[email protected]> wrote: > You are not supplying the necessary options: -m and --query_key. > You can set it by command line parameter or in > /etc/perdition/perdition.conf (maybe /etc/defaults too) Hi Gustavo, Please advise how to set them on /etc/default/perdition. cat /etc/default/perdition ###################################################################### # /etc/sysconfig/perdition (RPM based systems) # /etc/default/perdition (Debian) # # Run time configuration parameters for perdition ###################################################################### # Run perdition # Set to "yes" to run perdition # Set to any other value to not run perdition RUN_PERDITION=yes # Command line parameters to pass to perdition when run in any mode. # This is in addition to any mode specific flags. # That is, it is in addtion to any command line options supplied # by POP3_FLAGS, POP3S_FLAGS, IMAP4_FLAGS or IMAP4S_FLAGS #FLAGS= # Run an instance of perdition in POP3 mode # Set to "yes" to run this instance of perdition # Set to any other valye to not run this instance of perdition POP3=yes #Command line parameters to pass to perdition when run in POP3 mode POP3_FLAGS= # Run an instance of perdition in POP3S mode # Set to "yes" to run this instance of perdition # Set to any other valye to not run this instance of perdition POP3S=yes #Command line parameters to pass to perdition when run in POP3S mode POP3S_FLAGS= # Run an instance of perdition in IMAP4 mode # Set to "yes" to run this instance of perdition # Set to any other valye to not run this instance of perdition IMAP4=yes #Command line parameters to pass to perdition when run in IMAP4 mode IMAP4_FLAGS= # Run an instance of perdition in IMAP4S mode # Set to "yes" to run this instance of perdition # Set to any other valye to not run this instance of perdition IMAP4S=yes #Command line parameters to pass to perdition when run in IMAP4S mode IMAP4S_FLAGS= * end * TIA B.R. Stephen L > >> For some reason I was thinking about the hints I gave you and > >> realized > >> I made a mistake. I forgot to mention that your client needs to > use > >> the domain while authenticating. So the test would be: > >> > >> $ echo "tag login username@domain password" | nc perdition_host > 143 > >> > >> Without the domain (as I had written) perdition cannot resolve > which > >> server to connect. > > > > > > Tried again. > > > > > > xen11:~# /etc/init.d/perdition restart > > Stopped /usr/sbin/perdition.pop3 (pid 2878). > > No /usr/sbin/perdition.pop3s found running; none killed. > > No /usr/sbin/perdition.imap4 found running; none killed. > > No /usr/sbin/perdition.imaps found running; none killed. > > /usr/sbin/perdition.pop3 already running. > > Starting /usr/sbin/perdition.pop3s... > > Starting /usr/sbin/perdition.imap4... > > Starting /usr/sbin/perdition.imaps... > > > > > > xen11:~# echo "tag login [email protected] x10satimis" | nc > > xen11.satimis.com 143 > > * OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE > > THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=CRAM-MD5 > > AUTH=CRAM-SHA1 IDLE ACL ACL2=UNION STARTTLS] Courier-IMAP ready. > > Copyright 1998-2005 Double Precision, Inc. See COPYING for > > distribution information. > > tag NO Login failed. > > > > > > Hanging here. I have to exit it manually with [Ctrl]+c > > > > > > xen11:~# tail /var/log/mail.log > > Dec 3 14:37:01 xen11 imapd: LOGIN: ip=[::ffff:192.168.0.211], > > [email protected] > > Dec 3 14:37:01 xen11 imapd: LOGIN: ip=[::ffff:192.168.0.211], > > password=mypasswd > > Dec 3 14:37:01 xen11 authdaemond: received auth request, > service=imap, > > authtype=login > > Dec 3 14:37:01 xen11 authdaemond: authmysql: trying this module > > Dec 3 14:37:01 xen11 authdaemond: SQL query: SELECT id, "", clear, > > uid, gid, home, concat(home,'/',maildir), "", name, "" FROM users > WHERE > > id = "[email protected]" AND (enabled=1) > > Dec 3 14:37:01 xen11 authdaemond: supplied password does not match > > clearpasswd > > Dec 3 14:37:01 xen11 authdaemond: authmysql: REJECT - try next > module > > Dec 3 14:37:01 xen11 authdaemond: FAIL, all modules rejected > > Dec 3 14:37:02 xen11 imapd: LOGIN FAILED, > [email protected], > > ip=[::ffff:192.168.0.211] > > Dec 3 14:37:20 xen11 imapd: Disconnected, > ip=[::ffff:192.168.0.211], > > time=19 > > > > > > Still fail. > > > > > > B.R. > > Stephen L > > > > > > > > > >> On Wed, Dec 3, 2008 at 15:49, Gustavo Luiz Duarte > >> <[email protected]> wrote: > >> > On Wed, Dec 3, 2008 at 15:27, Stephen Liu <[email protected]> > >> wrote: > >> >> > >> >> --- Gustavo Luiz Duarte <[email protected]> wrote: > >> >> > >> >>> On Wed, Dec 3, 2008 at 12:05, Stephen Liu <[email protected]> > >> wrote: > >> >>> > Hi Gustavo, > >> >>> > > >> >>> > > >> >>> > I'll make 2 tests; > >> >>> > > >> >>> > > >> >>> > 1) > >> >>> > test1 - USING TEXT FILE > >> >>> > > >> >>> > > >> >>> > 2) > >> >>> > test2 - USING MYSQL > >> >>> > > >> >>> > > >> >>> > I have cloned an image of the routing mail server for test2. > >> Now > >> >>> > proceed test1 first. > >> >>> > > >> >>> > > >> >>> > --- Gustavo Luiz Duarte <[email protected]> wrote: > >> >>> > > >> >>> >> Hi Stephen, > >> >>> >> > >> >>> >> You could use the transport table if the string "smtp:" > wasn't > >> >>> there. > >> >>> >> Do you really want to use mysql for the lookup? If you have > >> only 3 > >> >>> >> domain you could use a text file. > >> >>> >> > >> >>> >> USING TEXT FILE: > >> >>> >> $ cat << END > /etc/perdition_lookup.txt > >> >>> >> satimis.dnsalias.com:192.168.0.209 > >> >>> >> satimis.changeip.net:192.168.0.208 > >> >>> >> satimis.com:192.168.0.210 > >> >>> >> END > >> >>> >> > >> >>> >> $ makegdbm /etc/perdition_lookup.gdbm.db < > >> >>> /etc/perdition_lookup.txt > >> >>> >> > >> >>> >> $ perdition -m /etc/perdition_lookup.gdbm.db --query_key > "\d" > >> >>> > > >> >>> > > >> >>> > Package installed - perdition-mysql > >> >>> > > >> >>> > > >> >>> > # apt-cache policy perdition-mysql > >> >>> > perdition-mysql: > >> >>> > Installed: 1.17-7etch1 > >> >>> > Candidate: 1.17-7etch1 > >> >>> > Version table: > >> >>> > *** 1.17-7etch1 0 > >> >>> > 500 http://ftp.au.debian.org etch/main Packages > >> >>> > 500 http://security.debian.org stable/updates/main > >> Packages > >> >>> > 100 /var/lib/dpkg/status > >> >>> > > >> >>> > > >> >>> > # cat << END > /etc/perdition_lookup.txt > >> >>> >> satimis.dnsalias.com:192.168.0.209 > >> >>> >> satimis.changeip.net:192.168.0.208 > >> >>> >> satimis.com:192.168.0.210 > >> >>> >> END > >> >>> > > >> >>> > > >> >>> > # which makegdbm > >> >>> > /usr/bin/makegdbm > >> >>> > > >> >>> > > >> >>> > # which perdition > >> >>> > /usr/sbin/perdition > >> >>> > > >> >>> > > >> >>> > # makegdbm /etc/perdition_lookup.gdbm.db < > >> >>> /etc/perdition_lookup.txt > >> >>> > > >> >>> > # perdition -m /etc/perdition_lookup.gdbm.db --query_key > "\d" > >> >>> > both without complaint > >> >>> > > >> >>> > > >> >>> > Now I haven't figured out how to test perdition. There are > 2 > >> >>> databases > >> >>> > running on this routing mail server, MySQL maildb and > >> >>> > perdition_lookup.gdbm.db. Do I need to stop MySQL maildb to > >> test > >> >>> > perdition? How can the remote mail clients connect their > mail > >> >>> servers? > >> >>> > What server settings shall I use? Please shed me some > light. > >> TIA > >> >>> > >> >>> No need for stopping you MySQL. > >> >>> > >> >>> If everything is wright (I haven't tested, I can have skipped > >> >>> something), you can point your mail clients to the hostname > where > >> >>> perdition is installed and use it normally. > >> >> > >> >> > >> >> Sorry I can't resolve how can the mail client (Evolution) find > its > >> >> server over Internet with following settings; > >> > > >> > The mail client doesn't know wich server to use. It always use > the > >> > routing server. The routing server redirects it to the correct > imap > >> > server. Make sure your are using the right protocol imap4 or > >> imap4s. > >> > > >> >> > >> >> Server Type: IMAP > >> >> > >> >> Server : xen11.satimis.com (hostname of the routing mail server > >> where > >> >> perdition is running > >> >> > >> >> User: satimis > >> >> > >> >> > >> >> satimis is user of satimis.com, satimis.changeip.net and > >> >> satimis.dnsalias.com as well as user of the routing mail > server, > >> >> xen11.satimis.com > >> >> > >> >> > >> >> I tried it without success. > >> >> > >> >> > >> >>> Note that perdition's default protocol is pop3. To use imap > suply > >> the > >> >>> option -P IMAP4 > >> >> > >> >> > >> >> xen11:~# /etc/init.d/perdition start > >> >> /usr/sbin/perdition.pop3 already running. > >> >> Starting /usr/sbin/perdition.pop3s... > >> >> Starting /usr/sbin/perdition.imap4... > >> >> Starting /usr/sbin/perdition.imaps... > >> > > >> > How are you configuring perdition? Have you modified your > >> > /etc/init.d/perdition script to contain the correct parameters? > >> > > >> >> > >> >> > >> >> xen11:~# hostname > >> >> xen11.satimis.com > >> >> > >> >> > >> >> pop3 is already running. I have to manually run > >> /etc/init.d/perdition > >> >> to start pop3s, imap4 and imaps > >> >> > >> >> > >> >>> You can use nc to test it: > >> >>> $ echo "tag login username password" | nc perdition_host 143 > >> >>> In username and password you use valid username and password > for > >> your > >> >>> real imap server. > >> >> > >> >> > >> >> I suppose running above command on the routing mail server > where > >> >> perdition is installed. > >> >> > >> >> > >> >> # echo "tag login satimis mypassword" | nc xen11.satimis.com > 143 > >> >> * OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE > >> >> THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA > AUTH=CRAM-MD5 > >> >> AUTH=CRAM-SHA1 IDLE ACL ACL2=UNION STARTTLS] Courier-IMAP > ready. > >> >> Copyright 1998-2005 Double Precision, Inc. See COPYING > >> fordistribution > >> >> information. > >> >> tag NO Login failed. > >> >> > >> >> > >> >>> For pop3: > >> >>> $ echo -e "user username\npass password | nc perdition_host > 110 > >> >> > >> >> xen11:~# echo -e "user satimis\npass x11satimis | nc > >> xen11.satimis.com > >> >> 110 > >> >>> > >> >> waiting for input > >> > > >> > You can look at perdition logs to find information about what is > >> going on. > >> > > >> >> > >> >> > >> >>> No special configuration is need for your pop/imap servers. > Just > >> >>> assure that they are listening on standard ports. > >> >> > >> >> > >> >> I have only ONE external IP. All ports are forwarded to the > >> routing > >> >> mail server except port 53. > >> >> > >> >> > >> >> B.R. > >> >> Stephen L > >> >> > >> >> > >> >> > >> >>> []'s > >> >>> Gustavo Duarte > >> >>> > >> >>> > > >> >>> > > >> >>> > B.R. > >> >>> > Stephen > >> >>> > > >> >>> > > >> >>> > > >> >>> > > >> >>> > > >> >>> > > >> >>> > > >> >>> >> > >> >>> >> USING MYSQL: > >> >>> >> You have some alternatives: > >> >>> >> 1. Continue with your tblPerdition and populate it, so that > >> user > >> >>> >> column has the domain, hostname column has the localIP and > >> port > >> >>> >> column > >> >>> >> you leave empty (supposing your real pop/imap servers > listen > >> to > >> >>> >> standard ports). > >> >>> >> > >> >>> >> Then you would do (supposing you have mysql perdition > library > >> in > >> >>> >> /usr/lib): > >> >>> >> > >> >>> >> perdition -M /usr/lib/libperditiondb_mysql.so.0 --query_key > >> "\d" > >> >>> -m > >> >>> >> > >> "<dbhost>:<dbport>:dbPerdition:tblPerdition:perdition:perdition" > >> >>> >> > >> >>> >> (substituting <dbhost> and <dbport> by you db hostname and > >> port) > >> >>> >> > >> >>> >> > >> >>> >> 2. Modify your transport table so that the string smtp and > >> localIP > >> >>> >> are > >> >>> >> in diferent columns. Then you create a view concatenating > them > >> for > >> >>> >> the > >> >>> >> postfix query. A bit more complicated but easier to > maintain > >> when > >> >>> you > >> >>> >> have lots of domains and servers. > >> >>> >> > >> >>> >> []'s > >> >>> >> Gustavo Duarte > >> >>> >> > >> >>> >> On Wed, Dec 3, 2008 at 02:28, Stephen Liu > <[email protected]> > >> >>> wrote: > >> >>> >> > Hi Gustavo, > >> >>> >> > > >> >>> >> > > >> >>> >> >> The URL I sent you has information about using mysql as > >> lookup > >> >>> >> >> library: > >> >>> >> >> > http://www.vergenet.net/linux/perdition/perditiondb.5.shtml > >> >>> >> > > >> >>> >> > > >> >>> >> > I suppose you're referring to following section; > >> >>> >> > > >> >>> >> > > >> >>> >> > MYSQL > >> >>> >> > This map library can be used by specifying the full path > to > >> the > >> >>> >> library > >> >>> >> > using the -M|--map_library command line option or > >> configuration > >> >>> >> file > >> >>> >> > option. > >> >>> >> > > >> >>> >> > E.g. > >> >>> >> > perdition -M /usr/lib/libperditiondb_mysql.so.0 > >> >>> >> > ...... > >> >>> >> > > >> >>> >> > > >> >>> >> > I'll start from there. > >> >>> >> > > >> >>> >> > > >> >>> >> > I suppose the name of this database is "dbPerdition" to > be > >> >>> created > >> >>> >> on > >> >>> >> > MySQL > >> >>> >> > > >> >>> >> > > >> >>> >> > mysql> create database dbPerdition; > >> >>> >> > > >> >>> >> > > >> >>> >> > mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP > >> >>> >> > -> ON dbPerdition.* TO 'perdition' IDENTIFIED by > >> 'perdition'; > >> >>> >> > > >> >>> >> > the 1st "perdition" on above second line is "database > user". > >> >>> The > >> >>> >> 2nd > >> >>> >> > "perdition" is "database password". > >> >>> >> > > >> >>> >> > > >> >>> >> > mysql> CREATE TABLE `tblPerdition` ( > >> >>> >> > -> `user` varchar(128), null '' default '', > >> >>> >> > -> `servername` varchar(255) null '' default '', > >> >>> >> > -> `port` varchar(8) YES NULL, > >> >>> >> > -> PRIMARY KEY (`user`), > >> >>> >> > -> ) ; > >> >>> >> > > >> >>> >> > > >> >>> >> > Afterwards I'll edit data on 'tblPerdition" table. > >> >>> >> > > >> >>> >> > > >> >>> >> >> The table you've shown doesn't have information about > the > >> >>> >> >> hostnames/localIPs. Where is it? In the transport table? > >> >>> >> > > >> >>> >> > > >> >>> >> > Yes. > >> >>> >> > > >> >>> >> > mysql> SELECT * from transport; > >> >>> >> > > >> >>> >> > >> >>> > > >> >>> > >> >> > >> > > > +------+----------------------+--------------------+-----------+---------+ > >> >>> >> > | pkid | domain | hostname | > >> transport | > >> >>> >> > enabled | > >> >>> >> > > >> >>> >> > >> >>> > > >> >>> > >> >> > >> > > > +------+----------------------+--------------------+-----------+---------+ > >> >>> >> > | 1 | satimis.dnsalias.com | smtp:192.168.0.209 | :[] > >> | > >> >>> >> > 1 | > >> >>> >> > | 2 | satimis.changeip.net | smtp:192.168.0.208 | :[] > >> | > >> >>> >> > 1 | > >> >>> >> > | 3 | satimis.com | smtp:192.168.0.210 | :[] > >> | > >> >>> >> > 1 | > >> >>> >> > > >> >>> >> > >> >>> > > >> >>> > >> >> > >> > > > +------+----------------------+--------------------+-----------+---------+ > >> >>> >> > 3 rows in set (0.00 sec) > >> >>> >> > > >> >>> >> > > >> >>> >> > # cat /etc/postfix/mysql_transport_maps.cf > >> >>> >> > user=mail > >> >>> >> > password=mypassword > >> >>> >> > dbname=maildb > >> >>> >> > table=transport > >> >>> >> > select_field=hostname > >> >>> >> > where_field=domain > >> >>> >> > hosts=127.0.0.1 > >> >>> >> > additional_conditions = and enabled = 1 > >> >>> >> > * end * > >> >>> >> > > >> >>> >> > > >> >>> >> >> I've never used mysql to do it, so I don't know the > >> details > >> >>> and > >> >>> >> how > >> >>> >> >> flexible it is. Maybe you'll need to create a view in > your > >> >>> >> database > >> >>> >> >> for the perdition lookup with the domain as key and the > >> localIP > >> >>> as > >> >>> >> >> value. > >> >>> >> >> > >> >>> >> >> Unfortunately I don't have any example. But the two URLs > I > >> sent > >> >>> >> you > >> >>> >> >> have all information you need. In particular, look at > >> >>> --query_key > >> >>> >> >> option and mysql database access library. > >> >>> >> > > >> >>> >> > > >> >>> >> > Whether you meant "--query_key FORMAT[,FORMAT...]:" on; > >> >>> >> > > >> >>> >> > http://www.vergenet.net/linux/perdition/perdition.8.shtml > >> >>> >> > > >> >>> >> > > >> >>> >> > Thanks > >> >>> >> > > >> >>> >> > > >> >>> >> > B.R. > >> >>> >> > Stephen L > >> >>> >> > > >> >>> >> > Send instant messages to your online friends > >> >>> >> http://uk.messenger.yahoo.com > >> >>> >> > ______________________________________________ > >> >>> >> > Perdition-users mailing list > >> >>> >> > [email protected] > >> >>> >> > http://lists.vergenet.net/listinfo/perdition-users > >> >>> >> > > >> >>> >> > >> >>> > > >> >>> > > >> >>> > Send instant messages to your online friends > >> >>> http://uk.messenger.yahoo.com > >> >>> > ______________________________________________ > >> >>> > Perdition-users mailing list > >> >>> > [email protected] > >> >>> > http://lists.vergenet.net/listinfo/perdition-users > >> >>> > > >> >>> > >> >> > >> >> > >> >> Send instant messages to your online friends > >> http://uk.messenger.yahoo.com > >> >> ______________________________________________ > >> >> Perdition-users mailing list > >> >> [email protected] > >> >> http://lists.vergenet.net/listinfo/perdition-users > >> >> > >> > > >> > > > > > > Send instant messages to your online friends > http://uk.messenger.yahoo.com > > ______________________________________________ > > Perdition-users mailing list > > [email protected] > > http://lists.vergenet.net/listinfo/perdition-users > > > Send instant messages to your online friends http://uk.messenger.yahoo.com ______________________________________________ Perdition-users mailing list [email protected] http://lists.vergenet.net/listinfo/perdition-users