====== Karl und Karlchen ======
Seit Juni 2011 betreibt die Computer-AG zwei verschiedene Server: Einmal Karl als Infrastrukturserver, bei dem es vor allem auf Stabilität und Zuverlässigkeit ankommt und Karlchen als Bastelkiste. In der folgenden Beschreibung geht es meistens um Karlchen.
Auf dieser Seite und auch auf den Unterseiten zu Karl und Karlchen sind keine Benutzernamen zu nennen und deswegen auch nicht zu finden!
===== Basisconfig =====
Karls Inhalt von /etc/network/interfaces
auto eth0
iface eth0 inet static
address 141.10.58.147
netmask 255.255.255.248
network 141.10.58.144
broadcast 141.10.58.151
gateway 141.10.58.145
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 129.143.2.4
dns-search kvfg.info
Karlchens Inhalt von /etc/network/interfaces
auto eth0
iface eth0 inet static
address 141.10.58.148
netmask 255.255.255.248
network 141.10.58.144
broadcast 141.10.58.151
gateway 141.10.58.145
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 129.143.2.4
dns-search kvfg.info
Inhalt von /etc/resolv.conf
search kvfg.info
nameserver 129.143.2.4
/etc/hosts angepasst:
127.0.0.1 localhost
# bei Karl
141.10.58.147 www.kvfg.info www karl
# bei Karlchen
141.10.58.148 karlchen.kvfg.info karlchen
.bashrc angepasst und nach /etc/skel geschrieben:
# ~/.bashrc: executed by bash(1) for non-login shells.
export PS1='\u@\h:\w\$ '
umask 022
# You may uncomment the following lines if you want `ls' to be colorized:
# export LS_OPTIONS='--color=auto'
# eval "`dircolors`"
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -l'
alias l='ls $LS_OPTIONS -lA'
alias la='ls -la'
# Some more alias to avoid making mistakes:
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias ..='cd ..'
alias ...='cd ../..'
Wie wir feststellen mussten, hat sich ein echo und ein who in der .bashrc dahingehend ausgewirkt, dass per scp keine Dateiübertragungen auf den Server mehr stattfinden konnten. Die Einträge wurden demnach wieder entfernt.
/etc/default/useradd angepasst:
SHELL=/bin/bash
Testweise neuen Nutzer hinzugefügt und diesem ein Passwort verpasst:
useradd -m neuerbenutzer
passwd neuerbenutzer
===== Sicherheit =====
==== sudo ====
Unter **Debian** sudo Umgebung installiert:
apt-get install sudo
/etc/sudoers mit
visudo
(visudo ruft nen nano auf und führt Syntaxchecks durch) angepasst und für unseren normalen Benutzer konfiguriert. Dieser hat nun sudo Rechte!
Unter **Debian**:
sudo adduser unserbenutzer sudo
Unter **Ubuntu** ist das sudo System von Haus aus aktiv und muss nicht extra installiert werden. Hier reicht es demnach neue Benutzer der Gruppe admin hinzuzufügen:
sudo adduser benutzername admin
==== SSH umstellen auf publickey ====
Im ersten Schritt wird die /etc/ssh/sshd_config
angepasst:
Port 2222
PermitRootLogin no
X11Forwarding no
PrintMotd no
ChallangeResponseAuthentication no
PasswordAuthentication no
und dann der SSH neu gestartet:
/etc/init.d/ssh restart
Auf dem lokalen Rechner dann mit dem folgenden Befehl ein Keypaar für den Benutzer "benutzer" erstellen und den Schlüssel mit einem **Kennwort** sichern, sollte dieser Schlüssel verloren gehen:
ssh-keygen -f /home/benutzer/.ssh/benutzer-karlchen
Den public key mit Hilfe von scp auf den Server übertragen und in dessen Server-Schlüsselbund übernehmen:
scp /home/benutzer/.ssh/benutzer-karlchen.pub benutzer@karlchen.domain:/home/benutzer
Weiter geht es auf dem Server im Home des entsprechenden Benutzers mit:
cat benutzer-karlchen.pub >> /home/benutzer/.ssh/authorized_keys
Während der ganzen Prozedur auf jeden Fall eine Shell zum Server offenhalten, damit man sich nicht aus Versehen selbst aussperrt.
Zu erreichen ist das System nun über:
ssh benutzer@kvfg.info -p 2222 -i /home/benutzer/.ssh/benutzer-karlchen
Wer keinen Schlüssel hat und sich über SSH verbindet erhält die Meldung
Permission denied (publickey).
Jeder Benutzer auf Karlchen hat bei ausreichender Kenntnis sudo Rechte. Der Gebrauch dieser sudo Rechte wird gespeichert in:
/var/log/auth.log
Anmeldeversuche von root tauchen wie folgt auf:
sshd[3074]: Failed password for root from
==== fail2ban ====
Jetzt noch ein zusätzlicher Ausflug für die Sicherheit. Für **Debian**:
apt-get install fail2ban mailx
Unter **Ubuntu**:
apt-get install fail2ban mailutils
Das vorhandene Jail wird nun kopiert und dann angepasst.
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Anpassungen vorgenommen in:
/etc/fail2ban/jail.local
Aktiviert wurden die Jails für die genutzten Dienste - also unter anderem:
* SSH
* SASL
Außerdem wurde eine IP Adresse eingerichtet, die nicht gesperrt werden kann. Welche das ist, wird hier nicht verplappert.
Dann wurde der Dienst neu gestartet:
/etc/init.d/fail2ban restart
===== Weitere Schritte =====
Weiter: [[sonstiges:archiv:computer:karlchen:mailserver|Mailserver]]
für das Setup eines eher traditionellen **LAMP** Systems.
Weiter: [[sonstiges:archiv:computer:karlchen:kolab|Kolab]]
für das Setup eines **Kolab**servers auf Debian Etch.
Weiter: [[sonstiges:archiv:computer:karlchen:svn|Subversion]]
für das Setup eines **SVN**servers auf Karlchen.