PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mailserver mit postfix Fedora Core 3



Antorox
23.10.05, 14:03
Hi,

ich weiss, daß es etliche Anleitungen gibt, aber keine hat bei mir auf Anhieb geklappt. Ich beschreibe jetzt hier mal meine Vorgehensweise bei Fedora Core 3. Wenn etwas nicht funktioniert bitte posten und Verbesserungsvorschläge sind gerne willkommen:

EMail Server mit:

postfix
fetchmail
procmail
cyrus-imap
virenscanner/spam

IST:
Fedora Core 3
ssh zugang
freigeschaltete Ports in der FW:
25 smtp
110 pop3
143 imap
dyndns Adresse mit mx eintrag

Soll:
lokale mailzustellung
clienten können von extern senden/empfangen
einsortierung der mails in eigene postfächer
logins verschlüsselt
imap server
virenscann
spamfilterung mit spamassassin bzw. bogofilter
weiterleitungen von mails (z.bsp. root an benutzer)
mailinglisten
webmail

verwendete Quellen:
http://www.bieli.de/main/node4.html
http://nakedape.cc/info/Cyrus-IMAP-HOWTO/quickstart-fedora.html#id2597671
http://www.rootforum.de/forum/viewtopic.php?t=37166
http://www.linuxforen.de/forums/showthread.php?t=116202&page=1&pp=15
http://postfix.state-of-mind.de/patrick.koetter/smtpauth/smtp_auth_mailservers.html
http://lists.suse.com/archive/suse-linux/2004-Jan/3696.html

### Sinnvolle Dateistruktur
/ 500 MB
/usr 2000 MB
/tmp 500 MB
/home 2000 MB
swap 500 MB
/var Rest (ausreichend gross)

### Zeit einstellen über ntp !!!

### Hostname festlegen fqdn!
/etc/hosts:
127.0.0.1 localhost
127.0.0.1 myhostname.mynetworkid.tld myhostname

/etc/sysconfig/network:
NETWORKING=yes
HOSTNAME=myhostname.mynetworkid.tld

/etc/sysconfig/network-scripts/ifcfg-eth0:
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
TYPE=Ethernet
DHCP_HOSTNAME=myhostname.mynetworkid.tld

### reboot
shutdown -r now

### Überprüfung des Mailservers
alternatives --display mta
### ev. installieren fetchmail,procmail,postfix,cyrus-imapd,cyrus-imapd-utils,perl-Cyrus,cyrus-sasl,cyrus-sasl-plain
yum install postfix fetchmail procmail cyrus-imapd cyrus-imapd-utils cyrus-sasl cyrus-sasl-plain

### switchen des Mailservers
alternatives --config mta

### reboot
shutdown -r now

### Mailserver testen
telnet localhost 25
quit

### /etc/postfix/main.cf und master.cf bearbeiten
### main.cf:
soft_bounce = no
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
mail_owner = postfix
default_privs = nobody
# hier kommt der fqdn rein zum bsp. host.user.dyndns.org
myhostname = myhostname.mynetworkid.tld
# hier kommt die domain rein zum bsp. user.dyndns.org
mydomain = mynetworkid.tld
myorigin = $mydomain
inet_interfaces = all
# nach localhost.$mydomain kommt anstelle von mynetworkid.tld user.dyndns.org
mydestination = $mydomain, $myhostname, localhost.$mydomain, mynetworkid.tld
unknown_local_recipient_reject_code = 550
mynetworks_style = host
# hier en richtigen lokalen Netzbereich eintragen
mynetworks = 172.16.0.0/16, 127.0.0.0/8
relay_domains = $mydestination
# hier den relayhost eintragen zum bsp. mx.freenet.de
relayhost = [mx.freenet.de]
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
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.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.1.5/samples
readme_directory = /usr/share/doc/postfix-2.1.5/README_FILES
mailbox_command = /usr/bin/procmail -t -a $EXTENSION

###master.cf:
###hier habe ich einen Pfad verändert( nur zur verdeutlichung):
# The Cyrus deliver program has changed incompatibly, multiple times.
#
old-cyrus unix - n n - - pipe
flags=R user=cyrus argv=/usr/lib/cyrus-imapd/deliver -e -m ${extension} ${user}
# Cyrus 2.1.5 (Amos Gouaux)
# Also specify in main.cf: cyrus_destination_recipient_limit=1
cyrus unix - n n - - pipe
user=cyrus argv=/usr/lib/cyrus-imapd/deliver -e -r ${sender} -m ${extension} ${user}

###bitte master.cf so editieren für Fedora Core 3:

