Postfix bzw. Mailserver HowTos von crazyrolf
HowTos für Postfix von crazyrolf
Hallo erst mal in die Runde.
Ich habe bis jetzt in einem anderen großen SuSE-Linux-Forum meine Arbeit als Moderator des Mail-Forums verrichtet.
Wegen interner Meinungsverschiedenheiten bin ich nun hier gelandet.
Ich werde hier eine Liste meiner HowTos einstellen, die sich alle auf SuSE-Linux beziehen, dadurch können bei Anderen Linux-Versionen kleine Unterschiede in der Ordnerstrucktur entstehen, bitte darauf achten.
Bitte hier keine Fragen stellen, danke.
Wenn ihr Wünsche für ein HowTo habt, diese bitte hier äußern:
http://www.linuxforen.de/forums/showthread.php?t=215285
Hier nun mein Beitrag zu den HowTos:
Postfix Grundeinstellungen
http://www.linuxforen.de/forums/show...18&postcount=2
main.cf ohne Kommentare ausgeben
http://www.linuxforen.de/forums/show...21&postcount=3
Postfix mit courier-imap und mysql-Auth
http://www.linuxforen.de/forums/show...25&postcount=4
DynDNS Mails empfangen
http://www.linuxforen.de/forums/show...40&postcount=5
Postfix mit mysql Compilieren
http://www.linuxforen.de/forums/show...44&postcount=6
Postfix POP3 Servereinrichten
http://www.linuxforen.de/forums/show...45&postcount=7
Postfix Grundeinstellungen
Damit man Postfix mit amavis-new oder AntiVir oder was auch immer nutzen kann, sollte es erst mal richtig laufen!
Wie ihr vielleicht schon bemerkt habt, schreiben wir in Linux fast immer alles klein!
Warum?
Damit wir keinen blöden Fehler machen, weil Linux da unterscheidet zwischen GROSS und gross!
Also "GROSS" nix gleich "gross"!
Wenn wir also einen Mailserver aufsetzen wollen, muss unser Server als erstes eine feste IP haben.
In unserem Beispiel gehen wir von dem IP-Bereich 192.168.0.xxx aus! Bitte an euer Netz anpassen!
1. Netzwerkkarte im Yast unter Netzwerkgeräte - Netzwerkkarte einrichten.
http://www.ungerwasser.de/test/netzwerkkarte.jpg
Da unsere Karte wohl schon erkannt ist, drücken wir also auf Ändern und dann auf bearbeiten!
http://www.ungerwasser.de/test/netzwerkkarte2.jpg
Ein Klick auf Konfiguration der Statischen Adresse.
Hier jetzt eine feste IP aus unserem Bereich vergeben.
Haben wir einen Router mit der IP 192.168.0.1, dann kann unser Rechner eine IP zwischen 192.168.0.2 und 192.168.0.254 haben.
Ansonsten bitte anpassen!
Subnetzmaske 255.255.255.0
Jetzt Hostname und Nameserver.
http://www.ungerwasser.de/test/hostname.jpg
Hier könnt ihr eueren Namen vergeben.
Bitte einen anständigen Domainnamen verwenden, da dieser sonst unter umständen abgelehnt wird!
Rechnername = z.B. hans
Domainname = linux.de
Nameserver1 = IP vom Router
Domain-suche1 = xxx.de
Unter Routing kommt die IP vom Router!
Der erste Teil wäre geschafft!
2 Postfix anpassen!
Änderungen in der /etc/postfix/main.cf
Doppelte Einträge sind sinnlos!
Es gewinnt immer der letzte Eintrag, nur der zählt!
Was ihr bei euch nicht findet, einfach eintragen!
Zitat:
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
unknown_local_recipient_reject_code = 550
debug_peer_level = 2
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
xxgdb $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail
newaliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq
setgid_group = maildrop
html_directory = /usr/share/doc/packages/postfix/html
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/packages/postfix/samples
readme_directory = /usr/share/doc/packages/postfix/README_FILES
biff = no
mail_spool_directory = /var/mail
canonical_maps = hash:/etc/postfix/canonical
virtual_maps = hash:/etc/postfix/virtual
relocated_maps = hash:/etc/postfix/relocated
transport_maps = hash:/etc/postfix/transport
sender_canonical_maps = hash:/etc/postfix/sender_canonical
masquerade_classes = envelope_sender, header_sender, header_recipient
#so heißt mein Rechner wie bei der Konfiguration der Netzwerkkarte vergeben
myhostname = hans.linux.de
mydomain = linux.de
mydestination = $myhostname,$mydomain, localhost, localhost.$mydomain
#Dieser Eintrag deckt den Bereich von 192.168.0.0 - 192.168.0.255,
#also können jetzt alle Rechner in diesem Bereich Mails über unseren Server per SMTP senden.
#Sonst bitte an euer Netzwerk anpassen! z.B. 192.168.1.0/24
mynetworks = 192.168.0.0/24, 127.0.0.0/8
smtpd_banner = $myhostname ESMTP
#IP vom Router
proxy_interfaces = 192.168.0.1
program_directory = /usr/lib/postfix
inet_interfaces = all
masquerade_domains = $mydomain
masquerade_exceptions = root
defer_transports =
disable_dns_lookups = no
#mein smtp Ausgang smtp Server vom Internetdienstanbieter
relayhost = [smtp.netcologne.de]
mailbox_command =
mailbox_transport =
strict_rfc821_envelopes = no
smtp_use_tls = no
smtp_sasl_auth_enable = no
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtpd_sasl_auth_enable = yes
smtpd_tls_auth_only = no
#smtpd_sender_restrictions = hash:/etc/postfix/access
smtpd_client_restrictions =
smtpd_helo_required = no
smtpd_helo_restrictions =
#Wer darf senden?
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject _unauth_destination
smtpd_use_tls = no
broken_sasl_auth_clients = yes
#SMTPD Sicherheit
smtpd_junk_command_limit = 100
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_limit = 50
smtpd_timeout = 300s
alias_maps = hash:/etc/aliases
bounce_size_limit = 100000
# max. Groesse einer Mail 10MB
message_size_limit = 10000000
# max. Groesse einer Mailqueue 200MB
mailbox_size_limit = 200000000
# 100MB - mindestens freier Plattenplatz
queue_minfree = 100000000
append_dot_mydomain = no
queue_directory = /var/spool/postfix
mail_owner = postfix
# hans ist hier nur ein Beispiel!
double_bounce_sender = hans@localhost
empty_address_recipient = hans@localhost
relay_domains = $mydestination
relay_domains_reject_code = 554
3. Postfix neu starten!
Konsole als root.
Eingabe:
su
dein passwort
rcpostfix restart
Fertig!
Das war es, jetzt solltet ihr, wenn ihr in euerem Mailprogramm zum versenden "sendmail" auswählt, eine Mail versenden können.
4 Wenn nicht, ist es möglich. dass ihr euch zum versand bei euerem smtp-Ausgang anmelden müsst.
Dann dies noch durchführen und Postfix neu starten.
Benutzen wir einen anderen smtp-Server, müssen wir uns zum Versand gegebenenfalls am Server anmelden.
Hierzu müssen wir die Datei im Verzeichniss /etc/postfix/sasl_passwd bearbeiten.
Beispieleintrag:
smtp.netcologne.de benutzername:passwort
Damit Postfix diese lesen kann, müssen wir sie noch in eine db umwandeln.
Konsole als root öffnen.
Also:
su
passwort
postmap /etc/postfix/sasl_passwd
fertig.
Jetzt noch diese Einträge in die main.cf
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
Erst jetzt können wir unsere Postfix z.B. mit header_checks usw. erweitern!
main.cf ohne Kommentare ausgeben
Wie kann man z.B. die main.cf ohne Kommentare ausgeben?
Das geht so:
1. Konsole öffnen
2. "su" eingeben
3. root-Passwort eingeben
4. cd /etc/postfix
5. cat main.cf | grep -v "^#" | grep -v ^$
Oder bei der main.cf einfach als root dies eingeben:
postconf -n
Die obere Variante ist aber zuverlässiger.
Und schon bekommt man eine wunderschöne ausgabe ohne die Kommentare.
Mit anderen Files geht das logo auch so!
Dazu in das gewünschte Verzeichniss wechseln und den entsprechenden Filenamen verwenden.
Postfix mit courier-imap und mysql SuSE
Postfix mit courier-imap und mysql SuSE
Ich gehe davon aus, das ihr bereits einen Webserver mit mysql und PHP installiert habt und die Standardverzeichnisse unter SuSE benutzt werden.
Wir setzen hier einen Mailserver mit POP und imap auf, der alle User in einer MySQL-DB hat. Kein user hat einen Maschienenaccount. Alle user werden über die MySQL-DB angelegt oder gelöscht.
Fehler in dieser Anleitung sind nicht gewollt, bitte nicht schlagen wenn ihr einen findet!
Euer Postfix und die Netzwerkkarte sollte richtig konfiguriert sein, siehe:
http://www.linuxforen.de/forums/show...18&postcount=2
Wenn nicht, braucht ihr nicht weiter lesen, erst mal alles ordentlich einrichten!
1. Als erstes installieren wir z.B. mit yast die Pakete:
db
db-devel, db1-devel usw.
mysql-devel
openssl-devel
zlib-devel
fam
2. Postfix mit mysql compilieren und upgraden!
Siehe HOW-TO
http://www.linuxforen.de/forums/show...44&postcount=6
Wenn ihr bereits qpopper oder cyrus installiert habt, diese jetzt deinstallieren!
Auch alle anderen pop-server.
3. Datenbank anlegen z.B. mit phpmyadmin:
CREATE TABLE `mailuser` (
`id` int(11) NOT NULL auto_increment,
`account` varchar(240) NOT NULL default '',
`uid` varchar(6) NOT NULL default '5001',
`gid` varchar(6) NOT NULL default '5001',
`maildir` varchar(100) NOT NULL default '',
`home` varchar(100) NOT NULL default '/var/spool/maildirs',
`password` varchar(255) NOT NULL default '',
`angelegt_von` varchar(60) NOT NULL default '',
`angelegt_am` date NOT NULL default '0000-00-00',
`memo_text` varchar(255) NOT NULL default '',
`memo_vorname` varchar(60) NOT NULL default '',
`memo_nachname` varchar(60) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 ;
4. courier-imap mit mysql compilieren
Quellen downloaden, da wir die Pakete auf der SuSE-DVD nicht nutzen können (fehlt die mysql Anbindung):
http://prdownloads.sourceforge.net/c...b-0.58.tar.bz2
http://prdownloads.sourceforge.net/c...-4.0.6.tar.bz2
In das Verzeichniss wechseln und auspacken.
Wie das geht solltet ihr wissen.
Als erstes courier-authlib-0.58 compilieren und installieren.
In das entpackte Verzeichnis wechseln und als root:
./configure
make
make install
make install-configure
Jetzt courier-imap-4.0.6
In das entpackte Verzeichnis wechseln und ACHTUNG als USER:
./configure
make
make check (jetzt kommen ein paar Fehler-Meldungen, die wir erst mal ignorieren)
su
passwort (wir werden root)
make install
make install-configure
5. In /usr/local/etc/authlib/ finden wir jetzt diese 2 Dateien,
authdaemonrc und
authmysqlrc
die wir anpassen, da wir nur über die mysql-db authentifizieren wollen:
Fehlt eine der Dateien, ist was beim compilieren falsch gelaufen, überprüfen ob alle Pakete installiert wurden und noch mal neu compilieren.
# authdaemonrc
##VERSION: $Id: authdaemonrc.in,v 1.8 2001/10/07 02:16:22 mrsam Exp $
#
# Copyright 2000-2001 Double Precision, Inc. See COPYING for
# distribution information.
#
# authdaemonrc created from authdaemonrc.dist by sysconftool
#
# Do not alter lines that begin with ##, they are used when upgrading
# this configuration.
#
# This file configures authdaemond, the resident authentication daemon.
#
# Comments in this file are ignored. Although this file is intended to
# be sourced as a shell script, authdaemond parses it manually, so
# the acceptable syntax is a bit limited. Multiline variable contents,
# with the \ continuation character, are not allowed. Everything must
# fit on one line. Do not use any additional whitespace for indentation,
# or anything else.
##NAME: authmodulelist:0
#
# The authentication modules that are linked into authdaemond. The
# default list is installed. You may selectively disable modules simply
# by removing them from the following list. The available modules you
# can use are: authcustom authcram authuserdb authldap authpam
authmodulelist="authmysql"
##NAME: authmodulelistorig:1
#
# This setting is used by Courier's webadmin module, and should be left
# alone
#Achtung: wenn authmysql nicht vorhanden ist, ist was beim compilieren falsch
#gelaufen! Also noch mal neu.
authmodulelistorig="authmysql"
##NAME: daemons:0
#
# The number of daemon processes that are started. authdaemon is typically
# installed where authentication modules are relatively expensive: such
# as authldap, or authmysql, so it's better to have a number of them running.
# PLEASE NOTE: Some platforms may experience a problem if there's more than
# one daemon. Specifically, SystemV derived platforms that use TLI with
# socket emulation. I'm suspicious of TLI's ability to handle multiple
# processes accepting connections on the same filesystem domain socket.
#
# You may need to increase daemons if as your system load increases. Symptoms
# include sporadic authentication failures. If you start getting
# authentication failures, increase daemons. However, the default of 5
# SHOULD be sufficient. Bumping up daemon count is only a short-term
# solution. The permanent solution is to add more resources: RAM, faster
# disks, faster CPUs...
daemons=5
##NAME: version:0
#
# When you have multiple versions of authdaemond.* installed, authdaemond
# just picks the first one it finds. Set "version" to override that.
# For example: version=authdaemond.plain
version=""
##NAME: authdaemonvar:0
#
# authdaemonvar is here, but is not used directly by authdaemond. It's
# used by various configuration and build scripts, so don't touch it!
authdaemonvar=/var/run/authdaemon.courier-imap
----------------------------------------------------------------------------------------------------------------
#authmysqlrc
##VERSION: $Id: authmysqlrc,v 1.18 2004/11/14 02:58:16 mrsam Exp $
#
# Copyright 2000-2004 Double Precision, Inc. See COPYING for
# distribution information.
#
# Do not alter lines that begin with ##, they are used when upgrading
# this configuration.
#
# authmysqlrc created from authmysqlrc.dist by sysconftool
#
# DO NOT INSTALL THIS FILE with world read permissions. This file
# might contain the MySQL admin password!
#
# Each line in this file must follow the following format:
#
# field[spaces|tabs]value
#
# That is, the name of the field, followed by spaces or tabs, followed by
# field value. Trailing spaces are prohibited.
##NAME: LOCATION:0
#
# The server name, userid, and password used to log in.
MYSQL_SERVER localhost
MYSQL_USERNAME mysql_username
MYSQL_PASSWORD mysql_passwort
##NAME: MYSQL_SOCKET:0
#
# MYSQL_SOCKET can be used with MySQL version 3.22 or later, it specifies the
# filesystem pipe used for the connection
#
# MYSQL_SOCKET /var/mysql/mysql.sock
#Bitte Verzeichniss prüfen!
MYSQL_SOCKET /var/lib/mysql/mysql.sock
##NAME: MYSQL_PORT:0
#
# MYSQL_PORT can be used with MySQL version 3.22 or later to specify a port to
# connect to.
MYSQL_PORT 3306
#NAME: MYSQL_OPT:0
#
# Leave MYSQL_OPT as 0, unless you know what you're doing.
MYSQL_OPT 0
##NAME: MYSQL_DATABASE:0
#
# The name of the MySQL database we will open:
MYSQL_DATABASE mailbase
##NAME: MYSQL_USER_TABLE:0
#
# The name of the table containing your user data. See README.authmysqlrc
# for the required fields in this table.
MYSQL_USER_TABLE mailuser
##NAME: MYSQL_CRYPT_PWFIELD:0
#
# Either MYSQL_CRYPT_PWFIELD or MYSQL_CLEAR_PWFIELD must be defined. Both
# are OK too. crypted passwords go into MYSQL_CRYPT_PWFIELD, cleartext
# passwords go into MYSQL_CLEAR_PWFIELD. Cleartext passwords allow
# CRAM-MD5 authentication to be implemented.
#MYSQL_CRYPT_PWFIELD crypt
##NAME: MYSQL_CLEAR_PWFIELD:0
#
#
MYSQL_CLEAR_PWFIELD password
##NAME: MYSQL_DEFAULT_DOMAIN:0
#
# If DEFAULT_DOMAIN is defined, and someone tries to log in as 'user',
# we will look up 'user@DEFAULT_DOMAIN' instead.
#
#
# DEFAULT_DOMAIN example.com
DEFAULT_DOMAIN deine-domaine.de
##NAME: MYSQL_UID_FIELD:0
#
# Other fields in the mysql table:
#
# MYSQL_UID_FIELD - contains the numerical userid of the account
#
MYSQL_UID_FIELD uid
##NAME: MYSQL_GID_FIELD:0
#
# Numerical groupid of the account
MYSQL_GID_FIELD gid
##NAME: MYSQL_LOGIN_FIELD:0
#
# The login id, default is id. Basically the query is:
#
# SELECT MYSQL_UID_FIELD, MYSQL_GID_FIELD, ... WHERE id='loginid'
#
MYSQL_LOGIN_FIELD account
##NAME: MYSQL_HOME_FIELD:0
#
MYSQL_HOME_FIELD home
##NAME: MYSQL_NAME_FIELD:0
#
# The user's name (optional)
MYSQL_NAME_FIELD account
##NAME: MYSQL_MAILDIR_FIELD:0
#
# This is an optional field, and can be used to specify an arbitrary
# location of the maildir for the account, which normally defaults to
# $HOME/Maildir (where $HOME is read from MYSQL_HOME_FIELD).
#
# You still need to provide a MYSQL_HOME_FIELD, even if you uncomment this
# out.
#
# MYSQL_MAILDIR_FIELD maildir
MYSQL_MAILDIR_FIELD maildir
##NAME: MYSQL_DEFAULTDELIVERY:0
#
# Courier mail server only: optional field specifies custom mail delivery
# instructions for this account (if defined) -- essentially overrides
# DEFAULTDELIVERY from ${sysconfdir}/courierd
#
# MYSQL_DEFAULTDELIVERY defaultdelivery
##NAME: MYSQL_QUOTA_FIELD:0
#
# Define MYSQL_QUOTA_FIELD to be the name of the field that can optionally
# specify a maildir quota. See README.maildirquota for more information
#
# MYSQL_QUOTA_FIELD quota
##NAME: MYSQL_AUXOPTIONS:0
#
# Auxiliary options. The MYSQL_AUXOPTIONS field should be a char field that
# contains a single string consisting of comma-separated "ATTRIBUTE=NAME"
# pairs. These names are additional attributes that define various per-account
# "options", as given in INSTALL's description of the "Account OPTIONS"
# setting.
#
# MYSQL_AUXOPTIONS_FIELD auxoptions
#
# You might want to try something like this, if you'd like to use a bunch
# of individual fields, instead of a single text blob:
#
# MYSQL_AUXOPTIONS_FIELD CONCAT("disableimap=",disableimap,",disablepop3=", disablepop3,",disablewebmail=",disablewebmail,",sh aredgroup=",sharedgroup)
#
# This will let you define fields called "disableimap", etc, with the end result
# being something that the OPTIONS parser understands.
##NAME: MYSQL_WHERE_CLAUSE:0
#
# This is optional, MYSQL_WHERE_CLAUSE can be basically set to an arbitrary
# fixed string that is appended to the WHERE clause of our query
#
# MYSQL_WHERE_CLAUSE server='mailhost.example.com'
##NAME: MYSQL_SELECT_CLAUSE:0
#
# (EXPERIMENTAL)
# This is optional, MYSQL_SELECT_CLAUSE can be set when you have a database,
# which is structuraly different from proposed. The fixed string will
# be used to do a SELECT operation on database, which should return fields
# in order specified bellow:
#
# username, cryptpw, clearpw, uid, gid, home, maildir, quota, fullname, options
#
# The username field should include the domain (see example below).
#
# Enabling this option causes ignorance of any other field-related
# options, excluding default domain.
#
# There are two variables, which you can use. Substitution will be made
# for them, so you can put entered username (local part) and domain name
# in the right place of your query. These variables are:
# $(local_part), $(domain), $(service)
#
# If a $(domain) is empty (not given by the remote user) the default domain
# name is used in its place.
#
# $(service) will expand out to the service being authenticated: imap, imaps,
# pop3 or pop3s. Courier mail server only: service will also expand out to
# "courier", when searching for local mail account's location. In this case,
# if the "maildir" field is not empty it will be used in place of
# DEFAULTDELIVERY. Courier mail server will also use esmtp when doing
# authenticated ESMTP.
#
# This example is a little bit modified adaptation of vmail-sql
# database scheme:
#
# MYSQL_SELECT_CLAUSE SELECT CONCAT(popbox.local_part, '@', popbox.domain_name), \
# CONCAT('{MD5}', popbox.password_hash), \
# popbox.clearpw, \
# domain.uid, \
# domain.gid, \
# CONCAT(domain.path, '/', popbox.mbox_name), \
# '', \
# domain.quota, \
# '', \
# CONCAT("disableimap=",disableimap,",disablepop3=", \
# disablepop3,",disablewebmail=",disablewebmail, \
# ",sharedgroup=",sharedgroup) \
# FROM popbox, domain \
# WHERE popbox.local_part = '$(local_part)' \
# AND popbox.domain_name = '$(domain)' \
# AND popbox.domain_name = domain.domain_name
##NAME: MYSQL_ENUMERATE_CLAUSE:1
#
# {EXPERIMENTAL}
# Optional custom SQL query used to enumerate accounts for authenumerate,
# in order to compile a list of accounts for shared folders. The query
# should return the following fields: name, uid, gid, homedir, maildir, options
#
# Example:
# MYSQL_ENUMERATE_CLAUSE SELECT CONCAT(popbox.local_part, '@', popbox.domain_name), \
# domain.uid, \
# domain.gid, \
# CONCAT(domain.path, '/', popbox.mbox_name), \
# '', \
# CONCAT('sharedgroup=', sharedgroup) \
# FROM popbox, domain \
# WHERE popbox.local_part = '$(local_part)' \
# AND popbox.domain_name = '$(domain)' \
# AND popbox.domain_name = domain.domain_name
##NAME: MYSQL_CHPASS_CLAUSE:0
#
# (EXPERIMENTAL)
# This is optional, MYSQL_CHPASS_CLAUSE can be set when you have a database,
# which is structuraly different from proposed. The fixed string will
# be used to do an UPDATE operation on database. In other words, it is
# used, when changing password.
#
# There are four variables, which you can use. Substitution will be made
# for them, so you can put entered username (local part) and domain name
# in the right place of your query. There variables are:
# $(local_part) , $(domain) , $(newpass) , $(newpass_crypt)
#
# If a $(domain) is empty (not given by the remote user) the default domain
# name is used in its place.
# $(newpass) contains plain password
# $(newpass_crypt) contains its crypted form
#
# MYSQL_CHPASS_CLAUSE UPDATE popbox \
# SET clearpw='$(newpass)', \
# password_hash='$(newpass_crypt)' \
# WHERE local_part='$(local_part)' \
# AND domain_name='$(domain)'
#
6. Postfix anpassen
Datei mit root-Rechten erstellen:
/etc/postfix/ids.mysql
Inhalt:
user=mysql_username
password=mysql_passwort
host=localhost
dbname=mailbase
table=mailuser
select_field=uid
where_field=account
Datei erstellen:
/etc/postfix/mailbox.mysql
Inhalt:
user=mysql_username
password=mysql_passwort
host=localhost
dbname=mailbase
table=mailuser
select_field=maildir
where_field=account
main.cf anpassen und um diese Einträge erweitern.
#Virtuelle Mailbox
virtual_mailbox_base =/var/spool/maildirs
virtual_mailbox_maps = mysql:/etc/postfix/mailbox.mysql
virtual_maps = hash:/etc/postfix/virtual
virtual_minimum_uid = 5000
virtual_uid_maps = static:5001
virtual_gid_maps = static:5001
Datei etc/postfix/transport ändern und am Ende einfügen.
deine_domain.de virtual:
Jetzt noch in eine DB wandeln:
Konsole:
su
passwort
cd /etc/postfix
postmap transport
Courier-imap Benutzer anlegen:
Konsole:
useradd -u 5001 -d /var/spool/maildirs -s /bin/false mailuser
groupadd -g 5001 mailusers
Verzeichnis anlegen:
mkdir -p /var/spool/maildirs
chown 5001:5001 /var/spool/maildirs
Postfix mit rcpostfix restart neu starten!
Wir kopieren die Startscripte von /usr/lib/courier-imap/libexec:
imapd.rc
imapd-ssl.rc
pop3d.rc
pop3d-ssl.rc
nach etc/init.d
Im runlevel-Editor die Dienste
imapd.rc und
pop3d.rc
im Runlevel 3 & 5 starten.
Jetzt noch unseren Authdämond starten:
Konsole:
su
passwort
cd /usr/local/libexec/courier-authlib
./authdaemond
Ich würde hierfür einen cronjob schreiben, der den Dämon beim booten startet!
z.B. so:
@reboot root /usr/local/libexec/courier-authlib/authdaemond
Jetzt sollten wir unseren ersten User in der mysql-db anlegen.
Das PHP-Script dazu ist fertig!
Vielen Danke an mbkr (LAMP-Webserver XAMPP-Forum)
http://www.ungerwasser.de/downloads/...r_admin.tar.gz
Downloaden conf.inc.php anpassen und los!
----------------------------------------------------------------------
Von Hand so:
User1 bitte durch euren usernamen ersetzen, genau wie das user_passwort!
INSERT INTO `mailuser` VALUES ('', 'user1@localhost', '5001', '5001', 'rolf/', '/var/spool/maildirs', 'user_passwort', 'postmaster', '2005-08-18', 'Mailbox von user1', 'user1', 'nachname');
----------------------------------------------------------------------
In z.B KMail ist jetzt als POP-Server die IP von euerem Server einzutragen.
Als Benutzernamen, der Name unter account = user1@localhost und das von euch erteilte user_Passwort
Ob der imap-Server läuft, könnt ihr mit einem telnet login überprüfen:
[telnet auf Server]
00001 LOGIN username password [enter]
[Antwort vom Server]
00002 SELECT INBOX
[Antwort vom Server]
00003 ...
[...]
usw.
So ich hoffe es geht! :wink:
Als Webmailer für imap, würde ich SquirrelMail benutzen, geht recht einfach zu installieren.
http://www.squirrelmail.org/
Fehler bitte bei mir melden, danke!
PS: Wenn man für die virtuellen User fetchmail benutzen möchte, muss man für jeden User einen virtuellen User auf der Maschiene anlegen, da fetchmail den user sonst nicht findet!
z.B. so:
Ein zusätzliches Verzeichniss anlegen:
mkdir -p /var/spool/maildirs/home
chown 5001:5001 /var/spool/maildirs/home
chmod -R 770 /var/spool/maildirs/home
Jetzt kommt für jeden User ein solcher Eintrag, wobei "user1" durch den jeweiligen Usernamen zu ersetzen ist:
useradd -u 5002 -g 5001 -d /var/spool/maildirs/home -s /bin/false user1
useradd -u 5003 -g 5001 -d /var/spool/maildirs/home -s /bin/false user2
copyright by Rolf Hambach
Dyn DNS - Mails empfangen
ACHTUNG nur für Postfix Profis, und die, die zu 100% wissen was sie tun!!
Vorwort:
Ich gehe davon aus, dass ihr schon einen Mailserver mit Postfix am laufen habt und jetzt zusätzlich Mails über DYNdns auf diesen Server schicken bzw. empfangen wollt.
Zuvor sei gesagt, dass dies keine leichte Aufgabe ist!
Sollte euer Server nicht ständig online sein, solltet ihr dies nicht machen.
Gründe:
Mails die nicht zugestellt werden können, weil der Server offline ist, werden dann vom absendenden Server immer wieder versucht zuzustellen. Wenn euer Server dann wieder online ist, hat er unter Umständen eine neue IP bekommen. Die Mails die jetzt noch versucht werden zu euerem Server zugestellt zu werden, werden aber noch an die alte IP gesendet. Dies geht logischerweise nicht. Dies hat nun zur Folge, dass die Mail nicht mehr zugestellt werden kann. Aus diesem Grund landet man auf der sogenannten Blacklist! Einmal dort angelangt, werden viele Mailserver Mails die von euerem Server gesannt werden ablehnen oder in den SPAM-Ordner legen. Nicht so gut!
Auch solltet ihr sicher im einrichten von Mailservern sein, damit euer Server nicht von Spammern genutzt werden kann, die dann Mails über ihn versenden.
Anleitung
Änderung in deinem Router:
Port 25 öffnen und auf deinen Server weiterleiten.
PORT 25 < (Mailserver 192.168..???.???)
Änderungen in der main.cf von Postfix:
relay_domains = $mydestination / fals nicht schon drin.
$mydestination = hier muss zusätzlich die DNY ADDI eingetragen werden, damit der Server die Mails von dieser Domain annimmt, du kannst auch gleich deinen ganzen Rechner so nennen wie die DYN-ADDI das geht auch.
Weiterhin muss der Parameter
proxy_interfaces = IP vom Router
gesetzt werden, erstens damit der Server die Mails annimmt, weil sie ja nicht vom internen Netzwerk kommen, also eine IP haben, die nicht unter mynetworks steht, und zweitens damit du kein open Relay bist und jetzt alle von außen über deinen Mailserver Mails versenden können. Den Parameter gibt es seit Oktober 2002, also sehen das du einen neuen Postfix hast (1.5).
Wenn du dann das erste mal versuchst eine Mail zu empfangen solltest du auch nur eine senden, damit es nicht zu den oben genannten Problemen kommt (Blacklist).
Bei DYNdns:
Wildcard: anklicken
jetzt sollte es gehen, dass du Mails empfangen kannst.
Wenn du auch die Firewall auf deinem Server eingeschaltet hast, muss auch hier der Port 25 geöffnet werden.
Gruß Crazy
Postfix mit mysql Compilieren
Vorher mysql devil usw. installieren auch sasl2 Cyrus wenn nicht schon drauf und diverse db Pakete.
Postfix sorce runterladen, auspacken und dann im ausgepackten Verzeichniss diesen Befehl als root eingeben. (SuSE 9.3) Ansonsten Verzeichnisse überprüfen!
http://postfix.linux-mirror.org/down...x-2.2.5.tar.gz
Befehl:
Code:
make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -I/usr/include/sasl -I/usr/include' 'AUXLIBS=-L/usr/lib/mysql -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2 -L/usr/lib'
Jetzt ein : Postfix mit anhalten.
Danach ein
Postfix mit wieder starten.
Mit der eingabe:
lässt sich überprüfen ob es geklappt hat.
Die Ausgabe sollte so aussehen:
Code:
#postconf -m
static
cidr
pcre
nis
regexp
environ
mysql
proxy
btree
unix
hash
Upgrade OK?
Eingabe:
Code:
postconf mail_version
Ausgabe:
Code:
mail_version = 2.2.5
Sasl_auth OK?
Code:
postconf smtpd_sasl_auth_enable
Ausgabe:
Code:
smtpd_sasl_auth_enable = no
Jetzt noch in der main.cf ändern.
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options =
smtpd_tls_auth_only = no
smtpd_sasl_local_domain =
broken_sasl_auth_clients = yes /für Outlook
fertig.
Postfix und POP Server einrichten
Postfix und POP Server einrichten.
-----------------------------------------------------------------
Das hier ist die einfache Variante, für Könner nehmen wir courier-imap.
Die Einstellungen für smtp sind aber die Gleichen.
Anleitung auch hier im Forum.
-----------------------------------------------------------------
Ziel: Du möchtest deine Mails über einen zentralen Rechner versenden und auch mit Clients dort abholen.
Benötigte Programme:
Postfix (smtp-Server)
qpopper (POP-Server)
fetchmail (um Mails aus dem Internet von verschiedenen POP-Servern abzurufen)
1. Installation:
Postfix ist als Standard schon auf deinem Rechner drauf, und muss somit nicht installiert werden.
Qpopper muss über das Yast – Software installiert werden. Hier einfach nach qpopper suchen und installieren.
Ebenso fetchmail mit Yast - Software installieren.
Unser Rechner sollte eine feste IP und einen eindeutigen Namen haben, z.B. benutzer.linux.de!
Für jeden Benutzer (Client) muss ein User angelegt werden.
2. Einrichten von Postfix.
Wir starten den Konqueror im Systemverwaltungsmodus, hierdurch erhalten wir root-Rechte.
Wo ist der?
K-Menü – System – Dateiverwaltung – Konqueroro (Systemverwaltungs-Modus)
Alle nachfolgenden Dateien werden auf diese Weise von uns bearbeitet!
Überwiegend wird Postfix über die Datei main.cf gesteuert, hier werden rund 90% der Konfiguration von Postfix festgelegt.
Die Datei finden wir unter /etc/postfix/main.cf
Haben wir die main.cf jetzt mit Hilfe unseres Konqueror gefunden, öffnen wir die Datei, in dem wir mit der rechten Maustaste auf sie drücken und sagen, öffnen mit kwrite.
Die Datei ist mit den vielen Kommentaren sehr unübersichtlich, also gut aufpassen das keine Einträge doppelt drin stehen. Sollte einer doppelt sein, der letzte Eintrag gewinnt!
Einträge die wir nicht finden, fügen wir einfach ein.
Wir suchen als erstes die Einträge:
myhostname =
mydomain =
Sollte hier eine # davor stehen, löschen wir diese weg, da die Einträge sonst ohne Bedeutung sind, wie bei den folgenden Einträgen auch!
Bei der Konfiguration der Netzwerkkarte haben wir unserem Rechner ja einen schönen Namen gegeben, wenn nicht, holen wir dies jetzt erst mal nach und konfigurieren im Yast die Netzwerkkarte.
Diesen Namen tragen wir jetzt hier ein, in unserem Beispiel haben wir den Namen benutzer.linux.de vergeben.
myhostname = benutzer.linux.de
mydomain = linux.de
Als nächstes kommt unser Netzwerk. In unserem Beispiel hat der Rechner die IP 192.168.0.15
Damit wir nun Mais aus unserem Netzwerk empfangen können müssen wir auch das ganze Netzwerk hier freigeben, also machen wir folgenden Eintrag:
mynetworks = 192.168.0.0/24, 127.0.0.0/8
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destinati on
Als nächstes wollen wir verhindern, dass man unseren Mailserver als offenes Relay verwendet. Also das jemand eine Mail vom Internet aus sendet und unser Mailserver diese wieder in das Internet zurück sendet.
Dazu setzen wir den Parameter:
proxy_interfaces = 192.168.0.1
Die 192.168.0.1 ist hierbei die IP von unserem Router!
Damit unsere Mailserver jetzt Mails von den Anderen Rechnern im LAN annimmt, setzen wir diesen Parameter:
inet_interfaces = all
Für die Mails, die nicht für den internen Verkehr bestimmt sind, benötigen wir einen Ausgang. Dies ist der smtp-Server von unserem Internetdienstanbieter. In unserem Beispiel Netcologne. Die eckigen Klammern um den Eintrag bewirken, dass die Mail sofort an den Server gesendet werden, ohne das zuvor eine DNS-Abfrage gemacht wird.
relayhost = [smtp.netcologne.de]
-------------------------------------------------------------------
Benutzen wir einen anderen smtp-Server, müssen wir uns zum Versand gegebenenfalls am Server anmelden.
Hierzu müssen wir die Datei im Verzeichniss /etc/postfix/sasl_passwd bearbeiten.
Beispieleintrag:
smtp.netcologne.de benutzername:passwort
Damit Postfix diese lesen kann, müssen wir sie noch in eine db umwandeln.
Konsole als root öffnen.
Also:
su
passwort
postmap /etc/postfix/sasl_passwd
fertig.
Jetzt noch diese Einträge in die main.cf
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
--------------------------------------------------------------------
Sollte noch ein Client dabei sein, der ein älteres Outlook benutzt, muss dieser Eintrag auch noch rein.
broken_sasl_auth_clients = yes
Damit unsere Änderungen auch Wirkung zeigen, muss Postfix neu gestartet werden.
Konsole als root:
su
passwort
rcpostfix restart
Geschafft, unser Postfix ist konfiguriert.
Jetzt kommt fetchmail an die Reihe:
Siehe:
http://www.linux-club.de/viewtopic.php?t=33954
Als letztes muss unsere POP-Server gestartet werden, damit die Clients Ihre Mails abrufen können.
Dazu öffnen wir Yast – Netzwerkdienste – Netzwerkdienste (xinitd)
Oben erst mal ein Häkchen bei Aktivieren.
Jetzt suchen wir den Eintrag pop3 mit am Ende dem Servereintrag /usr/sbin/popper und schalten diesen AN.
Jetzt noch unter Yast – System – Runlevel-Editor den Dienst xinitd starten.
Geschafft!
Bei den Clients bitte immer die IP vom Server für POP und SMTP angeben, nicht den Namen!
Local auf dem Server ist in KMail als Versand sendmail und als Empfang locales Postfach zu verwenden.
Viel Spaß
Rolf Hambach
(crazyrolf)
Sollte sich ein Fehler eingeschlichen haben, bitte melden.