Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Apache 2
- Vorbereitungen:
- Hostnamen vergeben: hostname rechnername.domain
- Datei hosts prüfen: vim /etc/hosts
- evtl. anpassen: ip-adresse rechnername.domain rechnername
- Paketquellen aktualisieren: apt-get update
- Installation:
- Paket installieren: apt-get install apache2
- Einrichten eines zugangsgeschützten Bereiches:
- Verzeichnis erstellen: z.B. mkdir /var/www/test
- chmod 777 /var/www/test
- Konfig-Datei anpassen: vim /etc/apache2/sites-available/default
- <Directory /var/www/test>
- Options Indexes FollowSymLinks MultiViews
- AllowOverride All
- Order allow,deny
- allow from all
- </Directory>
- Datei .htaccess im Ordner erstellen:
- vim /var/www/test/.htaccess
- AuthType Basic
- AuthName "Zugangsgeschuetzter Bereich"
- AuthUserFile /etc/apache2/passwd
- Require valid-user
- Passwort-Datei erstellen: htpasswd –c /etc/apache2/password benutzer
- Apache neustarten: /etc/init.d/apache2 restart
- ------------------------------
- Konfiguration Samba
- 1. Verzeichnisse erstellen
- z.B. mkdir daten
- Linuxberechtigungen der erstellten Ordner anpassen
- z.B. chmod 777 daten
- 2. Gruppen erstellen
- z.B. groupadd Sonne
- 3. Benutzer anlegen und den Gruppen zuordnen
- z.B. useradd –m –G Sonne hans
- 4. Sambapasswörter erstellen
- z.B. smbpasswd –a hans (Passwort sollte mit dem Windowspasswort des
- Benutzers identisch sein)
- 5. Konfigurationsdatei /etc/samba/smb.conf editieren
- z.B.
- [global]
- workgroup = samba
- netbios name = Samba01
- encrypt passwords = Yes
- [Daten]
- path = /Daten
- writeable = Yes
- valid users = @Sonne, @Mond, @Sterne, omega
- read list = omega
- 6. Sambadienste starten
- rcsmb start
- rcnmb start
- Ubuntu: /etc/init.d/samba restart
- ---------------------------------------------------------
- Paketfilter
- #! /bin/sh
- case $1 in
- start)
- # Grundstellung
- iptables -P INPUT DROP
- iptables -P OUTPUT DROP
- iptables -P FORWARD DROP
- iptables -F
- # Loopback-Device freigeben
- iptables -A INPUT -i lo -j ACCEPT
- iptables -A OUTPUT -o lo -j ACCEPT
- # Lokale Freigaben
- iptables -A OUTPUT -p TCP --dport http -j ACCEPT
- iptables -A OUTPUT -p TCP --dport https -j ACCEPT
- iptables -A OUTPUT -p TCP --dport smtp -j ACCEPT
- iptables -A OUTPUT -p TCP --dport pop3 -j ACCEPT
- iptables -A OUTPUT -p TCP --dport imap -j ACCEPT
- iptables -A OUTPUT -p UDP --dport domain -j ACCEPT
- iptables -A OUTPUT -p ICMP --icmp-type echo-request -j ACCEPT
- iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
- # Fernwartung
- iptables -A INPUT -i eth1 -p TCP --dport ssh -s 192.168.1.1 -j ACCEPT
- iptables -A OUTPUT -o eth1 -p TCP --sport ssh -d 192.168.1.1 -j ACCEPT
- # Freigaben fuer LAN
- iptables -A FORWARD -i eth1 -o eth2 -p TCP --dport http -j ACCEPT
- iptables -A FORWARD -i eth1 -o eth2 -p TCP --dport https -j ACCEPT
- iptables -A FORWARD -i eth1 -o eth2 -p TCP --dport smtp -j ACCEPT
- iptables -A FORWARD -i eth1 -o eth2 -p TCP --dport pop3 -j ACCEPT
- iptables -A FORWARD -i eth1 -o eth2 -p TCP --dport imap -j ACCEPT
- iptables -A FORWARD -i eth1 -o eth2 -p UDP --dport domain -j ACCEPT
- iptables -A FORWARD -i eth1 -o eth2 -p ICMP --icmp-type echo-request -j ACCEPT
- iptables -A FORWARD -i eth2 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
- echo "Firewall wurde gestartet"
- ;;
- stop)
- iptables -P INPUT ACCEPT
- iptables -P OUTPUT ACCEPT
- iptables -P FORWARD ACCEPT
- iptables -F
- echo "Firewall wurde beendet"
- ;;
- restart)
- $0 stop
- $0 start
- ;;
- status)
- iptables -vL
- ;;
- *)
- echo "Usage: $0 [start|stop|restart|status]"
- ;;
- esac
- --------------------------
- Mailserver
- Mailserver auf Ubuntu 9.10 mit Hilfe von Postfix, Dovecot, Getmail.
- Zunächst eine kleine Übersicht:
- Um das Bild mal in einen alltäglichen Vorfall zu implementieren mal das folgende Beispiel:
- Jemand schickt euch eine E-Mail an eure Adresse. Diese landet auf dem Server eures Providers (ProviderPOP3). Getmail, welches auf unserem Server installiert ist fragt die Mail ab und transferiert sie vom Provider-Server auf den lokalen Server und schiebt sie in das Mail-Verzeichnis des zugehörigen Benutzers. Der Benutzer fragt nun mit seinem Mail-Client (Thunderbird, Evolution, Outlook etc.) beim lokalen Server nach ob neue Mails für ihn gekommen sind und Dovecot liefert ihm die eingegangene Mail entweder per POP3 oder IMAP aus. Nachdem der Benutzer die Mail gelesen hat, will darauf antworten. Nach dem Klick auf "Senden" im Mail-Client empfängt Postfix die Mail und leitet sie an den Server beim Provider weiter (Provider-SMTP) der die Mail dann an sein endgültiges Ziel bringt.
- Um nochmal kurz Klarheit zu schaffen: Dieser Server ist dazu gedacht zu Hause im Schrank zu stehen, Mails vom Provider zu holen und für den Benutzer aufzubewahren, mit dieser Konfiguration kann kein "richtiger" Mail-Server, zum Beispiel auf einem root- oder vServer, betrieben werden.
- Bevor es mit Installieren und Konfigurieren losgeht, müssen noch ein paar Dinge geklärt werden:
- 1. Die meisten Freemail-Anbieter erlauben es nicht E-Mails von beliebigen Adressen weiterzuleiten. Das heißt ich kann über GMX keine Mails verschicken, die den Absender zeroathome@freemailanbieter.de tragen. Da Strato solche Beschränkungen nicht hat, kann der Strato-Mailserver als Relay zu verwendet werden.
- 2. Ein Mailserver ist kein Spielzeug. Falsch konfiguriert kann er schnell als Spam-Schleuder enden. Also: Nachdenken und mit gesundem Menschenverstand handeln. Will sagen: Nicht gleich draufloshacken, sondern erst lesen und verstehen. Richtet diesen Mailserver erst einmal testweise ein und spielt ein wenig damit herum, bevor ihr ihn produktiv einsetzt.
- Aber nun zur Sache:
- Postfix
- Installieren:
- apt-get install postfix
- Die Fragen die hier gestellt werden können zunächst ignoriert werden, denn im nächsten Schritt folgt die initiale Konfiguration von Postfix mit:
- sudo dpkg-reconfigure postfix
- Die Fragen des Assistenten sollten folgender Maßen beantwortet werden:
- Allgemeine Art der Konfiguration Internet mit Smarthost
- System-Email-Name linux01.local (Der Hostname den ihr bei der Installation des Servers angegeben habt).
- SMTP-Relay-Host smtp.strato.de
- Empfänger von Root-E-Mails Euer admin-Benutzer
- Empfang für welche Domains linux01.local, localhost.localdomain, localhost
- Synchrone Aktualisierung... Nein
- Lokale Netze 127.0.0.0/8
- Maximale Postfachgröße nach Belieben, '0' für kein Limit
- Zeichen für lokale Adress... +
- Internet Protokolle ipv4
- Danach laufen einige Zeilen über den Bildschirm und Postfix ist "initialisiert".
- Die detaillierte Konfiguration erfordert etwas mehr Handarbeit und beginnt mit der Einrichtung der Authentifizierung am Server. Diese ist nötig, damit nur Mails verschickt werden können, wenn man sich mit Benutzernamen und Passwort anmeldet.
- Zur Konfiguration wird das Programm 'postconf' verwendet, dieses trägt die Änderungen direkt in die Datei '/etc/postfix/main.cf' ein.
- postconf -e 'smtpd_sasl_type = dovecot'
- postconf -e 'smtpd_sasl_path = private/auth-client'
- postconf -e 'smtpd_sasl_local_domain ='
- postconf -e 'smtpd_sasl_security_options = noanonymous'
- postconf -e 'broken_sasl_auth_clients = yes'
- postconf -e 'smtpd_sasl_auth_enable = yes'
- postconf -e 'smtpd_recipient_restrictions =
- permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
- postconf -e 'inet_interfaces = all'
- Da wir hier Dovecot verwenden um die Authentifizierung zu erledigen, schieben wir hier eine kurze Dovecot-Konfigurations-Session ein:
- Zuerst installieren:
- apt-get install dovecot-common
- Anschließend muss in der Datei '/etc/dovecot/dovecot.conf' die Umgebung 'socket listen' gesucht werden und sollte nach dem Editieren so aussehen:
- socket listen {
- #master {
- # Master socket provides access to userdb information. It's typically
- # used to give Dovecot's local delivery agent access to userdb so it
- # can find mailbox locations.
- #path = /var/run/dovecot/auth-master
- #mode = 0600
- # Default user/group is the one who started dovecot-auth (root)
- #user =
- #group =
- #}
- client {
- # The client socket is generally safe to export to everyone. Typical use
- # is to export it to your SMTP server so it can do SMTP AUTH lookups
- # using it.
- path = /var/spool/postfix/private/auth-client
- mode = 0660
- user = postfix
- group = postfix
- }
- }
- Hier bitte darauf achten, dass die richtigen Kommentarzeichen vor den richtigen Klammern entfernt werden, ist ein wenig unübersichtlich das ganze.
- Dann wird dovecot kurz neu gestartet und mit der Postfix-Konfiguration fortgefahren:
- /etc/init.d/dovecot restart
- Um verschlüsselt mit Postfix kommunizieren zu können, was sich in Zeiten gemeinsam genutzter schnurloser Netzwerke durchaus aufdrängt, muss ein Zertifikat erstellt werden. Dieses Zertifikat wird höchstwahrscheinlich vom E-Mail Client bemängelt werden, da es nicht von einer der offiziellen Stelle authorisiert wurde, aber für den privaten Zweck reicht ein selbst erstelltes Zertifikat allemal aus.
- Beim ersten Schritt wird nach einem Passwort gefragt. Hier sollte ein ausreichend starkes Passwort gewählt werden (test123). In einigen der weiteren Schritte werden Informationen abgefragt, die im Zertifikat gespeichert werden. Wie wahrheitsgemäß diese Fragen beantwortet werden bleibt euch überlassen, lediglich die Frage nach dem 'Common Name' sollte mit dem Namen des Servers aus der initialen Postfix-Konfiguration (hier linux01.local) beantwortet werden.
- openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024
- chmod 600 smtpd.key
- openssl req -new -key smtpd.key -out smtpd.csr
- sudo openssl x509 -req -days 365 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
- openssl rsa -in smtpd.key -out smtpd.key.unencrypted
- mv -f smtpd.key.unencrypted smtpd.key
- openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650
- mv smtpd.key /etc/ssl/private/
- mv smtpd.crt /etc/ssl/certs/
- mv cakey.pem /etc/ssl/private/
- mv cacert.pem /etc/ssl/certs/
- Um die Verschlüsselung zu aktivieren noch einmal eine Runde mit postconf:
- postconf -e 'smtpd_tls_auth_only = no'
- postconf -e 'smtp_use_tls = yes'
- postconf -e 'smtpd_use_tls = yes'
- postconf -e 'smtp_tls_note_starttls_offer = yes'
- postconf -e 'smtpd_tls_key_file = /etc/ssl/private/smtpd.key'
- postconf -e 'smtpd_tls_cert_file = /etc/ssl/certs/smtpd.crt'
- postconf -e 'smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem'
- postconf -e 'smtpd_tls_loglevel = 1'
- postconf -e 'smtpd_tls_received_header = yes'
- postconf -e 'smtpd_tls_session_cache_timeout = 3600s'
- postconf -e 'tls_random_source = dev:/dev/urandom'
- postconf -e 'myhostname = server.local.home'
- Die nächste Zeile ist nötig wenn doch innerhalb des Servers Nachrichten verschickt werden. Zum Beispiel an 'benutzer@localhost'. Sie sorgt dafür, dass die Nachricht an Dovecot übergeben wird, welcher dann für die richtige Einordnung der Mail in die Mailbox des jeweiligen Benutzers zuständig ist.
- postconf -e 'mailbox_command = /usr/lib/dovecot/deliver'
- Zum Schluß fehlt noch die Verbindung zum Relay-SMTP-Server beim Provider, ohne den unsere Mails nich zugestellt würden:
- postconf -e 'smtp_sasl_auth_enable = yes'
- postconf -e 'smtp_sasl_password_maps = hash:/etc/postfix/smtp_auth'
- postconf -e 'smtp_sasl_security_options = noanonymous'
- postconf -e 'relayhost = smtp.strato.de'
- Wie in Zeile 2 zu sehen muss nun noch die Datei '/etc/postfix/smtp_auth' angelegt werden:
- vim /etc/postfix/smtp_auth
- In dieser Datei muss für den Provider-SMTP-Server der Benutzername und das Passwort angegeben werden mit dem man sich dort anmelden kann:
- smtp.strato.de schule@plohnke.de:schule123
- Danach kann die Datei gespeichert werden und mit dem Befehl
- postmap /etc/postfix/smtp_auth
- für Postfix lesbar gemacht werden.
- Zu guter Letzt wird postfix neu gestartet:
- /etc/init.d/postfix restart
- Dovecot
- Zunächst muss Dovecot natürlich installiert werden:
- apt-get install dovecot-imapd dovecot-pop3d
- Dann gehts direkt zur Konfiguration in der Datei '/etc/dovecot/dovecot.conf'. Da die Datei relativ viel Konfigurationsmöglichkeiten enthält ist es am einfachsten die Suchfunktion eures favorisierten Editors zu nutzen um die betreffenden Zeilen zu finden:
- Hier wird Dovecot gesagt welche Dienste er bereitstellen soll. Einer sollte mindestens drinstehen, wers nur verschlüsselt machen möchte läßt die beiden ohne 's' am Ende einfach weg:
- protocols = imap imaps pop3 pop3s (ca. Zeile 35)
- Um die Verschlüsselung zu aktivieren sind diese Zeilen nötig (hier gilt das gleiche wie für das Postfix-Zertifikat):
- ssl_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem (ca. Zeile 110)
- ssl_key_file = /etc/ssl/private/ssl-cert-snakeoil.key (ca. Zeile 111)
- ssl_disable = no (ca. Zeile 105)
- disable_plaintext_auth = no (ca. Zeile 63)
- Diese Zeile legt fest wo die Mails hingeliefert werden. In diesem Beispiel landen die Mails im Home-Verzeichnis des jeweiligen Benutzers. Genauer in einem Unterverzeichnis namens 'mail'. Der Pfad kann natürlich beliebig angepasst werden, aber die Mails im Home-Verzeichnis abzulegen ist wohl das Sinnvollste.
- mail_location = maildir:~/mail (ca. Zeile 233)
- Während der Konfiguration von Postfix hatten wir den Fall, das wenn eine Mail lokal (z.B. an hm@localhost) geschickt wird, diese von Postfix an Dovecot weitergegeben wird, damit Dovecot diese Mails auc ::h entgegen nimmt muss die Umgebung 'protocol lda' angepaßt werden:
- protocol lda { (ca. Zeile 716)
- auth_socket_path = /var/run/dovecot/auth-master
- postmaster_address = root@localhost
- }
- Das waren bereits die nötigen Schritte für Dovecot, und wenn beim Neustart keine Fehler ausgegeben werden, sollten die Clients auch auf den Server zugreifen können:
- /etc/init.d/dovecot restart
- Getmail
- Installation:
- apt-get install getmail4
- Konfiguration:
- Es muss für jeden Benutzer im Home-Verzeichnis ein neuer Ordner erstellt werden, der '.getmail' heißt, also versteckt ist. In diesem wird dann die eigentliche Konfigurationsdatei 'getmailrc'.
- Um die Post per POP3 abzuholen, sollten die Dateien wie folgt aufgebaut sein:
- [retriever]
- type = SimplePOP3Retriever
- server = pop3.strato.de
- username = schule@plohnke.de
- password = schule123
- [destination]
- type = Maildir
- path = /home/hm/mail/
- user = hm
- [options]
- delete = true
- message_log = /home/hm/.getmail/log
- Das sorgt dafür, dass die Mails vom Provider abgeholt, in die entsprechenden Benutzer-Verzeichnisse verschoben, und anschließend beim Provider gelöscht werden. Der ganze Vorgang wird pro Benutzer in die Datei '/home/benutzer/.getmail/log' gelogt, falls es also Probleme gibt lohnt ein Blick hierhinein.
- Da die Datei das Passwort des jeweiligen Benutzers enthält sollte auch nur dieser Zugriff auf die Datei haben:
- mkdir /home/hm/.getmail
- chown hm:hm /home/hm/.getmail
- chown hm:hm /home/hm/.getmail/getmailrc
- chmod 600 /home/hm/.getmail/getmailrc
- Um die Post von allen Benutzern abzuholen, kann ein kleines Skript erstellt und in die crontab eingetragen werden:
- Skript getthemail.sh:
- #!/bin/bash
- for getfile in $( find /home -name getmailrc -print )
- do
- #echo $getfile
- /usr/bin/getmail --rcfile $getfile
- done
- exit 0
- Dieses ausführbar machen und kopieren nach '/usr/local/bin':
- chmod +x getthemail.sh
- cp getthemail.sh /usr/local/bin
- crontab -e
- */2 * * * * /usr/local/bin/getthemail.sh
- Das sorgt dafür das E-Mails alle 2 Minuten abgeholt und auf die Benutzer verteilt werden.
- Ende
- Wenn nichts schief gelaufen ist, solltet ihr jetzt einen funktionierenden Mail-Server haben. Falls es Probleme gibt, oder irgend etwas nicht so funktioniert wie ihr denkt das es sollte, checkt zuerst die Logs unter '/var/log/mail.*'. Dort finden sich zumeist die einschlägigen Fehlerquellen und lassen sich zumeist relativ einfach beheben.
- .
- Nachdem die Grundkonfiguration des Mailservers abgeschlossen ist, gibt es zwei Extras, die nicht fehlen sollten. Und zwar Spam- und Virusfilter. Ersteres wird bei uns Spamassassin erledigen, die Viren überlassen wir dem freien Virenscanner ClamAV.
- Erst natürlich die benötigte Software installieren:
- apt-get install spamassassin spamc clamav clamav-daemon mutt cpio arj zoo nomarch lzop cabextract pax unrar lha
- Wie ihr seht werden auch einige Packer/Entpacker mit installiert, damit ClamAV auch zum Beispiel zip-Archive prüfen kann.
- Spamassassin einrichten
- Dazu bearbeiten wir die Datei '/etc/spamassassin/local.cf' wiefolgt:
- rewrite_header Subject ***SPAM***
- Wenn diese Zeile aktiv ist wird in jeder Spam-Mail '***SPAM***' am Ende der Betreffzeile angehängt.
- Diese Zeile bestimmt ab welchem Wert Mails als Spam markiert werden:
- required_score 6.31
- Ebenfalls de-kommentieren und den Wert entsprechend ändern. Falls zu viel Spam durchkommt sollte dieser Wert gegebenenfalls nach unten korrigiert werden, bzw. anders herum wenn zu viele reguläre Mails das Spam-Tag erhalten.
- Diese beiden Zeilen sorgen dafür das der Bayessche Filter zum erkennen von Spam benutzt wird und dieser automatisch trainiert wird:
- use_bayes 1
- bayes_auto_learn 1
- Um unseren Bayes-Filter nicht durch Header zu verwirren, die von anderen Mailservern (z.B. dem des Providers) oder unserem getmail angefügt wurden, werden diese durch die folgenden Zeilen ignoriert:
- bayes_ignore_header X-Bogosity
- bayes_ignore_header X-Spam-Flag
- bayes_ignore_header X-Spam-Status
- bayes_ignore_header X-getmail-filter-classifier
- Danach muss Spamassassin noch aktiviert werden, dazu wird in der Datei '/etc/default/spamassassin', die Zeile "ENABLED=0" in "ENABLED=1" umgeschrieben.
- Dann kann Spamassassin gestartet werden:
- /etc/init.d/spamassassin start
- Jetzt müssen wir nur noch getmail sagen, dass es Spamassassin die Mails zur Prüfung geben soll. Dazu fügen wir folgenden Absatz in die 'getmailrc' des jeweiligen Benutzers ein:
- [filter-spamassassin]
- type = Filter_external
- path = /usr/bin/spamc
- arguments = ("--max-size=100000", )
- Beim nächsten Aufruf von getmail sollte dieses die empfangenen Mails durch Spamassassin checken lassen. Prüfen kann man das wiefolgt:
- Mail an die entsprechende Mail-Adresse schicken, dann getmail als Benutzer (nicht als root) aufrufen:
- getmail
- Dann den Posteingang checken:
- mutt -f /home/benutzer/mail
- Dort sollte dann eine E-Mail liegen, die mit Enter aufgerufen wird. Im oberen Bereich sollten dann Zeilen ähnlich dieser gefunden werden:
- X-Spam-Checker-Version: SpamAssassin 3.2.4 (2008-01-01) on server
- Dann wurde alles richtig gemacht, ansonsten noch einmal alle Einstellungen checken, bzw das getmail-Log unter '/home/benutzer/.getmail/log'.
- ClamAV einrichten
- Da wir ClamAV oben schon mit installiert haben und er von sich aus schon eingerichtet ist, muss nur der folgende Abschnitt in die getmailrc des jeweiligen Benutzers eingefügt werden:
- [filter-clamav]
- type = Filter_classifier
- path = /usr/bin/clamdscan
- arguments = ("--stdout", "--no-summary", "-")
- exitcodes_drop = (1, )
- Damit werden Mails die Viren enthalten automatisch verworfen. Falls das nicht gewünscht ist und die Mails trotzdem zugestellt werden sollen (was ich nicht unbedingt empfehlen würde), muss die letzte Zeile so lauten:
- exitcodes_keep = (0,1)
- Damit wäre auch diese Einrichtung geschehen und es kann spam- und virenfrei gemailt werden.
- Um die Mails in eurem Mail-Programm automatisch in den Spam-Ordner werfen zu lassen, müsst ihr dort einstellen das die Header von Spamassassin benutzt werden sollen. Wie das geht findet ihr in der Dokumentation eures jeweiligen Mailprogrammes.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement