Giter VIP home page Giter VIP logo

opensmtpd's Introduction

Preliminary note

OpenSMTPD is a FREE implementation of the server-side SMTP protocol as defined by RFC 5321, with some additional standart extensions.

It allows ordinary machines to exchange e-mails with other systems speaking the SMTP protocol.

OpenSMTPD runs on top of the OpenBSD operating system but also has a portable version that can build and run on several systems, including:

  • Linux
  • FreeBSD
  • NetBSD
  • DragonFly
  • MacOSX

For more information: http://www.opensmtpd.org/portable.html

People interested about OpenSMTPD are encouraged to subscribe to our mailing list: http://www.opensmtpd.org/list.html

and to join the IRC channel: #OpenSMTPD @ irc.freenode.net

Also note that we have a wiki that you are encouraged to contribute to.

Cheers!

How to build, configure and use Portable OpenSMTPD

Dependencies

Portable OpenSMTPD relies on:

Get the source

git clone -b portable git://github.com/OpenSMTPD/OpenSMTPD.git opensmtpd

or

wget http://www.opensmtpd.org/archives/opensmtpd-portable-latest.tar.gz
tar xzvf opensmtpd-portable-latest.tar.gz

Build

cd opensmtpd*
./bootstrap  # Only if you build from git sources
./configure  
make  
sudo make install  

Special notes for FreeBSD/DragonFlyBSD/Mac OS X:

Please launch configure with special directive about libevent directory:

FreeBSD:

./configure --with-libevent-dir=/usr/local

DragonFlyBSD:

./configure --with-libevent-dir=/usr/pkg

Mac OS X:

./configure --with-libevent-dir=/opt/local
make CFLAGS="-DBIND_8_COMPAT=1"

Install

sudo make install    

Configure /etc/smtpd.conf

Please have a look at the complete format description of smtpd.conf configuration file

Add OpenSMTPD users

To operate, OpenSMTPD requires at least one user, by default _smtpd; and preferably two users, by default _smtpd and _smtpq.

Using two users instead of one will increase security by a large factor so... unless you want to voluntarily reduce security or you have absolute more faith in our code than we do, by all means use one.

The instructions below assume the default users however, the configure script allows overriding these using the options: --with-privsep-user, --with-queue-user.

NetBSD, Linux (Debian, Arch Linux, ...)

mkdir /var/empty  
useradd -c "SMTP Daemon" -d /var/empty -s /sbin/nologin _smtpd
useradd -c "SMTPD Queue" -d /var/empty -s /sbin/nologin _smtpq

DragonFlyBSD, FreeBSD

pw useradd _smtpd -c "SMTP Daemon" -d /var/empty -s /sbin/nologin
pw useradd _smtpq -c "SMTPD Queue" -d /var/empty -s /sbin/nologin

Mac OS X

First we need a group with an unused GID below 500, list the current ones used:

/usr/bin/dscl . -list /Groups PrimaryGroupID | sort -n -k2,2

Add a group - here we have picked 444:

/usr/bin/sudo /usr/bin/dscl . -create /Groups/_smtpd PrimaryGroupID 444

Then the user. Again we need an unused UID below 500, list the current ones used:

/usr/bin/dscl . -list /Users UniqueID | sort -n -k2,2

Add a user - here we have picked 444:

/usr/bin/sudo /usr/bin/dscl . -create /Users/_smtpd UniqueID 444
/usr/bin/sudo /usr/bin/dscl . -delete /Users/_smtpd AuthenticationAuthority
/usr/bin/sudo /usr/bin/dscl . -delete /Users/_smtpd PasswordPolicyOptions
/usr/bin/sudo /usr/bin/dscl . -delete /Users/_smtpd dsAttrTypeNative:KerberosKeys
/usr/bin/sudo /usr/bin/dscl . -delete /Users/_smtpd dsAttrTypeNative:ShadowHashData
/usr/bin/sudo /usr/bin/dscl . -create /Users/_smtpd RealName "SMTP Daemon"
/usr/bin/sudo /usr/bin/dscl . -create /Users/_stmpd Password "*"
/usr/bin/sudo /usr/bin/dscl . -create /Users/_smtpd PrimaryGroupID 444
/usr/bin/sudo /usr/bin/dscl . -create /Users/_smtpd NFSHomeDirectory /var/empty
/usr/bin/sudo /usr/bin/dscl . -create /Users/_smtpd UserShell /usr/bin/false

repeat for the _smtpq user.

Launch smtpd

First, kill any running sendmail/exim/qmail/postfix or other.

Then:

smtpd

or in debug and verbose mode

smtpd -dv

opensmtpd's People

Contributors

edeln avatar ericfaurot avatar estarling avatar evadot avatar gkoz avatar kusuriya avatar mneumann avatar poolporg avatar ptr-mat avatar renaudallard avatar ryanakca avatar snimmagadda avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.