running freebsd with sendmail and qpopper

Steve Bertrand iaccounts at northnetworks.ca
Wed Dec 3 20:30:32 PST 2003


I noticed some errors here:

In section 4, the RELAY should say OK.
In section 6, the first line should read:
/usr/ports/mail/qpopper
delete the trailing garbage.

EOF


> > Like me. So there's at least two of us on the list who need this info. 
> > Speaking personally with some prior help I can now email within the box, 
> > i.e. id1 can email id2 who can then reply back to id1. However going the 
> > next step, receiving email from a remote server and sending email out to 
> > the internet is something I have no clue how to do. Don't even know how to 
> > start, and the stab I made at following tutorials found by googling got me 
> > nowhere at breakneck speed. Not that I'm complaining but you did ask. :)
> > 
> 
> First off, email relies very heavily on the DNS infrastructure of the
> Internet. DNS or Domain Name Service is what resolves a name, such as
> www.freebsd.org to it's IP address. Although it is technically possible
> to bypass the name for a mail server to get your messages to their
> destination, it is not proper, and many mail systems will not allow it
> (especially ones that use virtual domains). 
> 
> ie. In some cases, you could send a mail message to steve at 192.168.0.1,
> and if the server is listening for incoming mail (sendmail) then it may
> pick it up and deliver it to a local user.
> 
> Now, further into DNS, a computer must know how to find a mail server
> within a domain. When I send a message to fbsd-questions at freebsd.org,
> this is what happens:
> 
> - I send a message to questions at freebsd.org from my laptop to my smtp
> server (most would use one their ISP supplied, such as mail.isp.com)
> - the smtp server does a reverse name lookup in DNS to find out if the
> IP that sent the mail is allowed to relay mail to the remote destination
> through it. Reverse lookup is the opposite of resolving names, it is the
> process of resolving an IP to a name. You can try this with the  #dig
> command:
> # dig -x your.ip.here
> Likewise, you can use dig to resolve a name as well:
> # dig www.freebsd.org
> - next after the server verifies that you are allowed to relay, it looks
> in DNS for a Mail Exchange record (MX) of the domain you are trying to
> send the message to:
> # dig mx freebsd.org
> - once your smtp server finds the IP for the mail exchanger for the
> domain, it sends the message to it
> - the remote server acknowledges the incoming message, says thanks to
> the sending server and shuts down the connection
> - the recipient mail server looks in certain tables and/or files to
> locate which user the mail actually goes to and delivers it.
> 
> For a quick and dirty setup on a FreeBSD box, here are the steps: (I
> hope I don't miss any). They assume the following:
> 
> - your domain name is example.com, and will only be used for
> sending/receiving mail on an internal network
> - your mail server is somehow connected to the Internet, and will be
> used as an smtp server for the client computers on your network (as you
> probably use your ISP s servers now
> - your internal network IP scheme is 192.168.0.0/24 (or 255.255.255.0)
> - the IP of your mail server is 192.168.0.10
> - your default gateway for your network is 192.168.0.1
> - your ip of your client computer is 192.168.0.25
> - your mail server name is mail.example.com
> - your client computer name is client.example.com
> - your mail server will back as a qpopper and DNS server for the network
> - you are not overly concerned about high security, as this is just an
> example to get you up and going
> - you are running as the superuser
> 
> 1> Set up DNS on the server
> # cd /etc/namedb
> # chmod 744 make-localhost
> # ./make-localhost
> # ee named.conf
> Add the following to the bottom of the file:
> 
> zone "example.com" {
>         type master;
>         file "example.com.zone";
>         allow-update { none; };
> };
> 
> Then, up near the top of the file, make the following changes to this
> section:
> 
> # Remove the // from this line:
> //      forward only;
> 
> # and remove the /* and the */ from this section, and change the
> 127.0.0.1 to the IP address of your ISP DNS server:
> /*
>         forwarders {
>                 127.0.0.1;
>         };
> */
> 
> Now create a zone file for this zone:
> 
> # ee /etc/namedb/example.com.zone
> 
> Add the following information to this empty file:
> 
> --- start clip here ---
> 
> $TTL 360      ; Default cached time to live for all records
> 
> example.com.	IN      SOA     ns.example.com. admin at example.com.
> 			(
>                                 2003120401; Serial
>                                 172800  ; Refresh every 2 days
>                                 3600    ; Retry every hour
>                                 1728000 ; Expire every 20 days
>                                 172800 ); Minimum 2 days
> 
> @	IN      NS	ns.example.com.
> 
> ; Set the Mail Exchange record
> 
> @       IN MX   10      mail.example.com.
> 
> ns	IN A		192.168.0.10
> mail	IN A		192.168.0.10
> client	IN A		192.168.0.25
> router  IN A		192.168.0.1
> 
> --- end clip ---
> 
> Now, tell your name server to look to itself for resolution of names:
> 
> # echo "search example.com" > /etc/resolv.conf
> # echo "nameserver 127.0.0.1" >> /etc/resolv.conf
> 
> Now go configure your windows or whatever client computers to use
> 192.168.0.10 as it's DNS server.
> 
> 2> Start the nameserver and load it at startup:
> # /usr/sbin/named
> 
> Now, add the following 2 lines to your /etc/rc.conf file:
> 
> named_enable="YES"
> named_program="/usr/sbin/named"
> 
> 3> Configure sendmail
> # cd /etc/mail
> # echo "example.com" > relay-domains
> # echo "example.com" > local-host-names
> # echo "192.168.0 RELAY" > access
> 
> 4> Reload sendmail
> # kill -HUP `cat /var/run/sendmail.pid`
> or just reboot
> 
> 5> Add some users on the mail server
> # man adduser
> 
> 6> Install qpopper
> # cd /usr/ports/mail/qpopperpop3 stream tcp nowait root
> /usr/local/libexec/qpopper qpopper -R -s -c -T 300
> # make install clean
> 
> # ee /etc/inetd.conf
> Add the following line under the existing pop3 line in this file. Keep
> the existing one commented. (Note that if the mail line break breaks the
> line, it should be on a single line when entered in the file)
> 
> pop3 stream tcp nowait root /usr/local/libexec/qpopper qpopper -R -s -c
> -T 300
> 
> 7> Reload inetd
> # kill -HUP `cat /var/run/inetd.pid`
> or just reboot
> 
> 8> Try sending the user an email (whilst logged into the server console
> or ssh)
> 
> # mail -s "This is a test" user at example.com
> # This is the body of the message. The last line in a command
> # line mail will always be the '.' character to denote the end
> # of a message
> # .
> 
> 9> Check to see if sendmail delivered it to the users mailbox.
> # ll /var/mail | grep user
> 
> If his file has more than 0 bytes in it, then he's got mail.
> 
> 10> Configure your client machine to check email
> You can set up a new account in outlook or evolution, mozilla or what
> have you, just configure it with the account name the same as the user
> name, and the pop3 and smtp servers both as mail.example.com. This will
> resolve because as described in section 1, you have already configured
> this machine to look to your DNS server, who has authority to resolve
> the example.com domain.
> 
> 11> Check && send email
> If you receive email for this user into the account, then thank god -- I
> didn't overlook anything, and you didn't miss any small things in this
> howto.
> 
> Now, using your main (real, outside) email account, send a message back
> to this list to tell us that things are working.(Don't forget to change
> the smtp server to the new box first)
> 
> YOU WILL NOT be able to send email to the outside world from the new
> test account, as when it gets to us, we will respond to someone who
> honestly owns the domain, which won't be you.
> 
> Please advise on any errors or omissions. All of this was done from
> memory (well, almost all).
> 
> Cheers,
> 
> Steve
> 
> 
> > Marty Landman   Face 2 Interface Inc 845-679-9387
> > Sign On Required: Web membership software for your site
> > Make a Website: http://face2interface.com/Home/Demo.shtml
> > 
> > _______________________________________________
> > freebsd-questions at freebsd.org mailing list
> > http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> > To unsubscribe, send any mail to "freebsd-questions-unsubscribe at freebsd.org"
-- 

Steve Bertrand
President/CTO,
Northumberland Network Services

t: 905.352.2688
w: www.northnetworks.ca



More information about the freebsd-questions mailing list