# ================================================== ========================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ================================================== ========================
smtp inet n - n - - smtpd
#smtps inet n - n - - smtpd
# -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
#submission inet n - n - - smtpd
# -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes -o smtpd_etrn_restrictions=reject
#628 inet n - n - - qmqpd
pickup fifo n - n 60 1 pickup
cleanup unix n - n - 0 cleanup
qmgr fifo n - n 300 1 qmgr
#qmgr fifo n - n 300 1 oqmgr
#tlsmgr fifo - - n 300 1 tlsmgr
rewrite unix - - n - - trivial-rewrite
bounce unix - - n - 0 bounce
defer unix - - n - 0 bounce
trace unix - - n - 0 bounce
verify unix - - n - 1 verify
flush unix n - n 1000? 0 flush
proxymap unix - - n - - proxymap
smtp unix - - n - - smtp
relay unix - - n - - smtp
# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq unix n - n - - showq
error unix - - n - - error
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - n - - lmtp
anvil unix - - n - 1 anvil
#
# Interfaces to non-Postfix software. Be sure to examine the manual
# pages of the non-Postfix software to find out what options it wants.
#
# maildrop. See the Postfix MAILDROP_README file for details.
#
maildrop unix - n n - - pipe
flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}
#
# The Cyrus deliver program has changed incompatibly, multiple times.
#
old-cyrus unix - n n - - pipe
flags=R user=cyrus argv=/usr/lib/cyrus-imapd/deliver -e -m ${extension} ${user}
# Cyrus 2.1.5 (Amos Gouaux)
# Also specify in main.cf: cyrus_destination_recipient_limit=1
cyrus unix - n n - - pipe
user=cyrus argv=/usr/lib/cyrus-imapd/deliver -e -r ${sender} -m ${extension} ${user}
uucp unix - n n - - pipe
flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
ifmail unix - n n - - pipe
flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp unix - n n - - pipe
flags=Fq. user=foo argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient


###nach Änderungen in der main.cf/master.cf immer ein postfix reload ausführen
postfix reload

### Alias bearbeiten (z.bsp alle mails für root an user
/etc/aliases
# Person who should get root's mail
root: user

newaliases

### erstmal nicht notwendig
### weiterleitungen für domains und user
/etc/transport
### beispiel:
#Zustellung von eMail erfolgt normal
#telmecsa.com local:
#Weiterleitung auf anderen Mailserver
#teletext.de smpt:mail.example2.de

### erstmal nicht notwendig
###In dieser Datei stehen virtuellen, externen Aliases von existierenden lokalen Benutzern. Im Gegensatz zu aliases können

###hier auch Domains zu den Usernamen geschrieben werden. Ein paar Beispiele:
## Umleitung von einer virtuellen externen Domain, die lokal nicht
## funktioniert auf einen lokalen User. So kann man gut mehrere
## gleiche Mail-Adressen benutzen und auf andere interne Umlenken
#import@aaas.es import_aaas
#export@aaas.es export_aaas
#import@randdelec.com import_randdelec
#export@randdelec.com export_randdelec
#import@telmecsa.com import_telmecsa
#export@telmecsa.com export_telmecsa

### Postfix neu starten
/etc/init.d/postfix restart

### Cyrus SASL konfigurieren ### vom mech=shadow nach mech=pam
/etc/sysconfig/saslauthd
### saslauthd starten
/sbin/service saslauthd start
### saslauthd beim Systemstart immer starten
/sbin/chkconfig saslauthd on
### runlevel testen
chkconfig --list saslauthd

### Cyrus-Imap starten
/sbin/service cyrus-imapd start
### Cyrus-Imap beim Systemstart immer starten
/sbin/chkconfig cyrus-imapd on
### runlevel testen
/sbin/chkconfig --list cyrus-imapd

### testen mit imtest (systemuser muss vorher angelegt sein)
imtest -a user -u user localhost

### Passwort für cyrus setzen
passwd cyrus

### mit cyradm einloggen
cyradm --user cyrus localhost

### Mailbox anlegen
createmailbox user.systemuser
listmailbox user.systemuser
listaclmailbox user.systemuser
listquotaroot user.systemuser

###Einsortierung in die Postfächer
###.procmailrc anlegen für die einzelnen user anlegen
touch /home/userverzeichnis/.procmailrc
chmod 644 /home/userverzeichnis/.procmailrc

###unter /var/log/ eine datei procmail anlegen für den log und erstmal chmod 777 setzen
touch /var/log/procmail
chmod 777 /var/log/procmail

###in die jeweilige .procmailrc folgendes reinschreiben:

# Verbose on = ausführliches Log
#
VERBOSE=on
LOGFILE=/var/log/procmail

