<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="http://unfoldingneurons.com/"
	>

<channel>
	<title>Bits, Bytes and my 5 cents &#187; Server</title>
	<atom:link href="http://blog.encodingit.ch/category/netzwerk/server-netzwerk/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.encodingit.ch</link>
	<description>Life is just a technical game</description>
	<lastBuildDate>Thu, 02 Feb 2012 16:28:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>SSH von ESXi absichern</title>
		<link>http://blog.encodingit.ch/2011/12/ssh-von-esxi-absichern/</link>
		<comments>http://blog.encodingit.ch/2011/12/ssh-von-esxi-absichern/#comments</comments>
		<pubDate>Fri, 02 Dec 2011 07:30:18 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[ESX]]></category>
		<category><![CDATA[ESXi]]></category>
		<category><![CDATA[Planet]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[Syslog]]></category>

		<guid isPermaLink="false">http://blog.encodingit.ch/?p=2830</guid>
		<description><![CDATA[Vor kurzem habe ich ja bereits über Syslog geschrieben. Jeder der schon mal einen Server in den weiten des Internets betrieben hat (damit meine ich nicht zu Hause im eigenen Netzwerk), der weiss, wie schnell es geht, bis die ersten Bots und Kiddies mit endlosen Versuchen probieren, das SSH-Passwort zu knacken.
Das könnte dich auch interessieren:<ol>
<li><a href='http://blog.encodingit.ch/2011/12/syslog-server-fur-esxi/' rel='bookmark' title='Syslog Server für ESXi'>Syslog Server für ESXi</a> <small>Nach dem ich entdeckt hatte, dass der ESX so intelligent...</small></li>
<li><a href='http://blog.encodingit.ch/2011/11/esxi-sichern-auf-ftp/' rel='bookmark' title='ESXi sichern auf FTP'>ESXi sichern auf FTP</a> <small>Vor einiger Zeit hatte ich die Aufgabe ein Backup-Konzept für...</small></li>
<li><a href='http://blog.encodingit.ch/2011/09/vmware-image-fur-esxi-aufbereiten/' rel='bookmark' title='Vmware Image für ESXi aufbereiten'>Vmware Image für ESXi aufbereiten</a> <small>Für eine Analyse gab es diese Woche eine Installation von...</small></li>
<li><a href='http://blog.encodingit.ch/2011/04/dns-320-mit-fun_plug-zu-ssh/' rel='bookmark' title='DNS-320 mit fun_plug zu SSH'>DNS-320 mit fun_plug zu SSH</a> <small>Ganz cool an meinem NAS DNS-320 ist die Funktion des...</small></li>
<li><a href='http://blog.encodingit.ch/2011/08/nat-konfigurieren-unter-esxi/' rel='bookmark' title='NAT konfigurieren unter ESX(i)'>NAT konfigurieren unter ESX(i)</a> <small>NAT ist so eine Sache. Unter Vmware Workstation sehr einfach...</small></li>
</ol><img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></description>
			<content:encoded><![CDATA[<p>Vor kurzem habe ich ja bereits über Syslog geschrieben. Jeder der schon mal einen Server in den weiten des Internets betrieben hat (damit meine ich nicht zu Hause im eigenen Netzwerk), der weiss, wie schnell es geht, bis die ersten Bots und Kiddies mit endlosen Versuchen probieren, das SSH-Passwort zu knacken.<br />
Für Linux-Distributionen wie Ubuntu, Debian, RedHat oder was auch immer gibt es unzählige Tools und Applikationen, welche helfen entweder den SSH-Zugriff zu verstecken, oder aber zu verteidigen.</p>
<p>Beides gibt es leider nicht bei meinem ESXi Server. Noch nicht mal eine anständige iptable oder hosts.deny sind vorhanden, geschweige  denn von einer Firewall, wie es bei ESX Standard ist.</p>
<p>Um jedoch mal zu sehen, wie viele Personen versuchen, mein SSH zu knacken, habe ich ein einfaches kleines Script für Nagios geschrieben.</p>
<p>Ich weiss es kann noch viel optimiert werden dabei, doch es erfüllt seinen Zweck:</p>
<pre class="brush: bash; title: ; notranslate">
#!/bin/bash

# ####################################################################
# Check Syslog /var/log/SPLVS002.log for Brute Force Attacks via SSH
# by Patrick Schmid
# Version 1.0
######################################################################

export STATE_OK=0
export STATE_WARNING=1

time=`date +%H.%M.%S |cut -d'.' -f1`
time=`echo $time|sed 's/^0*//'`
time2=$(( $time - 1))
time3=$(( $time - 2))

if [ $time -lt 10 ]; then
        time=0$time
fi

if [ $time2 -lt 10 ]; then
        time2=0$time2
fi

if [ $time3 -lt 10 ]; then
        time3=0$time3
fi

compare=`tail -300 /var/log/SPLVS002.log |grep &quot;from&quot; |grep &quot;root&quot; |grep &quot;attempt&quot; | cut -d' ' -f3`
compare=`echo $compare | cut -d' ' -f1`

if [ $compare -lt 10  ]; then
        attackers=`tail -300 /var/log/SPLVS002.log |grep &quot;from&quot; |grep &quot;root&quot; |grep &quot;attempt&quot; | cut -d' ' -f4,14 |cut -d':' -f1,2,3 |sed -e 's/://' | tee -a |sed -e 's/://' |tee -a |grep &quot;^$time\|^$time2\|^$time3&quot; |cut -d' ' -f2 |sort |uniq`
        computers=`tail -300 /var/log/SPLVS002.log |grep &quot;from&quot; |grep &quot;root&quot; |grep &quot;attempt&quot; | cut -d' ' -f4,14 |cut -d':' -f1,2,3 |sed -e 's/://' | tee -a |sed -e 's/://' |tee -a |grep &quot;^$time\|^$time2\|^$time3&quot; |cut -d' ' -f2 |sort |uniq |wc -l`
        attemps=`tail -300 /var/log/SPLVS002.log |grep &quot;from&quot; |grep &quot;root&quot; |grep &quot;attempt&quot; | cut -d' ' -f4,14 |cut -d':' -f1,2,3 |sed -e 's/://' | tee -a |sed -e 's/://' |tee -a |grep &quot;^$time\|^$time2\|^$time3&quot; |cut -d' ' -f2 |sort |wc -l`
else
        attackers=`tail -300 /var/log/SPLVS002.log |grep &quot;from&quot; |grep &quot;root&quot; |grep &quot;attempt&quot; | cut -d' ' -f3,13 |cut -d':' -f1,2,3 |sed -e 's/://' | tee -a |sed -e 's/://' |tee -a |grep &quot;^$time\|^$time2\|^$time3&quot; |cut -d' ' -f2 |sort |uniq`
        computers=`tail -300 /var/log/SPLVS002.log |grep &quot;from&quot; |grep &quot;root&quot; |grep &quot;attempt&quot; | cut -d' ' -f3,13 |cut -d':' -f1,2,3 |sed -e 's/://' | tee -a |sed -e 's/://' |tee -a |grep &quot;^$time\|^$time2\|^$time3&quot; |cut -d' ' -f2 |sort |uniq |wc -l`
        attemps=`tail -300 /var/log/SPLVS002.log |grep &quot;from&quot; |grep &quot;root&quot; |grep &quot;attempt&quot; | cut -d' ' -f3,13 |cut -d':' -f1,2,3 |sed -e 's/://' | tee -a |sed -e 's/://' |tee -a |grep &quot;^$time\|^$time2\|^$time3&quot; |cut -d' ' -f2 |sort |wc -l`
fi

[ &quot;$attackers&quot; ] &amp;&amp; echo -e &quot;$attemps attemps from $computers attackers\n$attackers&quot;
[ &quot;$attackers&quot; ] || echo &quot;No Attack running&quot;

[ &quot;$attackers&quot; ] &amp;&amp; exit $STATE_WARNING
[ &quot;$attackers&quot; ] || exit $STATE_OK</pre>
<p>Und schon sieht man in Nagios selbst, was so abgeht:</p>
<p><span id="more-2830"></span></p>
<p><a href="http://blog.encodingit.ch/wp-content/uploads/2011/11/bruteforce1.png"  rel="lightbox[2830]"><img class="size-medium wp-image-2765 alignnone" title="Nagios Brute Force" src="http://blog.encodingit.ch/wp-content/uploads/2011/11/bruteforce1.png" alt="" width="500" /></a></p>
<p>So dann weiter im Konzept! Es gibt zwar keine Möglichkeit, Angreifer aussperren oder ähnliches, jedoch aber kann man verhindern, dass das Passwort erraten werden kann, indem man das Login mit einem zusätzlichen Zertifikat schützt. Wie das geht, lest ihr in den folgenden Zeilen!</p>
<p>Zuerst wird ein Key generiert, mit ssh-keygen.<br />
Nun kann der Public-Key kopiert werden, denn dieser muss auf den ESX wie folgt eingefügt werden:</p>
<pre class="brush: bash; title: ; notranslate">
mkdir /.ssh
touch /.ssh/authorized_keys
chmod 0600 -R /.ssh
echo &quot;ssh-rsa KEY_HIER_EINFÜGEN&quot; &gt;&gt; /.ssh/authorized_keys
</pre>
<p>Nun kann man das Login schon mal prüfen. Hier sollte man bereits mit dem Key einloggen können.</p>
<p>Jetzt wird das ganze noch abgesichert, damit es auch einen Reboot übersteht. Einfach den obigen Part in die Datei /etc/rc.local einfügen und abspeichern.<br />
Und zu guter Letzt wird noch das Login ohne Zertifikat deaktiviert. Dazu wird in der Datei /etc/inetd.conf den beiden Punkten &#8220;ssh&#8221; der Parameter -s angefügt:</p>
<pre class="brush: bash; title: ; notranslate">
ssh      stream   tcp   nowait   root   /sbin/dropbearmulti   dropbear ++min=0,swap,group=shell -s -i -K60
ssh      stream   tcp6  nowait   root   /sbin/dropbearmulti   dropbear ++min=0,swap,group=shell -s -i -K60
</pre>
<p>Von nun an ist ein Login nur noch mit Zertifikat möglich, wodurch auch die lästigen Bots ausgebremst werden.</p>
<br /><p>Das könnte dich auch interessieren:<ol>
<li><a href='http://blog.encodingit.ch/2011/12/syslog-server-fur-esxi/' rel='bookmark' title='Syslog Server für ESXi'>Syslog Server für ESXi</a> <small>Nach dem ich entdeckt hatte, dass der ESX so intelligent...</small></li>
<li><a href='http://blog.encodingit.ch/2011/11/esxi-sichern-auf-ftp/' rel='bookmark' title='ESXi sichern auf FTP'>ESXi sichern auf FTP</a> <small>Vor einiger Zeit hatte ich die Aufgabe ein Backup-Konzept für...</small></li>
<li><a href='http://blog.encodingit.ch/2011/09/vmware-image-fur-esxi-aufbereiten/' rel='bookmark' title='Vmware Image für ESXi aufbereiten'>Vmware Image für ESXi aufbereiten</a> <small>Für eine Analyse gab es diese Woche eine Installation von...</small></li>
<li><a href='http://blog.encodingit.ch/2011/04/dns-320-mit-fun_plug-zu-ssh/' rel='bookmark' title='DNS-320 mit fun_plug zu SSH'>DNS-320 mit fun_plug zu SSH</a> <small>Ganz cool an meinem NAS DNS-320 ist die Funktion des...</small></li>
<li><a href='http://blog.encodingit.ch/2011/08/nat-konfigurieren-unter-esxi/' rel='bookmark' title='NAT konfigurieren unter ESX(i)'>NAT konfigurieren unter ESX(i)</a> <small>NAT ist so eine Sache. Unter Vmware Workstation sehr einfach...</small></li>
</ol></p><img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.encodingit.ch/2011/12/ssh-von-esxi-absichern/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Syslog Server für ESXi</title>
		<link>http://blog.encodingit.ch/2011/12/syslog-server-fur-esxi/</link>
		<comments>http://blog.encodingit.ch/2011/12/syslog-server-fur-esxi/#comments</comments>
		<pubDate>Thu, 01 Dec 2011 14:30:10 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[ESX]]></category>
		<category><![CDATA[ESXi]]></category>
		<category><![CDATA[Planet]]></category>
		<category><![CDATA[Syslog]]></category>

		<guid isPermaLink="false">http://blog.encodingit.ch/?p=2823</guid>
		<description><![CDATA[Nach dem ich entdeckt hatte, dass der ESX so intelligent ist und seine Logs standardmässig auf einer RAM-Disk speichert, musste natürlich eine andere Lösung her. Kann ja nicht sein, dass die Logs nach einem Ausfall einfach nicht mehr vorhanden sind.
Somit habe ich mich für eine zentrale Logspeicherung mit Syslog entschieden.
Das könnte dich auch interessieren:<ol>
<li><a href='http://blog.encodingit.ch/2011/11/esxi-sichern-auf-ftp/' rel='bookmark' title='ESXi sichern auf FTP'>ESXi sichern auf FTP</a> <small>Vor einiger Zeit hatte ich die Aufgabe ein Backup-Konzept für...</small></li>
<li><a href='http://blog.encodingit.ch/2011/09/vmware-image-fur-esxi-aufbereiten/' rel='bookmark' title='Vmware Image für ESXi aufbereiten'>Vmware Image für ESXi aufbereiten</a> <small>Für eine Analyse gab es diese Woche eine Installation von...</small></li>
<li><a href='http://blog.encodingit.ch/2011/11/windows-session-credentials-cannot-be-used-to-log-into-this-server/' rel='bookmark' title='Windows session credentials cannot be used to log into this server'>Windows session credentials cannot be used to log into this server</a> <small>Ist der ESX-Server ans AD angebunden, so liegt es ja...</small></li>
<li><a href='http://blog.encodingit.ch/2011/04/dns-320-mit-fun_plug-zu-ssh/' rel='bookmark' title='DNS-320 mit fun_plug zu SSH'>DNS-320 mit fun_plug zu SSH</a> <small>Ganz cool an meinem NAS DNS-320 ist die Funktion des...</small></li>
<li><a href='http://blog.encodingit.ch/2011/08/nat-konfigurieren-unter-esxi/' rel='bookmark' title='NAT konfigurieren unter ESX(i)'>NAT konfigurieren unter ESX(i)</a> <small>NAT ist so eine Sache. Unter Vmware Workstation sehr einfach...</small></li>
</ol><img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></description>
			<content:encoded><![CDATA[<p>Nach dem ich entdeckt hatte, dass der ESX so intelligent ist und seine Logs standardmässig auf einer RAM-Disk speichert, musste natürlich eine andere Lösung her. Kann ja nicht sein, dass die Logs nach einem Ausfall einfach nicht mehr vorhanden sind.<br />
Somit habe ich mich für eine zentrale Logspeicherung mit Syslog entschieden.</p>
<p>Da ich sowas noch nie eingerichtet hatte, war ich mir nicht ganz sicher, was auf mich zu kommen würde. Nun aber kann ich sagen, schreckt nicht davor zurück! Das Einrichten geht schnell und einfach und der Gewinn daraus ist enorm.</p>
<p>Auf meinem Ubuntu Server habe ich mich für syslog-ng entschieden, welches problemlos über die Paketquellen installiert werden kann:</p>
<pre class="brush: bash; title: ; notranslate">
apt-get install syslog-ng
</pre>
<p>Nun muss die Konfiguration unter /etc/syslog-ng/syslog-ng.conf angepasst werden.<br />
Eingefügt habe ich die folgenden Punkte für jeweils einen ESX und einen normalen Ubuntu-Server:</p>
<pre class="brush: bash; title: ; notranslate">
source s_udp
{
        udp(port(514));
};

destination d_server1 {
        file(&quot;/var/log/server1.log&quot;);
};

filter f_server1 {
        host(&quot;192.168.1.45&quot;);
};

log {
        source(s_udp);
        filter(f_server1);
        destination(d_server1);
};

destination d_server2 {
        file (&quot;/var/log/server2.log&quot;);
};

filter f_server2 {
        host(&quot;192.168.1.23&quot;);
};

log {
        source(s_udp);
        filter(f_server2);
        destination(d_server2);
};
</pre>
<p>Somit sei es den beiden Hosts mit der Adresse 192.168.1.23 und 192.168.1.45 über den Port UDP/514 erlaubt, Daten an den Syslog-Server zu senden, welche jeweils unter /var/log/server1.log und server2.log abgelegt werden.</p>
<p><span id="more-2823"></span></p>
<p>Noch neustarten und gut ist:</p>
<pre class="brush: bash; title: ; notranslate">
/etc/init.d/syslog-ng restart
</pre>
<p>Nun geht es weiter auf den zu überwachenden Servern!<br />
Hier fügt man folgende Zeile in die Konfiguration unter /etc/syslog.conf ein:</p>
<pre class="brush: bash; title: ; notranslate">
*.* @192.168.1.25
</pre>
<p>192.168.1.25 ist dabei natürlich die IP des Syslog-Servers. Aktuell wird hier alles geloggt, was so auf der Maschine abgeht. Wer das ganze noch genauer spezifizieren will, der findet entsprechende Parameter bei Google.<br />
Auch hier ist noch ein Neustart nötig und schon sind die entsprechenden Infos auf dem Syslog-Server ersichtlich:</p>
<pre class="brush: bash; title: ; notranslate">
/etc/init.d/sysklogd restart
</pre>
<p>Auf dem ESX Server kann der Syslog-Server über den vSpehre-Client gesetzt werden. Einfach unter &#8220;Configuration&#8221; > &#8220;Advanced Settings&#8221; > &#8220;Syslog&#8221; > &#8220;remote&#8221; IP und Port eintragen.</p>
<p>Und nun dürft ihr auch schon all die Kiddies und Bots bewundern, welche versuchen euer SSH-Passwort zu knacken <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<pre class="brush: bash; title: ; notranslate">
Nov 30 12:17:17 server1 sshd[11775]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=180.227.218.245  user=root
Nov 30 12:17:19 server1 sshd[11775]: Failed password for root from 180.227.218.245 port 34035 ssh2
Nov 30 12:17:22 server1 sshd[11777]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=180.227.218.245  user=root
Nov 30 12:17:23 server1 sshd[11777]: Failed password for root from 180.227.218.245 port 34311 ssh2
Nov 30 12:17:26 server1 sshd[11779]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=180.227.218.245  user=root
Nov 30 12:17:28 server1 sshd[11779]: Failed password for root from 180.227.218.245 port 34525 ssh2
Nov 30 12:17:30 server1 sshd[11784]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=180.227.218.245  user=root
Nov 30 12:17:33 server1 sshd[11784]: Failed password for root from 180.227.218.245 port 34770 ssh2
Nov 30 12:17:35 server1 sshd[11795]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=180.227.218.245  user=root
Nov 30 12:17:37 server1 sshd[11795]: Failed password for root from 180.227.218.245 port 35037 ssh2
Nov 30 12:17:39 server1 sshd[11800]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=180.227.218.245  user=root
Nov 30 12:17:42 server1 sshd[11800]: Failed password for root from 180.227.218.245 port 35313 ssh2
Nov 30 12:17:44 server1 sshd[11805]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=180.227.218.245  user=root
Nov 30 12:17:47 server1 sshd[11805]: Failed password for root from 180.227.218.245 port 35591 ssh2
Nov 30 12:17:49 server1 sshd[11807]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=180.227.218.245  user=root
Nov 30 12:17:51 server1 sshd[11807]: Failed password for root from 180.227.218.245 port 35809 ssh2
Nov 30 12:17:54 server1 sshd[11842]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=180.227.218.245  user=root
Nov 30 12:17:56 server1 sshd[11842]: Failed password for root from 180.227.218.245 port 36091 ssh2
Nov 30 12:17:58 server1 sshd[11848]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=180.227.218.245  user=root
Nov 30 12:18:00 server1 sshd[11848]: Failed password for root from 180.227.218.245 port 36361 ssh2
Nov 30 12:18:02 server1 sshd[11850]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=180.227.218.245  user=root
</pre>
<p>Wer auch dem Abhelfen will, der soll sich mal das Tool denyhosts ansehen! Ansonsten ein sicheres Passwort, Zertifikate oder was ihr gerade lustig seid. <a href="http://bit.ly/sAZlMw"  target="_blank">Ideen gibts genug</a>!</p>
<br /><p>Das könnte dich auch interessieren:<ol>
<li><a href='http://blog.encodingit.ch/2011/11/esxi-sichern-auf-ftp/' rel='bookmark' title='ESXi sichern auf FTP'>ESXi sichern auf FTP</a> <small>Vor einiger Zeit hatte ich die Aufgabe ein Backup-Konzept für...</small></li>
<li><a href='http://blog.encodingit.ch/2011/09/vmware-image-fur-esxi-aufbereiten/' rel='bookmark' title='Vmware Image für ESXi aufbereiten'>Vmware Image für ESXi aufbereiten</a> <small>Für eine Analyse gab es diese Woche eine Installation von...</small></li>
<li><a href='http://blog.encodingit.ch/2011/11/windows-session-credentials-cannot-be-used-to-log-into-this-server/' rel='bookmark' title='Windows session credentials cannot be used to log into this server'>Windows session credentials cannot be used to log into this server</a> <small>Ist der ESX-Server ans AD angebunden, so liegt es ja...</small></li>
<li><a href='http://blog.encodingit.ch/2011/04/dns-320-mit-fun_plug-zu-ssh/' rel='bookmark' title='DNS-320 mit fun_plug zu SSH'>DNS-320 mit fun_plug zu SSH</a> <small>Ganz cool an meinem NAS DNS-320 ist die Funktion des...</small></li>
<li><a href='http://blog.encodingit.ch/2011/08/nat-konfigurieren-unter-esxi/' rel='bookmark' title='NAT konfigurieren unter ESX(i)'>NAT konfigurieren unter ESX(i)</a> <small>NAT ist so eine Sache. Unter Vmware Workstation sehr einfach...</small></li>
</ol></p><img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.encodingit.ch/2011/12/syslog-server-fur-esxi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vmware Image für ESXi aufbereiten</title>
		<link>http://blog.encodingit.ch/2011/09/vmware-image-fur-esxi-aufbereiten/</link>
		<comments>http://blog.encodingit.ch/2011/09/vmware-image-fur-esxi-aufbereiten/#comments</comments>
		<pubDate>Mon, 05 Sep 2011 13:36:20 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Server]]></category>
		<category><![CDATA[ESX]]></category>
		<category><![CDATA[VMware]]></category>

		<guid isPermaLink="false">http://blog.encodingit.ch/?p=2658</guid>
		<description><![CDATA[Für eine Analyse gab es diese Woche eine Installation von einem Kunden, welche für weitere Arbeiten in unsere ESX Umgebung eingespielt werden musste.
Noch unwissend, da ich eine solche Arbeit noch nie zuvor ausführen musste, dachte ich mir, ganz so kompliziert kann das ganze doch nicht sein, vmdk ist ja vmdk... Doch schön wärs!<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></description>
			<content:encoded><![CDATA[<p>Für eine Analyse gab es diese Woche eine Installation von einem Kunden, welche für weitere Arbeiten in unsere ESX Umgebung eingespielt werden musste.<br />
Noch unwissend, da ich eine solche Arbeit noch nie zuvor ausführen musste, dachte ich mir, ganz so kompliziert kann das ganze doch nicht sein, vmdk ist ja vmdk&#8230; Doch schön wärs!</p>
<p>Importieren ging gut und schnell, beim ersten Starten dann das ernüchternde Ergebnis:</p>
<p><a href="http://blog.encodingit.ch/wp-content/uploads/2011/09/Untitled.png"  rel="lightbox[2658]"><img src="http://blog.encodingit.ch/wp-content/uploads/2011/09/Untitled.png" alt="" title="Untitled" width="451" height="311" class="alignnone size-full wp-image-2668" /></a></p>
<p><em>Unable to create virtual SCSI device for scsi0:0, &#8216;/vmfs/volumes/datastore1/test/old.vmdk&#8217; Failed to open disk scsi0:0: Unsupported or invalid disk type 7. Make sure that the disk has been imported. </em></p>
<p>Die Fehlermeldung produziert zwar viel Text, sagt aber nicht wirklich etwas aus&#8230; Ein einfaches &#8220;Falsche Vmware Version des vmdk&#8221; wäre weit aufschlussreicher gewesen.<br />
Wie auch immer schlussendlich aber, konnte ich dank der 7 im Namen, welche sehr wahrscheinlich auf die <em>Virtual Maschine Version: 7</em> verweist, den Fehler auf eine veraltete Version eingrenzen, worauf auch die Lösung sehr schnell gefunden war:</p>
<pre class="brush: bash; title: ; notranslate">
~ # vmkfstools -d thin -i &quot;/vmfs/volumes/datastore1/test/old.vmdk&quot; &quot;/vmfs/volumes/datastore1/test/new.vmdk&quot;
Destination disk format: VMFS thin-provisioned
Cloning disk '/vmfs/volumes/datastore1/test/old.vmdk'...
Clone: 100% done.
~ #
</pre>
<p>Und seither läuft die Maschine wunderbar!</p>
<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.encodingit.ch/2011/09/vmware-image-fur-esxi-aufbereiten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NAT konfigurieren unter ESX(i)</title>
		<link>http://blog.encodingit.ch/2011/08/nat-konfigurieren-unter-esxi/</link>
		<comments>http://blog.encodingit.ch/2011/08/nat-konfigurieren-unter-esxi/#comments</comments>
		<pubDate>Wed, 17 Aug 2011 12:15:15 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[ESXi]]></category>
		<category><![CDATA[pfSense]]></category>
		<category><![CDATA[Planet]]></category>

		<guid isPermaLink="false">http://blog.encodingit.ch/?p=2599</guid>
		<description><![CDATA[NAT ist so eine Sache. Unter Vmware Workstation sehr einfach und sauber gelöst, unter ESX(i) leider gänzlich unbekannt. Eigentlich ist es auf einem Server ja auch gar nicht erwünscht, da jeder Server sowieso seine eigene, fixe IP bekommt, jedoch aber ist bei mir nur der undenkbare Fall eingetreten, dass ich zu Testzwecken eben doch NAT gebrauchen könnte.
Das könnte dich auch interessieren:<ol>
<li><a href='http://blog.encodingit.ch/2011/02/installation-von-moodle-unter-debian/' rel='bookmark' title='Installation von Moodle unter Debian'>Installation von Moodle unter Debian</a> <small>Moodle ist eine Lernplattform auf Basis von Opensource, welche bereits...</small></li>
</ol><img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></description>
			<content:encoded><![CDATA[<p>NAT ist so eine Sache. Unter Vmware Workstation sehr einfach und sauber gelöst, unter ESX(i) leider gänzlich unbekannt. Eigentlich ist es auf einem Server ja auch gar nicht erwünscht, da jeder Server sowieso seine eigene, fixe IP bekommt, jedoch aber ist bei mir nur der undenkbare Fall eingetreten, dass ich zu Testzwecken eben doch NAT gebrauchen könnte.</p>
<p>Also gilt es, das manuell einzurichten, was Vmware Workstation mir sonst abnimmt: Mit einem weiteren virtuellen Switch und einer Installation von pfSense.</p>
<p>Rein logisch sollte das so funktionieren: Der Client bezieht von pfSense eine interne IP, da er am selben Switch hängt, wie der DHCP. Ein Paket geht nun vom Client über den Switch zum LAN-Interface von pfSense und dann über das WAN-Interface auf den öffentlichen Switch ins Internet. Ganz einfach oder?</p>
<p><a href="http://blog.encodingit.ch/wp-content/uploads/2011/08/esxi_nat.png"  rel="lightbox[2599]"><img class="alignnone size-large wp-image-2604" title="esxi_nat" src="http://blog.encodingit.ch/wp-content/uploads/2011/08/esxi_nat-1024x629.png" alt="" width="655" height="402" /></a></p>
<p>Als erstes wird der virtuelle Switch zugefügt. Jedoch wird dieser nicht an ein virtuelles Interface gebunden, schliesslich soll da ja nichts nach draussen gehen.<br />
Nun wir eine VM erstellt mit zwei Netzwerkkarten, eine ans &#8220;VM Network&#8221;, welches über das Netzwerk erreichbar ist, und eine an das eben erstellte Netzwerk, nennen wir es &#8220;NAT Network&#8221;. Darauf wird nun pfSense installiert. Die Konfiguration ist gänzlich normal, es muss nur darauf geachtet werden, dass das WAN Interface der Karte mit Anbindung an das &#8220;VM Network&#8221; und das LAN Interface der Karte mit Anbindung an das &#8220;NAT Network&#8221; entspricht.</p>
<p>In ESX(i) würde das nun etwa so aussehen:</p>
<p><a href="http://blog.encodingit.ch/wp-content/uploads/2011/08/network.png"  rel="lightbox[2599]"><img class="alignnone size-medium wp-image-2600" title="network" src="http://blog.encodingit.ch/wp-content/uploads/2011/08/network-300x298.png" alt="" width="300" height="298" /></a></p>
<p>Nun kann eine neue Maschine einfach dem &#8220;NAT Network&#8221; zugefügt werden, und bezieht via DHCP eine IP Adresse! So schwer ist das ja gar nicht <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br /><p>Das könnte dich auch interessieren:<ol>
<li><a href='http://blog.encodingit.ch/2011/02/installation-von-moodle-unter-debian/' rel='bookmark' title='Installation von Moodle unter Debian'>Installation von Moodle unter Debian</a> <small>Moodle ist eine Lernplattform auf Basis von Opensource, welche bereits...</small></li>
</ol></p><img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.encodingit.ch/2011/08/nat-konfigurieren-unter-esxi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Die Updates im Griff mit MBSA</title>
		<link>http://blog.encodingit.ch/2011/08/die-updates-im-griff-mit-mbsa/</link>
		<comments>http://blog.encodingit.ch/2011/08/die-updates-im-griff-mit-mbsa/#comments</comments>
		<pubDate>Thu, 04 Aug 2011 16:00:38 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Server]]></category>
		<category><![CDATA[MBSA]]></category>
		<category><![CDATA[Patchmanagement]]></category>

		<guid isPermaLink="false">http://blog.encodingit.ch/?p=2563</guid>
		<description><![CDATA[Vor einiger Zeit mal hatte ich ein Stück Software von Microsoft verwendet, welches mir erlaubt, mit wenigen Klicks herauszufinden, welche Updates auf einem System installiert sind und welche noch nachinstalliert werden sollten. Klar Windows-Update kann das auch, jedoch gibt mir die Software neben den Namen auch gleich einen Link zur Microsoft-Seite, wo ich das entsprechende [...]<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></description>
			<content:encoded><![CDATA[<p>Vor einiger Zeit mal hatte ich ein Stück Software von Microsoft verwendet, welches mir erlaubt, mit wenigen Klicks herauszufinden, welche Updates auf einem System installiert sind und welche noch nachinstalliert werden sollten. Klar Windows-Update kann das auch, jedoch gibt mir die Software neben den Namen auch gleich einen Link zur Microsoft-Seite, wo ich das entsprechende Update herunterladen kann.<br />
Heute, auf der Suche nach einem Tool, welches mir anzeigt, welche Patches und Updates ich auf meinen Servern noch installieren muss, bin ich wieder über das altbekannte Tool <a href="http://technet.microsoft.com/en-us/security/cc184923"  target="_blank">Baseline Security Analyzer</a> von Microsoft gestolpert.</p>
<p><a href="http://blog.encodingit.ch/wp-content/uploads/2011/08/mbsa.png"  rel="lightbox[2563]"><img src="http://blog.encodingit.ch/wp-content/uploads/2011/08/mbsa-300x265.png" alt="" title="mbsa" width="300" height="265" class="alignnone size-medium wp-image-2564" /></a></p>
<p>Das Tool ermöglicht es mir, auf einfache und bequeme Art und Weise eine Maschine (auch remote) mit einer von Microsoft gepflegten Datenbank mit allen Updates querzuvergleichen. Nach dem Vergleich erhalte ich eine Liste, mit allen Updates die mir noch fehlen. Als Bonus prüft es auch noch weitere, mögliche Sicherheitslücken, wie Passwörter ohne Ablaufdatum u.ä.:</p>
<p><a href="http://blog.encodingit.ch/wp-content/uploads/2011/08/report.png"  rel="lightbox[2563]"><img src="http://blog.encodingit.ch/wp-content/uploads/2011/08/report-232x300.png" alt="" title="report" width="232" height="300" class="alignnone size-medium wp-image-2565" /></a></p>
<p><span id="more-2563"></span></p>
<p>Doch beim Versuch meine Server zu prüfen habe ich den Fehler erhalten, dass eine Prüfung nicht möglich sei, weil die Windows Firewall blocken würde. Doch ganz ausschalten war für mich auch nicht wirklich eine Option, weshalb ich mich auf die Suche nach den verwendeten Ports gemacht habe. Fündig wurde ich schlussendlich bei Microsoft Technet:</p>
<p>TCP 135<br />
TCP 139<br />
TCP 445<br />
UDP 137<br />
UDP 138</p>
<p>Also habe ich bei der Windows-Firewall auf den Servern eine Ausnahme zugefügt:</p>
<p><a href="http://blog.encodingit.ch/wp-content/uploads/2011/08/port.png"  rel="lightbox[2563]"><img src="http://blog.encodingit.ch/wp-content/uploads/2011/08/port-300x201.png" alt="" title="port" width="300" height="201" class="alignnone size-medium wp-image-2567" /></a>  <a href="http://blog.encodingit.ch/wp-content/uploads/2011/08/enterports.png"  rel="lightbox[2563]"><img src="http://blog.encodingit.ch/wp-content/uploads/2011/08/enterports-300x201.png" alt="" title="enterports" width="300" height="201" class="alignnone size-medium wp-image-2568" /></a>  <a href="http://blog.encodingit.ch/wp-content/uploads/2011/08/allowconnections.png"  rel="lightbox[2563]"><img src="http://blog.encodingit.ch/wp-content/uploads/2011/08/allowconnections-300x201.png" alt="" title="allowconnections" width="300" height="201" class="alignnone size-medium wp-image-2569" /></a>  <a href="http://blog.encodingit.ch/wp-content/uploads/2011/08/domain.png"  rel="lightbox[2563]"><img src="http://blog.encodingit.ch/wp-content/uploads/2011/08/domain-300x201.png" alt="" title="domain" width="300" height="201" class="alignnone size-medium wp-image-2570" /></a>  <a href="http://blog.encodingit.ch/wp-content/uploads/2011/08/desc.png"  rel="lightbox[2563]"><img src="http://blog.encodingit.ch/wp-content/uploads/2011/08/desc-300x201.png" alt="" title="desc" width="300" height="201" class="alignnone size-medium wp-image-2571" /></a></p>
<p>Das selbe natürlich nochmals für UDP und schon können die Server geprüft werden <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.encodingit.ch/2011/08/die-updates-im-griff-mit-mbsa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cobbler mit openSUSE</title>
		<link>http://blog.encodingit.ch/2011/06/cobbler-mit-opensuse/</link>
		<comments>http://blog.encodingit.ch/2011/06/cobbler-mit-opensuse/#comments</comments>
		<pubDate>Wed, 15 Jun 2011 16:50:48 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Server]]></category>
		<category><![CDATA[Suse]]></category>
		<category><![CDATA[Cobbler]]></category>
		<category><![CDATA[Planet]]></category>
		<category><![CDATA[PXE]]></category>

		<guid isPermaLink="false">http://blog.encodingit.ch/?p=2423</guid>
		<description><![CDATA[Für eine Testumgebung musste ich heute 30 neue Maschinen installieren. Und da ich zu faul war, alles von Hand zu installieren, musste eine andere Lösung her.
Und da ich Cobbler, ein System aus dem Hause von Red Hat, bereits kenne, war dies mein erster Gedanke - auch wenn es an Vergewaltigung grenzt!
Das könnte dich auch interessieren:<ol>
<li><a href='http://blog.encodingit.ch/2011/05/opensuse-mit-asp-net-unterstutzung/' rel='bookmark' title='OpenSUSE mit ASP.NET-Unterstützung'>OpenSUSE mit ASP.NET-Unterstützung</a> <small>Für einen Kunden habe ich letzthin ein OpenSUSE installiert. Neben...</small></li>
<li><a href='http://blog.encodingit.ch/2011/03/dynamic-host-configuration-protocol/' rel='bookmark' title='Dynamic Host Configuration Protocol'>Dynamic Host Configuration Protocol</a> <small>Ein anderer Bestandteil von LPIC 201 ist DHCP. Doch bevor...</small></li>
</ol><img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></description>
			<content:encoded><![CDATA[<p>Für eine Testumgebung musste ich heute 30 neue Maschinen installieren. Und da ich zu faul war, alles von Hand zu installieren, musste eine andere Lösung her.<br />
Da ich Cobbler, ein System aus dem Hause Red Hat, bereits kenne, war dies mein erster Gedanke &#8211; auch wenn es an Vergewaltigung grenzt, schliesslich will ich ja openSUSE 11.4 installieren! <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Also habe ich ein System von Hand aufgesetzt und darauf Cobbler samt Webinterface und TFTP installiert:</p>
<pre class="brush: bash; title: ; notranslate">
zypper ar http://download.opensuse.org/distribution/11.4/repo/oss/ oss
zypper ar http://download.opensuse.org/update/11.4/ updates
zypper ar http://download.opensuse.org/repositories/systemsmanagement/openSUSE_11.4/ cobbler
zypper ref -s
zypper install apache2-mod_python
zypper install cobbler cobbler-web atftp dhcp-server
</pre>
<p>Da ich während dem Installieren nicht ungebetene Besucher in meinem System will, aktiviere ich die Authentifizierung für das Webinterface:</p>
<pre class="brush: bash; title: ; notranslate">
sed -i 's/module = authn_denyall/module = authn_configfile/' /etc/cobbler/modules.conf
</pre>
<p>Dann muss ich noch die passende IP einfügen:</p>
<pre class="brush: bash; title: ; notranslate">
IP=&quot;192.168.1.10&quot;
sed -i &quot;s/^server: 127.0.0.1/server: $IP/&quot; /etc/cobbler/settings
sed -i &quot;s/^next_server: 127.0.0.1/next_server: $IP/&quot; /etc/cobbler/settings
</pre>
<p>Da meine Maschinen auch gleich via Netzwerk booten sollen, muss ich den DHCP noch an Cobbler übergeben:</p>
<pre class="brush: bash; title: ; notranslate">
sed -i 's/^manage_dhcp: 0/manage_dhcp: 1/' /etc/cobbler/settings
</pre>
<p>Nun darf die dhcpd.conf-Datei nicht mehr direkt bearbeitet werden. Dazu gibt es nun das Template unter /etc/cobbler/dhcpd.template:</p>
<pre class="brush: bash; title: ; notranslate">
# ******************************************************************
# Cobbler managed dhcpd.conf file
#
# generated from cobbler dhcp.conf template ($date)
# Do NOT make changes to /etc/dhcpd.conf. Instead, make your changes
# in /etc/cobbler/dhcp.template, as /etc/dhcpd.conf will be
# overwritten.
#
# ******************************************************************

ddns-update-style interim;

allow booting;
allow bootp;

ignore client-updates;
set vendorclass = option vendor-class-identifier;

subnet 192.168.1.0 netmask 255.255.255.0 {
     option routers             192.168.1.1;
     option domain-name-servers 192.168.1.9;
     option subnet-mask         255.255.255.0;
     range dynamic-bootp        192.168.1.150 192.168.1.254;
     filename                   &quot;pxelinux.0&quot;;
     default-lease-time         21600;
     max-lease-time             43200;
     next-server                $next_server;
}

#for dhcp_tag in $dhcp_tags.keys():
    ## group could be subnet if your dhcp tags line up with your subnets
    ## or really any valid dhcpd.conf construct ... if you only use the
    ## default dhcp tag in cobbler, the group block can be deleted for a
    ## flat configuration
# group for Cobbler DHCP tag: $dhcp_tag
group {
        #for mac in $dhcp_tags[$dhcp_tag].keys():
            #set iface = $dhcp_tags[$dhcp_tag][$mac]
    host $iface.name {
        hardware ethernet $mac;
        #if $iface.ip_address:
        fixed-address $iface.ip_address;
        #end if
        #if $iface.hostname:
        option host-name &quot;$iface.hostname&quot;;
        #end if
        #if $iface.subnet:
        option subnet-mask $iface.subnet;
        #end if
        #if $iface.gateway:
        option routers $iface.gateway;
        #end if
        filename &quot;$iface.filename&quot;;
        ## Cobbler defaults to $next_server, but some users
        ## may like to use $iface.system.server for proxied setups
        next-server $next_server;
        ## next-server $iface.next_server;
    }
        #end for
}
#end for
</pre>
<p><span id="more-2423"></span></p>
<p>Und damit die Maschinen auch nicht ewig neustarten, wird noch eine letzte Anpassung durchgeführt:</p>
<pre class="brush: bash; title: ; notranslate">
sed -i 's/^pxe_just_once: 0/pxe_just_once: 1/' /etc/cobbler/settings
</pre>
<p>Nach dem neustarten der Services und einer letzten Einstellung ist die Installation schon abgeschlossen:</p>
<pre class="brush: bash; title: ; notranslate">
insserv apache2
insserv cobblerd
insserv dhcpd
rcapache2 restart
rccobblerd restart
rcatftpd start
insserv atftpd
sed -i 's/^DHCPD_INTERFACE=&quot;&quot;/DHCPD_INTERFACE=&quot;eth0&quot;/' /etc/sysconfig/dhcpd
cobbler get-loaders
cobbler sync
rm -f /etc/dhcpd.conf
ln -s /etc/dhcp/dhcpd.conf /etc/dhcpd.conf
rcdhcpd restart
rccobblerd restart
cobbler sync
</pre>
<p>Einloggen kann ich mich nun unter http://192.168.1.10/cobbler_web mit dem Benutzername &#8220;cobbler&#8221; und dem Passwort &#8220;cobbler&#8221;.</p>
<p>Nun muss ich openSUSE zu Cobbler zufügen. Dazu lade ich zuerst das Image herunter und mounte es unter /mnt:</p>
<pre class="brush: bash; title: ; notranslate">
wget http://mirror.switch.ch/ftp/mirror/opensuse/distribution/11.4/iso/openSUSE-11.4-DVD-x86_64.iso
mount -o loop -t iso9660 openSUSE-11.4-DVD-x86_64.iso /mnt
</pre>
<p>Dann kann ich das Image hinzufügen im GUI über den Punkt &#8220;Import DVD&#8221; und unter &#8220;Profile&#8221; ein neues Profil anlegen:</p>
<p><a href="http://blog.encodingit.ch/wp-content/uploads/2011/06/profile_cobbler.png"  rel="lightbox[2423]"><img src="http://blog.encodingit.ch/wp-content/uploads/2011/06/profile_cobbler-300x167.png" alt="" title="profile_cobbler" width="300" height="167" class="alignnone size-medium wp-image-2432" /></a></p>
<p>Doch bevor das geht, muss ich eine Kickstart-Datei erstellen. Diese wird unter /var/lib/cobbler/kickstart angelegt. Eine solche Datei kann mit autoyast2 generiert werden. Am Schluss würde alles dann etwa so aussehen:</p>
<pre class="brush: bash; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;!DOCTYPE profile&gt;
&lt;profile xmlns=&quot;http://www.suse.com/1.0/yast2ns&quot; xmlns:config=&quot;http://www.suse.com/1.0/configns&quot;&gt;
  &lt;firewall&gt;
    &lt;enable_firewall config:type=&quot;boolean&quot;&gt;false&lt;/enable_firewall&gt;
    &lt;start_firewall config:type=&quot;boolean&quot;&gt;false&lt;/start_firewall&gt;
  &lt;/firewall&gt;
  &lt;general&gt;
    &lt;ask-list config:type=&quot;list&quot;/&gt;
    &lt;mode&gt;
      &lt;confirm config:type=&quot;boolean&quot;&gt;false&lt;/confirm&gt;
      &lt;final_reboot config:type=&quot;boolean&quot;&gt;true&lt;/final_reboot&gt;
    &lt;/mode&gt;
    &lt;mouse&gt;
      &lt;id&gt;none&lt;/id&gt;
    &lt;/mouse&gt;
    &lt;proposals config:type=&quot;list&quot;/&gt;
    &lt;signature-handling&gt;
      &lt;accept_file_without_checksum config:type=&quot;boolean&quot;&gt;true&lt;/accept_file_without_checksum&gt;
      &lt;accept_non_trusted_gpg_key config:type=&quot;boolean&quot;&gt;true&lt;/accept_non_trusted_gpg_key&gt;
      &lt;accept_unknown_gpg_key config:type=&quot;boolean&quot;&gt;true&lt;/accept_unknown_gpg_key&gt;
      &lt;accept_unsigned_file config:type=&quot;boolean&quot;&gt;true&lt;/accept_unsigned_file&gt;
      &lt;accept_verification_failed config:type=&quot;boolean&quot;&gt;true&lt;/accept_verification_failed&gt;
      &lt;import_gpg_key config:type=&quot;boolean&quot;&gt;true&lt;/import_gpg_key&gt;
    &lt;/signature-handling&gt;
  &lt;/general&gt;
 &lt;networking&gt;
    &lt;keep_install_network config:type=&quot;boolean&quot;&gt;true&lt;/keep_install_network&gt;
      &lt;dns&gt;
        &lt;dhcp_hostname config:type=&quot;boolean&quot;&gt;true&lt;/dhcp_hostname&gt;
        &lt;dhcp_resolv config:type=&quot;boolean&quot;&gt;true&lt;/dhcp_resolv&gt;
        &lt;hostname&gt;$hostname&lt;/hostname&gt;
      &lt;/dns&gt;
  &lt;/networking&gt;
 &lt;partitioning config:type=&quot;list&quot;&gt;
        $SNIPPET('snippets_sles/partitioning_default_lvm_sles11')
  &lt;/partitioning&gt;
  &lt;software&gt;
        $SNIPPET('snippets_sles/packages_os11')
  &lt;/software&gt;
  &lt;timezone&gt;
    &lt;hwclock&gt;UTC&lt;/hwclock&gt;
    &lt;timezone&gt;Europe/Zurich&lt;/timezone&gt;
  &lt;/timezone&gt;
  &lt;users config:type=&quot;list&quot;&gt;
    &lt;user&gt;
      &lt;encrypted config:type=&quot;boolean&quot;&gt;true&lt;/encrypted&gt;
      &lt;fullname&gt;root&lt;/fullname&gt;
      &lt;gid&gt;0&lt;/gid&gt;
      &lt;home&gt;/root&lt;/home&gt;
      &lt;password_settings&gt;
        &lt;expire&gt;&lt;/expire&gt;
        &lt;flag&gt;&lt;/flag&gt;
        &lt;inact&gt;&lt;/inact&gt;
        &lt;max&gt;&lt;/max&gt;
        &lt;min&gt;&lt;/min&gt;
        &lt;warn&gt;&lt;/warn&gt;
      &lt;/password_settings&gt;
      &lt;shell&gt;/bin/bash&lt;/shell&gt;
      &lt;uid&gt;0&lt;/uid&gt;
      &lt;user_password&gt;$rootpw&lt;/user_password&gt;
      &lt;username&gt;root&lt;/username&gt;
    &lt;/user&gt;
  &lt;/users&gt;
  &lt;report&gt;
    &lt;errors&gt;
      &lt;log config:type=&quot;boolean&quot;&gt;true&lt;/log&gt;
      &lt;show config:type=&quot;boolean&quot;&gt;true&lt;/show&gt;
      &lt;timeout config:type=&quot;integer&quot;&gt;0&lt;/timeout&gt;
    &lt;/errors&gt;
    &lt;messages&gt;
      &lt;log config:type=&quot;boolean&quot;&gt;true&lt;/log&gt;
      &lt;show config:type=&quot;boolean&quot;&gt;true&lt;/show&gt;
      &lt;timeout config:type=&quot;integer&quot;&gt;0&lt;/timeout&gt;
    &lt;/messages&gt;
    &lt;warnings&gt;
      &lt;log config:type=&quot;boolean&quot;&gt;true&lt;/log&gt;
      &lt;show config:type=&quot;boolean&quot;&gt;true&lt;/show&gt;
      &lt;timeout config:type=&quot;integer&quot;&gt;0&lt;/timeout&gt;
    &lt;/warnings&gt;
    &lt;yesno_messages&gt;
      &lt;log config:type=&quot;boolean&quot;&gt;true&lt;/log&gt;
      &lt;show config:type=&quot;boolean&quot;&gt;true&lt;/show&gt;
      &lt;timeout config:type=&quot;integer&quot;&gt;0&lt;/timeout&gt;
    &lt;/yesno_messages&gt;
  &lt;/report&gt;
  &lt;runlevel&gt;
    &lt;default&gt;5&lt;/default&gt;
      &lt;service&gt;
        &lt;service_name&gt;sshd&lt;/service_name&gt;
        &lt;service_start&gt;3 5&lt;/service_start&gt;
        &lt;service_status&gt;enable&lt;/service_status&gt;
      &lt;/service&gt;
  &lt;/runlevel&gt;
  &lt;scripts&gt;
    &lt;post-scripts config:type=&quot;list&quot;&gt;
      &lt;script&gt;
        &lt;debug config:type=&quot;boolean&quot;&gt;false&lt;/debug&gt;
        &lt;feedback config:type=&quot;boolean&quot;&gt;false&lt;/feedback&gt;
        &lt;feedback_type&gt;&lt;/feedback_type&gt;
        &lt;filename&gt;post_install&lt;/filename&gt;
        &lt;interpreter&gt;shell&lt;/interpreter&gt;
        &lt;location&gt;&lt;![CDATA[]]&gt;&lt;/location&gt;
        &lt;network_needed config:type=&quot;boolean&quot;&gt;true&lt;/network_needed&gt;
        &lt;notification&gt;Bitte warten ...&lt;/notification&gt;
        &lt;source&gt;&lt;![CDATA[/etc/init.d/sshd restart
echo 'search encodingit.ch' &gt;&gt; /etc/resolv.conf
chkconfig sshd on
zypper update -y
zypper dist-upgrade -y
cd /root
mkdir --mode=700 .ssh
cat &gt;&gt; .ssh/authorized_keys &lt;&lt; &quot;PUBLIC_KEY&quot;
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/tGYAdCxqFs8xuryisenGmk4ChEutd3Xi7WfMZsafMyGrvtBBFWUInKeF7G3GE85AxP4G4wOdn2Au3k23jSpfvbP5O/NIEMNizlzMFChu7NDC57NwMm/n+/Y6HMgHZs+LVavKrVP9MUMfif3+odOUYVxK+8BwP8So1K21UJcIgYhd48Fqw9aBYd+jXvg/QFAnXGCIARNsn51kkWYci9LuoApVg0ktJjnHIvxgs75hZsmiXH/VqU/MCv90oe0OBN1C4vABN5XIPjzOZ0HX8MQBITAdujjWqdqzictkz5vk6O0QWDVxzsxz4wgJgnF7fEGxd7t/8mInzEqMbJe4C/iJ root@cobbler
PUBLIC_KEY
chmod 600 .ssh/authorized_keys]]&gt;&lt;/source&gt;
      &lt;/script&gt;
    &lt;/post-scripts&gt;
  &lt;/scripts&gt;
&lt;/profile&gt;
</pre>
<p>ACHTUNG: Wer wie ich kein DNS im Netzwerk hat, der muss unter dem Punkt &#8220;Distro&#8221; bei &#8220;Kernel Options&#8221; den Hostnamen von Cobbler durch die IP ersetzen, damit alles klappt.</p>
<p>Damit auch alles problemlos durchläuft, müssen noch ein paar Snippets eingefügt werden unter /var/lib/cobbler/snippets/snippets_sles. So partitioning_default_lvm_sles11:</p>
<pre class="brush: bash; title: ; notranslate">
# requires: ksmeta Swap : (optional) containing the size of swap in megabytes
    &lt;drive&gt;
      &lt;initialize config:type=&quot;boolean&quot;&gt;true&lt;/initialize&gt;
      &lt;partitions config:type=&quot;list&quot;&gt;
        &lt;partition&gt;
          &lt;create config:type=&quot;boolean&quot;&gt;true&lt;/create&gt;
          &lt;crypt_fs config:type=&quot;boolean&quot;&gt;false&lt;/crypt_fs&gt;
          &lt;filesystem config:type=&quot;symbol&quot;&gt;ext3&lt;/filesystem&gt;
          &lt;format config:type=&quot;boolean&quot;&gt;true&lt;/format&gt;
          &lt;loop_fs config:type=&quot;boolean&quot;&gt;false&lt;/loop_fs&gt;
          &lt;mount&gt;/boot&lt;/mount&gt;
          &lt;mountby config:type=&quot;symbol&quot;&gt;device&lt;/mountby&gt;
          &lt;partition_id config:type=&quot;integer&quot;&gt;131&lt;/partition_id&gt;
          &lt;partition_nr config:type=&quot;integer&quot;&gt;1&lt;/partition_nr&gt;
          &lt;resize config:type=&quot;boolean&quot;&gt;false&lt;/resize&gt;
          &lt;size&gt;500M&lt;/size&gt;
        &lt;/partition&gt;
        &lt;partition&gt;
          &lt;create config:type=&quot;boolean&quot;&gt;true&lt;/create&gt;
          &lt;lvm_group&gt;vg00&lt;/lvm_group&gt;
          &lt;mountby config:type=&quot;symbol&quot;&gt;device&lt;/mountby&gt;
          &lt;partition_id config:type=&quot;integer&quot;&gt;142&lt;/partition_id&gt;
          &lt;partition_nr config:type=&quot;integer&quot;&gt;2&lt;/partition_nr&gt;
          &lt;resize config:type=&quot;boolean&quot;&gt;false&lt;/resize&gt;
          &lt;size&gt;max&lt;/size&gt;
        &lt;/partition&gt;
      &lt;/partitions&gt;
      &lt;pesize&gt;&lt;/pesize&gt;
      &lt;type config:type=&quot;symbol&quot;&gt;CT_DISK&lt;/type&gt;
      &lt;use&gt;all&lt;/use&gt;
    &lt;/drive&gt;
    &lt;drive&gt;
      &lt;device&gt;/dev/vg00&lt;/device&gt;
      &lt;initialize config:type=&quot;boolean&quot;&gt;true&lt;/initialize&gt;
      &lt;partitions config:type=&quot;list&quot;&gt;
        &lt;partition&gt;
          &lt;create config:type=&quot;boolean&quot;&gt;true&lt;/create&gt;
          &lt;crypt_fs config:type=&quot;boolean&quot;&gt;false&lt;/crypt_fs&gt;
          &lt;filesystem config:type=&quot;symbol&quot;&gt;swap&lt;/filesystem&gt;
          &lt;format config:type=&quot;boolean&quot;&gt;true&lt;/format&gt;
          &lt;loop_fs config:type=&quot;boolean&quot;&gt;false&lt;/loop_fs&gt;
          &lt;lv_name&gt;lv_swap&lt;/lv_name&gt;
          &lt;mount&gt;swap&lt;/mount&gt;
          &lt;mountby config:type=&quot;symbol&quot;&gt;device&lt;/mountby&gt;
          &lt;partition_id config:type=&quot;integer&quot;&gt;130&lt;/partition_id&gt;
          &lt;resize config:type=&quot;boolean&quot;&gt;false&lt;/resize&gt;
#if $getVar(&quot;Swap&quot;,&quot;&quot;) != &quot;&quot;
          &lt;size&gt;${Swap}M&lt;/size&gt;
#else
          &lt;size&gt;2048M&lt;/size&gt;
#end if
        &lt;/partition&gt;
        &lt;partition&gt;
          &lt;create config:type=&quot;boolean&quot;&gt;true&lt;/create&gt;
          &lt;crypt_fs config:type=&quot;boolean&quot;&gt;false&lt;/crypt_fs&gt;
          &lt;filesystem config:type=&quot;symbol&quot;&gt;ext3&lt;/filesystem&gt;
          &lt;format config:type=&quot;boolean&quot;&gt;true&lt;/format&gt;
          &lt;loop_fs config:type=&quot;boolean&quot;&gt;false&lt;/loop_fs&gt;
          &lt;lv_name&gt;lv_root&lt;/lv_name&gt;
          &lt;mount&gt;/&lt;/mount&gt;
          &lt;mountby config:type=&quot;symbol&quot;&gt;device&lt;/mountby&gt;
          &lt;partition_id config:type=&quot;integer&quot;&gt;131&lt;/partition_id&gt;
          &lt;resize config:type=&quot;boolean&quot;&gt;false&lt;/resize&gt;
          &lt;size&gt;max&lt;/size&gt;
        &lt;/partition&gt;
      &lt;/partitions&gt;
      &lt;pesize&gt;4M&lt;/pesize&gt;
      &lt;type config:type=&quot;symbol&quot;&gt;CT_LVM&lt;/type&gt;
      &lt;use&gt;all&lt;/use&gt;
    &lt;/drive&gt;
</pre>
<p>Und auch noch packages_os11:</p>
<pre class="brush: bash; title: ; notranslate">
&lt;patterns config:type=&quot;list&quot;&gt;
      &lt;pattern&gt;base&lt;/pattern&gt;
      &lt;pattern&gt;apparmor&lt;/pattern&gt;
      &lt;pattern&gt;gnome&lt;/pattern&gt;
      &lt;pattern&gt;file_server&lt;/pattern&gt;
      &lt;pattern&gt;x11&lt;/pattern&gt;
    &lt;/patterns&gt;
    &lt;packages  config:type=&quot;list&quot;&gt;
      &lt;package&gt;nss_ldap&lt;/package&gt;
      &lt;package&gt;pam_ldap&lt;/package&gt;
## required for kdump
      &lt;package&gt;kexec-tools&lt;/package&gt;
      &lt;package&gt;kdump&lt;/package&gt;
    &lt;/packages&gt;
</pre>
<p>Nun kann ich alle Systeme erfassen und zufügen. Da dies mehrere sind, habe ich das ganze über die Konsole gemacht:</p>
<pre class="brush: bash; title: ; notranslate">
hostname=Node1
mac=00:14:4F:20:03:08
ip=192.168.1.21
cobbler system edit --name=$hostname --hostname=$hostname.encodingit.ch --netboot-enable=true --dhcp-tag=$hostname --dns-name=$hostname --ip-address=$ip --mac-address=$mac
</pre>
<p>Zum Glück starten alle Maschinen direkt ab Netzwerk, wodurch ich die Maschinen nur via iLO neustarten musste. Dazu wiederrum habe ich das folgende Script mit expect geschrieben, wo ich nur noch den Hostnamen oder die IP vom iLO übergeben muss:</p>
<pre class="brush: bash; title: ; notranslate">
#!/usr/bin/expect
#
# Version 1.0
# by Patrick Schmid
#
spawn ssh root@[lindex $argv 0]

expect &quot;Password:&quot; {send &quot;password\r&quot;}

expect &quot;&gt; &quot; {send &quot;reset /SYS -script\r&quot;}

expect {
        &quot;Performing&quot; {puts stdout &quot;\nDone&quot;}
  default {puts stdout &quot;\nError&quot;}
}
</pre>
<p>Doch vorher noch das System synchronisieren:</p>
<pre class="brush: bash; title: ; notranslate">
cobbler sync
</pre>
<p>Nach etwa 20 Minuten sind alle Systeme installiert und konfiguriert. Voilà <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Vielen Dank an <a target="_blank" href="http://www.swissunixsupport.com/" >Gavin</a> und <a target="_blank" href="http://ugansert.blogspot.com/2011/04/cobbler-on-opensuse.html" >Uwe</a> für die Hilfe!</p>
<br /><p>Das könnte dich auch interessieren:<ol>
<li><a href='http://blog.encodingit.ch/2011/05/opensuse-mit-asp-net-unterstutzung/' rel='bookmark' title='OpenSUSE mit ASP.NET-Unterstützung'>OpenSUSE mit ASP.NET-Unterstützung</a> <small>Für einen Kunden habe ich letzthin ein OpenSUSE installiert. Neben...</small></li>
<li><a href='http://blog.encodingit.ch/2011/03/dynamic-host-configuration-protocol/' rel='bookmark' title='Dynamic Host Configuration Protocol'>Dynamic Host Configuration Protocol</a> <small>Ein anderer Bestandteil von LPIC 201 ist DHCP. Doch bevor...</small></li>
</ol></p><img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.encodingit.ch/2011/06/cobbler-mit-opensuse/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Mehr Sicherheit durch mod_security</title>
		<link>http://blog.encodingit.ch/2011/05/mehr-sicherheit-durch-mod_security/</link>
		<comments>http://blog.encodingit.ch/2011/05/mehr-sicherheit-durch-mod_security/#comments</comments>
		<pubDate>Wed, 18 May 2011 08:06:29 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Server]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Planet]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://blog.encodingit.ch/?p=2187</guid>
		<description><![CDATA[Mod_Security ist eine Software Firewall, welche kontrolliert, welche Eingaben auf einem Apache gemacht und was für Daten übermittelt werden. Diese werden dann mit einer Handvoll Regeln verglichen, wodurch schädliche Abfragen erkannt und geblockt werden.
Das könnte dich auch interessieren:<ol>
<li><a href='http://blog.encodingit.ch/2011/03/mehr-sicherheit-durch-openvpn/' rel='bookmark' title='Mehr Sicherheit durch OpenVPN'>Mehr Sicherheit durch OpenVPN</a> <small>Sicherheit wird ein immer wichtigeres Thema in der IT. Klar...</small></li>
<li><a href='http://blog.encodingit.ch/2011/05/opensuse-mit-asp-net-unterstutzung/' rel='bookmark' title='OpenSUSE mit ASP.NET-Unterstützung'>OpenSUSE mit ASP.NET-Unterstützung</a> <small>Für einen Kunden habe ich letzthin ein OpenSUSE installiert. Neben...</small></li>
</ol><img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></description>
			<content:encoded><![CDATA[<p>Mod_Security ist eine Software Firewall, welche kontrolliert, welche Eingaben auf einem Apache gemacht und was für Daten übermittelt werden. Diese werden dann mit einer Handvoll Regeln verglichen, wodurch schädliche Abfragen erkannt und geblockt werden.</p>
<p>Unter Debian und Ubuntu heisst das benötigte Paket libapache-mod-security:</p>
<pre class="brush: bash; title: ; notranslate">
apt-get install libapache-mod-security -y
</pre>
<p>Nach dem Installieren aus den Paketquellen wird eine Datei unter /etc/apache2/conf.d/modsecurity2.conf angelegt und mit folgendem Inhalt ergänzt:</p>
<pre class="brush: bash; title: ; notranslate">
&lt;ifmodule mod_security2.c&gt;
Include conf.d/modsecurity/*.conf
&lt;/ifmodule&gt;
</pre>
<p>Danach werden die nötigen Ordner erstellt und verlinkt:</p>
<pre class="brush: bash; title: ; notranslate">
sudo mkdir /var/log/apache2/mod_security
sudo ln -s /var/log/apache2/mod_security/ /etc/apache2/logs
</pre>
<p>Und die aktuellsten Regeln heruntergeladen:</p>
<pre class="brush: bash; title: ; notranslate">
sudo mkdir /etc/apache2/conf.d/modsecurity
cd /etc/apache2/conf.d/modsecurity
sudo wget http://www.modsecurity.org/download/modsecurity-core-rules_2.5-1.6.1.tar.gz
sudo tar xzvf modsecurity-core-rules_2.5-1.6.1.tar.gz
rm -f CHANGELOG LICENSE README modsecurity-core-rules_2.5-1.6.1.tar.gz
</pre>
<p>Nun noch das Modul aktivieren und Apache neustarten:</p>
<pre class="brush: bash; title: ; notranslate">
sudo a2enmod mod-security
sudo /etc/init.d/apache2 restart
</pre>
<p>Und von nun an wird der Apache durch Mod_Security geschützt.<br />
Prüfen kann man das ganz einfach! Es muss eine Datei erstellt werden, mit folgendem Inhalt:</p>
<pre class="brush: php; title: ; notranslate">
&lt;?
        $secret_file = $_GET['secret_file'];
        include ($secret_file);
?&gt;
</pre>
<p>Nun ruft man die Datei auf unter http://localhost/index.php?secret_file=/etc/passwd. Erhält man anstelle der /etc/passwd Datei die folgende Ausgabe, so arbeitet mod_security richtig:</p>
<pre class="brush: plain; title: ; notranslate">
Method Not Implemented
GET to /index.php not supported.
</pre>
<p>Doch Vorsicht: mod_security ist nicht überall geeignet. So hat zum Beispiel auch mein Hoster das eingesetzt, und musste es für meinen Blog deaktivieren, dass ich all die Code-Schnipsel posten kann <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Wer von euch hatte denn schon mal wirkliche Angriffe auf seinem Webserver? Konntet ihr standhalten oder seid ihr eingebrochen? Und in welcher Art lief der Angriff ab?</p>
<br /><p>Das könnte dich auch interessieren:<ol>
<li><a href='http://blog.encodingit.ch/2011/03/mehr-sicherheit-durch-openvpn/' rel='bookmark' title='Mehr Sicherheit durch OpenVPN'>Mehr Sicherheit durch OpenVPN</a> <small>Sicherheit wird ein immer wichtigeres Thema in der IT. Klar...</small></li>
<li><a href='http://blog.encodingit.ch/2011/05/opensuse-mit-asp-net-unterstutzung/' rel='bookmark' title='OpenSUSE mit ASP.NET-Unterstützung'>OpenSUSE mit ASP.NET-Unterstützung</a> <small>Für einen Kunden habe ich letzthin ein OpenSUSE installiert. Neben...</small></li>
</ol></p><img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.encodingit.ch/2011/05/mehr-sicherheit-durch-mod_security/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Finde die DVD!</title>
		<link>http://blog.encodingit.ch/2011/01/finde-die-dvd/</link>
		<comments>http://blog.encodingit.ch/2011/01/finde-die-dvd/#comments</comments>
		<pubDate>Fri, 07 Jan 2011 14:56:58 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Sun]]></category>

		<guid isPermaLink="false">http://blog.encodingit.ch/?p=1369</guid>
		<description><![CDATA[Heute habe ich versucht einen alten SunFire X4100 neu zu installieren.
Da das ISO aber remote nicht gemountet werden wollte, habe ich es gewagt, eine DVD in das Laufwerk einzulegen - ein grosser Fehler, wie sich gleich herausstellen sollte!<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></description>
			<content:encoded><![CDATA[<p>Heute habe ich versucht ein paar alten SunFire X4100 neu zu installieren, um darauf meinen eigenen HPC zu erstellen.<br />
Da das ISO aber remote nicht gemountet werden <del datetime="2011-01-07T14:08:24+00:00">konnte</del> wollte, habe ich es gewagt, eine DVD in das Laufwerk einzulegen &#8211; ein grosser Fehler, wie sich gleich herausstellen sollte!</p>
<p>Das Laufwerk war eines von der Sorte, wie man es von der PS3 her kennt, die CD wird nur reingeschoben, bis das Laufwerk sie dann automatisch einzieht &#8211; ein klassisches Laufwerk mit Schublade gibt es dabei nicht.</p>
<p>Die DVD habe ich also reingehalten, bis das System sie automatisch eingezogen hatte, so weit so gut.<br />
Doch dummerweise wurde keine DVD erkannt! Also habe ich den Auswurf-Knopf gedrückt, um die DVD wieder zu bekommen.<br />
Doch die Maschine dachte gar nicht daran, mir mein Eigentum wieder auszuspucken. Weder über den Hardware-Knopf zum Auswerfen, noch über das eject-Kommando auf der Konsole &#8211; na toll!</p>
<p>Also habe ich kurzerhand schweres Geschütz aufgefahren und den Koffer mit Feinwerkzeug geholt und mich auf die Suche nach meiner verschollenen DVD gemacht.</p>
<p><img src="http://blog.encodingit.ch/wp-content/uploads/2011/01/Foto-4-300x224.jpg" alt="" title="Foto 4" width="300" height="224" class="alignnone size-medium wp-image-1370" /></p>
<p>Zuerst musste das DVD-fressende Monster aus dem Rack befreit werden.</p>
<p><img src="http://blog.encodingit.ch/wp-content/uploads/2011/01/Foto-2-300x224.jpg" alt="" title="Foto 2" width="300" height="224" class="alignnone size-medium wp-image-1371" /></p>
<p><span id="more-1369"></span></p>
<p>Dann mussten die Disks dran glauben.</p>
<p><img src="http://blog.encodingit.ch/wp-content/uploads/2011/01/Foto-42-300x224.jpg" alt="" title="Foto 4(2)" width="300" height="224" class="alignnone size-medium wp-image-1372" /></p>
<p>Nun die erste Abdeckung lösen, um endliche die passende Schraube zu finden.</p>
<p><img src="http://blog.encodingit.ch/wp-content/uploads/2011/01/Foto-22-300x224.jpg" alt="" title="Foto 2(2)" width="300" height="224" class="alignnone size-medium wp-image-1373" /></p>
<p>Dann die Verkleidung lösen und die restliche Abdeckung entfernen.</p>
<p><img src="http://blog.encodingit.ch/wp-content/uploads/2011/01/Foto-5-300x224.jpg" alt="" title="Foto 5" width="300" height="224" class="alignnone size-medium wp-image-1374" /></p>
<p>Alle Kabel lösen und das Laufwerk hervor graben.</p>
<p><img src="http://blog.encodingit.ch/wp-content/uploads/2011/01/Foto-43-300x224.jpg" alt="" title="Foto 4(3)" width="300" height="224" class="alignnone size-medium wp-image-1375" /></p>
<p>Dann endlich war das Laufwerk in Reichweite.</p>
<p><img src="http://blog.encodingit.ch/wp-content/uploads/2011/01/Foto-13-300x224.jpg" alt="" title="Foto 1(3)" width="300" height="224" class="alignnone size-medium wp-image-1376" /></p>
<p>Bei diesem musste man zum Glück nur den Deckel abschrauben und voilà, da war sie!</p>
<p><img src="http://blog.encodingit.ch/wp-content/uploads/2011/01/Foto-23-300x224.jpg" alt="" title="Foto 2(3)" width="300" height="224" class="alignnone size-medium wp-image-1377" /></p>
<p>Nun alles wieder zusammensetzen und einbauen.<br />
Für meine nächsten Versuch, werde ich sicherlich ein externes Laufwerk verwenden&#8230;</p>
<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.encodingit.ch/2011/01/finde-die-dvd/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>FTP Server mit User Restriction</title>
		<link>http://blog.encodingit.ch/2010/10/ftp-server-mit-user-restriction/</link>
		<comments>http://blog.encodingit.ch/2010/10/ftp-server-mit-user-restriction/#comments</comments>
		<pubDate>Fri, 22 Oct 2010 10:45:03 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[FTP]]></category>
		<category><![CDATA[Planet]]></category>
		<category><![CDATA[Schweizermeisterschaft]]></category>

		<guid isPermaLink="false">http://blog.encodingit.ch/?p=1143</guid>
		<description><![CDATA[Wie ich bereits in einem vorigen Artikel beschrieben habe, war ich am letzten Freitag Teilnehmer der Informatik Schweizermeisterschaft. Unter Linux war dabei eine Aufgabe, einen FTP Server zu installieren, über welchen sich ein gegebener Benutzer einloggen kann, und die Dateien im Webordner bearbeiten und ergänzen kann.<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></description>
			<content:encoded><![CDATA[<p>Unter Linux gab es während der Informatik Schweizermeisterschaft eine Aufgabe, einen FTP Server zu installieren, über welchen sich ein gegebener Benutzer einloggen kann, und die Dateien im Webordner bearbeiten und ergänzen kann.</p>
<p>Diese Aufgabe lässt sich dabei relativ einfach bewerkstelligen. Als erstes muss man sich für einen der zahlreichen FTP-Server entscheiden. Ich habe mich zuerst an FTPD versucht, konnte diesen jedoch einfach mal so aus dem Kopf nicht konfigurieren, weshalb ich dann auf vsftpd umgestiegen bin.</p>
<p>Dieser wird über die Paketquelle installiert:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> vsftpd</pre></td></tr></table></div>

<p>Danach gilt es die Konfigurationsdatei zu suchen. Typisch unter Debian oder auch Ubuntu ist dabei der Ordner /etc/, in welchem ich auch die passende Datei vsftpd.conf gefunden habe.</p>
<p>Doch bevor spezifische Details eingestellt werden können, muss der Benutzer noch erstellt werden.<br />
Dieser besitzt als Homeverzeichnis den Webordner:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">adduser bmftp <span style="color: #660033;">--home</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www</pre></td></tr></table></div>

<p>Damit der User nun auch den Webordner verwenden kann, müssen wir diesen noch berechtigen:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">usermod <span style="color: #660033;">-a</span> <span style="color: #660033;">-G</span> www-data bmftp</pre></td></tr></table></div>

<p>Nun kann der FTP-Server konfiguriert werden.<br />
Dazu müssen zuerst der lokale Benutzer erlaubt werden:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">local_enable</span>=YES</pre></td></tr></table></div>

<p>Nun könnte man die Aufgabe theoretisch schon abschliessen, jedoch wären die Sicherheitseinstellungen viel zu schwach&#8230;<br />
<span id="more-1143"></span><br />
Deshalb beschränken wir noch den Zugriff auf den Benutzer bmftp:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">userlist_enable</span>=YES
<span style="color: #007800;">userlist_deny</span>=NO
<span style="color: #007800;">userlist_file</span>=<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>vsftpd.userlist</pre></td></tr></table></div>

<p>In der Datei selbst wird einfach den Namen bmftp gelistet:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;bmftp&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>vsftpd.userlist</pre></td></tr></table></div>

<p>Und damit der Benutzer nicht aus seinem für ihn vorgesehenen Verzeichnis verschwinden kann, wird auch das noch eingeschränkt:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">chroot_local_user</span>=YES</pre></td></tr></table></div>

<p>Nun nur noch den Server neustarten und gut ist es:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>vsftpd restart</pre></td></tr></table></div>

<p>Die gesamte Konfiguration sollte nun etwa so aussehen:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">anonymous_enable</span>=NO
<span style="color: #007800;">local_enable</span>=YES
<span style="color: #007800;">write_enable</span>=YES
<span style="color: #007800;">local_umask</span>=022
<span style="color: #007800;">dirmessage_enable</span>=YES
<span style="color: #007800;">xferlog_enable</span>=YES
<span style="color: #007800;">connect_from_port_20</span>=YES
<span style="color: #007800;">xferlog_file</span>=<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>log<span style="color: #000000; font-weight: bold;">/</span>vsftpd.log
<span style="color: #007800;">xferlog_std_format</span>=YES
<span style="color: #007800;">chroot_local_user</span>=YES
<span style="color: #007800;">chroot_list_enable</span>=NO
<span style="color: #007800;">listen</span>=YES
&nbsp;
<span style="color: #007800;">pam_service_name</span>=vsftpd
<span style="color: #007800;">userlist_enable</span>=YES
<span style="color: #007800;">userlist_deny</span>=NO
<span style="color: #007800;">userlist_file</span>=<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>vsftpd<span style="color: #000000; font-weight: bold;">/</span>userlist
<span style="color: #007800;">tcp_wrappers</span>=YES</pre></td></tr></table></div>

<p>Und schon ist ein FTP-Server installiert und die Teilaufgabe gelöst!</p>
<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.encodingit.ch/2010/10/ftp-server-mit-user-restriction/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OpenVZ unter Debian</title>
		<link>http://blog.encodingit.ch/2010/07/openvz-unter-debian/</link>
		<comments>http://blog.encodingit.ch/2010/07/openvz-unter-debian/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 08:20:17 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[OpenVZ]]></category>
		<category><![CDATA[Planet]]></category>
		<category><![CDATA[Virtualisierung]]></category>

		<guid isPermaLink="false">http://blog.encodingit.ch/?p=945</guid>
		<description><![CDATA[OpenVZ ist eine Virtualisierungstechnik für Linux. Damit lassen sich mehrere so genannte Virtual Private Server einrichten, die alle den Kernel und die Hardware des Host-Systems nutzen.<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></description>
			<content:encoded><![CDATA[<p>Neben verbreiteten Virtualisierungslösungen wie ESX, Xen und KVM existiert noch eine weitere, weniger verbreitete Methode:</p>
<blockquote><p>OpenVZ ist eine Virtualisierungstechnik für Linux. Damit lassen sich mehrere so genannte Virtual Private Server einrichten, die alle den Kernel und die Hardware des Host-Systems nutzen. Das Konzept ähnelt also anderen Techniken wie FreeBSD Jails und Solaris Zones. Auch als Gastsystem unterstützt OpenVZ ausschließlich Linux. Durch eine detaillierte Ressourcenaufteilung soll es möglich sein, sehr viele virtuelle Maschinen parallel auf einem physischen Computer zu betreiben, die alle streng voneinander isoliert sind. [<a target="_blank" href="http://www.golem.de/specials/openvz/" >golem.de</a>]</p></blockquote>
<p>Installieren kann man OpenVZ auf viele Linux basierten Betriebssysteme direkt aus den Paketquellen; im folgenden habe ich als Beispiel ein Debian (32bit) auf meinem DL380 G3 verwendet.</p>
<p>Zuerst müssen die passenden Kernel und Pakete installiert werden:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> linux-image-openvz-<span style="color: #000000;">686</span> vzctl vzquota cstream</pre></td></tr></table></div>

<p>Leider ist das Tool vzdump nicht mehr in den Paketquellen enthalten, ist aber essentiell um eine virtuelle Maschine im laufenden Betrieb zu sichern:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>download.openvz.org<span style="color: #000000; font-weight: bold;">/</span>contrib<span style="color: #000000; font-weight: bold;">/</span>utils<span style="color: #000000; font-weight: bold;">/</span>vzdump<span style="color: #000000; font-weight: bold;">/</span>vzdump_1.2-<span style="color: #000000;">4</span>_all.deb
<span style="color: #c20cb9; font-weight: bold;">dpkg</span> <span style="color: #660033;">-i</span> vzdump_1.2-<span style="color: #000000;">4</span>_all.deb</pre></td></tr></table></div>

<p>Danach müssen in der Datei <em>/etc/sysctl.conf</em> folgende Punkte ergänzt werden:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">net.ipv4.conf.default.proxy_arp = <span style="color: #000000;">0</span>
net.ipv4.conf.default.forwarding=<span style="color: #000000;">1</span>
kernel.sysrq = <span style="color: #000000;">1</span>
net.ipv4.conf.default.send_redirects = <span style="color: #000000;">1</span>
net.ipv4.conf.eth0.proxy_arp=<span style="color: #000000;">1</span></pre></td></tr></table></div>

<p>Nach dieser Anpassung darf nicht vergessen worden, die Konfiguration neu einzulesen:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">sysctl <span style="color: #660033;">-p</span></pre></td></tr></table></div>

<p>Nun muss der Server neugestartet werden, damit der OpenVZ-Kernel auch verwendet wird.</p>
<p>Nun ist OpenVZ soweit eingerichtet und die ersten &#8220;virtuellen&#8221; Maschinen können eingerichtet werden.<br />
Hier zeigt sich aber auch schon die erste Schwäche von dieser Virtualisierungslösung, denn entgegen anderen Methoden lassen sich mit OpenVZ nur genau das Betriebssystem mit dem Kernel für Guests verwenden, welcher auch der Host benutzt.</p>
<p>Nun da alles eingerichtet ist, können die ersten Templates heruntergeladen werden.<br />
Dazu müssen zuerst die Paketquellen angepasst werden:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;deb http://download.openvz.org/debian-systs lenny openvz&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>apt<span style="color: #000000; font-weight: bold;">/</span>sources.list</pre></td></tr></table></div>

<p>Das der neue Eintrag problemlos funktioniert, muss noch der passende Schlüssel nachgeladen werden:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">wget</span> <span style="color: #660033;">-q</span> http:<span style="color: #000000; font-weight: bold;">//</span>download.openvz.org<span style="color: #000000; font-weight: bold;">/</span>debian-systs<span style="color: #000000; font-weight: bold;">/</span>dso_archiv_signing_key.asc <span style="color: #660033;">-O-</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">apt-key</span> add -
<span style="color: #c20cb9; font-weight: bold;">apt-get</span> update</pre></td></tr></table></div>

<p>Nun sollten auch die passenden Templates in den Paketquellen gelistet werden:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">apt-cache</span> search openvz <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> vzctl</pre></td></tr></table></div>

<p>Damit ein Guest mit diesem Template eingerichtet werden kann, muss er vorher natürlich noch heruntergeladen und installiert werden:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> vzctl-ostmpl-debian-<span style="color: #000000;">4.0</span>-i386-minimal vzctl-ostmpl-debian-<span style="color: #000000;">5.0</span>-i386-minimal</pre></td></tr></table></div>

<p>Nun kann auch schon mit dem Einrichten des ersten Guests begonnen werden.</p>
<p>Die dazu zur Verfügung stehenden Templates sind unter <em>/var/lib/vz/template/cache/</em> gelistet.<br />
Hier zeigt sich nun ein Vorteil von OpenVZ gegenüber den alternativen Virtualisierungslösungen. Das einrichten eines neuen Guest dauert hier gerade mal ein paar Sekunden, während bei ESX oder Xen normalerweise stets die gesamte Installation durchlaufen werden muss. Das eintippen eines einfachen Befehls reicht schon aus:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">vzctl create <span style="color: #000000;">1</span> <span style="color: #660033;">--ostemplate</span> debian-<span style="color: #000000;">5.0</span>-i386-minimal <span style="color: #660033;">--config</span> vps.basic</pre></td></tr></table></div>

<p>Erhält man danach eine Ausgabe, wie die folgende, so war die Aktion erfolgreich:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">Creating VE private area <span style="color: #7a0874; font-weight: bold;">&#40;</span>debian-<span style="color: #000000;">5.0</span>-i386-minimal<span style="color: #7a0874; font-weight: bold;">&#41;</span>
Performing postcreate actions
VE private area was created</pre></td></tr></table></div>

<p>Nun hat man die Möglichkeit direkt Einstellungen für einen Guest vorzunehmen:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#Beim Booten aufstarten</span>
vzctl <span style="color: #000000; font-weight: bold;">set</span> <span style="color: #000000;">1</span> <span style="color: #660033;">--onboot</span> <span style="color: #c20cb9; font-weight: bold;">yes</span> <span style="color: #660033;">--save</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#Hostname setzen</span>
vzctl <span style="color: #000000; font-weight: bold;">set</span> <span style="color: #000000;">1</span> <span style="color: #660033;">--hostname</span> tux1.linux.ch <span style="color: #660033;">--save</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#IP Adresse setzen</span>
vzctl <span style="color: #000000; font-weight: bold;">set</span> <span style="color: #000000;">1</span> <span style="color: #660033;">--ipadd</span> 192.168.0.1 <span style="color: #660033;">--save</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#DNS Server setzen</span>
vzctl <span style="color: #000000; font-weight: bold;">set</span> <span style="color: #000000;">1</span> <span style="color: #660033;">--nameserver</span> 145.253.2.75 <span style="color: #660033;">--nameserver</span> 213.191.92.86 <span style="color: #660033;">--save</span></pre></td></tr></table></div>

<p>Alle nun gemachten Einstellungen werden in der Datei <em>/etc/vz/conf/1.conf</em> gespeichert.</p>
<p>Nun kann der Guest das erste mal gestartet und gleichzeitig auch noch das Rootpasswort angepasst werden:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">vzctl start <span style="color: #000000;">1</span>
vzctl <span style="color: #7a0874; font-weight: bold;">exec</span> <span style="color: #000000;">1</span> <span style="color: #c20cb9; font-weight: bold;">passwd</span></pre></td></tr></table></div>

<p>Will man den Guest direkt auf der Kommandozeile ansprechen, so kann dies entweder per SSH oder direkt über den Host passieren. Dazu kann folgendes Kommando verwendet werden:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">vzctl enter <span style="color: #000000;">1</span></pre></td></tr></table></div>

<p>Eine List mit allen virtuellen Maschinen erhält man mit dem Befehl <em>vzlist</em>:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">vzlist <span style="color: #660033;">-a</span></pre></td></tr></table></div>

<p>Weitere Informationen bekommt man durch die Manpages:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">man</span> vzctl</pre></td></tr></table></div>

<p>oder dem offiziellen <a target="_blank" href="http://wiki.openvz.org/Main_Page" >Wiki</a></p>
<p>Was ich bisher noch nicht finden konnte ist eine Möglichkeit mit <em>vzctl set 1 &#8230;</em> den Guest zu einer dynamischen IP Adresse zu zwingen.</p>
<p>Insgesamt ist es eine gute Möglichkeit um schnell und unkompliziert zu virtualisieren, jedoch wer viele Ansprüche hat und nicht immer das selbe Betriebssystem / die selbe Distribution verwendet, wird nie seinen Spass an OpenVZ haben.</p>
<p>Natürlich lässt sich alles problemlos auch auf andere Distributionen und Architekturen portieren, wobei die Namen, besonders für die Templates, angepasst werden müssen.</p>
<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.encodingit.ch/2010/07/openvz-unter-debian/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

