Ich verwende zuhause als Router einen Rechner mit FreeBSD, aktuell eine 8.0 Version, dieser tut seit etlilchen Jahren seinen Dienst klaglos. Jetzt will ich mich (wieder) etwas mit IPv6 beschäftigen und habe daher einen Tunnel bei SixXS beantragt.
Freitag, 18. Juni 2010
IPv6 Tunnel über Aiccu - Nicht so einfach wie gedacht
Dienstag, 8. Dezember 2009
Neue Webseite
Meine bisherige Webseite ist etwas in die Jahre gekommen und wurde auch von mir nicht mehr richtig gepflegt. Daher habe ich mich entschlossen eine neue Seite zu machen und etwas mit der Zeit zu gehen und ein Blog zu eröffnen.
Die Artikel der bisherigen Seite habe ich übernommen und können so auch hier gefunden werden. Ich hoffe euch gefällt die neue Seite.
Montag, 15. Mai 2006
Lästige Hack versuche über SSH
Wer einen Server mit SSH im Internet stehen hat, kennt das Problem. Massenhafte versuche sich mit Dictionary Attacks zugriff auf den Server zu verschaffen. Das Problem ist, das das nicht nur gefährlich ist, sondern auch CPU und Bandbreite kostet
Doch was kann man dagegen tun?
Am einfachsten wäre den SSH Port von 22 auf einen anderen, unüblichen Port zu verlegen. Hat man aber Kunden mit auf dem Server die auch SSH nutzen ist das keine elegante Lösung. Bleibt noch die IP zu sperren wenn zu viele Fehlversuche von dieser IP kommen.
Berücksichtigen sollte man noch das User die nur etwas oft Ihr Passwort falsch eingeben natürlich nicht dauerhaft ausgesperrt werden sollten. Das Script das ich nun hierfür verwende ist nicht von mir, sondern nur von mir angepasst worden. Leider weis ich aber nicht mehr wo ich es mal her hatte
Das Script nutzt "ipfw" um IPs die zu viele Fehlversuche machen auszusperren. Dabei wird für falsche Passwörter die Regel Nr. 20000 verwendet und für falsche User 20101 bis 21231.
Hier das Script (es liegt auch in der Downloadsektion):
#!/bin/shif /sbin/ipfw show | awk '{print $1}' | grep -q 20000 ; then
/sbin/ipfw delete 20000
fi
for ips in `cat /var/log/auth.log | grep sshd | grep "Invalid" | awk '{print $10}' | uniq -d` ; do
if ! /sbin/ipfw show | grep -q $ips ; then
/sbin/ipfw -q add `date "+2%m%d"` deny tcp from $ips to any 22
fi
done
cat /var/log/auth.log | grep sshd | grep "Failed" | rev | cut -d\ -f 4 | rev | sort | uniq -c | \
( while read num ips; do
if [ $num -gt 5 ]; then
if ! /sbin/ipfw show | grep -q $ips ; then
/sbin/ipfw -q add 20000 deny tcp from $ips to any 22
fi
fi
done
)
Das Script liegt bei mir unter /root/bin/ als sshd-fwscan.sh und wird über cron alle 2 Minuten ausgeführt. IPs die falsche User versuchen werden Dauerhaft gesperrt, falsche Passwörter werden nach einem Turnover des Logs wieder Freigeschalten. Was noch fehlt ist eine Whiteliste von IPs die nie gesperrt werden sollen. Das kann man aber u.a. auch dadurch lösen das man diese IPs mit einem allow und einer Regelnummer kleiner 20000 im ipfw einträgt lösen. Das Script entlastet den sshd merklich bei grossen Scans.
Ich hoffe euch wieder etwas geholfen zu haben. Über Anregungen und Kritik zu den Artikeln freue ich mich immer.
Donnerstag, 3. Juni 2004
Ein User hinter Gittern
Nicht immer ist man davon überzeugt das es klug ist ein Programm auf seinem Server zu installieren. Oft genug weis man um die Schwachstellen der Programme, kann sie aber nicht umgehen. Unter BSD gib es für solche fälle ein System womit man User hinter virtuellen Gittern wegsperren kann. Das jail genannte System ist der Mittelweg zwischen einem Virtuellen PC und einer chroot Umgebung. Eine jail kann ein einzelnes Programm oder ein ganzes System beinhalten. Ich werde hier nur auf den Fall des ganzen Systems eingehen, abspecken kann man das ganze dann ja relativ einfach über Try und Error
Ich gehe hier von folgendem Grundsystem aus:
- lauffähiges FreeBSD 5.2.1
- Ports und Systemsourcen sind installiert
- Mehrere IP Adressen sind auf dem System Konfiguriert
- mindestens eine IP Adresse wird nicht von anderen Diensten verwendet
Was soll erreicht werden ? (Szenario)
Ein virtuelles System mit einem eigenem root Zugang, so das ein Kunde "sein" System selbst konfigurieren kann, aber nicht das Hauptsystem kompromittiert. Der Kunde installiert dann z.b. einen IRC Bouncer in die jail. Außer dem IRC Bouncer und einem SSH Zugang soll das System zunächst keine weiteren Netzwerk Dienste anbieten.
Die man Page von jail beschreibt das installieren und Starten einer jail sehr gut, so das sich das lesen der man Page auf jeden Fall lohnt. Das Script aus der man Page zum anlegen einer jail habe ich ein wenig abgeändert (make_jail.sh):
#!/bin/shD=/usr/home/jail/$1
cd /usr/src
mkdir -p $D
make world DESTDIR=$D
cd etc
make distribution DESTDIR=$D
cd $D
ln -sf dev/null kernel
Das Script wird mit dem Parameter für den Namen der Jail gestartet und legt die jail komplett an.
Z.B. "./make_jail.sh IRC"
Ich lasse die jails alle in dem Verzeichnis /usr/home/jail erstellen. Das kann aber beliebig geändert werden, je nach gefallen. Es sollte nur genügend Platz auf dem Laufwerk für die jail sein. Ein leeres jail belegt ca. 135 MB Speicher. Ja nach dem was man alles in die jail reinpackt, kann das aber sehr schnell auch ein paar GB erreichen.
Da ein komplettes System installiert wird muss natürlich auch eine komplette Konfiguration für die jail gemacht werden. Eine jail wie diese durchläuft den ganz normalen Boot Prozess und braucht daher auch die entsprechenden Scripte. Die Konfiguration der jail wird in 3 Schritten erfolgen. Den ersten Teil davon machen wir während die jail noch nicht gestartet ist, die zwei anderen wenn die jail läuft. Zuerst aber die "Grundlegenden" dinge. Innerhalb des jail Verzeichnisses legen wir in dem Verzeichnis /etc eine rc.conf an, mit folgendem Inhalt:
rpcbind_enable="NO"
network_interfaces=""
sshd_enable="YES"
syslogd_flags="-ss"
Damit schalten wir Sendmail aus und SSH ein. Sollte im Hauptsystem SSH (noch) so konfiguriert sein, das der Daemon auf alle IP Adressen hört, so kann man in der jail in der Datei /etc/ssh/sshd_config mit dem Parameter "Port" den SSH Daemon in der jail auf einen anderen Port legen.
Um Fehlermeldungen zu vermeiden sollte man eine leere /etc/fstab Datei anlegen. Die Datei /etc/resolv.conf sollte auch so angepasst werden das eine Namensauflösung möglich ist. Die Zeitzone setzen wir indem wir in dem etc Verzeichnis der jail einen Link auf das entsprechende Zonefile anlegen.
Damit ist die Konfiguration außerhalb der jail erledigt. Den Rest machen wir innerhalb der jail. Zuerst starten wir die jail nur mit einer Shell, Booten sie aber noch nicht. Das Passiert mit der Befehlszeile :
- "/usr/home/jail/IRC" ist dabei das Verzeichnis in dem wir die jail angelegt haben.
- "IRCClient" ist der Hostname der jail
- "62.112.147.182" ist die IP die der jail zugeordnet ist.
In diesem Schritt legen wir zuerst einen User an, damit man sich per SSH anmelden kann. Ich nenne den User hier mal "kunde". Dem root User sollte man per passwd natürlich auch noch ein Passwort setzten
Widmen wir uns jetzt dem Starten der jail. Wie unter FreeBSD üblich wird das über die Datei /etc/rc.conf gesteuert. Für uner Beispiel fügen wir folgenden Code ein:
jail_enable="YES"jail_set_hostname_allow="NO"
jail_socket_unixiproute_only="YES"
jail_sysvipc_allow="NO"
jail_stop_jailer="NO"
jail_list="IRC"
jail_IRC_rootdir="/usr/home/jail/IRC"
jail_IRC_hostname="chat.waringer-atg.de"
jail_IRC_ip="62.112.147.182"
jail_IRC_exec="/bin/sh /etc/rc"
jail_IRC_devfs_enable="YES"
jail_IRC_devfs_ruleset="devfsrules_jail"
jail_IRC_fdescfs_enable="NO"
jail_IRC_procfs_enable="YES"
Im ersten Teil wird das jail System generell Eingeschalten und so Konfiguriert das eine Hohe Sicherheit gegeben ist. Die 4 Optionen nach jail_enable dienen dem absichern des jail Systems. Diese sollten nur dann umgestellt werden wenn es sein muss und man sich darüber Informiert hat was das für Auswirkungen hat. Der Eintrag jail_list ist die Liste der jail Systeme die beim Booten gestartet werden sollen. Ich habe die jail mit IRC benannt.
Der zweite Teil konfiguriert die jail IRC. Die meisten Einträge sind selbsterklärend. Etwas Erklärung bedarf es der devfs Einträge. Über das devfs können Programme auf die Hardware Geräte zugreifen, das dev steht für das Englische Wort Device und heißt Gerät, Baustein, etc. Das fs steht für Filesystem also Dateisystem. Nun wird über das devfs nicht nur "reale" Hardware angesprochen wie Festplatte und Monitor sondern auch Virtuelle wie das Berühmte /dev/null (der nie Vollwerdende Mülleimer) und auch die Virtuellen Monitore die für SSH verwendet werden (pty*) sind hier zu finden. Das devfs ist in einer jail also oft notwendig. Einen kompletten Zugriff auf die Festplatte möchte man aber ganz sicher nicht geben, sonst könnte man sich die Arbeit ja auch sparen. Daher schränkt man über den Eintrag jail_IRC_devfs_ruleset ein, was innerhalb der jail an Devices zu sehen ist. Die Rule "devfsrules_jail" ist vordefiniert und erlaubt nur unkritische Einträge. Sollte bedarf an mehr Devices bestehen sollte man sich per "man devfs" näher mit der Materie befassen.
Die jail ist nun soweit aufgesetzt das sie gestartet werden kann. Über das rc Script /etc/rc.d/jail kann man die jails starten und wieder stoppen. Damit fängt eigentlich der Kundenteil an. Das installieren der Programme die der Kunde braucht oder haben will. Am einfachsten setzt man innerhalb der Jail einen eigenen Porttree auf. Dann kann der Kunde die benötigten Programme selbst installieren.
Damit lasse ich es für dieses mal wieder enden. Ich hoffe das auch diesmal wieder das eine oder andere für euch dabei war.
Mittwoch, 19. Mai 2004
Uhrzeit des Servers Automatisch korrigieren lassen.
Das Problem ist alt bekannt. Die interne Uhr des Computers ist teilweise recht ungenau. Auf einem Server ist das dann auch ein umstand der zu viel Einfallsreichtum geführt hat. Die wie ich finde eleganteste Art das Problem zu beseitigen, ist sich die Zeit von einem "Zeitserver" im Internet zu holen. Solche Zeitserver werden von verschiedenen Organisationen angeboten, und bekommen Ihre Zeit wiederum meistens von einer Atomuhr.
FreeBSD bringt von haus aus alles mit was man braucht um die Uhrzeit mit einem Zeitserver zu synchronisieren. Verwendung findet hierbei das NTP Format. NTP wird über die Datei /etc/ntp.conf konfiguriert. In der Datei wird der Server über den die Zeit synchronisiert wird angegeben. Ich verwende schon länger ntp.xlink.net und hatte bisher nur gute Erfahrungen mit dem Server. Sind in einem Netzwerk mehrere Server zu synchronisieren, dann bietet es sich an einen eigenen Zeitserver aufzusetzen, damit man den Zeitserver von xlink nicht über gebühr beansprucht. Hier meine ntp.conf Datei :
server ntp.xlink.netdriftfile /var/db/ntp.drift
Vor dem einrichten des Dienstes sollte man die interne Uhr "manuell" stellen, da der NTP Client normalerweise keine Änderungen größer 1000 Sekunden macht. Dies macht man mit folgendem Kommando:
/usr/sbin/ntpd -g -qMan sollte es aber nicht eilig haben. Es kann schon etwas dauern bis ntpd wieder zurückkommt. Eine bis Fünf Minuten sollte man schon einplanen. Sobald die lokale Zeit richtig eingestellt ist kann man den NTP Dienst auch in die Datei /etc/rc.conf eintragen. Dann wird die Uhrzeit des Servers immer im Hintergrund aktualisiert. Zum aktivieren muss man folgendes in die Datei eintragen:
xntpd_enable="YES"Jetzt kann man über
/etc/rc.d/ntpd startden Dienst starten. Bei einem Neustart des Systems wird der NTP Client damit auch automatisch gestartet. Zu beachten ist noch das die Uhrzeit immer in UTC gesetzt wird. Sollte also die Zeitzone nicht auf dem Server eingestellt sein, so bekommt man die UTC Zeit angezeigt. Um die Zeitzone zu setzen wird die richtige Datei aus dem Verzeichnis /usr/share/zoneinfo/ nach /etc/localtime kopiert. Für Deutschland also /usr/share/zoneinfo/Europe/Berlin nach /etc/localtime .
Damit sind wir mal wieder am Ende.
Freitag, 14. Mai 2004
Installation von FreeBSD als Server Teil 2
Das Grund System ist installiert und das Netzwerk funktioniert. Jetzt geht es daran das System einzurichten.
Für das weitere vorgehen braucht man die Namensauflösung. Von seinem Provider erhält man zusammen mit den IP Adressen und dem Gateway auch DNS Server die man verwenden kann. Diese tragen wir in die Datei /etc/resolv.conf ein. Sollte die Datei noch nicht existieren, darf man sie einfach anlegen. Für den Anfang reicht es wenn die resolv.conf folgenden Eintrag aufweist:
nameserver xxx.xxx.xxx.xxx
Später passt man die resolv.conf meistens noch einmal an die endgültigen Gegebenheiten an. Nun können wir uns dem Port System von FreeBSD zuwenden. Es dienst der Installation und Wartung des Grundsystems genauso wie der der Programme. Ich finde das System ausgereifter als das RPM System von Red Hat, aber das ist rein subjektiv. Objektiv betrachtet dürften die Systeme sehr ähnlich sein.
Als erstes brauchen wir das aktuelle Portsystem auf dem Server. Mittels "pkg_add -r cvsup-without-gui" holt man sich den Client auf den Server. Weiter wird die Konfiguration benötigt. Diese liegt normalerweise in der Datei /usr/src/stable-supfile, und hat z.b. folgenden Inhalt:
*default base=/usr
*default prefix=/usr
*default release=cvs tag=RELENG_5_2
*default delete use-rel-suffix
default compress
src-all
ports-all tag=.
In der Datei wird unter anderem festgelegt, von welchem Server die Aktuellen Sourcen geholt werden sollen. Eine genaue Beschreibung ist im FreeBSD Online Handbuch zu finden, dessen Lektüre ich nur empfehlen kann
. Für die Bekwemlichkeit verwende ich normalerweise noch ein Script "cvsrun" das den Aufruf von cvsup mit Parametern macht und eine Kopfzeile für den e-Mail Versand erzeugt. Das ist vor allem später interessant, wenn man das Aktualisieren der Sourcen automatisieren möchte. Das Script lege ich unter /usr/local/bin ab.
echo Subject: `hostname` cvsup run output
/usr/local/bin/cvsup -g -L 2 /usr/src/stable-supfile
Jetzt hat man alles zusammen um sich die Sourcen zu holen. Mit dem Befehl "/usr/local/bin/cvsrun" startet man das Aktualisieren der Sourcen. Die kann je nach Verbindung etwas Dauern. Auf jeden Fall sollte man für den ersten lauf ca. 1 Stunde einplanen. Immerhin werden ca. 920 MB Daten auf das System geholt. Wer möchte kann sich in cron die folgenden Zeilen eintragen:
### Jeden Morgen die System Sourcen Aktualisieren45 4 /usr/local/bin/cvsrun
Dann werden jeden Morgen um 04:45 die Sourcen aktualisiert, und das Log davon an root per mail gesendet. Damit das Portsystem fertig aufgesetzt und man kann anfangen das System anzupassen. Für die Verwaltung und Aktualisierung der Installierten Programme sollte man aus dem Port System "portupgrade" installieren. Dazu wechselt man in das Verzeichnis /usr/ports/sysutils/portupgrade und mach hier ein "make install clean". Über das Portsystem wird jetzt automatisch der Source von dem Programm aus dem Internet geholt, das Programm Kompiliert und dann Installiert. Auch werden alle Pakete von denen portupgrade abhängig ist mit installiert. Bei portupgrade ist dies ruby und ruby-bdb.
Widmen wir uns der Shell. root hat momentan csh als Shell. Ich bevorzuge aber die BASH2 als Shell. Also installieren wir als nächstes die bash über das Portsystem. Nicht immer weis man wo in den Ports das Programm das man sucht "versteckt" ist. Dazu kann man in dem Porttree suchen. Mittels "make search name=bash" suchen wir ein Programm mit dem Namen bash. Als Ergebnis bekommt man eine Liste von 3 Programmen, wobei in unserem Fall das 3. das gesuchte ist. Unter "Path:" ist der Pfad zum dem Port gelistet. Nachdem man in das Verzeichnis gewechselt hat, führt man wieder "make install clean" zum installieren aus. Nun hat man auch bash als Shell zur Verfügung. Ich möchte sie aber auch als Standartshell haben. Den root User lasse ich aber die csh für den Fall das die bash nicht mehr startet. FreeBSD hat standardmäßig noch einen 2. root Account mit dem Namen toor. Diesen aktiviere ich und ändere bei ihm die Shell ab. Erst weise ich dem toor User mittels "passwd toor" ein Passwort zu, um dann mit "chsh toor" die Userinformationen zu ändern. Unter Shell: trägt man "/usr/local/bin/bash" ein um dem User die bash als Standartshell zu setzen. Wenn man über SSH arbeitet benutzt man ab jetzt nicht mehr "su -" für den root zugriff sondern "su - toor". Die bash alleine ist für mich aber nur die halbe Miete. Ich passe mir die bash noch ein bisschen an. Dazu füge ich an die Datei /root/.profile als letzte Zeile ". .bashrc" ein, und erstelle die beiden Dateien /root/.bashrc und /root/.inputrc. Der Inhalt von .bashrc :
PS1='\h:\w # '; export PS1PS1='(\[$(tput md)\]\t <\w>\[$(tput me)\]) $(echo $?) \$ '
LS_OPTIONS='-a -N --color=tty -T 0'; export LS_OPTIONS
PACKAGES=''; export PACKAGES
alias ls='ls -G '
alias l='ls -Gal '
alias o='less -S '
alias ..='cd ..'
alias ...='cd ../..'
alias p='ps auxww'
alias vlog='cd /var/log'
alias pg='ps auxww | grep -v grep | grep '
alias md='mkdir '
Der Inhalt von .inputrc :
# My ~/.inputrc file is in -*- text -*- for easy editing with Emacs.#
# Notice the various bindings which are conditionalized depending
# on which program is running, or what terminal is active.
#
# In all programs, all terminals, make sure this is bound.
"\C-x\C-r": re-read-init-file
# Hp terminals (and some others) have ugly default behaviour for C-h.
"\C-h": backward-delete-char
"\e\C-h": backward-kill-word
"\C-xd": dump-functions
# In xterm windows, make the arrow keys do the right thing.
$if TERM=xterm
"\e[A": history-search-backward
"\e[B": history-search-forward
#"\e[A": previous-history
#"\e[B": next-history
"\e[C": forward-char
"\e[D": backward-char
# alternate arrow key prefix
"\eOA": previous-history
"\eOB": next-history
"\eOC": forward-char
"\eOD": backward-char
# Under Xterm in Bash, we bind local Function keys to do something useful.
$if Bash
"\e[11~": "Function Key 1"
"\e[12~": "Function Key 2"
"\e[13~": "Function Key 3"
"\e[14~": "Function Key 4"
"\e[15~": "Function Key 5"
# I know the following escape sequence numbers are 1 greater than
# the function key. Don't ask me why, I didn't design the xterm terminal.
"\e[17~": "Function Key 6"
"\e[18~": "Function Key 7"
"\e[19~": "Function Key 8"
"\e[20~": "Function Key 9"
"\e[21~": "Function Key 10"
$endif
$endif
# For Bash, all terminals, add some Bash specific hacks.
$if Bash
"\C-xv": show-bash-version
"\C-x\C-e": shell-expand-line
# Here is one for editing my path.
"\C-xp": "$PATH\C-x\C-e\C-e\"\C-aPATH=\":\C-b"
# Make C-x r read my mail in emacs.
# "\C-xr": "emacs -f rmail\C-j"
$endif
# For FTP, different hacks:
$if Ftp
"\C-xg": "get \M-?"
"\C-xt": "put \M-?"
"\M-.": yank-last-arg
$endif
" ": self-insert
Damit ist das auch der 2. Teil abgeschlossen. Ab jetzt geht es darum bestimmte Serverprogramme zu installieren und richtig zu konfigurieren. Der nächsten Artikel werden daher immer ein bestimmtes Programm zum Thema haben. Die Dateien cvsrun, .bashrc und .inputrc gibt es auch unter Downloads zum herunterladen.
Donnerstag, 13. Mai 2004
Installation von FreeBSD als Server Teil 1
Nachdem ich einen Provider gefunden habe, kommt nun die Installation des Betriebssystems. Zuerst eine Übersicht über die Hardware des Servers. Ein Miditower mit einem MSI Mainboard, einem Intel Celeron 2,0 GHz mit 512 MB DDR Speicher und einer 40 GB IDE Festplatte. Ein CD-Rom Laufwerk fehlt genauso wie ein Diskettenlaufwerk.
Zur Installation benötige ich ein CD-Rom Laufwerk. Ein USB CD-Rom wird von dem Mainboard leider nicht erkannt, so das ich das Gehäuse öffnen und ein normales IDE CD-Rom Laufwerk einbauen muss. Die Installations CD brenne ich mit dem Mini-ISO von der FreeBSD Homepage. Mehr als das Minimalsystem brauche ich nicht zum aufbauen meines Servers.
Hier kurz eine Zusammenstellung was ich alles auf dem Server installieren möchte:
- FreeBSD als Betriebsystem
- Apache 1.3 als HTTP Server
- MySql 4.0 als Datenbank
- MRTG als Traffic und System Status Visualisierung
- PHPMyAdmin als Datenbank Verwaltung
- WebMin für die Systempflege
- Bind 9.x als DNS Server
Die Installation des Grundsystems ist für jemanden der an die Textkonsole gewohnt ist kein Problem. Die Festplatte lasse ich das Installations Programm vollständig und Automatisch einrichten. Es legt folgende Partitionen an:
- / [248 MB]
- /tmp [248 MB]
- /usr [35 GB]
- /var [248 MB]
- swap [967 MB]
Diese Aufteilung hat sich bei mir auch bewährt. Im Gegensatz zu den meisten Linux-Distributonen wird hier noch mit mehreren Partitionen gearbeitet, was der Sicherheit zu gute kommt. Nach der Installation des Minimalsystems fahre ich das System runter und baue das CD-Rom wieder aus.
Nach dem Starten des Systems begrüßt uns schon ein sehr rudimentäres FreeBSD System. Mehr kann man von einem Minimal System nicht verlangen. Nur das notwendigste ist installiert. Damit hat man eine gute Grundlage für ein sicheres Betriebssystem für den eigenen Server. Das Anmelden ist noch sehr einfach, Login root, kein Passwort. Das ändern wir zuerst. Dann richten wir in der /etc/rc.conf das Netzwerk und SSH ein. Dazu öffnen wir rc.conf mit vi und tragen folgende werte ein:
#--- begin rc.conf ---
ifconfig_sis0="inet 62.112.147.177 netmask 255.255.255.248 up"
ifconfig_sis0_alias0="inet 62.112.147.178 netmask 255.255.255.255 up"
defaultrouter="62.112.129.65"
hostname="abel.waringer-atg.de"
sshd_enable="YES"
syslogd_flags="-ss"
#--- end rc.conf ---
sis0 ist der OnBoard Netzwerk Port. FreeBSD benahmt die Netzwerkkarten nicht wie Linux, sondern nach dem verwendeten Treiber. sis0 ist also die erste Karte die von dem SIS Treiber erkannt wurde. Eine weitere IP Adresse wird in FreeBSD Alias genannt. Als Besonderheit ist zu Aliase anzumerken, das ihre Netzmaske immer 255.255.255.255 ist. Als defaultrouter trägt man sein Netzwerkgateway ein. Der hostname ist der FQDM (Full Qualified Domain Name) des Servers. Den SSH Zugang zu dem Server schalten wir per sshd="yes" ein. Eine Konfiguration des SSH Services ist normalerweise nicht notwendig, da die FreeBSD Einstellungen schon sehr gut sind. Man muss nur beachten, das per Default root keinen SSH Zugang hat. Man sollte also gleich einen User anlegen. Zuvor noch kurz zu dem syslogd_flags Eintrag. dieser dient dazu den syslogd die Netzwerkfähigkeit zu nehmen, da der syslogd per Default über das Netzwerk ansprechbar ist. Ich brauche das aber nicht, und schalte das daher ab, was ich nur jedem empfehlen kann der den syslogd nicht über das Netzwerk benötigt. Nun zum anlegen eines Users. Mit dem Befehl adduser legt man unter FreeBSD einen neuen User Interaktiv an. Zuerst wird man nach dem gewünschten Usernamen gefragt, dann nach den Vollen Namen. Die "Uid" und die "Login group" sollte man nicht verändern, außer man weis was man tut. Die Frage ob man den User in eine weitere "Login group" aufnehmen will beantworten wir mit "wheel". Die Gruppe wheel hat die Besonderheit, das nur Ihre Mitglieder ein su auf root machen dürfen.
Damit hält man sich schon manchen ärger vom Hals, wenn man nur wirklich benötigte Accounts in diese Gruppe aufnimmt. "Login class" lässt man am besten wieder unangetastet. Als "Shell" verwende ich normalerweise die bash, die ist aber in der Minimalinstallation nicht enthalten, so das wir für den User zuerst die Standartshell "sh" übernehmen. Das "Home directory" kann man anpassen wen man will, für den Normalen User ist die Vorgabe aber in Ordnung. Als nächstes kommt der Passwortblock. Nach der Frage ob man ein Passwort für die Zugangsberechtigung verwenden möchte (Wollte ich bisher immer) wird man gefragt ob der User ein leeres Passwort bekommen soll, was an sich schon eine zweifelhafte Frage ist, wenn der Server Öffentlich zugänglich ist (Also ein no, was ja auch die Vorgabe ist). Wenn man die Frage nach einem zufälligem Passwort mit yes beantwortet legt FreeBSD selbstständig ein (sicheres) Passwort für den User fest, ansonsten wird man 2 mal nach dem zu setzenden Passwort gefragt. Jetzt bekommt man eine Zusammenfassung der Daten angezeigt und kann sich entscheiden ob die Daten so stimmen, oder ob man sich vertan hat.
Jetzt hat man ein Minimal System mit Netzwerk, auf das man per SSH zugreifen kann. Im 2. Teil werde ich mich dem Port System von FreeBSD widmen, und das System für die User Komfortabler machen.
Eigener Server für die Homepage...
Meine neue Homepage soll nicht mehr bei mir zuhause über einen T-DSL mit DynDNS laufen, sondern bei einem Provider eine neue Heimat finden. Da Shared Webspace aber auch Geld kostet und ich wenn dann auch gleich einen eigenen Server mieten möchte, habe ich mir die Shared Space Angebot nur flüchtig angesehen.
Ein eigener Server hat für mich folgende Vorteile :- Freie Wahl der Software die ich einsetzen möchte.
- Viel Speicherplatz für die Webseite und die Bilder.
- Möglichkeit auch Dienste jenseits von HTTP anbieten zu können.
Da ich mich beruflich um Server Pflege kümmere, ist ein weiteres "Sorgenkind" kein Problem
Ansonsten rate ich jedem der über einen eigenen Server beim Provider nachdenkt, auch die Pflege des Systems nicht zu unterschätzen. Leider gibt es schon genügend schlecht bis gar nicht gepflegte Systeme die zu einer Gefahr für das Internet mutieren. Regelmäßige Sicherheitsupdates und das härten der eingesetzten Software sind für Server die bei Providern stehen eigentlich Pflicht. Eine Firewall halte ich dagegen nicht für zwingend. Sie schützt nur gegen Probleme die man auf dem Server selbst nicht in den Griff bekommt, und das sehe ich nur als Notlösung. Dazu aber in einem anderen Artikel mehr
Nachdem ich mich ein wenig auf den Webseiten der größeren Hoster die Shared Webspace Angebote angesehen habe, bin ich zu IP-Exchange mit ihrem Angebot http://www.ipx-server.de gestoßen. Das Angebot macht einen Guten Eindruck und ist sehr günstig. Die zur Wahl stehenden Betriebssysteme sind für den Großteil der Leute gut geeignet. Leider fehlt mir persönlich FreeBSD in der Liste, was ich sehr schade finde, da dies die Palette der Angebotenen Betriebssysteme abrunden würde. Auf meinem Server soll aber auf jeden Fall FreeBSD als Server OS Verwendung finden. Nach 3 Mails mit dem Vertreib von IP-Exchange habe ich dann auch einen Preis für die Nachträgliche Installation von FreeBSD auf dem Server. Die Installation möchten Sie sich zwar separat zahlen lassen, aber selbst dann ist der Preis noch Gut
Etwas störend find ich das ich nicht selbst in das Rechenzentrum darf um das Betriebssystem zu installieren. Auch die Möglichkeit das ich den Rechner abhole, installiere und dann wiederbringe scheint nicht möglich zu sein.
Über die Seiten von IP-Exchange bin ich auf hostsuche gekommen.
Diese Seite bietet eine Suche von Providern nach einzelnen Kriterien. Hierüber bin ich zu den Angeboten von Host Europe
und webzentrum.de gekommen. Leider sind das beide wohl Provider die an Privatkunden nicht gedacht haben. Anders kann ich die Preise nicht verstehen. Beide glänzen zwar mit massig Freivolumen, aber über meine Private Homepage werde ich wohl kaum im Monat 1TB an Traffic machen
Auch das Fehlen von einer Domain im Paket, sieht mehr nach Gewerblicher Nutzung aus.
Als nächstes bin ich auf das Angebot von clansnet.de gestoßen. Die bieten FreeBSD Root Server an. Na also es gibt doch Anbieter für so was.
Den billigsten FreeBSD Root Server für ca. 580 € pro Jahr. Leider ist der Server Technisch aber etwas schwächer einzuschätzen als die Konkurrenzangebote. Die Angabe der CPU ist auf de Webseite leider etwas zu dürftig. AMD 1,3 GHz könnte ein Duron sein. Allgemein sind mir auf der Webseite etwas zu wenig entscheidende Technische Details, und zu viel Nebensächlichkeiten wie das MySQL und PHP installiert sind erwähnt. Auf einem Root Server interessiert mich nur was für ein Betriebssystem installiert wird. Den Rest kann und will ich auch selber machen.
Mein nächstes Opfer war die Firma Netdiscounter. Sie ist mir schon länger bekannt, allerdings nur als Standleitungsprovider. Der Name ist auf jeden Fall schon mal viel versprechend. Die Webseiten sind nicht besonders übersichtlich und liefern keine für mich verwertbaren Preise. Das Beispielangebot für einen Mietserver ist auf jeden Fall nicht dazu geeignet einen von den Leistungen und dem Preis zu überzeugen. Da ich Netdiscounter ja aber schon kenne und daher weis das Sie eigentlich immer gute Preise machen habe ich eine e-Mail Anfrage gemacht. Auf meine e-Mail hat der Vertrieb auch zügig geantwortet, das Sie etwas mehr Daten von mir möchten, damit Sie das Angebot individuell erstellen können. Kein Problem, also schnell in eine e-Mail getippt was ich so wollte. Das Angebot lies dann auch ca. 1 1/2 Tage auf sich warten. Das Angebot das ich dann bekam war dann zwar schon nicht schlecht, aber wer wird denn gleich das erste Angebot annehmen das gemacht wird? Ich auf jeden Fall nicht. Die Schwachpunkte des Angebotes waren a) die fehlende .de Domain und b) der Traffic Preis von 3,50 €. Der Angebotene Freitraffic von 20 GB halte ich für mich ausreichend, aber wenn ich mal drüber kommen sollte, will ich nicht arm werden deswegen. Nach einer weiteren Mail und einem Telefonat wurden wir uns aber einig, auch wenn Netdiscounter im Preis/Leistungs Vergleich nicht gewinnt.
Als Provider habe ich mich für Netdiscounter entschieden. Die Entscheidung war knapp, aber am Schluss war entscheidend, das ich bei Netdiscounter den Server selber installieren kann. Das war bei keinem der anderen Angebote möglich. Gegen das Angebot von IP-Exchange spricht für mich eigentlich nur, das ich schon Erfahrung mit der Technik Abteilung von IP-Exchange gemacht habe, und sie für nicht übermäßig fähig halte (Ausnahmen gibt es aber natürlich auch dort). Kleinere Probleme bekommt die Technik in den griff, jedenfalls wenn man sich selbst auskennt, und der Technik sagen kann was zu tun ist. Einen FreeBSD Server kann ich mir aber nicht vorstellen, das IP-Exchange das gut hinbekommt.
Über meine Erfahrungen beim installieren und einrichten des Servers werde ich in einem weiteren Artikel berichten.
Hier noch die Übersicht über die Provider und die Leistungen:
| Netdiscounter | IP-Exchange | Clansnet.de | Host Europe | webzentrum.de | |
|---|---|---|---|---|---|
| CPU | Celeron 2,0 GHz | Celeron 2,0 GHz | AMD 1,3 GHz | Celeron 2,6 GHz | P IV 2,8 GHz |
| Ram | 512 MB | 512 MB | 256 MB | 512 MB | 1024 MB |
| Festplatte | 40 GB IDE | 40 GB IDE | 40 GB IDE | 60 GB | 120 GB IDE |
| incl. Anzahl IP Adressen | 1 | 4 | keine Angabe | 1 | 1 |
| incl. Anzahl Domains | 1 | 1 | keine | keine | keine |
| incl. Traffic | 20 GB | 150 GB | 50 GB | 750 GB | 1000 GB |
| Traffic Preis pro GB | 3,50 € | 0,39 € | 1,00 € | 3,00 € | 1,25 € |
| Einrichtungs Gebühr | 139,00 € | 224,00 € | 99,00 € | 149,00 € | 89,00 € |
| Monatliche Gebühr | 39,00 € | 34,95 € | 39,99 € | 99,00 € | 149,00 € |
| Kosten im 1. Jahr | 607,00 € | 608,45 € | 578,88 € | 1337,00 € | 1877,00 € |
| Anmerkung | *3, *4 | *1 | *2 |
*1 Die Konditionen gelten nur bei Zahlung von 1 Jahr im vorraus, und einem AktionsKey.
*2 Die Preise Stammen aus dem Sonderangebot "Option B" .
*3 Die Daten und Preise Stammen aus dem ersten Angebot, und sind zuzüglich MwST.
*4 Meine aktuellen Preise habe ich nicht eingetragen, da sie nicht allgemein gültig sind.
Die Preise stammen alle aus Angeboten die Anfang April 2004 eingeholt wurden oder von den Webseiten der Anbieter.

