Debian Server: Unterschied zwischen den Versionen
Sysd0b (Diskussion | Beiträge) |
Sysd0b (Diskussion | Beiträge) |
||
Zeile 122: | Zeile 122: | ||
</pre> | </pre> | ||
+ | * [http://www.postfix-howto.de/konfiguration/postfix.htm Postfix Konfiguration] | ||
=== Qmail === | === Qmail === |
Version vom 27. Oktober 2011, 19:41 Uhr
Ist schon etwas älter die Seite, von daher nicht wundern wenn da noch von etch hin und wieder die rede ist.
Inhaltsverzeichnis
Grundlagen
Debian Version ermitteln
cat /etc/debian_version cat /proc/version uname -r
Sources.lst
In der Sources.lst tragen wir Quellen für Debian Pakete ein.
nano /etc/apt/sources.lst
Hilfreiche Links zu dem Thema:
- apt-get.org - Nach Debian Paket Sources suchen
- dotdeb.org - Repository für Debian-basierende LAMP Server
- Debian Etch Sources (Archiv) - Danke an Huschi für diesen Artikel!
Hostname ändern
Mit root rechten folgenden Befehl ausführen:
hostname = neuerhostname
Überprüfen ob der alte hostname noch im System rumschwirrt
grep -R /etc/ -e "<hostname>"
Headerfiles installieren
aptitude install linux-headers-`uname -r`
Backup
MYSQL
Backup erstellen
mysqldump --user=<username> --password=<passwort> <database> > `date -I`-<backupname>.backup
Backup zurückspielen
mysql --user=<username> --password=<passwort> --database=<database> < [yyyy-mm-dd]-<backupname>.backup
Sollte jedoch nicht in der Form als Skript benutzt werden, denn solange der prozess läuft sehen alle user das passwort im process table ;)
Sicherheit
Eigentlich steht das Grundlegende alles schon hier ;-)
Ein paar links dazu
- Chkrootkit - Rootkitchecker / Intrusion Detection
- Tripwire - Rootkitchecker / Intrusion Detection
- Fail2ban - Ban by Logfile
Fail2ban
Alle IPtable Einträge zeigen
/sbin/iptables --list
Eintrag 1 in der "fail2ban-ssh" Kette löschen
/sbin/iptables --delete fail2ban-SSH 1
Dienste
MYSQL
PW reset
Bei folgenden Befehlen dran denken, dass der MYSQL Chef in alten versionen "admin" heißt, nicht "root" ;)
Wir stoppen erstmal Mysql
/etc/init.d/mysql stop
Mysql im Hintergrund starten im safe mode (Ohne PW)
/usr/bin/mysqld_safe --skip-grant-tables &
Jetzt loggen wir uns ohne PW ein!
mysql --user=root mysql
Jetzt befinden wir uns im mysql prompt und setzen uns ein neues PW.
mysql> update user set Password=PASSWORD(''''neues_pw'''') WHERE User='root'; mysql> flush privileges; mysql> exit;
Jetzt nur noch mit "ps x" in der shell mysql_safe raussuchen und beenden und den mysql Dienst normal starten. Fertig.
ps x kill mysql_safe-process-id /etc/init.d/mysqld start
Postfix
Folgende Zeilen sollen bewirken das unser Postfix nicht als Open Relay dient.
# Erweiterung smtpd_helo_required = yes smtpd_delay_reject = no disable_vrfy_command = yes smtpd_helo_restrictions = permit_mynetworks, reject_invalid_hostname, reject_unknown_hostname, reject_non_fqdn_hostname
Jetzt nur noch Postfix neustarten
/etc/init.d/postfix restart
Qmail
Spamdyke (greylisting)
Iptables
Aktuellen Regelsatz speichern, vorher sollte natürlich einer erstellt werden ;)
mkdir /var/lib/iptables iptables-save > /var/lib/iptables/rules
Startskript erstellen
/bin/sh iptables-restore < /var/lib/iptables/rules
und im einen runlevel verlinken
cd /etc/rc2.d ln -s ../init.d/iptables S99iptables
Performance
inetd > xinetd
Installation von xinetd
Hier eine Kurzanleitung für den Umstieg von Inetd auf Xinetd.
Erstmal auf Updates checken und dann holen wir uns Pakete.
aptitude update aptitude install xinetd
Mit folgendem script erzeugen wir nach der erfolgreichen xinetd Installation, eine zum System passende xinetd.conf und speichern diese in einen temporären Verzeichnis.
/usr/sbin/xconv.pl < /etc/inetd.conf > /tmp/xinetd.conf
Jetzt erzeugen wir Backups von der inetd.conf und der der Standard xinetd.conf, dann können wir die im /tmp/ erzeugte xinetd.conf nach /etc/ verschieben.
mv /etc/inetd.conf /etc/inetd.conf.bak mv /etc/xinetd.conf /etc/xinetd.conf.bak mv /tmp/xinetd.conf /etc/xinetd.conf
xinetd neu starten um die Änderungen zu übernehmen und anschliessen kurz checken ob alles läuft.
/etc/init.d/xinetd restart ps ax | grep xinetd
Eine 2.Shell öffnen und darin die neu erzeugte xinetd.conf öffnen, um dessen Inhalte gleich in mehrere Dateien zu stückeln.
nano /tmp/xinetd.conf
Zurück in der 1.Sell erzeugen wir nun folgende Dateien und füttern diese mit Info`s aus der geöffneten xinetd.con, welche wir im Schritt zuvor in der 2.Shell geöffnet haben.
In der xinetd.conf bleibt nur der Block "defaults" bestehen, für die anderen erzeugen wir neue Dateien in dem bereits vorhandenen Unterverzeichniss "/etc/xinetd.d/*"
smtp_psa erzeugen:
nano /etc/xinetd.d/smtp_psa
mit dem entsprechenden infos aus der xinetd.conf füllen:
service smtp { socket_type = stream protocol = tcp wait = no disable = no user = root instances = UNLIMITED server = /var/qmail/bin/tcp-env server_args = -Rt0 /var/qmail/bin/relaylock /var/qmail/bin/qmail-smtpd /var/qmail/bin/smtp_auth /var/qmail/bin/true /var/qmail/bin/cmd5checkpw /var/qmail/bin/true }
genauso geht es auch mit den anderen Blöcken
nano /etc/xinetd.d/smtps_psa
service smtps { socket_type = stream protocol = tcp wait = no disable = no user = root instances = UNLIMITED server = /var/qmail/bin/tcp-env server_args = -Rt0 /var/qmail/bin/relaylock /var/qmail/bin/qmail-smtpd /var/qmail/bin/smtp_auth /var/qmail/bin/true /var/qmail/bin/cmd5checkpw /var/qmail/bin/true }
nano /etc/xinetd.d/ftp_psa
service ftp { socket_type = stream protocol = tcp wait = no user = root server = in.proftpd }
nano /etc/xinetd.d/poppassd_psa
service poppassd { socket_type = stream protocol = tcp wait = no user = root server = /opt/psa/admin/bin/poppassd }
Und in etwa so sollte die xinetd.conf danach aussehen:
# Simple configuration file for xinetd # # Some defaults, and include /etc/xinetd.d/ defaults { #The maximum number of requests a particular service may handle # at once. instances = 25 # The type of logging. This logs to a file that is specified. # Another option is: SYSLOG syslog_facility [syslog_level] log_type = FILE /var/log/servicelog # What to log when the connection succeeds. # PID logs the pid of the server processing the request. # HOST logs the remote host's ip address. # USERID logs the remote user (using RFC 1413) # EXIT logs the exit status of the server. # DURATION logs the duration of the session. log_on_success = HOST EXIT DURATION # What to log when the connection fails. Same options as above log_on_failure = HOST ATTEMPT # The maximum number of connections a specific IP address can # have to a specific service. per_source = 5 } includedir /etc/xinetd.d
Nochmal Prüfen ;-)
/etc/init.d/xinetd restart ps -x | grep xinetd
Troubleshooting
Plesk
- Admin ausgesperrt (Zuviele Loginversuche)
mysql -uadmin -p`cat /etc/psa/.psa.shadow` psa -e"DELETE from lockout"
- Admin ausgesperrt (Login begrenzung auf 1 gesetzt)
mysql> UPDATE misc SET val = 'true' WHERE param = 'multiply_login';
Logfiles prüfen
Wenn nach der Installation irgendetwas nicht funktioniert, führt euch der erste Weg nach /var/log/. Hier ein paar Ansätze
less /var/log/syslog | grep xinetd ps ax | grep xinetd
Mail Server testen via Telnet
Manueller Telnet Test via Shell
1. Shell / Terminal / Eingabeaufforderung öffnen und folgendes eingeben:
telnet localhost 25
Ausgabe: 220 (Der Mail-Horst identifiziert und meldet sich)
2. Hier steht domain.tld für die eigene Domain.
HELO domain.tld
Ausgabe: 250 Servername
3. Eigene E-Mail-Adresse angeben, mit spitzen klammern!
MAIL FROM:<e-mail-adresse@domain.tld>
Ausgabe: 250 OK
4. Empfänger E-Mail-Adresse angeben, auch wieder mit spitzen klammern!
RCPT TO:<postmaster@synserver.de>
Ausgabe: 250 OK
5. Folgendes eingeben:
DATA
Ausgabe: 354 GO AHEAD
6. Nochmal eigene E-Mail-Adresse angeben, nicht vergessen mit spitzen klammern!
FROM:<e-mail-adresse@domain.tld>
7. Test Nachricht eingeben und dann mit folgenden Befehlen abschließen
"Enter" . "Enter"
Ausgabe: 250 OK