# deliver sortiert die Mails in die Cyrus-Mailboxen ein
#
DELIVERMAIL="/usr/lib/cyrus-imapd/deliver"

# Kurznamen" fuer einige Zustellbefehle
#
IMAP="$DELIVERMAIL -e -a $LOGNAME -m user.$LOGNAME"

# Zustellung in die INBOX des Users:
#
:0 w
| /bin/sed 1d | $IMAP


### Rechte von deliver verändern und sticky bit setzen
chmod 4777 /usr/lib/cyrus-imapd/deliver
### deliver einem anderen user/gruppe zuordnen
chgrp mail /usr/lib/cyrus-imapd/deliver
chown cyrus /usr/lib/cyrus-imapd/deliver

### zur sicherheit alles nochmal neu starten:
postfix restart
/sbin/service cyrus-imapd restart

### jetzt lokale mailzustellung testen
### als user einloggen
mail root
irgendwas
irgendwas
.
return taste
return taste

### ich gehe davon aus ihr sitzt an einem entfernten windows rechner und habt da zum beispiel outlook express
### konto in outlook express einrichten
### als namen bzw. adresse nehmt ihr den user für den ihr vorhin in cyrus eine mailbox angelegt habt
### adresse währe dann user@user.dyndns.org
### imap server eure dyndns adresse eintragen
### als smtp adresse genauso eure dyndns adresse eintragen
### dann einen versuch wagen indem ihr eurer konto abruft

### ihr müsstest jetzt da ja root mails auf den user weitergeleitet werden die erste mail empfangen

### todo:

### mit fetchmail mails von externen postfächern abholen

### verschlüsseltes login über sasldb2

### mail versand von intern nach extern einrichten

### mail versand von extern einrichten, wenn ihr euch an eurem mail server von extern
### mit einem email clienten einwählt und
### mails von extern nach inter oder extern nach extern verschicken wollt

### virenscanner

### spamabwehr


PS: Der Rest kommt noch :)

cya

Tomek
23.10.05, 16:52
Würdest du bitte lesen, wie man hier richtig postet (http://www.linuxforen.de/forums/showthread.php?t=164474) und deinen Beitrag entsprechend anpassen? Danke.

Antorox
23.10.05, 17:51
Hi,

kann einer der Moderatoren den Beitrag löschen, danke ich verzichte .... und such mir für diesen Thread ein anderes Forum. Es geht nicht darum, ob ich für die Codes die Boardfunktion nutze, hätte ich sicherlich gerne gemacht, obwohl ich es selbst dann nicht übersichtlicher finden würde, sondern es geht darum wie Mister Oberguru, sorry für den Ausdruck, hier einfach antwortet.

Es sind keine Fragen in dem Thread, sondern es sollte eine Anleitung für Anfänger sein, wie Du anscheinend keiner mehr bist.

cya

Tomek
23.10.05, 18:00
Ist es so schlimm, ja? :rolleyes:

HorstHerbert
23.10.05, 18:11
Naja Jungs, macht euch mal nicht in's Hemd.

Megaübersichtlicht ist der Beitrag vieleicht nicht, aber ich hab ihn mir gecopy-pasted (definitiv ein Fall für den Duden) und ich denke er gibt auch das wichtigste her. Gestört hat es mich z.B. nicht.

Ich bedanke mich auf jeden Fall für das Howto/Tutorial, weil ich genau deshalb eben ma geschaut hab :) Würde mich freuen wenn du trotzdem die fehlenden Themen, nur wenn du Lust dazu hast natütlich, nachreichst, weil bisher fand ichs gut ;)

gruss
brian

Antorox
23.10.05, 18:33
Hi,

klar wenn Du mich grade auf dem falschen Fuß erwischst. Also lösche den Thread ich überarbeite das Teil und poste neu, weil mit den Antworten hier will ich nicht.

cya

PS: @HorstHerbert THX mach ich

Tomek
23.10.05, 18:50
Noch besser wäre es, wenn du es direkt im richtigen Forum tun würdest:
http://www.linuxforen.de/forums/forumdisplay.php?f=40

Antorox
23.10.05, 19:01
Hi,

wo Du recht hast hast Du recht :)

cya

Antorox
23.10.05, 19:12
Hi,

allerdings hat das posten im Tutorialbereich den Nachteil, das keiner mehr antworten kann, ausser, die die freigeschaltet sind, und ich wollte die Vorgehensweise ja auch kommentieren lassen. Alles nur auf private Nachrichten zu verlagern bringt nicht wirklich was.

Also werde ich doch hier :) neu posten.

cya

Tomek
24.10.05, 14:18
Ich schliesse dieses Thema dann mal.