<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://www.xinux.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=192.168.241.1</id>
	<title>Xinux Wiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://www.xinux.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=192.168.241.1"/>
	<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php/Spezial:Beitr%C3%A4ge/192.168.241.1"/>
	<updated>2026-06-11T09:17:39Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://www.xinux.net/index.php?title=Icinga&amp;diff=4669</id>
		<title>Icinga</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Icinga&amp;diff=4669"/>
		<updated>2014-07-25T07:43:35Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* Install */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Icinca Classic=&lt;br /&gt;
=Postgres Anbindung=&lt;br /&gt;
==PPAPPA==&lt;br /&gt;
 add-apt-repository ppa:formorer/icinga&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install icinga icinga-doc icinga-idoutils postgresql libdbd-pgsql postgresql-client&lt;br /&gt;
&lt;br /&gt;
==Enable ido2db Daemon==&lt;br /&gt;
 vim /etc/default/icinga&lt;br /&gt;
 IDO2DB=yes&lt;br /&gt;
 &lt;br /&gt;
 service ido2db start&lt;br /&gt;
==Nagios Plugins==&lt;br /&gt;
 apt-get install nagios-plugins&lt;br /&gt;
==Enable idomod module==&lt;br /&gt;
 Check whether this has already been done in /etc/icinga/modules/idoutils.cfg. &lt;br /&gt;
 If not, copy the sample config over and restart Icinga to load the module. (Tip - if icinga.cfg does not contain&lt;br /&gt;
 cfg_dir=/etc/icinga/modules the config won't be included!).&lt;br /&gt;
&lt;br /&gt;
 cp /usr/share/doc/icinga-idoutils/examples/idoutils.cfg-sample /etc/icinga/modules/idoutils.cfg&lt;br /&gt;
&lt;br /&gt;
=Icinca Web=&lt;br /&gt;
==Additional Packages==&lt;br /&gt;
 sudo apt-get install php5 php5-cli php-pear php5-xmlrpc php5-xsl php5-gd php5-ldap php5-pgsql&lt;br /&gt;
&lt;br /&gt;
==Install==&lt;br /&gt;
 apt-get install icinga-web&lt;br /&gt;
&lt;br /&gt;
=clientside=&lt;br /&gt;
&lt;br /&gt;
es müssen folgende änderungen vorgenommen werden:&lt;br /&gt;
&lt;br /&gt;
 apt-get install nagios-nrpe-server&lt;br /&gt;
&lt;br /&gt;
link setzen damit nagios das plugin findet (ansonsten gibts ein &amp;quot;Unable to red Output&amp;quot;-Error&lt;br /&gt;
 ln -s /usr/local/sbin/check_openswan_tunnel /usr/lib/nagios/plugins/check_openswan_tunnel&lt;br /&gt;
&lt;br /&gt;
diese Zeilen anhängen /etc/nagios/nrpe.cfg&lt;br /&gt;
 command[check_all_disks]=/usr/lib/nagios/plugins/check_disk -w 15% -c 8% -e&lt;br /&gt;
 command[check_disk]=/usr/lib/nagios/plugins/check_disk -w 15% -c 8% -p $ARG1$&lt;br /&gt;
 command[check_tunnel]=sudo /usr/lib/nagios/plugins/check_openswan_tunnel -c  $ARG1$&lt;br /&gt;
&lt;br /&gt;
an /etc/sudoers anhängen:&lt;br /&gt;
 echo &amp;quot;nagios ALL=(ALL) NOPASSWD:/usr/lib/nagios/plugins/check_openswan_tunnel&amp;quot; &amp;gt;&amp;gt; /etc/sudoers&lt;br /&gt;
&lt;br /&gt;
=Mobile=&lt;br /&gt;
https://wiki.icinga.org/display/howtos/Setting+up+Icinga+Mobile&lt;br /&gt;
&lt;br /&gt;
==ubuntu==&lt;br /&gt;
*http://www.patrick-gotthard.de/icinga-mit-neuem-webinterface-unter-ubuntu-installieren&lt;br /&gt;
*http://askubuntu.com/questions/169033/how-to-install-icinga-on-ubuntu-12-04-monitor-remote-host&lt;br /&gt;
&lt;br /&gt;
=Workaround &amp;quot;SOCKET TIMEOUT&amp;quot;=&lt;br /&gt;
&lt;br /&gt;
“CRITICAL – Socket timeout after 10 seconds” error kann man leicht fixen, indem man die Checkfrequenz erhöht.&lt;br /&gt;
&lt;br /&gt;
Dies geschieht in der commands.cfg (liegt unter '''/etc/ininga/objects''') [Diese kann auch unter /usr/local/nagios/etc/objects/ oder /etc/nagios/ liegen] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dieses Case muss geändert werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define command {&lt;br /&gt;
 command_name    check_nrpe&lt;br /&gt;
 command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In diese Zeile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define command {&lt;br /&gt;
 command_name    check_nrpe&lt;br /&gt;
 command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -t 20&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man muss lediglich den Parameter &amp;quot;-t *sekundenanzahl*&amp;quot; anhängen&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Squid&amp;diff=4664</id>
		<title>Squid</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Squid&amp;diff=4664"/>
		<updated>2014-07-18T10:12:12Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* apache */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Der Einsatz von Computernetzwerken in Firmen jeglicher Größe hat in den letzten&lt;br /&gt;
Jahren stark zugenommen. Dabei haben viele Firmen neben dem&lt;br /&gt;
lokalen Netz auch eine Anbindung an ein öffentliches Netz und damit meist&lt;br /&gt;
auch Zugang zum Internet.&lt;br /&gt;
&lt;br /&gt;
Damit verbindet sich ein weltweiter Ausbau dieses Netzes und ein steigendes&lt;br /&gt;
Angebot an Serviceleistungen, die über das Internet angeboten werden. Als&lt;br /&gt;
neuere Technologie sei hier nur die Internettelefonie genannt. Dies bedeutet&lt;br /&gt;
allerdings auch, daß die zu übertragenden Datenmengen ständig zunehmen,&lt;br /&gt;
was zu Engpässen und langen Übertragungszeiten führt.&lt;br /&gt;
&lt;br /&gt;
Für die Unternehmen bedeuten die zunehmenden Datenmengen aber auch&lt;br /&gt;
in erheblichem Maße zunehmende Kosten. Deshalb sind Technologien&lt;br /&gt;
gefragt, die dabei helfen können, diese Datenmengen und damit auch die&lt;br /&gt;
Kosten entsprechend einzuschränken.&lt;br /&gt;
&lt;br /&gt;
Die Anbindung an öffentliche Netze bedeutet aber auch immer ein Risiko, da&lt;br /&gt;
es selten möglich ist, eine Verbindung nur in eine Richtung aufzubauen.&lt;br /&gt;
Dadurch bieten sich Angriffspunkte, die von einigen Leuten ausgenutzt&lt;br /&gt;
werden, um an Daten zu kommen oder Schaden in dem Netz anzurichten.&lt;br /&gt;
Auch hier herrscht großer Bedarf an neuen Lösungen, um einen Kom-promiß&lt;br /&gt;
zwischen Sicherheit und Kommunikation zu finden.&lt;br /&gt;
&lt;br /&gt;
Im Internetbereich bietet sich für beide Gebiete der Einsatz von Proxy-&lt;br /&gt;
Agenten an. Proxy ist das englische Wort für Stellvertreter. Und genau diese&lt;br /&gt;
Aufgabe soll ein Proxy-Agent übernehmen.&lt;br /&gt;
&lt;br /&gt;
Gerade bei großen Netzwerken macht sich der Einsatz eines solchen Proxy-&lt;br /&gt;
Agenten positiv bemerkbar, da er neben einer Verringerung der Netzlast im&lt;br /&gt;
und zum öffentlichen Netz auch einen Performancegewinn innerhalb des&lt;br /&gt;
lokalen Netzes bewirkt.&lt;br /&gt;
&lt;br /&gt;
=Einsatz von Proxy-Servern=&lt;br /&gt;
==Einsatzgebiete und Funktionalität==&lt;br /&gt;
Mit der immer größer werdenden Vernetzung und Globalisierung wachsen&lt;br /&gt;
auch immer mehr die Probleme der Betreiber von lokalen Netzen.&lt;br /&gt;
Einerseits müssen die Kosten für den Datentransfer mit dem Internet&lt;br /&gt;
gering gehalten werden und zum anderen stellt die Anbindung an ein&lt;br /&gt;
öffentliches Netz auch immer einen Angriffspunkt dar.&lt;br /&gt;
&lt;br /&gt;
Die Gefahren sind dabei recht vielfältig. Zum einen ist es in größeren&lt;br /&gt;
Netzwerken dem Administrator meist nicht möglich, die Konfiguration aller&lt;br /&gt;
Computer ständig zu überwachen und nach Sicherheitslücken zu suchen,&lt;br /&gt;
zumal oft auch die notwendige Software recht teuer ist oder vorhandene&lt;br /&gt;
sich nicht so verhält, wie man es gerne hätte. Zweitens ist eine Verbindung&lt;br /&gt;
ins Internet auch immer mit Datentransfer in beiden Richtungen&lt;br /&gt;
verbunden, wodurch von außen ein Angreifer durch getarnte Datenpakete&lt;br /&gt;
in das lokale Netz eindringen und dort Schaden anrichten kann. Hier seien&lt;br /&gt;
Computerviren in ihren vielen Erscheinungsformen erwähnt. Zum Dritten&lt;br /&gt;
stellen die Anwender selber eine gewisse Gefahr dar, indem sie den&lt;br /&gt;
Zugang zum Internet mißbräuchlich oder unbeabsichtigt nutzen, was sehr&lt;br /&gt;
hohe Kosten verursachen kann.&lt;br /&gt;
&lt;br /&gt;
Dieses Problem läßt sich im Internet mit Hilfe eines Proxy-Servers lösen.&lt;br /&gt;
Proxy ist das englische Wort für Stellvertreter. Wie der Name schon&lt;br /&gt;
vermuten läßt, tritt ein Proxy-Server als Stellvertreter auf. Will nun ein&lt;br /&gt;
Client im lokalen Netz ein Dokument aus dem Internet anfordern, muß er&lt;br /&gt;
die Anfrage an den Proxy-Server leiten, der dann die Anfrage an den&lt;br /&gt;
Server weiterleitet. Daraus wird ersichtlich, daß ein Proxy-Server zwei&lt;br /&gt;
Gesichter haben muß. Nach innen zum Client muß er den Internetserver&lt;br /&gt;
vertreten und nach außen wiederum stellt er sich als Client dar. Dies hat&lt;br /&gt;
aus Sicht der Sicherheit noch den weiteren Vorteil, daß nach außen hin nur&lt;br /&gt;
der Proxy-Server sichtbar ist und das Netz dahinter für einen möglichen&lt;br /&gt;
Angreifer unsichtbar bleibt. Ein Proxy muß daher beide Seiten der&lt;br /&gt;
Kommunikation beherrschen. Wie so eine Kommunikation aussieht, ist in&lt;br /&gt;
 [[Image:squid1.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Caching==&lt;br /&gt;
Die Übertragungsraten im Internet sind oft sehr gering, da bestimmte Leitungen, insbesondere transkontinentale, stark belastet sind. Dadurch kann es wiederum vorkommen, daß die Leitung nach außen ausgelastet ist und durch lange Wartezeiten die Kosten der Übertragung in die Höhe gehen.&lt;br /&gt;
&lt;br /&gt;
Ein Ansatzpunkt, die Auslastung und Performance zu optimieren, ist das Zwischenspeichern von Objekten. Dies macht im Internet Sinn, da es oft vorkommt, daß ein Dokument in einem lokalen Netz mehrmals von verschiedenen Clients angefordert wird. Dieses Zwischenspeichern oder Caching von Dokumenten übernimmt ebenfalls der Proxy-Server, der deshalb auch oft als Proxy-Cache bezeichnet wird. Fordert ein Client ein Dokument von einem Server an, so leitet der Proxy die Anfrage an den Server weiter. Dieser liefert das angeforderte Dokument an den Proxy, der es dann an den Client weiter reicht und eine Kopie in seinem Speicher behält. Kommt nun von einem zweiten Client die Anfrage auf dasselbe Dokument, leitet der Proxy diese nicht an den Server weiter, sondern liefert das Dokument aus seinem Speicher direkt an den Client &lt;br /&gt;
 [[Image:squid2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Dies macht deutlich, welche Vorteile ein Proxy-Cache bietet. Zum einen wird die externe Leitung nicht unnötig mit dem mehrmaligen Holen desselben Objektes belastet, es fallen also für die Übertragung keine Kosten an, und außerdem wird die Performance für die Clients im LAN deutlich erhöht. Untersuchungen haben gezeigt, daß die Trefferquoten beim Einsatz eines Proxy-Caches bis zu 50% sind, also fast jede zweite Anfrage nach außen einspart.&lt;br /&gt;
==Sinnvolles Caching==&lt;br /&gt;
Um ein sinnvolles Caching zu erreichen, müssen gewisse Voraussetzungen gegeben sein. Diese fangen damit an, daß die Maschine, auf der ein solcher Proxy-Server läuft von der Hardware entsprechend ausgestattet sein muß. Je nach der Anzahl der Clients, die den Proxy benutzen muß die Leistungsfähigkeit des Rechners ausgelegt sein, damit auch genügend Anfragen gleichzeitig bearbeitet werden können. Um die Trefferquote auf die im Cache abgelegten Objekte zu erhöhen, sollte auch entsprechende Speicherkapazität vorhanden sein. Diese sollte auf jeden Fall mehrere Gigabyte umfassen. Da aber in der letzten Zeit die Preise für Festplattenspeicher enorm nach unten gegangen sind, sollte dies heute kein größeres Problem mehr darstellen. &lt;br /&gt;
Die Hardwarevoraussetzungen alleine machen aber noch keinen guten Proxy-Cache aus, sondern bilden nur eine solide Grundlage. Ein viel größeres Problem ist es, daß die Lebensdauer von Web-Seiten sehr unterschiedlich ist. Dadurch kann nie mit Sicherheit bestimmt werden, wann sich eine Seite ändert und dadurch veraltet ist und aus dem Cache gelöscht, bzw. beim Server neu angefordert werden soll. Es kann also immer vorkommen, daß der Cache ein veraltetes Dokument an den Client liefert. Durch verschiedene Strategien wird versucht, dieses Manko so weit wie möglich auszugleichen. &lt;br /&gt;
HTTP bietet dazu zwei Möglichkeiten: Last-Modified und Expires. Mit der Antwort des Servers werden diese Information an den Proxy mitgeteilt. Mit Last-Modified wird angezeigt, wann das Dokument das letzte mal geändert wurde. Mit der Angabe Expires erhält der Client (in diesem Falle der Proxy) Informationen, wann er das Dokument als veraltet ansehen soll und vom Server neu anfordern muß. In einem HTML-Dokument werden diese Angaben im Header generiert. Dazu wird das META-Element benutzt. Die Informationen sehen dann wie im folgenden Beispiel aus: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;META HTTP-EQUIV=“Last-Modified“ CONTENT=“Thu Jan 1 12:00:00 GMT DST 1998“&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;META HTTP-EQUIV=“Expires“ CONTENT=“Thu Dec 31 12:00:00 GMT DST 1998“&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Allein die Expires-Angabe würde reichen, um den Cache in dieser Hinsicht zu optimieren. Jedoch sind diese Angaben optional und werden sehr selten eingesetzt. Außerdem ist es oft schwierig die Lebensdauer einer Web-Seite vorauszusagen. Daher sind die meisten Web-Seiten einfach so lange gültig, bis der Autor eine neue Version erstellt. Anders sieht es bei Last-Modified aus. Diese Angabe findet sich zwar selten explizit in HTML-Dokumenten, jedoch trägt jedes Dokument als Datei einen Zeitstempel, welcher vom Server dann als Last-Modified-Header mitgeliefert wird.&lt;br /&gt;
&lt;br /&gt;
Die Proxy-Server wenden damit ein einfaches Verfahren ein, um die Lebensdauer eines Dokumentes zu „erraten“. Dabei wird zugrunde gelegt, daß die Wahrscheinlichkeit recht gering ist, daß ein recht altes Dokument in den nächsten Stunden geändert wird. Bei einem Dokument, welches dagegen erst vor kurzem geändert wurde, ist die Möglichkeit einer baldigen Aktualisierung eher vorhanden.Sofern ein Objekt keinen Expires-Header aufweist, erzeugt der Proxy-Server mit Hilfe des Last-Modified-Headers ein künstliches Verfallsdatum. Dazu bestimmt er das Alter der Datei und schlägt einen Prozentsatz dazu, der bei der Konfiguration des Proxy-Servers eingetragen wird (Direktive refresh_pattern), und holt frühestens nach Ablauf dieser Zeit von sich aus das Dokument erneut vom Server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ist beispielsweise ein Dokument zum Zeitpunkt der ersten Anfrage des Proxies bereits 150 Tage alt und der Prozentsatz aus der Konfiguration ist 20%, so vergehen weitere 30 Tage, bis der Proxy-Server eine erneute Anfrage an den Originalserver stellt. &lt;br /&gt;
&lt;br /&gt;
Um dies weiter zu optimieren wird das Dokument nur dann übertragen, wenn die Version auf dem Originalserver wirklich neuer ist, als die im Cache gespeicherte. Dazu schickt der Proxy eine Anfrage an den Originalserver, in der nur der Zeitstempel der Datei enthalten ist. Der Server vergleicht nun den empfangenen Zeitstempel der angeforderten Datei und sendet diese nur dann vollständig zurück, wenn sie jünger ist, als die im Proxy-Cache hinterlegte Kopie. Im anderen Falle erhält der Proxy nur eine kurze, aus HTTP-Headern bestehende Antwort, die signalisiert, daß keine Änderung stattgefunden hat. Der Proxy registriert dies und errechnet ein neues Verfallsdatum. &lt;br /&gt;
&lt;br /&gt;
Neben diesen statischen Objekten, die eine gewisse Lebensdauer haben, gibt es aber auch dynamische Objekte, bei denen eine Zwischenspeicherung nicht angebracht ist. Dies sind beispielsweise HTML-Seiten, die ein CGI-Skript für Datenbankabfragen enthalten oder Seiten, die eine Berechtigung verlangen.&lt;br /&gt;
&lt;br /&gt;
Es kann von beiden Seiten erzwungen werden, daß ein Objekt nicht im Cache gespeichert wird. Auf Seiten des Proxy-Servers erfolgt dies durch eine Einstellung in der Konfiguration. Damit ist es möglich, daß Seiten, die bestimmte Elemente (z.B. cgi-bin, ?, o.ä.) im URL enthalten nicht gespeichert werden. Dies kann man auch für ausgewählte Domänen angeben, was dann sinnvoll ist, wenn sich der Cache in einem Netz befindet, in dem selbst Web-Seiten angeboten werden. &lt;br /&gt;
&lt;br /&gt;
Befindet sich beispielsweise der Proxy-Cache in dem Netz der Domäne testdomain.de, womöglich sogar auf dem selben Rechner wie der Web-Server, so wäre es Unsinn, die Seiten, die dort angeboten werden in den Cache zu legen, da dies unnötig Speicher verbraucht. Von Seiten des Anbieters kann dies über den Einbau einer Authentisierung erfolgen. Dadurch wird bei der Abfrage eines Objektes nach einer Benutzerkennung und einem Paßwort gefragt. Diese Informationen und auch Seiten, die eine Identifikation verlangen, werden standardmäßig nicht vom Proxy gespeichert und müssen jedesmal neu vom Originalserver geholt werden. &lt;br /&gt;
&lt;br /&gt;
==Hierarchisches Caching==&lt;br /&gt;
Bei einigen Proxy-Servern ist es möglich, die Größe des Caches anzugeben, welcher im Hauptspeicher des Rechners liegt. Übertragene Objekte werden dort eine gewisse Zeit gehalten, um schnellere Antwortzeiten zu erreichen, falls ein Objekt innerhalb kurzer Zeit von zwei verschiedenen Clients angefordert wird. Dabei kann meist über den Parameter TTL (Time-to-Live) die Zeitdauer angegeben werden, die ein Objekt maximal in diesem Cache gehalten wird. &lt;br /&gt;
&lt;br /&gt;
Eine weitere Möglichkeit, die Performance zu erhöhen und geringere Antwortzeiten zu erhalten, ist das hierarchische Caching. Banal gesagt setzt man einen Proxy für den Proxy ein. Dadurch kann die Trefferquote auf Objekte nochmals verbessert werden. Dies macht besonders deshalb Sinn, da die Datenmengen, die über die bestehenden Leitungen übertragen werden, immer größer werden und es immer wieder zu Engpässen kommt, die lange Übertragungszeiten verursachen. Das hierarchische Caching führt dabei zu einer Entlastung. Damit die Proxy-Caches miteinander kommunizieren können, wurde ein spezielles Protokoll entwickelt, das ICP (Internet Caching Protocol). Dabei schicken Proxy-Caches für das gewünschte Objekt Anfragen an benachbarte und in der Hierarchie höher stehende Proxy-Caches. Ist das Objekt in einem dieser Caches vorhanden, wird es übertragen, andernfalls wird es vom Originalserver geholt. Da das ICP auf UDP basiert, ist es sehr schnell und bedeutet somit einen vertretbaren Performanceverlust, der durch eine erhöhte Trefferquote mehr als ausgeglichen wird.&lt;br /&gt;
 [[Image:squid3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Begriffe===&lt;br /&gt;
&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
|Neighbours	&lt;br /&gt;
|Dies sind alle Proxies, die ein Proxy kennt und mit denen er kommuniziert.&lt;br /&gt;
|-&lt;br /&gt;
|Siblings&lt;br /&gt;
|Die Geschwisterproxies. Sie liegen mit dem Proxy-Server auf einer Ebene. Siblings liefern in der Regel nur Objekte, die sie selbst im Cache haben,&lt;br /&gt;
|-&lt;br /&gt;
|Parents&lt;br /&gt;
|Übergeordnete Proxies. Sie liefern Objekte die sie selbst im Cache haben und leiten Anfragen an den Originalserver weiter.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Was ist Squid=&lt;br /&gt;
&lt;br /&gt;
Quelle: http://squid.nlanr.net/Squid/  bzw. http://www.squid-cache.org&lt;br /&gt;
&lt;br /&gt;
Squid, ein Beispiel für einen Proxy-Server mit Cache-Mechanismus, ist aus der cached Software des Harvest Forschungsprojektes hervorgegangen. Informationen über Harvest sind auf folgender Webseite zu finden: &lt;br /&gt;
&lt;br /&gt;
http://harvest.cs.colorado.edu/ &lt;br /&gt;
&lt;br /&gt;
Proxy-Systeme mit Cache-Mechanismen dienen meist der Performancesteigerung von Datentransfers, die bei langsamer Internet-Anbindung sehr groß sein kann, wenn Daten wiederholt angefordert werden. &lt;br /&gt;
&lt;br /&gt;
=Funktionsbeschreibung=&lt;br /&gt;
Squid, der Internet Object Cache, ist jedoch mehr als ein einfacher Cache-Proxy. Durch die Unterstützung von Neighbor-Caches, die entweder als parent oder sibling verwendet werden, kann man einen Cache-Verbund aufbauen, der einen hohen Prozentsatz von Anfragen beantworten kann, ohne langwierige Internet-Zugriffe zu erfordern. Dieses Verfahren verwenden zum Beispiel einige der großen Internet-Provider (wie ECRC in München), um den Datentransfer wenn möglich auf der eigenen Netzwerkstruktur abzuwickeln und damit Kosten für externe Zugriffe zu umgehen. &lt;br /&gt;
&lt;br /&gt;
Die Arbeitsweise von Squid ist einfach: &lt;br /&gt;
&lt;br /&gt;
Eine Anfrage eines Clients wird zuerst auf die Zugriffsberechtigung untersucht, so kann man z.B. gewissen Rechnern einen Zugriff auf den Proxy ganz verbieten (siehe Konfiguration). &lt;br /&gt;
&lt;br /&gt;
Es wird versucht, die gewünschten Daten im lokalen Cache zu finden. Sollte dies fehlschlagen, werden andere Proxies im Cache-Verbund (sofern vorhanden),&lt;br /&gt;
abgefragt.&lt;br /&gt;
&lt;br /&gt;
Sind die Daten vorhanden, wird ihre Aktualität geprüft. Sind die Daten veraltet, werden neue in den Cache geholt und an den Client weitergegeben. Bei aktuellen Daten wird das Neuladen übersprungen.&lt;br /&gt;
&lt;br /&gt;
Sind die Daten nicht vorhanden, werden sie in den Cache geladen und an den Client weiter-gereicht. Wie lange Daten im Cache verbleiben, ist abhängig von der Konfiguration (siehe dort)&lt;br /&gt;
&lt;br /&gt;
Eine Beschreibung der internen Abläufe wurde im Sinne der Übersichtlichkeit weggelassen.&lt;br /&gt;
&lt;br /&gt;
=Hilfe und Dokumentation zu Squid=&lt;br /&gt;
&lt;br /&gt;
Hilfe und Dokumentation im Internet:&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
|Die squid Website&lt;br /&gt;
|http://www.squid-cache.org/Doc/&lt;br /&gt;
|-&lt;br /&gt;
|squid IRC Channel&lt;br /&gt;
|Server: irc.freenode.de -Channel: #squid&lt;br /&gt;
|-&lt;br /&gt;
|Mailingliste&lt;br /&gt;
|squid-users@squid-cache.org&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Hilfe und Dokumentation im System&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
|Speziell zur Konfiguration&lt;br /&gt;
|/etc/squid/squid.conf.default&lt;br /&gt;
|-&lt;br /&gt;
|Manualpage&lt;br /&gt;
|man squid&lt;br /&gt;
|-&lt;br /&gt;
|Mitgelieferte Dokumentation&lt;br /&gt;
|/usr/share/doc/squid/&lt;br /&gt;
|}&lt;br /&gt;
=Squid unter Ubuntu=&lt;br /&gt;
==Installation==&lt;br /&gt;
 root@zero:~# apt-get install squid3 squid3-common&lt;br /&gt;
Testen ob Squid läuft &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 3128&lt;br /&gt;
 tcp        0      0 0.0.0.0:3128            0.0.0.0:*               LISTEN      10743/(squid)&lt;br /&gt;
&lt;br /&gt;
==Start Skript==&lt;br /&gt;
Das Startskript /etc/init.d/squid3 hat folgende Parameter&lt;br /&gt;
&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
|start&lt;br /&gt;
|Startet den Squid-Daemon&lt;br /&gt;
|-&lt;br /&gt;
|stop&lt;br /&gt;
|Stoppt den Squid-Daemon&lt;br /&gt;
|-&lt;br /&gt;
|reload&lt;br /&gt;
|Liest die Konfigurationsdatei neu ein&lt;br /&gt;
|-&lt;br /&gt;
|force-reload&lt;br /&gt;
|das gleiche wie reload&lt;br /&gt;
|-&lt;br /&gt;
|restart&lt;br /&gt;
|Stoppt den Deamon, falls er gestartet war und startet ihn wieder (synonym für stop und start)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Squid Parameter==&lt;br /&gt;
Gestartet werden kann Squid auch ohne das Startskript mit &lt;br /&gt;
 /usr/sbin/squid3 [-cdhvzCDFNRVYX] [-s | -l facility] [-f config-file] [-[au] port] [-k signal]&lt;br /&gt;
Flogende Parameter können eingestellt werden:&lt;br /&gt;
&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
| -a port&lt;br /&gt;
|verändert die Portnummer für HTTP-Anfragen&lt;br /&gt;
|-&lt;br /&gt;
| -d level&lt;br /&gt;
|Debug Output auf stderr ausgeben&lt;br /&gt;
|-&lt;br /&gt;
| -f file&lt;br /&gt;
|gibt eine alternative Konfigurationsdatei zu /etc/squid3/squid.conf an&lt;br /&gt;
|-&lt;br /&gt;
| -k&lt;br /&gt;
|mit dieser option können dem laufenden Squid verschiedene Steuersignale übergeben werden&lt;br /&gt;
|-&lt;br /&gt;
| -k reconfigure&lt;br /&gt;
|die Konfigurationsdatei wird nochmals eingelesen&lt;br /&gt;
|-&lt;br /&gt;
| -k rotatate&lt;br /&gt;
|schliesst und öffnet Dateien z.B. log_files&lt;br /&gt;
|-&lt;br /&gt;
| -k shutdown&lt;br /&gt;
|squid wartet kurz und beendet die Verbindung und sich selbst.Mit shutdown_zeit wird Squid nach einer angegebenen Zeit beendet.&lt;br /&gt;
|-&lt;br /&gt;
| -k interrupt&lt;br /&gt;
|sendet einen Interrupt worauf squid sofort abgebrochen wird ohne auf den Verlauf der Verbindungen zu achten.&lt;br /&gt;
|-&lt;br /&gt;
| -k kill&lt;br /&gt;
|bricht squid sofort ab, die Verbindung und die log_files bleiben geöffnet&lt;br /&gt;
|-&lt;br /&gt;
| -k check&lt;br /&gt;
|kontrolliert ob squid läuft&lt;br /&gt;
|-&lt;br /&gt;
| -s&lt;br /&gt;
|erlaubt das Aufnehmen in die syslog&lt;br /&gt;
|-&lt;br /&gt;
| -u port&lt;br /&gt;
|verändert die Portnummer des Internet Cache Protokoll ICP bzw. deaktiviert den Cache-Verbund mit der Portnummer 0&lt;br /&gt;
|-&lt;br /&gt;
| -v&lt;br /&gt;
|zeigt die aktuelle Squid Version&lt;br /&gt;
|-&lt;br /&gt;
| -z&lt;br /&gt;
|richtet cache Verzeichnisse ein&lt;br /&gt;
|-&lt;br /&gt;
| -D&lt;br /&gt;
|Squid führt normalerweise DNS Tests durch die hiermit abgestellt werden können&lt;br /&gt;
|-&lt;br /&gt;
| -F&lt;br /&gt;
|wenn die swap.logs leer sind nützt squid die vollen Systemresourcen um sich um die Anfragen zu kümmern.Dies beschleunigt den Verarbeitungsvorgang&lt;br /&gt;
|-&lt;br /&gt;
| -N&lt;br /&gt;
|der Serverprozess läuft nicht im Hintergrund&lt;br /&gt;
|-&lt;br /&gt;
| -V&lt;br /&gt;
|Aktivierung des httpd Beschleunigungsmodus&lt;br /&gt;
|-&lt;br /&gt;
| -X&lt;br /&gt;
|Full-Debug-Modus&lt;br /&gt;
|-&lt;br /&gt;
| -Y&lt;br /&gt;
|Beschleunigt den ICP austausch bei niederwertigeren Caches&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Konfiguration==&lt;br /&gt;
Squid wird mittels einer normalen Textdatei konfiguriert, die logisch in&lt;br /&gt;
mehrere Teilbereiche unterteilt werden kann. Sie ist unter&lt;br /&gt;
/etc/squid/squid.conf bzw. unter &amp;lt;prefix&amp;gt;/etc/squid.conf zu finden.&lt;br /&gt;
Bei der Installation von Squid wird eine Default-Konfiguration erzeugt, die&lt;br /&gt;
mit minimalen Änderungen bereits einen ersten Testlauf ermöglicht. Für&lt;br /&gt;
die Ausnutzung der vollen Leistung von Squid sollte jedoch eine&lt;br /&gt;
individuelle Anpassung erfolgen.&lt;br /&gt;
&lt;br /&gt;
Alle Zeilen von squid.conf, die mit # beginnen, sind Kommentare bzw.&lt;br /&gt;
nicht aktivierte Optionen. Als Minimalkonfiguration genügen die in Schnellstart beschriebenen&lt;br /&gt;
Einstellungen. Für die genaue Syntax von Optionen sei ebenfalls auf&lt;br /&gt;
squid.conf verwiesen, die folgenden Kapitel geben einen groben Überblick&lt;br /&gt;
über die Möglichkeiten von Squid.&lt;br /&gt;
&lt;br /&gt;
Da die Konfigurationsdatei in Ihrer Fülle und den ganzen Kommentaren&lt;br /&gt;
sehr verwirrend ist kann man sie zunächst einmal auf das Wichtigste reduzieren. Vorher sollte&lt;br /&gt;
die originale squid.conf gesichert werden:&lt;br /&gt;
&lt;br /&gt;
 cp squid.conf squid.conf.org&lt;br /&gt;
 grep  &amp;quot;^[^#]&amp;quot; squid.conf.org &amp;gt; squid.conf&lt;br /&gt;
&lt;br /&gt;
 acl manager proto cache_object&lt;br /&gt;
 acl localhost src 127.0.0.1/32&lt;br /&gt;
 acl to_localhost dst 127.0.0.0/8&lt;br /&gt;
 acl SSL_ports port 443&lt;br /&gt;
 acl Safe_ports port 80		# http&lt;br /&gt;
 acl Safe_ports port 21		# ftp&lt;br /&gt;
 acl Safe_ports port 443	# https&lt;br /&gt;
 acl Safe_ports port 70		# gopher &lt;br /&gt;
 acl Safe_ports port 210		# wais&lt;br /&gt;
 acl Safe_ports port 1025-65535	# unregistered ports&lt;br /&gt;
 acl Safe_ports port 280		# http-mgmt&lt;br /&gt;
 acl Safe_ports port 488		# gss-http&lt;br /&gt;
 acl Safe_ports port 591		# filemaker&lt;br /&gt;
 acl Safe_ports port 777		# multiling http&lt;br /&gt;
 acl CONNECT method CONNECT&lt;br /&gt;
 http_access allow manager localhost&lt;br /&gt;
 http_access deny manager&lt;br /&gt;
 http_access deny !Safe_ports&lt;br /&gt;
 http_access deny CONNECT !SSL_ports&lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
 http_access deny all&lt;br /&gt;
 icp_access deny all&lt;br /&gt;
 htcp_access deny all&lt;br /&gt;
 http_port 3128&lt;br /&gt;
 hierarchy_stoplist cgi-bin ?&lt;br /&gt;
 access_log /var/log/squid3/access.log squid&lt;br /&gt;
 refresh_pattern ^ftp:		1440	20%	10080&lt;br /&gt;
 refresh_pattern ^gopher:	1440	0%	1440&lt;br /&gt;
 refresh_pattern (cgi-bin|\?)	0	0%	0&lt;br /&gt;
 refresh_pattern .		0	20%	4320&lt;br /&gt;
 icp_port 3130&lt;br /&gt;
 coredump_dir /var/spool/squid3&lt;br /&gt;
&lt;br /&gt;
Zur besseren Übersicht unterteilen wir die Konfigdatei&lt;br /&gt;
&lt;br /&gt;
 #allgemeine sektion&lt;br /&gt;
 http_port 3128&lt;br /&gt;
 access_log /var/log/squid3/access.log squid&lt;br /&gt;
 icp_port 3130&lt;br /&gt;
 coredump_dir /var/spool/squid3&lt;br /&gt;
 hierarchy_stoplist cgi-bin ?&lt;br /&gt;
 &lt;br /&gt;
 #refresh&lt;br /&gt;
 refresh_pattern ^ftp:           1440    20%     10080&lt;br /&gt;
 refresh_pattern ^gopher:        1440    0%      1440&lt;br /&gt;
 refresh_pattern (cgi-bin|\?)    0       0%      0&lt;br /&gt;
 refresh_pattern .               0       20%     4320&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl manager proto cache_object&lt;br /&gt;
 acl localhost src 127.0.0.1/32&lt;br /&gt;
 acl to_localhost dst 127.0.0.0/8&lt;br /&gt;
 acl SSL_ports port 443&lt;br /&gt;
 acl Safe_ports port 21 80  443 70 210 280 488 591 777 1025-65535&lt;br /&gt;
 acl CONNECT method CONNECT&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow manager localhost&lt;br /&gt;
 http_access deny manager&lt;br /&gt;
 http_access deny !Safe_ports&lt;br /&gt;
 http_access deny CONNECT !SSL_ports&lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
 http_access deny all&lt;br /&gt;
 icp_access deny all&lt;br /&gt;
 htcp_access deny all&lt;br /&gt;
&lt;br /&gt;
===Allgemein===&lt;br /&gt;
 http_port 3128&lt;br /&gt;
Auf diesem Port lauscht der Squid auf eingehende http-Anfragen der Clients.&lt;br /&gt;
 icp_port 3130&lt;br /&gt;
Auf diesem Port lauscht Squid auf eingehende Anfragen von Nachbar-Proxys&lt;br /&gt;
 access_log /var/log/squid3/access.log squid&lt;br /&gt;
Legt Ort und Art des Loggings für eingehende Requests fest.&lt;br /&gt;
 coredump_dir /var/spool/squid3&lt;br /&gt;
Standardmäßig schreibt Squid corefiles in das Verzeichnis aus dem er gestartet wurden. Wenn mit dieser Option ein Pfad angegeben ist, wechselt Squid nach dem Start in dieses Verzeichnis und legt die corefiles in dieses Verzeichnis ab.&lt;br /&gt;
 hierarchy_stoplist cgi-bin ?&lt;br /&gt;
Hiermit wird eine Liste von Ausdrücken festgelegt, die - wenn sie in dem angefragen URL vorkommen - Squid veranlassen, die Anfrage direkt auszuführen und keine Nachbar-Proxys zu befragen&lt;br /&gt;
&lt;br /&gt;
===Refresh_pattern===&lt;br /&gt;
&lt;br /&gt;
 #refresh_pattern Suchmuster      Min     Prozent Max&lt;br /&gt;
  refresh_pattern ^ftp:           1440    20%     10080&lt;br /&gt;
  refresh_pattern ^gopher:        1440    0%      1440&lt;br /&gt;
  refresh_pattern (cgi-bin|\?)    0       0%      0&lt;br /&gt;
  refresh_pattern .               0       20%     4320&lt;br /&gt;
&lt;br /&gt;
Hier kann der Refresh-Algorithmus von squid für die eigenen Bedürfnisse optimiert werden. &lt;br /&gt;
&lt;br /&gt;
MIN ist die Zeit in Minuten,die ein Objekt ohne explizite Ablaufzeit als Aktuell betrachtet wird. Der ermpfohlene Wert ist 0, jeder höhere Wert könnte dazu führen, dass dynmaische Anwendungen irrtümlich gecachtt&lt;br /&gt;
werden, wenn der Webdesigner keine entsprechenden Gegenaktionen getroffen hat. &lt;br /&gt;
&lt;br /&gt;
PROZENT ist der Prozentsatz eines Objektalters (Zeit seit der letzten&lt;br /&gt;
Modifikation) wo ein Objekt ohne explizite Ablaufzeit als aktuell betrachtet&lt;br /&gt;
wird. &lt;br /&gt;
&lt;br /&gt;
MAX ist ein oberes Limit wie lange Objekte ohne explizite Ablaufzeiten als aktuell betrachtet werden.&lt;br /&gt;
&lt;br /&gt;
 refresh_pattern -i&lt;br /&gt;
Wie refresh_pattern, nur, daß Musterangaben die Groß-/Kleinschreibung&lt;br /&gt;
ignorieren.&lt;br /&gt;
&lt;br /&gt;
===ACL===&lt;br /&gt;
Unter ACL versteht man access control lists, also Filter, die den Zugriff auf den Proxy regeln. Eine ACL muss immer zuerst definiert werden und ein Name gegeben werden. ACLs werden in der Form&lt;br /&gt;
 acl ''aclname acltyp argument'' ...&lt;br /&gt;
 acl ''aclname acltyp &amp;quot;datei&amp;quot;''&lt;br /&gt;
definiert. &lt;br /&gt;
&lt;br /&gt;
====Beispielkonfiguration====&lt;br /&gt;
In der Standardkonfiguration sind 6 ACLs definiert:&lt;br /&gt;
&lt;br /&gt;
Standard- acl für Management-Dienste&lt;br /&gt;
 acl manager proto cache_object &lt;br /&gt;
&lt;br /&gt;
Alles was von localhost (also lokal über das loopback-device) kommt&lt;br /&gt;
 acl localhost src 127.0.0.1/32&lt;br /&gt;
&lt;br /&gt;
Alles was an localhost geht&lt;br /&gt;
 acl to_localhost dst 127.0.0.0/8&lt;br /&gt;
&lt;br /&gt;
acl für SSL_ports (Standard https-port)&lt;br /&gt;
 acl SSL_ports port 443&lt;br /&gt;
&lt;br /&gt;
acl für &amp;quot;sichere Ports&amp;quot;&lt;br /&gt;
 acl Safe_ports port 80 (21,443,70,...)&lt;br /&gt;
&lt;br /&gt;
 acl CONNECT method CONNECT&lt;br /&gt;
&lt;br /&gt;
Nachdem die ACLs definiert sind, müssen diese in Regeln angewendet werden. Die Syntax lautet:&lt;br /&gt;
 ''regeltyp'' allow|deny [!''acl1''] [!''acl2'']&lt;br /&gt;
Eine Regel besagt also, dass ein Zugriff, der auf eine bestimmte Access-List zutrifft, entweder erlaubt (allow) oder verboten wird (deny).&lt;br /&gt;
&lt;br /&gt;
In der Beispielkonfiguration werden http_access und icp-, htcp_access als Regeltyp angewendet, zB. &lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
wendet die Access-Liste 'localhost' an, um den lokalen Zugriff vom Proxy-Server auf http-seiten zu regeln.&lt;br /&gt;
icp_access und htcp_access bzw. icp und htcp sind Protokolle für den Datenaustausch zwischen zwei Servern.&lt;br /&gt;
&lt;br /&gt;
====Eigene Erweiterungen====&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration können wir jetzt erweitern und auf die Bedürfnisse des jeweiligen Netzwerks anpassen. Als Beispiel verwenden wir ein Netzwerk, welches 2 Subnetze enthält, die über einen Proxy, welcher in einer DMZ steht, Verbindungen zum Internet aufbaut. Das 192.168.241.0/24-Netz soll ein privilegiertes Netz sein, d.h Die Clients haben generell mehr Rechte um auf das Internet zuzugreifen, als das andere Netz (192.168.242.0/24).&lt;br /&gt;
&lt;br /&gt;
Als Erstes wollen wir das eine Netz vorläufig komplett für den HTTP-Verkehr freischalten:&lt;br /&gt;
&lt;br /&gt;
ACL für das Netz aufstellen:&lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl privilegiert src 192.168.241.0/24&lt;br /&gt;
ACL anwenden und das Netz freischalten:&lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow privilegiert&lt;br /&gt;
Die beiden Konfigurationsanweisungen müssen nun an korrekter Stelle in die squid.conf eingetragen werden. Bei der ACL ist das nicht so relevant, jedoch zur Übersichtlichkeit wird man sie in den Block mit den anderen ACLs einfügen. Bei der Access-Regel dagegen ist es dagegen von entscheidender Bedeutung, wo die Anweisung steht, da die Konfigurationsdatei von oben nach unten abgearbeitet wird und die erste Regel auf die eine Anfrage passt, wird ausgeführt.&lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow manager localhost&lt;br /&gt;
 http_access deny manager&lt;br /&gt;
 http_access deny !Safe_ports&lt;br /&gt;
 http_access deny CONNECT !SSL_ports&lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
 http_access deny all&lt;br /&gt;
 '''http_access allow privilegiert'''&lt;br /&gt;
Wird die Regel wie hier angezeigt eingefügt, hat das keine Auswirkung auf den Zugriff, da die Regel &amp;quot;http_access deny all&amp;quot; vorher steht, welche auf alles zutrifft und so die Anfrage abweist. Also müssen wir die Regel weiter oben einfügen.&lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow manager localhost&lt;br /&gt;
 http_access deny manager&lt;br /&gt;
 http_access deny !Safe_ports&lt;br /&gt;
 http_access deny CONNECT !SSL_ports&lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
 '''http_access allow privilegiert'''&lt;br /&gt;
 http_access deny all&lt;br /&gt;
&lt;br /&gt;
Das unprivilegierte Netz soll nun auch Zugriff auf das Internet erhalten, jedoch nur in eingeschränktem Maße. Es soll nur auf den für den Arbeitsablauf notwendigen Webseiten Zugriff erhalten. Dies wird so realisiert, dass eine Datei mit Regex-URLs eingerichtet wird, auf die zugegriffen werden darf.&lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl unprivilegiert src 192.168.242.0/24&lt;br /&gt;
 acl gute_domains url_regex -i &amp;quot;/etc/squid3/gute_domains&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow unprivilegiert gute_domains&lt;br /&gt;
Diese Regel hat 2 acls als Argumente. Diese werden in den Access-Regeln durch ein UND verknüpft, d.h. die Regel matcht nur wenn beide acls zutreffen.&lt;br /&gt;
&lt;br /&gt;
Nun wird eine Regel erstellt, damit URLs, auf die niemand zugreifen darf, im gesamten Netzwerk, also in den beiden Subnetzen, verboten wird.&lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl lan src 192.168.241.0/24 192.168.242.0/24&lt;br /&gt;
 acl schlechte_domains url_regex -i &amp;quot;/etc/squid3/schlechte_domains&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access deny lan schlechte_domains&lt;br /&gt;
&lt;br /&gt;
 root@zero:/etc/squid3# cat schlechte_domains &lt;br /&gt;
 ^http://(www.)?pornographische-seite1.de&lt;br /&gt;
 ^http://(www.)?boese-seite2.com&lt;br /&gt;
 root@zero:/etc/squid3# &lt;br /&gt;
&lt;br /&gt;
Hier wird eine ACL erstellt, die 2 Argumente besitzt. Diese werden, im Gegensatz zu den Access-Regeln, mit einem ODER verknüpft, sodass diese Regel matcht, falls eine Anfrage der beiden Subnetze als Source mit einer URL aus der Datei &amp;quot;schlechte_domains&amp;quot; kommt. In Aussagenlogikform:&lt;br /&gt;
&lt;br /&gt;
lan = ( privilegiert ODER unprivilegiert )&lt;br /&gt;
acl = lan UND schlechte_domains&lt;br /&gt;
&lt;br /&gt;
Jetzt wollen wir z.B den Nutzern im unprivilegierten Netz auch die Möglichkeit geben, während der Mittagspause frei im Internet surfen zu können. Dazu benutzt man den acl-Typ &amp;quot;time&amp;quot;:&lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl mittag time 12:00-12:30&lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow unprivilegiert mittag&lt;br /&gt;
Hier wird eine acl mittag definiert, die einen Zeitbereich annimmt. Diese wird mit der acl unprivilegiert in einer Regel verknüpft.&lt;br /&gt;
&lt;br /&gt;
===Authentifizierung===&lt;br /&gt;
&lt;br /&gt;
====Passwortdatei====&lt;br /&gt;
Mit dem Programm htpasswd (ruft Systemfunktion crypt auf )das bei jeder Distribution dabei sein sollte können ein Passwortdatei erzeugen. &lt;br /&gt;
 root@zero:/etc/squid3# htpasswd -c passwd xinux&lt;br /&gt;
 New password: &lt;br /&gt;
 Re-type new password: &lt;br /&gt;
 Adding password for user xinux&lt;br /&gt;
 root@zero:/etc/squid3# cat passwd &lt;br /&gt;
 xinux:5AZTQ/gAwdlOU&lt;br /&gt;
 root@zero:/etc/squid3#&lt;br /&gt;
&lt;br /&gt;
====Konfigurationsdatei====&lt;br /&gt;
 #auth-sektion&lt;br /&gt;
 auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/passwd&lt;br /&gt;
 auth_param basic children 5&lt;br /&gt;
 auth_param basic concurrency 0&lt;br /&gt;
 auth_param basic realm Squid proxy-caching web server&lt;br /&gt;
 auth_param basic casesensitive off&lt;br /&gt;
 &lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl autorisiert proxy_auth REQUIRED&lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow unprivilegiert autorisiert&lt;br /&gt;
In der Konfigurationsdatei wird nun ein Programm angegeben, das für die Authentifizierung aufgerufen wird. Dieses liest Daten aus der zuvor angefertigten Passwortdatei. Dann muss eine acl mit dem typ &amp;quot;proxy_auth&amp;quot; erstellt werden, welche in einer Regel angewendet wird. So kann hier auch ein Nutzer aus dem unprivilegierten Netz Zugang zum Internet bekommen, sollte er sich authentifizieren können.&lt;br /&gt;
&lt;br /&gt;
===Caching===&lt;br /&gt;
Squid benutzt den Hauptspeicher und ein Verzeichnis, um Anfragen zu cachen und diese bei erneuten Anfragen direkt auszuliefern.&lt;br /&gt;
====Anlegen des Caches====&lt;br /&gt;
 root@zero:/etc/squid3# cd /var/cache/&lt;br /&gt;
 root@zero:/var/cache# mkdir squid&lt;br /&gt;
 root@zero:/var/cache# chown proxy:proxy squid/&lt;br /&gt;
 root@zero:/var/cache# ls -l | grep squid&lt;br /&gt;
 drwxr-xr-x  2 proxy    proxy    4096 2009-07-10 09:53 squid&lt;br /&gt;
Hier wird ein Verzeichnis angelegt, welches dem Benutzer proxy beschreibbar sein, da der Squid nicht unter root, sondern unter einem unprivilegierten Benutzer läuft.&lt;br /&gt;
 #cache-sektion&lt;br /&gt;
 cache_dir ufs /var/cache/squid 100 16 256&lt;br /&gt;
cache_dir ''typ verzeichnis MB L1 L2''&lt;br /&gt;
&lt;br /&gt;
In der Konfigurationsdatei wird dieses Verzeichnis angegeben. Der Typ &amp;quot;ufs&amp;quot; ist das Standardspeichersystem des Squid. Es können aber auch andere Typen wie aufs oder diskd benutzt werden. Die Optionen hinter dem Verzeichnisnamen, geben Speicherplatz und Verzeichnisstruktur an. MB gibt an, wieviel Speicherplatz Squid in diesem Verzeichnis benutzt (es können auch mehrere Verzeichnisse zur Speicherverteilung auf verschiedene Partitionen angegeben werden), L1 gibt an wieviele First-Level-Unterverzeichnisse angelegt werden, L2 gibt an, wieviele Second-Level-Unterverzeichnisse in jedem First-Level-Verzeichnis angelegt werden (Baum-Struktur).&lt;br /&gt;
 root@zero:/var/cache# /etc/init.d/squid3 restart&lt;br /&gt;
 * Restarting Squid HTTP Proxy 3.0 squid3&lt;br /&gt;
 *   Waiting...                                                                  &lt;br /&gt;
 * ...                                                                          &lt;br /&gt;
 * ...                                                                          &lt;br /&gt;
 * ...                                                                          &lt;br /&gt;
 * ...                                                                          &lt;br /&gt;
 * ...                                                                         &lt;br /&gt;
 * ...                                                                  [ OK ] &lt;br /&gt;
 * Creating Squid HTTP Proxy 3.0 cache structure&lt;br /&gt;
 2009/07/10 09:59:24| Creating Swap Directories&lt;br /&gt;
 2009/07/10 09:59:24| /var/cache/squid exists&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/00&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/01&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/02&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/03&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/04&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/05&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/06&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/07&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/08&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/09&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0A&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0B&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0C &lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0D&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0E&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0F&lt;br /&gt;
                                                                        [ OK ]&lt;br /&gt;
 root@zero:/var/cache/squid# ls&lt;br /&gt;
 00  01  02  03  04  05  06  07  08  09  0A  0B  0C  0D  0E  0F  swap.state&lt;br /&gt;
 root@zero:/var/cache/squid# cd 00&lt;br /&gt;
 root@zero:/var/cache/squid/00# ls&lt;br /&gt;
 00  0E  1C  2A  38  46  54  62  70  7E  8C  9A  A8  B6  C4  D2  E0  EE  FC&lt;br /&gt;
 01  0F  1D  2B  39  47  55  63  71  7F  8D  9B  A9  B7  C5  D3  E1  EF  FD&lt;br /&gt;
 02  10  1E  2C  3A  48  56  64  72  80  8E  9C  AA  B8  C6  D4  E2  F0  FE&lt;br /&gt;
 03  11  1F  2D  3B  49  57  65  73  81  8F  9D  AB  B9  C7  D5  E3  F1  FF&lt;br /&gt;
 04  12  20  2E  3C  4A  58  66  74  82  90  9E  AC  BA  C8  D6  E4  F2&lt;br /&gt;
 05  13  21  2F  3D  4B  59  67  75  83  91  9F  AD  BB  C9  D7  E5  F3&lt;br /&gt;
 06  14  22  30  3E  4C  5A  68  76  84  92  A0  AE  BC  CA  D8  E6  F4&lt;br /&gt;
 07  15  23  31  3F  4D  5B  69  77  85  93  A1  AF  BD  CB  D9  E7  F5&lt;br /&gt;
 08  16  24  32  40  4E  5C  6A  78  86  94  A2  B0  BE  CC  DA  E8  F6&lt;br /&gt;
 09  17  25  33  41  4F  5D  6B  79  87  95  A3  B1  BF  CD  DB  E9  F7&lt;br /&gt;
 0A  18  26  34  42  50  5E  6C  7A  88  96  A4  B2  C0  CE  DC  EA  F8&lt;br /&gt;
 0B  19  27  35  43  51  5F  6D  7B  89  97  A5  B3  C1  CF  DD  EB  F9&lt;br /&gt;
 0C  1A  28  36  44  52  60  6E  7C  8A  98  A6  B4  C2  D0  DE  EC  FA&lt;br /&gt;
 0D  1B  29  37  45  53  61  6F  7D  8B  99  A7  B5  C3  D1  DF  ED  FB&lt;br /&gt;
 root@zero:/var/cache/squid/00#&lt;br /&gt;
Hier sieht man, das Squid im Verzeichnis /var/cache/squid 16 Verzeichnisse von 00-0F und in jedem Unterverzeichnis weitere 256 Verzeichnisse 00-FF angelegt hat.&lt;br /&gt;
&lt;br /&gt;
====Konfiguration====&lt;br /&gt;
Nun können weitere Optionen in der Konfigurationsdatei angegeben werden.&lt;br /&gt;
 cache_mem 32 MB&lt;br /&gt;
Gibt an, wieviel Hauptspeicher zum Cachen für Squid verwendet wird&lt;br /&gt;
 cache_swap_low 90&lt;br /&gt;
 cache_swap_high 95&lt;br /&gt;
Diese beiden Optionen geben den unteren und oberen Threshold für die Füllung des Caches an in % an. Wird die untere Marke überschritten, beginnt Squid entsprechend der cache_replacement_policy Objekte aus dem Cache zu entfernen. Wird die obere Marke erreicht, erfolgt die Räumung aggressiver. Wird die untere Marke unterschritten, wird der Prozess beendet.&lt;br /&gt;
 minimum_object_size 0 KB&lt;br /&gt;
 maximum_object_size 8192 KB&lt;br /&gt;
minimum_object_size gibt an, wie groß ein Objekt mindestens sein muss, um im Cache gespeichert zu werden, maximum_object_size die maximale Größe.&lt;br /&gt;
 maximum_object_size_in_memory 64 KB&lt;br /&gt;
maximum_object_size_in_memory gibt an, wie groß ein Objekt höchstens sein darf, um im Hauptspeicher gecacht zu werden.&lt;br /&gt;
 ipcache_size 1024&lt;br /&gt;
Hier wird die maximale Anzahl der IP-Cache Einträge bestimmt.&lt;br /&gt;
 ipcache_low 90&lt;br /&gt;
 ipcache_high 95&lt;br /&gt;
Thresholds der IP-Cache-Einträge, entsprechend zu cache_swap_low und _high.&lt;br /&gt;
 fqdncache_size 1024&lt;br /&gt;
Maximale Anzahl der FQDN-Cache-Einträge.&lt;br /&gt;
 cache_replacement_policy lru&lt;br /&gt;
 memory_replacement_policy lru&lt;br /&gt;
Diese Einträge bestimmen, mit welchem Verfahren Objekte aus dem Cache entfernt werden. lru steht für least recently used, d.h. Squid löscht bei diesem Verfahren die Einträge, die am längsten nicht mehr angefragt wurden. Es gibt außerdem:&lt;br /&gt;
&lt;br /&gt;
heap GDFS (Greed-Dual Size Frequency): Optimiert die Objekt-Hitrate. Kleine häufig angefragte Objekte werden auf Kosten großer, weniger häufig angefragter Objekte im Cache gehalten. Damit wird die Warscheinlichkeit eines Objekt-Hits gesteigert.&lt;br /&gt;
&lt;br /&gt;
heap LFUDA (Least frequently used with dynamic aging): Optimiert die Byte-Hitragte. Häufig angefrage Objekte werden im Cache gehalten, slten angefragte Objekte werden freigegeben, unabhängig von deren Größe. Damit wird ein häufiger angefrages, großes Objekt ggf. auf Kosten vieler kleiner Objekte im Cache gehalten.&lt;br /&gt;
&lt;br /&gt;
heap lru (erweitertes lru-Verfahren).&lt;br /&gt;
&lt;br /&gt;
===Delay-Pools===&lt;br /&gt;
Mit Delay-Pools kann man eine Bandbreitensteuerung über Squid implementieren.&lt;br /&gt;
 #delay_pools-sektion&lt;br /&gt;
 delay_pools 2&lt;br /&gt;
Hier wird die Anzahl der Pools angegeben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #delay_claas ''pool'' ''class''&lt;br /&gt;
 delay_class 1 1&lt;br /&gt;
 delay_class 2 2&lt;br /&gt;
Jeder der Pools wird einer Klasse zugeordnet. Es gibt insgesamt 5 Klassen, die verschiedene Methoden zur Bandbreitensteuerung anbieten.&lt;br /&gt;
&lt;br /&gt;
Klasse 1: Die gesamte Bandbreite wird über ein Parameterpaar gesteuert.&lt;br /&gt;
&lt;br /&gt;
Klasse 2: Es werden 2 Parameterpaare angegeben. Das erste bestimmt die gesamte Bandbreite, das zweite bestimmt die individuelle Bandbreite eines Hosts anhand des letzten Bytes der IP-Adresse.&lt;br /&gt;
&lt;br /&gt;
Klasse 3: Zusätzlich zu den 2 Parametepaaren in Klasse 2 gibt es noch ein drittes Paar, welches die Bandbreite eines ganzen Klasse-C-Netzes beschränkt.&lt;br /&gt;
&lt;br /&gt;
Klasse 4: Wie Klasse 3, jedoch gibt es noch ein zusätzliches Parameterpaar, welches anhand des Benutzernamens die Bandbreite beschränkt. Diese Limitierung tritt nur in Kraft, sollte ein Request eine Benutzerauthentifizierung erfordert haben (siehe Authentifizerung).&lt;br /&gt;
&lt;br /&gt;
Klasse 5: Die Bandbreitenregulierung erfolgt nicht wie in Klasse 2-4 über IP-Adressen oder Benutzer, sondern über ein Tag, welches angegeben wird und einen Request identifiziert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 delay_parameters 1 10000/20000&lt;br /&gt;
 delay_parameters 2 20000/40000 1000/2000&lt;br /&gt;
 delay_access 1 allow privilegiert&lt;br /&gt;
 delay_access 2 allow unprivilegiert&lt;br /&gt;
 delay_access 1 deny all&lt;br /&gt;
 delay_access 2 deny all&lt;br /&gt;
&lt;br /&gt;
Nun müssen den Delay-Pools noch die Parameter übergeben werden. Der Delay-Pool mit Klasse 1 erhält ein Parameterpaar. Dieses Parameterpaar setzt sich zusammen aus restore- und einem maximum-Wert. Der restore-Wert bestimmt die eigentliche Bandbreite in Byte/Sekunde, der maximum-Wert bestimmt die maximale Datenmenge in Byte, die auf einmal übertragen wird.&lt;br /&gt;
&lt;br /&gt;
Die mit maximum definierte Datenmenge wird ganz normal über das Netz übertragen, ggf. mit der vollen zur Verfügung stehenden Bandbreite und ohne weitere Begrenzung. Anhand des eigentlichen Bandbreitenwertes restore berechnet Squid, wie lange er das nächste Paket verzögern muss, um auf die durchschnittliche, mit restore vorgegebene Bandbreite zu kommen. So wird die vorgegebene Nettobandbreite im Mittel durchaus gehalten, ein einzelnes Datenpaket kann jedoch deutlich schneller zum Client transportiert werden.&lt;br /&gt;
&lt;br /&gt;
Mit delay-access wird nun festelegt, welche Pools auf welche acl angewendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=ads mitglied=&lt;br /&gt;
*http://blog.stefan-betz.net/2009/1/7/hochzeit:-squid-3-und-active-directory/&lt;br /&gt;
*http://www.woy.de/?p=29&lt;br /&gt;
&lt;br /&gt;
=sarg=&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install sarg apache2&lt;br /&gt;
 sudo cp /etc/sarg/sarg.conf /etc/sarg/sarg.conf.old&lt;br /&gt;
 sudo cat /etc/sarg/sarg.conf.old | grep -v ^# | grep -v ^$ &amp;gt; /etc/sarg/sarg.conf&lt;br /&gt;
&lt;br /&gt;
Beim Benutzen von '''squid3''' muss der log-Pfad in der sarg.conf angepasst werden!&lt;br /&gt;
 access_log /var/log/squid/access.log &lt;br /&gt;
ändern in&lt;br /&gt;
 access_log /var/log/squid3/access.log&lt;br /&gt;
&lt;br /&gt;
 sudo ln -sv /var/lib/sarg/ /var/www/&lt;br /&gt;
&lt;br /&gt;
==apache==&lt;br /&gt;
vi /etc/apache2/sites-available/000-default.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
        ServerAdmin technik@xinux.de&lt;br /&gt;
        DocumentRoot /var/www/sarg&lt;br /&gt;
        &amp;lt;Directory /&amp;gt;&lt;br /&gt;
                Options FollowSymLinks&lt;br /&gt;
                AllowOverride None&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
        &amp;lt;Directory /var/www/sarg/&amp;gt;&lt;br /&gt;
                AllowOverride None&lt;br /&gt;
                Order allow,deny&lt;br /&gt;
                Allow from all&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
        ErrorLog ${APACHE_LOG_DIR}/error-sarg.log&lt;br /&gt;
        LogLevel warn&lt;br /&gt;
        CustomLog ${APACHE_LOG_DIR}/access-sarg.log combined&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;ServerName $HOSTNAME&amp;quot; &amp;gt;&amp;gt; /etc/apache2/apache2.conf&lt;br /&gt;
 service apache2 restart&lt;br /&gt;
&lt;br /&gt;
 sudo sarg-reports today&lt;br /&gt;
 http://SERVERIP/sarg&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Squid&amp;diff=4659</id>
		<title>Squid</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Squid&amp;diff=4659"/>
		<updated>2014-07-18T09:32:16Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* sarg */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Der Einsatz von Computernetzwerken in Firmen jeglicher Größe hat in den letzten&lt;br /&gt;
Jahren stark zugenommen. Dabei haben viele Firmen neben dem&lt;br /&gt;
lokalen Netz auch eine Anbindung an ein öffentliches Netz und damit meist&lt;br /&gt;
auch Zugang zum Internet.&lt;br /&gt;
&lt;br /&gt;
Damit verbindet sich ein weltweiter Ausbau dieses Netzes und ein steigendes&lt;br /&gt;
Angebot an Serviceleistungen, die über das Internet angeboten werden. Als&lt;br /&gt;
neuere Technologie sei hier nur die Internettelefonie genannt. Dies bedeutet&lt;br /&gt;
allerdings auch, daß die zu übertragenden Datenmengen ständig zunehmen,&lt;br /&gt;
was zu Engpässen und langen Übertragungszeiten führt.&lt;br /&gt;
&lt;br /&gt;
Für die Unternehmen bedeuten die zunehmenden Datenmengen aber auch&lt;br /&gt;
in erheblichem Maße zunehmende Kosten. Deshalb sind Technologien&lt;br /&gt;
gefragt, die dabei helfen können, diese Datenmengen und damit auch die&lt;br /&gt;
Kosten entsprechend einzuschränken.&lt;br /&gt;
&lt;br /&gt;
Die Anbindung an öffentliche Netze bedeutet aber auch immer ein Risiko, da&lt;br /&gt;
es selten möglich ist, eine Verbindung nur in eine Richtung aufzubauen.&lt;br /&gt;
Dadurch bieten sich Angriffspunkte, die von einigen Leuten ausgenutzt&lt;br /&gt;
werden, um an Daten zu kommen oder Schaden in dem Netz anzurichten.&lt;br /&gt;
Auch hier herrscht großer Bedarf an neuen Lösungen, um einen Kom-promiß&lt;br /&gt;
zwischen Sicherheit und Kommunikation zu finden.&lt;br /&gt;
&lt;br /&gt;
Im Internetbereich bietet sich für beide Gebiete der Einsatz von Proxy-&lt;br /&gt;
Agenten an. Proxy ist das englische Wort für Stellvertreter. Und genau diese&lt;br /&gt;
Aufgabe soll ein Proxy-Agent übernehmen.&lt;br /&gt;
&lt;br /&gt;
Gerade bei großen Netzwerken macht sich der Einsatz eines solchen Proxy-&lt;br /&gt;
Agenten positiv bemerkbar, da er neben einer Verringerung der Netzlast im&lt;br /&gt;
und zum öffentlichen Netz auch einen Performancegewinn innerhalb des&lt;br /&gt;
lokalen Netzes bewirkt.&lt;br /&gt;
&lt;br /&gt;
=Einsatz von Proxy-Servern=&lt;br /&gt;
==Einsatzgebiete und Funktionalität==&lt;br /&gt;
Mit der immer größer werdenden Vernetzung und Globalisierung wachsen&lt;br /&gt;
auch immer mehr die Probleme der Betreiber von lokalen Netzen.&lt;br /&gt;
Einerseits müssen die Kosten für den Datentransfer mit dem Internet&lt;br /&gt;
gering gehalten werden und zum anderen stellt die Anbindung an ein&lt;br /&gt;
öffentliches Netz auch immer einen Angriffspunkt dar.&lt;br /&gt;
&lt;br /&gt;
Die Gefahren sind dabei recht vielfältig. Zum einen ist es in größeren&lt;br /&gt;
Netzwerken dem Administrator meist nicht möglich, die Konfiguration aller&lt;br /&gt;
Computer ständig zu überwachen und nach Sicherheitslücken zu suchen,&lt;br /&gt;
zumal oft auch die notwendige Software recht teuer ist oder vorhandene&lt;br /&gt;
sich nicht so verhält, wie man es gerne hätte. Zweitens ist eine Verbindung&lt;br /&gt;
ins Internet auch immer mit Datentransfer in beiden Richtungen&lt;br /&gt;
verbunden, wodurch von außen ein Angreifer durch getarnte Datenpakete&lt;br /&gt;
in das lokale Netz eindringen und dort Schaden anrichten kann. Hier seien&lt;br /&gt;
Computerviren in ihren vielen Erscheinungsformen erwähnt. Zum Dritten&lt;br /&gt;
stellen die Anwender selber eine gewisse Gefahr dar, indem sie den&lt;br /&gt;
Zugang zum Internet mißbräuchlich oder unbeabsichtigt nutzen, was sehr&lt;br /&gt;
hohe Kosten verursachen kann.&lt;br /&gt;
&lt;br /&gt;
Dieses Problem läßt sich im Internet mit Hilfe eines Proxy-Servers lösen.&lt;br /&gt;
Proxy ist das englische Wort für Stellvertreter. Wie der Name schon&lt;br /&gt;
vermuten läßt, tritt ein Proxy-Server als Stellvertreter auf. Will nun ein&lt;br /&gt;
Client im lokalen Netz ein Dokument aus dem Internet anfordern, muß er&lt;br /&gt;
die Anfrage an den Proxy-Server leiten, der dann die Anfrage an den&lt;br /&gt;
Server weiterleitet. Daraus wird ersichtlich, daß ein Proxy-Server zwei&lt;br /&gt;
Gesichter haben muß. Nach innen zum Client muß er den Internetserver&lt;br /&gt;
vertreten und nach außen wiederum stellt er sich als Client dar. Dies hat&lt;br /&gt;
aus Sicht der Sicherheit noch den weiteren Vorteil, daß nach außen hin nur&lt;br /&gt;
der Proxy-Server sichtbar ist und das Netz dahinter für einen möglichen&lt;br /&gt;
Angreifer unsichtbar bleibt. Ein Proxy muß daher beide Seiten der&lt;br /&gt;
Kommunikation beherrschen. Wie so eine Kommunikation aussieht, ist in&lt;br /&gt;
 [[Image:squid1.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Caching==&lt;br /&gt;
Die Übertragungsraten im Internet sind oft sehr gering, da bestimmte Leitungen, insbesondere transkontinentale, stark belastet sind. Dadurch kann es wiederum vorkommen, daß die Leitung nach außen ausgelastet ist und durch lange Wartezeiten die Kosten der Übertragung in die Höhe gehen.&lt;br /&gt;
&lt;br /&gt;
Ein Ansatzpunkt, die Auslastung und Performance zu optimieren, ist das Zwischenspeichern von Objekten. Dies macht im Internet Sinn, da es oft vorkommt, daß ein Dokument in einem lokalen Netz mehrmals von verschiedenen Clients angefordert wird. Dieses Zwischenspeichern oder Caching von Dokumenten übernimmt ebenfalls der Proxy-Server, der deshalb auch oft als Proxy-Cache bezeichnet wird. Fordert ein Client ein Dokument von einem Server an, so leitet der Proxy die Anfrage an den Server weiter. Dieser liefert das angeforderte Dokument an den Proxy, der es dann an den Client weiter reicht und eine Kopie in seinem Speicher behält. Kommt nun von einem zweiten Client die Anfrage auf dasselbe Dokument, leitet der Proxy diese nicht an den Server weiter, sondern liefert das Dokument aus seinem Speicher direkt an den Client &lt;br /&gt;
 [[Image:squid2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Dies macht deutlich, welche Vorteile ein Proxy-Cache bietet. Zum einen wird die externe Leitung nicht unnötig mit dem mehrmaligen Holen desselben Objektes belastet, es fallen also für die Übertragung keine Kosten an, und außerdem wird die Performance für die Clients im LAN deutlich erhöht. Untersuchungen haben gezeigt, daß die Trefferquoten beim Einsatz eines Proxy-Caches bis zu 50% sind, also fast jede zweite Anfrage nach außen einspart.&lt;br /&gt;
==Sinnvolles Caching==&lt;br /&gt;
Um ein sinnvolles Caching zu erreichen, müssen gewisse Voraussetzungen gegeben sein. Diese fangen damit an, daß die Maschine, auf der ein solcher Proxy-Server läuft von der Hardware entsprechend ausgestattet sein muß. Je nach der Anzahl der Clients, die den Proxy benutzen muß die Leistungsfähigkeit des Rechners ausgelegt sein, damit auch genügend Anfragen gleichzeitig bearbeitet werden können. Um die Trefferquote auf die im Cache abgelegten Objekte zu erhöhen, sollte auch entsprechende Speicherkapazität vorhanden sein. Diese sollte auf jeden Fall mehrere Gigabyte umfassen. Da aber in der letzten Zeit die Preise für Festplattenspeicher enorm nach unten gegangen sind, sollte dies heute kein größeres Problem mehr darstellen. &lt;br /&gt;
Die Hardwarevoraussetzungen alleine machen aber noch keinen guten Proxy-Cache aus, sondern bilden nur eine solide Grundlage. Ein viel größeres Problem ist es, daß die Lebensdauer von Web-Seiten sehr unterschiedlich ist. Dadurch kann nie mit Sicherheit bestimmt werden, wann sich eine Seite ändert und dadurch veraltet ist und aus dem Cache gelöscht, bzw. beim Server neu angefordert werden soll. Es kann also immer vorkommen, daß der Cache ein veraltetes Dokument an den Client liefert. Durch verschiedene Strategien wird versucht, dieses Manko so weit wie möglich auszugleichen. &lt;br /&gt;
HTTP bietet dazu zwei Möglichkeiten: Last-Modified und Expires. Mit der Antwort des Servers werden diese Information an den Proxy mitgeteilt. Mit Last-Modified wird angezeigt, wann das Dokument das letzte mal geändert wurde. Mit der Angabe Expires erhält der Client (in diesem Falle der Proxy) Informationen, wann er das Dokument als veraltet ansehen soll und vom Server neu anfordern muß. In einem HTML-Dokument werden diese Angaben im Header generiert. Dazu wird das META-Element benutzt. Die Informationen sehen dann wie im folgenden Beispiel aus: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;META HTTP-EQUIV=“Last-Modified“ CONTENT=“Thu Jan 1 12:00:00 GMT DST 1998“&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;META HTTP-EQUIV=“Expires“ CONTENT=“Thu Dec 31 12:00:00 GMT DST 1998“&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Allein die Expires-Angabe würde reichen, um den Cache in dieser Hinsicht zu optimieren. Jedoch sind diese Angaben optional und werden sehr selten eingesetzt. Außerdem ist es oft schwierig die Lebensdauer einer Web-Seite vorauszusagen. Daher sind die meisten Web-Seiten einfach so lange gültig, bis der Autor eine neue Version erstellt. Anders sieht es bei Last-Modified aus. Diese Angabe findet sich zwar selten explizit in HTML-Dokumenten, jedoch trägt jedes Dokument als Datei einen Zeitstempel, welcher vom Server dann als Last-Modified-Header mitgeliefert wird.&lt;br /&gt;
&lt;br /&gt;
Die Proxy-Server wenden damit ein einfaches Verfahren ein, um die Lebensdauer eines Dokumentes zu „erraten“. Dabei wird zugrunde gelegt, daß die Wahrscheinlichkeit recht gering ist, daß ein recht altes Dokument in den nächsten Stunden geändert wird. Bei einem Dokument, welches dagegen erst vor kurzem geändert wurde, ist die Möglichkeit einer baldigen Aktualisierung eher vorhanden.Sofern ein Objekt keinen Expires-Header aufweist, erzeugt der Proxy-Server mit Hilfe des Last-Modified-Headers ein künstliches Verfallsdatum. Dazu bestimmt er das Alter der Datei und schlägt einen Prozentsatz dazu, der bei der Konfiguration des Proxy-Servers eingetragen wird (Direktive refresh_pattern), und holt frühestens nach Ablauf dieser Zeit von sich aus das Dokument erneut vom Server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ist beispielsweise ein Dokument zum Zeitpunkt der ersten Anfrage des Proxies bereits 150 Tage alt und der Prozentsatz aus der Konfiguration ist 20%, so vergehen weitere 30 Tage, bis der Proxy-Server eine erneute Anfrage an den Originalserver stellt. &lt;br /&gt;
&lt;br /&gt;
Um dies weiter zu optimieren wird das Dokument nur dann übertragen, wenn die Version auf dem Originalserver wirklich neuer ist, als die im Cache gespeicherte. Dazu schickt der Proxy eine Anfrage an den Originalserver, in der nur der Zeitstempel der Datei enthalten ist. Der Server vergleicht nun den empfangenen Zeitstempel der angeforderten Datei und sendet diese nur dann vollständig zurück, wenn sie jünger ist, als die im Proxy-Cache hinterlegte Kopie. Im anderen Falle erhält der Proxy nur eine kurze, aus HTTP-Headern bestehende Antwort, die signalisiert, daß keine Änderung stattgefunden hat. Der Proxy registriert dies und errechnet ein neues Verfallsdatum. &lt;br /&gt;
&lt;br /&gt;
Neben diesen statischen Objekten, die eine gewisse Lebensdauer haben, gibt es aber auch dynamische Objekte, bei denen eine Zwischenspeicherung nicht angebracht ist. Dies sind beispielsweise HTML-Seiten, die ein CGI-Skript für Datenbankabfragen enthalten oder Seiten, die eine Berechtigung verlangen.&lt;br /&gt;
&lt;br /&gt;
Es kann von beiden Seiten erzwungen werden, daß ein Objekt nicht im Cache gespeichert wird. Auf Seiten des Proxy-Servers erfolgt dies durch eine Einstellung in der Konfiguration. Damit ist es möglich, daß Seiten, die bestimmte Elemente (z.B. cgi-bin, ?, o.ä.) im URL enthalten nicht gespeichert werden. Dies kann man auch für ausgewählte Domänen angeben, was dann sinnvoll ist, wenn sich der Cache in einem Netz befindet, in dem selbst Web-Seiten angeboten werden. &lt;br /&gt;
&lt;br /&gt;
Befindet sich beispielsweise der Proxy-Cache in dem Netz der Domäne testdomain.de, womöglich sogar auf dem selben Rechner wie der Web-Server, so wäre es Unsinn, die Seiten, die dort angeboten werden in den Cache zu legen, da dies unnötig Speicher verbraucht. Von Seiten des Anbieters kann dies über den Einbau einer Authentisierung erfolgen. Dadurch wird bei der Abfrage eines Objektes nach einer Benutzerkennung und einem Paßwort gefragt. Diese Informationen und auch Seiten, die eine Identifikation verlangen, werden standardmäßig nicht vom Proxy gespeichert und müssen jedesmal neu vom Originalserver geholt werden. &lt;br /&gt;
&lt;br /&gt;
==Hierarchisches Caching==&lt;br /&gt;
Bei einigen Proxy-Servern ist es möglich, die Größe des Caches anzugeben, welcher im Hauptspeicher des Rechners liegt. Übertragene Objekte werden dort eine gewisse Zeit gehalten, um schnellere Antwortzeiten zu erreichen, falls ein Objekt innerhalb kurzer Zeit von zwei verschiedenen Clients angefordert wird. Dabei kann meist über den Parameter TTL (Time-to-Live) die Zeitdauer angegeben werden, die ein Objekt maximal in diesem Cache gehalten wird. &lt;br /&gt;
&lt;br /&gt;
Eine weitere Möglichkeit, die Performance zu erhöhen und geringere Antwortzeiten zu erhalten, ist das hierarchische Caching. Banal gesagt setzt man einen Proxy für den Proxy ein. Dadurch kann die Trefferquote auf Objekte nochmals verbessert werden. Dies macht besonders deshalb Sinn, da die Datenmengen, die über die bestehenden Leitungen übertragen werden, immer größer werden und es immer wieder zu Engpässen kommt, die lange Übertragungszeiten verursachen. Das hierarchische Caching führt dabei zu einer Entlastung. Damit die Proxy-Caches miteinander kommunizieren können, wurde ein spezielles Protokoll entwickelt, das ICP (Internet Caching Protocol). Dabei schicken Proxy-Caches für das gewünschte Objekt Anfragen an benachbarte und in der Hierarchie höher stehende Proxy-Caches. Ist das Objekt in einem dieser Caches vorhanden, wird es übertragen, andernfalls wird es vom Originalserver geholt. Da das ICP auf UDP basiert, ist es sehr schnell und bedeutet somit einen vertretbaren Performanceverlust, der durch eine erhöhte Trefferquote mehr als ausgeglichen wird.&lt;br /&gt;
 [[Image:squid3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Begriffe===&lt;br /&gt;
&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
|Neighbours	&lt;br /&gt;
|Dies sind alle Proxies, die ein Proxy kennt und mit denen er kommuniziert.&lt;br /&gt;
|-&lt;br /&gt;
|Siblings&lt;br /&gt;
|Die Geschwisterproxies. Sie liegen mit dem Proxy-Server auf einer Ebene. Siblings liefern in der Regel nur Objekte, die sie selbst im Cache haben,&lt;br /&gt;
|-&lt;br /&gt;
|Parents&lt;br /&gt;
|Übergeordnete Proxies. Sie liefern Objekte die sie selbst im Cache haben und leiten Anfragen an den Originalserver weiter.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Was ist Squid=&lt;br /&gt;
&lt;br /&gt;
Quelle: http://squid.nlanr.net/Squid/  bzw. http://www.squid-cache.org&lt;br /&gt;
&lt;br /&gt;
Squid, ein Beispiel für einen Proxy-Server mit Cache-Mechanismus, ist aus der cached Software des Harvest Forschungsprojektes hervorgegangen. Informationen über Harvest sind auf folgender Webseite zu finden: &lt;br /&gt;
&lt;br /&gt;
http://harvest.cs.colorado.edu/ &lt;br /&gt;
&lt;br /&gt;
Proxy-Systeme mit Cache-Mechanismen dienen meist der Performancesteigerung von Datentransfers, die bei langsamer Internet-Anbindung sehr groß sein kann, wenn Daten wiederholt angefordert werden. &lt;br /&gt;
&lt;br /&gt;
=Funktionsbeschreibung=&lt;br /&gt;
Squid, der Internet Object Cache, ist jedoch mehr als ein einfacher Cache-Proxy. Durch die Unterstützung von Neighbor-Caches, die entweder als parent oder sibling verwendet werden, kann man einen Cache-Verbund aufbauen, der einen hohen Prozentsatz von Anfragen beantworten kann, ohne langwierige Internet-Zugriffe zu erfordern. Dieses Verfahren verwenden zum Beispiel einige der großen Internet-Provider (wie ECRC in München), um den Datentransfer wenn möglich auf der eigenen Netzwerkstruktur abzuwickeln und damit Kosten für externe Zugriffe zu umgehen. &lt;br /&gt;
&lt;br /&gt;
Die Arbeitsweise von Squid ist einfach: &lt;br /&gt;
&lt;br /&gt;
Eine Anfrage eines Clients wird zuerst auf die Zugriffsberechtigung untersucht, so kann man z.B. gewissen Rechnern einen Zugriff auf den Proxy ganz verbieten (siehe Konfiguration). &lt;br /&gt;
&lt;br /&gt;
Es wird versucht, die gewünschten Daten im lokalen Cache zu finden. Sollte dies fehlschlagen, werden andere Proxies im Cache-Verbund (sofern vorhanden),&lt;br /&gt;
abgefragt.&lt;br /&gt;
&lt;br /&gt;
Sind die Daten vorhanden, wird ihre Aktualität geprüft. Sind die Daten veraltet, werden neue in den Cache geholt und an den Client weitergegeben. Bei aktuellen Daten wird das Neuladen übersprungen.&lt;br /&gt;
&lt;br /&gt;
Sind die Daten nicht vorhanden, werden sie in den Cache geladen und an den Client weiter-gereicht. Wie lange Daten im Cache verbleiben, ist abhängig von der Konfiguration (siehe dort)&lt;br /&gt;
&lt;br /&gt;
Eine Beschreibung der internen Abläufe wurde im Sinne der Übersichtlichkeit weggelassen.&lt;br /&gt;
&lt;br /&gt;
=Hilfe und Dokumentation zu Squid=&lt;br /&gt;
&lt;br /&gt;
Hilfe und Dokumentation im Internet:&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
|Die squid Website&lt;br /&gt;
|http://www.squid-cache.org/Doc/&lt;br /&gt;
|-&lt;br /&gt;
|squid IRC Channel&lt;br /&gt;
|Server: irc.freenode.de -Channel: #squid&lt;br /&gt;
|-&lt;br /&gt;
|Mailingliste&lt;br /&gt;
|squid-users@squid-cache.org&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Hilfe und Dokumentation im System&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
|Speziell zur Konfiguration&lt;br /&gt;
|/etc/squid/squid.conf.default&lt;br /&gt;
|-&lt;br /&gt;
|Manualpage&lt;br /&gt;
|man squid&lt;br /&gt;
|-&lt;br /&gt;
|Mitgelieferte Dokumentation&lt;br /&gt;
|/usr/share/doc/squid/&lt;br /&gt;
|}&lt;br /&gt;
=Squid unter Ubuntu=&lt;br /&gt;
==Installation==&lt;br /&gt;
 root@zero:~# apt-get install squid3 squid3-common&lt;br /&gt;
Testen ob Squid läuft &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 3128&lt;br /&gt;
 tcp        0      0 0.0.0.0:3128            0.0.0.0:*               LISTEN      10743/(squid)&lt;br /&gt;
&lt;br /&gt;
==Start Skript==&lt;br /&gt;
Das Startskript /etc/init.d/squid3 hat folgende Parameter&lt;br /&gt;
&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
|start&lt;br /&gt;
|Startet den Squid-Daemon&lt;br /&gt;
|-&lt;br /&gt;
|stop&lt;br /&gt;
|Stoppt den Squid-Daemon&lt;br /&gt;
|-&lt;br /&gt;
|reload&lt;br /&gt;
|Liest die Konfigurationsdatei neu ein&lt;br /&gt;
|-&lt;br /&gt;
|force-reload&lt;br /&gt;
|das gleiche wie reload&lt;br /&gt;
|-&lt;br /&gt;
|restart&lt;br /&gt;
|Stoppt den Deamon, falls er gestartet war und startet ihn wieder (synonym für stop und start)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Squid Parameter==&lt;br /&gt;
Gestartet werden kann Squid auch ohne das Startskript mit &lt;br /&gt;
 /usr/sbin/squid3 [-cdhvzCDFNRVYX] [-s | -l facility] [-f config-file] [-[au] port] [-k signal]&lt;br /&gt;
Flogende Parameter können eingestellt werden:&lt;br /&gt;
&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
| -a port&lt;br /&gt;
|verändert die Portnummer für HTTP-Anfragen&lt;br /&gt;
|-&lt;br /&gt;
| -d level&lt;br /&gt;
|Debug Output auf stderr ausgeben&lt;br /&gt;
|-&lt;br /&gt;
| -f file&lt;br /&gt;
|gibt eine alternative Konfigurationsdatei zu /etc/squid3/squid.conf an&lt;br /&gt;
|-&lt;br /&gt;
| -k&lt;br /&gt;
|mit dieser option können dem laufenden Squid verschiedene Steuersignale übergeben werden&lt;br /&gt;
|-&lt;br /&gt;
| -k reconfigure&lt;br /&gt;
|die Konfigurationsdatei wird nochmals eingelesen&lt;br /&gt;
|-&lt;br /&gt;
| -k rotatate&lt;br /&gt;
|schliesst und öffnet Dateien z.B. log_files&lt;br /&gt;
|-&lt;br /&gt;
| -k shutdown&lt;br /&gt;
|squid wartet kurz und beendet die Verbindung und sich selbst.Mit shutdown_zeit wird Squid nach einer angegebenen Zeit beendet.&lt;br /&gt;
|-&lt;br /&gt;
| -k interrupt&lt;br /&gt;
|sendet einen Interrupt worauf squid sofort abgebrochen wird ohne auf den Verlauf der Verbindungen zu achten.&lt;br /&gt;
|-&lt;br /&gt;
| -k kill&lt;br /&gt;
|bricht squid sofort ab, die Verbindung und die log_files bleiben geöffnet&lt;br /&gt;
|-&lt;br /&gt;
| -k check&lt;br /&gt;
|kontrolliert ob squid läuft&lt;br /&gt;
|-&lt;br /&gt;
| -s&lt;br /&gt;
|erlaubt das Aufnehmen in die syslog&lt;br /&gt;
|-&lt;br /&gt;
| -u port&lt;br /&gt;
|verändert die Portnummer des Internet Cache Protokoll ICP bzw. deaktiviert den Cache-Verbund mit der Portnummer 0&lt;br /&gt;
|-&lt;br /&gt;
| -v&lt;br /&gt;
|zeigt die aktuelle Squid Version&lt;br /&gt;
|-&lt;br /&gt;
| -z&lt;br /&gt;
|richtet cache Verzeichnisse ein&lt;br /&gt;
|-&lt;br /&gt;
| -D&lt;br /&gt;
|Squid führt normalerweise DNS Tests durch die hiermit abgestellt werden können&lt;br /&gt;
|-&lt;br /&gt;
| -F&lt;br /&gt;
|wenn die swap.logs leer sind nützt squid die vollen Systemresourcen um sich um die Anfragen zu kümmern.Dies beschleunigt den Verarbeitungsvorgang&lt;br /&gt;
|-&lt;br /&gt;
| -N&lt;br /&gt;
|der Serverprozess läuft nicht im Hintergrund&lt;br /&gt;
|-&lt;br /&gt;
| -V&lt;br /&gt;
|Aktivierung des httpd Beschleunigungsmodus&lt;br /&gt;
|-&lt;br /&gt;
| -X&lt;br /&gt;
|Full-Debug-Modus&lt;br /&gt;
|-&lt;br /&gt;
| -Y&lt;br /&gt;
|Beschleunigt den ICP austausch bei niederwertigeren Caches&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Konfiguration==&lt;br /&gt;
Squid wird mittels einer normalen Textdatei konfiguriert, die logisch in&lt;br /&gt;
mehrere Teilbereiche unterteilt werden kann. Sie ist unter&lt;br /&gt;
/etc/squid/squid.conf bzw. unter &amp;lt;prefix&amp;gt;/etc/squid.conf zu finden.&lt;br /&gt;
Bei der Installation von Squid wird eine Default-Konfiguration erzeugt, die&lt;br /&gt;
mit minimalen Änderungen bereits einen ersten Testlauf ermöglicht. Für&lt;br /&gt;
die Ausnutzung der vollen Leistung von Squid sollte jedoch eine&lt;br /&gt;
individuelle Anpassung erfolgen.&lt;br /&gt;
&lt;br /&gt;
Alle Zeilen von squid.conf, die mit # beginnen, sind Kommentare bzw.&lt;br /&gt;
nicht aktivierte Optionen. Als Minimalkonfiguration genügen die in Schnellstart beschriebenen&lt;br /&gt;
Einstellungen. Für die genaue Syntax von Optionen sei ebenfalls auf&lt;br /&gt;
squid.conf verwiesen, die folgenden Kapitel geben einen groben Überblick&lt;br /&gt;
über die Möglichkeiten von Squid.&lt;br /&gt;
&lt;br /&gt;
Da die Konfigurationsdatei in Ihrer Fülle und den ganzen Kommentaren&lt;br /&gt;
sehr verwirrend ist kann man sie zunächst einmal auf das Wichtigste reduzieren. Vorher sollte&lt;br /&gt;
die originale squid.conf gesichert werden:&lt;br /&gt;
&lt;br /&gt;
 cp squid.conf squid.conf.org&lt;br /&gt;
 grep  &amp;quot;^[^#]&amp;quot; squid.conf.org &amp;gt; squid.conf&lt;br /&gt;
&lt;br /&gt;
 acl manager proto cache_object&lt;br /&gt;
 acl localhost src 127.0.0.1/32&lt;br /&gt;
 acl to_localhost dst 127.0.0.0/8&lt;br /&gt;
 acl SSL_ports port 443&lt;br /&gt;
 acl Safe_ports port 80		# http&lt;br /&gt;
 acl Safe_ports port 21		# ftp&lt;br /&gt;
 acl Safe_ports port 443	# https&lt;br /&gt;
 acl Safe_ports port 70		# gopher &lt;br /&gt;
 acl Safe_ports port 210		# wais&lt;br /&gt;
 acl Safe_ports port 1025-65535	# unregistered ports&lt;br /&gt;
 acl Safe_ports port 280		# http-mgmt&lt;br /&gt;
 acl Safe_ports port 488		# gss-http&lt;br /&gt;
 acl Safe_ports port 591		# filemaker&lt;br /&gt;
 acl Safe_ports port 777		# multiling http&lt;br /&gt;
 acl CONNECT method CONNECT&lt;br /&gt;
 http_access allow manager localhost&lt;br /&gt;
 http_access deny manager&lt;br /&gt;
 http_access deny !Safe_ports&lt;br /&gt;
 http_access deny CONNECT !SSL_ports&lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
 http_access deny all&lt;br /&gt;
 icp_access deny all&lt;br /&gt;
 htcp_access deny all&lt;br /&gt;
 http_port 3128&lt;br /&gt;
 hierarchy_stoplist cgi-bin ?&lt;br /&gt;
 access_log /var/log/squid3/access.log squid&lt;br /&gt;
 refresh_pattern ^ftp:		1440	20%	10080&lt;br /&gt;
 refresh_pattern ^gopher:	1440	0%	1440&lt;br /&gt;
 refresh_pattern (cgi-bin|\?)	0	0%	0&lt;br /&gt;
 refresh_pattern .		0	20%	4320&lt;br /&gt;
 icp_port 3130&lt;br /&gt;
 coredump_dir /var/spool/squid3&lt;br /&gt;
&lt;br /&gt;
Zur besseren Übersicht unterteilen wir die Konfigdatei&lt;br /&gt;
&lt;br /&gt;
 #allgemeine sektion&lt;br /&gt;
 http_port 3128&lt;br /&gt;
 access_log /var/log/squid3/access.log squid&lt;br /&gt;
 icp_port 3130&lt;br /&gt;
 coredump_dir /var/spool/squid3&lt;br /&gt;
 hierarchy_stoplist cgi-bin ?&lt;br /&gt;
 &lt;br /&gt;
 #refresh&lt;br /&gt;
 refresh_pattern ^ftp:           1440    20%     10080&lt;br /&gt;
 refresh_pattern ^gopher:        1440    0%      1440&lt;br /&gt;
 refresh_pattern (cgi-bin|\?)    0       0%      0&lt;br /&gt;
 refresh_pattern .               0       20%     4320&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl manager proto cache_object&lt;br /&gt;
 acl localhost src 127.0.0.1/32&lt;br /&gt;
 acl to_localhost dst 127.0.0.0/8&lt;br /&gt;
 acl SSL_ports port 443&lt;br /&gt;
 acl Safe_ports port 21 80  443 70 210 280 488 591 777 1025-65535&lt;br /&gt;
 acl CONNECT method CONNECT&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow manager localhost&lt;br /&gt;
 http_access deny manager&lt;br /&gt;
 http_access deny !Safe_ports&lt;br /&gt;
 http_access deny CONNECT !SSL_ports&lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
 http_access deny all&lt;br /&gt;
 icp_access deny all&lt;br /&gt;
 htcp_access deny all&lt;br /&gt;
&lt;br /&gt;
===Allgemein===&lt;br /&gt;
 http_port 3128&lt;br /&gt;
Auf diesem Port lauscht der Squid auf eingehende http-Anfragen der Clients.&lt;br /&gt;
 icp_port 3130&lt;br /&gt;
Auf diesem Port lauscht Squid auf eingehende Anfragen von Nachbar-Proxys&lt;br /&gt;
 access_log /var/log/squid3/access.log squid&lt;br /&gt;
Legt Ort und Art des Loggings für eingehende Requests fest.&lt;br /&gt;
 coredump_dir /var/spool/squid3&lt;br /&gt;
Standardmäßig schreibt Squid corefiles in das Verzeichnis aus dem er gestartet wurden. Wenn mit dieser Option ein Pfad angegeben ist, wechselt Squid nach dem Start in dieses Verzeichnis und legt die corefiles in dieses Verzeichnis ab.&lt;br /&gt;
 hierarchy_stoplist cgi-bin ?&lt;br /&gt;
Hiermit wird eine Liste von Ausdrücken festgelegt, die - wenn sie in dem angefragen URL vorkommen - Squid veranlassen, die Anfrage direkt auszuführen und keine Nachbar-Proxys zu befragen&lt;br /&gt;
&lt;br /&gt;
===Refresh_pattern===&lt;br /&gt;
&lt;br /&gt;
 #refresh_pattern Suchmuster      Min     Prozent Max&lt;br /&gt;
  refresh_pattern ^ftp:           1440    20%     10080&lt;br /&gt;
  refresh_pattern ^gopher:        1440    0%      1440&lt;br /&gt;
  refresh_pattern (cgi-bin|\?)    0       0%      0&lt;br /&gt;
  refresh_pattern .               0       20%     4320&lt;br /&gt;
&lt;br /&gt;
Hier kann der Refresh-Algorithmus von squid für die eigenen Bedürfnisse optimiert werden. &lt;br /&gt;
&lt;br /&gt;
MIN ist die Zeit in Minuten,die ein Objekt ohne explizite Ablaufzeit als Aktuell betrachtet wird. Der ermpfohlene Wert ist 0, jeder höhere Wert könnte dazu führen, dass dynmaische Anwendungen irrtümlich gecachtt&lt;br /&gt;
werden, wenn der Webdesigner keine entsprechenden Gegenaktionen getroffen hat. &lt;br /&gt;
&lt;br /&gt;
PROZENT ist der Prozentsatz eines Objektalters (Zeit seit der letzten&lt;br /&gt;
Modifikation) wo ein Objekt ohne explizite Ablaufzeit als aktuell betrachtet&lt;br /&gt;
wird. &lt;br /&gt;
&lt;br /&gt;
MAX ist ein oberes Limit wie lange Objekte ohne explizite Ablaufzeiten als aktuell betrachtet werden.&lt;br /&gt;
&lt;br /&gt;
 refresh_pattern -i&lt;br /&gt;
Wie refresh_pattern, nur, daß Musterangaben die Groß-/Kleinschreibung&lt;br /&gt;
ignorieren.&lt;br /&gt;
&lt;br /&gt;
===ACL===&lt;br /&gt;
Unter ACL versteht man access control lists, also Filter, die den Zugriff auf den Proxy regeln. Eine ACL muss immer zuerst definiert werden und ein Name gegeben werden. ACLs werden in der Form&lt;br /&gt;
 acl ''aclname acltyp argument'' ...&lt;br /&gt;
 acl ''aclname acltyp &amp;quot;datei&amp;quot;''&lt;br /&gt;
definiert. &lt;br /&gt;
&lt;br /&gt;
====Beispielkonfiguration====&lt;br /&gt;
In der Standardkonfiguration sind 6 ACLs definiert:&lt;br /&gt;
&lt;br /&gt;
Standard- acl für Management-Dienste&lt;br /&gt;
 acl manager proto cache_object &lt;br /&gt;
&lt;br /&gt;
Alles was von localhost (also lokal über das loopback-device) kommt&lt;br /&gt;
 acl localhost src 127.0.0.1/32&lt;br /&gt;
&lt;br /&gt;
Alles was an localhost geht&lt;br /&gt;
 acl to_localhost dst 127.0.0.0/8&lt;br /&gt;
&lt;br /&gt;
acl für SSL_ports (Standard https-port)&lt;br /&gt;
 acl SSL_ports port 443&lt;br /&gt;
&lt;br /&gt;
acl für &amp;quot;sichere Ports&amp;quot;&lt;br /&gt;
 acl Safe_ports port 80 (21,443,70,...)&lt;br /&gt;
&lt;br /&gt;
 acl CONNECT method CONNECT&lt;br /&gt;
&lt;br /&gt;
Nachdem die ACLs definiert sind, müssen diese in Regeln angewendet werden. Die Syntax lautet:&lt;br /&gt;
 ''regeltyp'' allow|deny [!''acl1''] [!''acl2'']&lt;br /&gt;
Eine Regel besagt also, dass ein Zugriff, der auf eine bestimmte Access-List zutrifft, entweder erlaubt (allow) oder verboten wird (deny).&lt;br /&gt;
&lt;br /&gt;
In der Beispielkonfiguration werden http_access und icp-, htcp_access als Regeltyp angewendet, zB. &lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
wendet die Access-Liste 'localhost' an, um den lokalen Zugriff vom Proxy-Server auf http-seiten zu regeln.&lt;br /&gt;
icp_access und htcp_access bzw. icp und htcp sind Protokolle für den Datenaustausch zwischen zwei Servern.&lt;br /&gt;
&lt;br /&gt;
====Eigene Erweiterungen====&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration können wir jetzt erweitern und auf die Bedürfnisse des jeweiligen Netzwerks anpassen. Als Beispiel verwenden wir ein Netzwerk, welches 2 Subnetze enthält, die über einen Proxy, welcher in einer DMZ steht, Verbindungen zum Internet aufbaut. Das 192.168.241.0/24-Netz soll ein privilegiertes Netz sein, d.h Die Clients haben generell mehr Rechte um auf das Internet zuzugreifen, als das andere Netz (192.168.242.0/24).&lt;br /&gt;
&lt;br /&gt;
Als Erstes wollen wir das eine Netz vorläufig komplett für den HTTP-Verkehr freischalten:&lt;br /&gt;
&lt;br /&gt;
ACL für das Netz aufstellen:&lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl privilegiert src 192.168.241.0/24&lt;br /&gt;
ACL anwenden und das Netz freischalten:&lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow privilegiert&lt;br /&gt;
Die beiden Konfigurationsanweisungen müssen nun an korrekter Stelle in die squid.conf eingetragen werden. Bei der ACL ist das nicht so relevant, jedoch zur Übersichtlichkeit wird man sie in den Block mit den anderen ACLs einfügen. Bei der Access-Regel dagegen ist es dagegen von entscheidender Bedeutung, wo die Anweisung steht, da die Konfigurationsdatei von oben nach unten abgearbeitet wird und die erste Regel auf die eine Anfrage passt, wird ausgeführt.&lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow manager localhost&lt;br /&gt;
 http_access deny manager&lt;br /&gt;
 http_access deny !Safe_ports&lt;br /&gt;
 http_access deny CONNECT !SSL_ports&lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
 http_access deny all&lt;br /&gt;
 '''http_access allow privilegiert'''&lt;br /&gt;
Wird die Regel wie hier angezeigt eingefügt, hat das keine Auswirkung auf den Zugriff, da die Regel &amp;quot;http_access deny all&amp;quot; vorher steht, welche auf alles zutrifft und so die Anfrage abweist. Also müssen wir die Regel weiter oben einfügen.&lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow manager localhost&lt;br /&gt;
 http_access deny manager&lt;br /&gt;
 http_access deny !Safe_ports&lt;br /&gt;
 http_access deny CONNECT !SSL_ports&lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
 '''http_access allow privilegiert'''&lt;br /&gt;
 http_access deny all&lt;br /&gt;
&lt;br /&gt;
Das unprivilegierte Netz soll nun auch Zugriff auf das Internet erhalten, jedoch nur in eingeschränktem Maße. Es soll nur auf den für den Arbeitsablauf notwendigen Webseiten Zugriff erhalten. Dies wird so realisiert, dass eine Datei mit Regex-URLs eingerichtet wird, auf die zugegriffen werden darf.&lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl unprivilegiert src 192.168.242.0/24&lt;br /&gt;
 acl gute_domains url_regex -i &amp;quot;/etc/squid3/gute_domains&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow unprivilegiert gute_domains&lt;br /&gt;
Diese Regel hat 2 acls als Argumente. Diese werden in den Access-Regeln durch ein UND verknüpft, d.h. die Regel matcht nur wenn beide acls zutreffen.&lt;br /&gt;
&lt;br /&gt;
Nun wird eine Regel erstellt, damit URLs, auf die niemand zugreifen darf, im gesamten Netzwerk, also in den beiden Subnetzen, verboten wird.&lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl lan src 192.168.241.0/24 192.168.242.0/24&lt;br /&gt;
 acl schlechte_domains url_regex -i &amp;quot;/etc/squid3/schlechte_domains&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access deny lan schlechte_domains&lt;br /&gt;
&lt;br /&gt;
 root@zero:/etc/squid3# cat schlechte_domains &lt;br /&gt;
 ^http://(www.)?pornographische-seite1.de&lt;br /&gt;
 ^http://(www.)?boese-seite2.com&lt;br /&gt;
 root@zero:/etc/squid3# &lt;br /&gt;
&lt;br /&gt;
Hier wird eine ACL erstellt, die 2 Argumente besitzt. Diese werden, im Gegensatz zu den Access-Regeln, mit einem ODER verknüpft, sodass diese Regel matcht, falls eine Anfrage der beiden Subnetze als Source mit einer URL aus der Datei &amp;quot;schlechte_domains&amp;quot; kommt. In Aussagenlogikform:&lt;br /&gt;
&lt;br /&gt;
lan = ( privilegiert ODER unprivilegiert )&lt;br /&gt;
acl = lan UND schlechte_domains&lt;br /&gt;
&lt;br /&gt;
Jetzt wollen wir z.B den Nutzern im unprivilegierten Netz auch die Möglichkeit geben, während der Mittagspause frei im Internet surfen zu können. Dazu benutzt man den acl-Typ &amp;quot;time&amp;quot;:&lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl mittag time 12:00-12:30&lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow unprivilegiert mittag&lt;br /&gt;
Hier wird eine acl mittag definiert, die einen Zeitbereich annimmt. Diese wird mit der acl unprivilegiert in einer Regel verknüpft.&lt;br /&gt;
&lt;br /&gt;
===Authentifizierung===&lt;br /&gt;
&lt;br /&gt;
====Passwortdatei====&lt;br /&gt;
Mit dem Programm htpasswd (ruft Systemfunktion crypt auf )das bei jeder Distribution dabei sein sollte können ein Passwortdatei erzeugen. &lt;br /&gt;
 root@zero:/etc/squid3# htpasswd -c passwd xinux&lt;br /&gt;
 New password: &lt;br /&gt;
 Re-type new password: &lt;br /&gt;
 Adding password for user xinux&lt;br /&gt;
 root@zero:/etc/squid3# cat passwd &lt;br /&gt;
 xinux:5AZTQ/gAwdlOU&lt;br /&gt;
 root@zero:/etc/squid3#&lt;br /&gt;
&lt;br /&gt;
====Konfigurationsdatei====&lt;br /&gt;
 #auth-sektion&lt;br /&gt;
 auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/passwd&lt;br /&gt;
 auth_param basic children 5&lt;br /&gt;
 auth_param basic concurrency 0&lt;br /&gt;
 auth_param basic realm Squid proxy-caching web server&lt;br /&gt;
 auth_param basic casesensitive off&lt;br /&gt;
 &lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl autorisiert proxy_auth REQUIRED&lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow unprivilegiert autorisiert&lt;br /&gt;
In der Konfigurationsdatei wird nun ein Programm angegeben, das für die Authentifizierung aufgerufen wird. Dieses liest Daten aus der zuvor angefertigten Passwortdatei. Dann muss eine acl mit dem typ &amp;quot;proxy_auth&amp;quot; erstellt werden, welche in einer Regel angewendet wird. So kann hier auch ein Nutzer aus dem unprivilegierten Netz Zugang zum Internet bekommen, sollte er sich authentifizieren können.&lt;br /&gt;
&lt;br /&gt;
===Caching===&lt;br /&gt;
Squid benutzt den Hauptspeicher und ein Verzeichnis, um Anfragen zu cachen und diese bei erneuten Anfragen direkt auszuliefern.&lt;br /&gt;
====Anlegen des Caches====&lt;br /&gt;
 root@zero:/etc/squid3# cd /var/cache/&lt;br /&gt;
 root@zero:/var/cache# mkdir squid&lt;br /&gt;
 root@zero:/var/cache# chown proxy:proxy squid/&lt;br /&gt;
 root@zero:/var/cache# ls -l | grep squid&lt;br /&gt;
 drwxr-xr-x  2 proxy    proxy    4096 2009-07-10 09:53 squid&lt;br /&gt;
Hier wird ein Verzeichnis angelegt, welches dem Benutzer proxy beschreibbar sein, da der Squid nicht unter root, sondern unter einem unprivilegierten Benutzer läuft.&lt;br /&gt;
 #cache-sektion&lt;br /&gt;
 cache_dir ufs /var/cache/squid 100 16 256&lt;br /&gt;
cache_dir ''typ verzeichnis MB L1 L2''&lt;br /&gt;
&lt;br /&gt;
In der Konfigurationsdatei wird dieses Verzeichnis angegeben. Der Typ &amp;quot;ufs&amp;quot; ist das Standardspeichersystem des Squid. Es können aber auch andere Typen wie aufs oder diskd benutzt werden. Die Optionen hinter dem Verzeichnisnamen, geben Speicherplatz und Verzeichnisstruktur an. MB gibt an, wieviel Speicherplatz Squid in diesem Verzeichnis benutzt (es können auch mehrere Verzeichnisse zur Speicherverteilung auf verschiedene Partitionen angegeben werden), L1 gibt an wieviele First-Level-Unterverzeichnisse angelegt werden, L2 gibt an, wieviele Second-Level-Unterverzeichnisse in jedem First-Level-Verzeichnis angelegt werden (Baum-Struktur).&lt;br /&gt;
 root@zero:/var/cache# /etc/init.d/squid3 restart&lt;br /&gt;
 * Restarting Squid HTTP Proxy 3.0 squid3&lt;br /&gt;
 *   Waiting...                                                                  &lt;br /&gt;
 * ...                                                                          &lt;br /&gt;
 * ...                                                                          &lt;br /&gt;
 * ...                                                                          &lt;br /&gt;
 * ...                                                                          &lt;br /&gt;
 * ...                                                                         &lt;br /&gt;
 * ...                                                                  [ OK ] &lt;br /&gt;
 * Creating Squid HTTP Proxy 3.0 cache structure&lt;br /&gt;
 2009/07/10 09:59:24| Creating Swap Directories&lt;br /&gt;
 2009/07/10 09:59:24| /var/cache/squid exists&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/00&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/01&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/02&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/03&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/04&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/05&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/06&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/07&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/08&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/09&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0A&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0B&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0C &lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0D&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0E&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0F&lt;br /&gt;
                                                                        [ OK ]&lt;br /&gt;
 root@zero:/var/cache/squid# ls&lt;br /&gt;
 00  01  02  03  04  05  06  07  08  09  0A  0B  0C  0D  0E  0F  swap.state&lt;br /&gt;
 root@zero:/var/cache/squid# cd 00&lt;br /&gt;
 root@zero:/var/cache/squid/00# ls&lt;br /&gt;
 00  0E  1C  2A  38  46  54  62  70  7E  8C  9A  A8  B6  C4  D2  E0  EE  FC&lt;br /&gt;
 01  0F  1D  2B  39  47  55  63  71  7F  8D  9B  A9  B7  C5  D3  E1  EF  FD&lt;br /&gt;
 02  10  1E  2C  3A  48  56  64  72  80  8E  9C  AA  B8  C6  D4  E2  F0  FE&lt;br /&gt;
 03  11  1F  2D  3B  49  57  65  73  81  8F  9D  AB  B9  C7  D5  E3  F1  FF&lt;br /&gt;
 04  12  20  2E  3C  4A  58  66  74  82  90  9E  AC  BA  C8  D6  E4  F2&lt;br /&gt;
 05  13  21  2F  3D  4B  59  67  75  83  91  9F  AD  BB  C9  D7  E5  F3&lt;br /&gt;
 06  14  22  30  3E  4C  5A  68  76  84  92  A0  AE  BC  CA  D8  E6  F4&lt;br /&gt;
 07  15  23  31  3F  4D  5B  69  77  85  93  A1  AF  BD  CB  D9  E7  F5&lt;br /&gt;
 08  16  24  32  40  4E  5C  6A  78  86  94  A2  B0  BE  CC  DA  E8  F6&lt;br /&gt;
 09  17  25  33  41  4F  5D  6B  79  87  95  A3  B1  BF  CD  DB  E9  F7&lt;br /&gt;
 0A  18  26  34  42  50  5E  6C  7A  88  96  A4  B2  C0  CE  DC  EA  F8&lt;br /&gt;
 0B  19  27  35  43  51  5F  6D  7B  89  97  A5  B3  C1  CF  DD  EB  F9&lt;br /&gt;
 0C  1A  28  36  44  52  60  6E  7C  8A  98  A6  B4  C2  D0  DE  EC  FA&lt;br /&gt;
 0D  1B  29  37  45  53  61  6F  7D  8B  99  A7  B5  C3  D1  DF  ED  FB&lt;br /&gt;
 root@zero:/var/cache/squid/00#&lt;br /&gt;
Hier sieht man, das Squid im Verzeichnis /var/cache/squid 16 Verzeichnisse von 00-0F und in jedem Unterverzeichnis weitere 256 Verzeichnisse 00-FF angelegt hat.&lt;br /&gt;
&lt;br /&gt;
====Konfiguration====&lt;br /&gt;
Nun können weitere Optionen in der Konfigurationsdatei angegeben werden.&lt;br /&gt;
 cache_mem 32 MB&lt;br /&gt;
Gibt an, wieviel Hauptspeicher zum Cachen für Squid verwendet wird&lt;br /&gt;
 cache_swap_low 90&lt;br /&gt;
 cache_swap_high 95&lt;br /&gt;
Diese beiden Optionen geben den unteren und oberen Threshold für die Füllung des Caches an in % an. Wird die untere Marke überschritten, beginnt Squid entsprechend der cache_replacement_policy Objekte aus dem Cache zu entfernen. Wird die obere Marke erreicht, erfolgt die Räumung aggressiver. Wird die untere Marke unterschritten, wird der Prozess beendet.&lt;br /&gt;
 minimum_object_size 0 KB&lt;br /&gt;
 maximum_object_size 8192 KB&lt;br /&gt;
minimum_object_size gibt an, wie groß ein Objekt mindestens sein muss, um im Cache gespeichert zu werden, maximum_object_size die maximale Größe.&lt;br /&gt;
 maximum_object_size_in_memory 64 KB&lt;br /&gt;
maximum_object_size_in_memory gibt an, wie groß ein Objekt höchstens sein darf, um im Hauptspeicher gecacht zu werden.&lt;br /&gt;
 ipcache_size 1024&lt;br /&gt;
Hier wird die maximale Anzahl der IP-Cache Einträge bestimmt.&lt;br /&gt;
 ipcache_low 90&lt;br /&gt;
 ipcache_high 95&lt;br /&gt;
Thresholds der IP-Cache-Einträge, entsprechend zu cache_swap_low und _high.&lt;br /&gt;
 fqdncache_size 1024&lt;br /&gt;
Maximale Anzahl der FQDN-Cache-Einträge.&lt;br /&gt;
 cache_replacement_policy lru&lt;br /&gt;
 memory_replacement_policy lru&lt;br /&gt;
Diese Einträge bestimmen, mit welchem Verfahren Objekte aus dem Cache entfernt werden. lru steht für least recently used, d.h. Squid löscht bei diesem Verfahren die Einträge, die am längsten nicht mehr angefragt wurden. Es gibt außerdem:&lt;br /&gt;
&lt;br /&gt;
heap GDFS (Greed-Dual Size Frequency): Optimiert die Objekt-Hitrate. Kleine häufig angefragte Objekte werden auf Kosten großer, weniger häufig angefragter Objekte im Cache gehalten. Damit wird die Warscheinlichkeit eines Objekt-Hits gesteigert.&lt;br /&gt;
&lt;br /&gt;
heap LFUDA (Least frequently used with dynamic aging): Optimiert die Byte-Hitragte. Häufig angefrage Objekte werden im Cache gehalten, slten angefragte Objekte werden freigegeben, unabhängig von deren Größe. Damit wird ein häufiger angefrages, großes Objekt ggf. auf Kosten vieler kleiner Objekte im Cache gehalten.&lt;br /&gt;
&lt;br /&gt;
heap lru (erweitertes lru-Verfahren).&lt;br /&gt;
&lt;br /&gt;
===Delay-Pools===&lt;br /&gt;
Mit Delay-Pools kann man eine Bandbreitensteuerung über Squid implementieren.&lt;br /&gt;
 #delay_pools-sektion&lt;br /&gt;
 delay_pools 2&lt;br /&gt;
Hier wird die Anzahl der Pools angegeben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #delay_claas ''pool'' ''class''&lt;br /&gt;
 delay_class 1 1&lt;br /&gt;
 delay_class 2 2&lt;br /&gt;
Jeder der Pools wird einer Klasse zugeordnet. Es gibt insgesamt 5 Klassen, die verschiedene Methoden zur Bandbreitensteuerung anbieten.&lt;br /&gt;
&lt;br /&gt;
Klasse 1: Die gesamte Bandbreite wird über ein Parameterpaar gesteuert.&lt;br /&gt;
&lt;br /&gt;
Klasse 2: Es werden 2 Parameterpaare angegeben. Das erste bestimmt die gesamte Bandbreite, das zweite bestimmt die individuelle Bandbreite eines Hosts anhand des letzten Bytes der IP-Adresse.&lt;br /&gt;
&lt;br /&gt;
Klasse 3: Zusätzlich zu den 2 Parametepaaren in Klasse 2 gibt es noch ein drittes Paar, welches die Bandbreite eines ganzen Klasse-C-Netzes beschränkt.&lt;br /&gt;
&lt;br /&gt;
Klasse 4: Wie Klasse 3, jedoch gibt es noch ein zusätzliches Parameterpaar, welches anhand des Benutzernamens die Bandbreite beschränkt. Diese Limitierung tritt nur in Kraft, sollte ein Request eine Benutzerauthentifizierung erfordert haben (siehe Authentifizerung).&lt;br /&gt;
&lt;br /&gt;
Klasse 5: Die Bandbreitenregulierung erfolgt nicht wie in Klasse 2-4 über IP-Adressen oder Benutzer, sondern über ein Tag, welches angegeben wird und einen Request identifiziert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 delay_parameters 1 10000/20000&lt;br /&gt;
 delay_parameters 2 20000/40000 1000/2000&lt;br /&gt;
 delay_access 1 allow privilegiert&lt;br /&gt;
 delay_access 2 allow unprivilegiert&lt;br /&gt;
 delay_access 1 deny all&lt;br /&gt;
 delay_access 2 deny all&lt;br /&gt;
&lt;br /&gt;
Nun müssen den Delay-Pools noch die Parameter übergeben werden. Der Delay-Pool mit Klasse 1 erhält ein Parameterpaar. Dieses Parameterpaar setzt sich zusammen aus restore- und einem maximum-Wert. Der restore-Wert bestimmt die eigentliche Bandbreite in Byte/Sekunde, der maximum-Wert bestimmt die maximale Datenmenge in Byte, die auf einmal übertragen wird.&lt;br /&gt;
&lt;br /&gt;
Die mit maximum definierte Datenmenge wird ganz normal über das Netz übertragen, ggf. mit der vollen zur Verfügung stehenden Bandbreite und ohne weitere Begrenzung. Anhand des eigentlichen Bandbreitenwertes restore berechnet Squid, wie lange er das nächste Paket verzögern muss, um auf die durchschnittliche, mit restore vorgegebene Bandbreite zu kommen. So wird die vorgegebene Nettobandbreite im Mittel durchaus gehalten, ein einzelnes Datenpaket kann jedoch deutlich schneller zum Client transportiert werden.&lt;br /&gt;
&lt;br /&gt;
Mit delay-access wird nun festelegt, welche Pools auf welche acl angewendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=ads mitglied=&lt;br /&gt;
*http://blog.stefan-betz.net/2009/1/7/hochzeit:-squid-3-und-active-directory/&lt;br /&gt;
*http://www.woy.de/?p=29&lt;br /&gt;
&lt;br /&gt;
=sarg=&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install sarg apache2&lt;br /&gt;
 sudo cp /etc/sarg/sarg.conf /etc/sarg/sarg.conf.old&lt;br /&gt;
 sudo cat /etc/sarg/sarg.conf.old | grep -v ^# | grep -v ^$ &amp;gt; /etc/sarg/sarg.conf&lt;br /&gt;
&lt;br /&gt;
Beim Benutzen von '''squid3''' muss der log-Pfad in der sarg.conf angepasst werden!&lt;br /&gt;
 access_log /var/log/squid/access.log &lt;br /&gt;
ändern in&lt;br /&gt;
 access_log /var/log/squid3/access.log&lt;br /&gt;
&lt;br /&gt;
 sudo ln -sv /var/lib/sarg/ /var/www/&lt;br /&gt;
&lt;br /&gt;
==apache==&lt;br /&gt;
vi /etc/apache2/sites-available/000-default.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
        ServerAdmin technik@xinux.de&lt;br /&gt;
        DocumentRoot /var/www/sarg&lt;br /&gt;
        &amp;lt;Directory /&amp;gt;&lt;br /&gt;
                Options FollowSymLinks&lt;br /&gt;
                AllowOverride None&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
        &amp;lt;Directory /var/www/sarg/&amp;gt;&lt;br /&gt;
                AllowOverride None&lt;br /&gt;
                Options FollowSymLinks +ExecCGI MultiViews&lt;br /&gt;
                Order allow,deny&lt;br /&gt;
                Allow from all&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
        ErrorLog ${APACHE_LOG_DIR}/error-sarg.log&lt;br /&gt;
        LogLevel warn&lt;br /&gt;
        CustomLog ${APACHE_LOG_DIR}/access-sarg.log combined&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;ServerName $HOSTNAME&amp;quot; &amp;gt;&amp;gt; /etc/apache2/apache2.conf&lt;br /&gt;
 service apache2 restart&lt;br /&gt;
&lt;br /&gt;
 sudo sarg-reports today&lt;br /&gt;
 http://SERVERIP/sarg&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Squid&amp;diff=4658</id>
		<title>Squid</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Squid&amp;diff=4658"/>
		<updated>2014-07-18T09:30:15Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* apache */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Der Einsatz von Computernetzwerken in Firmen jeglicher Größe hat in den letzten&lt;br /&gt;
Jahren stark zugenommen. Dabei haben viele Firmen neben dem&lt;br /&gt;
lokalen Netz auch eine Anbindung an ein öffentliches Netz und damit meist&lt;br /&gt;
auch Zugang zum Internet.&lt;br /&gt;
&lt;br /&gt;
Damit verbindet sich ein weltweiter Ausbau dieses Netzes und ein steigendes&lt;br /&gt;
Angebot an Serviceleistungen, die über das Internet angeboten werden. Als&lt;br /&gt;
neuere Technologie sei hier nur die Internettelefonie genannt. Dies bedeutet&lt;br /&gt;
allerdings auch, daß die zu übertragenden Datenmengen ständig zunehmen,&lt;br /&gt;
was zu Engpässen und langen Übertragungszeiten führt.&lt;br /&gt;
&lt;br /&gt;
Für die Unternehmen bedeuten die zunehmenden Datenmengen aber auch&lt;br /&gt;
in erheblichem Maße zunehmende Kosten. Deshalb sind Technologien&lt;br /&gt;
gefragt, die dabei helfen können, diese Datenmengen und damit auch die&lt;br /&gt;
Kosten entsprechend einzuschränken.&lt;br /&gt;
&lt;br /&gt;
Die Anbindung an öffentliche Netze bedeutet aber auch immer ein Risiko, da&lt;br /&gt;
es selten möglich ist, eine Verbindung nur in eine Richtung aufzubauen.&lt;br /&gt;
Dadurch bieten sich Angriffspunkte, die von einigen Leuten ausgenutzt&lt;br /&gt;
werden, um an Daten zu kommen oder Schaden in dem Netz anzurichten.&lt;br /&gt;
Auch hier herrscht großer Bedarf an neuen Lösungen, um einen Kom-promiß&lt;br /&gt;
zwischen Sicherheit und Kommunikation zu finden.&lt;br /&gt;
&lt;br /&gt;
Im Internetbereich bietet sich für beide Gebiete der Einsatz von Proxy-&lt;br /&gt;
Agenten an. Proxy ist das englische Wort für Stellvertreter. Und genau diese&lt;br /&gt;
Aufgabe soll ein Proxy-Agent übernehmen.&lt;br /&gt;
&lt;br /&gt;
Gerade bei großen Netzwerken macht sich der Einsatz eines solchen Proxy-&lt;br /&gt;
Agenten positiv bemerkbar, da er neben einer Verringerung der Netzlast im&lt;br /&gt;
und zum öffentlichen Netz auch einen Performancegewinn innerhalb des&lt;br /&gt;
lokalen Netzes bewirkt.&lt;br /&gt;
&lt;br /&gt;
=Einsatz von Proxy-Servern=&lt;br /&gt;
==Einsatzgebiete und Funktionalität==&lt;br /&gt;
Mit der immer größer werdenden Vernetzung und Globalisierung wachsen&lt;br /&gt;
auch immer mehr die Probleme der Betreiber von lokalen Netzen.&lt;br /&gt;
Einerseits müssen die Kosten für den Datentransfer mit dem Internet&lt;br /&gt;
gering gehalten werden und zum anderen stellt die Anbindung an ein&lt;br /&gt;
öffentliches Netz auch immer einen Angriffspunkt dar.&lt;br /&gt;
&lt;br /&gt;
Die Gefahren sind dabei recht vielfältig. Zum einen ist es in größeren&lt;br /&gt;
Netzwerken dem Administrator meist nicht möglich, die Konfiguration aller&lt;br /&gt;
Computer ständig zu überwachen und nach Sicherheitslücken zu suchen,&lt;br /&gt;
zumal oft auch die notwendige Software recht teuer ist oder vorhandene&lt;br /&gt;
sich nicht so verhält, wie man es gerne hätte. Zweitens ist eine Verbindung&lt;br /&gt;
ins Internet auch immer mit Datentransfer in beiden Richtungen&lt;br /&gt;
verbunden, wodurch von außen ein Angreifer durch getarnte Datenpakete&lt;br /&gt;
in das lokale Netz eindringen und dort Schaden anrichten kann. Hier seien&lt;br /&gt;
Computerviren in ihren vielen Erscheinungsformen erwähnt. Zum Dritten&lt;br /&gt;
stellen die Anwender selber eine gewisse Gefahr dar, indem sie den&lt;br /&gt;
Zugang zum Internet mißbräuchlich oder unbeabsichtigt nutzen, was sehr&lt;br /&gt;
hohe Kosten verursachen kann.&lt;br /&gt;
&lt;br /&gt;
Dieses Problem läßt sich im Internet mit Hilfe eines Proxy-Servers lösen.&lt;br /&gt;
Proxy ist das englische Wort für Stellvertreter. Wie der Name schon&lt;br /&gt;
vermuten läßt, tritt ein Proxy-Server als Stellvertreter auf. Will nun ein&lt;br /&gt;
Client im lokalen Netz ein Dokument aus dem Internet anfordern, muß er&lt;br /&gt;
die Anfrage an den Proxy-Server leiten, der dann die Anfrage an den&lt;br /&gt;
Server weiterleitet. Daraus wird ersichtlich, daß ein Proxy-Server zwei&lt;br /&gt;
Gesichter haben muß. Nach innen zum Client muß er den Internetserver&lt;br /&gt;
vertreten und nach außen wiederum stellt er sich als Client dar. Dies hat&lt;br /&gt;
aus Sicht der Sicherheit noch den weiteren Vorteil, daß nach außen hin nur&lt;br /&gt;
der Proxy-Server sichtbar ist und das Netz dahinter für einen möglichen&lt;br /&gt;
Angreifer unsichtbar bleibt. Ein Proxy muß daher beide Seiten der&lt;br /&gt;
Kommunikation beherrschen. Wie so eine Kommunikation aussieht, ist in&lt;br /&gt;
 [[Image:squid1.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Caching==&lt;br /&gt;
Die Übertragungsraten im Internet sind oft sehr gering, da bestimmte Leitungen, insbesondere transkontinentale, stark belastet sind. Dadurch kann es wiederum vorkommen, daß die Leitung nach außen ausgelastet ist und durch lange Wartezeiten die Kosten der Übertragung in die Höhe gehen.&lt;br /&gt;
&lt;br /&gt;
Ein Ansatzpunkt, die Auslastung und Performance zu optimieren, ist das Zwischenspeichern von Objekten. Dies macht im Internet Sinn, da es oft vorkommt, daß ein Dokument in einem lokalen Netz mehrmals von verschiedenen Clients angefordert wird. Dieses Zwischenspeichern oder Caching von Dokumenten übernimmt ebenfalls der Proxy-Server, der deshalb auch oft als Proxy-Cache bezeichnet wird. Fordert ein Client ein Dokument von einem Server an, so leitet der Proxy die Anfrage an den Server weiter. Dieser liefert das angeforderte Dokument an den Proxy, der es dann an den Client weiter reicht und eine Kopie in seinem Speicher behält. Kommt nun von einem zweiten Client die Anfrage auf dasselbe Dokument, leitet der Proxy diese nicht an den Server weiter, sondern liefert das Dokument aus seinem Speicher direkt an den Client &lt;br /&gt;
 [[Image:squid2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Dies macht deutlich, welche Vorteile ein Proxy-Cache bietet. Zum einen wird die externe Leitung nicht unnötig mit dem mehrmaligen Holen desselben Objektes belastet, es fallen also für die Übertragung keine Kosten an, und außerdem wird die Performance für die Clients im LAN deutlich erhöht. Untersuchungen haben gezeigt, daß die Trefferquoten beim Einsatz eines Proxy-Caches bis zu 50% sind, also fast jede zweite Anfrage nach außen einspart.&lt;br /&gt;
==Sinnvolles Caching==&lt;br /&gt;
Um ein sinnvolles Caching zu erreichen, müssen gewisse Voraussetzungen gegeben sein. Diese fangen damit an, daß die Maschine, auf der ein solcher Proxy-Server läuft von der Hardware entsprechend ausgestattet sein muß. Je nach der Anzahl der Clients, die den Proxy benutzen muß die Leistungsfähigkeit des Rechners ausgelegt sein, damit auch genügend Anfragen gleichzeitig bearbeitet werden können. Um die Trefferquote auf die im Cache abgelegten Objekte zu erhöhen, sollte auch entsprechende Speicherkapazität vorhanden sein. Diese sollte auf jeden Fall mehrere Gigabyte umfassen. Da aber in der letzten Zeit die Preise für Festplattenspeicher enorm nach unten gegangen sind, sollte dies heute kein größeres Problem mehr darstellen. &lt;br /&gt;
Die Hardwarevoraussetzungen alleine machen aber noch keinen guten Proxy-Cache aus, sondern bilden nur eine solide Grundlage. Ein viel größeres Problem ist es, daß die Lebensdauer von Web-Seiten sehr unterschiedlich ist. Dadurch kann nie mit Sicherheit bestimmt werden, wann sich eine Seite ändert und dadurch veraltet ist und aus dem Cache gelöscht, bzw. beim Server neu angefordert werden soll. Es kann also immer vorkommen, daß der Cache ein veraltetes Dokument an den Client liefert. Durch verschiedene Strategien wird versucht, dieses Manko so weit wie möglich auszugleichen. &lt;br /&gt;
HTTP bietet dazu zwei Möglichkeiten: Last-Modified und Expires. Mit der Antwort des Servers werden diese Information an den Proxy mitgeteilt. Mit Last-Modified wird angezeigt, wann das Dokument das letzte mal geändert wurde. Mit der Angabe Expires erhält der Client (in diesem Falle der Proxy) Informationen, wann er das Dokument als veraltet ansehen soll und vom Server neu anfordern muß. In einem HTML-Dokument werden diese Angaben im Header generiert. Dazu wird das META-Element benutzt. Die Informationen sehen dann wie im folgenden Beispiel aus: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;META HTTP-EQUIV=“Last-Modified“ CONTENT=“Thu Jan 1 12:00:00 GMT DST 1998“&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;META HTTP-EQUIV=“Expires“ CONTENT=“Thu Dec 31 12:00:00 GMT DST 1998“&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Allein die Expires-Angabe würde reichen, um den Cache in dieser Hinsicht zu optimieren. Jedoch sind diese Angaben optional und werden sehr selten eingesetzt. Außerdem ist es oft schwierig die Lebensdauer einer Web-Seite vorauszusagen. Daher sind die meisten Web-Seiten einfach so lange gültig, bis der Autor eine neue Version erstellt. Anders sieht es bei Last-Modified aus. Diese Angabe findet sich zwar selten explizit in HTML-Dokumenten, jedoch trägt jedes Dokument als Datei einen Zeitstempel, welcher vom Server dann als Last-Modified-Header mitgeliefert wird.&lt;br /&gt;
&lt;br /&gt;
Die Proxy-Server wenden damit ein einfaches Verfahren ein, um die Lebensdauer eines Dokumentes zu „erraten“. Dabei wird zugrunde gelegt, daß die Wahrscheinlichkeit recht gering ist, daß ein recht altes Dokument in den nächsten Stunden geändert wird. Bei einem Dokument, welches dagegen erst vor kurzem geändert wurde, ist die Möglichkeit einer baldigen Aktualisierung eher vorhanden.Sofern ein Objekt keinen Expires-Header aufweist, erzeugt der Proxy-Server mit Hilfe des Last-Modified-Headers ein künstliches Verfallsdatum. Dazu bestimmt er das Alter der Datei und schlägt einen Prozentsatz dazu, der bei der Konfiguration des Proxy-Servers eingetragen wird (Direktive refresh_pattern), und holt frühestens nach Ablauf dieser Zeit von sich aus das Dokument erneut vom Server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ist beispielsweise ein Dokument zum Zeitpunkt der ersten Anfrage des Proxies bereits 150 Tage alt und der Prozentsatz aus der Konfiguration ist 20%, so vergehen weitere 30 Tage, bis der Proxy-Server eine erneute Anfrage an den Originalserver stellt. &lt;br /&gt;
&lt;br /&gt;
Um dies weiter zu optimieren wird das Dokument nur dann übertragen, wenn die Version auf dem Originalserver wirklich neuer ist, als die im Cache gespeicherte. Dazu schickt der Proxy eine Anfrage an den Originalserver, in der nur der Zeitstempel der Datei enthalten ist. Der Server vergleicht nun den empfangenen Zeitstempel der angeforderten Datei und sendet diese nur dann vollständig zurück, wenn sie jünger ist, als die im Proxy-Cache hinterlegte Kopie. Im anderen Falle erhält der Proxy nur eine kurze, aus HTTP-Headern bestehende Antwort, die signalisiert, daß keine Änderung stattgefunden hat. Der Proxy registriert dies und errechnet ein neues Verfallsdatum. &lt;br /&gt;
&lt;br /&gt;
Neben diesen statischen Objekten, die eine gewisse Lebensdauer haben, gibt es aber auch dynamische Objekte, bei denen eine Zwischenspeicherung nicht angebracht ist. Dies sind beispielsweise HTML-Seiten, die ein CGI-Skript für Datenbankabfragen enthalten oder Seiten, die eine Berechtigung verlangen.&lt;br /&gt;
&lt;br /&gt;
Es kann von beiden Seiten erzwungen werden, daß ein Objekt nicht im Cache gespeichert wird. Auf Seiten des Proxy-Servers erfolgt dies durch eine Einstellung in der Konfiguration. Damit ist es möglich, daß Seiten, die bestimmte Elemente (z.B. cgi-bin, ?, o.ä.) im URL enthalten nicht gespeichert werden. Dies kann man auch für ausgewählte Domänen angeben, was dann sinnvoll ist, wenn sich der Cache in einem Netz befindet, in dem selbst Web-Seiten angeboten werden. &lt;br /&gt;
&lt;br /&gt;
Befindet sich beispielsweise der Proxy-Cache in dem Netz der Domäne testdomain.de, womöglich sogar auf dem selben Rechner wie der Web-Server, so wäre es Unsinn, die Seiten, die dort angeboten werden in den Cache zu legen, da dies unnötig Speicher verbraucht. Von Seiten des Anbieters kann dies über den Einbau einer Authentisierung erfolgen. Dadurch wird bei der Abfrage eines Objektes nach einer Benutzerkennung und einem Paßwort gefragt. Diese Informationen und auch Seiten, die eine Identifikation verlangen, werden standardmäßig nicht vom Proxy gespeichert und müssen jedesmal neu vom Originalserver geholt werden. &lt;br /&gt;
&lt;br /&gt;
==Hierarchisches Caching==&lt;br /&gt;
Bei einigen Proxy-Servern ist es möglich, die Größe des Caches anzugeben, welcher im Hauptspeicher des Rechners liegt. Übertragene Objekte werden dort eine gewisse Zeit gehalten, um schnellere Antwortzeiten zu erreichen, falls ein Objekt innerhalb kurzer Zeit von zwei verschiedenen Clients angefordert wird. Dabei kann meist über den Parameter TTL (Time-to-Live) die Zeitdauer angegeben werden, die ein Objekt maximal in diesem Cache gehalten wird. &lt;br /&gt;
&lt;br /&gt;
Eine weitere Möglichkeit, die Performance zu erhöhen und geringere Antwortzeiten zu erhalten, ist das hierarchische Caching. Banal gesagt setzt man einen Proxy für den Proxy ein. Dadurch kann die Trefferquote auf Objekte nochmals verbessert werden. Dies macht besonders deshalb Sinn, da die Datenmengen, die über die bestehenden Leitungen übertragen werden, immer größer werden und es immer wieder zu Engpässen kommt, die lange Übertragungszeiten verursachen. Das hierarchische Caching führt dabei zu einer Entlastung. Damit die Proxy-Caches miteinander kommunizieren können, wurde ein spezielles Protokoll entwickelt, das ICP (Internet Caching Protocol). Dabei schicken Proxy-Caches für das gewünschte Objekt Anfragen an benachbarte und in der Hierarchie höher stehende Proxy-Caches. Ist das Objekt in einem dieser Caches vorhanden, wird es übertragen, andernfalls wird es vom Originalserver geholt. Da das ICP auf UDP basiert, ist es sehr schnell und bedeutet somit einen vertretbaren Performanceverlust, der durch eine erhöhte Trefferquote mehr als ausgeglichen wird.&lt;br /&gt;
 [[Image:squid3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Begriffe===&lt;br /&gt;
&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
|Neighbours	&lt;br /&gt;
|Dies sind alle Proxies, die ein Proxy kennt und mit denen er kommuniziert.&lt;br /&gt;
|-&lt;br /&gt;
|Siblings&lt;br /&gt;
|Die Geschwisterproxies. Sie liegen mit dem Proxy-Server auf einer Ebene. Siblings liefern in der Regel nur Objekte, die sie selbst im Cache haben,&lt;br /&gt;
|-&lt;br /&gt;
|Parents&lt;br /&gt;
|Übergeordnete Proxies. Sie liefern Objekte die sie selbst im Cache haben und leiten Anfragen an den Originalserver weiter.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Was ist Squid=&lt;br /&gt;
&lt;br /&gt;
Quelle: http://squid.nlanr.net/Squid/  bzw. http://www.squid-cache.org&lt;br /&gt;
&lt;br /&gt;
Squid, ein Beispiel für einen Proxy-Server mit Cache-Mechanismus, ist aus der cached Software des Harvest Forschungsprojektes hervorgegangen. Informationen über Harvest sind auf folgender Webseite zu finden: &lt;br /&gt;
&lt;br /&gt;
http://harvest.cs.colorado.edu/ &lt;br /&gt;
&lt;br /&gt;
Proxy-Systeme mit Cache-Mechanismen dienen meist der Performancesteigerung von Datentransfers, die bei langsamer Internet-Anbindung sehr groß sein kann, wenn Daten wiederholt angefordert werden. &lt;br /&gt;
&lt;br /&gt;
=Funktionsbeschreibung=&lt;br /&gt;
Squid, der Internet Object Cache, ist jedoch mehr als ein einfacher Cache-Proxy. Durch die Unterstützung von Neighbor-Caches, die entweder als parent oder sibling verwendet werden, kann man einen Cache-Verbund aufbauen, der einen hohen Prozentsatz von Anfragen beantworten kann, ohne langwierige Internet-Zugriffe zu erfordern. Dieses Verfahren verwenden zum Beispiel einige der großen Internet-Provider (wie ECRC in München), um den Datentransfer wenn möglich auf der eigenen Netzwerkstruktur abzuwickeln und damit Kosten für externe Zugriffe zu umgehen. &lt;br /&gt;
&lt;br /&gt;
Die Arbeitsweise von Squid ist einfach: &lt;br /&gt;
&lt;br /&gt;
Eine Anfrage eines Clients wird zuerst auf die Zugriffsberechtigung untersucht, so kann man z.B. gewissen Rechnern einen Zugriff auf den Proxy ganz verbieten (siehe Konfiguration). &lt;br /&gt;
&lt;br /&gt;
Es wird versucht, die gewünschten Daten im lokalen Cache zu finden. Sollte dies fehlschlagen, werden andere Proxies im Cache-Verbund (sofern vorhanden),&lt;br /&gt;
abgefragt.&lt;br /&gt;
&lt;br /&gt;
Sind die Daten vorhanden, wird ihre Aktualität geprüft. Sind die Daten veraltet, werden neue in den Cache geholt und an den Client weitergegeben. Bei aktuellen Daten wird das Neuladen übersprungen.&lt;br /&gt;
&lt;br /&gt;
Sind die Daten nicht vorhanden, werden sie in den Cache geladen und an den Client weiter-gereicht. Wie lange Daten im Cache verbleiben, ist abhängig von der Konfiguration (siehe dort)&lt;br /&gt;
&lt;br /&gt;
Eine Beschreibung der internen Abläufe wurde im Sinne der Übersichtlichkeit weggelassen.&lt;br /&gt;
&lt;br /&gt;
=Hilfe und Dokumentation zu Squid=&lt;br /&gt;
&lt;br /&gt;
Hilfe und Dokumentation im Internet:&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
|Die squid Website&lt;br /&gt;
|http://www.squid-cache.org/Doc/&lt;br /&gt;
|-&lt;br /&gt;
|squid IRC Channel&lt;br /&gt;
|Server: irc.freenode.de -Channel: #squid&lt;br /&gt;
|-&lt;br /&gt;
|Mailingliste&lt;br /&gt;
|squid-users@squid-cache.org&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Hilfe und Dokumentation im System&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
|Speziell zur Konfiguration&lt;br /&gt;
|/etc/squid/squid.conf.default&lt;br /&gt;
|-&lt;br /&gt;
|Manualpage&lt;br /&gt;
|man squid&lt;br /&gt;
|-&lt;br /&gt;
|Mitgelieferte Dokumentation&lt;br /&gt;
|/usr/share/doc/squid/&lt;br /&gt;
|}&lt;br /&gt;
=Squid unter Ubuntu=&lt;br /&gt;
==Installation==&lt;br /&gt;
 root@zero:~# apt-get install squid3 squid3-common&lt;br /&gt;
Testen ob Squid läuft &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 3128&lt;br /&gt;
 tcp        0      0 0.0.0.0:3128            0.0.0.0:*               LISTEN      10743/(squid)&lt;br /&gt;
&lt;br /&gt;
==Start Skript==&lt;br /&gt;
Das Startskript /etc/init.d/squid3 hat folgende Parameter&lt;br /&gt;
&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
|start&lt;br /&gt;
|Startet den Squid-Daemon&lt;br /&gt;
|-&lt;br /&gt;
|stop&lt;br /&gt;
|Stoppt den Squid-Daemon&lt;br /&gt;
|-&lt;br /&gt;
|reload&lt;br /&gt;
|Liest die Konfigurationsdatei neu ein&lt;br /&gt;
|-&lt;br /&gt;
|force-reload&lt;br /&gt;
|das gleiche wie reload&lt;br /&gt;
|-&lt;br /&gt;
|restart&lt;br /&gt;
|Stoppt den Deamon, falls er gestartet war und startet ihn wieder (synonym für stop und start)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Squid Parameter==&lt;br /&gt;
Gestartet werden kann Squid auch ohne das Startskript mit &lt;br /&gt;
 /usr/sbin/squid3 [-cdhvzCDFNRVYX] [-s | -l facility] [-f config-file] [-[au] port] [-k signal]&lt;br /&gt;
Flogende Parameter können eingestellt werden:&lt;br /&gt;
&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
| -a port&lt;br /&gt;
|verändert die Portnummer für HTTP-Anfragen&lt;br /&gt;
|-&lt;br /&gt;
| -d level&lt;br /&gt;
|Debug Output auf stderr ausgeben&lt;br /&gt;
|-&lt;br /&gt;
| -f file&lt;br /&gt;
|gibt eine alternative Konfigurationsdatei zu /etc/squid3/squid.conf an&lt;br /&gt;
|-&lt;br /&gt;
| -k&lt;br /&gt;
|mit dieser option können dem laufenden Squid verschiedene Steuersignale übergeben werden&lt;br /&gt;
|-&lt;br /&gt;
| -k reconfigure&lt;br /&gt;
|die Konfigurationsdatei wird nochmals eingelesen&lt;br /&gt;
|-&lt;br /&gt;
| -k rotatate&lt;br /&gt;
|schliesst und öffnet Dateien z.B. log_files&lt;br /&gt;
|-&lt;br /&gt;
| -k shutdown&lt;br /&gt;
|squid wartet kurz und beendet die Verbindung und sich selbst.Mit shutdown_zeit wird Squid nach einer angegebenen Zeit beendet.&lt;br /&gt;
|-&lt;br /&gt;
| -k interrupt&lt;br /&gt;
|sendet einen Interrupt worauf squid sofort abgebrochen wird ohne auf den Verlauf der Verbindungen zu achten.&lt;br /&gt;
|-&lt;br /&gt;
| -k kill&lt;br /&gt;
|bricht squid sofort ab, die Verbindung und die log_files bleiben geöffnet&lt;br /&gt;
|-&lt;br /&gt;
| -k check&lt;br /&gt;
|kontrolliert ob squid läuft&lt;br /&gt;
|-&lt;br /&gt;
| -s&lt;br /&gt;
|erlaubt das Aufnehmen in die syslog&lt;br /&gt;
|-&lt;br /&gt;
| -u port&lt;br /&gt;
|verändert die Portnummer des Internet Cache Protokoll ICP bzw. deaktiviert den Cache-Verbund mit der Portnummer 0&lt;br /&gt;
|-&lt;br /&gt;
| -v&lt;br /&gt;
|zeigt die aktuelle Squid Version&lt;br /&gt;
|-&lt;br /&gt;
| -z&lt;br /&gt;
|richtet cache Verzeichnisse ein&lt;br /&gt;
|-&lt;br /&gt;
| -D&lt;br /&gt;
|Squid führt normalerweise DNS Tests durch die hiermit abgestellt werden können&lt;br /&gt;
|-&lt;br /&gt;
| -F&lt;br /&gt;
|wenn die swap.logs leer sind nützt squid die vollen Systemresourcen um sich um die Anfragen zu kümmern.Dies beschleunigt den Verarbeitungsvorgang&lt;br /&gt;
|-&lt;br /&gt;
| -N&lt;br /&gt;
|der Serverprozess läuft nicht im Hintergrund&lt;br /&gt;
|-&lt;br /&gt;
| -V&lt;br /&gt;
|Aktivierung des httpd Beschleunigungsmodus&lt;br /&gt;
|-&lt;br /&gt;
| -X&lt;br /&gt;
|Full-Debug-Modus&lt;br /&gt;
|-&lt;br /&gt;
| -Y&lt;br /&gt;
|Beschleunigt den ICP austausch bei niederwertigeren Caches&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Konfiguration==&lt;br /&gt;
Squid wird mittels einer normalen Textdatei konfiguriert, die logisch in&lt;br /&gt;
mehrere Teilbereiche unterteilt werden kann. Sie ist unter&lt;br /&gt;
/etc/squid/squid.conf bzw. unter &amp;lt;prefix&amp;gt;/etc/squid.conf zu finden.&lt;br /&gt;
Bei der Installation von Squid wird eine Default-Konfiguration erzeugt, die&lt;br /&gt;
mit minimalen Änderungen bereits einen ersten Testlauf ermöglicht. Für&lt;br /&gt;
die Ausnutzung der vollen Leistung von Squid sollte jedoch eine&lt;br /&gt;
individuelle Anpassung erfolgen.&lt;br /&gt;
&lt;br /&gt;
Alle Zeilen von squid.conf, die mit # beginnen, sind Kommentare bzw.&lt;br /&gt;
nicht aktivierte Optionen. Als Minimalkonfiguration genügen die in Schnellstart beschriebenen&lt;br /&gt;
Einstellungen. Für die genaue Syntax von Optionen sei ebenfalls auf&lt;br /&gt;
squid.conf verwiesen, die folgenden Kapitel geben einen groben Überblick&lt;br /&gt;
über die Möglichkeiten von Squid.&lt;br /&gt;
&lt;br /&gt;
Da die Konfigurationsdatei in Ihrer Fülle und den ganzen Kommentaren&lt;br /&gt;
sehr verwirrend ist kann man sie zunächst einmal auf das Wichtigste reduzieren. Vorher sollte&lt;br /&gt;
die originale squid.conf gesichert werden:&lt;br /&gt;
&lt;br /&gt;
 cp squid.conf squid.conf.org&lt;br /&gt;
 grep  &amp;quot;^[^#]&amp;quot; squid.conf.org &amp;gt; squid.conf&lt;br /&gt;
&lt;br /&gt;
 acl manager proto cache_object&lt;br /&gt;
 acl localhost src 127.0.0.1/32&lt;br /&gt;
 acl to_localhost dst 127.0.0.0/8&lt;br /&gt;
 acl SSL_ports port 443&lt;br /&gt;
 acl Safe_ports port 80		# http&lt;br /&gt;
 acl Safe_ports port 21		# ftp&lt;br /&gt;
 acl Safe_ports port 443	# https&lt;br /&gt;
 acl Safe_ports port 70		# gopher &lt;br /&gt;
 acl Safe_ports port 210		# wais&lt;br /&gt;
 acl Safe_ports port 1025-65535	# unregistered ports&lt;br /&gt;
 acl Safe_ports port 280		# http-mgmt&lt;br /&gt;
 acl Safe_ports port 488		# gss-http&lt;br /&gt;
 acl Safe_ports port 591		# filemaker&lt;br /&gt;
 acl Safe_ports port 777		# multiling http&lt;br /&gt;
 acl CONNECT method CONNECT&lt;br /&gt;
 http_access allow manager localhost&lt;br /&gt;
 http_access deny manager&lt;br /&gt;
 http_access deny !Safe_ports&lt;br /&gt;
 http_access deny CONNECT !SSL_ports&lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
 http_access deny all&lt;br /&gt;
 icp_access deny all&lt;br /&gt;
 htcp_access deny all&lt;br /&gt;
 http_port 3128&lt;br /&gt;
 hierarchy_stoplist cgi-bin ?&lt;br /&gt;
 access_log /var/log/squid3/access.log squid&lt;br /&gt;
 refresh_pattern ^ftp:		1440	20%	10080&lt;br /&gt;
 refresh_pattern ^gopher:	1440	0%	1440&lt;br /&gt;
 refresh_pattern (cgi-bin|\?)	0	0%	0&lt;br /&gt;
 refresh_pattern .		0	20%	4320&lt;br /&gt;
 icp_port 3130&lt;br /&gt;
 coredump_dir /var/spool/squid3&lt;br /&gt;
&lt;br /&gt;
Zur besseren Übersicht unterteilen wir die Konfigdatei&lt;br /&gt;
&lt;br /&gt;
 #allgemeine sektion&lt;br /&gt;
 http_port 3128&lt;br /&gt;
 access_log /var/log/squid3/access.log squid&lt;br /&gt;
 icp_port 3130&lt;br /&gt;
 coredump_dir /var/spool/squid3&lt;br /&gt;
 hierarchy_stoplist cgi-bin ?&lt;br /&gt;
 &lt;br /&gt;
 #refresh&lt;br /&gt;
 refresh_pattern ^ftp:           1440    20%     10080&lt;br /&gt;
 refresh_pattern ^gopher:        1440    0%      1440&lt;br /&gt;
 refresh_pattern (cgi-bin|\?)    0       0%      0&lt;br /&gt;
 refresh_pattern .               0       20%     4320&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl manager proto cache_object&lt;br /&gt;
 acl localhost src 127.0.0.1/32&lt;br /&gt;
 acl to_localhost dst 127.0.0.0/8&lt;br /&gt;
 acl SSL_ports port 443&lt;br /&gt;
 acl Safe_ports port 21 80  443 70 210 280 488 591 777 1025-65535&lt;br /&gt;
 acl CONNECT method CONNECT&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow manager localhost&lt;br /&gt;
 http_access deny manager&lt;br /&gt;
 http_access deny !Safe_ports&lt;br /&gt;
 http_access deny CONNECT !SSL_ports&lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
 http_access deny all&lt;br /&gt;
 icp_access deny all&lt;br /&gt;
 htcp_access deny all&lt;br /&gt;
&lt;br /&gt;
===Allgemein===&lt;br /&gt;
 http_port 3128&lt;br /&gt;
Auf diesem Port lauscht der Squid auf eingehende http-Anfragen der Clients.&lt;br /&gt;
 icp_port 3130&lt;br /&gt;
Auf diesem Port lauscht Squid auf eingehende Anfragen von Nachbar-Proxys&lt;br /&gt;
 access_log /var/log/squid3/access.log squid&lt;br /&gt;
Legt Ort und Art des Loggings für eingehende Requests fest.&lt;br /&gt;
 coredump_dir /var/spool/squid3&lt;br /&gt;
Standardmäßig schreibt Squid corefiles in das Verzeichnis aus dem er gestartet wurden. Wenn mit dieser Option ein Pfad angegeben ist, wechselt Squid nach dem Start in dieses Verzeichnis und legt die corefiles in dieses Verzeichnis ab.&lt;br /&gt;
 hierarchy_stoplist cgi-bin ?&lt;br /&gt;
Hiermit wird eine Liste von Ausdrücken festgelegt, die - wenn sie in dem angefragen URL vorkommen - Squid veranlassen, die Anfrage direkt auszuführen und keine Nachbar-Proxys zu befragen&lt;br /&gt;
&lt;br /&gt;
===Refresh_pattern===&lt;br /&gt;
&lt;br /&gt;
 #refresh_pattern Suchmuster      Min     Prozent Max&lt;br /&gt;
  refresh_pattern ^ftp:           1440    20%     10080&lt;br /&gt;
  refresh_pattern ^gopher:        1440    0%      1440&lt;br /&gt;
  refresh_pattern (cgi-bin|\?)    0       0%      0&lt;br /&gt;
  refresh_pattern .               0       20%     4320&lt;br /&gt;
&lt;br /&gt;
Hier kann der Refresh-Algorithmus von squid für die eigenen Bedürfnisse optimiert werden. &lt;br /&gt;
&lt;br /&gt;
MIN ist die Zeit in Minuten,die ein Objekt ohne explizite Ablaufzeit als Aktuell betrachtet wird. Der ermpfohlene Wert ist 0, jeder höhere Wert könnte dazu führen, dass dynmaische Anwendungen irrtümlich gecachtt&lt;br /&gt;
werden, wenn der Webdesigner keine entsprechenden Gegenaktionen getroffen hat. &lt;br /&gt;
&lt;br /&gt;
PROZENT ist der Prozentsatz eines Objektalters (Zeit seit der letzten&lt;br /&gt;
Modifikation) wo ein Objekt ohne explizite Ablaufzeit als aktuell betrachtet&lt;br /&gt;
wird. &lt;br /&gt;
&lt;br /&gt;
MAX ist ein oberes Limit wie lange Objekte ohne explizite Ablaufzeiten als aktuell betrachtet werden.&lt;br /&gt;
&lt;br /&gt;
 refresh_pattern -i&lt;br /&gt;
Wie refresh_pattern, nur, daß Musterangaben die Groß-/Kleinschreibung&lt;br /&gt;
ignorieren.&lt;br /&gt;
&lt;br /&gt;
===ACL===&lt;br /&gt;
Unter ACL versteht man access control lists, also Filter, die den Zugriff auf den Proxy regeln. Eine ACL muss immer zuerst definiert werden und ein Name gegeben werden. ACLs werden in der Form&lt;br /&gt;
 acl ''aclname acltyp argument'' ...&lt;br /&gt;
 acl ''aclname acltyp &amp;quot;datei&amp;quot;''&lt;br /&gt;
definiert. &lt;br /&gt;
&lt;br /&gt;
====Beispielkonfiguration====&lt;br /&gt;
In der Standardkonfiguration sind 6 ACLs definiert:&lt;br /&gt;
&lt;br /&gt;
Standard- acl für Management-Dienste&lt;br /&gt;
 acl manager proto cache_object &lt;br /&gt;
&lt;br /&gt;
Alles was von localhost (also lokal über das loopback-device) kommt&lt;br /&gt;
 acl localhost src 127.0.0.1/32&lt;br /&gt;
&lt;br /&gt;
Alles was an localhost geht&lt;br /&gt;
 acl to_localhost dst 127.0.0.0/8&lt;br /&gt;
&lt;br /&gt;
acl für SSL_ports (Standard https-port)&lt;br /&gt;
 acl SSL_ports port 443&lt;br /&gt;
&lt;br /&gt;
acl für &amp;quot;sichere Ports&amp;quot;&lt;br /&gt;
 acl Safe_ports port 80 (21,443,70,...)&lt;br /&gt;
&lt;br /&gt;
 acl CONNECT method CONNECT&lt;br /&gt;
&lt;br /&gt;
Nachdem die ACLs definiert sind, müssen diese in Regeln angewendet werden. Die Syntax lautet:&lt;br /&gt;
 ''regeltyp'' allow|deny [!''acl1''] [!''acl2'']&lt;br /&gt;
Eine Regel besagt also, dass ein Zugriff, der auf eine bestimmte Access-List zutrifft, entweder erlaubt (allow) oder verboten wird (deny).&lt;br /&gt;
&lt;br /&gt;
In der Beispielkonfiguration werden http_access und icp-, htcp_access als Regeltyp angewendet, zB. &lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
wendet die Access-Liste 'localhost' an, um den lokalen Zugriff vom Proxy-Server auf http-seiten zu regeln.&lt;br /&gt;
icp_access und htcp_access bzw. icp und htcp sind Protokolle für den Datenaustausch zwischen zwei Servern.&lt;br /&gt;
&lt;br /&gt;
====Eigene Erweiterungen====&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration können wir jetzt erweitern und auf die Bedürfnisse des jeweiligen Netzwerks anpassen. Als Beispiel verwenden wir ein Netzwerk, welches 2 Subnetze enthält, die über einen Proxy, welcher in einer DMZ steht, Verbindungen zum Internet aufbaut. Das 192.168.241.0/24-Netz soll ein privilegiertes Netz sein, d.h Die Clients haben generell mehr Rechte um auf das Internet zuzugreifen, als das andere Netz (192.168.242.0/24).&lt;br /&gt;
&lt;br /&gt;
Als Erstes wollen wir das eine Netz vorläufig komplett für den HTTP-Verkehr freischalten:&lt;br /&gt;
&lt;br /&gt;
ACL für das Netz aufstellen:&lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl privilegiert src 192.168.241.0/24&lt;br /&gt;
ACL anwenden und das Netz freischalten:&lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow privilegiert&lt;br /&gt;
Die beiden Konfigurationsanweisungen müssen nun an korrekter Stelle in die squid.conf eingetragen werden. Bei der ACL ist das nicht so relevant, jedoch zur Übersichtlichkeit wird man sie in den Block mit den anderen ACLs einfügen. Bei der Access-Regel dagegen ist es dagegen von entscheidender Bedeutung, wo die Anweisung steht, da die Konfigurationsdatei von oben nach unten abgearbeitet wird und die erste Regel auf die eine Anfrage passt, wird ausgeführt.&lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow manager localhost&lt;br /&gt;
 http_access deny manager&lt;br /&gt;
 http_access deny !Safe_ports&lt;br /&gt;
 http_access deny CONNECT !SSL_ports&lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
 http_access deny all&lt;br /&gt;
 '''http_access allow privilegiert'''&lt;br /&gt;
Wird die Regel wie hier angezeigt eingefügt, hat das keine Auswirkung auf den Zugriff, da die Regel &amp;quot;http_access deny all&amp;quot; vorher steht, welche auf alles zutrifft und so die Anfrage abweist. Also müssen wir die Regel weiter oben einfügen.&lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow manager localhost&lt;br /&gt;
 http_access deny manager&lt;br /&gt;
 http_access deny !Safe_ports&lt;br /&gt;
 http_access deny CONNECT !SSL_ports&lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
 '''http_access allow privilegiert'''&lt;br /&gt;
 http_access deny all&lt;br /&gt;
&lt;br /&gt;
Das unprivilegierte Netz soll nun auch Zugriff auf das Internet erhalten, jedoch nur in eingeschränktem Maße. Es soll nur auf den für den Arbeitsablauf notwendigen Webseiten Zugriff erhalten. Dies wird so realisiert, dass eine Datei mit Regex-URLs eingerichtet wird, auf die zugegriffen werden darf.&lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl unprivilegiert src 192.168.242.0/24&lt;br /&gt;
 acl gute_domains url_regex -i &amp;quot;/etc/squid3/gute_domains&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow unprivilegiert gute_domains&lt;br /&gt;
Diese Regel hat 2 acls als Argumente. Diese werden in den Access-Regeln durch ein UND verknüpft, d.h. die Regel matcht nur wenn beide acls zutreffen.&lt;br /&gt;
&lt;br /&gt;
Nun wird eine Regel erstellt, damit URLs, auf die niemand zugreifen darf, im gesamten Netzwerk, also in den beiden Subnetzen, verboten wird.&lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl lan src 192.168.241.0/24 192.168.242.0/24&lt;br /&gt;
 acl schlechte_domains url_regex -i &amp;quot;/etc/squid3/schlechte_domains&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access deny lan schlechte_domains&lt;br /&gt;
&lt;br /&gt;
 root@zero:/etc/squid3# cat schlechte_domains &lt;br /&gt;
 ^http://(www.)?pornographische-seite1.de&lt;br /&gt;
 ^http://(www.)?boese-seite2.com&lt;br /&gt;
 root@zero:/etc/squid3# &lt;br /&gt;
&lt;br /&gt;
Hier wird eine ACL erstellt, die 2 Argumente besitzt. Diese werden, im Gegensatz zu den Access-Regeln, mit einem ODER verknüpft, sodass diese Regel matcht, falls eine Anfrage der beiden Subnetze als Source mit einer URL aus der Datei &amp;quot;schlechte_domains&amp;quot; kommt. In Aussagenlogikform:&lt;br /&gt;
&lt;br /&gt;
lan = ( privilegiert ODER unprivilegiert )&lt;br /&gt;
acl = lan UND schlechte_domains&lt;br /&gt;
&lt;br /&gt;
Jetzt wollen wir z.B den Nutzern im unprivilegierten Netz auch die Möglichkeit geben, während der Mittagspause frei im Internet surfen zu können. Dazu benutzt man den acl-Typ &amp;quot;time&amp;quot;:&lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl mittag time 12:00-12:30&lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow unprivilegiert mittag&lt;br /&gt;
Hier wird eine acl mittag definiert, die einen Zeitbereich annimmt. Diese wird mit der acl unprivilegiert in einer Regel verknüpft.&lt;br /&gt;
&lt;br /&gt;
===Authentifizierung===&lt;br /&gt;
&lt;br /&gt;
====Passwortdatei====&lt;br /&gt;
Mit dem Programm htpasswd (ruft Systemfunktion crypt auf )das bei jeder Distribution dabei sein sollte können ein Passwortdatei erzeugen. &lt;br /&gt;
 root@zero:/etc/squid3# htpasswd -c passwd xinux&lt;br /&gt;
 New password: &lt;br /&gt;
 Re-type new password: &lt;br /&gt;
 Adding password for user xinux&lt;br /&gt;
 root@zero:/etc/squid3# cat passwd &lt;br /&gt;
 xinux:5AZTQ/gAwdlOU&lt;br /&gt;
 root@zero:/etc/squid3#&lt;br /&gt;
&lt;br /&gt;
====Konfigurationsdatei====&lt;br /&gt;
 #auth-sektion&lt;br /&gt;
 auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/passwd&lt;br /&gt;
 auth_param basic children 5&lt;br /&gt;
 auth_param basic concurrency 0&lt;br /&gt;
 auth_param basic realm Squid proxy-caching web server&lt;br /&gt;
 auth_param basic casesensitive off&lt;br /&gt;
 &lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl autorisiert proxy_auth REQUIRED&lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow unprivilegiert autorisiert&lt;br /&gt;
In der Konfigurationsdatei wird nun ein Programm angegeben, das für die Authentifizierung aufgerufen wird. Dieses liest Daten aus der zuvor angefertigten Passwortdatei. Dann muss eine acl mit dem typ &amp;quot;proxy_auth&amp;quot; erstellt werden, welche in einer Regel angewendet wird. So kann hier auch ein Nutzer aus dem unprivilegierten Netz Zugang zum Internet bekommen, sollte er sich authentifizieren können.&lt;br /&gt;
&lt;br /&gt;
===Caching===&lt;br /&gt;
Squid benutzt den Hauptspeicher und ein Verzeichnis, um Anfragen zu cachen und diese bei erneuten Anfragen direkt auszuliefern.&lt;br /&gt;
====Anlegen des Caches====&lt;br /&gt;
 root@zero:/etc/squid3# cd /var/cache/&lt;br /&gt;
 root@zero:/var/cache# mkdir squid&lt;br /&gt;
 root@zero:/var/cache# chown proxy:proxy squid/&lt;br /&gt;
 root@zero:/var/cache# ls -l | grep squid&lt;br /&gt;
 drwxr-xr-x  2 proxy    proxy    4096 2009-07-10 09:53 squid&lt;br /&gt;
Hier wird ein Verzeichnis angelegt, welches dem Benutzer proxy beschreibbar sein, da der Squid nicht unter root, sondern unter einem unprivilegierten Benutzer läuft.&lt;br /&gt;
 #cache-sektion&lt;br /&gt;
 cache_dir ufs /var/cache/squid 100 16 256&lt;br /&gt;
cache_dir ''typ verzeichnis MB L1 L2''&lt;br /&gt;
&lt;br /&gt;
In der Konfigurationsdatei wird dieses Verzeichnis angegeben. Der Typ &amp;quot;ufs&amp;quot; ist das Standardspeichersystem des Squid. Es können aber auch andere Typen wie aufs oder diskd benutzt werden. Die Optionen hinter dem Verzeichnisnamen, geben Speicherplatz und Verzeichnisstruktur an. MB gibt an, wieviel Speicherplatz Squid in diesem Verzeichnis benutzt (es können auch mehrere Verzeichnisse zur Speicherverteilung auf verschiedene Partitionen angegeben werden), L1 gibt an wieviele First-Level-Unterverzeichnisse angelegt werden, L2 gibt an, wieviele Second-Level-Unterverzeichnisse in jedem First-Level-Verzeichnis angelegt werden (Baum-Struktur).&lt;br /&gt;
 root@zero:/var/cache# /etc/init.d/squid3 restart&lt;br /&gt;
 * Restarting Squid HTTP Proxy 3.0 squid3&lt;br /&gt;
 *   Waiting...                                                                  &lt;br /&gt;
 * ...                                                                          &lt;br /&gt;
 * ...                                                                          &lt;br /&gt;
 * ...                                                                          &lt;br /&gt;
 * ...                                                                          &lt;br /&gt;
 * ...                                                                         &lt;br /&gt;
 * ...                                                                  [ OK ] &lt;br /&gt;
 * Creating Squid HTTP Proxy 3.0 cache structure&lt;br /&gt;
 2009/07/10 09:59:24| Creating Swap Directories&lt;br /&gt;
 2009/07/10 09:59:24| /var/cache/squid exists&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/00&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/01&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/02&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/03&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/04&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/05&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/06&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/07&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/08&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/09&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0A&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0B&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0C &lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0D&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0E&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0F&lt;br /&gt;
                                                                        [ OK ]&lt;br /&gt;
 root@zero:/var/cache/squid# ls&lt;br /&gt;
 00  01  02  03  04  05  06  07  08  09  0A  0B  0C  0D  0E  0F  swap.state&lt;br /&gt;
 root@zero:/var/cache/squid# cd 00&lt;br /&gt;
 root@zero:/var/cache/squid/00# ls&lt;br /&gt;
 00  0E  1C  2A  38  46  54  62  70  7E  8C  9A  A8  B6  C4  D2  E0  EE  FC&lt;br /&gt;
 01  0F  1D  2B  39  47  55  63  71  7F  8D  9B  A9  B7  C5  D3  E1  EF  FD&lt;br /&gt;
 02  10  1E  2C  3A  48  56  64  72  80  8E  9C  AA  B8  C6  D4  E2  F0  FE&lt;br /&gt;
 03  11  1F  2D  3B  49  57  65  73  81  8F  9D  AB  B9  C7  D5  E3  F1  FF&lt;br /&gt;
 04  12  20  2E  3C  4A  58  66  74  82  90  9E  AC  BA  C8  D6  E4  F2&lt;br /&gt;
 05  13  21  2F  3D  4B  59  67  75  83  91  9F  AD  BB  C9  D7  E5  F3&lt;br /&gt;
 06  14  22  30  3E  4C  5A  68  76  84  92  A0  AE  BC  CA  D8  E6  F4&lt;br /&gt;
 07  15  23  31  3F  4D  5B  69  77  85  93  A1  AF  BD  CB  D9  E7  F5&lt;br /&gt;
 08  16  24  32  40  4E  5C  6A  78  86  94  A2  B0  BE  CC  DA  E8  F6&lt;br /&gt;
 09  17  25  33  41  4F  5D  6B  79  87  95  A3  B1  BF  CD  DB  E9  F7&lt;br /&gt;
 0A  18  26  34  42  50  5E  6C  7A  88  96  A4  B2  C0  CE  DC  EA  F8&lt;br /&gt;
 0B  19  27  35  43  51  5F  6D  7B  89  97  A5  B3  C1  CF  DD  EB  F9&lt;br /&gt;
 0C  1A  28  36  44  52  60  6E  7C  8A  98  A6  B4  C2  D0  DE  EC  FA&lt;br /&gt;
 0D  1B  29  37  45  53  61  6F  7D  8B  99  A7  B5  C3  D1  DF  ED  FB&lt;br /&gt;
 root@zero:/var/cache/squid/00#&lt;br /&gt;
Hier sieht man, das Squid im Verzeichnis /var/cache/squid 16 Verzeichnisse von 00-0F und in jedem Unterverzeichnis weitere 256 Verzeichnisse 00-FF angelegt hat.&lt;br /&gt;
&lt;br /&gt;
====Konfiguration====&lt;br /&gt;
Nun können weitere Optionen in der Konfigurationsdatei angegeben werden.&lt;br /&gt;
 cache_mem 32 MB&lt;br /&gt;
Gibt an, wieviel Hauptspeicher zum Cachen für Squid verwendet wird&lt;br /&gt;
 cache_swap_low 90&lt;br /&gt;
 cache_swap_high 95&lt;br /&gt;
Diese beiden Optionen geben den unteren und oberen Threshold für die Füllung des Caches an in % an. Wird die untere Marke überschritten, beginnt Squid entsprechend der cache_replacement_policy Objekte aus dem Cache zu entfernen. Wird die obere Marke erreicht, erfolgt die Räumung aggressiver. Wird die untere Marke unterschritten, wird der Prozess beendet.&lt;br /&gt;
 minimum_object_size 0 KB&lt;br /&gt;
 maximum_object_size 8192 KB&lt;br /&gt;
minimum_object_size gibt an, wie groß ein Objekt mindestens sein muss, um im Cache gespeichert zu werden, maximum_object_size die maximale Größe.&lt;br /&gt;
 maximum_object_size_in_memory 64 KB&lt;br /&gt;
maximum_object_size_in_memory gibt an, wie groß ein Objekt höchstens sein darf, um im Hauptspeicher gecacht zu werden.&lt;br /&gt;
 ipcache_size 1024&lt;br /&gt;
Hier wird die maximale Anzahl der IP-Cache Einträge bestimmt.&lt;br /&gt;
 ipcache_low 90&lt;br /&gt;
 ipcache_high 95&lt;br /&gt;
Thresholds der IP-Cache-Einträge, entsprechend zu cache_swap_low und _high.&lt;br /&gt;
 fqdncache_size 1024&lt;br /&gt;
Maximale Anzahl der FQDN-Cache-Einträge.&lt;br /&gt;
 cache_replacement_policy lru&lt;br /&gt;
 memory_replacement_policy lru&lt;br /&gt;
Diese Einträge bestimmen, mit welchem Verfahren Objekte aus dem Cache entfernt werden. lru steht für least recently used, d.h. Squid löscht bei diesem Verfahren die Einträge, die am längsten nicht mehr angefragt wurden. Es gibt außerdem:&lt;br /&gt;
&lt;br /&gt;
heap GDFS (Greed-Dual Size Frequency): Optimiert die Objekt-Hitrate. Kleine häufig angefragte Objekte werden auf Kosten großer, weniger häufig angefragter Objekte im Cache gehalten. Damit wird die Warscheinlichkeit eines Objekt-Hits gesteigert.&lt;br /&gt;
&lt;br /&gt;
heap LFUDA (Least frequently used with dynamic aging): Optimiert die Byte-Hitragte. Häufig angefrage Objekte werden im Cache gehalten, slten angefragte Objekte werden freigegeben, unabhängig von deren Größe. Damit wird ein häufiger angefrages, großes Objekt ggf. auf Kosten vieler kleiner Objekte im Cache gehalten.&lt;br /&gt;
&lt;br /&gt;
heap lru (erweitertes lru-Verfahren).&lt;br /&gt;
&lt;br /&gt;
===Delay-Pools===&lt;br /&gt;
Mit Delay-Pools kann man eine Bandbreitensteuerung über Squid implementieren.&lt;br /&gt;
 #delay_pools-sektion&lt;br /&gt;
 delay_pools 2&lt;br /&gt;
Hier wird die Anzahl der Pools angegeben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #delay_claas ''pool'' ''class''&lt;br /&gt;
 delay_class 1 1&lt;br /&gt;
 delay_class 2 2&lt;br /&gt;
Jeder der Pools wird einer Klasse zugeordnet. Es gibt insgesamt 5 Klassen, die verschiedene Methoden zur Bandbreitensteuerung anbieten.&lt;br /&gt;
&lt;br /&gt;
Klasse 1: Die gesamte Bandbreite wird über ein Parameterpaar gesteuert.&lt;br /&gt;
&lt;br /&gt;
Klasse 2: Es werden 2 Parameterpaare angegeben. Das erste bestimmt die gesamte Bandbreite, das zweite bestimmt die individuelle Bandbreite eines Hosts anhand des letzten Bytes der IP-Adresse.&lt;br /&gt;
&lt;br /&gt;
Klasse 3: Zusätzlich zu den 2 Parametepaaren in Klasse 2 gibt es noch ein drittes Paar, welches die Bandbreite eines ganzen Klasse-C-Netzes beschränkt.&lt;br /&gt;
&lt;br /&gt;
Klasse 4: Wie Klasse 3, jedoch gibt es noch ein zusätzliches Parameterpaar, welches anhand des Benutzernamens die Bandbreite beschränkt. Diese Limitierung tritt nur in Kraft, sollte ein Request eine Benutzerauthentifizierung erfordert haben (siehe Authentifizerung).&lt;br /&gt;
&lt;br /&gt;
Klasse 5: Die Bandbreitenregulierung erfolgt nicht wie in Klasse 2-4 über IP-Adressen oder Benutzer, sondern über ein Tag, welches angegeben wird und einen Request identifiziert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 delay_parameters 1 10000/20000&lt;br /&gt;
 delay_parameters 2 20000/40000 1000/2000&lt;br /&gt;
 delay_access 1 allow privilegiert&lt;br /&gt;
 delay_access 2 allow unprivilegiert&lt;br /&gt;
 delay_access 1 deny all&lt;br /&gt;
 delay_access 2 deny all&lt;br /&gt;
&lt;br /&gt;
Nun müssen den Delay-Pools noch die Parameter übergeben werden. Der Delay-Pool mit Klasse 1 erhält ein Parameterpaar. Dieses Parameterpaar setzt sich zusammen aus restore- und einem maximum-Wert. Der restore-Wert bestimmt die eigentliche Bandbreite in Byte/Sekunde, der maximum-Wert bestimmt die maximale Datenmenge in Byte, die auf einmal übertragen wird.&lt;br /&gt;
&lt;br /&gt;
Die mit maximum definierte Datenmenge wird ganz normal über das Netz übertragen, ggf. mit der vollen zur Verfügung stehenden Bandbreite und ohne weitere Begrenzung. Anhand des eigentlichen Bandbreitenwertes restore berechnet Squid, wie lange er das nächste Paket verzögern muss, um auf die durchschnittliche, mit restore vorgegebene Bandbreite zu kommen. So wird die vorgegebene Nettobandbreite im Mittel durchaus gehalten, ein einzelnes Datenpaket kann jedoch deutlich schneller zum Client transportiert werden.&lt;br /&gt;
&lt;br /&gt;
Mit delay-access wird nun festelegt, welche Pools auf welche acl angewendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=ads mitglied=&lt;br /&gt;
*http://blog.stefan-betz.net/2009/1/7/hochzeit:-squid-3-und-active-directory/&lt;br /&gt;
*http://www.woy.de/?p=29&lt;br /&gt;
&lt;br /&gt;
=sarg=&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install sarg apache2&lt;br /&gt;
 sudo cp /etc/sarg/sarg.conf /etc/sarg/sarg.conf.old&lt;br /&gt;
 sudo cat /etc/sarg/sarg.conf.old | grep -v ^# | grep -v ^$ &amp;gt; /etc/sarg/sarg.conf&lt;br /&gt;
&lt;br /&gt;
Beim Benutzen von '''squid3''' muss der log-Pfad in der sarg.conf angepasst werden!&lt;br /&gt;
 access_log /var/log/squid/access.log &lt;br /&gt;
ändern in&lt;br /&gt;
 access_log /var/log/squid3/access.log&lt;br /&gt;
&lt;br /&gt;
 sudo ln -sv /var/lib/sarg/ /var/www/&lt;br /&gt;
 sudo sarg-reports today&lt;br /&gt;
&lt;br /&gt;
==apache==&lt;br /&gt;
vi /etc/apache2/sites-available/000-default.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
        ServerAdmin technik@xinux.de&lt;br /&gt;
        DocumentRoot /var/www/sarg&lt;br /&gt;
        &amp;lt;Directory /&amp;gt;&lt;br /&gt;
                Options FollowSymLinks&lt;br /&gt;
                AllowOverride None&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
        &amp;lt;Directory /var/www/sarg/&amp;gt;&lt;br /&gt;
                AllowOverride None&lt;br /&gt;
                Options FollowSymLinks +ExecCGI MultiViews&lt;br /&gt;
                Order allow,deny&lt;br /&gt;
                Allow from all&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
        ErrorLog ${APACHE_LOG_DIR}/error-sarg.log&lt;br /&gt;
        LogLevel warn&lt;br /&gt;
        CustomLog ${APACHE_LOG_DIR}/access-sarg.log combined&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;ServerName $HOSTNAME&amp;quot; &amp;gt;&amp;gt; /etc/apache2/apache2.conf&lt;br /&gt;
 service apache2 restart&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Squid&amp;diff=4656</id>
		<title>Squid</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Squid&amp;diff=4656"/>
		<updated>2014-07-18T09:19:15Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* sarg */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Der Einsatz von Computernetzwerken in Firmen jeglicher Größe hat in den letzten&lt;br /&gt;
Jahren stark zugenommen. Dabei haben viele Firmen neben dem&lt;br /&gt;
lokalen Netz auch eine Anbindung an ein öffentliches Netz und damit meist&lt;br /&gt;
auch Zugang zum Internet.&lt;br /&gt;
&lt;br /&gt;
Damit verbindet sich ein weltweiter Ausbau dieses Netzes und ein steigendes&lt;br /&gt;
Angebot an Serviceleistungen, die über das Internet angeboten werden. Als&lt;br /&gt;
neuere Technologie sei hier nur die Internettelefonie genannt. Dies bedeutet&lt;br /&gt;
allerdings auch, daß die zu übertragenden Datenmengen ständig zunehmen,&lt;br /&gt;
was zu Engpässen und langen Übertragungszeiten führt.&lt;br /&gt;
&lt;br /&gt;
Für die Unternehmen bedeuten die zunehmenden Datenmengen aber auch&lt;br /&gt;
in erheblichem Maße zunehmende Kosten. Deshalb sind Technologien&lt;br /&gt;
gefragt, die dabei helfen können, diese Datenmengen und damit auch die&lt;br /&gt;
Kosten entsprechend einzuschränken.&lt;br /&gt;
&lt;br /&gt;
Die Anbindung an öffentliche Netze bedeutet aber auch immer ein Risiko, da&lt;br /&gt;
es selten möglich ist, eine Verbindung nur in eine Richtung aufzubauen.&lt;br /&gt;
Dadurch bieten sich Angriffspunkte, die von einigen Leuten ausgenutzt&lt;br /&gt;
werden, um an Daten zu kommen oder Schaden in dem Netz anzurichten.&lt;br /&gt;
Auch hier herrscht großer Bedarf an neuen Lösungen, um einen Kom-promiß&lt;br /&gt;
zwischen Sicherheit und Kommunikation zu finden.&lt;br /&gt;
&lt;br /&gt;
Im Internetbereich bietet sich für beide Gebiete der Einsatz von Proxy-&lt;br /&gt;
Agenten an. Proxy ist das englische Wort für Stellvertreter. Und genau diese&lt;br /&gt;
Aufgabe soll ein Proxy-Agent übernehmen.&lt;br /&gt;
&lt;br /&gt;
Gerade bei großen Netzwerken macht sich der Einsatz eines solchen Proxy-&lt;br /&gt;
Agenten positiv bemerkbar, da er neben einer Verringerung der Netzlast im&lt;br /&gt;
und zum öffentlichen Netz auch einen Performancegewinn innerhalb des&lt;br /&gt;
lokalen Netzes bewirkt.&lt;br /&gt;
&lt;br /&gt;
=Einsatz von Proxy-Servern=&lt;br /&gt;
==Einsatzgebiete und Funktionalität==&lt;br /&gt;
Mit der immer größer werdenden Vernetzung und Globalisierung wachsen&lt;br /&gt;
auch immer mehr die Probleme der Betreiber von lokalen Netzen.&lt;br /&gt;
Einerseits müssen die Kosten für den Datentransfer mit dem Internet&lt;br /&gt;
gering gehalten werden und zum anderen stellt die Anbindung an ein&lt;br /&gt;
öffentliches Netz auch immer einen Angriffspunkt dar.&lt;br /&gt;
&lt;br /&gt;
Die Gefahren sind dabei recht vielfältig. Zum einen ist es in größeren&lt;br /&gt;
Netzwerken dem Administrator meist nicht möglich, die Konfiguration aller&lt;br /&gt;
Computer ständig zu überwachen und nach Sicherheitslücken zu suchen,&lt;br /&gt;
zumal oft auch die notwendige Software recht teuer ist oder vorhandene&lt;br /&gt;
sich nicht so verhält, wie man es gerne hätte. Zweitens ist eine Verbindung&lt;br /&gt;
ins Internet auch immer mit Datentransfer in beiden Richtungen&lt;br /&gt;
verbunden, wodurch von außen ein Angreifer durch getarnte Datenpakete&lt;br /&gt;
in das lokale Netz eindringen und dort Schaden anrichten kann. Hier seien&lt;br /&gt;
Computerviren in ihren vielen Erscheinungsformen erwähnt. Zum Dritten&lt;br /&gt;
stellen die Anwender selber eine gewisse Gefahr dar, indem sie den&lt;br /&gt;
Zugang zum Internet mißbräuchlich oder unbeabsichtigt nutzen, was sehr&lt;br /&gt;
hohe Kosten verursachen kann.&lt;br /&gt;
&lt;br /&gt;
Dieses Problem läßt sich im Internet mit Hilfe eines Proxy-Servers lösen.&lt;br /&gt;
Proxy ist das englische Wort für Stellvertreter. Wie der Name schon&lt;br /&gt;
vermuten läßt, tritt ein Proxy-Server als Stellvertreter auf. Will nun ein&lt;br /&gt;
Client im lokalen Netz ein Dokument aus dem Internet anfordern, muß er&lt;br /&gt;
die Anfrage an den Proxy-Server leiten, der dann die Anfrage an den&lt;br /&gt;
Server weiterleitet. Daraus wird ersichtlich, daß ein Proxy-Server zwei&lt;br /&gt;
Gesichter haben muß. Nach innen zum Client muß er den Internetserver&lt;br /&gt;
vertreten und nach außen wiederum stellt er sich als Client dar. Dies hat&lt;br /&gt;
aus Sicht der Sicherheit noch den weiteren Vorteil, daß nach außen hin nur&lt;br /&gt;
der Proxy-Server sichtbar ist und das Netz dahinter für einen möglichen&lt;br /&gt;
Angreifer unsichtbar bleibt. Ein Proxy muß daher beide Seiten der&lt;br /&gt;
Kommunikation beherrschen. Wie so eine Kommunikation aussieht, ist in&lt;br /&gt;
 [[Image:squid1.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Caching==&lt;br /&gt;
Die Übertragungsraten im Internet sind oft sehr gering, da bestimmte Leitungen, insbesondere transkontinentale, stark belastet sind. Dadurch kann es wiederum vorkommen, daß die Leitung nach außen ausgelastet ist und durch lange Wartezeiten die Kosten der Übertragung in die Höhe gehen.&lt;br /&gt;
&lt;br /&gt;
Ein Ansatzpunkt, die Auslastung und Performance zu optimieren, ist das Zwischenspeichern von Objekten. Dies macht im Internet Sinn, da es oft vorkommt, daß ein Dokument in einem lokalen Netz mehrmals von verschiedenen Clients angefordert wird. Dieses Zwischenspeichern oder Caching von Dokumenten übernimmt ebenfalls der Proxy-Server, der deshalb auch oft als Proxy-Cache bezeichnet wird. Fordert ein Client ein Dokument von einem Server an, so leitet der Proxy die Anfrage an den Server weiter. Dieser liefert das angeforderte Dokument an den Proxy, der es dann an den Client weiter reicht und eine Kopie in seinem Speicher behält. Kommt nun von einem zweiten Client die Anfrage auf dasselbe Dokument, leitet der Proxy diese nicht an den Server weiter, sondern liefert das Dokument aus seinem Speicher direkt an den Client &lt;br /&gt;
 [[Image:squid2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Dies macht deutlich, welche Vorteile ein Proxy-Cache bietet. Zum einen wird die externe Leitung nicht unnötig mit dem mehrmaligen Holen desselben Objektes belastet, es fallen also für die Übertragung keine Kosten an, und außerdem wird die Performance für die Clients im LAN deutlich erhöht. Untersuchungen haben gezeigt, daß die Trefferquoten beim Einsatz eines Proxy-Caches bis zu 50% sind, also fast jede zweite Anfrage nach außen einspart.&lt;br /&gt;
==Sinnvolles Caching==&lt;br /&gt;
Um ein sinnvolles Caching zu erreichen, müssen gewisse Voraussetzungen gegeben sein. Diese fangen damit an, daß die Maschine, auf der ein solcher Proxy-Server läuft von der Hardware entsprechend ausgestattet sein muß. Je nach der Anzahl der Clients, die den Proxy benutzen muß die Leistungsfähigkeit des Rechners ausgelegt sein, damit auch genügend Anfragen gleichzeitig bearbeitet werden können. Um die Trefferquote auf die im Cache abgelegten Objekte zu erhöhen, sollte auch entsprechende Speicherkapazität vorhanden sein. Diese sollte auf jeden Fall mehrere Gigabyte umfassen. Da aber in der letzten Zeit die Preise für Festplattenspeicher enorm nach unten gegangen sind, sollte dies heute kein größeres Problem mehr darstellen. &lt;br /&gt;
Die Hardwarevoraussetzungen alleine machen aber noch keinen guten Proxy-Cache aus, sondern bilden nur eine solide Grundlage. Ein viel größeres Problem ist es, daß die Lebensdauer von Web-Seiten sehr unterschiedlich ist. Dadurch kann nie mit Sicherheit bestimmt werden, wann sich eine Seite ändert und dadurch veraltet ist und aus dem Cache gelöscht, bzw. beim Server neu angefordert werden soll. Es kann also immer vorkommen, daß der Cache ein veraltetes Dokument an den Client liefert. Durch verschiedene Strategien wird versucht, dieses Manko so weit wie möglich auszugleichen. &lt;br /&gt;
HTTP bietet dazu zwei Möglichkeiten: Last-Modified und Expires. Mit der Antwort des Servers werden diese Information an den Proxy mitgeteilt. Mit Last-Modified wird angezeigt, wann das Dokument das letzte mal geändert wurde. Mit der Angabe Expires erhält der Client (in diesem Falle der Proxy) Informationen, wann er das Dokument als veraltet ansehen soll und vom Server neu anfordern muß. In einem HTML-Dokument werden diese Angaben im Header generiert. Dazu wird das META-Element benutzt. Die Informationen sehen dann wie im folgenden Beispiel aus: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;META HTTP-EQUIV=“Last-Modified“ CONTENT=“Thu Jan 1 12:00:00 GMT DST 1998“&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;META HTTP-EQUIV=“Expires“ CONTENT=“Thu Dec 31 12:00:00 GMT DST 1998“&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Allein die Expires-Angabe würde reichen, um den Cache in dieser Hinsicht zu optimieren. Jedoch sind diese Angaben optional und werden sehr selten eingesetzt. Außerdem ist es oft schwierig die Lebensdauer einer Web-Seite vorauszusagen. Daher sind die meisten Web-Seiten einfach so lange gültig, bis der Autor eine neue Version erstellt. Anders sieht es bei Last-Modified aus. Diese Angabe findet sich zwar selten explizit in HTML-Dokumenten, jedoch trägt jedes Dokument als Datei einen Zeitstempel, welcher vom Server dann als Last-Modified-Header mitgeliefert wird.&lt;br /&gt;
&lt;br /&gt;
Die Proxy-Server wenden damit ein einfaches Verfahren ein, um die Lebensdauer eines Dokumentes zu „erraten“. Dabei wird zugrunde gelegt, daß die Wahrscheinlichkeit recht gering ist, daß ein recht altes Dokument in den nächsten Stunden geändert wird. Bei einem Dokument, welches dagegen erst vor kurzem geändert wurde, ist die Möglichkeit einer baldigen Aktualisierung eher vorhanden.Sofern ein Objekt keinen Expires-Header aufweist, erzeugt der Proxy-Server mit Hilfe des Last-Modified-Headers ein künstliches Verfallsdatum. Dazu bestimmt er das Alter der Datei und schlägt einen Prozentsatz dazu, der bei der Konfiguration des Proxy-Servers eingetragen wird (Direktive refresh_pattern), und holt frühestens nach Ablauf dieser Zeit von sich aus das Dokument erneut vom Server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ist beispielsweise ein Dokument zum Zeitpunkt der ersten Anfrage des Proxies bereits 150 Tage alt und der Prozentsatz aus der Konfiguration ist 20%, so vergehen weitere 30 Tage, bis der Proxy-Server eine erneute Anfrage an den Originalserver stellt. &lt;br /&gt;
&lt;br /&gt;
Um dies weiter zu optimieren wird das Dokument nur dann übertragen, wenn die Version auf dem Originalserver wirklich neuer ist, als die im Cache gespeicherte. Dazu schickt der Proxy eine Anfrage an den Originalserver, in der nur der Zeitstempel der Datei enthalten ist. Der Server vergleicht nun den empfangenen Zeitstempel der angeforderten Datei und sendet diese nur dann vollständig zurück, wenn sie jünger ist, als die im Proxy-Cache hinterlegte Kopie. Im anderen Falle erhält der Proxy nur eine kurze, aus HTTP-Headern bestehende Antwort, die signalisiert, daß keine Änderung stattgefunden hat. Der Proxy registriert dies und errechnet ein neues Verfallsdatum. &lt;br /&gt;
&lt;br /&gt;
Neben diesen statischen Objekten, die eine gewisse Lebensdauer haben, gibt es aber auch dynamische Objekte, bei denen eine Zwischenspeicherung nicht angebracht ist. Dies sind beispielsweise HTML-Seiten, die ein CGI-Skript für Datenbankabfragen enthalten oder Seiten, die eine Berechtigung verlangen.&lt;br /&gt;
&lt;br /&gt;
Es kann von beiden Seiten erzwungen werden, daß ein Objekt nicht im Cache gespeichert wird. Auf Seiten des Proxy-Servers erfolgt dies durch eine Einstellung in der Konfiguration. Damit ist es möglich, daß Seiten, die bestimmte Elemente (z.B. cgi-bin, ?, o.ä.) im URL enthalten nicht gespeichert werden. Dies kann man auch für ausgewählte Domänen angeben, was dann sinnvoll ist, wenn sich der Cache in einem Netz befindet, in dem selbst Web-Seiten angeboten werden. &lt;br /&gt;
&lt;br /&gt;
Befindet sich beispielsweise der Proxy-Cache in dem Netz der Domäne testdomain.de, womöglich sogar auf dem selben Rechner wie der Web-Server, so wäre es Unsinn, die Seiten, die dort angeboten werden in den Cache zu legen, da dies unnötig Speicher verbraucht. Von Seiten des Anbieters kann dies über den Einbau einer Authentisierung erfolgen. Dadurch wird bei der Abfrage eines Objektes nach einer Benutzerkennung und einem Paßwort gefragt. Diese Informationen und auch Seiten, die eine Identifikation verlangen, werden standardmäßig nicht vom Proxy gespeichert und müssen jedesmal neu vom Originalserver geholt werden. &lt;br /&gt;
&lt;br /&gt;
==Hierarchisches Caching==&lt;br /&gt;
Bei einigen Proxy-Servern ist es möglich, die Größe des Caches anzugeben, welcher im Hauptspeicher des Rechners liegt. Übertragene Objekte werden dort eine gewisse Zeit gehalten, um schnellere Antwortzeiten zu erreichen, falls ein Objekt innerhalb kurzer Zeit von zwei verschiedenen Clients angefordert wird. Dabei kann meist über den Parameter TTL (Time-to-Live) die Zeitdauer angegeben werden, die ein Objekt maximal in diesem Cache gehalten wird. &lt;br /&gt;
&lt;br /&gt;
Eine weitere Möglichkeit, die Performance zu erhöhen und geringere Antwortzeiten zu erhalten, ist das hierarchische Caching. Banal gesagt setzt man einen Proxy für den Proxy ein. Dadurch kann die Trefferquote auf Objekte nochmals verbessert werden. Dies macht besonders deshalb Sinn, da die Datenmengen, die über die bestehenden Leitungen übertragen werden, immer größer werden und es immer wieder zu Engpässen kommt, die lange Übertragungszeiten verursachen. Das hierarchische Caching führt dabei zu einer Entlastung. Damit die Proxy-Caches miteinander kommunizieren können, wurde ein spezielles Protokoll entwickelt, das ICP (Internet Caching Protocol). Dabei schicken Proxy-Caches für das gewünschte Objekt Anfragen an benachbarte und in der Hierarchie höher stehende Proxy-Caches. Ist das Objekt in einem dieser Caches vorhanden, wird es übertragen, andernfalls wird es vom Originalserver geholt. Da das ICP auf UDP basiert, ist es sehr schnell und bedeutet somit einen vertretbaren Performanceverlust, der durch eine erhöhte Trefferquote mehr als ausgeglichen wird.&lt;br /&gt;
 [[Image:squid3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Begriffe===&lt;br /&gt;
&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
|Neighbours	&lt;br /&gt;
|Dies sind alle Proxies, die ein Proxy kennt und mit denen er kommuniziert.&lt;br /&gt;
|-&lt;br /&gt;
|Siblings&lt;br /&gt;
|Die Geschwisterproxies. Sie liegen mit dem Proxy-Server auf einer Ebene. Siblings liefern in der Regel nur Objekte, die sie selbst im Cache haben,&lt;br /&gt;
|-&lt;br /&gt;
|Parents&lt;br /&gt;
|Übergeordnete Proxies. Sie liefern Objekte die sie selbst im Cache haben und leiten Anfragen an den Originalserver weiter.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Was ist Squid=&lt;br /&gt;
&lt;br /&gt;
Quelle: http://squid.nlanr.net/Squid/  bzw. http://www.squid-cache.org&lt;br /&gt;
&lt;br /&gt;
Squid, ein Beispiel für einen Proxy-Server mit Cache-Mechanismus, ist aus der cached Software des Harvest Forschungsprojektes hervorgegangen. Informationen über Harvest sind auf folgender Webseite zu finden: &lt;br /&gt;
&lt;br /&gt;
http://harvest.cs.colorado.edu/ &lt;br /&gt;
&lt;br /&gt;
Proxy-Systeme mit Cache-Mechanismen dienen meist der Performancesteigerung von Datentransfers, die bei langsamer Internet-Anbindung sehr groß sein kann, wenn Daten wiederholt angefordert werden. &lt;br /&gt;
&lt;br /&gt;
=Funktionsbeschreibung=&lt;br /&gt;
Squid, der Internet Object Cache, ist jedoch mehr als ein einfacher Cache-Proxy. Durch die Unterstützung von Neighbor-Caches, die entweder als parent oder sibling verwendet werden, kann man einen Cache-Verbund aufbauen, der einen hohen Prozentsatz von Anfragen beantworten kann, ohne langwierige Internet-Zugriffe zu erfordern. Dieses Verfahren verwenden zum Beispiel einige der großen Internet-Provider (wie ECRC in München), um den Datentransfer wenn möglich auf der eigenen Netzwerkstruktur abzuwickeln und damit Kosten für externe Zugriffe zu umgehen. &lt;br /&gt;
&lt;br /&gt;
Die Arbeitsweise von Squid ist einfach: &lt;br /&gt;
&lt;br /&gt;
Eine Anfrage eines Clients wird zuerst auf die Zugriffsberechtigung untersucht, so kann man z.B. gewissen Rechnern einen Zugriff auf den Proxy ganz verbieten (siehe Konfiguration). &lt;br /&gt;
&lt;br /&gt;
Es wird versucht, die gewünschten Daten im lokalen Cache zu finden. Sollte dies fehlschlagen, werden andere Proxies im Cache-Verbund (sofern vorhanden),&lt;br /&gt;
abgefragt.&lt;br /&gt;
&lt;br /&gt;
Sind die Daten vorhanden, wird ihre Aktualität geprüft. Sind die Daten veraltet, werden neue in den Cache geholt und an den Client weitergegeben. Bei aktuellen Daten wird das Neuladen übersprungen.&lt;br /&gt;
&lt;br /&gt;
Sind die Daten nicht vorhanden, werden sie in den Cache geladen und an den Client weiter-gereicht. Wie lange Daten im Cache verbleiben, ist abhängig von der Konfiguration (siehe dort)&lt;br /&gt;
&lt;br /&gt;
Eine Beschreibung der internen Abläufe wurde im Sinne der Übersichtlichkeit weggelassen.&lt;br /&gt;
&lt;br /&gt;
=Hilfe und Dokumentation zu Squid=&lt;br /&gt;
&lt;br /&gt;
Hilfe und Dokumentation im Internet:&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
|Die squid Website&lt;br /&gt;
|http://www.squid-cache.org/Doc/&lt;br /&gt;
|-&lt;br /&gt;
|squid IRC Channel&lt;br /&gt;
|Server: irc.freenode.de -Channel: #squid&lt;br /&gt;
|-&lt;br /&gt;
|Mailingliste&lt;br /&gt;
|squid-users@squid-cache.org&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Hilfe und Dokumentation im System&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
|Speziell zur Konfiguration&lt;br /&gt;
|/etc/squid/squid.conf.default&lt;br /&gt;
|-&lt;br /&gt;
|Manualpage&lt;br /&gt;
|man squid&lt;br /&gt;
|-&lt;br /&gt;
|Mitgelieferte Dokumentation&lt;br /&gt;
|/usr/share/doc/squid/&lt;br /&gt;
|}&lt;br /&gt;
=Squid unter Ubuntu=&lt;br /&gt;
==Installation==&lt;br /&gt;
 root@zero:~# apt-get install squid3 squid3-common&lt;br /&gt;
Testen ob Squid läuft &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 3128&lt;br /&gt;
 tcp        0      0 0.0.0.0:3128            0.0.0.0:*               LISTEN      10743/(squid)&lt;br /&gt;
&lt;br /&gt;
==Start Skript==&lt;br /&gt;
Das Startskript /etc/init.d/squid3 hat folgende Parameter&lt;br /&gt;
&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
|start&lt;br /&gt;
|Startet den Squid-Daemon&lt;br /&gt;
|-&lt;br /&gt;
|stop&lt;br /&gt;
|Stoppt den Squid-Daemon&lt;br /&gt;
|-&lt;br /&gt;
|reload&lt;br /&gt;
|Liest die Konfigurationsdatei neu ein&lt;br /&gt;
|-&lt;br /&gt;
|force-reload&lt;br /&gt;
|das gleiche wie reload&lt;br /&gt;
|-&lt;br /&gt;
|restart&lt;br /&gt;
|Stoppt den Deamon, falls er gestartet war und startet ihn wieder (synonym für stop und start)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Squid Parameter==&lt;br /&gt;
Gestartet werden kann Squid auch ohne das Startskript mit &lt;br /&gt;
 /usr/sbin/squid3 [-cdhvzCDFNRVYX] [-s | -l facility] [-f config-file] [-[au] port] [-k signal]&lt;br /&gt;
Flogende Parameter können eingestellt werden:&lt;br /&gt;
&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
| -a port&lt;br /&gt;
|verändert die Portnummer für HTTP-Anfragen&lt;br /&gt;
|-&lt;br /&gt;
| -d level&lt;br /&gt;
|Debug Output auf stderr ausgeben&lt;br /&gt;
|-&lt;br /&gt;
| -f file&lt;br /&gt;
|gibt eine alternative Konfigurationsdatei zu /etc/squid3/squid.conf an&lt;br /&gt;
|-&lt;br /&gt;
| -k&lt;br /&gt;
|mit dieser option können dem laufenden Squid verschiedene Steuersignale übergeben werden&lt;br /&gt;
|-&lt;br /&gt;
| -k reconfigure&lt;br /&gt;
|die Konfigurationsdatei wird nochmals eingelesen&lt;br /&gt;
|-&lt;br /&gt;
| -k rotatate&lt;br /&gt;
|schliesst und öffnet Dateien z.B. log_files&lt;br /&gt;
|-&lt;br /&gt;
| -k shutdown&lt;br /&gt;
|squid wartet kurz und beendet die Verbindung und sich selbst.Mit shutdown_zeit wird Squid nach einer angegebenen Zeit beendet.&lt;br /&gt;
|-&lt;br /&gt;
| -k interrupt&lt;br /&gt;
|sendet einen Interrupt worauf squid sofort abgebrochen wird ohne auf den Verlauf der Verbindungen zu achten.&lt;br /&gt;
|-&lt;br /&gt;
| -k kill&lt;br /&gt;
|bricht squid sofort ab, die Verbindung und die log_files bleiben geöffnet&lt;br /&gt;
|-&lt;br /&gt;
| -k check&lt;br /&gt;
|kontrolliert ob squid läuft&lt;br /&gt;
|-&lt;br /&gt;
| -s&lt;br /&gt;
|erlaubt das Aufnehmen in die syslog&lt;br /&gt;
|-&lt;br /&gt;
| -u port&lt;br /&gt;
|verändert die Portnummer des Internet Cache Protokoll ICP bzw. deaktiviert den Cache-Verbund mit der Portnummer 0&lt;br /&gt;
|-&lt;br /&gt;
| -v&lt;br /&gt;
|zeigt die aktuelle Squid Version&lt;br /&gt;
|-&lt;br /&gt;
| -z&lt;br /&gt;
|richtet cache Verzeichnisse ein&lt;br /&gt;
|-&lt;br /&gt;
| -D&lt;br /&gt;
|Squid führt normalerweise DNS Tests durch die hiermit abgestellt werden können&lt;br /&gt;
|-&lt;br /&gt;
| -F&lt;br /&gt;
|wenn die swap.logs leer sind nützt squid die vollen Systemresourcen um sich um die Anfragen zu kümmern.Dies beschleunigt den Verarbeitungsvorgang&lt;br /&gt;
|-&lt;br /&gt;
| -N&lt;br /&gt;
|der Serverprozess läuft nicht im Hintergrund&lt;br /&gt;
|-&lt;br /&gt;
| -V&lt;br /&gt;
|Aktivierung des httpd Beschleunigungsmodus&lt;br /&gt;
|-&lt;br /&gt;
| -X&lt;br /&gt;
|Full-Debug-Modus&lt;br /&gt;
|-&lt;br /&gt;
| -Y&lt;br /&gt;
|Beschleunigt den ICP austausch bei niederwertigeren Caches&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Konfiguration==&lt;br /&gt;
Squid wird mittels einer normalen Textdatei konfiguriert, die logisch in&lt;br /&gt;
mehrere Teilbereiche unterteilt werden kann. Sie ist unter&lt;br /&gt;
/etc/squid/squid.conf bzw. unter &amp;lt;prefix&amp;gt;/etc/squid.conf zu finden.&lt;br /&gt;
Bei der Installation von Squid wird eine Default-Konfiguration erzeugt, die&lt;br /&gt;
mit minimalen Änderungen bereits einen ersten Testlauf ermöglicht. Für&lt;br /&gt;
die Ausnutzung der vollen Leistung von Squid sollte jedoch eine&lt;br /&gt;
individuelle Anpassung erfolgen.&lt;br /&gt;
&lt;br /&gt;
Alle Zeilen von squid.conf, die mit # beginnen, sind Kommentare bzw.&lt;br /&gt;
nicht aktivierte Optionen. Als Minimalkonfiguration genügen die in Schnellstart beschriebenen&lt;br /&gt;
Einstellungen. Für die genaue Syntax von Optionen sei ebenfalls auf&lt;br /&gt;
squid.conf verwiesen, die folgenden Kapitel geben einen groben Überblick&lt;br /&gt;
über die Möglichkeiten von Squid.&lt;br /&gt;
&lt;br /&gt;
Da die Konfigurationsdatei in Ihrer Fülle und den ganzen Kommentaren&lt;br /&gt;
sehr verwirrend ist kann man sie zunächst einmal auf das Wichtigste reduzieren. Vorher sollte&lt;br /&gt;
die originale squid.conf gesichert werden:&lt;br /&gt;
&lt;br /&gt;
 cp squid.conf squid.conf.org&lt;br /&gt;
 grep  &amp;quot;^[^#]&amp;quot; squid.conf.org &amp;gt; squid.conf&lt;br /&gt;
&lt;br /&gt;
 acl manager proto cache_object&lt;br /&gt;
 acl localhost src 127.0.0.1/32&lt;br /&gt;
 acl to_localhost dst 127.0.0.0/8&lt;br /&gt;
 acl SSL_ports port 443&lt;br /&gt;
 acl Safe_ports port 80		# http&lt;br /&gt;
 acl Safe_ports port 21		# ftp&lt;br /&gt;
 acl Safe_ports port 443	# https&lt;br /&gt;
 acl Safe_ports port 70		# gopher &lt;br /&gt;
 acl Safe_ports port 210		# wais&lt;br /&gt;
 acl Safe_ports port 1025-65535	# unregistered ports&lt;br /&gt;
 acl Safe_ports port 280		# http-mgmt&lt;br /&gt;
 acl Safe_ports port 488		# gss-http&lt;br /&gt;
 acl Safe_ports port 591		# filemaker&lt;br /&gt;
 acl Safe_ports port 777		# multiling http&lt;br /&gt;
 acl CONNECT method CONNECT&lt;br /&gt;
 http_access allow manager localhost&lt;br /&gt;
 http_access deny manager&lt;br /&gt;
 http_access deny !Safe_ports&lt;br /&gt;
 http_access deny CONNECT !SSL_ports&lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
 http_access deny all&lt;br /&gt;
 icp_access deny all&lt;br /&gt;
 htcp_access deny all&lt;br /&gt;
 http_port 3128&lt;br /&gt;
 hierarchy_stoplist cgi-bin ?&lt;br /&gt;
 access_log /var/log/squid3/access.log squid&lt;br /&gt;
 refresh_pattern ^ftp:		1440	20%	10080&lt;br /&gt;
 refresh_pattern ^gopher:	1440	0%	1440&lt;br /&gt;
 refresh_pattern (cgi-bin|\?)	0	0%	0&lt;br /&gt;
 refresh_pattern .		0	20%	4320&lt;br /&gt;
 icp_port 3130&lt;br /&gt;
 coredump_dir /var/spool/squid3&lt;br /&gt;
&lt;br /&gt;
Zur besseren Übersicht unterteilen wir die Konfigdatei&lt;br /&gt;
&lt;br /&gt;
 #allgemeine sektion&lt;br /&gt;
 http_port 3128&lt;br /&gt;
 access_log /var/log/squid3/access.log squid&lt;br /&gt;
 icp_port 3130&lt;br /&gt;
 coredump_dir /var/spool/squid3&lt;br /&gt;
 hierarchy_stoplist cgi-bin ?&lt;br /&gt;
 &lt;br /&gt;
 #refresh&lt;br /&gt;
 refresh_pattern ^ftp:           1440    20%     10080&lt;br /&gt;
 refresh_pattern ^gopher:        1440    0%      1440&lt;br /&gt;
 refresh_pattern (cgi-bin|\?)    0       0%      0&lt;br /&gt;
 refresh_pattern .               0       20%     4320&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl manager proto cache_object&lt;br /&gt;
 acl localhost src 127.0.0.1/32&lt;br /&gt;
 acl to_localhost dst 127.0.0.0/8&lt;br /&gt;
 acl SSL_ports port 443&lt;br /&gt;
 acl Safe_ports port 21 80  443 70 210 280 488 591 777 1025-65535&lt;br /&gt;
 acl CONNECT method CONNECT&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow manager localhost&lt;br /&gt;
 http_access deny manager&lt;br /&gt;
 http_access deny !Safe_ports&lt;br /&gt;
 http_access deny CONNECT !SSL_ports&lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
 http_access deny all&lt;br /&gt;
 icp_access deny all&lt;br /&gt;
 htcp_access deny all&lt;br /&gt;
&lt;br /&gt;
===Allgemein===&lt;br /&gt;
 http_port 3128&lt;br /&gt;
Auf diesem Port lauscht der Squid auf eingehende http-Anfragen der Clients.&lt;br /&gt;
 icp_port 3130&lt;br /&gt;
Auf diesem Port lauscht Squid auf eingehende Anfragen von Nachbar-Proxys&lt;br /&gt;
 access_log /var/log/squid3/access.log squid&lt;br /&gt;
Legt Ort und Art des Loggings für eingehende Requests fest.&lt;br /&gt;
 coredump_dir /var/spool/squid3&lt;br /&gt;
Standardmäßig schreibt Squid corefiles in das Verzeichnis aus dem er gestartet wurden. Wenn mit dieser Option ein Pfad angegeben ist, wechselt Squid nach dem Start in dieses Verzeichnis und legt die corefiles in dieses Verzeichnis ab.&lt;br /&gt;
 hierarchy_stoplist cgi-bin ?&lt;br /&gt;
Hiermit wird eine Liste von Ausdrücken festgelegt, die - wenn sie in dem angefragen URL vorkommen - Squid veranlassen, die Anfrage direkt auszuführen und keine Nachbar-Proxys zu befragen&lt;br /&gt;
&lt;br /&gt;
===Refresh_pattern===&lt;br /&gt;
&lt;br /&gt;
 #refresh_pattern Suchmuster      Min     Prozent Max&lt;br /&gt;
  refresh_pattern ^ftp:           1440    20%     10080&lt;br /&gt;
  refresh_pattern ^gopher:        1440    0%      1440&lt;br /&gt;
  refresh_pattern (cgi-bin|\?)    0       0%      0&lt;br /&gt;
  refresh_pattern .               0       20%     4320&lt;br /&gt;
&lt;br /&gt;
Hier kann der Refresh-Algorithmus von squid für die eigenen Bedürfnisse optimiert werden. &lt;br /&gt;
&lt;br /&gt;
MIN ist die Zeit in Minuten,die ein Objekt ohne explizite Ablaufzeit als Aktuell betrachtet wird. Der ermpfohlene Wert ist 0, jeder höhere Wert könnte dazu führen, dass dynmaische Anwendungen irrtümlich gecachtt&lt;br /&gt;
werden, wenn der Webdesigner keine entsprechenden Gegenaktionen getroffen hat. &lt;br /&gt;
&lt;br /&gt;
PROZENT ist der Prozentsatz eines Objektalters (Zeit seit der letzten&lt;br /&gt;
Modifikation) wo ein Objekt ohne explizite Ablaufzeit als aktuell betrachtet&lt;br /&gt;
wird. &lt;br /&gt;
&lt;br /&gt;
MAX ist ein oberes Limit wie lange Objekte ohne explizite Ablaufzeiten als aktuell betrachtet werden.&lt;br /&gt;
&lt;br /&gt;
 refresh_pattern -i&lt;br /&gt;
Wie refresh_pattern, nur, daß Musterangaben die Groß-/Kleinschreibung&lt;br /&gt;
ignorieren.&lt;br /&gt;
&lt;br /&gt;
===ACL===&lt;br /&gt;
Unter ACL versteht man access control lists, also Filter, die den Zugriff auf den Proxy regeln. Eine ACL muss immer zuerst definiert werden und ein Name gegeben werden. ACLs werden in der Form&lt;br /&gt;
 acl ''aclname acltyp argument'' ...&lt;br /&gt;
 acl ''aclname acltyp &amp;quot;datei&amp;quot;''&lt;br /&gt;
definiert. &lt;br /&gt;
&lt;br /&gt;
====Beispielkonfiguration====&lt;br /&gt;
In der Standardkonfiguration sind 6 ACLs definiert:&lt;br /&gt;
&lt;br /&gt;
Standard- acl für Management-Dienste&lt;br /&gt;
 acl manager proto cache_object &lt;br /&gt;
&lt;br /&gt;
Alles was von localhost (also lokal über das loopback-device) kommt&lt;br /&gt;
 acl localhost src 127.0.0.1/32&lt;br /&gt;
&lt;br /&gt;
Alles was an localhost geht&lt;br /&gt;
 acl to_localhost dst 127.0.0.0/8&lt;br /&gt;
&lt;br /&gt;
acl für SSL_ports (Standard https-port)&lt;br /&gt;
 acl SSL_ports port 443&lt;br /&gt;
&lt;br /&gt;
acl für &amp;quot;sichere Ports&amp;quot;&lt;br /&gt;
 acl Safe_ports port 80 (21,443,70,...)&lt;br /&gt;
&lt;br /&gt;
 acl CONNECT method CONNECT&lt;br /&gt;
&lt;br /&gt;
Nachdem die ACLs definiert sind, müssen diese in Regeln angewendet werden. Die Syntax lautet:&lt;br /&gt;
 ''regeltyp'' allow|deny [!''acl1''] [!''acl2'']&lt;br /&gt;
Eine Regel besagt also, dass ein Zugriff, der auf eine bestimmte Access-List zutrifft, entweder erlaubt (allow) oder verboten wird (deny).&lt;br /&gt;
&lt;br /&gt;
In der Beispielkonfiguration werden http_access und icp-, htcp_access als Regeltyp angewendet, zB. &lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
wendet die Access-Liste 'localhost' an, um den lokalen Zugriff vom Proxy-Server auf http-seiten zu regeln.&lt;br /&gt;
icp_access und htcp_access bzw. icp und htcp sind Protokolle für den Datenaustausch zwischen zwei Servern.&lt;br /&gt;
&lt;br /&gt;
====Eigene Erweiterungen====&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration können wir jetzt erweitern und auf die Bedürfnisse des jeweiligen Netzwerks anpassen. Als Beispiel verwenden wir ein Netzwerk, welches 2 Subnetze enthält, die über einen Proxy, welcher in einer DMZ steht, Verbindungen zum Internet aufbaut. Das 192.168.241.0/24-Netz soll ein privilegiertes Netz sein, d.h Die Clients haben generell mehr Rechte um auf das Internet zuzugreifen, als das andere Netz (192.168.242.0/24).&lt;br /&gt;
&lt;br /&gt;
Als Erstes wollen wir das eine Netz vorläufig komplett für den HTTP-Verkehr freischalten:&lt;br /&gt;
&lt;br /&gt;
ACL für das Netz aufstellen:&lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl privilegiert src 192.168.241.0/24&lt;br /&gt;
ACL anwenden und das Netz freischalten:&lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow privilegiert&lt;br /&gt;
Die beiden Konfigurationsanweisungen müssen nun an korrekter Stelle in die squid.conf eingetragen werden. Bei der ACL ist das nicht so relevant, jedoch zur Übersichtlichkeit wird man sie in den Block mit den anderen ACLs einfügen. Bei der Access-Regel dagegen ist es dagegen von entscheidender Bedeutung, wo die Anweisung steht, da die Konfigurationsdatei von oben nach unten abgearbeitet wird und die erste Regel auf die eine Anfrage passt, wird ausgeführt.&lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow manager localhost&lt;br /&gt;
 http_access deny manager&lt;br /&gt;
 http_access deny !Safe_ports&lt;br /&gt;
 http_access deny CONNECT !SSL_ports&lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
 http_access deny all&lt;br /&gt;
 '''http_access allow privilegiert'''&lt;br /&gt;
Wird die Regel wie hier angezeigt eingefügt, hat das keine Auswirkung auf den Zugriff, da die Regel &amp;quot;http_access deny all&amp;quot; vorher steht, welche auf alles zutrifft und so die Anfrage abweist. Also müssen wir die Regel weiter oben einfügen.&lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow manager localhost&lt;br /&gt;
 http_access deny manager&lt;br /&gt;
 http_access deny !Safe_ports&lt;br /&gt;
 http_access deny CONNECT !SSL_ports&lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
 '''http_access allow privilegiert'''&lt;br /&gt;
 http_access deny all&lt;br /&gt;
&lt;br /&gt;
Das unprivilegierte Netz soll nun auch Zugriff auf das Internet erhalten, jedoch nur in eingeschränktem Maße. Es soll nur auf den für den Arbeitsablauf notwendigen Webseiten Zugriff erhalten. Dies wird so realisiert, dass eine Datei mit Regex-URLs eingerichtet wird, auf die zugegriffen werden darf.&lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl unprivilegiert src 192.168.242.0/24&lt;br /&gt;
 acl gute_domains url_regex -i &amp;quot;/etc/squid3/gute_domains&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow unprivilegiert gute_domains&lt;br /&gt;
Diese Regel hat 2 acls als Argumente. Diese werden in den Access-Regeln durch ein UND verknüpft, d.h. die Regel matcht nur wenn beide acls zutreffen.&lt;br /&gt;
&lt;br /&gt;
Nun wird eine Regel erstellt, damit URLs, auf die niemand zugreifen darf, im gesamten Netzwerk, also in den beiden Subnetzen, verboten wird.&lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl lan src 192.168.241.0/24 192.168.242.0/24&lt;br /&gt;
 acl schlechte_domains url_regex -i &amp;quot;/etc/squid3/schlechte_domains&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access deny lan schlechte_domains&lt;br /&gt;
&lt;br /&gt;
 root@zero:/etc/squid3# cat schlechte_domains &lt;br /&gt;
 ^http://(www.)?pornographische-seite1.de&lt;br /&gt;
 ^http://(www.)?boese-seite2.com&lt;br /&gt;
 root@zero:/etc/squid3# &lt;br /&gt;
&lt;br /&gt;
Hier wird eine ACL erstellt, die 2 Argumente besitzt. Diese werden, im Gegensatz zu den Access-Regeln, mit einem ODER verknüpft, sodass diese Regel matcht, falls eine Anfrage der beiden Subnetze als Source mit einer URL aus der Datei &amp;quot;schlechte_domains&amp;quot; kommt. In Aussagenlogikform:&lt;br /&gt;
&lt;br /&gt;
lan = ( privilegiert ODER unprivilegiert )&lt;br /&gt;
acl = lan UND schlechte_domains&lt;br /&gt;
&lt;br /&gt;
Jetzt wollen wir z.B den Nutzern im unprivilegierten Netz auch die Möglichkeit geben, während der Mittagspause frei im Internet surfen zu können. Dazu benutzt man den acl-Typ &amp;quot;time&amp;quot;:&lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl mittag time 12:00-12:30&lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow unprivilegiert mittag&lt;br /&gt;
Hier wird eine acl mittag definiert, die einen Zeitbereich annimmt. Diese wird mit der acl unprivilegiert in einer Regel verknüpft.&lt;br /&gt;
&lt;br /&gt;
===Authentifizierung===&lt;br /&gt;
&lt;br /&gt;
====Passwortdatei====&lt;br /&gt;
Mit dem Programm htpasswd (ruft Systemfunktion crypt auf )das bei jeder Distribution dabei sein sollte können ein Passwortdatei erzeugen. &lt;br /&gt;
 root@zero:/etc/squid3# htpasswd -c passwd xinux&lt;br /&gt;
 New password: &lt;br /&gt;
 Re-type new password: &lt;br /&gt;
 Adding password for user xinux&lt;br /&gt;
 root@zero:/etc/squid3# cat passwd &lt;br /&gt;
 xinux:5AZTQ/gAwdlOU&lt;br /&gt;
 root@zero:/etc/squid3#&lt;br /&gt;
&lt;br /&gt;
====Konfigurationsdatei====&lt;br /&gt;
 #auth-sektion&lt;br /&gt;
 auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/passwd&lt;br /&gt;
 auth_param basic children 5&lt;br /&gt;
 auth_param basic concurrency 0&lt;br /&gt;
 auth_param basic realm Squid proxy-caching web server&lt;br /&gt;
 auth_param basic casesensitive off&lt;br /&gt;
 &lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl autorisiert proxy_auth REQUIRED&lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow unprivilegiert autorisiert&lt;br /&gt;
In der Konfigurationsdatei wird nun ein Programm angegeben, das für die Authentifizierung aufgerufen wird. Dieses liest Daten aus der zuvor angefertigten Passwortdatei. Dann muss eine acl mit dem typ &amp;quot;proxy_auth&amp;quot; erstellt werden, welche in einer Regel angewendet wird. So kann hier auch ein Nutzer aus dem unprivilegierten Netz Zugang zum Internet bekommen, sollte er sich authentifizieren können.&lt;br /&gt;
&lt;br /&gt;
===Caching===&lt;br /&gt;
Squid benutzt den Hauptspeicher und ein Verzeichnis, um Anfragen zu cachen und diese bei erneuten Anfragen direkt auszuliefern.&lt;br /&gt;
====Anlegen des Caches====&lt;br /&gt;
 root@zero:/etc/squid3# cd /var/cache/&lt;br /&gt;
 root@zero:/var/cache# mkdir squid&lt;br /&gt;
 root@zero:/var/cache# chown proxy:proxy squid/&lt;br /&gt;
 root@zero:/var/cache# ls -l | grep squid&lt;br /&gt;
 drwxr-xr-x  2 proxy    proxy    4096 2009-07-10 09:53 squid&lt;br /&gt;
Hier wird ein Verzeichnis angelegt, welches dem Benutzer proxy beschreibbar sein, da der Squid nicht unter root, sondern unter einem unprivilegierten Benutzer läuft.&lt;br /&gt;
 #cache-sektion&lt;br /&gt;
 cache_dir ufs /var/cache/squid 100 16 256&lt;br /&gt;
cache_dir ''typ verzeichnis MB L1 L2''&lt;br /&gt;
&lt;br /&gt;
In der Konfigurationsdatei wird dieses Verzeichnis angegeben. Der Typ &amp;quot;ufs&amp;quot; ist das Standardspeichersystem des Squid. Es können aber auch andere Typen wie aufs oder diskd benutzt werden. Die Optionen hinter dem Verzeichnisnamen, geben Speicherplatz und Verzeichnisstruktur an. MB gibt an, wieviel Speicherplatz Squid in diesem Verzeichnis benutzt (es können auch mehrere Verzeichnisse zur Speicherverteilung auf verschiedene Partitionen angegeben werden), L1 gibt an wieviele First-Level-Unterverzeichnisse angelegt werden, L2 gibt an, wieviele Second-Level-Unterverzeichnisse in jedem First-Level-Verzeichnis angelegt werden (Baum-Struktur).&lt;br /&gt;
 root@zero:/var/cache# /etc/init.d/squid3 restart&lt;br /&gt;
 * Restarting Squid HTTP Proxy 3.0 squid3&lt;br /&gt;
 *   Waiting...                                                                  &lt;br /&gt;
 * ...                                                                          &lt;br /&gt;
 * ...                                                                          &lt;br /&gt;
 * ...                                                                          &lt;br /&gt;
 * ...                                                                          &lt;br /&gt;
 * ...                                                                         &lt;br /&gt;
 * ...                                                                  [ OK ] &lt;br /&gt;
 * Creating Squid HTTP Proxy 3.0 cache structure&lt;br /&gt;
 2009/07/10 09:59:24| Creating Swap Directories&lt;br /&gt;
 2009/07/10 09:59:24| /var/cache/squid exists&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/00&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/01&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/02&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/03&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/04&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/05&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/06&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/07&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/08&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/09&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0A&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0B&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0C &lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0D&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0E&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0F&lt;br /&gt;
                                                                        [ OK ]&lt;br /&gt;
 root@zero:/var/cache/squid# ls&lt;br /&gt;
 00  01  02  03  04  05  06  07  08  09  0A  0B  0C  0D  0E  0F  swap.state&lt;br /&gt;
 root@zero:/var/cache/squid# cd 00&lt;br /&gt;
 root@zero:/var/cache/squid/00# ls&lt;br /&gt;
 00  0E  1C  2A  38  46  54  62  70  7E  8C  9A  A8  B6  C4  D2  E0  EE  FC&lt;br /&gt;
 01  0F  1D  2B  39  47  55  63  71  7F  8D  9B  A9  B7  C5  D3  E1  EF  FD&lt;br /&gt;
 02  10  1E  2C  3A  48  56  64  72  80  8E  9C  AA  B8  C6  D4  E2  F0  FE&lt;br /&gt;
 03  11  1F  2D  3B  49  57  65  73  81  8F  9D  AB  B9  C7  D5  E3  F1  FF&lt;br /&gt;
 04  12  20  2E  3C  4A  58  66  74  82  90  9E  AC  BA  C8  D6  E4  F2&lt;br /&gt;
 05  13  21  2F  3D  4B  59  67  75  83  91  9F  AD  BB  C9  D7  E5  F3&lt;br /&gt;
 06  14  22  30  3E  4C  5A  68  76  84  92  A0  AE  BC  CA  D8  E6  F4&lt;br /&gt;
 07  15  23  31  3F  4D  5B  69  77  85  93  A1  AF  BD  CB  D9  E7  F5&lt;br /&gt;
 08  16  24  32  40  4E  5C  6A  78  86  94  A2  B0  BE  CC  DA  E8  F6&lt;br /&gt;
 09  17  25  33  41  4F  5D  6B  79  87  95  A3  B1  BF  CD  DB  E9  F7&lt;br /&gt;
 0A  18  26  34  42  50  5E  6C  7A  88  96  A4  B2  C0  CE  DC  EA  F8&lt;br /&gt;
 0B  19  27  35  43  51  5F  6D  7B  89  97  A5  B3  C1  CF  DD  EB  F9&lt;br /&gt;
 0C  1A  28  36  44  52  60  6E  7C  8A  98  A6  B4  C2  D0  DE  EC  FA&lt;br /&gt;
 0D  1B  29  37  45  53  61  6F  7D  8B  99  A7  B5  C3  D1  DF  ED  FB&lt;br /&gt;
 root@zero:/var/cache/squid/00#&lt;br /&gt;
Hier sieht man, das Squid im Verzeichnis /var/cache/squid 16 Verzeichnisse von 00-0F und in jedem Unterverzeichnis weitere 256 Verzeichnisse 00-FF angelegt hat.&lt;br /&gt;
&lt;br /&gt;
====Konfiguration====&lt;br /&gt;
Nun können weitere Optionen in der Konfigurationsdatei angegeben werden.&lt;br /&gt;
 cache_mem 32 MB&lt;br /&gt;
Gibt an, wieviel Hauptspeicher zum Cachen für Squid verwendet wird&lt;br /&gt;
 cache_swap_low 90&lt;br /&gt;
 cache_swap_high 95&lt;br /&gt;
Diese beiden Optionen geben den unteren und oberen Threshold für die Füllung des Caches an in % an. Wird die untere Marke überschritten, beginnt Squid entsprechend der cache_replacement_policy Objekte aus dem Cache zu entfernen. Wird die obere Marke erreicht, erfolgt die Räumung aggressiver. Wird die untere Marke unterschritten, wird der Prozess beendet.&lt;br /&gt;
 minimum_object_size 0 KB&lt;br /&gt;
 maximum_object_size 8192 KB&lt;br /&gt;
minimum_object_size gibt an, wie groß ein Objekt mindestens sein muss, um im Cache gespeichert zu werden, maximum_object_size die maximale Größe.&lt;br /&gt;
 maximum_object_size_in_memory 64 KB&lt;br /&gt;
maximum_object_size_in_memory gibt an, wie groß ein Objekt höchstens sein darf, um im Hauptspeicher gecacht zu werden.&lt;br /&gt;
 ipcache_size 1024&lt;br /&gt;
Hier wird die maximale Anzahl der IP-Cache Einträge bestimmt.&lt;br /&gt;
 ipcache_low 90&lt;br /&gt;
 ipcache_high 95&lt;br /&gt;
Thresholds der IP-Cache-Einträge, entsprechend zu cache_swap_low und _high.&lt;br /&gt;
 fqdncache_size 1024&lt;br /&gt;
Maximale Anzahl der FQDN-Cache-Einträge.&lt;br /&gt;
 cache_replacement_policy lru&lt;br /&gt;
 memory_replacement_policy lru&lt;br /&gt;
Diese Einträge bestimmen, mit welchem Verfahren Objekte aus dem Cache entfernt werden. lru steht für least recently used, d.h. Squid löscht bei diesem Verfahren die Einträge, die am längsten nicht mehr angefragt wurden. Es gibt außerdem:&lt;br /&gt;
&lt;br /&gt;
heap GDFS (Greed-Dual Size Frequency): Optimiert die Objekt-Hitrate. Kleine häufig angefragte Objekte werden auf Kosten großer, weniger häufig angefragter Objekte im Cache gehalten. Damit wird die Warscheinlichkeit eines Objekt-Hits gesteigert.&lt;br /&gt;
&lt;br /&gt;
heap LFUDA (Least frequently used with dynamic aging): Optimiert die Byte-Hitragte. Häufig angefrage Objekte werden im Cache gehalten, slten angefragte Objekte werden freigegeben, unabhängig von deren Größe. Damit wird ein häufiger angefrages, großes Objekt ggf. auf Kosten vieler kleiner Objekte im Cache gehalten.&lt;br /&gt;
&lt;br /&gt;
heap lru (erweitertes lru-Verfahren).&lt;br /&gt;
&lt;br /&gt;
===Delay-Pools===&lt;br /&gt;
Mit Delay-Pools kann man eine Bandbreitensteuerung über Squid implementieren.&lt;br /&gt;
 #delay_pools-sektion&lt;br /&gt;
 delay_pools 2&lt;br /&gt;
Hier wird die Anzahl der Pools angegeben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #delay_claas ''pool'' ''class''&lt;br /&gt;
 delay_class 1 1&lt;br /&gt;
 delay_class 2 2&lt;br /&gt;
Jeder der Pools wird einer Klasse zugeordnet. Es gibt insgesamt 5 Klassen, die verschiedene Methoden zur Bandbreitensteuerung anbieten.&lt;br /&gt;
&lt;br /&gt;
Klasse 1: Die gesamte Bandbreite wird über ein Parameterpaar gesteuert.&lt;br /&gt;
&lt;br /&gt;
Klasse 2: Es werden 2 Parameterpaare angegeben. Das erste bestimmt die gesamte Bandbreite, das zweite bestimmt die individuelle Bandbreite eines Hosts anhand des letzten Bytes der IP-Adresse.&lt;br /&gt;
&lt;br /&gt;
Klasse 3: Zusätzlich zu den 2 Parametepaaren in Klasse 2 gibt es noch ein drittes Paar, welches die Bandbreite eines ganzen Klasse-C-Netzes beschränkt.&lt;br /&gt;
&lt;br /&gt;
Klasse 4: Wie Klasse 3, jedoch gibt es noch ein zusätzliches Parameterpaar, welches anhand des Benutzernamens die Bandbreite beschränkt. Diese Limitierung tritt nur in Kraft, sollte ein Request eine Benutzerauthentifizierung erfordert haben (siehe Authentifizerung).&lt;br /&gt;
&lt;br /&gt;
Klasse 5: Die Bandbreitenregulierung erfolgt nicht wie in Klasse 2-4 über IP-Adressen oder Benutzer, sondern über ein Tag, welches angegeben wird und einen Request identifiziert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 delay_parameters 1 10000/20000&lt;br /&gt;
 delay_parameters 2 20000/40000 1000/2000&lt;br /&gt;
 delay_access 1 allow privilegiert&lt;br /&gt;
 delay_access 2 allow unprivilegiert&lt;br /&gt;
 delay_access 1 deny all&lt;br /&gt;
 delay_access 2 deny all&lt;br /&gt;
&lt;br /&gt;
Nun müssen den Delay-Pools noch die Parameter übergeben werden. Der Delay-Pool mit Klasse 1 erhält ein Parameterpaar. Dieses Parameterpaar setzt sich zusammen aus restore- und einem maximum-Wert. Der restore-Wert bestimmt die eigentliche Bandbreite in Byte/Sekunde, der maximum-Wert bestimmt die maximale Datenmenge in Byte, die auf einmal übertragen wird.&lt;br /&gt;
&lt;br /&gt;
Die mit maximum definierte Datenmenge wird ganz normal über das Netz übertragen, ggf. mit der vollen zur Verfügung stehenden Bandbreite und ohne weitere Begrenzung. Anhand des eigentlichen Bandbreitenwertes restore berechnet Squid, wie lange er das nächste Paket verzögern muss, um auf die durchschnittliche, mit restore vorgegebene Bandbreite zu kommen. So wird die vorgegebene Nettobandbreite im Mittel durchaus gehalten, ein einzelnes Datenpaket kann jedoch deutlich schneller zum Client transportiert werden.&lt;br /&gt;
&lt;br /&gt;
Mit delay-access wird nun festelegt, welche Pools auf welche acl angewendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=ads mitglied=&lt;br /&gt;
*http://blog.stefan-betz.net/2009/1/7/hochzeit:-squid-3-und-active-directory/&lt;br /&gt;
*http://www.woy.de/?p=29&lt;br /&gt;
&lt;br /&gt;
=sarg=&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install sarg apache2&lt;br /&gt;
 sudo cp /etc/sarg/sarg.conf /etc/sarg/sarg.conf.old&lt;br /&gt;
 sudo cat /etc/sarg/sarg.conf.old | grep -v ^# | grep -v ^$ &amp;gt; /etc/sarg/sarg.conf&lt;br /&gt;
&lt;br /&gt;
Beim Benutzen von '''squid3''' muss der log-Pfad in der sarg.conf angepasst werden!&lt;br /&gt;
 access_log /var/log/squid/access.log &lt;br /&gt;
ändern in&lt;br /&gt;
 access_log /var/log/squid3/access.log&lt;br /&gt;
&lt;br /&gt;
 sudo ln -sv /var/lib/sarg/ /var/www/&lt;br /&gt;
 sudo sarg-reports today&lt;br /&gt;
&lt;br /&gt;
==apache==&lt;br /&gt;
vi /etc/apache2/sites-available/000-default.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
        ServerAdmin technik@xinux.de&lt;br /&gt;
        DocumentRoot /var/www/sarg&lt;br /&gt;
        &amp;lt;Directory /&amp;gt;&lt;br /&gt;
                Options FollowSymLinks&lt;br /&gt;
                AllowOverride None&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
        &amp;lt;Directory /var/www/sarg/&amp;gt;&lt;br /&gt;
                AllowOverride None&lt;br /&gt;
                Options FollowSymLinks +ExecCGI MultiViews&lt;br /&gt;
                Order allow,deny&lt;br /&gt;
                Allow from all&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
        ErrorLog ${APACHE_LOG_DIR}/error-sarg.log&lt;br /&gt;
        LogLevel warn&lt;br /&gt;
        CustomLog ${APACHE_LOG_DIR}/access-sarg.log combined&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;$HOSTNAME localhost&amp;quot; &amp;gt; /etc/apache2/httpd.conf&lt;br /&gt;
 service apache2 restart&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Squid&amp;diff=4655</id>
		<title>Squid</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Squid&amp;diff=4655"/>
		<updated>2014-07-18T09:10:25Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* sarg */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Der Einsatz von Computernetzwerken in Firmen jeglicher Größe hat in den letzten&lt;br /&gt;
Jahren stark zugenommen. Dabei haben viele Firmen neben dem&lt;br /&gt;
lokalen Netz auch eine Anbindung an ein öffentliches Netz und damit meist&lt;br /&gt;
auch Zugang zum Internet.&lt;br /&gt;
&lt;br /&gt;
Damit verbindet sich ein weltweiter Ausbau dieses Netzes und ein steigendes&lt;br /&gt;
Angebot an Serviceleistungen, die über das Internet angeboten werden. Als&lt;br /&gt;
neuere Technologie sei hier nur die Internettelefonie genannt. Dies bedeutet&lt;br /&gt;
allerdings auch, daß die zu übertragenden Datenmengen ständig zunehmen,&lt;br /&gt;
was zu Engpässen und langen Übertragungszeiten führt.&lt;br /&gt;
&lt;br /&gt;
Für die Unternehmen bedeuten die zunehmenden Datenmengen aber auch&lt;br /&gt;
in erheblichem Maße zunehmende Kosten. Deshalb sind Technologien&lt;br /&gt;
gefragt, die dabei helfen können, diese Datenmengen und damit auch die&lt;br /&gt;
Kosten entsprechend einzuschränken.&lt;br /&gt;
&lt;br /&gt;
Die Anbindung an öffentliche Netze bedeutet aber auch immer ein Risiko, da&lt;br /&gt;
es selten möglich ist, eine Verbindung nur in eine Richtung aufzubauen.&lt;br /&gt;
Dadurch bieten sich Angriffspunkte, die von einigen Leuten ausgenutzt&lt;br /&gt;
werden, um an Daten zu kommen oder Schaden in dem Netz anzurichten.&lt;br /&gt;
Auch hier herrscht großer Bedarf an neuen Lösungen, um einen Kom-promiß&lt;br /&gt;
zwischen Sicherheit und Kommunikation zu finden.&lt;br /&gt;
&lt;br /&gt;
Im Internetbereich bietet sich für beide Gebiete der Einsatz von Proxy-&lt;br /&gt;
Agenten an. Proxy ist das englische Wort für Stellvertreter. Und genau diese&lt;br /&gt;
Aufgabe soll ein Proxy-Agent übernehmen.&lt;br /&gt;
&lt;br /&gt;
Gerade bei großen Netzwerken macht sich der Einsatz eines solchen Proxy-&lt;br /&gt;
Agenten positiv bemerkbar, da er neben einer Verringerung der Netzlast im&lt;br /&gt;
und zum öffentlichen Netz auch einen Performancegewinn innerhalb des&lt;br /&gt;
lokalen Netzes bewirkt.&lt;br /&gt;
&lt;br /&gt;
=Einsatz von Proxy-Servern=&lt;br /&gt;
==Einsatzgebiete und Funktionalität==&lt;br /&gt;
Mit der immer größer werdenden Vernetzung und Globalisierung wachsen&lt;br /&gt;
auch immer mehr die Probleme der Betreiber von lokalen Netzen.&lt;br /&gt;
Einerseits müssen die Kosten für den Datentransfer mit dem Internet&lt;br /&gt;
gering gehalten werden und zum anderen stellt die Anbindung an ein&lt;br /&gt;
öffentliches Netz auch immer einen Angriffspunkt dar.&lt;br /&gt;
&lt;br /&gt;
Die Gefahren sind dabei recht vielfältig. Zum einen ist es in größeren&lt;br /&gt;
Netzwerken dem Administrator meist nicht möglich, die Konfiguration aller&lt;br /&gt;
Computer ständig zu überwachen und nach Sicherheitslücken zu suchen,&lt;br /&gt;
zumal oft auch die notwendige Software recht teuer ist oder vorhandene&lt;br /&gt;
sich nicht so verhält, wie man es gerne hätte. Zweitens ist eine Verbindung&lt;br /&gt;
ins Internet auch immer mit Datentransfer in beiden Richtungen&lt;br /&gt;
verbunden, wodurch von außen ein Angreifer durch getarnte Datenpakete&lt;br /&gt;
in das lokale Netz eindringen und dort Schaden anrichten kann. Hier seien&lt;br /&gt;
Computerviren in ihren vielen Erscheinungsformen erwähnt. Zum Dritten&lt;br /&gt;
stellen die Anwender selber eine gewisse Gefahr dar, indem sie den&lt;br /&gt;
Zugang zum Internet mißbräuchlich oder unbeabsichtigt nutzen, was sehr&lt;br /&gt;
hohe Kosten verursachen kann.&lt;br /&gt;
&lt;br /&gt;
Dieses Problem läßt sich im Internet mit Hilfe eines Proxy-Servers lösen.&lt;br /&gt;
Proxy ist das englische Wort für Stellvertreter. Wie der Name schon&lt;br /&gt;
vermuten läßt, tritt ein Proxy-Server als Stellvertreter auf. Will nun ein&lt;br /&gt;
Client im lokalen Netz ein Dokument aus dem Internet anfordern, muß er&lt;br /&gt;
die Anfrage an den Proxy-Server leiten, der dann die Anfrage an den&lt;br /&gt;
Server weiterleitet. Daraus wird ersichtlich, daß ein Proxy-Server zwei&lt;br /&gt;
Gesichter haben muß. Nach innen zum Client muß er den Internetserver&lt;br /&gt;
vertreten und nach außen wiederum stellt er sich als Client dar. Dies hat&lt;br /&gt;
aus Sicht der Sicherheit noch den weiteren Vorteil, daß nach außen hin nur&lt;br /&gt;
der Proxy-Server sichtbar ist und das Netz dahinter für einen möglichen&lt;br /&gt;
Angreifer unsichtbar bleibt. Ein Proxy muß daher beide Seiten der&lt;br /&gt;
Kommunikation beherrschen. Wie so eine Kommunikation aussieht, ist in&lt;br /&gt;
 [[Image:squid1.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Caching==&lt;br /&gt;
Die Übertragungsraten im Internet sind oft sehr gering, da bestimmte Leitungen, insbesondere transkontinentale, stark belastet sind. Dadurch kann es wiederum vorkommen, daß die Leitung nach außen ausgelastet ist und durch lange Wartezeiten die Kosten der Übertragung in die Höhe gehen.&lt;br /&gt;
&lt;br /&gt;
Ein Ansatzpunkt, die Auslastung und Performance zu optimieren, ist das Zwischenspeichern von Objekten. Dies macht im Internet Sinn, da es oft vorkommt, daß ein Dokument in einem lokalen Netz mehrmals von verschiedenen Clients angefordert wird. Dieses Zwischenspeichern oder Caching von Dokumenten übernimmt ebenfalls der Proxy-Server, der deshalb auch oft als Proxy-Cache bezeichnet wird. Fordert ein Client ein Dokument von einem Server an, so leitet der Proxy die Anfrage an den Server weiter. Dieser liefert das angeforderte Dokument an den Proxy, der es dann an den Client weiter reicht und eine Kopie in seinem Speicher behält. Kommt nun von einem zweiten Client die Anfrage auf dasselbe Dokument, leitet der Proxy diese nicht an den Server weiter, sondern liefert das Dokument aus seinem Speicher direkt an den Client &lt;br /&gt;
 [[Image:squid2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Dies macht deutlich, welche Vorteile ein Proxy-Cache bietet. Zum einen wird die externe Leitung nicht unnötig mit dem mehrmaligen Holen desselben Objektes belastet, es fallen also für die Übertragung keine Kosten an, und außerdem wird die Performance für die Clients im LAN deutlich erhöht. Untersuchungen haben gezeigt, daß die Trefferquoten beim Einsatz eines Proxy-Caches bis zu 50% sind, also fast jede zweite Anfrage nach außen einspart.&lt;br /&gt;
==Sinnvolles Caching==&lt;br /&gt;
Um ein sinnvolles Caching zu erreichen, müssen gewisse Voraussetzungen gegeben sein. Diese fangen damit an, daß die Maschine, auf der ein solcher Proxy-Server läuft von der Hardware entsprechend ausgestattet sein muß. Je nach der Anzahl der Clients, die den Proxy benutzen muß die Leistungsfähigkeit des Rechners ausgelegt sein, damit auch genügend Anfragen gleichzeitig bearbeitet werden können. Um die Trefferquote auf die im Cache abgelegten Objekte zu erhöhen, sollte auch entsprechende Speicherkapazität vorhanden sein. Diese sollte auf jeden Fall mehrere Gigabyte umfassen. Da aber in der letzten Zeit die Preise für Festplattenspeicher enorm nach unten gegangen sind, sollte dies heute kein größeres Problem mehr darstellen. &lt;br /&gt;
Die Hardwarevoraussetzungen alleine machen aber noch keinen guten Proxy-Cache aus, sondern bilden nur eine solide Grundlage. Ein viel größeres Problem ist es, daß die Lebensdauer von Web-Seiten sehr unterschiedlich ist. Dadurch kann nie mit Sicherheit bestimmt werden, wann sich eine Seite ändert und dadurch veraltet ist und aus dem Cache gelöscht, bzw. beim Server neu angefordert werden soll. Es kann also immer vorkommen, daß der Cache ein veraltetes Dokument an den Client liefert. Durch verschiedene Strategien wird versucht, dieses Manko so weit wie möglich auszugleichen. &lt;br /&gt;
HTTP bietet dazu zwei Möglichkeiten: Last-Modified und Expires. Mit der Antwort des Servers werden diese Information an den Proxy mitgeteilt. Mit Last-Modified wird angezeigt, wann das Dokument das letzte mal geändert wurde. Mit der Angabe Expires erhält der Client (in diesem Falle der Proxy) Informationen, wann er das Dokument als veraltet ansehen soll und vom Server neu anfordern muß. In einem HTML-Dokument werden diese Angaben im Header generiert. Dazu wird das META-Element benutzt. Die Informationen sehen dann wie im folgenden Beispiel aus: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;META HTTP-EQUIV=“Last-Modified“ CONTENT=“Thu Jan 1 12:00:00 GMT DST 1998“&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;META HTTP-EQUIV=“Expires“ CONTENT=“Thu Dec 31 12:00:00 GMT DST 1998“&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Allein die Expires-Angabe würde reichen, um den Cache in dieser Hinsicht zu optimieren. Jedoch sind diese Angaben optional und werden sehr selten eingesetzt. Außerdem ist es oft schwierig die Lebensdauer einer Web-Seite vorauszusagen. Daher sind die meisten Web-Seiten einfach so lange gültig, bis der Autor eine neue Version erstellt. Anders sieht es bei Last-Modified aus. Diese Angabe findet sich zwar selten explizit in HTML-Dokumenten, jedoch trägt jedes Dokument als Datei einen Zeitstempel, welcher vom Server dann als Last-Modified-Header mitgeliefert wird.&lt;br /&gt;
&lt;br /&gt;
Die Proxy-Server wenden damit ein einfaches Verfahren ein, um die Lebensdauer eines Dokumentes zu „erraten“. Dabei wird zugrunde gelegt, daß die Wahrscheinlichkeit recht gering ist, daß ein recht altes Dokument in den nächsten Stunden geändert wird. Bei einem Dokument, welches dagegen erst vor kurzem geändert wurde, ist die Möglichkeit einer baldigen Aktualisierung eher vorhanden.Sofern ein Objekt keinen Expires-Header aufweist, erzeugt der Proxy-Server mit Hilfe des Last-Modified-Headers ein künstliches Verfallsdatum. Dazu bestimmt er das Alter der Datei und schlägt einen Prozentsatz dazu, der bei der Konfiguration des Proxy-Servers eingetragen wird (Direktive refresh_pattern), und holt frühestens nach Ablauf dieser Zeit von sich aus das Dokument erneut vom Server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ist beispielsweise ein Dokument zum Zeitpunkt der ersten Anfrage des Proxies bereits 150 Tage alt und der Prozentsatz aus der Konfiguration ist 20%, so vergehen weitere 30 Tage, bis der Proxy-Server eine erneute Anfrage an den Originalserver stellt. &lt;br /&gt;
&lt;br /&gt;
Um dies weiter zu optimieren wird das Dokument nur dann übertragen, wenn die Version auf dem Originalserver wirklich neuer ist, als die im Cache gespeicherte. Dazu schickt der Proxy eine Anfrage an den Originalserver, in der nur der Zeitstempel der Datei enthalten ist. Der Server vergleicht nun den empfangenen Zeitstempel der angeforderten Datei und sendet diese nur dann vollständig zurück, wenn sie jünger ist, als die im Proxy-Cache hinterlegte Kopie. Im anderen Falle erhält der Proxy nur eine kurze, aus HTTP-Headern bestehende Antwort, die signalisiert, daß keine Änderung stattgefunden hat. Der Proxy registriert dies und errechnet ein neues Verfallsdatum. &lt;br /&gt;
&lt;br /&gt;
Neben diesen statischen Objekten, die eine gewisse Lebensdauer haben, gibt es aber auch dynamische Objekte, bei denen eine Zwischenspeicherung nicht angebracht ist. Dies sind beispielsweise HTML-Seiten, die ein CGI-Skript für Datenbankabfragen enthalten oder Seiten, die eine Berechtigung verlangen.&lt;br /&gt;
&lt;br /&gt;
Es kann von beiden Seiten erzwungen werden, daß ein Objekt nicht im Cache gespeichert wird. Auf Seiten des Proxy-Servers erfolgt dies durch eine Einstellung in der Konfiguration. Damit ist es möglich, daß Seiten, die bestimmte Elemente (z.B. cgi-bin, ?, o.ä.) im URL enthalten nicht gespeichert werden. Dies kann man auch für ausgewählte Domänen angeben, was dann sinnvoll ist, wenn sich der Cache in einem Netz befindet, in dem selbst Web-Seiten angeboten werden. &lt;br /&gt;
&lt;br /&gt;
Befindet sich beispielsweise der Proxy-Cache in dem Netz der Domäne testdomain.de, womöglich sogar auf dem selben Rechner wie der Web-Server, so wäre es Unsinn, die Seiten, die dort angeboten werden in den Cache zu legen, da dies unnötig Speicher verbraucht. Von Seiten des Anbieters kann dies über den Einbau einer Authentisierung erfolgen. Dadurch wird bei der Abfrage eines Objektes nach einer Benutzerkennung und einem Paßwort gefragt. Diese Informationen und auch Seiten, die eine Identifikation verlangen, werden standardmäßig nicht vom Proxy gespeichert und müssen jedesmal neu vom Originalserver geholt werden. &lt;br /&gt;
&lt;br /&gt;
==Hierarchisches Caching==&lt;br /&gt;
Bei einigen Proxy-Servern ist es möglich, die Größe des Caches anzugeben, welcher im Hauptspeicher des Rechners liegt. Übertragene Objekte werden dort eine gewisse Zeit gehalten, um schnellere Antwortzeiten zu erreichen, falls ein Objekt innerhalb kurzer Zeit von zwei verschiedenen Clients angefordert wird. Dabei kann meist über den Parameter TTL (Time-to-Live) die Zeitdauer angegeben werden, die ein Objekt maximal in diesem Cache gehalten wird. &lt;br /&gt;
&lt;br /&gt;
Eine weitere Möglichkeit, die Performance zu erhöhen und geringere Antwortzeiten zu erhalten, ist das hierarchische Caching. Banal gesagt setzt man einen Proxy für den Proxy ein. Dadurch kann die Trefferquote auf Objekte nochmals verbessert werden. Dies macht besonders deshalb Sinn, da die Datenmengen, die über die bestehenden Leitungen übertragen werden, immer größer werden und es immer wieder zu Engpässen kommt, die lange Übertragungszeiten verursachen. Das hierarchische Caching führt dabei zu einer Entlastung. Damit die Proxy-Caches miteinander kommunizieren können, wurde ein spezielles Protokoll entwickelt, das ICP (Internet Caching Protocol). Dabei schicken Proxy-Caches für das gewünschte Objekt Anfragen an benachbarte und in der Hierarchie höher stehende Proxy-Caches. Ist das Objekt in einem dieser Caches vorhanden, wird es übertragen, andernfalls wird es vom Originalserver geholt. Da das ICP auf UDP basiert, ist es sehr schnell und bedeutet somit einen vertretbaren Performanceverlust, der durch eine erhöhte Trefferquote mehr als ausgeglichen wird.&lt;br /&gt;
 [[Image:squid3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Begriffe===&lt;br /&gt;
&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
|Neighbours	&lt;br /&gt;
|Dies sind alle Proxies, die ein Proxy kennt und mit denen er kommuniziert.&lt;br /&gt;
|-&lt;br /&gt;
|Siblings&lt;br /&gt;
|Die Geschwisterproxies. Sie liegen mit dem Proxy-Server auf einer Ebene. Siblings liefern in der Regel nur Objekte, die sie selbst im Cache haben,&lt;br /&gt;
|-&lt;br /&gt;
|Parents&lt;br /&gt;
|Übergeordnete Proxies. Sie liefern Objekte die sie selbst im Cache haben und leiten Anfragen an den Originalserver weiter.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Was ist Squid=&lt;br /&gt;
&lt;br /&gt;
Quelle: http://squid.nlanr.net/Squid/  bzw. http://www.squid-cache.org&lt;br /&gt;
&lt;br /&gt;
Squid, ein Beispiel für einen Proxy-Server mit Cache-Mechanismus, ist aus der cached Software des Harvest Forschungsprojektes hervorgegangen. Informationen über Harvest sind auf folgender Webseite zu finden: &lt;br /&gt;
&lt;br /&gt;
http://harvest.cs.colorado.edu/ &lt;br /&gt;
&lt;br /&gt;
Proxy-Systeme mit Cache-Mechanismen dienen meist der Performancesteigerung von Datentransfers, die bei langsamer Internet-Anbindung sehr groß sein kann, wenn Daten wiederholt angefordert werden. &lt;br /&gt;
&lt;br /&gt;
=Funktionsbeschreibung=&lt;br /&gt;
Squid, der Internet Object Cache, ist jedoch mehr als ein einfacher Cache-Proxy. Durch die Unterstützung von Neighbor-Caches, die entweder als parent oder sibling verwendet werden, kann man einen Cache-Verbund aufbauen, der einen hohen Prozentsatz von Anfragen beantworten kann, ohne langwierige Internet-Zugriffe zu erfordern. Dieses Verfahren verwenden zum Beispiel einige der großen Internet-Provider (wie ECRC in München), um den Datentransfer wenn möglich auf der eigenen Netzwerkstruktur abzuwickeln und damit Kosten für externe Zugriffe zu umgehen. &lt;br /&gt;
&lt;br /&gt;
Die Arbeitsweise von Squid ist einfach: &lt;br /&gt;
&lt;br /&gt;
Eine Anfrage eines Clients wird zuerst auf die Zugriffsberechtigung untersucht, so kann man z.B. gewissen Rechnern einen Zugriff auf den Proxy ganz verbieten (siehe Konfiguration). &lt;br /&gt;
&lt;br /&gt;
Es wird versucht, die gewünschten Daten im lokalen Cache zu finden. Sollte dies fehlschlagen, werden andere Proxies im Cache-Verbund (sofern vorhanden),&lt;br /&gt;
abgefragt.&lt;br /&gt;
&lt;br /&gt;
Sind die Daten vorhanden, wird ihre Aktualität geprüft. Sind die Daten veraltet, werden neue in den Cache geholt und an den Client weitergegeben. Bei aktuellen Daten wird das Neuladen übersprungen.&lt;br /&gt;
&lt;br /&gt;
Sind die Daten nicht vorhanden, werden sie in den Cache geladen und an den Client weiter-gereicht. Wie lange Daten im Cache verbleiben, ist abhängig von der Konfiguration (siehe dort)&lt;br /&gt;
&lt;br /&gt;
Eine Beschreibung der internen Abläufe wurde im Sinne der Übersichtlichkeit weggelassen.&lt;br /&gt;
&lt;br /&gt;
=Hilfe und Dokumentation zu Squid=&lt;br /&gt;
&lt;br /&gt;
Hilfe und Dokumentation im Internet:&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
|Die squid Website&lt;br /&gt;
|http://www.squid-cache.org/Doc/&lt;br /&gt;
|-&lt;br /&gt;
|squid IRC Channel&lt;br /&gt;
|Server: irc.freenode.de -Channel: #squid&lt;br /&gt;
|-&lt;br /&gt;
|Mailingliste&lt;br /&gt;
|squid-users@squid-cache.org&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Hilfe und Dokumentation im System&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
|Speziell zur Konfiguration&lt;br /&gt;
|/etc/squid/squid.conf.default&lt;br /&gt;
|-&lt;br /&gt;
|Manualpage&lt;br /&gt;
|man squid&lt;br /&gt;
|-&lt;br /&gt;
|Mitgelieferte Dokumentation&lt;br /&gt;
|/usr/share/doc/squid/&lt;br /&gt;
|}&lt;br /&gt;
=Squid unter Ubuntu=&lt;br /&gt;
==Installation==&lt;br /&gt;
 root@zero:~# apt-get install squid3 squid3-common&lt;br /&gt;
Testen ob Squid läuft &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 3128&lt;br /&gt;
 tcp        0      0 0.0.0.0:3128            0.0.0.0:*               LISTEN      10743/(squid)&lt;br /&gt;
&lt;br /&gt;
==Start Skript==&lt;br /&gt;
Das Startskript /etc/init.d/squid3 hat folgende Parameter&lt;br /&gt;
&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
|start&lt;br /&gt;
|Startet den Squid-Daemon&lt;br /&gt;
|-&lt;br /&gt;
|stop&lt;br /&gt;
|Stoppt den Squid-Daemon&lt;br /&gt;
|-&lt;br /&gt;
|reload&lt;br /&gt;
|Liest die Konfigurationsdatei neu ein&lt;br /&gt;
|-&lt;br /&gt;
|force-reload&lt;br /&gt;
|das gleiche wie reload&lt;br /&gt;
|-&lt;br /&gt;
|restart&lt;br /&gt;
|Stoppt den Deamon, falls er gestartet war und startet ihn wieder (synonym für stop und start)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Squid Parameter==&lt;br /&gt;
Gestartet werden kann Squid auch ohne das Startskript mit &lt;br /&gt;
 /usr/sbin/squid3 [-cdhvzCDFNRVYX] [-s | -l facility] [-f config-file] [-[au] port] [-k signal]&lt;br /&gt;
Flogende Parameter können eingestellt werden:&lt;br /&gt;
&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
| -a port&lt;br /&gt;
|verändert die Portnummer für HTTP-Anfragen&lt;br /&gt;
|-&lt;br /&gt;
| -d level&lt;br /&gt;
|Debug Output auf stderr ausgeben&lt;br /&gt;
|-&lt;br /&gt;
| -f file&lt;br /&gt;
|gibt eine alternative Konfigurationsdatei zu /etc/squid3/squid.conf an&lt;br /&gt;
|-&lt;br /&gt;
| -k&lt;br /&gt;
|mit dieser option können dem laufenden Squid verschiedene Steuersignale übergeben werden&lt;br /&gt;
|-&lt;br /&gt;
| -k reconfigure&lt;br /&gt;
|die Konfigurationsdatei wird nochmals eingelesen&lt;br /&gt;
|-&lt;br /&gt;
| -k rotatate&lt;br /&gt;
|schliesst und öffnet Dateien z.B. log_files&lt;br /&gt;
|-&lt;br /&gt;
| -k shutdown&lt;br /&gt;
|squid wartet kurz und beendet die Verbindung und sich selbst.Mit shutdown_zeit wird Squid nach einer angegebenen Zeit beendet.&lt;br /&gt;
|-&lt;br /&gt;
| -k interrupt&lt;br /&gt;
|sendet einen Interrupt worauf squid sofort abgebrochen wird ohne auf den Verlauf der Verbindungen zu achten.&lt;br /&gt;
|-&lt;br /&gt;
| -k kill&lt;br /&gt;
|bricht squid sofort ab, die Verbindung und die log_files bleiben geöffnet&lt;br /&gt;
|-&lt;br /&gt;
| -k check&lt;br /&gt;
|kontrolliert ob squid läuft&lt;br /&gt;
|-&lt;br /&gt;
| -s&lt;br /&gt;
|erlaubt das Aufnehmen in die syslog&lt;br /&gt;
|-&lt;br /&gt;
| -u port&lt;br /&gt;
|verändert die Portnummer des Internet Cache Protokoll ICP bzw. deaktiviert den Cache-Verbund mit der Portnummer 0&lt;br /&gt;
|-&lt;br /&gt;
| -v&lt;br /&gt;
|zeigt die aktuelle Squid Version&lt;br /&gt;
|-&lt;br /&gt;
| -z&lt;br /&gt;
|richtet cache Verzeichnisse ein&lt;br /&gt;
|-&lt;br /&gt;
| -D&lt;br /&gt;
|Squid führt normalerweise DNS Tests durch die hiermit abgestellt werden können&lt;br /&gt;
|-&lt;br /&gt;
| -F&lt;br /&gt;
|wenn die swap.logs leer sind nützt squid die vollen Systemresourcen um sich um die Anfragen zu kümmern.Dies beschleunigt den Verarbeitungsvorgang&lt;br /&gt;
|-&lt;br /&gt;
| -N&lt;br /&gt;
|der Serverprozess läuft nicht im Hintergrund&lt;br /&gt;
|-&lt;br /&gt;
| -V&lt;br /&gt;
|Aktivierung des httpd Beschleunigungsmodus&lt;br /&gt;
|-&lt;br /&gt;
| -X&lt;br /&gt;
|Full-Debug-Modus&lt;br /&gt;
|-&lt;br /&gt;
| -Y&lt;br /&gt;
|Beschleunigt den ICP austausch bei niederwertigeren Caches&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Konfiguration==&lt;br /&gt;
Squid wird mittels einer normalen Textdatei konfiguriert, die logisch in&lt;br /&gt;
mehrere Teilbereiche unterteilt werden kann. Sie ist unter&lt;br /&gt;
/etc/squid/squid.conf bzw. unter &amp;lt;prefix&amp;gt;/etc/squid.conf zu finden.&lt;br /&gt;
Bei der Installation von Squid wird eine Default-Konfiguration erzeugt, die&lt;br /&gt;
mit minimalen Änderungen bereits einen ersten Testlauf ermöglicht. Für&lt;br /&gt;
die Ausnutzung der vollen Leistung von Squid sollte jedoch eine&lt;br /&gt;
individuelle Anpassung erfolgen.&lt;br /&gt;
&lt;br /&gt;
Alle Zeilen von squid.conf, die mit # beginnen, sind Kommentare bzw.&lt;br /&gt;
nicht aktivierte Optionen. Als Minimalkonfiguration genügen die in Schnellstart beschriebenen&lt;br /&gt;
Einstellungen. Für die genaue Syntax von Optionen sei ebenfalls auf&lt;br /&gt;
squid.conf verwiesen, die folgenden Kapitel geben einen groben Überblick&lt;br /&gt;
über die Möglichkeiten von Squid.&lt;br /&gt;
&lt;br /&gt;
Da die Konfigurationsdatei in Ihrer Fülle und den ganzen Kommentaren&lt;br /&gt;
sehr verwirrend ist kann man sie zunächst einmal auf das Wichtigste reduzieren. Vorher sollte&lt;br /&gt;
die originale squid.conf gesichert werden:&lt;br /&gt;
&lt;br /&gt;
 cp squid.conf squid.conf.org&lt;br /&gt;
 grep  &amp;quot;^[^#]&amp;quot; squid.conf.org &amp;gt; squid.conf&lt;br /&gt;
&lt;br /&gt;
 acl manager proto cache_object&lt;br /&gt;
 acl localhost src 127.0.0.1/32&lt;br /&gt;
 acl to_localhost dst 127.0.0.0/8&lt;br /&gt;
 acl SSL_ports port 443&lt;br /&gt;
 acl Safe_ports port 80		# http&lt;br /&gt;
 acl Safe_ports port 21		# ftp&lt;br /&gt;
 acl Safe_ports port 443	# https&lt;br /&gt;
 acl Safe_ports port 70		# gopher &lt;br /&gt;
 acl Safe_ports port 210		# wais&lt;br /&gt;
 acl Safe_ports port 1025-65535	# unregistered ports&lt;br /&gt;
 acl Safe_ports port 280		# http-mgmt&lt;br /&gt;
 acl Safe_ports port 488		# gss-http&lt;br /&gt;
 acl Safe_ports port 591		# filemaker&lt;br /&gt;
 acl Safe_ports port 777		# multiling http&lt;br /&gt;
 acl CONNECT method CONNECT&lt;br /&gt;
 http_access allow manager localhost&lt;br /&gt;
 http_access deny manager&lt;br /&gt;
 http_access deny !Safe_ports&lt;br /&gt;
 http_access deny CONNECT !SSL_ports&lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
 http_access deny all&lt;br /&gt;
 icp_access deny all&lt;br /&gt;
 htcp_access deny all&lt;br /&gt;
 http_port 3128&lt;br /&gt;
 hierarchy_stoplist cgi-bin ?&lt;br /&gt;
 access_log /var/log/squid3/access.log squid&lt;br /&gt;
 refresh_pattern ^ftp:		1440	20%	10080&lt;br /&gt;
 refresh_pattern ^gopher:	1440	0%	1440&lt;br /&gt;
 refresh_pattern (cgi-bin|\?)	0	0%	0&lt;br /&gt;
 refresh_pattern .		0	20%	4320&lt;br /&gt;
 icp_port 3130&lt;br /&gt;
 coredump_dir /var/spool/squid3&lt;br /&gt;
&lt;br /&gt;
Zur besseren Übersicht unterteilen wir die Konfigdatei&lt;br /&gt;
&lt;br /&gt;
 #allgemeine sektion&lt;br /&gt;
 http_port 3128&lt;br /&gt;
 access_log /var/log/squid3/access.log squid&lt;br /&gt;
 icp_port 3130&lt;br /&gt;
 coredump_dir /var/spool/squid3&lt;br /&gt;
 hierarchy_stoplist cgi-bin ?&lt;br /&gt;
 &lt;br /&gt;
 #refresh&lt;br /&gt;
 refresh_pattern ^ftp:           1440    20%     10080&lt;br /&gt;
 refresh_pattern ^gopher:        1440    0%      1440&lt;br /&gt;
 refresh_pattern (cgi-bin|\?)    0       0%      0&lt;br /&gt;
 refresh_pattern .               0       20%     4320&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl manager proto cache_object&lt;br /&gt;
 acl localhost src 127.0.0.1/32&lt;br /&gt;
 acl to_localhost dst 127.0.0.0/8&lt;br /&gt;
 acl SSL_ports port 443&lt;br /&gt;
 acl Safe_ports port 21 80  443 70 210 280 488 591 777 1025-65535&lt;br /&gt;
 acl CONNECT method CONNECT&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow manager localhost&lt;br /&gt;
 http_access deny manager&lt;br /&gt;
 http_access deny !Safe_ports&lt;br /&gt;
 http_access deny CONNECT !SSL_ports&lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
 http_access deny all&lt;br /&gt;
 icp_access deny all&lt;br /&gt;
 htcp_access deny all&lt;br /&gt;
&lt;br /&gt;
===Allgemein===&lt;br /&gt;
 http_port 3128&lt;br /&gt;
Auf diesem Port lauscht der Squid auf eingehende http-Anfragen der Clients.&lt;br /&gt;
 icp_port 3130&lt;br /&gt;
Auf diesem Port lauscht Squid auf eingehende Anfragen von Nachbar-Proxys&lt;br /&gt;
 access_log /var/log/squid3/access.log squid&lt;br /&gt;
Legt Ort und Art des Loggings für eingehende Requests fest.&lt;br /&gt;
 coredump_dir /var/spool/squid3&lt;br /&gt;
Standardmäßig schreibt Squid corefiles in das Verzeichnis aus dem er gestartet wurden. Wenn mit dieser Option ein Pfad angegeben ist, wechselt Squid nach dem Start in dieses Verzeichnis und legt die corefiles in dieses Verzeichnis ab.&lt;br /&gt;
 hierarchy_stoplist cgi-bin ?&lt;br /&gt;
Hiermit wird eine Liste von Ausdrücken festgelegt, die - wenn sie in dem angefragen URL vorkommen - Squid veranlassen, die Anfrage direkt auszuführen und keine Nachbar-Proxys zu befragen&lt;br /&gt;
&lt;br /&gt;
===Refresh_pattern===&lt;br /&gt;
&lt;br /&gt;
 #refresh_pattern Suchmuster      Min     Prozent Max&lt;br /&gt;
  refresh_pattern ^ftp:           1440    20%     10080&lt;br /&gt;
  refresh_pattern ^gopher:        1440    0%      1440&lt;br /&gt;
  refresh_pattern (cgi-bin|\?)    0       0%      0&lt;br /&gt;
  refresh_pattern .               0       20%     4320&lt;br /&gt;
&lt;br /&gt;
Hier kann der Refresh-Algorithmus von squid für die eigenen Bedürfnisse optimiert werden. &lt;br /&gt;
&lt;br /&gt;
MIN ist die Zeit in Minuten,die ein Objekt ohne explizite Ablaufzeit als Aktuell betrachtet wird. Der ermpfohlene Wert ist 0, jeder höhere Wert könnte dazu führen, dass dynmaische Anwendungen irrtümlich gecachtt&lt;br /&gt;
werden, wenn der Webdesigner keine entsprechenden Gegenaktionen getroffen hat. &lt;br /&gt;
&lt;br /&gt;
PROZENT ist der Prozentsatz eines Objektalters (Zeit seit der letzten&lt;br /&gt;
Modifikation) wo ein Objekt ohne explizite Ablaufzeit als aktuell betrachtet&lt;br /&gt;
wird. &lt;br /&gt;
&lt;br /&gt;
MAX ist ein oberes Limit wie lange Objekte ohne explizite Ablaufzeiten als aktuell betrachtet werden.&lt;br /&gt;
&lt;br /&gt;
 refresh_pattern -i&lt;br /&gt;
Wie refresh_pattern, nur, daß Musterangaben die Groß-/Kleinschreibung&lt;br /&gt;
ignorieren.&lt;br /&gt;
&lt;br /&gt;
===ACL===&lt;br /&gt;
Unter ACL versteht man access control lists, also Filter, die den Zugriff auf den Proxy regeln. Eine ACL muss immer zuerst definiert werden und ein Name gegeben werden. ACLs werden in der Form&lt;br /&gt;
 acl ''aclname acltyp argument'' ...&lt;br /&gt;
 acl ''aclname acltyp &amp;quot;datei&amp;quot;''&lt;br /&gt;
definiert. &lt;br /&gt;
&lt;br /&gt;
====Beispielkonfiguration====&lt;br /&gt;
In der Standardkonfiguration sind 6 ACLs definiert:&lt;br /&gt;
&lt;br /&gt;
Standard- acl für Management-Dienste&lt;br /&gt;
 acl manager proto cache_object &lt;br /&gt;
&lt;br /&gt;
Alles was von localhost (also lokal über das loopback-device) kommt&lt;br /&gt;
 acl localhost src 127.0.0.1/32&lt;br /&gt;
&lt;br /&gt;
Alles was an localhost geht&lt;br /&gt;
 acl to_localhost dst 127.0.0.0/8&lt;br /&gt;
&lt;br /&gt;
acl für SSL_ports (Standard https-port)&lt;br /&gt;
 acl SSL_ports port 443&lt;br /&gt;
&lt;br /&gt;
acl für &amp;quot;sichere Ports&amp;quot;&lt;br /&gt;
 acl Safe_ports port 80 (21,443,70,...)&lt;br /&gt;
&lt;br /&gt;
 acl CONNECT method CONNECT&lt;br /&gt;
&lt;br /&gt;
Nachdem die ACLs definiert sind, müssen diese in Regeln angewendet werden. Die Syntax lautet:&lt;br /&gt;
 ''regeltyp'' allow|deny [!''acl1''] [!''acl2'']&lt;br /&gt;
Eine Regel besagt also, dass ein Zugriff, der auf eine bestimmte Access-List zutrifft, entweder erlaubt (allow) oder verboten wird (deny).&lt;br /&gt;
&lt;br /&gt;
In der Beispielkonfiguration werden http_access und icp-, htcp_access als Regeltyp angewendet, zB. &lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
wendet die Access-Liste 'localhost' an, um den lokalen Zugriff vom Proxy-Server auf http-seiten zu regeln.&lt;br /&gt;
icp_access und htcp_access bzw. icp und htcp sind Protokolle für den Datenaustausch zwischen zwei Servern.&lt;br /&gt;
&lt;br /&gt;
====Eigene Erweiterungen====&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration können wir jetzt erweitern und auf die Bedürfnisse des jeweiligen Netzwerks anpassen. Als Beispiel verwenden wir ein Netzwerk, welches 2 Subnetze enthält, die über einen Proxy, welcher in einer DMZ steht, Verbindungen zum Internet aufbaut. Das 192.168.241.0/24-Netz soll ein privilegiertes Netz sein, d.h Die Clients haben generell mehr Rechte um auf das Internet zuzugreifen, als das andere Netz (192.168.242.0/24).&lt;br /&gt;
&lt;br /&gt;
Als Erstes wollen wir das eine Netz vorläufig komplett für den HTTP-Verkehr freischalten:&lt;br /&gt;
&lt;br /&gt;
ACL für das Netz aufstellen:&lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl privilegiert src 192.168.241.0/24&lt;br /&gt;
ACL anwenden und das Netz freischalten:&lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow privilegiert&lt;br /&gt;
Die beiden Konfigurationsanweisungen müssen nun an korrekter Stelle in die squid.conf eingetragen werden. Bei der ACL ist das nicht so relevant, jedoch zur Übersichtlichkeit wird man sie in den Block mit den anderen ACLs einfügen. Bei der Access-Regel dagegen ist es dagegen von entscheidender Bedeutung, wo die Anweisung steht, da die Konfigurationsdatei von oben nach unten abgearbeitet wird und die erste Regel auf die eine Anfrage passt, wird ausgeführt.&lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow manager localhost&lt;br /&gt;
 http_access deny manager&lt;br /&gt;
 http_access deny !Safe_ports&lt;br /&gt;
 http_access deny CONNECT !SSL_ports&lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
 http_access deny all&lt;br /&gt;
 '''http_access allow privilegiert'''&lt;br /&gt;
Wird die Regel wie hier angezeigt eingefügt, hat das keine Auswirkung auf den Zugriff, da die Regel &amp;quot;http_access deny all&amp;quot; vorher steht, welche auf alles zutrifft und so die Anfrage abweist. Also müssen wir die Regel weiter oben einfügen.&lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow manager localhost&lt;br /&gt;
 http_access deny manager&lt;br /&gt;
 http_access deny !Safe_ports&lt;br /&gt;
 http_access deny CONNECT !SSL_ports&lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
 '''http_access allow privilegiert'''&lt;br /&gt;
 http_access deny all&lt;br /&gt;
&lt;br /&gt;
Das unprivilegierte Netz soll nun auch Zugriff auf das Internet erhalten, jedoch nur in eingeschränktem Maße. Es soll nur auf den für den Arbeitsablauf notwendigen Webseiten Zugriff erhalten. Dies wird so realisiert, dass eine Datei mit Regex-URLs eingerichtet wird, auf die zugegriffen werden darf.&lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl unprivilegiert src 192.168.242.0/24&lt;br /&gt;
 acl gute_domains url_regex -i &amp;quot;/etc/squid3/gute_domains&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow unprivilegiert gute_domains&lt;br /&gt;
Diese Regel hat 2 acls als Argumente. Diese werden in den Access-Regeln durch ein UND verknüpft, d.h. die Regel matcht nur wenn beide acls zutreffen.&lt;br /&gt;
&lt;br /&gt;
Nun wird eine Regel erstellt, damit URLs, auf die niemand zugreifen darf, im gesamten Netzwerk, also in den beiden Subnetzen, verboten wird.&lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl lan src 192.168.241.0/24 192.168.242.0/24&lt;br /&gt;
 acl schlechte_domains url_regex -i &amp;quot;/etc/squid3/schlechte_domains&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access deny lan schlechte_domains&lt;br /&gt;
&lt;br /&gt;
 root@zero:/etc/squid3# cat schlechte_domains &lt;br /&gt;
 ^http://(www.)?pornographische-seite1.de&lt;br /&gt;
 ^http://(www.)?boese-seite2.com&lt;br /&gt;
 root@zero:/etc/squid3# &lt;br /&gt;
&lt;br /&gt;
Hier wird eine ACL erstellt, die 2 Argumente besitzt. Diese werden, im Gegensatz zu den Access-Regeln, mit einem ODER verknüpft, sodass diese Regel matcht, falls eine Anfrage der beiden Subnetze als Source mit einer URL aus der Datei &amp;quot;schlechte_domains&amp;quot; kommt. In Aussagenlogikform:&lt;br /&gt;
&lt;br /&gt;
lan = ( privilegiert ODER unprivilegiert )&lt;br /&gt;
acl = lan UND schlechte_domains&lt;br /&gt;
&lt;br /&gt;
Jetzt wollen wir z.B den Nutzern im unprivilegierten Netz auch die Möglichkeit geben, während der Mittagspause frei im Internet surfen zu können. Dazu benutzt man den acl-Typ &amp;quot;time&amp;quot;:&lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl mittag time 12:00-12:30&lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow unprivilegiert mittag&lt;br /&gt;
Hier wird eine acl mittag definiert, die einen Zeitbereich annimmt. Diese wird mit der acl unprivilegiert in einer Regel verknüpft.&lt;br /&gt;
&lt;br /&gt;
===Authentifizierung===&lt;br /&gt;
&lt;br /&gt;
====Passwortdatei====&lt;br /&gt;
Mit dem Programm htpasswd (ruft Systemfunktion crypt auf )das bei jeder Distribution dabei sein sollte können ein Passwortdatei erzeugen. &lt;br /&gt;
 root@zero:/etc/squid3# htpasswd -c passwd xinux&lt;br /&gt;
 New password: &lt;br /&gt;
 Re-type new password: &lt;br /&gt;
 Adding password for user xinux&lt;br /&gt;
 root@zero:/etc/squid3# cat passwd &lt;br /&gt;
 xinux:5AZTQ/gAwdlOU&lt;br /&gt;
 root@zero:/etc/squid3#&lt;br /&gt;
&lt;br /&gt;
====Konfigurationsdatei====&lt;br /&gt;
 #auth-sektion&lt;br /&gt;
 auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/passwd&lt;br /&gt;
 auth_param basic children 5&lt;br /&gt;
 auth_param basic concurrency 0&lt;br /&gt;
 auth_param basic realm Squid proxy-caching web server&lt;br /&gt;
 auth_param basic casesensitive off&lt;br /&gt;
 &lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl autorisiert proxy_auth REQUIRED&lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow unprivilegiert autorisiert&lt;br /&gt;
In der Konfigurationsdatei wird nun ein Programm angegeben, das für die Authentifizierung aufgerufen wird. Dieses liest Daten aus der zuvor angefertigten Passwortdatei. Dann muss eine acl mit dem typ &amp;quot;proxy_auth&amp;quot; erstellt werden, welche in einer Regel angewendet wird. So kann hier auch ein Nutzer aus dem unprivilegierten Netz Zugang zum Internet bekommen, sollte er sich authentifizieren können.&lt;br /&gt;
&lt;br /&gt;
===Caching===&lt;br /&gt;
Squid benutzt den Hauptspeicher und ein Verzeichnis, um Anfragen zu cachen und diese bei erneuten Anfragen direkt auszuliefern.&lt;br /&gt;
====Anlegen des Caches====&lt;br /&gt;
 root@zero:/etc/squid3# cd /var/cache/&lt;br /&gt;
 root@zero:/var/cache# mkdir squid&lt;br /&gt;
 root@zero:/var/cache# chown proxy:proxy squid/&lt;br /&gt;
 root@zero:/var/cache# ls -l | grep squid&lt;br /&gt;
 drwxr-xr-x  2 proxy    proxy    4096 2009-07-10 09:53 squid&lt;br /&gt;
Hier wird ein Verzeichnis angelegt, welches dem Benutzer proxy beschreibbar sein, da der Squid nicht unter root, sondern unter einem unprivilegierten Benutzer läuft.&lt;br /&gt;
 #cache-sektion&lt;br /&gt;
 cache_dir ufs /var/cache/squid 100 16 256&lt;br /&gt;
cache_dir ''typ verzeichnis MB L1 L2''&lt;br /&gt;
&lt;br /&gt;
In der Konfigurationsdatei wird dieses Verzeichnis angegeben. Der Typ &amp;quot;ufs&amp;quot; ist das Standardspeichersystem des Squid. Es können aber auch andere Typen wie aufs oder diskd benutzt werden. Die Optionen hinter dem Verzeichnisnamen, geben Speicherplatz und Verzeichnisstruktur an. MB gibt an, wieviel Speicherplatz Squid in diesem Verzeichnis benutzt (es können auch mehrere Verzeichnisse zur Speicherverteilung auf verschiedene Partitionen angegeben werden), L1 gibt an wieviele First-Level-Unterverzeichnisse angelegt werden, L2 gibt an, wieviele Second-Level-Unterverzeichnisse in jedem First-Level-Verzeichnis angelegt werden (Baum-Struktur).&lt;br /&gt;
 root@zero:/var/cache# /etc/init.d/squid3 restart&lt;br /&gt;
 * Restarting Squid HTTP Proxy 3.0 squid3&lt;br /&gt;
 *   Waiting...                                                                  &lt;br /&gt;
 * ...                                                                          &lt;br /&gt;
 * ...                                                                          &lt;br /&gt;
 * ...                                                                          &lt;br /&gt;
 * ...                                                                          &lt;br /&gt;
 * ...                                                                         &lt;br /&gt;
 * ...                                                                  [ OK ] &lt;br /&gt;
 * Creating Squid HTTP Proxy 3.0 cache structure&lt;br /&gt;
 2009/07/10 09:59:24| Creating Swap Directories&lt;br /&gt;
 2009/07/10 09:59:24| /var/cache/squid exists&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/00&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/01&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/02&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/03&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/04&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/05&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/06&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/07&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/08&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/09&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0A&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0B&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0C &lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0D&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0E&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0F&lt;br /&gt;
                                                                        [ OK ]&lt;br /&gt;
 root@zero:/var/cache/squid# ls&lt;br /&gt;
 00  01  02  03  04  05  06  07  08  09  0A  0B  0C  0D  0E  0F  swap.state&lt;br /&gt;
 root@zero:/var/cache/squid# cd 00&lt;br /&gt;
 root@zero:/var/cache/squid/00# ls&lt;br /&gt;
 00  0E  1C  2A  38  46  54  62  70  7E  8C  9A  A8  B6  C4  D2  E0  EE  FC&lt;br /&gt;
 01  0F  1D  2B  39  47  55  63  71  7F  8D  9B  A9  B7  C5  D3  E1  EF  FD&lt;br /&gt;
 02  10  1E  2C  3A  48  56  64  72  80  8E  9C  AA  B8  C6  D4  E2  F0  FE&lt;br /&gt;
 03  11  1F  2D  3B  49  57  65  73  81  8F  9D  AB  B9  C7  D5  E3  F1  FF&lt;br /&gt;
 04  12  20  2E  3C  4A  58  66  74  82  90  9E  AC  BA  C8  D6  E4  F2&lt;br /&gt;
 05  13  21  2F  3D  4B  59  67  75  83  91  9F  AD  BB  C9  D7  E5  F3&lt;br /&gt;
 06  14  22  30  3E  4C  5A  68  76  84  92  A0  AE  BC  CA  D8  E6  F4&lt;br /&gt;
 07  15  23  31  3F  4D  5B  69  77  85  93  A1  AF  BD  CB  D9  E7  F5&lt;br /&gt;
 08  16  24  32  40  4E  5C  6A  78  86  94  A2  B0  BE  CC  DA  E8  F6&lt;br /&gt;
 09  17  25  33  41  4F  5D  6B  79  87  95  A3  B1  BF  CD  DB  E9  F7&lt;br /&gt;
 0A  18  26  34  42  50  5E  6C  7A  88  96  A4  B2  C0  CE  DC  EA  F8&lt;br /&gt;
 0B  19  27  35  43  51  5F  6D  7B  89  97  A5  B3  C1  CF  DD  EB  F9&lt;br /&gt;
 0C  1A  28  36  44  52  60  6E  7C  8A  98  A6  B4  C2  D0  DE  EC  FA&lt;br /&gt;
 0D  1B  29  37  45  53  61  6F  7D  8B  99  A7  B5  C3  D1  DF  ED  FB&lt;br /&gt;
 root@zero:/var/cache/squid/00#&lt;br /&gt;
Hier sieht man, das Squid im Verzeichnis /var/cache/squid 16 Verzeichnisse von 00-0F und in jedem Unterverzeichnis weitere 256 Verzeichnisse 00-FF angelegt hat.&lt;br /&gt;
&lt;br /&gt;
====Konfiguration====&lt;br /&gt;
Nun können weitere Optionen in der Konfigurationsdatei angegeben werden.&lt;br /&gt;
 cache_mem 32 MB&lt;br /&gt;
Gibt an, wieviel Hauptspeicher zum Cachen für Squid verwendet wird&lt;br /&gt;
 cache_swap_low 90&lt;br /&gt;
 cache_swap_high 95&lt;br /&gt;
Diese beiden Optionen geben den unteren und oberen Threshold für die Füllung des Caches an in % an. Wird die untere Marke überschritten, beginnt Squid entsprechend der cache_replacement_policy Objekte aus dem Cache zu entfernen. Wird die obere Marke erreicht, erfolgt die Räumung aggressiver. Wird die untere Marke unterschritten, wird der Prozess beendet.&lt;br /&gt;
 minimum_object_size 0 KB&lt;br /&gt;
 maximum_object_size 8192 KB&lt;br /&gt;
minimum_object_size gibt an, wie groß ein Objekt mindestens sein muss, um im Cache gespeichert zu werden, maximum_object_size die maximale Größe.&lt;br /&gt;
 maximum_object_size_in_memory 64 KB&lt;br /&gt;
maximum_object_size_in_memory gibt an, wie groß ein Objekt höchstens sein darf, um im Hauptspeicher gecacht zu werden.&lt;br /&gt;
 ipcache_size 1024&lt;br /&gt;
Hier wird die maximale Anzahl der IP-Cache Einträge bestimmt.&lt;br /&gt;
 ipcache_low 90&lt;br /&gt;
 ipcache_high 95&lt;br /&gt;
Thresholds der IP-Cache-Einträge, entsprechend zu cache_swap_low und _high.&lt;br /&gt;
 fqdncache_size 1024&lt;br /&gt;
Maximale Anzahl der FQDN-Cache-Einträge.&lt;br /&gt;
 cache_replacement_policy lru&lt;br /&gt;
 memory_replacement_policy lru&lt;br /&gt;
Diese Einträge bestimmen, mit welchem Verfahren Objekte aus dem Cache entfernt werden. lru steht für least recently used, d.h. Squid löscht bei diesem Verfahren die Einträge, die am längsten nicht mehr angefragt wurden. Es gibt außerdem:&lt;br /&gt;
&lt;br /&gt;
heap GDFS (Greed-Dual Size Frequency): Optimiert die Objekt-Hitrate. Kleine häufig angefragte Objekte werden auf Kosten großer, weniger häufig angefragter Objekte im Cache gehalten. Damit wird die Warscheinlichkeit eines Objekt-Hits gesteigert.&lt;br /&gt;
&lt;br /&gt;
heap LFUDA (Least frequently used with dynamic aging): Optimiert die Byte-Hitragte. Häufig angefrage Objekte werden im Cache gehalten, slten angefragte Objekte werden freigegeben, unabhängig von deren Größe. Damit wird ein häufiger angefrages, großes Objekt ggf. auf Kosten vieler kleiner Objekte im Cache gehalten.&lt;br /&gt;
&lt;br /&gt;
heap lru (erweitertes lru-Verfahren).&lt;br /&gt;
&lt;br /&gt;
===Delay-Pools===&lt;br /&gt;
Mit Delay-Pools kann man eine Bandbreitensteuerung über Squid implementieren.&lt;br /&gt;
 #delay_pools-sektion&lt;br /&gt;
 delay_pools 2&lt;br /&gt;
Hier wird die Anzahl der Pools angegeben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #delay_claas ''pool'' ''class''&lt;br /&gt;
 delay_class 1 1&lt;br /&gt;
 delay_class 2 2&lt;br /&gt;
Jeder der Pools wird einer Klasse zugeordnet. Es gibt insgesamt 5 Klassen, die verschiedene Methoden zur Bandbreitensteuerung anbieten.&lt;br /&gt;
&lt;br /&gt;
Klasse 1: Die gesamte Bandbreite wird über ein Parameterpaar gesteuert.&lt;br /&gt;
&lt;br /&gt;
Klasse 2: Es werden 2 Parameterpaare angegeben. Das erste bestimmt die gesamte Bandbreite, das zweite bestimmt die individuelle Bandbreite eines Hosts anhand des letzten Bytes der IP-Adresse.&lt;br /&gt;
&lt;br /&gt;
Klasse 3: Zusätzlich zu den 2 Parametepaaren in Klasse 2 gibt es noch ein drittes Paar, welches die Bandbreite eines ganzen Klasse-C-Netzes beschränkt.&lt;br /&gt;
&lt;br /&gt;
Klasse 4: Wie Klasse 3, jedoch gibt es noch ein zusätzliches Parameterpaar, welches anhand des Benutzernamens die Bandbreite beschränkt. Diese Limitierung tritt nur in Kraft, sollte ein Request eine Benutzerauthentifizierung erfordert haben (siehe Authentifizerung).&lt;br /&gt;
&lt;br /&gt;
Klasse 5: Die Bandbreitenregulierung erfolgt nicht wie in Klasse 2-4 über IP-Adressen oder Benutzer, sondern über ein Tag, welches angegeben wird und einen Request identifiziert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 delay_parameters 1 10000/20000&lt;br /&gt;
 delay_parameters 2 20000/40000 1000/2000&lt;br /&gt;
 delay_access 1 allow privilegiert&lt;br /&gt;
 delay_access 2 allow unprivilegiert&lt;br /&gt;
 delay_access 1 deny all&lt;br /&gt;
 delay_access 2 deny all&lt;br /&gt;
&lt;br /&gt;
Nun müssen den Delay-Pools noch die Parameter übergeben werden. Der Delay-Pool mit Klasse 1 erhält ein Parameterpaar. Dieses Parameterpaar setzt sich zusammen aus restore- und einem maximum-Wert. Der restore-Wert bestimmt die eigentliche Bandbreite in Byte/Sekunde, der maximum-Wert bestimmt die maximale Datenmenge in Byte, die auf einmal übertragen wird.&lt;br /&gt;
&lt;br /&gt;
Die mit maximum definierte Datenmenge wird ganz normal über das Netz übertragen, ggf. mit der vollen zur Verfügung stehenden Bandbreite und ohne weitere Begrenzung. Anhand des eigentlichen Bandbreitenwertes restore berechnet Squid, wie lange er das nächste Paket verzögern muss, um auf die durchschnittliche, mit restore vorgegebene Bandbreite zu kommen. So wird die vorgegebene Nettobandbreite im Mittel durchaus gehalten, ein einzelnes Datenpaket kann jedoch deutlich schneller zum Client transportiert werden.&lt;br /&gt;
&lt;br /&gt;
Mit delay-access wird nun festelegt, welche Pools auf welche acl angewendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=ads mitglied=&lt;br /&gt;
*http://blog.stefan-betz.net/2009/1/7/hochzeit:-squid-3-und-active-directory/&lt;br /&gt;
*http://www.woy.de/?p=29&lt;br /&gt;
&lt;br /&gt;
=sarg=&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install sarg apache2&lt;br /&gt;
 sudo cp /etc/sarg/sarg.conf /etc/sarg/sarg.conf.old&lt;br /&gt;
 sudo cat /etc/sarg/sarg.conf.old | grep -v ^# | grep -v ^$ &amp;gt; /etc/sarg/sarg.conf&lt;br /&gt;
&lt;br /&gt;
Beim Benutzen von '''squid3''' muss der log-Pfad in der sarg.conf angepasst werden!&lt;br /&gt;
 access_log /var/log/squid/access.log &lt;br /&gt;
ändern in&lt;br /&gt;
 access_log /var/log/squid3/access.log&lt;br /&gt;
&lt;br /&gt;
 sudo ln -sv /var/lib/sarg/ /var/www/&lt;br /&gt;
 sudo sarg-reports today&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==apache==&lt;br /&gt;
vi /etc/apache2/sites-available/000-default.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
        ServerAdmin technik@xinux.de&lt;br /&gt;
        DocumentRoot /var/www/sarg&lt;br /&gt;
        &amp;lt;Directory /&amp;gt;&lt;br /&gt;
                Options FollowSymLinks&lt;br /&gt;
                AllowOverride None&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
        &amp;lt;Directory /var/www/sarg/&amp;gt;&lt;br /&gt;
                AllowOverride None&lt;br /&gt;
                Options FollowSymLinks +ExecCGI MultiViews&lt;br /&gt;
                Order allow,deny&lt;br /&gt;
                Allow from all&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
        ErrorLog ${APACHE_LOG_DIR}/error-sarg.log&lt;br /&gt;
        LogLevel warn&lt;br /&gt;
        CustomLog ${APACHE_LOG_DIR}/access-sarg.log combined&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 service apache2 restart&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Squid&amp;diff=4654</id>
		<title>Squid</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Squid&amp;diff=4654"/>
		<updated>2014-07-18T09:10:07Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* sarg */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Der Einsatz von Computernetzwerken in Firmen jeglicher Größe hat in den letzten&lt;br /&gt;
Jahren stark zugenommen. Dabei haben viele Firmen neben dem&lt;br /&gt;
lokalen Netz auch eine Anbindung an ein öffentliches Netz und damit meist&lt;br /&gt;
auch Zugang zum Internet.&lt;br /&gt;
&lt;br /&gt;
Damit verbindet sich ein weltweiter Ausbau dieses Netzes und ein steigendes&lt;br /&gt;
Angebot an Serviceleistungen, die über das Internet angeboten werden. Als&lt;br /&gt;
neuere Technologie sei hier nur die Internettelefonie genannt. Dies bedeutet&lt;br /&gt;
allerdings auch, daß die zu übertragenden Datenmengen ständig zunehmen,&lt;br /&gt;
was zu Engpässen und langen Übertragungszeiten führt.&lt;br /&gt;
&lt;br /&gt;
Für die Unternehmen bedeuten die zunehmenden Datenmengen aber auch&lt;br /&gt;
in erheblichem Maße zunehmende Kosten. Deshalb sind Technologien&lt;br /&gt;
gefragt, die dabei helfen können, diese Datenmengen und damit auch die&lt;br /&gt;
Kosten entsprechend einzuschränken.&lt;br /&gt;
&lt;br /&gt;
Die Anbindung an öffentliche Netze bedeutet aber auch immer ein Risiko, da&lt;br /&gt;
es selten möglich ist, eine Verbindung nur in eine Richtung aufzubauen.&lt;br /&gt;
Dadurch bieten sich Angriffspunkte, die von einigen Leuten ausgenutzt&lt;br /&gt;
werden, um an Daten zu kommen oder Schaden in dem Netz anzurichten.&lt;br /&gt;
Auch hier herrscht großer Bedarf an neuen Lösungen, um einen Kom-promiß&lt;br /&gt;
zwischen Sicherheit und Kommunikation zu finden.&lt;br /&gt;
&lt;br /&gt;
Im Internetbereich bietet sich für beide Gebiete der Einsatz von Proxy-&lt;br /&gt;
Agenten an. Proxy ist das englische Wort für Stellvertreter. Und genau diese&lt;br /&gt;
Aufgabe soll ein Proxy-Agent übernehmen.&lt;br /&gt;
&lt;br /&gt;
Gerade bei großen Netzwerken macht sich der Einsatz eines solchen Proxy-&lt;br /&gt;
Agenten positiv bemerkbar, da er neben einer Verringerung der Netzlast im&lt;br /&gt;
und zum öffentlichen Netz auch einen Performancegewinn innerhalb des&lt;br /&gt;
lokalen Netzes bewirkt.&lt;br /&gt;
&lt;br /&gt;
=Einsatz von Proxy-Servern=&lt;br /&gt;
==Einsatzgebiete und Funktionalität==&lt;br /&gt;
Mit der immer größer werdenden Vernetzung und Globalisierung wachsen&lt;br /&gt;
auch immer mehr die Probleme der Betreiber von lokalen Netzen.&lt;br /&gt;
Einerseits müssen die Kosten für den Datentransfer mit dem Internet&lt;br /&gt;
gering gehalten werden und zum anderen stellt die Anbindung an ein&lt;br /&gt;
öffentliches Netz auch immer einen Angriffspunkt dar.&lt;br /&gt;
&lt;br /&gt;
Die Gefahren sind dabei recht vielfältig. Zum einen ist es in größeren&lt;br /&gt;
Netzwerken dem Administrator meist nicht möglich, die Konfiguration aller&lt;br /&gt;
Computer ständig zu überwachen und nach Sicherheitslücken zu suchen,&lt;br /&gt;
zumal oft auch die notwendige Software recht teuer ist oder vorhandene&lt;br /&gt;
sich nicht so verhält, wie man es gerne hätte. Zweitens ist eine Verbindung&lt;br /&gt;
ins Internet auch immer mit Datentransfer in beiden Richtungen&lt;br /&gt;
verbunden, wodurch von außen ein Angreifer durch getarnte Datenpakete&lt;br /&gt;
in das lokale Netz eindringen und dort Schaden anrichten kann. Hier seien&lt;br /&gt;
Computerviren in ihren vielen Erscheinungsformen erwähnt. Zum Dritten&lt;br /&gt;
stellen die Anwender selber eine gewisse Gefahr dar, indem sie den&lt;br /&gt;
Zugang zum Internet mißbräuchlich oder unbeabsichtigt nutzen, was sehr&lt;br /&gt;
hohe Kosten verursachen kann.&lt;br /&gt;
&lt;br /&gt;
Dieses Problem läßt sich im Internet mit Hilfe eines Proxy-Servers lösen.&lt;br /&gt;
Proxy ist das englische Wort für Stellvertreter. Wie der Name schon&lt;br /&gt;
vermuten läßt, tritt ein Proxy-Server als Stellvertreter auf. Will nun ein&lt;br /&gt;
Client im lokalen Netz ein Dokument aus dem Internet anfordern, muß er&lt;br /&gt;
die Anfrage an den Proxy-Server leiten, der dann die Anfrage an den&lt;br /&gt;
Server weiterleitet. Daraus wird ersichtlich, daß ein Proxy-Server zwei&lt;br /&gt;
Gesichter haben muß. Nach innen zum Client muß er den Internetserver&lt;br /&gt;
vertreten und nach außen wiederum stellt er sich als Client dar. Dies hat&lt;br /&gt;
aus Sicht der Sicherheit noch den weiteren Vorteil, daß nach außen hin nur&lt;br /&gt;
der Proxy-Server sichtbar ist und das Netz dahinter für einen möglichen&lt;br /&gt;
Angreifer unsichtbar bleibt. Ein Proxy muß daher beide Seiten der&lt;br /&gt;
Kommunikation beherrschen. Wie so eine Kommunikation aussieht, ist in&lt;br /&gt;
 [[Image:squid1.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Caching==&lt;br /&gt;
Die Übertragungsraten im Internet sind oft sehr gering, da bestimmte Leitungen, insbesondere transkontinentale, stark belastet sind. Dadurch kann es wiederum vorkommen, daß die Leitung nach außen ausgelastet ist und durch lange Wartezeiten die Kosten der Übertragung in die Höhe gehen.&lt;br /&gt;
&lt;br /&gt;
Ein Ansatzpunkt, die Auslastung und Performance zu optimieren, ist das Zwischenspeichern von Objekten. Dies macht im Internet Sinn, da es oft vorkommt, daß ein Dokument in einem lokalen Netz mehrmals von verschiedenen Clients angefordert wird. Dieses Zwischenspeichern oder Caching von Dokumenten übernimmt ebenfalls der Proxy-Server, der deshalb auch oft als Proxy-Cache bezeichnet wird. Fordert ein Client ein Dokument von einem Server an, so leitet der Proxy die Anfrage an den Server weiter. Dieser liefert das angeforderte Dokument an den Proxy, der es dann an den Client weiter reicht und eine Kopie in seinem Speicher behält. Kommt nun von einem zweiten Client die Anfrage auf dasselbe Dokument, leitet der Proxy diese nicht an den Server weiter, sondern liefert das Dokument aus seinem Speicher direkt an den Client &lt;br /&gt;
 [[Image:squid2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Dies macht deutlich, welche Vorteile ein Proxy-Cache bietet. Zum einen wird die externe Leitung nicht unnötig mit dem mehrmaligen Holen desselben Objektes belastet, es fallen also für die Übertragung keine Kosten an, und außerdem wird die Performance für die Clients im LAN deutlich erhöht. Untersuchungen haben gezeigt, daß die Trefferquoten beim Einsatz eines Proxy-Caches bis zu 50% sind, also fast jede zweite Anfrage nach außen einspart.&lt;br /&gt;
==Sinnvolles Caching==&lt;br /&gt;
Um ein sinnvolles Caching zu erreichen, müssen gewisse Voraussetzungen gegeben sein. Diese fangen damit an, daß die Maschine, auf der ein solcher Proxy-Server läuft von der Hardware entsprechend ausgestattet sein muß. Je nach der Anzahl der Clients, die den Proxy benutzen muß die Leistungsfähigkeit des Rechners ausgelegt sein, damit auch genügend Anfragen gleichzeitig bearbeitet werden können. Um die Trefferquote auf die im Cache abgelegten Objekte zu erhöhen, sollte auch entsprechende Speicherkapazität vorhanden sein. Diese sollte auf jeden Fall mehrere Gigabyte umfassen. Da aber in der letzten Zeit die Preise für Festplattenspeicher enorm nach unten gegangen sind, sollte dies heute kein größeres Problem mehr darstellen. &lt;br /&gt;
Die Hardwarevoraussetzungen alleine machen aber noch keinen guten Proxy-Cache aus, sondern bilden nur eine solide Grundlage. Ein viel größeres Problem ist es, daß die Lebensdauer von Web-Seiten sehr unterschiedlich ist. Dadurch kann nie mit Sicherheit bestimmt werden, wann sich eine Seite ändert und dadurch veraltet ist und aus dem Cache gelöscht, bzw. beim Server neu angefordert werden soll. Es kann also immer vorkommen, daß der Cache ein veraltetes Dokument an den Client liefert. Durch verschiedene Strategien wird versucht, dieses Manko so weit wie möglich auszugleichen. &lt;br /&gt;
HTTP bietet dazu zwei Möglichkeiten: Last-Modified und Expires. Mit der Antwort des Servers werden diese Information an den Proxy mitgeteilt. Mit Last-Modified wird angezeigt, wann das Dokument das letzte mal geändert wurde. Mit der Angabe Expires erhält der Client (in diesem Falle der Proxy) Informationen, wann er das Dokument als veraltet ansehen soll und vom Server neu anfordern muß. In einem HTML-Dokument werden diese Angaben im Header generiert. Dazu wird das META-Element benutzt. Die Informationen sehen dann wie im folgenden Beispiel aus: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;META HTTP-EQUIV=“Last-Modified“ CONTENT=“Thu Jan 1 12:00:00 GMT DST 1998“&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;META HTTP-EQUIV=“Expires“ CONTENT=“Thu Dec 31 12:00:00 GMT DST 1998“&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Allein die Expires-Angabe würde reichen, um den Cache in dieser Hinsicht zu optimieren. Jedoch sind diese Angaben optional und werden sehr selten eingesetzt. Außerdem ist es oft schwierig die Lebensdauer einer Web-Seite vorauszusagen. Daher sind die meisten Web-Seiten einfach so lange gültig, bis der Autor eine neue Version erstellt. Anders sieht es bei Last-Modified aus. Diese Angabe findet sich zwar selten explizit in HTML-Dokumenten, jedoch trägt jedes Dokument als Datei einen Zeitstempel, welcher vom Server dann als Last-Modified-Header mitgeliefert wird.&lt;br /&gt;
&lt;br /&gt;
Die Proxy-Server wenden damit ein einfaches Verfahren ein, um die Lebensdauer eines Dokumentes zu „erraten“. Dabei wird zugrunde gelegt, daß die Wahrscheinlichkeit recht gering ist, daß ein recht altes Dokument in den nächsten Stunden geändert wird. Bei einem Dokument, welches dagegen erst vor kurzem geändert wurde, ist die Möglichkeit einer baldigen Aktualisierung eher vorhanden.Sofern ein Objekt keinen Expires-Header aufweist, erzeugt der Proxy-Server mit Hilfe des Last-Modified-Headers ein künstliches Verfallsdatum. Dazu bestimmt er das Alter der Datei und schlägt einen Prozentsatz dazu, der bei der Konfiguration des Proxy-Servers eingetragen wird (Direktive refresh_pattern), und holt frühestens nach Ablauf dieser Zeit von sich aus das Dokument erneut vom Server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ist beispielsweise ein Dokument zum Zeitpunkt der ersten Anfrage des Proxies bereits 150 Tage alt und der Prozentsatz aus der Konfiguration ist 20%, so vergehen weitere 30 Tage, bis der Proxy-Server eine erneute Anfrage an den Originalserver stellt. &lt;br /&gt;
&lt;br /&gt;
Um dies weiter zu optimieren wird das Dokument nur dann übertragen, wenn die Version auf dem Originalserver wirklich neuer ist, als die im Cache gespeicherte. Dazu schickt der Proxy eine Anfrage an den Originalserver, in der nur der Zeitstempel der Datei enthalten ist. Der Server vergleicht nun den empfangenen Zeitstempel der angeforderten Datei und sendet diese nur dann vollständig zurück, wenn sie jünger ist, als die im Proxy-Cache hinterlegte Kopie. Im anderen Falle erhält der Proxy nur eine kurze, aus HTTP-Headern bestehende Antwort, die signalisiert, daß keine Änderung stattgefunden hat. Der Proxy registriert dies und errechnet ein neues Verfallsdatum. &lt;br /&gt;
&lt;br /&gt;
Neben diesen statischen Objekten, die eine gewisse Lebensdauer haben, gibt es aber auch dynamische Objekte, bei denen eine Zwischenspeicherung nicht angebracht ist. Dies sind beispielsweise HTML-Seiten, die ein CGI-Skript für Datenbankabfragen enthalten oder Seiten, die eine Berechtigung verlangen.&lt;br /&gt;
&lt;br /&gt;
Es kann von beiden Seiten erzwungen werden, daß ein Objekt nicht im Cache gespeichert wird. Auf Seiten des Proxy-Servers erfolgt dies durch eine Einstellung in der Konfiguration. Damit ist es möglich, daß Seiten, die bestimmte Elemente (z.B. cgi-bin, ?, o.ä.) im URL enthalten nicht gespeichert werden. Dies kann man auch für ausgewählte Domänen angeben, was dann sinnvoll ist, wenn sich der Cache in einem Netz befindet, in dem selbst Web-Seiten angeboten werden. &lt;br /&gt;
&lt;br /&gt;
Befindet sich beispielsweise der Proxy-Cache in dem Netz der Domäne testdomain.de, womöglich sogar auf dem selben Rechner wie der Web-Server, so wäre es Unsinn, die Seiten, die dort angeboten werden in den Cache zu legen, da dies unnötig Speicher verbraucht. Von Seiten des Anbieters kann dies über den Einbau einer Authentisierung erfolgen. Dadurch wird bei der Abfrage eines Objektes nach einer Benutzerkennung und einem Paßwort gefragt. Diese Informationen und auch Seiten, die eine Identifikation verlangen, werden standardmäßig nicht vom Proxy gespeichert und müssen jedesmal neu vom Originalserver geholt werden. &lt;br /&gt;
&lt;br /&gt;
==Hierarchisches Caching==&lt;br /&gt;
Bei einigen Proxy-Servern ist es möglich, die Größe des Caches anzugeben, welcher im Hauptspeicher des Rechners liegt. Übertragene Objekte werden dort eine gewisse Zeit gehalten, um schnellere Antwortzeiten zu erreichen, falls ein Objekt innerhalb kurzer Zeit von zwei verschiedenen Clients angefordert wird. Dabei kann meist über den Parameter TTL (Time-to-Live) die Zeitdauer angegeben werden, die ein Objekt maximal in diesem Cache gehalten wird. &lt;br /&gt;
&lt;br /&gt;
Eine weitere Möglichkeit, die Performance zu erhöhen und geringere Antwortzeiten zu erhalten, ist das hierarchische Caching. Banal gesagt setzt man einen Proxy für den Proxy ein. Dadurch kann die Trefferquote auf Objekte nochmals verbessert werden. Dies macht besonders deshalb Sinn, da die Datenmengen, die über die bestehenden Leitungen übertragen werden, immer größer werden und es immer wieder zu Engpässen kommt, die lange Übertragungszeiten verursachen. Das hierarchische Caching führt dabei zu einer Entlastung. Damit die Proxy-Caches miteinander kommunizieren können, wurde ein spezielles Protokoll entwickelt, das ICP (Internet Caching Protocol). Dabei schicken Proxy-Caches für das gewünschte Objekt Anfragen an benachbarte und in der Hierarchie höher stehende Proxy-Caches. Ist das Objekt in einem dieser Caches vorhanden, wird es übertragen, andernfalls wird es vom Originalserver geholt. Da das ICP auf UDP basiert, ist es sehr schnell und bedeutet somit einen vertretbaren Performanceverlust, der durch eine erhöhte Trefferquote mehr als ausgeglichen wird.&lt;br /&gt;
 [[Image:squid3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Begriffe===&lt;br /&gt;
&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
|Neighbours	&lt;br /&gt;
|Dies sind alle Proxies, die ein Proxy kennt und mit denen er kommuniziert.&lt;br /&gt;
|-&lt;br /&gt;
|Siblings&lt;br /&gt;
|Die Geschwisterproxies. Sie liegen mit dem Proxy-Server auf einer Ebene. Siblings liefern in der Regel nur Objekte, die sie selbst im Cache haben,&lt;br /&gt;
|-&lt;br /&gt;
|Parents&lt;br /&gt;
|Übergeordnete Proxies. Sie liefern Objekte die sie selbst im Cache haben und leiten Anfragen an den Originalserver weiter.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Was ist Squid=&lt;br /&gt;
&lt;br /&gt;
Quelle: http://squid.nlanr.net/Squid/  bzw. http://www.squid-cache.org&lt;br /&gt;
&lt;br /&gt;
Squid, ein Beispiel für einen Proxy-Server mit Cache-Mechanismus, ist aus der cached Software des Harvest Forschungsprojektes hervorgegangen. Informationen über Harvest sind auf folgender Webseite zu finden: &lt;br /&gt;
&lt;br /&gt;
http://harvest.cs.colorado.edu/ &lt;br /&gt;
&lt;br /&gt;
Proxy-Systeme mit Cache-Mechanismen dienen meist der Performancesteigerung von Datentransfers, die bei langsamer Internet-Anbindung sehr groß sein kann, wenn Daten wiederholt angefordert werden. &lt;br /&gt;
&lt;br /&gt;
=Funktionsbeschreibung=&lt;br /&gt;
Squid, der Internet Object Cache, ist jedoch mehr als ein einfacher Cache-Proxy. Durch die Unterstützung von Neighbor-Caches, die entweder als parent oder sibling verwendet werden, kann man einen Cache-Verbund aufbauen, der einen hohen Prozentsatz von Anfragen beantworten kann, ohne langwierige Internet-Zugriffe zu erfordern. Dieses Verfahren verwenden zum Beispiel einige der großen Internet-Provider (wie ECRC in München), um den Datentransfer wenn möglich auf der eigenen Netzwerkstruktur abzuwickeln und damit Kosten für externe Zugriffe zu umgehen. &lt;br /&gt;
&lt;br /&gt;
Die Arbeitsweise von Squid ist einfach: &lt;br /&gt;
&lt;br /&gt;
Eine Anfrage eines Clients wird zuerst auf die Zugriffsberechtigung untersucht, so kann man z.B. gewissen Rechnern einen Zugriff auf den Proxy ganz verbieten (siehe Konfiguration). &lt;br /&gt;
&lt;br /&gt;
Es wird versucht, die gewünschten Daten im lokalen Cache zu finden. Sollte dies fehlschlagen, werden andere Proxies im Cache-Verbund (sofern vorhanden),&lt;br /&gt;
abgefragt.&lt;br /&gt;
&lt;br /&gt;
Sind die Daten vorhanden, wird ihre Aktualität geprüft. Sind die Daten veraltet, werden neue in den Cache geholt und an den Client weitergegeben. Bei aktuellen Daten wird das Neuladen übersprungen.&lt;br /&gt;
&lt;br /&gt;
Sind die Daten nicht vorhanden, werden sie in den Cache geladen und an den Client weiter-gereicht. Wie lange Daten im Cache verbleiben, ist abhängig von der Konfiguration (siehe dort)&lt;br /&gt;
&lt;br /&gt;
Eine Beschreibung der internen Abläufe wurde im Sinne der Übersichtlichkeit weggelassen.&lt;br /&gt;
&lt;br /&gt;
=Hilfe und Dokumentation zu Squid=&lt;br /&gt;
&lt;br /&gt;
Hilfe und Dokumentation im Internet:&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
|Die squid Website&lt;br /&gt;
|http://www.squid-cache.org/Doc/&lt;br /&gt;
|-&lt;br /&gt;
|squid IRC Channel&lt;br /&gt;
|Server: irc.freenode.de -Channel: #squid&lt;br /&gt;
|-&lt;br /&gt;
|Mailingliste&lt;br /&gt;
|squid-users@squid-cache.org&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Hilfe und Dokumentation im System&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
|Speziell zur Konfiguration&lt;br /&gt;
|/etc/squid/squid.conf.default&lt;br /&gt;
|-&lt;br /&gt;
|Manualpage&lt;br /&gt;
|man squid&lt;br /&gt;
|-&lt;br /&gt;
|Mitgelieferte Dokumentation&lt;br /&gt;
|/usr/share/doc/squid/&lt;br /&gt;
|}&lt;br /&gt;
=Squid unter Ubuntu=&lt;br /&gt;
==Installation==&lt;br /&gt;
 root@zero:~# apt-get install squid3 squid3-common&lt;br /&gt;
Testen ob Squid läuft &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 3128&lt;br /&gt;
 tcp        0      0 0.0.0.0:3128            0.0.0.0:*               LISTEN      10743/(squid)&lt;br /&gt;
&lt;br /&gt;
==Start Skript==&lt;br /&gt;
Das Startskript /etc/init.d/squid3 hat folgende Parameter&lt;br /&gt;
&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
|start&lt;br /&gt;
|Startet den Squid-Daemon&lt;br /&gt;
|-&lt;br /&gt;
|stop&lt;br /&gt;
|Stoppt den Squid-Daemon&lt;br /&gt;
|-&lt;br /&gt;
|reload&lt;br /&gt;
|Liest die Konfigurationsdatei neu ein&lt;br /&gt;
|-&lt;br /&gt;
|force-reload&lt;br /&gt;
|das gleiche wie reload&lt;br /&gt;
|-&lt;br /&gt;
|restart&lt;br /&gt;
|Stoppt den Deamon, falls er gestartet war und startet ihn wieder (synonym für stop und start)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Squid Parameter==&lt;br /&gt;
Gestartet werden kann Squid auch ohne das Startskript mit &lt;br /&gt;
 /usr/sbin/squid3 [-cdhvzCDFNRVYX] [-s | -l facility] [-f config-file] [-[au] port] [-k signal]&lt;br /&gt;
Flogende Parameter können eingestellt werden:&lt;br /&gt;
&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
| -a port&lt;br /&gt;
|verändert die Portnummer für HTTP-Anfragen&lt;br /&gt;
|-&lt;br /&gt;
| -d level&lt;br /&gt;
|Debug Output auf stderr ausgeben&lt;br /&gt;
|-&lt;br /&gt;
| -f file&lt;br /&gt;
|gibt eine alternative Konfigurationsdatei zu /etc/squid3/squid.conf an&lt;br /&gt;
|-&lt;br /&gt;
| -k&lt;br /&gt;
|mit dieser option können dem laufenden Squid verschiedene Steuersignale übergeben werden&lt;br /&gt;
|-&lt;br /&gt;
| -k reconfigure&lt;br /&gt;
|die Konfigurationsdatei wird nochmals eingelesen&lt;br /&gt;
|-&lt;br /&gt;
| -k rotatate&lt;br /&gt;
|schliesst und öffnet Dateien z.B. log_files&lt;br /&gt;
|-&lt;br /&gt;
| -k shutdown&lt;br /&gt;
|squid wartet kurz und beendet die Verbindung und sich selbst.Mit shutdown_zeit wird Squid nach einer angegebenen Zeit beendet.&lt;br /&gt;
|-&lt;br /&gt;
| -k interrupt&lt;br /&gt;
|sendet einen Interrupt worauf squid sofort abgebrochen wird ohne auf den Verlauf der Verbindungen zu achten.&lt;br /&gt;
|-&lt;br /&gt;
| -k kill&lt;br /&gt;
|bricht squid sofort ab, die Verbindung und die log_files bleiben geöffnet&lt;br /&gt;
|-&lt;br /&gt;
| -k check&lt;br /&gt;
|kontrolliert ob squid läuft&lt;br /&gt;
|-&lt;br /&gt;
| -s&lt;br /&gt;
|erlaubt das Aufnehmen in die syslog&lt;br /&gt;
|-&lt;br /&gt;
| -u port&lt;br /&gt;
|verändert die Portnummer des Internet Cache Protokoll ICP bzw. deaktiviert den Cache-Verbund mit der Portnummer 0&lt;br /&gt;
|-&lt;br /&gt;
| -v&lt;br /&gt;
|zeigt die aktuelle Squid Version&lt;br /&gt;
|-&lt;br /&gt;
| -z&lt;br /&gt;
|richtet cache Verzeichnisse ein&lt;br /&gt;
|-&lt;br /&gt;
| -D&lt;br /&gt;
|Squid führt normalerweise DNS Tests durch die hiermit abgestellt werden können&lt;br /&gt;
|-&lt;br /&gt;
| -F&lt;br /&gt;
|wenn die swap.logs leer sind nützt squid die vollen Systemresourcen um sich um die Anfragen zu kümmern.Dies beschleunigt den Verarbeitungsvorgang&lt;br /&gt;
|-&lt;br /&gt;
| -N&lt;br /&gt;
|der Serverprozess läuft nicht im Hintergrund&lt;br /&gt;
|-&lt;br /&gt;
| -V&lt;br /&gt;
|Aktivierung des httpd Beschleunigungsmodus&lt;br /&gt;
|-&lt;br /&gt;
| -X&lt;br /&gt;
|Full-Debug-Modus&lt;br /&gt;
|-&lt;br /&gt;
| -Y&lt;br /&gt;
|Beschleunigt den ICP austausch bei niederwertigeren Caches&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Konfiguration==&lt;br /&gt;
Squid wird mittels einer normalen Textdatei konfiguriert, die logisch in&lt;br /&gt;
mehrere Teilbereiche unterteilt werden kann. Sie ist unter&lt;br /&gt;
/etc/squid/squid.conf bzw. unter &amp;lt;prefix&amp;gt;/etc/squid.conf zu finden.&lt;br /&gt;
Bei der Installation von Squid wird eine Default-Konfiguration erzeugt, die&lt;br /&gt;
mit minimalen Änderungen bereits einen ersten Testlauf ermöglicht. Für&lt;br /&gt;
die Ausnutzung der vollen Leistung von Squid sollte jedoch eine&lt;br /&gt;
individuelle Anpassung erfolgen.&lt;br /&gt;
&lt;br /&gt;
Alle Zeilen von squid.conf, die mit # beginnen, sind Kommentare bzw.&lt;br /&gt;
nicht aktivierte Optionen. Als Minimalkonfiguration genügen die in Schnellstart beschriebenen&lt;br /&gt;
Einstellungen. Für die genaue Syntax von Optionen sei ebenfalls auf&lt;br /&gt;
squid.conf verwiesen, die folgenden Kapitel geben einen groben Überblick&lt;br /&gt;
über die Möglichkeiten von Squid.&lt;br /&gt;
&lt;br /&gt;
Da die Konfigurationsdatei in Ihrer Fülle und den ganzen Kommentaren&lt;br /&gt;
sehr verwirrend ist kann man sie zunächst einmal auf das Wichtigste reduzieren. Vorher sollte&lt;br /&gt;
die originale squid.conf gesichert werden:&lt;br /&gt;
&lt;br /&gt;
 cp squid.conf squid.conf.org&lt;br /&gt;
 grep  &amp;quot;^[^#]&amp;quot; squid.conf.org &amp;gt; squid.conf&lt;br /&gt;
&lt;br /&gt;
 acl manager proto cache_object&lt;br /&gt;
 acl localhost src 127.0.0.1/32&lt;br /&gt;
 acl to_localhost dst 127.0.0.0/8&lt;br /&gt;
 acl SSL_ports port 443&lt;br /&gt;
 acl Safe_ports port 80		# http&lt;br /&gt;
 acl Safe_ports port 21		# ftp&lt;br /&gt;
 acl Safe_ports port 443	# https&lt;br /&gt;
 acl Safe_ports port 70		# gopher &lt;br /&gt;
 acl Safe_ports port 210		# wais&lt;br /&gt;
 acl Safe_ports port 1025-65535	# unregistered ports&lt;br /&gt;
 acl Safe_ports port 280		# http-mgmt&lt;br /&gt;
 acl Safe_ports port 488		# gss-http&lt;br /&gt;
 acl Safe_ports port 591		# filemaker&lt;br /&gt;
 acl Safe_ports port 777		# multiling http&lt;br /&gt;
 acl CONNECT method CONNECT&lt;br /&gt;
 http_access allow manager localhost&lt;br /&gt;
 http_access deny manager&lt;br /&gt;
 http_access deny !Safe_ports&lt;br /&gt;
 http_access deny CONNECT !SSL_ports&lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
 http_access deny all&lt;br /&gt;
 icp_access deny all&lt;br /&gt;
 htcp_access deny all&lt;br /&gt;
 http_port 3128&lt;br /&gt;
 hierarchy_stoplist cgi-bin ?&lt;br /&gt;
 access_log /var/log/squid3/access.log squid&lt;br /&gt;
 refresh_pattern ^ftp:		1440	20%	10080&lt;br /&gt;
 refresh_pattern ^gopher:	1440	0%	1440&lt;br /&gt;
 refresh_pattern (cgi-bin|\?)	0	0%	0&lt;br /&gt;
 refresh_pattern .		0	20%	4320&lt;br /&gt;
 icp_port 3130&lt;br /&gt;
 coredump_dir /var/spool/squid3&lt;br /&gt;
&lt;br /&gt;
Zur besseren Übersicht unterteilen wir die Konfigdatei&lt;br /&gt;
&lt;br /&gt;
 #allgemeine sektion&lt;br /&gt;
 http_port 3128&lt;br /&gt;
 access_log /var/log/squid3/access.log squid&lt;br /&gt;
 icp_port 3130&lt;br /&gt;
 coredump_dir /var/spool/squid3&lt;br /&gt;
 hierarchy_stoplist cgi-bin ?&lt;br /&gt;
 &lt;br /&gt;
 #refresh&lt;br /&gt;
 refresh_pattern ^ftp:           1440    20%     10080&lt;br /&gt;
 refresh_pattern ^gopher:        1440    0%      1440&lt;br /&gt;
 refresh_pattern (cgi-bin|\?)    0       0%      0&lt;br /&gt;
 refresh_pattern .               0       20%     4320&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl manager proto cache_object&lt;br /&gt;
 acl localhost src 127.0.0.1/32&lt;br /&gt;
 acl to_localhost dst 127.0.0.0/8&lt;br /&gt;
 acl SSL_ports port 443&lt;br /&gt;
 acl Safe_ports port 21 80  443 70 210 280 488 591 777 1025-65535&lt;br /&gt;
 acl CONNECT method CONNECT&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow manager localhost&lt;br /&gt;
 http_access deny manager&lt;br /&gt;
 http_access deny !Safe_ports&lt;br /&gt;
 http_access deny CONNECT !SSL_ports&lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
 http_access deny all&lt;br /&gt;
 icp_access deny all&lt;br /&gt;
 htcp_access deny all&lt;br /&gt;
&lt;br /&gt;
===Allgemein===&lt;br /&gt;
 http_port 3128&lt;br /&gt;
Auf diesem Port lauscht der Squid auf eingehende http-Anfragen der Clients.&lt;br /&gt;
 icp_port 3130&lt;br /&gt;
Auf diesem Port lauscht Squid auf eingehende Anfragen von Nachbar-Proxys&lt;br /&gt;
 access_log /var/log/squid3/access.log squid&lt;br /&gt;
Legt Ort und Art des Loggings für eingehende Requests fest.&lt;br /&gt;
 coredump_dir /var/spool/squid3&lt;br /&gt;
Standardmäßig schreibt Squid corefiles in das Verzeichnis aus dem er gestartet wurden. Wenn mit dieser Option ein Pfad angegeben ist, wechselt Squid nach dem Start in dieses Verzeichnis und legt die corefiles in dieses Verzeichnis ab.&lt;br /&gt;
 hierarchy_stoplist cgi-bin ?&lt;br /&gt;
Hiermit wird eine Liste von Ausdrücken festgelegt, die - wenn sie in dem angefragen URL vorkommen - Squid veranlassen, die Anfrage direkt auszuführen und keine Nachbar-Proxys zu befragen&lt;br /&gt;
&lt;br /&gt;
===Refresh_pattern===&lt;br /&gt;
&lt;br /&gt;
 #refresh_pattern Suchmuster      Min     Prozent Max&lt;br /&gt;
  refresh_pattern ^ftp:           1440    20%     10080&lt;br /&gt;
  refresh_pattern ^gopher:        1440    0%      1440&lt;br /&gt;
  refresh_pattern (cgi-bin|\?)    0       0%      0&lt;br /&gt;
  refresh_pattern .               0       20%     4320&lt;br /&gt;
&lt;br /&gt;
Hier kann der Refresh-Algorithmus von squid für die eigenen Bedürfnisse optimiert werden. &lt;br /&gt;
&lt;br /&gt;
MIN ist die Zeit in Minuten,die ein Objekt ohne explizite Ablaufzeit als Aktuell betrachtet wird. Der ermpfohlene Wert ist 0, jeder höhere Wert könnte dazu führen, dass dynmaische Anwendungen irrtümlich gecachtt&lt;br /&gt;
werden, wenn der Webdesigner keine entsprechenden Gegenaktionen getroffen hat. &lt;br /&gt;
&lt;br /&gt;
PROZENT ist der Prozentsatz eines Objektalters (Zeit seit der letzten&lt;br /&gt;
Modifikation) wo ein Objekt ohne explizite Ablaufzeit als aktuell betrachtet&lt;br /&gt;
wird. &lt;br /&gt;
&lt;br /&gt;
MAX ist ein oberes Limit wie lange Objekte ohne explizite Ablaufzeiten als aktuell betrachtet werden.&lt;br /&gt;
&lt;br /&gt;
 refresh_pattern -i&lt;br /&gt;
Wie refresh_pattern, nur, daß Musterangaben die Groß-/Kleinschreibung&lt;br /&gt;
ignorieren.&lt;br /&gt;
&lt;br /&gt;
===ACL===&lt;br /&gt;
Unter ACL versteht man access control lists, also Filter, die den Zugriff auf den Proxy regeln. Eine ACL muss immer zuerst definiert werden und ein Name gegeben werden. ACLs werden in der Form&lt;br /&gt;
 acl ''aclname acltyp argument'' ...&lt;br /&gt;
 acl ''aclname acltyp &amp;quot;datei&amp;quot;''&lt;br /&gt;
definiert. &lt;br /&gt;
&lt;br /&gt;
====Beispielkonfiguration====&lt;br /&gt;
In der Standardkonfiguration sind 6 ACLs definiert:&lt;br /&gt;
&lt;br /&gt;
Standard- acl für Management-Dienste&lt;br /&gt;
 acl manager proto cache_object &lt;br /&gt;
&lt;br /&gt;
Alles was von localhost (also lokal über das loopback-device) kommt&lt;br /&gt;
 acl localhost src 127.0.0.1/32&lt;br /&gt;
&lt;br /&gt;
Alles was an localhost geht&lt;br /&gt;
 acl to_localhost dst 127.0.0.0/8&lt;br /&gt;
&lt;br /&gt;
acl für SSL_ports (Standard https-port)&lt;br /&gt;
 acl SSL_ports port 443&lt;br /&gt;
&lt;br /&gt;
acl für &amp;quot;sichere Ports&amp;quot;&lt;br /&gt;
 acl Safe_ports port 80 (21,443,70,...)&lt;br /&gt;
&lt;br /&gt;
 acl CONNECT method CONNECT&lt;br /&gt;
&lt;br /&gt;
Nachdem die ACLs definiert sind, müssen diese in Regeln angewendet werden. Die Syntax lautet:&lt;br /&gt;
 ''regeltyp'' allow|deny [!''acl1''] [!''acl2'']&lt;br /&gt;
Eine Regel besagt also, dass ein Zugriff, der auf eine bestimmte Access-List zutrifft, entweder erlaubt (allow) oder verboten wird (deny).&lt;br /&gt;
&lt;br /&gt;
In der Beispielkonfiguration werden http_access und icp-, htcp_access als Regeltyp angewendet, zB. &lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
wendet die Access-Liste 'localhost' an, um den lokalen Zugriff vom Proxy-Server auf http-seiten zu regeln.&lt;br /&gt;
icp_access und htcp_access bzw. icp und htcp sind Protokolle für den Datenaustausch zwischen zwei Servern.&lt;br /&gt;
&lt;br /&gt;
====Eigene Erweiterungen====&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration können wir jetzt erweitern und auf die Bedürfnisse des jeweiligen Netzwerks anpassen. Als Beispiel verwenden wir ein Netzwerk, welches 2 Subnetze enthält, die über einen Proxy, welcher in einer DMZ steht, Verbindungen zum Internet aufbaut. Das 192.168.241.0/24-Netz soll ein privilegiertes Netz sein, d.h Die Clients haben generell mehr Rechte um auf das Internet zuzugreifen, als das andere Netz (192.168.242.0/24).&lt;br /&gt;
&lt;br /&gt;
Als Erstes wollen wir das eine Netz vorläufig komplett für den HTTP-Verkehr freischalten:&lt;br /&gt;
&lt;br /&gt;
ACL für das Netz aufstellen:&lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl privilegiert src 192.168.241.0/24&lt;br /&gt;
ACL anwenden und das Netz freischalten:&lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow privilegiert&lt;br /&gt;
Die beiden Konfigurationsanweisungen müssen nun an korrekter Stelle in die squid.conf eingetragen werden. Bei der ACL ist das nicht so relevant, jedoch zur Übersichtlichkeit wird man sie in den Block mit den anderen ACLs einfügen. Bei der Access-Regel dagegen ist es dagegen von entscheidender Bedeutung, wo die Anweisung steht, da die Konfigurationsdatei von oben nach unten abgearbeitet wird und die erste Regel auf die eine Anfrage passt, wird ausgeführt.&lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow manager localhost&lt;br /&gt;
 http_access deny manager&lt;br /&gt;
 http_access deny !Safe_ports&lt;br /&gt;
 http_access deny CONNECT !SSL_ports&lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
 http_access deny all&lt;br /&gt;
 '''http_access allow privilegiert'''&lt;br /&gt;
Wird die Regel wie hier angezeigt eingefügt, hat das keine Auswirkung auf den Zugriff, da die Regel &amp;quot;http_access deny all&amp;quot; vorher steht, welche auf alles zutrifft und so die Anfrage abweist. Also müssen wir die Regel weiter oben einfügen.&lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow manager localhost&lt;br /&gt;
 http_access deny manager&lt;br /&gt;
 http_access deny !Safe_ports&lt;br /&gt;
 http_access deny CONNECT !SSL_ports&lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
 '''http_access allow privilegiert'''&lt;br /&gt;
 http_access deny all&lt;br /&gt;
&lt;br /&gt;
Das unprivilegierte Netz soll nun auch Zugriff auf das Internet erhalten, jedoch nur in eingeschränktem Maße. Es soll nur auf den für den Arbeitsablauf notwendigen Webseiten Zugriff erhalten. Dies wird so realisiert, dass eine Datei mit Regex-URLs eingerichtet wird, auf die zugegriffen werden darf.&lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl unprivilegiert src 192.168.242.0/24&lt;br /&gt;
 acl gute_domains url_regex -i &amp;quot;/etc/squid3/gute_domains&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow unprivilegiert gute_domains&lt;br /&gt;
Diese Regel hat 2 acls als Argumente. Diese werden in den Access-Regeln durch ein UND verknüpft, d.h. die Regel matcht nur wenn beide acls zutreffen.&lt;br /&gt;
&lt;br /&gt;
Nun wird eine Regel erstellt, damit URLs, auf die niemand zugreifen darf, im gesamten Netzwerk, also in den beiden Subnetzen, verboten wird.&lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl lan src 192.168.241.0/24 192.168.242.0/24&lt;br /&gt;
 acl schlechte_domains url_regex -i &amp;quot;/etc/squid3/schlechte_domains&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access deny lan schlechte_domains&lt;br /&gt;
&lt;br /&gt;
 root@zero:/etc/squid3# cat schlechte_domains &lt;br /&gt;
 ^http://(www.)?pornographische-seite1.de&lt;br /&gt;
 ^http://(www.)?boese-seite2.com&lt;br /&gt;
 root@zero:/etc/squid3# &lt;br /&gt;
&lt;br /&gt;
Hier wird eine ACL erstellt, die 2 Argumente besitzt. Diese werden, im Gegensatz zu den Access-Regeln, mit einem ODER verknüpft, sodass diese Regel matcht, falls eine Anfrage der beiden Subnetze als Source mit einer URL aus der Datei &amp;quot;schlechte_domains&amp;quot; kommt. In Aussagenlogikform:&lt;br /&gt;
&lt;br /&gt;
lan = ( privilegiert ODER unprivilegiert )&lt;br /&gt;
acl = lan UND schlechte_domains&lt;br /&gt;
&lt;br /&gt;
Jetzt wollen wir z.B den Nutzern im unprivilegierten Netz auch die Möglichkeit geben, während der Mittagspause frei im Internet surfen zu können. Dazu benutzt man den acl-Typ &amp;quot;time&amp;quot;:&lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl mittag time 12:00-12:30&lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow unprivilegiert mittag&lt;br /&gt;
Hier wird eine acl mittag definiert, die einen Zeitbereich annimmt. Diese wird mit der acl unprivilegiert in einer Regel verknüpft.&lt;br /&gt;
&lt;br /&gt;
===Authentifizierung===&lt;br /&gt;
&lt;br /&gt;
====Passwortdatei====&lt;br /&gt;
Mit dem Programm htpasswd (ruft Systemfunktion crypt auf )das bei jeder Distribution dabei sein sollte können ein Passwortdatei erzeugen. &lt;br /&gt;
 root@zero:/etc/squid3# htpasswd -c passwd xinux&lt;br /&gt;
 New password: &lt;br /&gt;
 Re-type new password: &lt;br /&gt;
 Adding password for user xinux&lt;br /&gt;
 root@zero:/etc/squid3# cat passwd &lt;br /&gt;
 xinux:5AZTQ/gAwdlOU&lt;br /&gt;
 root@zero:/etc/squid3#&lt;br /&gt;
&lt;br /&gt;
====Konfigurationsdatei====&lt;br /&gt;
 #auth-sektion&lt;br /&gt;
 auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/passwd&lt;br /&gt;
 auth_param basic children 5&lt;br /&gt;
 auth_param basic concurrency 0&lt;br /&gt;
 auth_param basic realm Squid proxy-caching web server&lt;br /&gt;
 auth_param basic casesensitive off&lt;br /&gt;
 &lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl autorisiert proxy_auth REQUIRED&lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow unprivilegiert autorisiert&lt;br /&gt;
In der Konfigurationsdatei wird nun ein Programm angegeben, das für die Authentifizierung aufgerufen wird. Dieses liest Daten aus der zuvor angefertigten Passwortdatei. Dann muss eine acl mit dem typ &amp;quot;proxy_auth&amp;quot; erstellt werden, welche in einer Regel angewendet wird. So kann hier auch ein Nutzer aus dem unprivilegierten Netz Zugang zum Internet bekommen, sollte er sich authentifizieren können.&lt;br /&gt;
&lt;br /&gt;
===Caching===&lt;br /&gt;
Squid benutzt den Hauptspeicher und ein Verzeichnis, um Anfragen zu cachen und diese bei erneuten Anfragen direkt auszuliefern.&lt;br /&gt;
====Anlegen des Caches====&lt;br /&gt;
 root@zero:/etc/squid3# cd /var/cache/&lt;br /&gt;
 root@zero:/var/cache# mkdir squid&lt;br /&gt;
 root@zero:/var/cache# chown proxy:proxy squid/&lt;br /&gt;
 root@zero:/var/cache# ls -l | grep squid&lt;br /&gt;
 drwxr-xr-x  2 proxy    proxy    4096 2009-07-10 09:53 squid&lt;br /&gt;
Hier wird ein Verzeichnis angelegt, welches dem Benutzer proxy beschreibbar sein, da der Squid nicht unter root, sondern unter einem unprivilegierten Benutzer läuft.&lt;br /&gt;
 #cache-sektion&lt;br /&gt;
 cache_dir ufs /var/cache/squid 100 16 256&lt;br /&gt;
cache_dir ''typ verzeichnis MB L1 L2''&lt;br /&gt;
&lt;br /&gt;
In der Konfigurationsdatei wird dieses Verzeichnis angegeben. Der Typ &amp;quot;ufs&amp;quot; ist das Standardspeichersystem des Squid. Es können aber auch andere Typen wie aufs oder diskd benutzt werden. Die Optionen hinter dem Verzeichnisnamen, geben Speicherplatz und Verzeichnisstruktur an. MB gibt an, wieviel Speicherplatz Squid in diesem Verzeichnis benutzt (es können auch mehrere Verzeichnisse zur Speicherverteilung auf verschiedene Partitionen angegeben werden), L1 gibt an wieviele First-Level-Unterverzeichnisse angelegt werden, L2 gibt an, wieviele Second-Level-Unterverzeichnisse in jedem First-Level-Verzeichnis angelegt werden (Baum-Struktur).&lt;br /&gt;
 root@zero:/var/cache# /etc/init.d/squid3 restart&lt;br /&gt;
 * Restarting Squid HTTP Proxy 3.0 squid3&lt;br /&gt;
 *   Waiting...                                                                  &lt;br /&gt;
 * ...                                                                          &lt;br /&gt;
 * ...                                                                          &lt;br /&gt;
 * ...                                                                          &lt;br /&gt;
 * ...                                                                          &lt;br /&gt;
 * ...                                                                         &lt;br /&gt;
 * ...                                                                  [ OK ] &lt;br /&gt;
 * Creating Squid HTTP Proxy 3.0 cache structure&lt;br /&gt;
 2009/07/10 09:59:24| Creating Swap Directories&lt;br /&gt;
 2009/07/10 09:59:24| /var/cache/squid exists&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/00&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/01&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/02&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/03&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/04&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/05&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/06&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/07&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/08&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/09&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0A&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0B&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0C &lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0D&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0E&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0F&lt;br /&gt;
                                                                        [ OK ]&lt;br /&gt;
 root@zero:/var/cache/squid# ls&lt;br /&gt;
 00  01  02  03  04  05  06  07  08  09  0A  0B  0C  0D  0E  0F  swap.state&lt;br /&gt;
 root@zero:/var/cache/squid# cd 00&lt;br /&gt;
 root@zero:/var/cache/squid/00# ls&lt;br /&gt;
 00  0E  1C  2A  38  46  54  62  70  7E  8C  9A  A8  B6  C4  D2  E0  EE  FC&lt;br /&gt;
 01  0F  1D  2B  39  47  55  63  71  7F  8D  9B  A9  B7  C5  D3  E1  EF  FD&lt;br /&gt;
 02  10  1E  2C  3A  48  56  64  72  80  8E  9C  AA  B8  C6  D4  E2  F0  FE&lt;br /&gt;
 03  11  1F  2D  3B  49  57  65  73  81  8F  9D  AB  B9  C7  D5  E3  F1  FF&lt;br /&gt;
 04  12  20  2E  3C  4A  58  66  74  82  90  9E  AC  BA  C8  D6  E4  F2&lt;br /&gt;
 05  13  21  2F  3D  4B  59  67  75  83  91  9F  AD  BB  C9  D7  E5  F3&lt;br /&gt;
 06  14  22  30  3E  4C  5A  68  76  84  92  A0  AE  BC  CA  D8  E6  F4&lt;br /&gt;
 07  15  23  31  3F  4D  5B  69  77  85  93  A1  AF  BD  CB  D9  E7  F5&lt;br /&gt;
 08  16  24  32  40  4E  5C  6A  78  86  94  A2  B0  BE  CC  DA  E8  F6&lt;br /&gt;
 09  17  25  33  41  4F  5D  6B  79  87  95  A3  B1  BF  CD  DB  E9  F7&lt;br /&gt;
 0A  18  26  34  42  50  5E  6C  7A  88  96  A4  B2  C0  CE  DC  EA  F8&lt;br /&gt;
 0B  19  27  35  43  51  5F  6D  7B  89  97  A5  B3  C1  CF  DD  EB  F9&lt;br /&gt;
 0C  1A  28  36  44  52  60  6E  7C  8A  98  A6  B4  C2  D0  DE  EC  FA&lt;br /&gt;
 0D  1B  29  37  45  53  61  6F  7D  8B  99  A7  B5  C3  D1  DF  ED  FB&lt;br /&gt;
 root@zero:/var/cache/squid/00#&lt;br /&gt;
Hier sieht man, das Squid im Verzeichnis /var/cache/squid 16 Verzeichnisse von 00-0F und in jedem Unterverzeichnis weitere 256 Verzeichnisse 00-FF angelegt hat.&lt;br /&gt;
&lt;br /&gt;
====Konfiguration====&lt;br /&gt;
Nun können weitere Optionen in der Konfigurationsdatei angegeben werden.&lt;br /&gt;
 cache_mem 32 MB&lt;br /&gt;
Gibt an, wieviel Hauptspeicher zum Cachen für Squid verwendet wird&lt;br /&gt;
 cache_swap_low 90&lt;br /&gt;
 cache_swap_high 95&lt;br /&gt;
Diese beiden Optionen geben den unteren und oberen Threshold für die Füllung des Caches an in % an. Wird die untere Marke überschritten, beginnt Squid entsprechend der cache_replacement_policy Objekte aus dem Cache zu entfernen. Wird die obere Marke erreicht, erfolgt die Räumung aggressiver. Wird die untere Marke unterschritten, wird der Prozess beendet.&lt;br /&gt;
 minimum_object_size 0 KB&lt;br /&gt;
 maximum_object_size 8192 KB&lt;br /&gt;
minimum_object_size gibt an, wie groß ein Objekt mindestens sein muss, um im Cache gespeichert zu werden, maximum_object_size die maximale Größe.&lt;br /&gt;
 maximum_object_size_in_memory 64 KB&lt;br /&gt;
maximum_object_size_in_memory gibt an, wie groß ein Objekt höchstens sein darf, um im Hauptspeicher gecacht zu werden.&lt;br /&gt;
 ipcache_size 1024&lt;br /&gt;
Hier wird die maximale Anzahl der IP-Cache Einträge bestimmt.&lt;br /&gt;
 ipcache_low 90&lt;br /&gt;
 ipcache_high 95&lt;br /&gt;
Thresholds der IP-Cache-Einträge, entsprechend zu cache_swap_low und _high.&lt;br /&gt;
 fqdncache_size 1024&lt;br /&gt;
Maximale Anzahl der FQDN-Cache-Einträge.&lt;br /&gt;
 cache_replacement_policy lru&lt;br /&gt;
 memory_replacement_policy lru&lt;br /&gt;
Diese Einträge bestimmen, mit welchem Verfahren Objekte aus dem Cache entfernt werden. lru steht für least recently used, d.h. Squid löscht bei diesem Verfahren die Einträge, die am längsten nicht mehr angefragt wurden. Es gibt außerdem:&lt;br /&gt;
&lt;br /&gt;
heap GDFS (Greed-Dual Size Frequency): Optimiert die Objekt-Hitrate. Kleine häufig angefragte Objekte werden auf Kosten großer, weniger häufig angefragter Objekte im Cache gehalten. Damit wird die Warscheinlichkeit eines Objekt-Hits gesteigert.&lt;br /&gt;
&lt;br /&gt;
heap LFUDA (Least frequently used with dynamic aging): Optimiert die Byte-Hitragte. Häufig angefrage Objekte werden im Cache gehalten, slten angefragte Objekte werden freigegeben, unabhängig von deren Größe. Damit wird ein häufiger angefrages, großes Objekt ggf. auf Kosten vieler kleiner Objekte im Cache gehalten.&lt;br /&gt;
&lt;br /&gt;
heap lru (erweitertes lru-Verfahren).&lt;br /&gt;
&lt;br /&gt;
===Delay-Pools===&lt;br /&gt;
Mit Delay-Pools kann man eine Bandbreitensteuerung über Squid implementieren.&lt;br /&gt;
 #delay_pools-sektion&lt;br /&gt;
 delay_pools 2&lt;br /&gt;
Hier wird die Anzahl der Pools angegeben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #delay_claas ''pool'' ''class''&lt;br /&gt;
 delay_class 1 1&lt;br /&gt;
 delay_class 2 2&lt;br /&gt;
Jeder der Pools wird einer Klasse zugeordnet. Es gibt insgesamt 5 Klassen, die verschiedene Methoden zur Bandbreitensteuerung anbieten.&lt;br /&gt;
&lt;br /&gt;
Klasse 1: Die gesamte Bandbreite wird über ein Parameterpaar gesteuert.&lt;br /&gt;
&lt;br /&gt;
Klasse 2: Es werden 2 Parameterpaare angegeben. Das erste bestimmt die gesamte Bandbreite, das zweite bestimmt die individuelle Bandbreite eines Hosts anhand des letzten Bytes der IP-Adresse.&lt;br /&gt;
&lt;br /&gt;
Klasse 3: Zusätzlich zu den 2 Parametepaaren in Klasse 2 gibt es noch ein drittes Paar, welches die Bandbreite eines ganzen Klasse-C-Netzes beschränkt.&lt;br /&gt;
&lt;br /&gt;
Klasse 4: Wie Klasse 3, jedoch gibt es noch ein zusätzliches Parameterpaar, welches anhand des Benutzernamens die Bandbreite beschränkt. Diese Limitierung tritt nur in Kraft, sollte ein Request eine Benutzerauthentifizierung erfordert haben (siehe Authentifizerung).&lt;br /&gt;
&lt;br /&gt;
Klasse 5: Die Bandbreitenregulierung erfolgt nicht wie in Klasse 2-4 über IP-Adressen oder Benutzer, sondern über ein Tag, welches angegeben wird und einen Request identifiziert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 delay_parameters 1 10000/20000&lt;br /&gt;
 delay_parameters 2 20000/40000 1000/2000&lt;br /&gt;
 delay_access 1 allow privilegiert&lt;br /&gt;
 delay_access 2 allow unprivilegiert&lt;br /&gt;
 delay_access 1 deny all&lt;br /&gt;
 delay_access 2 deny all&lt;br /&gt;
&lt;br /&gt;
Nun müssen den Delay-Pools noch die Parameter übergeben werden. Der Delay-Pool mit Klasse 1 erhält ein Parameterpaar. Dieses Parameterpaar setzt sich zusammen aus restore- und einem maximum-Wert. Der restore-Wert bestimmt die eigentliche Bandbreite in Byte/Sekunde, der maximum-Wert bestimmt die maximale Datenmenge in Byte, die auf einmal übertragen wird.&lt;br /&gt;
&lt;br /&gt;
Die mit maximum definierte Datenmenge wird ganz normal über das Netz übertragen, ggf. mit der vollen zur Verfügung stehenden Bandbreite und ohne weitere Begrenzung. Anhand des eigentlichen Bandbreitenwertes restore berechnet Squid, wie lange er das nächste Paket verzögern muss, um auf die durchschnittliche, mit restore vorgegebene Bandbreite zu kommen. So wird die vorgegebene Nettobandbreite im Mittel durchaus gehalten, ein einzelnes Datenpaket kann jedoch deutlich schneller zum Client transportiert werden.&lt;br /&gt;
&lt;br /&gt;
Mit delay-access wird nun festelegt, welche Pools auf welche acl angewendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=ads mitglied=&lt;br /&gt;
*http://blog.stefan-betz.net/2009/1/7/hochzeit:-squid-3-und-active-directory/&lt;br /&gt;
*http://www.woy.de/?p=29&lt;br /&gt;
&lt;br /&gt;
=sarg=&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install sarg apache2&lt;br /&gt;
 sudo cp /etc/sarg/sarg.conf /etc/sarg/sarg.conf.old&lt;br /&gt;
 sudo cat /etc/sarg/sarg.conf.old | grep -v ^# | grep -v ^$ &amp;gt; /etc/sarg/sarg.conf&lt;br /&gt;
&lt;br /&gt;
Beim Benutzen von '''squid3''' muss der log-Pfad in der sarg.conf angepasst werden!&lt;br /&gt;
 access_log /var/log/squid/access.log ändern in&lt;br /&gt;
&lt;br /&gt;
 access_log /var/log/squid3/access.log&lt;br /&gt;
&lt;br /&gt;
 sudo ln -sv /var/lib/sarg/ /var/www/&lt;br /&gt;
 sudo sarg-reports today&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==apache==&lt;br /&gt;
vi /etc/apache2/sites-available/000-default.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
        ServerAdmin technik@xinux.de&lt;br /&gt;
        DocumentRoot /var/www/sarg&lt;br /&gt;
        &amp;lt;Directory /&amp;gt;&lt;br /&gt;
                Options FollowSymLinks&lt;br /&gt;
                AllowOverride None&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
        &amp;lt;Directory /var/www/sarg/&amp;gt;&lt;br /&gt;
                AllowOverride None&lt;br /&gt;
                Options FollowSymLinks +ExecCGI MultiViews&lt;br /&gt;
                Order allow,deny&lt;br /&gt;
                Allow from all&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
        ErrorLog ${APACHE_LOG_DIR}/error-sarg.log&lt;br /&gt;
        LogLevel warn&lt;br /&gt;
        CustomLog ${APACHE_LOG_DIR}/access-sarg.log combined&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 service apache2 restart&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Squid&amp;diff=4653</id>
		<title>Squid</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Squid&amp;diff=4653"/>
		<updated>2014-07-18T09:08:04Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* ads mitglied */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Der Einsatz von Computernetzwerken in Firmen jeglicher Größe hat in den letzten&lt;br /&gt;
Jahren stark zugenommen. Dabei haben viele Firmen neben dem&lt;br /&gt;
lokalen Netz auch eine Anbindung an ein öffentliches Netz und damit meist&lt;br /&gt;
auch Zugang zum Internet.&lt;br /&gt;
&lt;br /&gt;
Damit verbindet sich ein weltweiter Ausbau dieses Netzes und ein steigendes&lt;br /&gt;
Angebot an Serviceleistungen, die über das Internet angeboten werden. Als&lt;br /&gt;
neuere Technologie sei hier nur die Internettelefonie genannt. Dies bedeutet&lt;br /&gt;
allerdings auch, daß die zu übertragenden Datenmengen ständig zunehmen,&lt;br /&gt;
was zu Engpässen und langen Übertragungszeiten führt.&lt;br /&gt;
&lt;br /&gt;
Für die Unternehmen bedeuten die zunehmenden Datenmengen aber auch&lt;br /&gt;
in erheblichem Maße zunehmende Kosten. Deshalb sind Technologien&lt;br /&gt;
gefragt, die dabei helfen können, diese Datenmengen und damit auch die&lt;br /&gt;
Kosten entsprechend einzuschränken.&lt;br /&gt;
&lt;br /&gt;
Die Anbindung an öffentliche Netze bedeutet aber auch immer ein Risiko, da&lt;br /&gt;
es selten möglich ist, eine Verbindung nur in eine Richtung aufzubauen.&lt;br /&gt;
Dadurch bieten sich Angriffspunkte, die von einigen Leuten ausgenutzt&lt;br /&gt;
werden, um an Daten zu kommen oder Schaden in dem Netz anzurichten.&lt;br /&gt;
Auch hier herrscht großer Bedarf an neuen Lösungen, um einen Kom-promiß&lt;br /&gt;
zwischen Sicherheit und Kommunikation zu finden.&lt;br /&gt;
&lt;br /&gt;
Im Internetbereich bietet sich für beide Gebiete der Einsatz von Proxy-&lt;br /&gt;
Agenten an. Proxy ist das englische Wort für Stellvertreter. Und genau diese&lt;br /&gt;
Aufgabe soll ein Proxy-Agent übernehmen.&lt;br /&gt;
&lt;br /&gt;
Gerade bei großen Netzwerken macht sich der Einsatz eines solchen Proxy-&lt;br /&gt;
Agenten positiv bemerkbar, da er neben einer Verringerung der Netzlast im&lt;br /&gt;
und zum öffentlichen Netz auch einen Performancegewinn innerhalb des&lt;br /&gt;
lokalen Netzes bewirkt.&lt;br /&gt;
&lt;br /&gt;
=Einsatz von Proxy-Servern=&lt;br /&gt;
==Einsatzgebiete und Funktionalität==&lt;br /&gt;
Mit der immer größer werdenden Vernetzung und Globalisierung wachsen&lt;br /&gt;
auch immer mehr die Probleme der Betreiber von lokalen Netzen.&lt;br /&gt;
Einerseits müssen die Kosten für den Datentransfer mit dem Internet&lt;br /&gt;
gering gehalten werden und zum anderen stellt die Anbindung an ein&lt;br /&gt;
öffentliches Netz auch immer einen Angriffspunkt dar.&lt;br /&gt;
&lt;br /&gt;
Die Gefahren sind dabei recht vielfältig. Zum einen ist es in größeren&lt;br /&gt;
Netzwerken dem Administrator meist nicht möglich, die Konfiguration aller&lt;br /&gt;
Computer ständig zu überwachen und nach Sicherheitslücken zu suchen,&lt;br /&gt;
zumal oft auch die notwendige Software recht teuer ist oder vorhandene&lt;br /&gt;
sich nicht so verhält, wie man es gerne hätte. Zweitens ist eine Verbindung&lt;br /&gt;
ins Internet auch immer mit Datentransfer in beiden Richtungen&lt;br /&gt;
verbunden, wodurch von außen ein Angreifer durch getarnte Datenpakete&lt;br /&gt;
in das lokale Netz eindringen und dort Schaden anrichten kann. Hier seien&lt;br /&gt;
Computerviren in ihren vielen Erscheinungsformen erwähnt. Zum Dritten&lt;br /&gt;
stellen die Anwender selber eine gewisse Gefahr dar, indem sie den&lt;br /&gt;
Zugang zum Internet mißbräuchlich oder unbeabsichtigt nutzen, was sehr&lt;br /&gt;
hohe Kosten verursachen kann.&lt;br /&gt;
&lt;br /&gt;
Dieses Problem läßt sich im Internet mit Hilfe eines Proxy-Servers lösen.&lt;br /&gt;
Proxy ist das englische Wort für Stellvertreter. Wie der Name schon&lt;br /&gt;
vermuten läßt, tritt ein Proxy-Server als Stellvertreter auf. Will nun ein&lt;br /&gt;
Client im lokalen Netz ein Dokument aus dem Internet anfordern, muß er&lt;br /&gt;
die Anfrage an den Proxy-Server leiten, der dann die Anfrage an den&lt;br /&gt;
Server weiterleitet. Daraus wird ersichtlich, daß ein Proxy-Server zwei&lt;br /&gt;
Gesichter haben muß. Nach innen zum Client muß er den Internetserver&lt;br /&gt;
vertreten und nach außen wiederum stellt er sich als Client dar. Dies hat&lt;br /&gt;
aus Sicht der Sicherheit noch den weiteren Vorteil, daß nach außen hin nur&lt;br /&gt;
der Proxy-Server sichtbar ist und das Netz dahinter für einen möglichen&lt;br /&gt;
Angreifer unsichtbar bleibt. Ein Proxy muß daher beide Seiten der&lt;br /&gt;
Kommunikation beherrschen. Wie so eine Kommunikation aussieht, ist in&lt;br /&gt;
 [[Image:squid1.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Caching==&lt;br /&gt;
Die Übertragungsraten im Internet sind oft sehr gering, da bestimmte Leitungen, insbesondere transkontinentale, stark belastet sind. Dadurch kann es wiederum vorkommen, daß die Leitung nach außen ausgelastet ist und durch lange Wartezeiten die Kosten der Übertragung in die Höhe gehen.&lt;br /&gt;
&lt;br /&gt;
Ein Ansatzpunkt, die Auslastung und Performance zu optimieren, ist das Zwischenspeichern von Objekten. Dies macht im Internet Sinn, da es oft vorkommt, daß ein Dokument in einem lokalen Netz mehrmals von verschiedenen Clients angefordert wird. Dieses Zwischenspeichern oder Caching von Dokumenten übernimmt ebenfalls der Proxy-Server, der deshalb auch oft als Proxy-Cache bezeichnet wird. Fordert ein Client ein Dokument von einem Server an, so leitet der Proxy die Anfrage an den Server weiter. Dieser liefert das angeforderte Dokument an den Proxy, der es dann an den Client weiter reicht und eine Kopie in seinem Speicher behält. Kommt nun von einem zweiten Client die Anfrage auf dasselbe Dokument, leitet der Proxy diese nicht an den Server weiter, sondern liefert das Dokument aus seinem Speicher direkt an den Client &lt;br /&gt;
 [[Image:squid2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Dies macht deutlich, welche Vorteile ein Proxy-Cache bietet. Zum einen wird die externe Leitung nicht unnötig mit dem mehrmaligen Holen desselben Objektes belastet, es fallen also für die Übertragung keine Kosten an, und außerdem wird die Performance für die Clients im LAN deutlich erhöht. Untersuchungen haben gezeigt, daß die Trefferquoten beim Einsatz eines Proxy-Caches bis zu 50% sind, also fast jede zweite Anfrage nach außen einspart.&lt;br /&gt;
==Sinnvolles Caching==&lt;br /&gt;
Um ein sinnvolles Caching zu erreichen, müssen gewisse Voraussetzungen gegeben sein. Diese fangen damit an, daß die Maschine, auf der ein solcher Proxy-Server läuft von der Hardware entsprechend ausgestattet sein muß. Je nach der Anzahl der Clients, die den Proxy benutzen muß die Leistungsfähigkeit des Rechners ausgelegt sein, damit auch genügend Anfragen gleichzeitig bearbeitet werden können. Um die Trefferquote auf die im Cache abgelegten Objekte zu erhöhen, sollte auch entsprechende Speicherkapazität vorhanden sein. Diese sollte auf jeden Fall mehrere Gigabyte umfassen. Da aber in der letzten Zeit die Preise für Festplattenspeicher enorm nach unten gegangen sind, sollte dies heute kein größeres Problem mehr darstellen. &lt;br /&gt;
Die Hardwarevoraussetzungen alleine machen aber noch keinen guten Proxy-Cache aus, sondern bilden nur eine solide Grundlage. Ein viel größeres Problem ist es, daß die Lebensdauer von Web-Seiten sehr unterschiedlich ist. Dadurch kann nie mit Sicherheit bestimmt werden, wann sich eine Seite ändert und dadurch veraltet ist und aus dem Cache gelöscht, bzw. beim Server neu angefordert werden soll. Es kann also immer vorkommen, daß der Cache ein veraltetes Dokument an den Client liefert. Durch verschiedene Strategien wird versucht, dieses Manko so weit wie möglich auszugleichen. &lt;br /&gt;
HTTP bietet dazu zwei Möglichkeiten: Last-Modified und Expires. Mit der Antwort des Servers werden diese Information an den Proxy mitgeteilt. Mit Last-Modified wird angezeigt, wann das Dokument das letzte mal geändert wurde. Mit der Angabe Expires erhält der Client (in diesem Falle der Proxy) Informationen, wann er das Dokument als veraltet ansehen soll und vom Server neu anfordern muß. In einem HTML-Dokument werden diese Angaben im Header generiert. Dazu wird das META-Element benutzt. Die Informationen sehen dann wie im folgenden Beispiel aus: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;META HTTP-EQUIV=“Last-Modified“ CONTENT=“Thu Jan 1 12:00:00 GMT DST 1998“&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;META HTTP-EQUIV=“Expires“ CONTENT=“Thu Dec 31 12:00:00 GMT DST 1998“&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Allein die Expires-Angabe würde reichen, um den Cache in dieser Hinsicht zu optimieren. Jedoch sind diese Angaben optional und werden sehr selten eingesetzt. Außerdem ist es oft schwierig die Lebensdauer einer Web-Seite vorauszusagen. Daher sind die meisten Web-Seiten einfach so lange gültig, bis der Autor eine neue Version erstellt. Anders sieht es bei Last-Modified aus. Diese Angabe findet sich zwar selten explizit in HTML-Dokumenten, jedoch trägt jedes Dokument als Datei einen Zeitstempel, welcher vom Server dann als Last-Modified-Header mitgeliefert wird.&lt;br /&gt;
&lt;br /&gt;
Die Proxy-Server wenden damit ein einfaches Verfahren ein, um die Lebensdauer eines Dokumentes zu „erraten“. Dabei wird zugrunde gelegt, daß die Wahrscheinlichkeit recht gering ist, daß ein recht altes Dokument in den nächsten Stunden geändert wird. Bei einem Dokument, welches dagegen erst vor kurzem geändert wurde, ist die Möglichkeit einer baldigen Aktualisierung eher vorhanden.Sofern ein Objekt keinen Expires-Header aufweist, erzeugt der Proxy-Server mit Hilfe des Last-Modified-Headers ein künstliches Verfallsdatum. Dazu bestimmt er das Alter der Datei und schlägt einen Prozentsatz dazu, der bei der Konfiguration des Proxy-Servers eingetragen wird (Direktive refresh_pattern), und holt frühestens nach Ablauf dieser Zeit von sich aus das Dokument erneut vom Server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ist beispielsweise ein Dokument zum Zeitpunkt der ersten Anfrage des Proxies bereits 150 Tage alt und der Prozentsatz aus der Konfiguration ist 20%, so vergehen weitere 30 Tage, bis der Proxy-Server eine erneute Anfrage an den Originalserver stellt. &lt;br /&gt;
&lt;br /&gt;
Um dies weiter zu optimieren wird das Dokument nur dann übertragen, wenn die Version auf dem Originalserver wirklich neuer ist, als die im Cache gespeicherte. Dazu schickt der Proxy eine Anfrage an den Originalserver, in der nur der Zeitstempel der Datei enthalten ist. Der Server vergleicht nun den empfangenen Zeitstempel der angeforderten Datei und sendet diese nur dann vollständig zurück, wenn sie jünger ist, als die im Proxy-Cache hinterlegte Kopie. Im anderen Falle erhält der Proxy nur eine kurze, aus HTTP-Headern bestehende Antwort, die signalisiert, daß keine Änderung stattgefunden hat. Der Proxy registriert dies und errechnet ein neues Verfallsdatum. &lt;br /&gt;
&lt;br /&gt;
Neben diesen statischen Objekten, die eine gewisse Lebensdauer haben, gibt es aber auch dynamische Objekte, bei denen eine Zwischenspeicherung nicht angebracht ist. Dies sind beispielsweise HTML-Seiten, die ein CGI-Skript für Datenbankabfragen enthalten oder Seiten, die eine Berechtigung verlangen.&lt;br /&gt;
&lt;br /&gt;
Es kann von beiden Seiten erzwungen werden, daß ein Objekt nicht im Cache gespeichert wird. Auf Seiten des Proxy-Servers erfolgt dies durch eine Einstellung in der Konfiguration. Damit ist es möglich, daß Seiten, die bestimmte Elemente (z.B. cgi-bin, ?, o.ä.) im URL enthalten nicht gespeichert werden. Dies kann man auch für ausgewählte Domänen angeben, was dann sinnvoll ist, wenn sich der Cache in einem Netz befindet, in dem selbst Web-Seiten angeboten werden. &lt;br /&gt;
&lt;br /&gt;
Befindet sich beispielsweise der Proxy-Cache in dem Netz der Domäne testdomain.de, womöglich sogar auf dem selben Rechner wie der Web-Server, so wäre es Unsinn, die Seiten, die dort angeboten werden in den Cache zu legen, da dies unnötig Speicher verbraucht. Von Seiten des Anbieters kann dies über den Einbau einer Authentisierung erfolgen. Dadurch wird bei der Abfrage eines Objektes nach einer Benutzerkennung und einem Paßwort gefragt. Diese Informationen und auch Seiten, die eine Identifikation verlangen, werden standardmäßig nicht vom Proxy gespeichert und müssen jedesmal neu vom Originalserver geholt werden. &lt;br /&gt;
&lt;br /&gt;
==Hierarchisches Caching==&lt;br /&gt;
Bei einigen Proxy-Servern ist es möglich, die Größe des Caches anzugeben, welcher im Hauptspeicher des Rechners liegt. Übertragene Objekte werden dort eine gewisse Zeit gehalten, um schnellere Antwortzeiten zu erreichen, falls ein Objekt innerhalb kurzer Zeit von zwei verschiedenen Clients angefordert wird. Dabei kann meist über den Parameter TTL (Time-to-Live) die Zeitdauer angegeben werden, die ein Objekt maximal in diesem Cache gehalten wird. &lt;br /&gt;
&lt;br /&gt;
Eine weitere Möglichkeit, die Performance zu erhöhen und geringere Antwortzeiten zu erhalten, ist das hierarchische Caching. Banal gesagt setzt man einen Proxy für den Proxy ein. Dadurch kann die Trefferquote auf Objekte nochmals verbessert werden. Dies macht besonders deshalb Sinn, da die Datenmengen, die über die bestehenden Leitungen übertragen werden, immer größer werden und es immer wieder zu Engpässen kommt, die lange Übertragungszeiten verursachen. Das hierarchische Caching führt dabei zu einer Entlastung. Damit die Proxy-Caches miteinander kommunizieren können, wurde ein spezielles Protokoll entwickelt, das ICP (Internet Caching Protocol). Dabei schicken Proxy-Caches für das gewünschte Objekt Anfragen an benachbarte und in der Hierarchie höher stehende Proxy-Caches. Ist das Objekt in einem dieser Caches vorhanden, wird es übertragen, andernfalls wird es vom Originalserver geholt. Da das ICP auf UDP basiert, ist es sehr schnell und bedeutet somit einen vertretbaren Performanceverlust, der durch eine erhöhte Trefferquote mehr als ausgeglichen wird.&lt;br /&gt;
 [[Image:squid3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Begriffe===&lt;br /&gt;
&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
|Neighbours	&lt;br /&gt;
|Dies sind alle Proxies, die ein Proxy kennt und mit denen er kommuniziert.&lt;br /&gt;
|-&lt;br /&gt;
|Siblings&lt;br /&gt;
|Die Geschwisterproxies. Sie liegen mit dem Proxy-Server auf einer Ebene. Siblings liefern in der Regel nur Objekte, die sie selbst im Cache haben,&lt;br /&gt;
|-&lt;br /&gt;
|Parents&lt;br /&gt;
|Übergeordnete Proxies. Sie liefern Objekte die sie selbst im Cache haben und leiten Anfragen an den Originalserver weiter.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Was ist Squid=&lt;br /&gt;
&lt;br /&gt;
Quelle: http://squid.nlanr.net/Squid/  bzw. http://www.squid-cache.org&lt;br /&gt;
&lt;br /&gt;
Squid, ein Beispiel für einen Proxy-Server mit Cache-Mechanismus, ist aus der cached Software des Harvest Forschungsprojektes hervorgegangen. Informationen über Harvest sind auf folgender Webseite zu finden: &lt;br /&gt;
&lt;br /&gt;
http://harvest.cs.colorado.edu/ &lt;br /&gt;
&lt;br /&gt;
Proxy-Systeme mit Cache-Mechanismen dienen meist der Performancesteigerung von Datentransfers, die bei langsamer Internet-Anbindung sehr groß sein kann, wenn Daten wiederholt angefordert werden. &lt;br /&gt;
&lt;br /&gt;
=Funktionsbeschreibung=&lt;br /&gt;
Squid, der Internet Object Cache, ist jedoch mehr als ein einfacher Cache-Proxy. Durch die Unterstützung von Neighbor-Caches, die entweder als parent oder sibling verwendet werden, kann man einen Cache-Verbund aufbauen, der einen hohen Prozentsatz von Anfragen beantworten kann, ohne langwierige Internet-Zugriffe zu erfordern. Dieses Verfahren verwenden zum Beispiel einige der großen Internet-Provider (wie ECRC in München), um den Datentransfer wenn möglich auf der eigenen Netzwerkstruktur abzuwickeln und damit Kosten für externe Zugriffe zu umgehen. &lt;br /&gt;
&lt;br /&gt;
Die Arbeitsweise von Squid ist einfach: &lt;br /&gt;
&lt;br /&gt;
Eine Anfrage eines Clients wird zuerst auf die Zugriffsberechtigung untersucht, so kann man z.B. gewissen Rechnern einen Zugriff auf den Proxy ganz verbieten (siehe Konfiguration). &lt;br /&gt;
&lt;br /&gt;
Es wird versucht, die gewünschten Daten im lokalen Cache zu finden. Sollte dies fehlschlagen, werden andere Proxies im Cache-Verbund (sofern vorhanden),&lt;br /&gt;
abgefragt.&lt;br /&gt;
&lt;br /&gt;
Sind die Daten vorhanden, wird ihre Aktualität geprüft. Sind die Daten veraltet, werden neue in den Cache geholt und an den Client weitergegeben. Bei aktuellen Daten wird das Neuladen übersprungen.&lt;br /&gt;
&lt;br /&gt;
Sind die Daten nicht vorhanden, werden sie in den Cache geladen und an den Client weiter-gereicht. Wie lange Daten im Cache verbleiben, ist abhängig von der Konfiguration (siehe dort)&lt;br /&gt;
&lt;br /&gt;
Eine Beschreibung der internen Abläufe wurde im Sinne der Übersichtlichkeit weggelassen.&lt;br /&gt;
&lt;br /&gt;
=Hilfe und Dokumentation zu Squid=&lt;br /&gt;
&lt;br /&gt;
Hilfe und Dokumentation im Internet:&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
|Die squid Website&lt;br /&gt;
|http://www.squid-cache.org/Doc/&lt;br /&gt;
|-&lt;br /&gt;
|squid IRC Channel&lt;br /&gt;
|Server: irc.freenode.de -Channel: #squid&lt;br /&gt;
|-&lt;br /&gt;
|Mailingliste&lt;br /&gt;
|squid-users@squid-cache.org&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Hilfe und Dokumentation im System&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
|Speziell zur Konfiguration&lt;br /&gt;
|/etc/squid/squid.conf.default&lt;br /&gt;
|-&lt;br /&gt;
|Manualpage&lt;br /&gt;
|man squid&lt;br /&gt;
|-&lt;br /&gt;
|Mitgelieferte Dokumentation&lt;br /&gt;
|/usr/share/doc/squid/&lt;br /&gt;
|}&lt;br /&gt;
=Squid unter Ubuntu=&lt;br /&gt;
==Installation==&lt;br /&gt;
 root@zero:~# apt-get install squid3 squid3-common&lt;br /&gt;
Testen ob Squid läuft &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 3128&lt;br /&gt;
 tcp        0      0 0.0.0.0:3128            0.0.0.0:*               LISTEN      10743/(squid)&lt;br /&gt;
&lt;br /&gt;
==Start Skript==&lt;br /&gt;
Das Startskript /etc/init.d/squid3 hat folgende Parameter&lt;br /&gt;
&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
|start&lt;br /&gt;
|Startet den Squid-Daemon&lt;br /&gt;
|-&lt;br /&gt;
|stop&lt;br /&gt;
|Stoppt den Squid-Daemon&lt;br /&gt;
|-&lt;br /&gt;
|reload&lt;br /&gt;
|Liest die Konfigurationsdatei neu ein&lt;br /&gt;
|-&lt;br /&gt;
|force-reload&lt;br /&gt;
|das gleiche wie reload&lt;br /&gt;
|-&lt;br /&gt;
|restart&lt;br /&gt;
|Stoppt den Deamon, falls er gestartet war und startet ihn wieder (synonym für stop und start)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Squid Parameter==&lt;br /&gt;
Gestartet werden kann Squid auch ohne das Startskript mit &lt;br /&gt;
 /usr/sbin/squid3 [-cdhvzCDFNRVYX] [-s | -l facility] [-f config-file] [-[au] port] [-k signal]&lt;br /&gt;
Flogende Parameter können eingestellt werden:&lt;br /&gt;
&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
| -a port&lt;br /&gt;
|verändert die Portnummer für HTTP-Anfragen&lt;br /&gt;
|-&lt;br /&gt;
| -d level&lt;br /&gt;
|Debug Output auf stderr ausgeben&lt;br /&gt;
|-&lt;br /&gt;
| -f file&lt;br /&gt;
|gibt eine alternative Konfigurationsdatei zu /etc/squid3/squid.conf an&lt;br /&gt;
|-&lt;br /&gt;
| -k&lt;br /&gt;
|mit dieser option können dem laufenden Squid verschiedene Steuersignale übergeben werden&lt;br /&gt;
|-&lt;br /&gt;
| -k reconfigure&lt;br /&gt;
|die Konfigurationsdatei wird nochmals eingelesen&lt;br /&gt;
|-&lt;br /&gt;
| -k rotatate&lt;br /&gt;
|schliesst und öffnet Dateien z.B. log_files&lt;br /&gt;
|-&lt;br /&gt;
| -k shutdown&lt;br /&gt;
|squid wartet kurz und beendet die Verbindung und sich selbst.Mit shutdown_zeit wird Squid nach einer angegebenen Zeit beendet.&lt;br /&gt;
|-&lt;br /&gt;
| -k interrupt&lt;br /&gt;
|sendet einen Interrupt worauf squid sofort abgebrochen wird ohne auf den Verlauf der Verbindungen zu achten.&lt;br /&gt;
|-&lt;br /&gt;
| -k kill&lt;br /&gt;
|bricht squid sofort ab, die Verbindung und die log_files bleiben geöffnet&lt;br /&gt;
|-&lt;br /&gt;
| -k check&lt;br /&gt;
|kontrolliert ob squid läuft&lt;br /&gt;
|-&lt;br /&gt;
| -s&lt;br /&gt;
|erlaubt das Aufnehmen in die syslog&lt;br /&gt;
|-&lt;br /&gt;
| -u port&lt;br /&gt;
|verändert die Portnummer des Internet Cache Protokoll ICP bzw. deaktiviert den Cache-Verbund mit der Portnummer 0&lt;br /&gt;
|-&lt;br /&gt;
| -v&lt;br /&gt;
|zeigt die aktuelle Squid Version&lt;br /&gt;
|-&lt;br /&gt;
| -z&lt;br /&gt;
|richtet cache Verzeichnisse ein&lt;br /&gt;
|-&lt;br /&gt;
| -D&lt;br /&gt;
|Squid führt normalerweise DNS Tests durch die hiermit abgestellt werden können&lt;br /&gt;
|-&lt;br /&gt;
| -F&lt;br /&gt;
|wenn die swap.logs leer sind nützt squid die vollen Systemresourcen um sich um die Anfragen zu kümmern.Dies beschleunigt den Verarbeitungsvorgang&lt;br /&gt;
|-&lt;br /&gt;
| -N&lt;br /&gt;
|der Serverprozess läuft nicht im Hintergrund&lt;br /&gt;
|-&lt;br /&gt;
| -V&lt;br /&gt;
|Aktivierung des httpd Beschleunigungsmodus&lt;br /&gt;
|-&lt;br /&gt;
| -X&lt;br /&gt;
|Full-Debug-Modus&lt;br /&gt;
|-&lt;br /&gt;
| -Y&lt;br /&gt;
|Beschleunigt den ICP austausch bei niederwertigeren Caches&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Konfiguration==&lt;br /&gt;
Squid wird mittels einer normalen Textdatei konfiguriert, die logisch in&lt;br /&gt;
mehrere Teilbereiche unterteilt werden kann. Sie ist unter&lt;br /&gt;
/etc/squid/squid.conf bzw. unter &amp;lt;prefix&amp;gt;/etc/squid.conf zu finden.&lt;br /&gt;
Bei der Installation von Squid wird eine Default-Konfiguration erzeugt, die&lt;br /&gt;
mit minimalen Änderungen bereits einen ersten Testlauf ermöglicht. Für&lt;br /&gt;
die Ausnutzung der vollen Leistung von Squid sollte jedoch eine&lt;br /&gt;
individuelle Anpassung erfolgen.&lt;br /&gt;
&lt;br /&gt;
Alle Zeilen von squid.conf, die mit # beginnen, sind Kommentare bzw.&lt;br /&gt;
nicht aktivierte Optionen. Als Minimalkonfiguration genügen die in Schnellstart beschriebenen&lt;br /&gt;
Einstellungen. Für die genaue Syntax von Optionen sei ebenfalls auf&lt;br /&gt;
squid.conf verwiesen, die folgenden Kapitel geben einen groben Überblick&lt;br /&gt;
über die Möglichkeiten von Squid.&lt;br /&gt;
&lt;br /&gt;
Da die Konfigurationsdatei in Ihrer Fülle und den ganzen Kommentaren&lt;br /&gt;
sehr verwirrend ist kann man sie zunächst einmal auf das Wichtigste reduzieren. Vorher sollte&lt;br /&gt;
die originale squid.conf gesichert werden:&lt;br /&gt;
&lt;br /&gt;
 cp squid.conf squid.conf.org&lt;br /&gt;
 grep  &amp;quot;^[^#]&amp;quot; squid.conf.org &amp;gt; squid.conf&lt;br /&gt;
&lt;br /&gt;
 acl manager proto cache_object&lt;br /&gt;
 acl localhost src 127.0.0.1/32&lt;br /&gt;
 acl to_localhost dst 127.0.0.0/8&lt;br /&gt;
 acl SSL_ports port 443&lt;br /&gt;
 acl Safe_ports port 80		# http&lt;br /&gt;
 acl Safe_ports port 21		# ftp&lt;br /&gt;
 acl Safe_ports port 443	# https&lt;br /&gt;
 acl Safe_ports port 70		# gopher &lt;br /&gt;
 acl Safe_ports port 210		# wais&lt;br /&gt;
 acl Safe_ports port 1025-65535	# unregistered ports&lt;br /&gt;
 acl Safe_ports port 280		# http-mgmt&lt;br /&gt;
 acl Safe_ports port 488		# gss-http&lt;br /&gt;
 acl Safe_ports port 591		# filemaker&lt;br /&gt;
 acl Safe_ports port 777		# multiling http&lt;br /&gt;
 acl CONNECT method CONNECT&lt;br /&gt;
 http_access allow manager localhost&lt;br /&gt;
 http_access deny manager&lt;br /&gt;
 http_access deny !Safe_ports&lt;br /&gt;
 http_access deny CONNECT !SSL_ports&lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
 http_access deny all&lt;br /&gt;
 icp_access deny all&lt;br /&gt;
 htcp_access deny all&lt;br /&gt;
 http_port 3128&lt;br /&gt;
 hierarchy_stoplist cgi-bin ?&lt;br /&gt;
 access_log /var/log/squid3/access.log squid&lt;br /&gt;
 refresh_pattern ^ftp:		1440	20%	10080&lt;br /&gt;
 refresh_pattern ^gopher:	1440	0%	1440&lt;br /&gt;
 refresh_pattern (cgi-bin|\?)	0	0%	0&lt;br /&gt;
 refresh_pattern .		0	20%	4320&lt;br /&gt;
 icp_port 3130&lt;br /&gt;
 coredump_dir /var/spool/squid3&lt;br /&gt;
&lt;br /&gt;
Zur besseren Übersicht unterteilen wir die Konfigdatei&lt;br /&gt;
&lt;br /&gt;
 #allgemeine sektion&lt;br /&gt;
 http_port 3128&lt;br /&gt;
 access_log /var/log/squid3/access.log squid&lt;br /&gt;
 icp_port 3130&lt;br /&gt;
 coredump_dir /var/spool/squid3&lt;br /&gt;
 hierarchy_stoplist cgi-bin ?&lt;br /&gt;
 &lt;br /&gt;
 #refresh&lt;br /&gt;
 refresh_pattern ^ftp:           1440    20%     10080&lt;br /&gt;
 refresh_pattern ^gopher:        1440    0%      1440&lt;br /&gt;
 refresh_pattern (cgi-bin|\?)    0       0%      0&lt;br /&gt;
 refresh_pattern .               0       20%     4320&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl manager proto cache_object&lt;br /&gt;
 acl localhost src 127.0.0.1/32&lt;br /&gt;
 acl to_localhost dst 127.0.0.0/8&lt;br /&gt;
 acl SSL_ports port 443&lt;br /&gt;
 acl Safe_ports port 21 80  443 70 210 280 488 591 777 1025-65535&lt;br /&gt;
 acl CONNECT method CONNECT&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow manager localhost&lt;br /&gt;
 http_access deny manager&lt;br /&gt;
 http_access deny !Safe_ports&lt;br /&gt;
 http_access deny CONNECT !SSL_ports&lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
 http_access deny all&lt;br /&gt;
 icp_access deny all&lt;br /&gt;
 htcp_access deny all&lt;br /&gt;
&lt;br /&gt;
===Allgemein===&lt;br /&gt;
 http_port 3128&lt;br /&gt;
Auf diesem Port lauscht der Squid auf eingehende http-Anfragen der Clients.&lt;br /&gt;
 icp_port 3130&lt;br /&gt;
Auf diesem Port lauscht Squid auf eingehende Anfragen von Nachbar-Proxys&lt;br /&gt;
 access_log /var/log/squid3/access.log squid&lt;br /&gt;
Legt Ort und Art des Loggings für eingehende Requests fest.&lt;br /&gt;
 coredump_dir /var/spool/squid3&lt;br /&gt;
Standardmäßig schreibt Squid corefiles in das Verzeichnis aus dem er gestartet wurden. Wenn mit dieser Option ein Pfad angegeben ist, wechselt Squid nach dem Start in dieses Verzeichnis und legt die corefiles in dieses Verzeichnis ab.&lt;br /&gt;
 hierarchy_stoplist cgi-bin ?&lt;br /&gt;
Hiermit wird eine Liste von Ausdrücken festgelegt, die - wenn sie in dem angefragen URL vorkommen - Squid veranlassen, die Anfrage direkt auszuführen und keine Nachbar-Proxys zu befragen&lt;br /&gt;
&lt;br /&gt;
===Refresh_pattern===&lt;br /&gt;
&lt;br /&gt;
 #refresh_pattern Suchmuster      Min     Prozent Max&lt;br /&gt;
  refresh_pattern ^ftp:           1440    20%     10080&lt;br /&gt;
  refresh_pattern ^gopher:        1440    0%      1440&lt;br /&gt;
  refresh_pattern (cgi-bin|\?)    0       0%      0&lt;br /&gt;
  refresh_pattern .               0       20%     4320&lt;br /&gt;
&lt;br /&gt;
Hier kann der Refresh-Algorithmus von squid für die eigenen Bedürfnisse optimiert werden. &lt;br /&gt;
&lt;br /&gt;
MIN ist die Zeit in Minuten,die ein Objekt ohne explizite Ablaufzeit als Aktuell betrachtet wird. Der ermpfohlene Wert ist 0, jeder höhere Wert könnte dazu führen, dass dynmaische Anwendungen irrtümlich gecachtt&lt;br /&gt;
werden, wenn der Webdesigner keine entsprechenden Gegenaktionen getroffen hat. &lt;br /&gt;
&lt;br /&gt;
PROZENT ist der Prozentsatz eines Objektalters (Zeit seit der letzten&lt;br /&gt;
Modifikation) wo ein Objekt ohne explizite Ablaufzeit als aktuell betrachtet&lt;br /&gt;
wird. &lt;br /&gt;
&lt;br /&gt;
MAX ist ein oberes Limit wie lange Objekte ohne explizite Ablaufzeiten als aktuell betrachtet werden.&lt;br /&gt;
&lt;br /&gt;
 refresh_pattern -i&lt;br /&gt;
Wie refresh_pattern, nur, daß Musterangaben die Groß-/Kleinschreibung&lt;br /&gt;
ignorieren.&lt;br /&gt;
&lt;br /&gt;
===ACL===&lt;br /&gt;
Unter ACL versteht man access control lists, also Filter, die den Zugriff auf den Proxy regeln. Eine ACL muss immer zuerst definiert werden und ein Name gegeben werden. ACLs werden in der Form&lt;br /&gt;
 acl ''aclname acltyp argument'' ...&lt;br /&gt;
 acl ''aclname acltyp &amp;quot;datei&amp;quot;''&lt;br /&gt;
definiert. &lt;br /&gt;
&lt;br /&gt;
====Beispielkonfiguration====&lt;br /&gt;
In der Standardkonfiguration sind 6 ACLs definiert:&lt;br /&gt;
&lt;br /&gt;
Standard- acl für Management-Dienste&lt;br /&gt;
 acl manager proto cache_object &lt;br /&gt;
&lt;br /&gt;
Alles was von localhost (also lokal über das loopback-device) kommt&lt;br /&gt;
 acl localhost src 127.0.0.1/32&lt;br /&gt;
&lt;br /&gt;
Alles was an localhost geht&lt;br /&gt;
 acl to_localhost dst 127.0.0.0/8&lt;br /&gt;
&lt;br /&gt;
acl für SSL_ports (Standard https-port)&lt;br /&gt;
 acl SSL_ports port 443&lt;br /&gt;
&lt;br /&gt;
acl für &amp;quot;sichere Ports&amp;quot;&lt;br /&gt;
 acl Safe_ports port 80 (21,443,70,...)&lt;br /&gt;
&lt;br /&gt;
 acl CONNECT method CONNECT&lt;br /&gt;
&lt;br /&gt;
Nachdem die ACLs definiert sind, müssen diese in Regeln angewendet werden. Die Syntax lautet:&lt;br /&gt;
 ''regeltyp'' allow|deny [!''acl1''] [!''acl2'']&lt;br /&gt;
Eine Regel besagt also, dass ein Zugriff, der auf eine bestimmte Access-List zutrifft, entweder erlaubt (allow) oder verboten wird (deny).&lt;br /&gt;
&lt;br /&gt;
In der Beispielkonfiguration werden http_access und icp-, htcp_access als Regeltyp angewendet, zB. &lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
wendet die Access-Liste 'localhost' an, um den lokalen Zugriff vom Proxy-Server auf http-seiten zu regeln.&lt;br /&gt;
icp_access und htcp_access bzw. icp und htcp sind Protokolle für den Datenaustausch zwischen zwei Servern.&lt;br /&gt;
&lt;br /&gt;
====Eigene Erweiterungen====&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration können wir jetzt erweitern und auf die Bedürfnisse des jeweiligen Netzwerks anpassen. Als Beispiel verwenden wir ein Netzwerk, welches 2 Subnetze enthält, die über einen Proxy, welcher in einer DMZ steht, Verbindungen zum Internet aufbaut. Das 192.168.241.0/24-Netz soll ein privilegiertes Netz sein, d.h Die Clients haben generell mehr Rechte um auf das Internet zuzugreifen, als das andere Netz (192.168.242.0/24).&lt;br /&gt;
&lt;br /&gt;
Als Erstes wollen wir das eine Netz vorläufig komplett für den HTTP-Verkehr freischalten:&lt;br /&gt;
&lt;br /&gt;
ACL für das Netz aufstellen:&lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl privilegiert src 192.168.241.0/24&lt;br /&gt;
ACL anwenden und das Netz freischalten:&lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow privilegiert&lt;br /&gt;
Die beiden Konfigurationsanweisungen müssen nun an korrekter Stelle in die squid.conf eingetragen werden. Bei der ACL ist das nicht so relevant, jedoch zur Übersichtlichkeit wird man sie in den Block mit den anderen ACLs einfügen. Bei der Access-Regel dagegen ist es dagegen von entscheidender Bedeutung, wo die Anweisung steht, da die Konfigurationsdatei von oben nach unten abgearbeitet wird und die erste Regel auf die eine Anfrage passt, wird ausgeführt.&lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow manager localhost&lt;br /&gt;
 http_access deny manager&lt;br /&gt;
 http_access deny !Safe_ports&lt;br /&gt;
 http_access deny CONNECT !SSL_ports&lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
 http_access deny all&lt;br /&gt;
 '''http_access allow privilegiert'''&lt;br /&gt;
Wird die Regel wie hier angezeigt eingefügt, hat das keine Auswirkung auf den Zugriff, da die Regel &amp;quot;http_access deny all&amp;quot; vorher steht, welche auf alles zutrifft und so die Anfrage abweist. Also müssen wir die Regel weiter oben einfügen.&lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow manager localhost&lt;br /&gt;
 http_access deny manager&lt;br /&gt;
 http_access deny !Safe_ports&lt;br /&gt;
 http_access deny CONNECT !SSL_ports&lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
 '''http_access allow privilegiert'''&lt;br /&gt;
 http_access deny all&lt;br /&gt;
&lt;br /&gt;
Das unprivilegierte Netz soll nun auch Zugriff auf das Internet erhalten, jedoch nur in eingeschränktem Maße. Es soll nur auf den für den Arbeitsablauf notwendigen Webseiten Zugriff erhalten. Dies wird so realisiert, dass eine Datei mit Regex-URLs eingerichtet wird, auf die zugegriffen werden darf.&lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl unprivilegiert src 192.168.242.0/24&lt;br /&gt;
 acl gute_domains url_regex -i &amp;quot;/etc/squid3/gute_domains&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow unprivilegiert gute_domains&lt;br /&gt;
Diese Regel hat 2 acls als Argumente. Diese werden in den Access-Regeln durch ein UND verknüpft, d.h. die Regel matcht nur wenn beide acls zutreffen.&lt;br /&gt;
&lt;br /&gt;
Nun wird eine Regel erstellt, damit URLs, auf die niemand zugreifen darf, im gesamten Netzwerk, also in den beiden Subnetzen, verboten wird.&lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl lan src 192.168.241.0/24 192.168.242.0/24&lt;br /&gt;
 acl schlechte_domains url_regex -i &amp;quot;/etc/squid3/schlechte_domains&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access deny lan schlechte_domains&lt;br /&gt;
&lt;br /&gt;
 root@zero:/etc/squid3# cat schlechte_domains &lt;br /&gt;
 ^http://(www.)?pornographische-seite1.de&lt;br /&gt;
 ^http://(www.)?boese-seite2.com&lt;br /&gt;
 root@zero:/etc/squid3# &lt;br /&gt;
&lt;br /&gt;
Hier wird eine ACL erstellt, die 2 Argumente besitzt. Diese werden, im Gegensatz zu den Access-Regeln, mit einem ODER verknüpft, sodass diese Regel matcht, falls eine Anfrage der beiden Subnetze als Source mit einer URL aus der Datei &amp;quot;schlechte_domains&amp;quot; kommt. In Aussagenlogikform:&lt;br /&gt;
&lt;br /&gt;
lan = ( privilegiert ODER unprivilegiert )&lt;br /&gt;
acl = lan UND schlechte_domains&lt;br /&gt;
&lt;br /&gt;
Jetzt wollen wir z.B den Nutzern im unprivilegierten Netz auch die Möglichkeit geben, während der Mittagspause frei im Internet surfen zu können. Dazu benutzt man den acl-Typ &amp;quot;time&amp;quot;:&lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl mittag time 12:00-12:30&lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow unprivilegiert mittag&lt;br /&gt;
Hier wird eine acl mittag definiert, die einen Zeitbereich annimmt. Diese wird mit der acl unprivilegiert in einer Regel verknüpft.&lt;br /&gt;
&lt;br /&gt;
===Authentifizierung===&lt;br /&gt;
&lt;br /&gt;
====Passwortdatei====&lt;br /&gt;
Mit dem Programm htpasswd (ruft Systemfunktion crypt auf )das bei jeder Distribution dabei sein sollte können ein Passwortdatei erzeugen. &lt;br /&gt;
 root@zero:/etc/squid3# htpasswd -c passwd xinux&lt;br /&gt;
 New password: &lt;br /&gt;
 Re-type new password: &lt;br /&gt;
 Adding password for user xinux&lt;br /&gt;
 root@zero:/etc/squid3# cat passwd &lt;br /&gt;
 xinux:5AZTQ/gAwdlOU&lt;br /&gt;
 root@zero:/etc/squid3#&lt;br /&gt;
&lt;br /&gt;
====Konfigurationsdatei====&lt;br /&gt;
 #auth-sektion&lt;br /&gt;
 auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/passwd&lt;br /&gt;
 auth_param basic children 5&lt;br /&gt;
 auth_param basic concurrency 0&lt;br /&gt;
 auth_param basic realm Squid proxy-caching web server&lt;br /&gt;
 auth_param basic casesensitive off&lt;br /&gt;
 &lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl autorisiert proxy_auth REQUIRED&lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow unprivilegiert autorisiert&lt;br /&gt;
In der Konfigurationsdatei wird nun ein Programm angegeben, das für die Authentifizierung aufgerufen wird. Dieses liest Daten aus der zuvor angefertigten Passwortdatei. Dann muss eine acl mit dem typ &amp;quot;proxy_auth&amp;quot; erstellt werden, welche in einer Regel angewendet wird. So kann hier auch ein Nutzer aus dem unprivilegierten Netz Zugang zum Internet bekommen, sollte er sich authentifizieren können.&lt;br /&gt;
&lt;br /&gt;
===Caching===&lt;br /&gt;
Squid benutzt den Hauptspeicher und ein Verzeichnis, um Anfragen zu cachen und diese bei erneuten Anfragen direkt auszuliefern.&lt;br /&gt;
====Anlegen des Caches====&lt;br /&gt;
 root@zero:/etc/squid3# cd /var/cache/&lt;br /&gt;
 root@zero:/var/cache# mkdir squid&lt;br /&gt;
 root@zero:/var/cache# chown proxy:proxy squid/&lt;br /&gt;
 root@zero:/var/cache# ls -l | grep squid&lt;br /&gt;
 drwxr-xr-x  2 proxy    proxy    4096 2009-07-10 09:53 squid&lt;br /&gt;
Hier wird ein Verzeichnis angelegt, welches dem Benutzer proxy beschreibbar sein, da der Squid nicht unter root, sondern unter einem unprivilegierten Benutzer läuft.&lt;br /&gt;
 #cache-sektion&lt;br /&gt;
 cache_dir ufs /var/cache/squid 100 16 256&lt;br /&gt;
cache_dir ''typ verzeichnis MB L1 L2''&lt;br /&gt;
&lt;br /&gt;
In der Konfigurationsdatei wird dieses Verzeichnis angegeben. Der Typ &amp;quot;ufs&amp;quot; ist das Standardspeichersystem des Squid. Es können aber auch andere Typen wie aufs oder diskd benutzt werden. Die Optionen hinter dem Verzeichnisnamen, geben Speicherplatz und Verzeichnisstruktur an. MB gibt an, wieviel Speicherplatz Squid in diesem Verzeichnis benutzt (es können auch mehrere Verzeichnisse zur Speicherverteilung auf verschiedene Partitionen angegeben werden), L1 gibt an wieviele First-Level-Unterverzeichnisse angelegt werden, L2 gibt an, wieviele Second-Level-Unterverzeichnisse in jedem First-Level-Verzeichnis angelegt werden (Baum-Struktur).&lt;br /&gt;
 root@zero:/var/cache# /etc/init.d/squid3 restart&lt;br /&gt;
 * Restarting Squid HTTP Proxy 3.0 squid3&lt;br /&gt;
 *   Waiting...                                                                  &lt;br /&gt;
 * ...                                                                          &lt;br /&gt;
 * ...                                                                          &lt;br /&gt;
 * ...                                                                          &lt;br /&gt;
 * ...                                                                          &lt;br /&gt;
 * ...                                                                         &lt;br /&gt;
 * ...                                                                  [ OK ] &lt;br /&gt;
 * Creating Squid HTTP Proxy 3.0 cache structure&lt;br /&gt;
 2009/07/10 09:59:24| Creating Swap Directories&lt;br /&gt;
 2009/07/10 09:59:24| /var/cache/squid exists&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/00&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/01&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/02&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/03&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/04&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/05&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/06&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/07&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/08&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/09&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0A&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0B&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0C &lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0D&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0E&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0F&lt;br /&gt;
                                                                        [ OK ]&lt;br /&gt;
 root@zero:/var/cache/squid# ls&lt;br /&gt;
 00  01  02  03  04  05  06  07  08  09  0A  0B  0C  0D  0E  0F  swap.state&lt;br /&gt;
 root@zero:/var/cache/squid# cd 00&lt;br /&gt;
 root@zero:/var/cache/squid/00# ls&lt;br /&gt;
 00  0E  1C  2A  38  46  54  62  70  7E  8C  9A  A8  B6  C4  D2  E0  EE  FC&lt;br /&gt;
 01  0F  1D  2B  39  47  55  63  71  7F  8D  9B  A9  B7  C5  D3  E1  EF  FD&lt;br /&gt;
 02  10  1E  2C  3A  48  56  64  72  80  8E  9C  AA  B8  C6  D4  E2  F0  FE&lt;br /&gt;
 03  11  1F  2D  3B  49  57  65  73  81  8F  9D  AB  B9  C7  D5  E3  F1  FF&lt;br /&gt;
 04  12  20  2E  3C  4A  58  66  74  82  90  9E  AC  BA  C8  D6  E4  F2&lt;br /&gt;
 05  13  21  2F  3D  4B  59  67  75  83  91  9F  AD  BB  C9  D7  E5  F3&lt;br /&gt;
 06  14  22  30  3E  4C  5A  68  76  84  92  A0  AE  BC  CA  D8  E6  F4&lt;br /&gt;
 07  15  23  31  3F  4D  5B  69  77  85  93  A1  AF  BD  CB  D9  E7  F5&lt;br /&gt;
 08  16  24  32  40  4E  5C  6A  78  86  94  A2  B0  BE  CC  DA  E8  F6&lt;br /&gt;
 09  17  25  33  41  4F  5D  6B  79  87  95  A3  B1  BF  CD  DB  E9  F7&lt;br /&gt;
 0A  18  26  34  42  50  5E  6C  7A  88  96  A4  B2  C0  CE  DC  EA  F8&lt;br /&gt;
 0B  19  27  35  43  51  5F  6D  7B  89  97  A5  B3  C1  CF  DD  EB  F9&lt;br /&gt;
 0C  1A  28  36  44  52  60  6E  7C  8A  98  A6  B4  C2  D0  DE  EC  FA&lt;br /&gt;
 0D  1B  29  37  45  53  61  6F  7D  8B  99  A7  B5  C3  D1  DF  ED  FB&lt;br /&gt;
 root@zero:/var/cache/squid/00#&lt;br /&gt;
Hier sieht man, das Squid im Verzeichnis /var/cache/squid 16 Verzeichnisse von 00-0F und in jedem Unterverzeichnis weitere 256 Verzeichnisse 00-FF angelegt hat.&lt;br /&gt;
&lt;br /&gt;
====Konfiguration====&lt;br /&gt;
Nun können weitere Optionen in der Konfigurationsdatei angegeben werden.&lt;br /&gt;
 cache_mem 32 MB&lt;br /&gt;
Gibt an, wieviel Hauptspeicher zum Cachen für Squid verwendet wird&lt;br /&gt;
 cache_swap_low 90&lt;br /&gt;
 cache_swap_high 95&lt;br /&gt;
Diese beiden Optionen geben den unteren und oberen Threshold für die Füllung des Caches an in % an. Wird die untere Marke überschritten, beginnt Squid entsprechend der cache_replacement_policy Objekte aus dem Cache zu entfernen. Wird die obere Marke erreicht, erfolgt die Räumung aggressiver. Wird die untere Marke unterschritten, wird der Prozess beendet.&lt;br /&gt;
 minimum_object_size 0 KB&lt;br /&gt;
 maximum_object_size 8192 KB&lt;br /&gt;
minimum_object_size gibt an, wie groß ein Objekt mindestens sein muss, um im Cache gespeichert zu werden, maximum_object_size die maximale Größe.&lt;br /&gt;
 maximum_object_size_in_memory 64 KB&lt;br /&gt;
maximum_object_size_in_memory gibt an, wie groß ein Objekt höchstens sein darf, um im Hauptspeicher gecacht zu werden.&lt;br /&gt;
 ipcache_size 1024&lt;br /&gt;
Hier wird die maximale Anzahl der IP-Cache Einträge bestimmt.&lt;br /&gt;
 ipcache_low 90&lt;br /&gt;
 ipcache_high 95&lt;br /&gt;
Thresholds der IP-Cache-Einträge, entsprechend zu cache_swap_low und _high.&lt;br /&gt;
 fqdncache_size 1024&lt;br /&gt;
Maximale Anzahl der FQDN-Cache-Einträge.&lt;br /&gt;
 cache_replacement_policy lru&lt;br /&gt;
 memory_replacement_policy lru&lt;br /&gt;
Diese Einträge bestimmen, mit welchem Verfahren Objekte aus dem Cache entfernt werden. lru steht für least recently used, d.h. Squid löscht bei diesem Verfahren die Einträge, die am längsten nicht mehr angefragt wurden. Es gibt außerdem:&lt;br /&gt;
&lt;br /&gt;
heap GDFS (Greed-Dual Size Frequency): Optimiert die Objekt-Hitrate. Kleine häufig angefragte Objekte werden auf Kosten großer, weniger häufig angefragter Objekte im Cache gehalten. Damit wird die Warscheinlichkeit eines Objekt-Hits gesteigert.&lt;br /&gt;
&lt;br /&gt;
heap LFUDA (Least frequently used with dynamic aging): Optimiert die Byte-Hitragte. Häufig angefrage Objekte werden im Cache gehalten, slten angefragte Objekte werden freigegeben, unabhängig von deren Größe. Damit wird ein häufiger angefrages, großes Objekt ggf. auf Kosten vieler kleiner Objekte im Cache gehalten.&lt;br /&gt;
&lt;br /&gt;
heap lru (erweitertes lru-Verfahren).&lt;br /&gt;
&lt;br /&gt;
===Delay-Pools===&lt;br /&gt;
Mit Delay-Pools kann man eine Bandbreitensteuerung über Squid implementieren.&lt;br /&gt;
 #delay_pools-sektion&lt;br /&gt;
 delay_pools 2&lt;br /&gt;
Hier wird die Anzahl der Pools angegeben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #delay_claas ''pool'' ''class''&lt;br /&gt;
 delay_class 1 1&lt;br /&gt;
 delay_class 2 2&lt;br /&gt;
Jeder der Pools wird einer Klasse zugeordnet. Es gibt insgesamt 5 Klassen, die verschiedene Methoden zur Bandbreitensteuerung anbieten.&lt;br /&gt;
&lt;br /&gt;
Klasse 1: Die gesamte Bandbreite wird über ein Parameterpaar gesteuert.&lt;br /&gt;
&lt;br /&gt;
Klasse 2: Es werden 2 Parameterpaare angegeben. Das erste bestimmt die gesamte Bandbreite, das zweite bestimmt die individuelle Bandbreite eines Hosts anhand des letzten Bytes der IP-Adresse.&lt;br /&gt;
&lt;br /&gt;
Klasse 3: Zusätzlich zu den 2 Parametepaaren in Klasse 2 gibt es noch ein drittes Paar, welches die Bandbreite eines ganzen Klasse-C-Netzes beschränkt.&lt;br /&gt;
&lt;br /&gt;
Klasse 4: Wie Klasse 3, jedoch gibt es noch ein zusätzliches Parameterpaar, welches anhand des Benutzernamens die Bandbreite beschränkt. Diese Limitierung tritt nur in Kraft, sollte ein Request eine Benutzerauthentifizierung erfordert haben (siehe Authentifizerung).&lt;br /&gt;
&lt;br /&gt;
Klasse 5: Die Bandbreitenregulierung erfolgt nicht wie in Klasse 2-4 über IP-Adressen oder Benutzer, sondern über ein Tag, welches angegeben wird und einen Request identifiziert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 delay_parameters 1 10000/20000&lt;br /&gt;
 delay_parameters 2 20000/40000 1000/2000&lt;br /&gt;
 delay_access 1 allow privilegiert&lt;br /&gt;
 delay_access 2 allow unprivilegiert&lt;br /&gt;
 delay_access 1 deny all&lt;br /&gt;
 delay_access 2 deny all&lt;br /&gt;
&lt;br /&gt;
Nun müssen den Delay-Pools noch die Parameter übergeben werden. Der Delay-Pool mit Klasse 1 erhält ein Parameterpaar. Dieses Parameterpaar setzt sich zusammen aus restore- und einem maximum-Wert. Der restore-Wert bestimmt die eigentliche Bandbreite in Byte/Sekunde, der maximum-Wert bestimmt die maximale Datenmenge in Byte, die auf einmal übertragen wird.&lt;br /&gt;
&lt;br /&gt;
Die mit maximum definierte Datenmenge wird ganz normal über das Netz übertragen, ggf. mit der vollen zur Verfügung stehenden Bandbreite und ohne weitere Begrenzung. Anhand des eigentlichen Bandbreitenwertes restore berechnet Squid, wie lange er das nächste Paket verzögern muss, um auf die durchschnittliche, mit restore vorgegebene Bandbreite zu kommen. So wird die vorgegebene Nettobandbreite im Mittel durchaus gehalten, ein einzelnes Datenpaket kann jedoch deutlich schneller zum Client transportiert werden.&lt;br /&gt;
&lt;br /&gt;
Mit delay-access wird nun festelegt, welche Pools auf welche acl angewendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=ads mitglied=&lt;br /&gt;
*http://blog.stefan-betz.net/2009/1/7/hochzeit:-squid-3-und-active-directory/&lt;br /&gt;
*http://www.woy.de/?p=29&lt;br /&gt;
&lt;br /&gt;
=sarg=&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install sarg apache2&lt;br /&gt;
sudo cp /etc/sarg/sarg.conf /etc/sarg/sarg.conf.old&lt;br /&gt;
sudo cat /etc/sarg/sarg.conf.old | grep -v ^# | grep -v ^$ &amp;gt; /etc/sarg/sarg.conf&lt;br /&gt;
the value of the bold lines. If you are not using Squid3, the common location for the access_log is /var/log/squid/access.log. ändern in squid3!!!!!!!!!!!!&lt;br /&gt;
sudo ln -sv /var/lib/sarg/ /var/www/&lt;br /&gt;
sudo sarg-reports today&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==apache==&lt;br /&gt;
vi /etc/apache2/sites-available/000-default.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
        ServerAdmin technik@xinux.de&lt;br /&gt;
        DocumentRoot /var/www/sarg&lt;br /&gt;
        &amp;lt;Directory /&amp;gt;&lt;br /&gt;
                Options FollowSymLinks&lt;br /&gt;
                AllowOverride None&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
        &amp;lt;Directory /var/www/sarg/&amp;gt;&lt;br /&gt;
                AllowOverride None&lt;br /&gt;
                Options FollowSymLinks +ExecCGI MultiViews&lt;br /&gt;
                Order allow,deny&lt;br /&gt;
                Allow from all&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
        ErrorLog ${APACHE_LOG_DIR}/error-sarg.log&lt;br /&gt;
        LogLevel warn&lt;br /&gt;
        CustomLog ${APACHE_LOG_DIR}/access-sarg.log combined&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 service apache2 restart&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Squid&amp;diff=4652</id>
		<title>Squid</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Squid&amp;diff=4652"/>
		<updated>2014-07-18T08:40:20Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* Allgemein */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Der Einsatz von Computernetzwerken in Firmen jeglicher Größe hat in den letzten&lt;br /&gt;
Jahren stark zugenommen. Dabei haben viele Firmen neben dem&lt;br /&gt;
lokalen Netz auch eine Anbindung an ein öffentliches Netz und damit meist&lt;br /&gt;
auch Zugang zum Internet.&lt;br /&gt;
&lt;br /&gt;
Damit verbindet sich ein weltweiter Ausbau dieses Netzes und ein steigendes&lt;br /&gt;
Angebot an Serviceleistungen, die über das Internet angeboten werden. Als&lt;br /&gt;
neuere Technologie sei hier nur die Internettelefonie genannt. Dies bedeutet&lt;br /&gt;
allerdings auch, daß die zu übertragenden Datenmengen ständig zunehmen,&lt;br /&gt;
was zu Engpässen und langen Übertragungszeiten führt.&lt;br /&gt;
&lt;br /&gt;
Für die Unternehmen bedeuten die zunehmenden Datenmengen aber auch&lt;br /&gt;
in erheblichem Maße zunehmende Kosten. Deshalb sind Technologien&lt;br /&gt;
gefragt, die dabei helfen können, diese Datenmengen und damit auch die&lt;br /&gt;
Kosten entsprechend einzuschränken.&lt;br /&gt;
&lt;br /&gt;
Die Anbindung an öffentliche Netze bedeutet aber auch immer ein Risiko, da&lt;br /&gt;
es selten möglich ist, eine Verbindung nur in eine Richtung aufzubauen.&lt;br /&gt;
Dadurch bieten sich Angriffspunkte, die von einigen Leuten ausgenutzt&lt;br /&gt;
werden, um an Daten zu kommen oder Schaden in dem Netz anzurichten.&lt;br /&gt;
Auch hier herrscht großer Bedarf an neuen Lösungen, um einen Kom-promiß&lt;br /&gt;
zwischen Sicherheit und Kommunikation zu finden.&lt;br /&gt;
&lt;br /&gt;
Im Internetbereich bietet sich für beide Gebiete der Einsatz von Proxy-&lt;br /&gt;
Agenten an. Proxy ist das englische Wort für Stellvertreter. Und genau diese&lt;br /&gt;
Aufgabe soll ein Proxy-Agent übernehmen.&lt;br /&gt;
&lt;br /&gt;
Gerade bei großen Netzwerken macht sich der Einsatz eines solchen Proxy-&lt;br /&gt;
Agenten positiv bemerkbar, da er neben einer Verringerung der Netzlast im&lt;br /&gt;
und zum öffentlichen Netz auch einen Performancegewinn innerhalb des&lt;br /&gt;
lokalen Netzes bewirkt.&lt;br /&gt;
&lt;br /&gt;
=Einsatz von Proxy-Servern=&lt;br /&gt;
==Einsatzgebiete und Funktionalität==&lt;br /&gt;
Mit der immer größer werdenden Vernetzung und Globalisierung wachsen&lt;br /&gt;
auch immer mehr die Probleme der Betreiber von lokalen Netzen.&lt;br /&gt;
Einerseits müssen die Kosten für den Datentransfer mit dem Internet&lt;br /&gt;
gering gehalten werden und zum anderen stellt die Anbindung an ein&lt;br /&gt;
öffentliches Netz auch immer einen Angriffspunkt dar.&lt;br /&gt;
&lt;br /&gt;
Die Gefahren sind dabei recht vielfältig. Zum einen ist es in größeren&lt;br /&gt;
Netzwerken dem Administrator meist nicht möglich, die Konfiguration aller&lt;br /&gt;
Computer ständig zu überwachen und nach Sicherheitslücken zu suchen,&lt;br /&gt;
zumal oft auch die notwendige Software recht teuer ist oder vorhandene&lt;br /&gt;
sich nicht so verhält, wie man es gerne hätte. Zweitens ist eine Verbindung&lt;br /&gt;
ins Internet auch immer mit Datentransfer in beiden Richtungen&lt;br /&gt;
verbunden, wodurch von außen ein Angreifer durch getarnte Datenpakete&lt;br /&gt;
in das lokale Netz eindringen und dort Schaden anrichten kann. Hier seien&lt;br /&gt;
Computerviren in ihren vielen Erscheinungsformen erwähnt. Zum Dritten&lt;br /&gt;
stellen die Anwender selber eine gewisse Gefahr dar, indem sie den&lt;br /&gt;
Zugang zum Internet mißbräuchlich oder unbeabsichtigt nutzen, was sehr&lt;br /&gt;
hohe Kosten verursachen kann.&lt;br /&gt;
&lt;br /&gt;
Dieses Problem läßt sich im Internet mit Hilfe eines Proxy-Servers lösen.&lt;br /&gt;
Proxy ist das englische Wort für Stellvertreter. Wie der Name schon&lt;br /&gt;
vermuten läßt, tritt ein Proxy-Server als Stellvertreter auf. Will nun ein&lt;br /&gt;
Client im lokalen Netz ein Dokument aus dem Internet anfordern, muß er&lt;br /&gt;
die Anfrage an den Proxy-Server leiten, der dann die Anfrage an den&lt;br /&gt;
Server weiterleitet. Daraus wird ersichtlich, daß ein Proxy-Server zwei&lt;br /&gt;
Gesichter haben muß. Nach innen zum Client muß er den Internetserver&lt;br /&gt;
vertreten und nach außen wiederum stellt er sich als Client dar. Dies hat&lt;br /&gt;
aus Sicht der Sicherheit noch den weiteren Vorteil, daß nach außen hin nur&lt;br /&gt;
der Proxy-Server sichtbar ist und das Netz dahinter für einen möglichen&lt;br /&gt;
Angreifer unsichtbar bleibt. Ein Proxy muß daher beide Seiten der&lt;br /&gt;
Kommunikation beherrschen. Wie so eine Kommunikation aussieht, ist in&lt;br /&gt;
 [[Image:squid1.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Caching==&lt;br /&gt;
Die Übertragungsraten im Internet sind oft sehr gering, da bestimmte Leitungen, insbesondere transkontinentale, stark belastet sind. Dadurch kann es wiederum vorkommen, daß die Leitung nach außen ausgelastet ist und durch lange Wartezeiten die Kosten der Übertragung in die Höhe gehen.&lt;br /&gt;
&lt;br /&gt;
Ein Ansatzpunkt, die Auslastung und Performance zu optimieren, ist das Zwischenspeichern von Objekten. Dies macht im Internet Sinn, da es oft vorkommt, daß ein Dokument in einem lokalen Netz mehrmals von verschiedenen Clients angefordert wird. Dieses Zwischenspeichern oder Caching von Dokumenten übernimmt ebenfalls der Proxy-Server, der deshalb auch oft als Proxy-Cache bezeichnet wird. Fordert ein Client ein Dokument von einem Server an, so leitet der Proxy die Anfrage an den Server weiter. Dieser liefert das angeforderte Dokument an den Proxy, der es dann an den Client weiter reicht und eine Kopie in seinem Speicher behält. Kommt nun von einem zweiten Client die Anfrage auf dasselbe Dokument, leitet der Proxy diese nicht an den Server weiter, sondern liefert das Dokument aus seinem Speicher direkt an den Client &lt;br /&gt;
 [[Image:squid2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Dies macht deutlich, welche Vorteile ein Proxy-Cache bietet. Zum einen wird die externe Leitung nicht unnötig mit dem mehrmaligen Holen desselben Objektes belastet, es fallen also für die Übertragung keine Kosten an, und außerdem wird die Performance für die Clients im LAN deutlich erhöht. Untersuchungen haben gezeigt, daß die Trefferquoten beim Einsatz eines Proxy-Caches bis zu 50% sind, also fast jede zweite Anfrage nach außen einspart.&lt;br /&gt;
==Sinnvolles Caching==&lt;br /&gt;
Um ein sinnvolles Caching zu erreichen, müssen gewisse Voraussetzungen gegeben sein. Diese fangen damit an, daß die Maschine, auf der ein solcher Proxy-Server läuft von der Hardware entsprechend ausgestattet sein muß. Je nach der Anzahl der Clients, die den Proxy benutzen muß die Leistungsfähigkeit des Rechners ausgelegt sein, damit auch genügend Anfragen gleichzeitig bearbeitet werden können. Um die Trefferquote auf die im Cache abgelegten Objekte zu erhöhen, sollte auch entsprechende Speicherkapazität vorhanden sein. Diese sollte auf jeden Fall mehrere Gigabyte umfassen. Da aber in der letzten Zeit die Preise für Festplattenspeicher enorm nach unten gegangen sind, sollte dies heute kein größeres Problem mehr darstellen. &lt;br /&gt;
Die Hardwarevoraussetzungen alleine machen aber noch keinen guten Proxy-Cache aus, sondern bilden nur eine solide Grundlage. Ein viel größeres Problem ist es, daß die Lebensdauer von Web-Seiten sehr unterschiedlich ist. Dadurch kann nie mit Sicherheit bestimmt werden, wann sich eine Seite ändert und dadurch veraltet ist und aus dem Cache gelöscht, bzw. beim Server neu angefordert werden soll. Es kann also immer vorkommen, daß der Cache ein veraltetes Dokument an den Client liefert. Durch verschiedene Strategien wird versucht, dieses Manko so weit wie möglich auszugleichen. &lt;br /&gt;
HTTP bietet dazu zwei Möglichkeiten: Last-Modified und Expires. Mit der Antwort des Servers werden diese Information an den Proxy mitgeteilt. Mit Last-Modified wird angezeigt, wann das Dokument das letzte mal geändert wurde. Mit der Angabe Expires erhält der Client (in diesem Falle der Proxy) Informationen, wann er das Dokument als veraltet ansehen soll und vom Server neu anfordern muß. In einem HTML-Dokument werden diese Angaben im Header generiert. Dazu wird das META-Element benutzt. Die Informationen sehen dann wie im folgenden Beispiel aus: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;META HTTP-EQUIV=“Last-Modified“ CONTENT=“Thu Jan 1 12:00:00 GMT DST 1998“&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;META HTTP-EQUIV=“Expires“ CONTENT=“Thu Dec 31 12:00:00 GMT DST 1998“&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Allein die Expires-Angabe würde reichen, um den Cache in dieser Hinsicht zu optimieren. Jedoch sind diese Angaben optional und werden sehr selten eingesetzt. Außerdem ist es oft schwierig die Lebensdauer einer Web-Seite vorauszusagen. Daher sind die meisten Web-Seiten einfach so lange gültig, bis der Autor eine neue Version erstellt. Anders sieht es bei Last-Modified aus. Diese Angabe findet sich zwar selten explizit in HTML-Dokumenten, jedoch trägt jedes Dokument als Datei einen Zeitstempel, welcher vom Server dann als Last-Modified-Header mitgeliefert wird.&lt;br /&gt;
&lt;br /&gt;
Die Proxy-Server wenden damit ein einfaches Verfahren ein, um die Lebensdauer eines Dokumentes zu „erraten“. Dabei wird zugrunde gelegt, daß die Wahrscheinlichkeit recht gering ist, daß ein recht altes Dokument in den nächsten Stunden geändert wird. Bei einem Dokument, welches dagegen erst vor kurzem geändert wurde, ist die Möglichkeit einer baldigen Aktualisierung eher vorhanden.Sofern ein Objekt keinen Expires-Header aufweist, erzeugt der Proxy-Server mit Hilfe des Last-Modified-Headers ein künstliches Verfallsdatum. Dazu bestimmt er das Alter der Datei und schlägt einen Prozentsatz dazu, der bei der Konfiguration des Proxy-Servers eingetragen wird (Direktive refresh_pattern), und holt frühestens nach Ablauf dieser Zeit von sich aus das Dokument erneut vom Server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ist beispielsweise ein Dokument zum Zeitpunkt der ersten Anfrage des Proxies bereits 150 Tage alt und der Prozentsatz aus der Konfiguration ist 20%, so vergehen weitere 30 Tage, bis der Proxy-Server eine erneute Anfrage an den Originalserver stellt. &lt;br /&gt;
&lt;br /&gt;
Um dies weiter zu optimieren wird das Dokument nur dann übertragen, wenn die Version auf dem Originalserver wirklich neuer ist, als die im Cache gespeicherte. Dazu schickt der Proxy eine Anfrage an den Originalserver, in der nur der Zeitstempel der Datei enthalten ist. Der Server vergleicht nun den empfangenen Zeitstempel der angeforderten Datei und sendet diese nur dann vollständig zurück, wenn sie jünger ist, als die im Proxy-Cache hinterlegte Kopie. Im anderen Falle erhält der Proxy nur eine kurze, aus HTTP-Headern bestehende Antwort, die signalisiert, daß keine Änderung stattgefunden hat. Der Proxy registriert dies und errechnet ein neues Verfallsdatum. &lt;br /&gt;
&lt;br /&gt;
Neben diesen statischen Objekten, die eine gewisse Lebensdauer haben, gibt es aber auch dynamische Objekte, bei denen eine Zwischenspeicherung nicht angebracht ist. Dies sind beispielsweise HTML-Seiten, die ein CGI-Skript für Datenbankabfragen enthalten oder Seiten, die eine Berechtigung verlangen.&lt;br /&gt;
&lt;br /&gt;
Es kann von beiden Seiten erzwungen werden, daß ein Objekt nicht im Cache gespeichert wird. Auf Seiten des Proxy-Servers erfolgt dies durch eine Einstellung in der Konfiguration. Damit ist es möglich, daß Seiten, die bestimmte Elemente (z.B. cgi-bin, ?, o.ä.) im URL enthalten nicht gespeichert werden. Dies kann man auch für ausgewählte Domänen angeben, was dann sinnvoll ist, wenn sich der Cache in einem Netz befindet, in dem selbst Web-Seiten angeboten werden. &lt;br /&gt;
&lt;br /&gt;
Befindet sich beispielsweise der Proxy-Cache in dem Netz der Domäne testdomain.de, womöglich sogar auf dem selben Rechner wie der Web-Server, so wäre es Unsinn, die Seiten, die dort angeboten werden in den Cache zu legen, da dies unnötig Speicher verbraucht. Von Seiten des Anbieters kann dies über den Einbau einer Authentisierung erfolgen. Dadurch wird bei der Abfrage eines Objektes nach einer Benutzerkennung und einem Paßwort gefragt. Diese Informationen und auch Seiten, die eine Identifikation verlangen, werden standardmäßig nicht vom Proxy gespeichert und müssen jedesmal neu vom Originalserver geholt werden. &lt;br /&gt;
&lt;br /&gt;
==Hierarchisches Caching==&lt;br /&gt;
Bei einigen Proxy-Servern ist es möglich, die Größe des Caches anzugeben, welcher im Hauptspeicher des Rechners liegt. Übertragene Objekte werden dort eine gewisse Zeit gehalten, um schnellere Antwortzeiten zu erreichen, falls ein Objekt innerhalb kurzer Zeit von zwei verschiedenen Clients angefordert wird. Dabei kann meist über den Parameter TTL (Time-to-Live) die Zeitdauer angegeben werden, die ein Objekt maximal in diesem Cache gehalten wird. &lt;br /&gt;
&lt;br /&gt;
Eine weitere Möglichkeit, die Performance zu erhöhen und geringere Antwortzeiten zu erhalten, ist das hierarchische Caching. Banal gesagt setzt man einen Proxy für den Proxy ein. Dadurch kann die Trefferquote auf Objekte nochmals verbessert werden. Dies macht besonders deshalb Sinn, da die Datenmengen, die über die bestehenden Leitungen übertragen werden, immer größer werden und es immer wieder zu Engpässen kommt, die lange Übertragungszeiten verursachen. Das hierarchische Caching führt dabei zu einer Entlastung. Damit die Proxy-Caches miteinander kommunizieren können, wurde ein spezielles Protokoll entwickelt, das ICP (Internet Caching Protocol). Dabei schicken Proxy-Caches für das gewünschte Objekt Anfragen an benachbarte und in der Hierarchie höher stehende Proxy-Caches. Ist das Objekt in einem dieser Caches vorhanden, wird es übertragen, andernfalls wird es vom Originalserver geholt. Da das ICP auf UDP basiert, ist es sehr schnell und bedeutet somit einen vertretbaren Performanceverlust, der durch eine erhöhte Trefferquote mehr als ausgeglichen wird.&lt;br /&gt;
 [[Image:squid3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Begriffe===&lt;br /&gt;
&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
|Neighbours	&lt;br /&gt;
|Dies sind alle Proxies, die ein Proxy kennt und mit denen er kommuniziert.&lt;br /&gt;
|-&lt;br /&gt;
|Siblings&lt;br /&gt;
|Die Geschwisterproxies. Sie liegen mit dem Proxy-Server auf einer Ebene. Siblings liefern in der Regel nur Objekte, die sie selbst im Cache haben,&lt;br /&gt;
|-&lt;br /&gt;
|Parents&lt;br /&gt;
|Übergeordnete Proxies. Sie liefern Objekte die sie selbst im Cache haben und leiten Anfragen an den Originalserver weiter.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Was ist Squid=&lt;br /&gt;
&lt;br /&gt;
Quelle: http://squid.nlanr.net/Squid/  bzw. http://www.squid-cache.org&lt;br /&gt;
&lt;br /&gt;
Squid, ein Beispiel für einen Proxy-Server mit Cache-Mechanismus, ist aus der cached Software des Harvest Forschungsprojektes hervorgegangen. Informationen über Harvest sind auf folgender Webseite zu finden: &lt;br /&gt;
&lt;br /&gt;
http://harvest.cs.colorado.edu/ &lt;br /&gt;
&lt;br /&gt;
Proxy-Systeme mit Cache-Mechanismen dienen meist der Performancesteigerung von Datentransfers, die bei langsamer Internet-Anbindung sehr groß sein kann, wenn Daten wiederholt angefordert werden. &lt;br /&gt;
&lt;br /&gt;
=Funktionsbeschreibung=&lt;br /&gt;
Squid, der Internet Object Cache, ist jedoch mehr als ein einfacher Cache-Proxy. Durch die Unterstützung von Neighbor-Caches, die entweder als parent oder sibling verwendet werden, kann man einen Cache-Verbund aufbauen, der einen hohen Prozentsatz von Anfragen beantworten kann, ohne langwierige Internet-Zugriffe zu erfordern. Dieses Verfahren verwenden zum Beispiel einige der großen Internet-Provider (wie ECRC in München), um den Datentransfer wenn möglich auf der eigenen Netzwerkstruktur abzuwickeln und damit Kosten für externe Zugriffe zu umgehen. &lt;br /&gt;
&lt;br /&gt;
Die Arbeitsweise von Squid ist einfach: &lt;br /&gt;
&lt;br /&gt;
Eine Anfrage eines Clients wird zuerst auf die Zugriffsberechtigung untersucht, so kann man z.B. gewissen Rechnern einen Zugriff auf den Proxy ganz verbieten (siehe Konfiguration). &lt;br /&gt;
&lt;br /&gt;
Es wird versucht, die gewünschten Daten im lokalen Cache zu finden. Sollte dies fehlschlagen, werden andere Proxies im Cache-Verbund (sofern vorhanden),&lt;br /&gt;
abgefragt.&lt;br /&gt;
&lt;br /&gt;
Sind die Daten vorhanden, wird ihre Aktualität geprüft. Sind die Daten veraltet, werden neue in den Cache geholt und an den Client weitergegeben. Bei aktuellen Daten wird das Neuladen übersprungen.&lt;br /&gt;
&lt;br /&gt;
Sind die Daten nicht vorhanden, werden sie in den Cache geladen und an den Client weiter-gereicht. Wie lange Daten im Cache verbleiben, ist abhängig von der Konfiguration (siehe dort)&lt;br /&gt;
&lt;br /&gt;
Eine Beschreibung der internen Abläufe wurde im Sinne der Übersichtlichkeit weggelassen.&lt;br /&gt;
&lt;br /&gt;
=Hilfe und Dokumentation zu Squid=&lt;br /&gt;
&lt;br /&gt;
Hilfe und Dokumentation im Internet:&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
|Die squid Website&lt;br /&gt;
|http://www.squid-cache.org/Doc/&lt;br /&gt;
|-&lt;br /&gt;
|squid IRC Channel&lt;br /&gt;
|Server: irc.freenode.de -Channel: #squid&lt;br /&gt;
|-&lt;br /&gt;
|Mailingliste&lt;br /&gt;
|squid-users@squid-cache.org&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Hilfe und Dokumentation im System&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
|Speziell zur Konfiguration&lt;br /&gt;
|/etc/squid/squid.conf.default&lt;br /&gt;
|-&lt;br /&gt;
|Manualpage&lt;br /&gt;
|man squid&lt;br /&gt;
|-&lt;br /&gt;
|Mitgelieferte Dokumentation&lt;br /&gt;
|/usr/share/doc/squid/&lt;br /&gt;
|}&lt;br /&gt;
=Squid unter Ubuntu=&lt;br /&gt;
==Installation==&lt;br /&gt;
 root@zero:~# apt-get install squid3 squid3-common&lt;br /&gt;
Testen ob Squid läuft &lt;br /&gt;
 root@zero:~# netstat -lntp | grep 3128&lt;br /&gt;
 tcp        0      0 0.0.0.0:3128            0.0.0.0:*               LISTEN      10743/(squid)&lt;br /&gt;
&lt;br /&gt;
==Start Skript==&lt;br /&gt;
Das Startskript /etc/init.d/squid3 hat folgende Parameter&lt;br /&gt;
&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
|start&lt;br /&gt;
|Startet den Squid-Daemon&lt;br /&gt;
|-&lt;br /&gt;
|stop&lt;br /&gt;
|Stoppt den Squid-Daemon&lt;br /&gt;
|-&lt;br /&gt;
|reload&lt;br /&gt;
|Liest die Konfigurationsdatei neu ein&lt;br /&gt;
|-&lt;br /&gt;
|force-reload&lt;br /&gt;
|das gleiche wie reload&lt;br /&gt;
|-&lt;br /&gt;
|restart&lt;br /&gt;
|Stoppt den Deamon, falls er gestartet war und startet ihn wieder (synonym für stop und start)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Squid Parameter==&lt;br /&gt;
Gestartet werden kann Squid auch ohne das Startskript mit &lt;br /&gt;
 /usr/sbin/squid3 [-cdhvzCDFNRVYX] [-s | -l facility] [-f config-file] [-[au] port] [-k signal]&lt;br /&gt;
Flogende Parameter können eingestellt werden:&lt;br /&gt;
&lt;br /&gt;
{|Border=1 Cellpadding=3&lt;br /&gt;
| -a port&lt;br /&gt;
|verändert die Portnummer für HTTP-Anfragen&lt;br /&gt;
|-&lt;br /&gt;
| -d level&lt;br /&gt;
|Debug Output auf stderr ausgeben&lt;br /&gt;
|-&lt;br /&gt;
| -f file&lt;br /&gt;
|gibt eine alternative Konfigurationsdatei zu /etc/squid3/squid.conf an&lt;br /&gt;
|-&lt;br /&gt;
| -k&lt;br /&gt;
|mit dieser option können dem laufenden Squid verschiedene Steuersignale übergeben werden&lt;br /&gt;
|-&lt;br /&gt;
| -k reconfigure&lt;br /&gt;
|die Konfigurationsdatei wird nochmals eingelesen&lt;br /&gt;
|-&lt;br /&gt;
| -k rotatate&lt;br /&gt;
|schliesst und öffnet Dateien z.B. log_files&lt;br /&gt;
|-&lt;br /&gt;
| -k shutdown&lt;br /&gt;
|squid wartet kurz und beendet die Verbindung und sich selbst.Mit shutdown_zeit wird Squid nach einer angegebenen Zeit beendet.&lt;br /&gt;
|-&lt;br /&gt;
| -k interrupt&lt;br /&gt;
|sendet einen Interrupt worauf squid sofort abgebrochen wird ohne auf den Verlauf der Verbindungen zu achten.&lt;br /&gt;
|-&lt;br /&gt;
| -k kill&lt;br /&gt;
|bricht squid sofort ab, die Verbindung und die log_files bleiben geöffnet&lt;br /&gt;
|-&lt;br /&gt;
| -k check&lt;br /&gt;
|kontrolliert ob squid läuft&lt;br /&gt;
|-&lt;br /&gt;
| -s&lt;br /&gt;
|erlaubt das Aufnehmen in die syslog&lt;br /&gt;
|-&lt;br /&gt;
| -u port&lt;br /&gt;
|verändert die Portnummer des Internet Cache Protokoll ICP bzw. deaktiviert den Cache-Verbund mit der Portnummer 0&lt;br /&gt;
|-&lt;br /&gt;
| -v&lt;br /&gt;
|zeigt die aktuelle Squid Version&lt;br /&gt;
|-&lt;br /&gt;
| -z&lt;br /&gt;
|richtet cache Verzeichnisse ein&lt;br /&gt;
|-&lt;br /&gt;
| -D&lt;br /&gt;
|Squid führt normalerweise DNS Tests durch die hiermit abgestellt werden können&lt;br /&gt;
|-&lt;br /&gt;
| -F&lt;br /&gt;
|wenn die swap.logs leer sind nützt squid die vollen Systemresourcen um sich um die Anfragen zu kümmern.Dies beschleunigt den Verarbeitungsvorgang&lt;br /&gt;
|-&lt;br /&gt;
| -N&lt;br /&gt;
|der Serverprozess läuft nicht im Hintergrund&lt;br /&gt;
|-&lt;br /&gt;
| -V&lt;br /&gt;
|Aktivierung des httpd Beschleunigungsmodus&lt;br /&gt;
|-&lt;br /&gt;
| -X&lt;br /&gt;
|Full-Debug-Modus&lt;br /&gt;
|-&lt;br /&gt;
| -Y&lt;br /&gt;
|Beschleunigt den ICP austausch bei niederwertigeren Caches&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Konfiguration==&lt;br /&gt;
Squid wird mittels einer normalen Textdatei konfiguriert, die logisch in&lt;br /&gt;
mehrere Teilbereiche unterteilt werden kann. Sie ist unter&lt;br /&gt;
/etc/squid/squid.conf bzw. unter &amp;lt;prefix&amp;gt;/etc/squid.conf zu finden.&lt;br /&gt;
Bei der Installation von Squid wird eine Default-Konfiguration erzeugt, die&lt;br /&gt;
mit minimalen Änderungen bereits einen ersten Testlauf ermöglicht. Für&lt;br /&gt;
die Ausnutzung der vollen Leistung von Squid sollte jedoch eine&lt;br /&gt;
individuelle Anpassung erfolgen.&lt;br /&gt;
&lt;br /&gt;
Alle Zeilen von squid.conf, die mit # beginnen, sind Kommentare bzw.&lt;br /&gt;
nicht aktivierte Optionen. Als Minimalkonfiguration genügen die in Schnellstart beschriebenen&lt;br /&gt;
Einstellungen. Für die genaue Syntax von Optionen sei ebenfalls auf&lt;br /&gt;
squid.conf verwiesen, die folgenden Kapitel geben einen groben Überblick&lt;br /&gt;
über die Möglichkeiten von Squid.&lt;br /&gt;
&lt;br /&gt;
Da die Konfigurationsdatei in Ihrer Fülle und den ganzen Kommentaren&lt;br /&gt;
sehr verwirrend ist kann man sie zunächst einmal auf das Wichtigste reduzieren. Vorher sollte&lt;br /&gt;
die originale squid.conf gesichert werden:&lt;br /&gt;
&lt;br /&gt;
 cp squid.conf squid.conf.org&lt;br /&gt;
 grep  &amp;quot;^[^#]&amp;quot; squid.conf.org &amp;gt; squid.conf&lt;br /&gt;
&lt;br /&gt;
 acl manager proto cache_object&lt;br /&gt;
 acl localhost src 127.0.0.1/32&lt;br /&gt;
 acl to_localhost dst 127.0.0.0/8&lt;br /&gt;
 acl SSL_ports port 443&lt;br /&gt;
 acl Safe_ports port 80		# http&lt;br /&gt;
 acl Safe_ports port 21		# ftp&lt;br /&gt;
 acl Safe_ports port 443	# https&lt;br /&gt;
 acl Safe_ports port 70		# gopher &lt;br /&gt;
 acl Safe_ports port 210		# wais&lt;br /&gt;
 acl Safe_ports port 1025-65535	# unregistered ports&lt;br /&gt;
 acl Safe_ports port 280		# http-mgmt&lt;br /&gt;
 acl Safe_ports port 488		# gss-http&lt;br /&gt;
 acl Safe_ports port 591		# filemaker&lt;br /&gt;
 acl Safe_ports port 777		# multiling http&lt;br /&gt;
 acl CONNECT method CONNECT&lt;br /&gt;
 http_access allow manager localhost&lt;br /&gt;
 http_access deny manager&lt;br /&gt;
 http_access deny !Safe_ports&lt;br /&gt;
 http_access deny CONNECT !SSL_ports&lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
 http_access deny all&lt;br /&gt;
 icp_access deny all&lt;br /&gt;
 htcp_access deny all&lt;br /&gt;
 http_port 3128&lt;br /&gt;
 hierarchy_stoplist cgi-bin ?&lt;br /&gt;
 access_log /var/log/squid3/access.log squid&lt;br /&gt;
 refresh_pattern ^ftp:		1440	20%	10080&lt;br /&gt;
 refresh_pattern ^gopher:	1440	0%	1440&lt;br /&gt;
 refresh_pattern (cgi-bin|\?)	0	0%	0&lt;br /&gt;
 refresh_pattern .		0	20%	4320&lt;br /&gt;
 icp_port 3130&lt;br /&gt;
 coredump_dir /var/spool/squid3&lt;br /&gt;
&lt;br /&gt;
Zur besseren Übersicht unterteilen wir die Konfigdatei&lt;br /&gt;
&lt;br /&gt;
 #allgemeine sektion&lt;br /&gt;
 http_port 3128&lt;br /&gt;
 access_log /var/log/squid3/access.log squid&lt;br /&gt;
 icp_port 3130&lt;br /&gt;
 coredump_dir /var/spool/squid3&lt;br /&gt;
 hierarchy_stoplist cgi-bin ?&lt;br /&gt;
 &lt;br /&gt;
 #refresh&lt;br /&gt;
 refresh_pattern ^ftp:           1440    20%     10080&lt;br /&gt;
 refresh_pattern ^gopher:        1440    0%      1440&lt;br /&gt;
 refresh_pattern (cgi-bin|\?)    0       0%      0&lt;br /&gt;
 refresh_pattern .               0       20%     4320&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl manager proto cache_object&lt;br /&gt;
 acl localhost src 127.0.0.1/32&lt;br /&gt;
 acl to_localhost dst 127.0.0.0/8&lt;br /&gt;
 acl SSL_ports port 443&lt;br /&gt;
 acl Safe_ports port 21 80  443 70 210 280 488 591 777 1025-65535&lt;br /&gt;
 acl CONNECT method CONNECT&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow manager localhost&lt;br /&gt;
 http_access deny manager&lt;br /&gt;
 http_access deny !Safe_ports&lt;br /&gt;
 http_access deny CONNECT !SSL_ports&lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
 http_access deny all&lt;br /&gt;
 icp_access deny all&lt;br /&gt;
 htcp_access deny all&lt;br /&gt;
&lt;br /&gt;
===Allgemein===&lt;br /&gt;
 http_port 3128&lt;br /&gt;
Auf diesem Port lauscht der Squid auf eingehende http-Anfragen der Clients.&lt;br /&gt;
 icp_port 3130&lt;br /&gt;
Auf diesem Port lauscht Squid auf eingehende Anfragen von Nachbar-Proxys&lt;br /&gt;
 access_log /var/log/squid3/access.log squid&lt;br /&gt;
Legt Ort und Art des Loggings für eingehende Requests fest.&lt;br /&gt;
 coredump_dir /var/spool/squid3&lt;br /&gt;
Standardmäßig schreibt Squid corefiles in das Verzeichnis aus dem er gestartet wurden. Wenn mit dieser Option ein Pfad angegeben ist, wechselt Squid nach dem Start in dieses Verzeichnis und legt die corefiles in dieses Verzeichnis ab.&lt;br /&gt;
 hierarchy_stoplist cgi-bin ?&lt;br /&gt;
Hiermit wird eine Liste von Ausdrücken festgelegt, die - wenn sie in dem angefragen URL vorkommen - Squid veranlassen, die Anfrage direkt auszuführen und keine Nachbar-Proxys zu befragen&lt;br /&gt;
&lt;br /&gt;
===Refresh_pattern===&lt;br /&gt;
&lt;br /&gt;
 #refresh_pattern Suchmuster      Min     Prozent Max&lt;br /&gt;
  refresh_pattern ^ftp:           1440    20%     10080&lt;br /&gt;
  refresh_pattern ^gopher:        1440    0%      1440&lt;br /&gt;
  refresh_pattern (cgi-bin|\?)    0       0%      0&lt;br /&gt;
  refresh_pattern .               0       20%     4320&lt;br /&gt;
&lt;br /&gt;
Hier kann der Refresh-Algorithmus von squid für die eigenen Bedürfnisse optimiert werden. &lt;br /&gt;
&lt;br /&gt;
MIN ist die Zeit in Minuten,die ein Objekt ohne explizite Ablaufzeit als Aktuell betrachtet wird. Der ermpfohlene Wert ist 0, jeder höhere Wert könnte dazu führen, dass dynmaische Anwendungen irrtümlich gecachtt&lt;br /&gt;
werden, wenn der Webdesigner keine entsprechenden Gegenaktionen getroffen hat. &lt;br /&gt;
&lt;br /&gt;
PROZENT ist der Prozentsatz eines Objektalters (Zeit seit der letzten&lt;br /&gt;
Modifikation) wo ein Objekt ohne explizite Ablaufzeit als aktuell betrachtet&lt;br /&gt;
wird. &lt;br /&gt;
&lt;br /&gt;
MAX ist ein oberes Limit wie lange Objekte ohne explizite Ablaufzeiten als aktuell betrachtet werden.&lt;br /&gt;
&lt;br /&gt;
 refresh_pattern -i&lt;br /&gt;
Wie refresh_pattern, nur, daß Musterangaben die Groß-/Kleinschreibung&lt;br /&gt;
ignorieren.&lt;br /&gt;
&lt;br /&gt;
===ACL===&lt;br /&gt;
Unter ACL versteht man access control lists, also Filter, die den Zugriff auf den Proxy regeln. Eine ACL muss immer zuerst definiert werden und ein Name gegeben werden. ACLs werden in der Form&lt;br /&gt;
 acl ''aclname acltyp argument'' ...&lt;br /&gt;
 acl ''aclname acltyp &amp;quot;datei&amp;quot;''&lt;br /&gt;
definiert. &lt;br /&gt;
&lt;br /&gt;
====Beispielkonfiguration====&lt;br /&gt;
In der Standardkonfiguration sind 6 ACLs definiert:&lt;br /&gt;
&lt;br /&gt;
Standard- acl für Management-Dienste&lt;br /&gt;
 acl manager proto cache_object &lt;br /&gt;
&lt;br /&gt;
Alles was von localhost (also lokal über das loopback-device) kommt&lt;br /&gt;
 acl localhost src 127.0.0.1/32&lt;br /&gt;
&lt;br /&gt;
Alles was an localhost geht&lt;br /&gt;
 acl to_localhost dst 127.0.0.0/8&lt;br /&gt;
&lt;br /&gt;
acl für SSL_ports (Standard https-port)&lt;br /&gt;
 acl SSL_ports port 443&lt;br /&gt;
&lt;br /&gt;
acl für &amp;quot;sichere Ports&amp;quot;&lt;br /&gt;
 acl Safe_ports port 80 (21,443,70,...)&lt;br /&gt;
&lt;br /&gt;
 acl CONNECT method CONNECT&lt;br /&gt;
&lt;br /&gt;
Nachdem die ACLs definiert sind, müssen diese in Regeln angewendet werden. Die Syntax lautet:&lt;br /&gt;
 ''regeltyp'' allow|deny [!''acl1''] [!''acl2'']&lt;br /&gt;
Eine Regel besagt also, dass ein Zugriff, der auf eine bestimmte Access-List zutrifft, entweder erlaubt (allow) oder verboten wird (deny).&lt;br /&gt;
&lt;br /&gt;
In der Beispielkonfiguration werden http_access und icp-, htcp_access als Regeltyp angewendet, zB. &lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
wendet die Access-Liste 'localhost' an, um den lokalen Zugriff vom Proxy-Server auf http-seiten zu regeln.&lt;br /&gt;
icp_access und htcp_access bzw. icp und htcp sind Protokolle für den Datenaustausch zwischen zwei Servern.&lt;br /&gt;
&lt;br /&gt;
====Eigene Erweiterungen====&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration können wir jetzt erweitern und auf die Bedürfnisse des jeweiligen Netzwerks anpassen. Als Beispiel verwenden wir ein Netzwerk, welches 2 Subnetze enthält, die über einen Proxy, welcher in einer DMZ steht, Verbindungen zum Internet aufbaut. Das 192.168.241.0/24-Netz soll ein privilegiertes Netz sein, d.h Die Clients haben generell mehr Rechte um auf das Internet zuzugreifen, als das andere Netz (192.168.242.0/24).&lt;br /&gt;
&lt;br /&gt;
Als Erstes wollen wir das eine Netz vorläufig komplett für den HTTP-Verkehr freischalten:&lt;br /&gt;
&lt;br /&gt;
ACL für das Netz aufstellen:&lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl privilegiert src 192.168.241.0/24&lt;br /&gt;
ACL anwenden und das Netz freischalten:&lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow privilegiert&lt;br /&gt;
Die beiden Konfigurationsanweisungen müssen nun an korrekter Stelle in die squid.conf eingetragen werden. Bei der ACL ist das nicht so relevant, jedoch zur Übersichtlichkeit wird man sie in den Block mit den anderen ACLs einfügen. Bei der Access-Regel dagegen ist es dagegen von entscheidender Bedeutung, wo die Anweisung steht, da die Konfigurationsdatei von oben nach unten abgearbeitet wird und die erste Regel auf die eine Anfrage passt, wird ausgeführt.&lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow manager localhost&lt;br /&gt;
 http_access deny manager&lt;br /&gt;
 http_access deny !Safe_ports&lt;br /&gt;
 http_access deny CONNECT !SSL_ports&lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
 http_access deny all&lt;br /&gt;
 '''http_access allow privilegiert'''&lt;br /&gt;
Wird die Regel wie hier angezeigt eingefügt, hat das keine Auswirkung auf den Zugriff, da die Regel &amp;quot;http_access deny all&amp;quot; vorher steht, welche auf alles zutrifft und so die Anfrage abweist. Also müssen wir die Regel weiter oben einfügen.&lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow manager localhost&lt;br /&gt;
 http_access deny manager&lt;br /&gt;
 http_access deny !Safe_ports&lt;br /&gt;
 http_access deny CONNECT !SSL_ports&lt;br /&gt;
 http_access allow localhost&lt;br /&gt;
 '''http_access allow privilegiert'''&lt;br /&gt;
 http_access deny all&lt;br /&gt;
&lt;br /&gt;
Das unprivilegierte Netz soll nun auch Zugriff auf das Internet erhalten, jedoch nur in eingeschränktem Maße. Es soll nur auf den für den Arbeitsablauf notwendigen Webseiten Zugriff erhalten. Dies wird so realisiert, dass eine Datei mit Regex-URLs eingerichtet wird, auf die zugegriffen werden darf.&lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl unprivilegiert src 192.168.242.0/24&lt;br /&gt;
 acl gute_domains url_regex -i &amp;quot;/etc/squid3/gute_domains&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow unprivilegiert gute_domains&lt;br /&gt;
Diese Regel hat 2 acls als Argumente. Diese werden in den Access-Regeln durch ein UND verknüpft, d.h. die Regel matcht nur wenn beide acls zutreffen.&lt;br /&gt;
&lt;br /&gt;
Nun wird eine Regel erstellt, damit URLs, auf die niemand zugreifen darf, im gesamten Netzwerk, also in den beiden Subnetzen, verboten wird.&lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl lan src 192.168.241.0/24 192.168.242.0/24&lt;br /&gt;
 acl schlechte_domains url_regex -i &amp;quot;/etc/squid3/schlechte_domains&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access deny lan schlechte_domains&lt;br /&gt;
&lt;br /&gt;
 root@zero:/etc/squid3# cat schlechte_domains &lt;br /&gt;
 ^http://(www.)?pornographische-seite1.de&lt;br /&gt;
 ^http://(www.)?boese-seite2.com&lt;br /&gt;
 root@zero:/etc/squid3# &lt;br /&gt;
&lt;br /&gt;
Hier wird eine ACL erstellt, die 2 Argumente besitzt. Diese werden, im Gegensatz zu den Access-Regeln, mit einem ODER verknüpft, sodass diese Regel matcht, falls eine Anfrage der beiden Subnetze als Source mit einer URL aus der Datei &amp;quot;schlechte_domains&amp;quot; kommt. In Aussagenlogikform:&lt;br /&gt;
&lt;br /&gt;
lan = ( privilegiert ODER unprivilegiert )&lt;br /&gt;
acl = lan UND schlechte_domains&lt;br /&gt;
&lt;br /&gt;
Jetzt wollen wir z.B den Nutzern im unprivilegierten Netz auch die Möglichkeit geben, während der Mittagspause frei im Internet surfen zu können. Dazu benutzt man den acl-Typ &amp;quot;time&amp;quot;:&lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl mittag time 12:00-12:30&lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow unprivilegiert mittag&lt;br /&gt;
Hier wird eine acl mittag definiert, die einen Zeitbereich annimmt. Diese wird mit der acl unprivilegiert in einer Regel verknüpft.&lt;br /&gt;
&lt;br /&gt;
===Authentifizierung===&lt;br /&gt;
&lt;br /&gt;
====Passwortdatei====&lt;br /&gt;
Mit dem Programm htpasswd (ruft Systemfunktion crypt auf )das bei jeder Distribution dabei sein sollte können ein Passwortdatei erzeugen. &lt;br /&gt;
 root@zero:/etc/squid3# htpasswd -c passwd xinux&lt;br /&gt;
 New password: &lt;br /&gt;
 Re-type new password: &lt;br /&gt;
 Adding password for user xinux&lt;br /&gt;
 root@zero:/etc/squid3# cat passwd &lt;br /&gt;
 xinux:5AZTQ/gAwdlOU&lt;br /&gt;
 root@zero:/etc/squid3#&lt;br /&gt;
&lt;br /&gt;
====Konfigurationsdatei====&lt;br /&gt;
 #auth-sektion&lt;br /&gt;
 auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/passwd&lt;br /&gt;
 auth_param basic children 5&lt;br /&gt;
 auth_param basic concurrency 0&lt;br /&gt;
 auth_param basic realm Squid proxy-caching web server&lt;br /&gt;
 auth_param basic casesensitive off&lt;br /&gt;
 &lt;br /&gt;
 #acl-sektion&lt;br /&gt;
 acl autorisiert proxy_auth REQUIRED&lt;br /&gt;
 &lt;br /&gt;
 #access-sektion&lt;br /&gt;
 http_access allow unprivilegiert autorisiert&lt;br /&gt;
In der Konfigurationsdatei wird nun ein Programm angegeben, das für die Authentifizierung aufgerufen wird. Dieses liest Daten aus der zuvor angefertigten Passwortdatei. Dann muss eine acl mit dem typ &amp;quot;proxy_auth&amp;quot; erstellt werden, welche in einer Regel angewendet wird. So kann hier auch ein Nutzer aus dem unprivilegierten Netz Zugang zum Internet bekommen, sollte er sich authentifizieren können.&lt;br /&gt;
&lt;br /&gt;
===Caching===&lt;br /&gt;
Squid benutzt den Hauptspeicher und ein Verzeichnis, um Anfragen zu cachen und diese bei erneuten Anfragen direkt auszuliefern.&lt;br /&gt;
====Anlegen des Caches====&lt;br /&gt;
 root@zero:/etc/squid3# cd /var/cache/&lt;br /&gt;
 root@zero:/var/cache# mkdir squid&lt;br /&gt;
 root@zero:/var/cache# chown proxy:proxy squid/&lt;br /&gt;
 root@zero:/var/cache# ls -l | grep squid&lt;br /&gt;
 drwxr-xr-x  2 proxy    proxy    4096 2009-07-10 09:53 squid&lt;br /&gt;
Hier wird ein Verzeichnis angelegt, welches dem Benutzer proxy beschreibbar sein, da der Squid nicht unter root, sondern unter einem unprivilegierten Benutzer läuft.&lt;br /&gt;
 #cache-sektion&lt;br /&gt;
 cache_dir ufs /var/cache/squid 100 16 256&lt;br /&gt;
cache_dir ''typ verzeichnis MB L1 L2''&lt;br /&gt;
&lt;br /&gt;
In der Konfigurationsdatei wird dieses Verzeichnis angegeben. Der Typ &amp;quot;ufs&amp;quot; ist das Standardspeichersystem des Squid. Es können aber auch andere Typen wie aufs oder diskd benutzt werden. Die Optionen hinter dem Verzeichnisnamen, geben Speicherplatz und Verzeichnisstruktur an. MB gibt an, wieviel Speicherplatz Squid in diesem Verzeichnis benutzt (es können auch mehrere Verzeichnisse zur Speicherverteilung auf verschiedene Partitionen angegeben werden), L1 gibt an wieviele First-Level-Unterverzeichnisse angelegt werden, L2 gibt an, wieviele Second-Level-Unterverzeichnisse in jedem First-Level-Verzeichnis angelegt werden (Baum-Struktur).&lt;br /&gt;
 root@zero:/var/cache# /etc/init.d/squid3 restart&lt;br /&gt;
 * Restarting Squid HTTP Proxy 3.0 squid3&lt;br /&gt;
 *   Waiting...                                                                  &lt;br /&gt;
 * ...                                                                          &lt;br /&gt;
 * ...                                                                          &lt;br /&gt;
 * ...                                                                          &lt;br /&gt;
 * ...                                                                          &lt;br /&gt;
 * ...                                                                         &lt;br /&gt;
 * ...                                                                  [ OK ] &lt;br /&gt;
 * Creating Squid HTTP Proxy 3.0 cache structure&lt;br /&gt;
 2009/07/10 09:59:24| Creating Swap Directories&lt;br /&gt;
 2009/07/10 09:59:24| /var/cache/squid exists&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/00&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/01&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/02&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/03&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/04&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/05&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/06&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/07&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/08&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/09&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0A&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0B&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0C &lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0D&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0E&lt;br /&gt;
 2009/07/10 09:59:24| Making directories in /var/cache/squid/0F&lt;br /&gt;
                                                                        [ OK ]&lt;br /&gt;
 root@zero:/var/cache/squid# ls&lt;br /&gt;
 00  01  02  03  04  05  06  07  08  09  0A  0B  0C  0D  0E  0F  swap.state&lt;br /&gt;
 root@zero:/var/cache/squid# cd 00&lt;br /&gt;
 root@zero:/var/cache/squid/00# ls&lt;br /&gt;
 00  0E  1C  2A  38  46  54  62  70  7E  8C  9A  A8  B6  C4  D2  E0  EE  FC&lt;br /&gt;
 01  0F  1D  2B  39  47  55  63  71  7F  8D  9B  A9  B7  C5  D3  E1  EF  FD&lt;br /&gt;
 02  10  1E  2C  3A  48  56  64  72  80  8E  9C  AA  B8  C6  D4  E2  F0  FE&lt;br /&gt;
 03  11  1F  2D  3B  49  57  65  73  81  8F  9D  AB  B9  C7  D5  E3  F1  FF&lt;br /&gt;
 04  12  20  2E  3C  4A  58  66  74  82  90  9E  AC  BA  C8  D6  E4  F2&lt;br /&gt;
 05  13  21  2F  3D  4B  59  67  75  83  91  9F  AD  BB  C9  D7  E5  F3&lt;br /&gt;
 06  14  22  30  3E  4C  5A  68  76  84  92  A0  AE  BC  CA  D8  E6  F4&lt;br /&gt;
 07  15  23  31  3F  4D  5B  69  77  85  93  A1  AF  BD  CB  D9  E7  F5&lt;br /&gt;
 08  16  24  32  40  4E  5C  6A  78  86  94  A2  B0  BE  CC  DA  E8  F6&lt;br /&gt;
 09  17  25  33  41  4F  5D  6B  79  87  95  A3  B1  BF  CD  DB  E9  F7&lt;br /&gt;
 0A  18  26  34  42  50  5E  6C  7A  88  96  A4  B2  C0  CE  DC  EA  F8&lt;br /&gt;
 0B  19  27  35  43  51  5F  6D  7B  89  97  A5  B3  C1  CF  DD  EB  F9&lt;br /&gt;
 0C  1A  28  36  44  52  60  6E  7C  8A  98  A6  B4  C2  D0  DE  EC  FA&lt;br /&gt;
 0D  1B  29  37  45  53  61  6F  7D  8B  99  A7  B5  C3  D1  DF  ED  FB&lt;br /&gt;
 root@zero:/var/cache/squid/00#&lt;br /&gt;
Hier sieht man, das Squid im Verzeichnis /var/cache/squid 16 Verzeichnisse von 00-0F und in jedem Unterverzeichnis weitere 256 Verzeichnisse 00-FF angelegt hat.&lt;br /&gt;
&lt;br /&gt;
====Konfiguration====&lt;br /&gt;
Nun können weitere Optionen in der Konfigurationsdatei angegeben werden.&lt;br /&gt;
 cache_mem 32 MB&lt;br /&gt;
Gibt an, wieviel Hauptspeicher zum Cachen für Squid verwendet wird&lt;br /&gt;
 cache_swap_low 90&lt;br /&gt;
 cache_swap_high 95&lt;br /&gt;
Diese beiden Optionen geben den unteren und oberen Threshold für die Füllung des Caches an in % an. Wird die untere Marke überschritten, beginnt Squid entsprechend der cache_replacement_policy Objekte aus dem Cache zu entfernen. Wird die obere Marke erreicht, erfolgt die Räumung aggressiver. Wird die untere Marke unterschritten, wird der Prozess beendet.&lt;br /&gt;
 minimum_object_size 0 KB&lt;br /&gt;
 maximum_object_size 8192 KB&lt;br /&gt;
minimum_object_size gibt an, wie groß ein Objekt mindestens sein muss, um im Cache gespeichert zu werden, maximum_object_size die maximale Größe.&lt;br /&gt;
 maximum_object_size_in_memory 64 KB&lt;br /&gt;
maximum_object_size_in_memory gibt an, wie groß ein Objekt höchstens sein darf, um im Hauptspeicher gecacht zu werden.&lt;br /&gt;
 ipcache_size 1024&lt;br /&gt;
Hier wird die maximale Anzahl der IP-Cache Einträge bestimmt.&lt;br /&gt;
 ipcache_low 90&lt;br /&gt;
 ipcache_high 95&lt;br /&gt;
Thresholds der IP-Cache-Einträge, entsprechend zu cache_swap_low und _high.&lt;br /&gt;
 fqdncache_size 1024&lt;br /&gt;
Maximale Anzahl der FQDN-Cache-Einträge.&lt;br /&gt;
 cache_replacement_policy lru&lt;br /&gt;
 memory_replacement_policy lru&lt;br /&gt;
Diese Einträge bestimmen, mit welchem Verfahren Objekte aus dem Cache entfernt werden. lru steht für least recently used, d.h. Squid löscht bei diesem Verfahren die Einträge, die am längsten nicht mehr angefragt wurden. Es gibt außerdem:&lt;br /&gt;
&lt;br /&gt;
heap GDFS (Greed-Dual Size Frequency): Optimiert die Objekt-Hitrate. Kleine häufig angefragte Objekte werden auf Kosten großer, weniger häufig angefragter Objekte im Cache gehalten. Damit wird die Warscheinlichkeit eines Objekt-Hits gesteigert.&lt;br /&gt;
&lt;br /&gt;
heap LFUDA (Least frequently used with dynamic aging): Optimiert die Byte-Hitragte. Häufig angefrage Objekte werden im Cache gehalten, slten angefragte Objekte werden freigegeben, unabhängig von deren Größe. Damit wird ein häufiger angefrages, großes Objekt ggf. auf Kosten vieler kleiner Objekte im Cache gehalten.&lt;br /&gt;
&lt;br /&gt;
heap lru (erweitertes lru-Verfahren).&lt;br /&gt;
&lt;br /&gt;
===Delay-Pools===&lt;br /&gt;
Mit Delay-Pools kann man eine Bandbreitensteuerung über Squid implementieren.&lt;br /&gt;
 #delay_pools-sektion&lt;br /&gt;
 delay_pools 2&lt;br /&gt;
Hier wird die Anzahl der Pools angegeben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #delay_claas ''pool'' ''class''&lt;br /&gt;
 delay_class 1 1&lt;br /&gt;
 delay_class 2 2&lt;br /&gt;
Jeder der Pools wird einer Klasse zugeordnet. Es gibt insgesamt 5 Klassen, die verschiedene Methoden zur Bandbreitensteuerung anbieten.&lt;br /&gt;
&lt;br /&gt;
Klasse 1: Die gesamte Bandbreite wird über ein Parameterpaar gesteuert.&lt;br /&gt;
&lt;br /&gt;
Klasse 2: Es werden 2 Parameterpaare angegeben. Das erste bestimmt die gesamte Bandbreite, das zweite bestimmt die individuelle Bandbreite eines Hosts anhand des letzten Bytes der IP-Adresse.&lt;br /&gt;
&lt;br /&gt;
Klasse 3: Zusätzlich zu den 2 Parametepaaren in Klasse 2 gibt es noch ein drittes Paar, welches die Bandbreite eines ganzen Klasse-C-Netzes beschränkt.&lt;br /&gt;
&lt;br /&gt;
Klasse 4: Wie Klasse 3, jedoch gibt es noch ein zusätzliches Parameterpaar, welches anhand des Benutzernamens die Bandbreite beschränkt. Diese Limitierung tritt nur in Kraft, sollte ein Request eine Benutzerauthentifizierung erfordert haben (siehe Authentifizerung).&lt;br /&gt;
&lt;br /&gt;
Klasse 5: Die Bandbreitenregulierung erfolgt nicht wie in Klasse 2-4 über IP-Adressen oder Benutzer, sondern über ein Tag, welches angegeben wird und einen Request identifiziert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 delay_parameters 1 10000/20000&lt;br /&gt;
 delay_parameters 2 20000/40000 1000/2000&lt;br /&gt;
 delay_access 1 allow privilegiert&lt;br /&gt;
 delay_access 2 allow unprivilegiert&lt;br /&gt;
 delay_access 1 deny all&lt;br /&gt;
 delay_access 2 deny all&lt;br /&gt;
&lt;br /&gt;
Nun müssen den Delay-Pools noch die Parameter übergeben werden. Der Delay-Pool mit Klasse 1 erhält ein Parameterpaar. Dieses Parameterpaar setzt sich zusammen aus restore- und einem maximum-Wert. Der restore-Wert bestimmt die eigentliche Bandbreite in Byte/Sekunde, der maximum-Wert bestimmt die maximale Datenmenge in Byte, die auf einmal übertragen wird.&lt;br /&gt;
&lt;br /&gt;
Die mit maximum definierte Datenmenge wird ganz normal über das Netz übertragen, ggf. mit der vollen zur Verfügung stehenden Bandbreite und ohne weitere Begrenzung. Anhand des eigentlichen Bandbreitenwertes restore berechnet Squid, wie lange er das nächste Paket verzögern muss, um auf die durchschnittliche, mit restore vorgegebene Bandbreite zu kommen. So wird die vorgegebene Nettobandbreite im Mittel durchaus gehalten, ein einzelnes Datenpaket kann jedoch deutlich schneller zum Client transportiert werden.&lt;br /&gt;
&lt;br /&gt;
Mit delay-access wird nun festelegt, welche Pools auf welche acl angewendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=ads mitglied=&lt;br /&gt;
*http://blog.stefan-betz.net/2009/1/7/hochzeit:-squid-3-und-active-directory/&lt;br /&gt;
*http://www.woy.de/?p=29&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=IPTables_-_from_scratch&amp;diff=4622</id>
		<title>IPTables - from scratch</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=IPTables_-_from_scratch&amp;diff=4622"/>
		<updated>2014-07-16T13:08:46Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* DNAT weiterleitung bis auf einen port */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Die Verwendung von Firewalls mit iptables==&lt;br /&gt;
&lt;br /&gt;
Der Linux-Kernel enthält fortgeschrittene Tools für Packet-Filtering, der Prozess für die Kontrolle von Netzwerkpaketen bei ihrem Versuch einzudringen, durch und aus dem System hinaus zu dringen. Kernels vor der 2.4 Version konnten Pakete mit ipchains manipulieren, die Listen von Regeln verwendeten, die für Pakete in jeder Phase des Filterungsprozesses angewandt werden. Die Einführung des 2.4-Kernels hat iptables mit sich gebracht, die den ipchains gleichen, aber deren Wirkungsbereich und Kontrollmöglichkeiten bei der Filterung von Paketen erweitern.&lt;br /&gt;
&lt;br /&gt;
==iptables Allgemein==&lt;br /&gt;
&lt;br /&gt;
Iptables beinhaltet das englische Wort tables, was für Tabellen steht, und genauso kann man es sich auch vorstellen, denn in seinen  3 Tabellen sammeln sich die Ketten in denen Regeln zum Kontrollieren, Manipulieren oder Extrahieren von Paketen angegeben werden.&lt;br /&gt;
&lt;br /&gt;
===Tabellen===&lt;br /&gt;
Wie Pakete verarbeitet werden wird schon in den Tabellen vorgegeben. iptables besitzt standardmäßig drei Tabellen: '''mangle''', '''nat''' und '''filter'''.&lt;br /&gt;
&lt;br /&gt;
Die Tabelle '''mangle''' (übersetzt: zerhauen) ermöglicht es dem Kernel, Daten im Paket-Header zu verändern.&lt;br /&gt;
&lt;br /&gt;
'''NAT''' wird benutzt um interne und externe IP-Adressen zu übersetzen (= '''N'''etwork '''A'''dress '''T'''ranslation). Regeln in dieser Tabelle ändern die IP und/oder den Port des Ziels.&lt;br /&gt;
&lt;br /&gt;
Die Tabelle '''filter''' prüft alle für die Firewall ankommenden Pakete und entscheidet ob sie durchgelassen oder geblockt werden.&lt;br /&gt;
 &lt;br /&gt;
Jede dieser Tabellen besitzt nun mehrere Ketten:&lt;br /&gt;
:'''mangle''' (Paketmanipulationen): enthält alle Ketten&lt;br /&gt;
:'''nat''' (Network Adress Translation): enthält die Ketten PREROUTING, OUTPUT und POSTROUTING&lt;br /&gt;
:'''filter''' (Paketfilter): enthält die Ketten FORWARD, INPUT und OUTPUT&lt;br /&gt;
&lt;br /&gt;
===Ketten===&lt;br /&gt;
Die Ketten sind eine Sammlung von Regeln. D.h. das jede Kette mehrere Regeln besitzen kann um ein Paket durchzulassen oder zu blockieren. Es sind fünf Typen von Standardketten vorhanden. Manche dieser Ketten werden von allen Paketen und einige nur, je nachdem welches Ziel sie haben, durchlaufen. Man könnte auch sagen die Ketten unterscheiden '''wo''' welche Regeln angewendet werden. Die Regeln einer Kette werden nacheinander abgearbeitet und wenn eine zutrifft, ist die Bearbeitung in dieser Kette beendet (es gibt Ausnahmen):&lt;br /&gt;
&lt;br /&gt;
*'''PREROUTING''': alle Pakete kommen hier durch bevor eine Routing-Entscheidung getroffen wird&lt;br /&gt;
*'''FORWARD''': für alle Pakete, die von der einen zu einer anderen Netzwerkschnittstelle weitergeleitet werden - also keine Pakete die an einen lokalen Dienst gerichtet sind &lt;br /&gt;
*'''INPUT''': für Pakete die über eine Schnittstelle hereinkommen und einen Dienst auf dem Rechner ansprechen&lt;br /&gt;
*'''OUTPUT''': für die über eine Schnittstelle herausgehenden Pakete, die von einem lokalen Dienst kommen &lt;br /&gt;
*'''POSTROUTING''': alle Pakete kommen am Ende der Verarbeitung hier durch&lt;br /&gt;
&lt;br /&gt;
===Regeln===&lt;br /&gt;
&lt;br /&gt;
Mit einer Regel wird entschieden was mit einem Paket passieren soll. Jede besitzt bestimmte Parameter nach denen sie überprüft ob die Informationen eines Paketes auf sie zutreffen. Wenn die Parameter zutreffend sind, wird das Paket meist an ein neues Ziel verwiesen oder es wird eine Methode angewandt. Für die Bearbeitung der Pakete gibt es mehrere Ziele und Methoden. Häufig benutzte sind: &lt;br /&gt;
&lt;br /&gt;
*'''ACCEPT''': das Paket kann passieren&lt;br /&gt;
*'''REJECT''': das Paket wird zurückgewiesen und ein Fehlerpaket wird gesendet&lt;br /&gt;
*'''LOG''': schreibt einen Eintrag in die syslog&lt;br /&gt;
*'''DROP''': das Paket wird ignoriert und keine Antwort gesendet&lt;br /&gt;
*'''REDIRECT''': die Ziel-Adresse des Paketes wird hiermit so verändert, dass es zum lokalen Rechner gesendet wird&lt;br /&gt;
*'''MASQUERADE''': die Quell-Adresse des Paketes wird durch die IP-Adresse der Schnittstelle ersetzt, auf dem es den Rechner verlässt&lt;br /&gt;
*'''SNAT'''&lt;br /&gt;
*'''DNAT'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Somit funktioniert iptables wie eine Art Sammlung von Schablonen die nacheinander auf ein Paket abgebildet werden und bei einem Treffer eine bestimmte Aktion auf das Paket ausführen. Falls keine der Schablonen passen sollte wird eine Standard Aktion ausgeführt die für alle Pakete gilt die nicht auf eine Schablone passen.&lt;br /&gt;
&lt;br /&gt;
Konzept-Bild&lt;br /&gt;
&lt;br /&gt;
[[file:iptables-konzept.jpeg|750px]]&lt;br /&gt;
&lt;br /&gt;
===Syntax Allgemein===&lt;br /&gt;
&lt;br /&gt;
Wie schon zu erwarten bedient man iptables mit dem Befehl '''iptables'''. Folgende Dinge sind vorab zu beachten:&lt;br /&gt;
&lt;br /&gt;
Die Momentan in der '''filter''' Tabelle gesetzten Ketten und Regeln kann man sich mit &lt;br /&gt;
 root@hutze:~# iptables -L&lt;br /&gt;
ausgeben lassen, wobei man die Ausgabe noch mit den Operanden&lt;br /&gt;
 -n    # für numerical&lt;br /&gt;
 -v    # für verbose&lt;br /&gt;
erweitern kann.&lt;br /&gt;
&lt;br /&gt;
Dabei ist es wichtig zu bemerken das jede iptables zeile  ohne '''-t''' option von einem '''-t filter''' ausgeht.&lt;br /&gt;
Was bedeutet das es die Filter Tabelle geschrieben wird.&lt;br /&gt;
Um die anderen Tabellen zu schreiben braucht man '''-t nat''' und '''-t mangle'''&lt;br /&gt;
&lt;br /&gt;
Die 3 Tabellen von iptables spricht man jeweils mit&lt;br /&gt;
 iptables ['''-t filter''']&lt;br /&gt;
 iptables '''-t nat'''&lt;br /&gt;
 iptables '''-t mangle'''&lt;br /&gt;
an.&lt;br /&gt;
&lt;br /&gt;
Jeder dieser Tabellen Angaben folgt für gewöhnlich eine Kette. Diese sind: '''INPUT''' '''OUTPUT''' und '''FORWARD''' sowie ausschließlich für ''nat'' und ''mangle'' auch '''PREROUTING''' und '''POSTROUTING'''. Und müssen mit dem davor stehenden Operanden '''-A''' ( '''A'''ppend - englisch für Anhängen )  definiert werden.&lt;br /&gt;
&lt;br /&gt;
Beispiele:&lt;br /&gt;
 iptables -A '''INPUT'''&lt;br /&gt;
 iptables -t nat -A '''POSTROUTING'''&lt;br /&gt;
&lt;br /&gt;
Wenn man also Regeln aufstellen will muss man immer die Tabelle und das dazugehörige Kettenglied übergeben, damit der Router genau weiß was wo zu tun ist.&lt;br /&gt;
&lt;br /&gt;
Die Tabellen und Regeln von iptables könnte man theoretisch auch alle einzeln nacheinander in der Konsole eingeben was aber nicht ganz Sinn der Sache ist. Also bedienen wir uns für unsere Firewall einem simplen Bash-Skript.&lt;br /&gt;
&lt;br /&gt;
==Positionierung der Firewall==&lt;br /&gt;
&lt;br /&gt;
Eine Firewall kann man unter Linux ganz einfach mit einem vi-Dokument beginnen. Damit die daraus entstehende Firewall auch ausgeführt wird müssen wir es in den entsprechenden Verzeichnissen vermerken. Das Skript selbst sollte nach '''/etc/init.d/''' mit einem '''softlink''' mit dem '''prefix &amp;quot;S99&amp;quot;''' in '''/etc/rc2.d''' damit es beim Starten automatisch ausgeführt wird.&lt;br /&gt;
 root@hutze:~# touch firewall&lt;br /&gt;
 root@hutze:~# mv firewall /etc/init.d&lt;br /&gt;
 root@hutze:~# ln -s /etc/init.d/firewall /etc/rc2.d/S99firewall&lt;br /&gt;
&lt;br /&gt;
==Der Rumpf==&lt;br /&gt;
Zuerst wird in dem firewall-Skript ein case start - stop Block angelegt:&lt;br /&gt;
&lt;br /&gt;
 '''#!/bin/bash'''&lt;br /&gt;
 '''case $1 in'''&lt;br /&gt;
 '''start)'''&lt;br /&gt;
 '''echo &amp;quot;starte firewall&amp;quot;'''&lt;br /&gt;
 ''';;'''&lt;br /&gt;
 '''stop)'''&lt;br /&gt;
 '''echo &amp;quot;stoppe firewall&amp;quot;'''&lt;br /&gt;
 ''';;'''&lt;br /&gt;
 '''*)'''&lt;br /&gt;
 '''echo &amp;quot;usage: $0 start|stop&amp;quot;'''&lt;br /&gt;
 ''';;'''&lt;br /&gt;
 '''esac'''&lt;br /&gt;
&lt;br /&gt;
==Filter Tabelle==&lt;br /&gt;
Beginnen wir unsere Firewall mit ihrer simpelsten Funktion: dem Paketfilter.&lt;br /&gt;
===Flushing===&lt;br /&gt;
&lt;br /&gt;
Bevor wir unsere eigenen Regeln entwerfen, sollten wir sichergehen das sich keine alten Regeln einschleichen und zu unerwarteten Komplikationen führen.&lt;br /&gt;
Dieses wird durch das sogenannte &amp;quot;flushing&amp;quot; erreicht, welches mit folgender Zeile geschieht:&lt;br /&gt;
  #!/bin/bash&lt;br /&gt;
 case $1 in&lt;br /&gt;
 start)&lt;br /&gt;
 echo &amp;quot;starte firewall&amp;quot;&lt;br /&gt;
 '''iptables -F'''&lt;br /&gt;
 '''iptables -t nat -F'''&lt;br /&gt;
 '''iptables -t mangle -F'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ;;&lt;br /&gt;
 stop)&lt;br /&gt;
 echo &amp;quot;stoppe firewall&amp;quot;&lt;br /&gt;
 '''iptables -F'''&lt;br /&gt;
 '''iptables -t nat -F'''&lt;br /&gt;
 '''iptables -t mangle -F'''&lt;br /&gt;
&lt;br /&gt;
 ;;&lt;br /&gt;
 esac&lt;br /&gt;
&lt;br /&gt;
Ohne flushing kann es auch passieren das sich unsere Regeln bei jedem Neustart der Firewall addieren.&lt;br /&gt;
&lt;br /&gt;
;Verwendete Syntax&lt;br /&gt;
:Der Operand '''-F''' löst das flushing aus mit dem alle Regeln in der angegebenen Tabelle ( hier &amp;quot;-t filter&amp;quot; da keine angegeben ) entfernt werden&lt;br /&gt;
&lt;br /&gt;
;Wichtig&lt;br /&gt;
:Wenn man zukünftig auch Regeln in die ''nat'' und ''mangle'' Tabellen schreiben möchte, muss man dazu sichergehen das auch diese bei jedem Start und Stop jeweils geflusht werden damit keine Komplikationen entstehen.&lt;br /&gt;
&lt;br /&gt;
===Default policy===&lt;br /&gt;
&lt;br /&gt;
Als nächstes definieren wir was passieren soll falls keine unserer Regeln zutreffen sollte, auch gennannt '''&amp;quot;default policy&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
Dies geschieht mit folgenden Zeilen:&lt;br /&gt;
&lt;br /&gt;
  #!/bin/bash&lt;br /&gt;
 case $1 in&lt;br /&gt;
 start)&lt;br /&gt;
 echo &amp;quot;starte firewall&amp;quot;&lt;br /&gt;
 iptables -F&lt;br /&gt;
 '''iptables -P INPUT DROP'''&lt;br /&gt;
 '''iptables -P OUTPUT DROP'''&lt;br /&gt;
 '''iptables -P FORWARD DROP'''&lt;br /&gt;
 ;;&lt;br /&gt;
 stop)&lt;br /&gt;
 echo &amp;quot;stoppe firewall&amp;quot;&lt;br /&gt;
 iptables -F&lt;br /&gt;
 '''iptables -P INPUT ACCEPT'''&lt;br /&gt;
 '''iptables -P OUTPUT ACCEPT'''&lt;br /&gt;
 '''iptables -P FORWARD ACCEPT'''&lt;br /&gt;
 ;;&lt;br /&gt;
 esac&lt;br /&gt;
&lt;br /&gt;
;Verwendete Syntax&lt;br /&gt;
:Wie in Syntax Allgemein angegeben muss die '''&amp;quot;default policy&amp;quot;''' auf alle 3 Anlaufstellen angewendet werden.&lt;br /&gt;
:Nach der Anlaufstelle geben wir an was mit den Paketen zu tun ist.&lt;br /&gt;
:Mit '''DROP''' lässt die gestartete Firewall alle Pakete fallen die nicht auf eine Regel passen.&lt;br /&gt;
:Mit '''ACCEPT''' lässt die gestoppte Firewall alle Pakete durch.&lt;br /&gt;
&lt;br /&gt;
===ESTABLISHED und RELATED Pakete===&lt;br /&gt;
&lt;br /&gt;
Ein Vorteil von iptables zu seinen Vorgängern ist die Funktion seinen Paketfilter nur auf die ersten Pakete einer Verbindung zu begrenzen und so Ressourcen zu sparen.&lt;br /&gt;
&lt;br /&gt;
Dieses wird erreicht mit folgenden Zeilen&lt;br /&gt;
&lt;br /&gt;
  #!/bin/bash&lt;br /&gt;
 case $1 in&lt;br /&gt;
 start)&lt;br /&gt;
 echo &amp;quot;starte firewall&amp;quot;&lt;br /&gt;
 iptables -F&lt;br /&gt;
 iptables -P INPUT DROP&lt;br /&gt;
 iptables -P OUTPUT DROP&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 '''iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT'''&lt;br /&gt;
 '''iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT'''&lt;br /&gt;
 '''iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT'''&lt;br /&gt;
 ;;&lt;br /&gt;
 stop)&lt;br /&gt;
 echo &amp;quot;stoppe firewall&amp;quot;&lt;br /&gt;
 iptables -F&lt;br /&gt;
 iptables -P INPUT ACCEPT&lt;br /&gt;
 iptables -P OUTPUT ACCEPT&lt;br /&gt;
 iptables -P FORWARD ACCEPT&lt;br /&gt;
 ;;&lt;br /&gt;
 esac&lt;br /&gt;
&lt;br /&gt;
;Verwendete Syntax&lt;br /&gt;
:Die neuen Funktionen die wir hier verwenden beinhalten:&lt;br /&gt;
:'''-m state''': Das Modul von iptables das erkennt ob ein Paket eine Verbindung initiiert oder zu einer bereits errichteten Verbindung gehört. &lt;br /&gt;
:'''--state ESTABLISHED,RELATED''': Der Status nach dem das Paket untersucht wird, wobei&lt;br /&gt;
:'''ESTABLISHED''': Für alle Pakete steht die nicht das erste Paket einer Verbindung ist die in beide Richtungen sendet. (TCP)&lt;br /&gt;
:'''RELATED''': Für alle Pakete steht die eine 2t Verbindung öffnen wollen. (FTP,ICMP)&lt;br /&gt;
:'''-j ACCEPT''': Benutzt die angegebene Operation auf das Paket, hier ACCEPT.&lt;br /&gt;
&lt;br /&gt;
===loopback device===&lt;br /&gt;
&lt;br /&gt;
Nun haben wir schon ein paar Regeln aber noch keine die bisher zutreffen kann. Wenn wir diese Firewall aktivieren würden wäre unser eigener Router Nichtmal mehr in der Lage mit sich selbst zu kommunizieren. Da er dies über das sogennante '''&amp;quot;loopback device&amp;quot;''' lassen wir jetzt unsere ersten Pakete durch.&lt;br /&gt;
&lt;br /&gt;
  #!/bin/bash&lt;br /&gt;
 case $1 in&lt;br /&gt;
 start)&lt;br /&gt;
 echo &amp;quot;starte firewall&amp;quot;&lt;br /&gt;
 iptables -F&lt;br /&gt;
 iptables -P INPUT DROP&lt;br /&gt;
 iptables -P OUTPUT DROP&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
 iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
 iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
 '''iptables -A OUTPUT -o lo -j ACCEPT'''&lt;br /&gt;
 '''iptables -A INPUT -i lo -j ACCEPT'''&lt;br /&gt;
 ;;&lt;br /&gt;
 stop)&lt;br /&gt;
 echo &amp;quot;stoppe firewall&amp;quot;&lt;br /&gt;
 iptables -F&lt;br /&gt;
 iptables -P INPUT ACCEPT&lt;br /&gt;
 iptables -P OUTPUT ACCEPT&lt;br /&gt;
 iptables -P FORWARD ACCEPT&lt;br /&gt;
 ;;&lt;br /&gt;
 esac&lt;br /&gt;
&lt;br /&gt;
;Verwendete Syntax&lt;br /&gt;
:Hier geben wir nun zum ersten mal zur Anlaufstelle auch das jeweilige Interface das angelaufen wird mit an:&lt;br /&gt;
:Mit '''-o lo''' beschreiben wir als ''output'' also Ausgang die Schnittstelle ''lo'' was für das loopback device steht&lt;br /&gt;
:Genauso '''-i lo''' wobei lo hier als Eingang angegeben wird. In einem Satz:&lt;br /&gt;
:Alle Pakete die von unserem Router aus lo Ausgehen durchlassen&lt;br /&gt;
:Alle Pakete die an unserem Router an lo Ankommen durchlassen&lt;br /&gt;
&lt;br /&gt;
===Fernwartung===&lt;br /&gt;
&lt;br /&gt;
Angenommen unser Router mit der Firewall steht nicht im selben Netz wie unser üblicher Arbeitsrechner, ist es von Vorteil auch von außen auf ihn zugreifen zugreifen zu können. In unserem Beispiel ist das äußere Netz auch ein LAN. &lt;br /&gt;
  #!/bin/bash&lt;br /&gt;
 case $1 in&lt;br /&gt;
 start)&lt;br /&gt;
 echo &amp;quot;starte firewall&amp;quot;&lt;br /&gt;
 iptables -F&lt;br /&gt;
 iptables -P INPUT DROP&lt;br /&gt;
 iptables -P OUTPUT DROP&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
 iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
 iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
 iptables -A OUTPUT -o lo -j ACCEPT&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT&lt;br /&gt;
 '''iptables -A INPUT -i eth0 -s 192.168.241.10 -p tcp --dport 22 -m state --state NEW -j ACCEPT'''&lt;br /&gt;
 ;;&lt;br /&gt;
 stop)&lt;br /&gt;
 echo &amp;quot;stoppe firewall&amp;quot;&lt;br /&gt;
 iptables -F&lt;br /&gt;
 iptables -P INPUT ACCEPT&lt;br /&gt;
 iptables -P OUTPUT ACCEPT&lt;br /&gt;
 iptables -P FORWARD ACCEPT&lt;br /&gt;
 ;;&lt;br /&gt;
 esac&lt;br /&gt;
&lt;br /&gt;
;Verwendete Syntax&lt;br /&gt;
:'''-s''': Passt auf die angegebene Quell IP-Adresse, hier 192.168.241.10&lt;br /&gt;
:'''-p''': Passt auf ein Protokoll, hier tcp&lt;br /&gt;
:'''-dport''': Passt auf Ziel Port, hier 22 (ssh)&lt;br /&gt;
:'''--state NEW''': Passt auf Pakete die eine Verbindung Initiieren&lt;br /&gt;
&lt;br /&gt;
===DNS-Server und HTTP===&lt;br /&gt;
&lt;br /&gt;
Jetzt möchten wir mit unserem Router ins Internet gehen können. Dazu müssen wir 2 Dinge tun, zuerst müssen wir erlauben das er auf DNS-Server zugreifen kann.&lt;br /&gt;
&lt;br /&gt;
  #!/bin/bash&lt;br /&gt;
 case $1 in&lt;br /&gt;
 start)&lt;br /&gt;
 echo &amp;quot;starte firewall&amp;quot;&lt;br /&gt;
 iptables -F&lt;br /&gt;
 iptables -P INPUT DROP&lt;br /&gt;
 iptables -P OUTPUT DROP&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
 iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
 iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
 iptables -A OUTPUT -o lo -j ACCEPT&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT&lt;br /&gt;
 iptables -A INPUT -i eth0 -s 192.168.241.10 -p tcp --dport 22 -m state --state NEW -j ACCEPT&lt;br /&gt;
 '''iptables -A OUTPUT -o eth0 -p tcp -d 192.168.240.21 --dport 53 -m state --state NEW -j ACCEPT'''&lt;br /&gt;
 '''iptables -A OUTPUT -o eth0 -p udp -d 192.168.240.21 --dport 53 -m state --state NEW -j ACCEPT'''&lt;br /&gt;
 ;;&lt;br /&gt;
 stop)&lt;br /&gt;
 echo &amp;quot;stoppe firewall&amp;quot;&lt;br /&gt;
 iptables -F&lt;br /&gt;
 iptables -P INPUT ACCEPT&lt;br /&gt;
 iptables -P OUTPUT ACCEPT&lt;br /&gt;
 iptables -P FORWARD ACCEPT&lt;br /&gt;
 ;;&lt;br /&gt;
 esac&lt;br /&gt;
&lt;br /&gt;
;Verwendete Syntax&lt;br /&gt;
:'''-d''': Das selbe Prinzip wie auch bei '''-s''' aber auf eine Ziel Adresse&lt;br /&gt;
----&lt;br /&gt;
Dann müssen wir auch noch eine Regel für HTTP aufstellen damit wir auch Internetseiten aufrufen dürfen&lt;br /&gt;
  #!/bin/bash&lt;br /&gt;
 case $1 in&lt;br /&gt;
 start)&lt;br /&gt;
 echo &amp;quot;starte firewall&amp;quot;&lt;br /&gt;
 iptables -F&lt;br /&gt;
 iptables -P INPUT DROP&lt;br /&gt;
 iptables -P OUTPUT DROP&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
 iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
 iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
 iptables -A OUTPUT -o lo -j ACCEPT&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT&lt;br /&gt;
 iptables -A INPUT -i eth0 -s 192.168.241.10 -p tcp --dport 22 -m state --state NEW -j ACCEPT&lt;br /&gt;
 iptables -A OUTPUT -o eth0 -p tcp -d 192.168.240.21 --dport 53 -m state --state NEW -j ACCEPT&lt;br /&gt;
 iptables -A OUTPUT -o eth0 -p udp -d 192.168.240.21 --dport 53 -m state --state NEW -j ACCEPT&lt;br /&gt;
 '''iptables -A OUTPUT -o eth0 -p tcp --dport 80 -m state --state NEW -j ACCEPT'''&lt;br /&gt;
 ;;&lt;br /&gt;
 stop)&lt;br /&gt;
 echo &amp;quot;stoppe firewall&amp;quot;&lt;br /&gt;
 iptables -F&lt;br /&gt;
 iptables -P INPUT ACCEPT&lt;br /&gt;
 iptables -P OUTPUT ACCEPT&lt;br /&gt;
 iptables -P FORWARD ACCEPT&lt;br /&gt;
 ;;&lt;br /&gt;
 esac&lt;br /&gt;
&lt;br /&gt;
===ICMP===&lt;br /&gt;
&lt;br /&gt;
Jetzt wollen wir testen können ob unser Router erreichbar ist. Dazu müssen wir ICMP freischalten&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 case $1 in&lt;br /&gt;
 start)&lt;br /&gt;
 echo &amp;quot;starte firewall&amp;quot;&lt;br /&gt;
 iptables -F&lt;br /&gt;
 iptables -P INPUT DROP&lt;br /&gt;
 iptables -P OUTPUT DROP&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
 iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
 iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
 iptables -A OUTPUT -o lo -j ACCEPT&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT&lt;br /&gt;
 iptables -A INPUT -i eth0 -s 192.168.241.10 -p tcp --dport 22 -m state --state NEW -j ACCEPT&lt;br /&gt;
 iptables -A OUTPUT -o eth0 -p tcp -d 192.168.240.21 --dport 53 -m state --state NEW -j ACCEPT&lt;br /&gt;
 iptables -A OUTPUT -o eth0 -p udp -d 192.168.240.21 --dport 53 -m state --state NEW -j ACCEPT&lt;br /&gt;
 iptables -A OUTPUT -o eth0 -p tcp --dport 80 -m state --state NEW -j ACCEPT&lt;br /&gt;
 '''iptables -A INPUT -i eth0 -p icmp --icmp-type 8 -j ACCEPT'''&lt;br /&gt;
 ;;&lt;br /&gt;
 stop)&lt;br /&gt;
 echo &amp;quot;stoppe firewall&amp;quot;&lt;br /&gt;
 iptables -F&lt;br /&gt;
 iptables -P INPUT ACCEPT&lt;br /&gt;
 iptables -P OUTPUT ACCEPT&lt;br /&gt;
 iptables -P FORWARD ACCEPT&lt;br /&gt;
 ;;&lt;br /&gt;
 esac&lt;br /&gt;
&lt;br /&gt;
;Verwendete Syntax&lt;br /&gt;
:'''--icmp-type 8''' Beschränkt erlaubte ICMP Pakete auf typ 8 ( echo )&lt;br /&gt;
&lt;br /&gt;
==NAT Tabelle==&lt;br /&gt;
&lt;br /&gt;
NAT steht für Network Address Translation, also eine Übersetzung von Netzwerk Adressen, sei es in Namen oder auch einfach nur in andere IP-Adressen. Iptables kann diesen Job übernehmen und zwar auf verschiedene Art und Weise.&lt;br /&gt;
&lt;br /&gt;
;Wichtig&lt;br /&gt;
:Da wir nun beginnen NAT regeln in die firewall zu schreiben dürfen wir nicht vergessen die Zeile zum flushen eben jener hinzuzufügen&lt;br /&gt;
&lt;br /&gt;
===MASQUERADE===&lt;br /&gt;
&lt;br /&gt;
Masquerading ist wohl die simpelste Form von NAT, hiermit ersetzt der Router einfach jede Quell IP-Adresse jedes zu routenden Paketes mit seiner eigenen, sowie bei einem Antwort Paket die Ziel Adresse wieder mit der Original Quell Adresse.In iptables erreicht man diese Funktion mit folgender Zeile&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 case $1 in&lt;br /&gt;
 start)&lt;br /&gt;
 echo &amp;quot;starte firewall&amp;quot;&lt;br /&gt;
 iptables -F&lt;br /&gt;
 '''iptables -F -t nat'''&lt;br /&gt;
 iptables -P INPUT DROP&lt;br /&gt;
 iptables -P OUTPUT DROP&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
 iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
 iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
 iptables -A OUTPUT -o lo -j ACCEPT&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT&lt;br /&gt;
 iptables -A INPUT -i eth0 -s 192.168.241.10 -p tcp --dport 22 -m state --state NEW -j ACCEPT&lt;br /&gt;
 iptables -A OUTPUT -o eth0 -p tcp -d 192.168.240.21 --dport 53 -m state --state NEW -j ACCEPT&lt;br /&gt;
 iptables -A OUTPUT -o eth0 -p udp -d 192.168.240.21 --dport 53 -m state --state NEW -j ACCEPT&lt;br /&gt;
 iptables -A OUTPUT -o eth0 -p tcp --dport 80 -m state --state NEW -j ACCEPT&lt;br /&gt;
 iptables -A INPUT -i eth0 -p icmp --icmp-type 8 -j ACCEPT&lt;br /&gt;
 '''iptables -t nat -A POSTROUTING -j MASQUERADE -o eth0 -s 172.23.242.0/24'''&lt;br /&gt;
 ;;&lt;br /&gt;
 stop)&lt;br /&gt;
 echo &amp;quot;stoppe firewall&amp;quot;&lt;br /&gt;
 iptables -F&lt;br /&gt;
 '''iptables -F -t nat'''&lt;br /&gt;
 iptables -P INPUT ACCEPT&lt;br /&gt;
 iptables -P OUTPUT ACCEPT&lt;br /&gt;
 iptables -P FORWARD ACCEPT&lt;br /&gt;
 ;;&lt;br /&gt;
 esac&lt;br /&gt;
&lt;br /&gt;
;Verwendete Syntax&lt;br /&gt;
:'''-t nat''': Hier sehen wir zum ersten mal wie man eine andere Tabelle außer Filter anspricht&lt;br /&gt;
:'''POSTROUTING''': Damit der Router weiß das er den Adressen Tausch NACH dem Routing ausführen soll&lt;br /&gt;
:'''-j MASQUERADE''': Eine weitere Aktion die auf ein Paket ausgeführt werden kann, hier unser NAT&lt;br /&gt;
:'''-s 172.23.242.0/24''': Hier wird nicht nur eine IP-Adresse, sondern ein ganzer Netzbereich als Quelle angegeben&lt;br /&gt;
&lt;br /&gt;
===SNAT===&lt;br /&gt;
&lt;br /&gt;
SNAT ist Masquerading sehr ähnlich, der einzige Unterschied besteht darin das man sich bei SNAT die ersetzende IP-Adresse wählen kann. Da wir schon Masquerading eingebaut haben, hängen wir SNAT nicht auch noch mit in unsere Firewall.&lt;br /&gt;
&lt;br /&gt;
Hier aber ein Beispiel:&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT -o eth0 -s 172.23.242.0/24 --to-source 192.168.242.100&lt;br /&gt;
&lt;br /&gt;
;Verwendete Syntax&lt;br /&gt;
:'''-j SNAT''': Die auszuführende Aktion, hier SNAT&lt;br /&gt;
:'''--to-source 192.168.242.100''': Die Angabe zu welcher IP-Adresse ersetzt wird, hier die des Routers.&lt;br /&gt;
&lt;br /&gt;
===NETMAP===&lt;br /&gt;
&lt;br /&gt;
Eine weiter Form des NAT in iptables ist NETMAP. Statt wie bei MASQUERADE oder SNAT, ersetzt NETMAP die Quell Adresse nicht nur mit einer bestimmten Adresse, sondern bildet das gesamte Quell Netz auf ein anderes ab.&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j NETMAP -o eth0 -s 172.23.242.0/24 --to 195.145.95.0/24&lt;br /&gt;
&lt;br /&gt;
;Verwendete Syntax&lt;br /&gt;
:'''-j NETMAP''': Aktion die auf Pakete ausgeführt wird, hier NETMAP&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
===DNAT, port forwarding===&lt;br /&gt;
&lt;br /&gt;
Da das interne Netz nicht von außen angesprochen werden kann, wie es bei normalen Routern die ins Internet führen ja auch der Fall ist, bedient man sich hierfür einer Technik namens port forwarding, was bedeutet das ein Programm das über einen bestimmten Port mit dem Router kommuniziert an eine andere IP-Adresse und einen anderen Port weitergeleitet wird.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 case $1 in&lt;br /&gt;
 start)&lt;br /&gt;
 echo &amp;quot;starte firewall&amp;quot;&lt;br /&gt;
 iptables -F&lt;br /&gt;
 iptables -F -t nat&lt;br /&gt;
 iptables -P INPUT DROP&lt;br /&gt;
 iptables -P OUTPUT DROP&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
 iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
 iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
 iptables -A OUTPUT -o lo -j ACCEPT&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT&lt;br /&gt;
 iptables -A INPUT -i eth0 -s 192.168.241.10 -p tcp --dport 22 -m state --state NEW -j ACCEPT&lt;br /&gt;
 iptables -A OUTPUT -o eth0 -p tcp -d 192.168.240.21 --dport 53 -m state --state NEW -j ACCEPT&lt;br /&gt;
 iptables -A OUTPUT -o eth0 -p udp -d 192.168.240.21 --dport 53 -m state --state NEW -j ACCEPT&lt;br /&gt;
 iptables -A OUTPUT -o eth0 -p tcp --dport 80 -m state --state NEW -j ACCEPT&lt;br /&gt;
 iptables -A INPUT -i eth0 -p icmp --icmp-type 8 -j ACCEPT&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j MASQUERADE -o eth0 -s 172.23.242.0/24&lt;br /&gt;
 '''iptables -t nat -A PREROUTING -j DNAT -i eth0 -p tcp --dport 3333 --to-dest 172.23.242.100:22'''&lt;br /&gt;
 ;;&lt;br /&gt;
 stop)&lt;br /&gt;
 echo &amp;quot;stoppe firewall&amp;quot;&lt;br /&gt;
 iptables -F&lt;br /&gt;
 iptables -F -t nat&lt;br /&gt;
 iptables -P INPUT ACCEPT&lt;br /&gt;
 iptables -P OUTPUT ACCEPT&lt;br /&gt;
 iptables -P FORWARD ACCEPT&lt;br /&gt;
 ;;&lt;br /&gt;
 esac&lt;br /&gt;
&lt;br /&gt;
====DNAT für alle Protokolle/Ports - one IP====&lt;br /&gt;
&lt;br /&gt;
 iptables -t nat -A PREROUTING -d $1stIP -j DNAT --to-destination $2ndIP&lt;br /&gt;
      &lt;br /&gt;
====DNAT auf einen Port====&lt;br /&gt;
&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp -d $1stIP --dport $EINGANGSPORT -j DNAT --to-destination $2ndIP&lt;br /&gt;
      &lt;br /&gt;
====DNAT Portumleitung====&lt;br /&gt;
&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp -d $1stIP --dport $EINGANGSPORT -j DNAT --to-destination $2ndIP:$WUNSCHPORT&lt;br /&gt;
&lt;br /&gt;
 (Wenn die Destination IP der Host ist, reicht die Schnittstellenangabe!&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp -i $WANDEV --dport $EINGANGSPORT -j DNAT --to-destination $2ndIP:$WUNSCHPORT&lt;br /&gt;
&lt;br /&gt;
====FORWARD====&lt;br /&gt;
 &lt;br /&gt;
 iptables -t nat -A PREROUTING -j DNAT -i $WAN -p tcp --dport $EINGANGSPORT --to $2ndIP:$WUNSCHPORT&lt;br /&gt;
 iptables -A FORWARD -p tcp -d $2ndIP --dport  $WUNSCHPORT -j ACCEPT -m state --state NEW&lt;br /&gt;
&lt;br /&gt;
==== FULL NAT ====&lt;br /&gt;
 iptables -t nat -A PREROUTING -d $1stIP -j DNAT --to-destination $2ndIP&lt;br /&gt;
 iptables -t nat -A POSTROUTING -s $2ndIP -j SNAT --to-destination $1stIP&lt;br /&gt;
      &lt;br /&gt;
&lt;br /&gt;
;Verwendete Syntax&lt;br /&gt;
:'''PREROUTING''': Paket wird nach der Routingentscheidung geändert&lt;br /&gt;
:'''-j DNAT''': Aktion die auf Pakete ausgeführt wird, hier DNAT&lt;br /&gt;
:'''--to-dest 172.23.242.100:22''': IP-Adresse und Port zu denen weitergeleitet wird&lt;br /&gt;
:In einem Satz:&lt;br /&gt;
:Ändere bei allen Paketen die auf eth0 ankommen und den Port 3333 ansprechen die Ziel Adresse zu 172.23.242.100 und Port zu 22&lt;br /&gt;
&lt;br /&gt;
==Logging==&lt;br /&gt;
&lt;br /&gt;
Damit wir sehen können was so alles an unserer Firewall abprallt, nicht nur um Störenfriede zu erkennen, sondern auch um zu sehen was wir vielleicht für uns freischalten müssen, können wir ein logging einrichten das automatisch alle Pakete die nicht durchgelassen wurden an den syslog deamon weitergeben der die Vorkommnisse in die syslog schreibt.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 case $1 in&lt;br /&gt;
 start)&lt;br /&gt;
 echo &amp;quot;starte firewall&amp;quot;&lt;br /&gt;
 iptables -F&lt;br /&gt;
 iptables -F -t nat&lt;br /&gt;
 iptables -P INPUT DROP&lt;br /&gt;
 iptables -P OUTPUT DROP&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
 iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
 iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
 iptables -A OUTPUT -o lo -j ACCEPT&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT&lt;br /&gt;
 iptables -A INPUT -i eth0 -s 192.168.241.10 -p tcp --dport 22 -m state --state NEW -j ACCEPT&lt;br /&gt;
 iptables -A OUTPUT -o eth0 -p tcp -d 192.168.240.21 --dport 53 -m state --state NEW -j ACCEPT&lt;br /&gt;
 iptables -A OUTPUT -o eth0 -p udp -d 192.168.240.21 --dport 53 -m state --state NEW -j ACCEPT&lt;br /&gt;
 iptables -A OUTPUT -o eth0 -p tcp --dport 80 -m state --state NEW -j ACCEPT&lt;br /&gt;
 iptables -A INPUT -i eth0 -p icmp --icmp-type 8 -j ACCEPT&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j MASQUERADE -o eth0 -s 172.23.242.0/24&lt;br /&gt;
 iptables -t nat -A PREROUTING -j DNAT -i eth0 --dport 3333 --to-dest 172.23.242.100:22&lt;br /&gt;
 '''iptables -A INPUT  -j LOG  --log-prefix &amp;quot;--iptables-in--&amp;quot;'''&lt;br /&gt;
 '''iptables -A OUTPUT -j LOG  --log-prefix &amp;quot;--iptables-out--&amp;quot;'''&lt;br /&gt;
 '''iptables -A FORWARD -j LOG --log-prefix &amp;quot;--iptables-for--&amp;quot;'''&lt;br /&gt;
 ;;&lt;br /&gt;
 stop)&lt;br /&gt;
 echo &amp;quot;stoppe firewall&amp;quot;&lt;br /&gt;
 iptables -F&lt;br /&gt;
 iptables -F -t nat&lt;br /&gt;
 iptables -P INPUT ACCEPT&lt;br /&gt;
 iptables -P OUTPUT ACCEPT&lt;br /&gt;
 iptables -P FORWARD ACCEPT&lt;br /&gt;
 ;;&lt;br /&gt;
 esac&lt;br /&gt;
Diese Zeilen sollten ganz am Ende bleiben, damit auch sichergestellt ist das nur Pakete die alle Regeln durchlaufen haben dort landen.&lt;br /&gt;
&lt;br /&gt;
;Verwendete Syntax&lt;br /&gt;
:'''-j LOG''': Aktion die auf Pakete ausgeführt wird, hier LOG&lt;br /&gt;
:'''--log-prefix &amp;quot;--iptables-in--&amp;quot;''': Schreibt ''--iptables-in--'' , vor jedes Paket das am INPUT verworfen wurde,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==netstat-nat==&lt;br /&gt;
Installation:&lt;br /&gt;
 sudo apt-get install netstat-nat&lt;br /&gt;
&lt;br /&gt;
list of natted connections:&lt;br /&gt;
 netstat-nat -n&lt;br /&gt;
&lt;br /&gt;
NAT connections with protocol selection:&lt;br /&gt;
 netstat-nat -np&lt;br /&gt;
&lt;br /&gt;
source IP XXX.XXX.XXX.XXX&lt;br /&gt;
 netstat-nat -s XXX.XXX.XXX.XXX&lt;br /&gt;
&lt;br /&gt;
destination IP/hostname = XXX&lt;br /&gt;
 netstat-nat -s XXX&lt;br /&gt;
&lt;br /&gt;
SNAT connections:&lt;br /&gt;
 netstat-nat -S&lt;br /&gt;
&lt;br /&gt;
DNAT connections:&lt;br /&gt;
 netstat-nat -D&lt;br /&gt;
&lt;br /&gt;
NAT connections:&lt;br /&gt;
 netstat-nat -L&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==connection-tracking==&lt;br /&gt;
&lt;br /&gt;
root@nagus:/proc/net#&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
connection tracking: &lt;br /&gt;
 ip_conntrack&lt;br /&gt;
&lt;br /&gt;
nat tracking:&lt;br /&gt;
 nf_conntrack&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
conntrack - command line interface for netfilter connection tracking&lt;br /&gt;
              This is the default table.  It contains a list of all  currently&lt;br /&gt;
              tracked  connections  through  the  system.&lt;br /&gt;
   &lt;br /&gt;
       conntrack -L [table] [-z]            List connection tacking or expectation table&lt;br /&gt;
       conntrack -G [table] parameters      Search for and show a particular (matching) entry in  the  given table.&lt;br /&gt;
       conntrack -D [table] paramaters      Delete an entry from the given table.&lt;br /&gt;
       conntrack -I [table] parameters      Create a new entry from the given table.&lt;br /&gt;
       conntrack -U [table] parameters      Update an entry from the given table.&lt;br /&gt;
       conntrack -E [table] parameters      Display a real-time event log.&lt;br /&gt;
       conntrack -F [table]                 Flush the whole given table&lt;br /&gt;
       conntrack -C [table]                 Show the table counter.&lt;br /&gt;
       conntrack -S                         Show the in-kernel connection tracking system statistics.&lt;br /&gt;
&lt;br /&gt;
=DNAT weiterleitung bis auf einen port=&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 SSHPORT=&amp;quot;8472&amp;quot;&lt;br /&gt;
 VMIP=&amp;quot;WEITERLEITUNGS-IP&amp;quot;&lt;br /&gt;
 MAINIP=&amp;quot;CONNECT-IP&amp;quot;&lt;br /&gt;
 case $1 in&lt;br /&gt;
 start)&lt;br /&gt;
 echo &amp;quot;starte firewall&amp;quot;&lt;br /&gt;
 iptables -F&lt;br /&gt;
 iptables -F -t nat&lt;br /&gt;
 iptables -F -t mangle&lt;br /&gt;
 iptables -X&lt;br /&gt;
 iptables -X -t nat&lt;br /&gt;
 iptables -X -t mangle&lt;br /&gt;
 iptables -t nat -N innat&lt;br /&gt;
 iptables -t nat -A innat -j RETURN -p tcp --dport $SSHPORT&lt;br /&gt;
 iptables -t nat -A innat -j DNAT --to $VMIP&lt;br /&gt;
 iptables -t nat -A PREROUTING -d $MAINIP -j innat&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT -s $VMIP --to $MAINIP&lt;br /&gt;
 ;;&lt;br /&gt;
 stop)&lt;br /&gt;
 echo &amp;quot;stoppe firewall&amp;quot;&lt;br /&gt;
 iptables -F&lt;br /&gt;
 iptables -F -t nat&lt;br /&gt;
 iptables -F -t mangle&lt;br /&gt;
 iptables -X&lt;br /&gt;
 iptables -X -t nat&lt;br /&gt;
 iptables -X -t mangle&lt;br /&gt;
 ;;&lt;br /&gt;
 esac&lt;br /&gt;
&lt;br /&gt;
=mark=&lt;br /&gt;
&lt;br /&gt;
 iptables -t mangle -A PREROUTING -j MARK -p tcp --dport 25 --set-mark 9&lt;br /&gt;
 iptables -t nat -A PREROUTING -j REDIRECT -p tcp --dport 25 --to 52525&lt;br /&gt;
 iptables -A INPUT -j ACCEPT -m mark --mark 9&lt;br /&gt;
&lt;br /&gt;
Ist eigentlich selbsterklärend. Alle ankommenden Pakete auf einen spezifizierten Port werden markiert (32 mögliche).&lt;br /&gt;
&lt;br /&gt;
Diese Pakete werden dann an einen anderen Port redirected (auf selbem Host umgeleitet). &lt;br /&gt;
&lt;br /&gt;
Da die Pakete markiert wurden und eine INPUT-Regel erstellt ist, muss der destinationport NICHT geöffnet werden!&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Icinga&amp;diff=4614</id>
		<title>Icinga</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Icinga&amp;diff=4614"/>
		<updated>2014-07-10T14:00:02Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* Workaround &amp;quot;SOCKET TIMEOUT&amp;quot; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Icinca Classic=&lt;br /&gt;
=Postgres Anbindung=&lt;br /&gt;
==PPAPPA==&lt;br /&gt;
 add-apt-repository ppa:formorer/icinga&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install icinga icinga-doc icinga-idoutils postgresql libdbd-pgsql postgresql-client&lt;br /&gt;
&lt;br /&gt;
==Enable ido2db Daemon==&lt;br /&gt;
 vim /etc/default/icinga&lt;br /&gt;
 IDO2DB=yes&lt;br /&gt;
 &lt;br /&gt;
 service ido2db start&lt;br /&gt;
==Nagios Plugins==&lt;br /&gt;
 apt-get install nagios-plugins&lt;br /&gt;
==Enable idomod module==&lt;br /&gt;
 Check whether this has already been done in /etc/icinga/modules/idoutils.cfg. &lt;br /&gt;
 If not, copy the sample config over and restart Icinga to load the module. (Tip - if icinga.cfg does not contain&lt;br /&gt;
 cfg_dir=/etc/icinga/modules the config won't be included!).&lt;br /&gt;
&lt;br /&gt;
 cp /usr/share/doc/icinga-idoutils/examples/idoutils.cfg-sample /etc/icinga/modules/idoutils.cfg&lt;br /&gt;
&lt;br /&gt;
=Icinca Web=&lt;br /&gt;
==Additional Packages==&lt;br /&gt;
 sudo apt-get install php5 php5-cli php-pear php5-xmlrpc php5-xsl php5-gd php5-ldap php5-pgsql&lt;br /&gt;
&lt;br /&gt;
==Install==&lt;br /&gt;
 apt-get install icinga-web&lt;br /&gt;
=Mobile=&lt;br /&gt;
https://wiki.icinga.org/display/howtos/Setting+up+Icinga+Mobile&lt;br /&gt;
&lt;br /&gt;
==ubuntu==&lt;br /&gt;
*http://www.patrick-gotthard.de/icinga-mit-neuem-webinterface-unter-ubuntu-installieren&lt;br /&gt;
*http://askubuntu.com/questions/169033/how-to-install-icinga-on-ubuntu-12-04-monitor-remote-host&lt;br /&gt;
&lt;br /&gt;
=Workaround &amp;quot;SOCKET TIMEOUT&amp;quot;=&lt;br /&gt;
&lt;br /&gt;
“CRITICAL – Socket timeout after 10 seconds” error kann man leicht fixen, indem man die Checkfrequenz erhöht.&lt;br /&gt;
&lt;br /&gt;
Dies geschieht in der commands.cfg (liegt unter '''/etc/ininga/objects''') [Diese kann auch unter /usr/local/nagios/etc/objects/ oder /etc/nagios/ liegen] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dieses Case muss geändert werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define command {&lt;br /&gt;
 command_name    check_nrpe&lt;br /&gt;
 command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In diese Zeile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define command {&lt;br /&gt;
 command_name    check_nrpe&lt;br /&gt;
 command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -t 20&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man muss lediglich den Parameter &amp;quot;-t *sekundenanzahl*&amp;quot; anhängen&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Icinga&amp;diff=4613</id>
		<title>Icinga</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Icinga&amp;diff=4613"/>
		<updated>2014-07-10T13:59:54Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* Workaround &amp;quot;SOCKET TIMEOUT&amp;quot; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Icinca Classic=&lt;br /&gt;
=Postgres Anbindung=&lt;br /&gt;
==PPAPPA==&lt;br /&gt;
 add-apt-repository ppa:formorer/icinga&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install icinga icinga-doc icinga-idoutils postgresql libdbd-pgsql postgresql-client&lt;br /&gt;
&lt;br /&gt;
==Enable ido2db Daemon==&lt;br /&gt;
 vim /etc/default/icinga&lt;br /&gt;
 IDO2DB=yes&lt;br /&gt;
 &lt;br /&gt;
 service ido2db start&lt;br /&gt;
==Nagios Plugins==&lt;br /&gt;
 apt-get install nagios-plugins&lt;br /&gt;
==Enable idomod module==&lt;br /&gt;
 Check whether this has already been done in /etc/icinga/modules/idoutils.cfg. &lt;br /&gt;
 If not, copy the sample config over and restart Icinga to load the module. (Tip - if icinga.cfg does not contain&lt;br /&gt;
 cfg_dir=/etc/icinga/modules the config won't be included!).&lt;br /&gt;
&lt;br /&gt;
 cp /usr/share/doc/icinga-idoutils/examples/idoutils.cfg-sample /etc/icinga/modules/idoutils.cfg&lt;br /&gt;
&lt;br /&gt;
=Icinca Web=&lt;br /&gt;
==Additional Packages==&lt;br /&gt;
 sudo apt-get install php5 php5-cli php-pear php5-xmlrpc php5-xsl php5-gd php5-ldap php5-pgsql&lt;br /&gt;
&lt;br /&gt;
==Install==&lt;br /&gt;
 apt-get install icinga-web&lt;br /&gt;
=Mobile=&lt;br /&gt;
https://wiki.icinga.org/display/howtos/Setting+up+Icinga+Mobile&lt;br /&gt;
&lt;br /&gt;
==ubuntu==&lt;br /&gt;
*http://www.patrick-gotthard.de/icinga-mit-neuem-webinterface-unter-ubuntu-installieren&lt;br /&gt;
*http://askubuntu.com/questions/169033/how-to-install-icinga-on-ubuntu-12-04-monitor-remote-host&lt;br /&gt;
&lt;br /&gt;
=Workaround &amp;quot;SOCKET TIMEOUT&amp;quot;=&lt;br /&gt;
&lt;br /&gt;
“CRITICAL – Socket timeout after 10 seconds” error kann man leicht fixen, indem man die Checkfrequenz erhöht.&lt;br /&gt;
&lt;br /&gt;
Dies geschieht in der commands.cfg (liegt unter '''/etc/ininga/objects''') [Diese kann auch unter /usr/local/nagios/etc/objects/ oder /etc/nagios/ liegen] &lt;br /&gt;
&lt;br /&gt;
Dieses Case muss geändert werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define command {&lt;br /&gt;
 command_name    check_nrpe&lt;br /&gt;
 command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In diese Zeile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define command {&lt;br /&gt;
 command_name    check_nrpe&lt;br /&gt;
 command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -t 20&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man muss lediglich den Parameter &amp;quot;-t *sekundenanzahl*&amp;quot; anhängen&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Icinga&amp;diff=4612</id>
		<title>Icinga</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Icinga&amp;diff=4612"/>
		<updated>2014-07-10T13:59:27Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Icinca Classic=&lt;br /&gt;
=Postgres Anbindung=&lt;br /&gt;
==PPAPPA==&lt;br /&gt;
 add-apt-repository ppa:formorer/icinga&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install icinga icinga-doc icinga-idoutils postgresql libdbd-pgsql postgresql-client&lt;br /&gt;
&lt;br /&gt;
==Enable ido2db Daemon==&lt;br /&gt;
 vim /etc/default/icinga&lt;br /&gt;
 IDO2DB=yes&lt;br /&gt;
 &lt;br /&gt;
 service ido2db start&lt;br /&gt;
==Nagios Plugins==&lt;br /&gt;
 apt-get install nagios-plugins&lt;br /&gt;
==Enable idomod module==&lt;br /&gt;
 Check whether this has already been done in /etc/icinga/modules/idoutils.cfg. &lt;br /&gt;
 If not, copy the sample config over and restart Icinga to load the module. (Tip - if icinga.cfg does not contain&lt;br /&gt;
 cfg_dir=/etc/icinga/modules the config won't be included!).&lt;br /&gt;
&lt;br /&gt;
 cp /usr/share/doc/icinga-idoutils/examples/idoutils.cfg-sample /etc/icinga/modules/idoutils.cfg&lt;br /&gt;
&lt;br /&gt;
=Icinca Web=&lt;br /&gt;
==Additional Packages==&lt;br /&gt;
 sudo apt-get install php5 php5-cli php-pear php5-xmlrpc php5-xsl php5-gd php5-ldap php5-pgsql&lt;br /&gt;
&lt;br /&gt;
==Install==&lt;br /&gt;
 apt-get install icinga-web&lt;br /&gt;
=Mobile=&lt;br /&gt;
https://wiki.icinga.org/display/howtos/Setting+up+Icinga+Mobile&lt;br /&gt;
&lt;br /&gt;
==ubuntu==&lt;br /&gt;
*http://www.patrick-gotthard.de/icinga-mit-neuem-webinterface-unter-ubuntu-installieren&lt;br /&gt;
*http://askubuntu.com/questions/169033/how-to-install-icinga-on-ubuntu-12-04-monitor-remote-host&lt;br /&gt;
&lt;br /&gt;
=Workaround &amp;quot;SOCKET TIMEOUT&amp;quot;=&lt;br /&gt;
&lt;br /&gt;
“CRITICAL – Socket timeout after 10 seconds” error kann man leicht fixen, indem man die Checkfrequenz erhöht.&lt;br /&gt;
Dies geschieht in der commands.cfg (liegt unter /etc/ininga/objects) [Diese kann auch unter /usr/local/nagios/etc/objects/ oder /etc/nagios/ liegen] &lt;br /&gt;
&lt;br /&gt;
Dieses Case muss geändert werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define command {&lt;br /&gt;
 command_name    check_nrpe&lt;br /&gt;
 command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In diese Zeile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define command {&lt;br /&gt;
 command_name    check_nrpe&lt;br /&gt;
 command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -t 20&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man muss lediglich den Parameter &amp;quot;-t *sekundenanzahl*&amp;quot; anhängen&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Gruppenrichtlinien&amp;diff=4356</id>
		<title>Gruppenrichtlinien</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Gruppenrichtlinien&amp;diff=4356"/>
		<updated>2014-05-26T12:17:54Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* Erstellen einer Richtlinie */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
=Grundlagen, Bedingungen=&lt;br /&gt;
&lt;br /&gt;
- Domäne ist eingerichtet &amp;lt;br&amp;gt;&lt;br /&gt;
- Domänen Controller ist bei den Clients als erster DNS eingetragen&amp;lt;br&amp;gt;&lt;br /&gt;
- Client Computer sind zum AD hinzugefügt&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das AD sollte sehr einfach strukturiert werden. Dazu werden eigene Organisationseinheiten (OUs) angelegt, die Standardgruppen von Microsoft werden NICHT genutzt. Die vorhandenen Benutzer und Computer werden in die entsprechenden OUs verschoben.&lt;br /&gt;
&lt;br /&gt;
Sollte man mehrere Benutzergruppen brauchen wird für jede Gruppe eine eigene OU angelegt. Man könnte zwar auch innerhalb der vorhandenen OU Benutzergruppen anlegen, wodurch sich aber später die Verwaltung deutlich erschwert. &lt;br /&gt;
&lt;br /&gt;
=Verwaltung=&lt;br /&gt;
&lt;br /&gt;
Am Einfachsten verwaltet man seine Gruppenrichtlinien mit der Gruppenrichtlininenverwaltungskonsole von Windows.&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Start&amp;quot; --&amp;gt; ausführen --&amp;gt; gpmc.msc&lt;br /&gt;
&lt;br /&gt;
==Erstellen einer Richtlinie==&lt;br /&gt;
&lt;br /&gt;
Angesichts der geschilderten Unübersichtlichkeit sollte man folgende Fallunterscheidungen treffen:&lt;br /&gt;
&lt;br /&gt;
*Eine Verknüpfung ist für alle User auf ausgewählten PCs bestimmt:&lt;br /&gt;
 Hier konfiguriert man das GPO über Computerkonfiguration =&amp;gt; Einstellungen =&amp;gt; Windows-Einstellungen =&amp;gt; Verknüpfungen und wählt als Speicherort das öffentliche Profil (Speicherorte, die mit Alle Benutzer bezeichnet sind).&lt;br /&gt;
*Eine Verknüpfung ist für ausgewählte User auf allen PCs bestimmt: &lt;br /&gt;
 Hier nimmt man die Einstellungen unter Benutzerkonfiguration und schreibt die Verknüpfung in das Profil der jeweiligen Benutzer.&lt;br /&gt;
&lt;br /&gt;
Nach der Entscheidung kann man unter &amp;quot;Gruppenrichtlinienobjekte&amp;quot; neue erstellen.&lt;br /&gt;
&lt;br /&gt;
=LINKS=&lt;br /&gt;
*http://www.gruppenrichtlinien.de/artikel/erstellen-einer-gruppenrichtlinie/&lt;br /&gt;
*http://wiki.univention.de/index.php?title=Samba_4_Quickstart-3.1#Konfiguration_einer_Gruppenrichtlinie&lt;br /&gt;
*&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Gruppenrichtlinien&amp;diff=4355</id>
		<title>Gruppenrichtlinien</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Gruppenrichtlinien&amp;diff=4355"/>
		<updated>2014-05-26T12:13:10Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* Verwaltung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
=Grundlagen, Bedingungen=&lt;br /&gt;
&lt;br /&gt;
- Domäne ist eingerichtet &amp;lt;br&amp;gt;&lt;br /&gt;
- Domänen Controller ist bei den Clients als erster DNS eingetragen&amp;lt;br&amp;gt;&lt;br /&gt;
- Client Computer sind zum AD hinzugefügt&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das AD sollte sehr einfach strukturiert werden. Dazu werden eigene Organisationseinheiten (OUs) angelegt, die Standardgruppen von Microsoft werden NICHT genutzt. Die vorhandenen Benutzer und Computer werden in die entsprechenden OUs verschoben.&lt;br /&gt;
&lt;br /&gt;
Sollte man mehrere Benutzergruppen brauchen wird für jede Gruppe eine eigene OU angelegt. Man könnte zwar auch innerhalb der vorhandenen OU Benutzergruppen anlegen, wodurch sich aber später die Verwaltung deutlich erschwert. &lt;br /&gt;
&lt;br /&gt;
=Verwaltung=&lt;br /&gt;
&lt;br /&gt;
Am Einfachsten verwaltet man seine Gruppenrichtlinien mit der Gruppenrichtlininenverwaltungskonsole von Windows.&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Start&amp;quot; --&amp;gt; ausführen --&amp;gt; gpmc.msc&lt;br /&gt;
&lt;br /&gt;
==Erstellen einer Richtlinie==&lt;br /&gt;
&lt;br /&gt;
Angesichts der geschilderten Unübersichtlichkeit sollte man folgende Fallunterscheidungen treffen:&lt;br /&gt;
&lt;br /&gt;
*Eine Verknüpfung ist für alle User auf ausgewählten PCs bestimmt:&lt;br /&gt;
 Hier konfiguriert man das GPO über Computerkonfiguration =&amp;gt; Einstellungen =&amp;gt; Windows-Einstellungen =&amp;gt; Verknüpfungen und wählt als Speicherort das öffentliche Profil (Speicherorte, die mit Alle Benutzer bezeichnet sind).&lt;br /&gt;
*Eine Verknüpfung ist für ausgewählte User auf allen PCs bestimmt: &lt;br /&gt;
 Hier nimmt man die Einstellungen unter Benutzerkonfiguration und schreibt die Verknüpfung in das Profil der jeweiligen Benutzer.&lt;br /&gt;
&lt;br /&gt;
=LINKS=&lt;br /&gt;
*http://www.gruppenrichtlinien.de/artikel/erstellen-einer-gruppenrichtlinie/&lt;br /&gt;
*http://wiki.univention.de/index.php?title=Samba_4_Quickstart-3.1#Konfiguration_einer_Gruppenrichtlinie&lt;br /&gt;
*&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Gruppenrichtlinien&amp;diff=4354</id>
		<title>Gruppenrichtlinien</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Gruppenrichtlinien&amp;diff=4354"/>
		<updated>2014-05-26T12:13:00Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* Erstellen einer Richtlinie */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
=Grundlagen, Bedingungen=&lt;br /&gt;
&lt;br /&gt;
- Domäne ist eingerichtet &amp;lt;br&amp;gt;&lt;br /&gt;
- Domänen Controller ist bei den Clients als erster DNS eingetragen&amp;lt;br&amp;gt;&lt;br /&gt;
- Client Computer sind zum AD hinzugefügt&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das AD sollte sehr einfach strukturiert werden. Dazu werden eigene Organisationseinheiten (OUs) angelegt, die Standardgruppen von Microsoft werden NICHT genutzt. Die vorhandenen Benutzer und Computer werden in die entsprechenden OUs verschoben.&lt;br /&gt;
&lt;br /&gt;
Sollte man mehrere Benutzergruppen brauchen wird für jede Gruppe eine eigene OU angelegt. Man könnte zwar auch innerhalb der vorhandenen OU Benutzergruppen anlegen, wodurch sich aber später die Verwaltung deutlich erschwert. &lt;br /&gt;
&lt;br /&gt;
=Verwaltung=&lt;br /&gt;
&lt;br /&gt;
Am Einfachsten verwaltet man seine Gruppenrichtlinien mit der Gruppenrichtlininenverwaltungskonsole von Windows.&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Start&amp;quot; --&amp;gt; ausführen --&amp;gt; gpmc.msc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erstellen einer Richtlinie==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Angesichts der geschilderten Unübersichtlichkeit sollte man folgende Fallunterscheidungen treffen:&lt;br /&gt;
&lt;br /&gt;
*Eine Verknüpfung ist für alle User auf ausgewählten PCs bestimmt:&lt;br /&gt;
 Hier konfiguriert man das GPO über Computerkonfiguration =&amp;gt; Einstellungen =&amp;gt; Windows-Einstellungen =&amp;gt; Verknüpfungen und wählt als Speicherort das öffentliche Profil (Speicherorte, die mit Alle Benutzer bezeichnet sind).&lt;br /&gt;
*Eine Verknüpfung ist für ausgewählte User auf allen PCs bestimmt: &lt;br /&gt;
 Hier nimmt man die Einstellungen unter Benutzerkonfiguration und schreibt die Verknüpfung in das Profil der jeweiligen Benutzer.&lt;br /&gt;
&lt;br /&gt;
=LINKS=&lt;br /&gt;
*http://www.gruppenrichtlinien.de/artikel/erstellen-einer-gruppenrichtlinie/&lt;br /&gt;
*http://wiki.univention.de/index.php?title=Samba_4_Quickstart-3.1#Konfiguration_einer_Gruppenrichtlinie&lt;br /&gt;
*&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Proxmox&amp;diff=4301</id>
		<title>Proxmox</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Proxmox&amp;diff=4301"/>
		<updated>2014-05-09T06:53:07Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* Backup aufspielen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Infos - Hostsystem=&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox.jpg|1050px]]&lt;br /&gt;
&lt;br /&gt;
* über die URL: https://HOST-IP:8006/ kann man auf das Webinterface zugreifen.&lt;br /&gt;
&lt;br /&gt;
* Die klassische Ansicht zeigt links die Server/VM-Liste und in der Mitte die verschiedenen Monitore/Parameter sowie Einstellungsmöglichkeiten.&lt;br /&gt;
&lt;br /&gt;
* unten befindet sich der Serverlog, welcher die aktuellen Prozesse/Aufgaben anzeigt.&lt;br /&gt;
&lt;br /&gt;
==Neue VM anlegen/löschen==&lt;br /&gt;
&lt;br /&gt;
: '''1.''' Man klickt den Knotenpunkt an&lt;br /&gt;
: '''2.''' Auf den &amp;quot;Erstelle VM&amp;quot;-Button oben rechts klicken&lt;br /&gt;
: '''3.''' Die jeweiligen Spezifikationen eintragen&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox2.jpg]]&lt;br /&gt;
&lt;br /&gt;
: '''4.''' VM wird normalerweise automatisch danach gestartet, wenn nicht -&amp;gt; starten!&lt;br /&gt;
: '''5.''' Die VM in der Hostliste links auswählen und danach auf &amp;quot;Konsole&amp;quot; oben rechts klicken. (dafür muss Java installiert sein, siehe Troubleshoot)&lt;br /&gt;
: '''6.''' Nun seht ihr ein neues Browserfenster, mit der grafischen Ausgabe der VM.&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox3.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
: '''7.''' Fertig installieren.&lt;br /&gt;
: '''8.''' VM herunterfahren&lt;br /&gt;
: '''9.''' Vm anklicken, Optionen auswählen, Bootreihenfolge per Doppelklick anpassen!&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox5.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
: '''10.''' anwählen der VM, und einen Klick auf &amp;quot;Entfernen&amp;quot; oben rechts, führt zum löschen der VM&lt;br /&gt;
&lt;br /&gt;
==Storage über webinterface==&lt;br /&gt;
&lt;br /&gt;
: '''1.''' &amp;quot;Rechenzentrum&amp;quot; anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Storage&amp;quot; wechseln&lt;br /&gt;
: '''3.''' &amp;quot;Hinzufügen/entfernen/Bearbeiten&amp;quot; nach belieben drücken&lt;br /&gt;
&lt;br /&gt;
'''Beispiel hier: NFS'''&lt;br /&gt;
[[Datei:proxmox6.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: '''4.''' Wählt euer Storagetyp (NFS/iSCSI/Directory/etc...)&lt;br /&gt;
: '''5.''' Wählt bei Inhalt '''alles''' aus und setzt &amp;quot;Max Backups&amp;quot; nach oben. (Dieser Parameter gibt die maximale Anzahl an mlgichen Backups auf dem Speicher an.)&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox7.jpg]]&lt;br /&gt;
&lt;br /&gt;
: YT-Video: http://www.youtube.com/watch?v=kHyf_l1Q1ow&lt;br /&gt;
&lt;br /&gt;
===Storage über Konsole mounten===&lt;br /&gt;
====template/isos====&lt;br /&gt;
 cd /var/lib/vz&lt;br /&gt;
 rm -r iso/ &amp;amp;&amp;amp; ln -s /mnt/MOUNTPUNKFÜRDEINEISOS/ iso&lt;br /&gt;
====bestehende VMs====&lt;br /&gt;
 cd /var/lib/vz&lt;br /&gt;
 rm -r images/ &amp;amp;&amp;amp; ln -s /mnt/MOUNTPUNKFÜRDEINEVMS/ images&lt;br /&gt;
&lt;br /&gt;
Danach müssen noch die confs kopiert werden.&lt;br /&gt;
&lt;br /&gt;
 /etc/pve/qemu-server/ vom originalsystem kopieren oder auch mounten&lt;br /&gt;
 cd /etc/pve/&lt;br /&gt;
 rm -r qemu-server/ &amp;amp;&amp;amp; ln -s /mnt/MOUNTPUNKFÜRDEINEVMCONFS/ qemu-server&lt;br /&gt;
&lt;br /&gt;
'''ACHTUNG: wenn die confs kopiert werden, müssen die Pfadangaben überarbeitet werden!'''&lt;br /&gt;
&lt;br /&gt;
==Migration==&lt;br /&gt;
&lt;br /&gt;
Rechtsklick auf die VM und &amp;quot;Migration&amp;quot; auswählen, dazu muss ein weiterer Knoten bekannt sein. (Knoten = ProxmoxVE-Host)&lt;br /&gt;
: YT-Video: http://www.youtube.com/watch?v=AkimEEHArqg&lt;br /&gt;
&lt;br /&gt;
===Image einfügen===&lt;br /&gt;
&lt;br /&gt;
1. auf dem Host System das gewünscht Image (raw/.img) hinterlegen&lt;br /&gt;
&lt;br /&gt;
2. eine neue VM anlegen und den gewünschten Typ anlegen! (qcow2/raw/vmdk)&lt;br /&gt;
&lt;br /&gt;
3. Bei Bedarf das Image konvertieren: &lt;br /&gt;
 qemu-img -f raw -O qcow2 input.img output.qcow2&lt;br /&gt;
&lt;br /&gt;
4. Das Image mit dem erstellen Datenspeicher ersetzen:&lt;br /&gt;
 cp input.img ../&amp;quot;VM-ID&amp;quot;/vm-&amp;quot;VM-ID&amp;quot;-disk-1.qcow2&lt;br /&gt;
 Beispiel: cp input.img ../101/vm-101-disk-1.qcow2&lt;br /&gt;
&lt;br /&gt;
5. vm starten&lt;br /&gt;
&lt;br /&gt;
: Link: http://agix.com.au/blog/?p=2696&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Storage einfügen ===&lt;br /&gt;
&lt;br /&gt;
==Backup==&lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gibt es 3 Arten, eine VM zu backupen.&lt;br /&gt;
&lt;br /&gt;
: '''1.''' stop-mode (Da wird die VM komplett heruntergefahren. lange downtime)&lt;br /&gt;
: '''2.''' suspend-mode (VM wird in den Ruhemodus versetzt. kurze Downtime)&lt;br /&gt;
: '''3.''' snapshot-mode (VM bleibt aktiv beim Backup)&lt;br /&gt;
===webinterface===&lt;br /&gt;
====Backup erstellen====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' VM anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Backup&amp;quot; wechseln&lt;br /&gt;
: '''3.''' &amp;quot;Backup starten&amp;quot; auswählen&lt;br /&gt;
: '''4.''' Kompression, Storage und mode angeben&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox8.jpg]]&lt;br /&gt;
&lt;br /&gt;
: '''5.''' Wenn das Backup fertig ist, seht ihr nun einen Eintrag in der &amp;quot;Backup-Liste&amp;quot; '''(Beispiel hier: VM: -101 seven-)'''&lt;br /&gt;
: '''(eventuell noch den Storage oben rechts anpassen...&lt;br /&gt;
'''&lt;br /&gt;
[[Datei:proxmox9.jpg]]&lt;br /&gt;
&lt;br /&gt;
====Backup aufspielen====&lt;br /&gt;
&lt;br /&gt;
: '''oben rechts euer Backup-Storage auswählen!'''&lt;br /&gt;
&lt;br /&gt;
: '''1.''' In der Hostleiste links, muss das Backupverzeichnis geöffnet werden&lt;br /&gt;
: '''2.''' Danach auf den Reiter &amp;quot;Inhalt&amp;quot; wechseln&lt;br /&gt;
: '''3.''' Hier ist eine Liste mit Images/Backups/Snapshots/etc. zu sehen&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox10.jpg]]&lt;br /&gt;
&lt;br /&gt;
: '''4.''' Backup anwählen, und zurückspieln&lt;br /&gt;
&lt;br /&gt;
====Snapshot live====&lt;br /&gt;
&lt;br /&gt;
=====erstellen=====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' VM anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Snapshots&amp;quot; wechseln&lt;br /&gt;
: '''3.''' &amp;quot;Snapshot erstellen&amp;quot; auswählen&lt;br /&gt;
: '''4.''' Beschreibung und Name eingeben.&lt;br /&gt;
&lt;br /&gt;
=====rollback=====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' VM anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Snapshots&amp;quot; wechseln&lt;br /&gt;
: '''3.''' gewünschtes Snapshot auswählen&lt;br /&gt;
: '''4.''' &amp;quot;Rollback&amp;quot; drücken&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===console===&lt;br /&gt;
====Backup erstellen====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' als root einloggen&lt;br /&gt;
: '''2.''' VM-ID der zu backupenden VM auswählen&lt;br /&gt;
: '''3.''' Kompression, Storage und mode angeben&lt;br /&gt;
: '''4.''' Backup erstellen:&lt;br /&gt;
 &lt;br /&gt;
 vzdump $VMID --remove 0 --mode $MODE --compress $COMP --storage $STOR --node $HOSTSYSTEM&lt;br /&gt;
 mode-usage: snapshot | stop | suspend&lt;br /&gt;
 compress-usage: 0 | 1 | gzip | lzo (lzo is default)&lt;br /&gt;
 storage: im webinterface kann man die gemounteten Storages einsehen&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 vzdump 102 --remove 0 --mode stop --compress lzo --storage bucket-one --node moxxie&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Backup aufspielen====&lt;br /&gt;
&lt;br /&gt;
: '''Das Backup auf dem Storage suchen. Bei mir wurde das Verzeichnis &amp;quot;dump&amp;quot; erstellt. (bucket-one ist hier der gemountete Speicher)'''&lt;br /&gt;
&lt;br /&gt;
: '''1.'''  lzop -d -c /mnt/pve/bucket-one/dump/vzdump-qemu-102-2013_11_07-13_40_03.vma.lzo|vma extract -v -r /var/tmp/vzdumptmp161098.fifo - /var/tmp/vzdumptmp161098&lt;br /&gt;
: '''2.''' &amp;quot;zurückspielen&amp;quot;&lt;br /&gt;
: '''3.''' VM-ID und Storage auswählen&lt;br /&gt;
: '''4.''' (Das ist btw auch ein Weg die VM zu kopieren)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!----&lt;br /&gt;
====Snapshot live====&lt;br /&gt;
&lt;br /&gt;
=====erstellen=====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' VM anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Snapshots&amp;quot; wechseln&lt;br /&gt;
: '''3.''' &amp;quot;Snapshot erstellen&amp;quot; auswählen&lt;br /&gt;
: '''4.''' Beschreibung und Name eingeben.&lt;br /&gt;
&lt;br /&gt;
=====rollback=====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' VM anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Snapshots&amp;quot; wechseln&lt;br /&gt;
: '''3.''' gewünschtes Snapshot auswählen&lt;br /&gt;
: '''4.''' &amp;quot;Rollback&amp;quot; drücken&lt;br /&gt;
------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Firewall==&lt;br /&gt;
Grundaufbau:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### BEGIN INIT INFO&lt;br /&gt;
# Provides:             kmyfirewall&lt;br /&gt;
# Required-Start:       $all&lt;br /&gt;
# Required-Stop:        $all&lt;br /&gt;
# Default-Start:        2 3 4 5&lt;br /&gt;
# Default-Stop:         0 1 6&lt;br /&gt;
# Short-Description:    Start iptables firewall&lt;br /&gt;
# Description:          Enable iptables firewall rules from kmyfirewall&lt;br /&gt;
### END INIT INFO&lt;br /&gt;
&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
case $1 in&lt;br /&gt;
start)&lt;br /&gt;
echo &amp;quot;starte firewall&amp;quot;&lt;br /&gt;
;;&lt;br /&gt;
stop)&lt;br /&gt;
echo &amp;quot;stoppe firewall&amp;quot;&lt;br /&gt;
;;&lt;br /&gt;
esac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das ist eine Standard-Firewall mit 2 Interfaces&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### BEGIN INIT INFO&lt;br /&gt;
# Provides:		kmyfirewall&lt;br /&gt;
# Required-Start:	$all&lt;br /&gt;
# Required-Stop:	$all&lt;br /&gt;
# Default-Start:	2 3 4 5&lt;br /&gt;
# Default-Stop:		0 1 6&lt;br /&gt;
# Short-Description: 	Start iptables firewall&lt;br /&gt;
# Description:		Enable iptables firewall rules from kmyfirewall&lt;br /&gt;
### END INIT INFO&lt;br /&gt;
&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
WAN=vmbr0&lt;br /&gt;
INT=vmbr1&lt;br /&gt;
&lt;br /&gt;
case $1 in&lt;br /&gt;
start)&lt;br /&gt;
echo &amp;quot;starte firewall&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;forward&amp;quot;&lt;br /&gt;
/bin/echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
#ip_conntrack_ftp&lt;br /&gt;
#ip_conntrack&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;flush&amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -P INPUT DROP&lt;br /&gt;
iptables -P OUTPUT DROP&lt;br /&gt;
iptables -P FORWARD DROP&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;e&amp;amp;r&amp;quot;&lt;br /&gt;
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;lo&amp;quot;&lt;br /&gt;
iptables -A OUTPUT -o lo -j ACCEPT&lt;br /&gt;
iptables -A INPUT -i lo -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;in/output WAN&amp;quot;&lt;br /&gt;
iptables -A OUTPUT -o $WAN -m state --state NEW -j ACCEPT #allesraus&lt;br /&gt;
iptables -A INPUT -i $WAN -p tcp --dport 53 -m state --state NEW -j ACCEPT #DNS&lt;br /&gt;
iptables -A INPUT -i $WAN -p icmp --icmp-type 8 -j ACCEPT #ping&lt;br /&gt;
iptables -A INPUT -i $WAN -p tcp --dport 8472 -m state --state NEW -j ACCEPT #SSH&lt;br /&gt;
iptables -A INPUT -i $WAN -p tcp --dport 80 -m state --state NEW -j ACCEPT #http&lt;br /&gt;
iptables -A INPUT -i $WAN -p tcp --dport 443 -m state --state NEW -j ACCEPT #https &lt;br /&gt;
iptables -A INPUT -i $WAN -p tcp --dport 8006 -m state --state NEW -j ACCEPT #WEBINTERFACE&lt;br /&gt;
iptables -A INPUT -i $WAN -p tcp --dport 5900:5999 -m state --state NEW -j ACCEPT #VNC-Portrange&lt;br /&gt;
iptables -A INPUT -i $WAN -p tcp --dport 3128 -m state --state NEW -j ACCEPT #SPICE&lt;br /&gt;
#iptables -A INPUT -i $WAN -p udp --dport 5404 -m state --state NEW -j ACCEPT #CMAN&lt;br /&gt;
#iptables -A INPUT -i $WAN -p udp --dport 5405 -m state --state NEW -j ACCEPT #CMAN&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;in/out INT&amp;quot;&lt;br /&gt;
iptables -A INPUT -j ACCEPT -i $INT -m state --state NEW&lt;br /&gt;
iptables -A OUTPUT -j ACCEPT -o $INT -m state --state NEW&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;forward&amp;quot;&lt;br /&gt;
iptables -A FORWARD -j ACCEPT -i $WAN -o $WAN -m state --state NEW&lt;br /&gt;
iptables -A FORWARD -j ACCEPT -i $WAN -o $INT -m state --state NEW&lt;br /&gt;
iptables -A FORWARD -j ACCEPT -o $WAN -i $INT -m state --state NEW&lt;br /&gt;
iptables -A FORWARD -j ACCEPT -i $INT -o $INT -m state --state NEW&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;log&amp;quot;&lt;br /&gt;
iptables -A INPUT  -j LOG  --log-prefix &amp;quot;--iptables-in--&amp;quot;&lt;br /&gt;
iptables -A OUTPUT -j LOG  --log-prefix &amp;quot;--iptables-out--&amp;quot;&lt;br /&gt;
iptables -A FORWARD -j LOG --log-prefix &amp;quot;--iptables-for--&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;;&lt;br /&gt;
stop)&lt;br /&gt;
echo &amp;quot;stoppe firewall&amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
;;&lt;br /&gt;
esac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Troubleshoot=&lt;br /&gt;
==bridge==&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
Beispiel.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto vmbr0&lt;br /&gt;
iface vmbr0 inet static&lt;br /&gt;
        address  192.168.240.187&lt;br /&gt;
        netmask  255.255.248.0&lt;br /&gt;
        gateway  192.168.240.100&lt;br /&gt;
        bridge_ports eth0&lt;br /&gt;
        bridge_stp off&lt;br /&gt;
        bridge_fd 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==VNC Ports umlegen==&lt;br /&gt;
===Für Proxmox /3.X2.X===&lt;br /&gt;
 vi /usr/share/perl5/PVE/Tools.pm&lt;br /&gt;
&lt;br /&gt;
Ändern von diesen Zeilen, (ca. Zeile 724)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sub next_vnc_port {&lt;br /&gt;
    return next_unused_port(5900, 6000);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in diese Zeilen: (gewünschte Ports eintragen[Bsp.: 6900-7000])&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sub next_vnc_port {&lt;br /&gt;
    return next_unused_port(6900, 7000);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Proxmox-System muss neugestartet werden!&lt;br /&gt;
&lt;br /&gt;
===Für Proxmox 1.X===&lt;br /&gt;
 vi /usr/share/perl5/PVE/ConfigServer.pm&lt;br /&gt;
&lt;br /&gt;
Ändern von dieser Zeile, &lt;br /&gt;
 for (my $p = 5900; $p &amp;lt; 6000; $p++) {&lt;br /&gt;
&lt;br /&gt;
in diese Zeile: (gewünschte Ports eintragen[Bsp.: 6900-7000])&lt;br /&gt;
 for (my $p = 6900; $p &amp;lt; 7000; $p++) {&lt;br /&gt;
&lt;br /&gt;
Das Proxmox-System muss neugestartet werden!&lt;br /&gt;
&lt;br /&gt;
==USB pass through==&lt;br /&gt;
&lt;br /&gt;
mit das device ermitteln&lt;br /&gt;
 lsusb&lt;br /&gt;
&lt;br /&gt;
Beispiel: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@moxxie:/var/log/vzdump# lsusb   &lt;br /&gt;
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 008 Device 002: ID 046d:c315 Logitech, Inc. Classic New Touch Keyboard&lt;br /&gt;
Bus 008 Device 003: ID 04d8:fa0d Microchip Technology, Inc.&lt;br /&gt;
root@moxxie:/var/log/vzdump# &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wir suchen dieses Gerät und wollen es durchtunneln:&lt;br /&gt;
 Bus 008 Device 003: ID 04d8:fa0d Microchip Technology, Inc.&lt;br /&gt;
&lt;br /&gt;
danach das USBGerät durchtunneln&lt;br /&gt;
 qm set $VMID -usb0 host=$VENDOR:$PRODID&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 qm set 110 -usb0 host=04d8:fa0d&lt;br /&gt;
&lt;br /&gt;
==Port list==&lt;br /&gt;
&lt;br /&gt;
 Web interface: 8006&lt;br /&gt;
 VNC Web console: 5900-5999&lt;br /&gt;
 SPICE console: 3128&lt;br /&gt;
 SSH access (only optional): 22&lt;br /&gt;
 CMAN multicast (if you run a cluster): 5404, 5405 UDP&lt;br /&gt;
&lt;br /&gt;
==VM-Killen==&lt;br /&gt;
&lt;br /&gt;
Mit SSH auf den Knoten/server connecten.&lt;br /&gt;
&lt;br /&gt;
Danach mit '''&amp;quot;ps -elf | grep kvm&amp;quot;''' die VM suchen und mit &amp;quot;kill&amp;quot; töten...&lt;br /&gt;
&lt;br /&gt;
==Validation entfernen==&lt;br /&gt;
backup the file:&lt;br /&gt;
 cp /usr/share/pve-manager/ext4/pvemanagerlib.js /usr/share/pve-manager/ext4/pvemanagerlib.js_BKP&lt;br /&gt;
&lt;br /&gt;
open the file&lt;br /&gt;
 vi /usr/share/pve-manager/ext4/pvemanagerlib.js +454&lt;br /&gt;
&lt;br /&gt;
change the line &lt;br /&gt;
 if (data.status !== 'Active') {&lt;br /&gt;
&lt;br /&gt;
to below:&lt;br /&gt;
 if (false) {&lt;br /&gt;
&lt;br /&gt;
==Manual: qm==&lt;br /&gt;
*http://pve.proxmox.com/wiki/Manual:_qm&lt;br /&gt;
&lt;br /&gt;
==Java Konsole==&lt;br /&gt;
&lt;br /&gt;
Laut Proxmox einfach updaten!&lt;br /&gt;
Stable version: '''7 Patch45 32bit @Windows7'''&lt;br /&gt;
&lt;br /&gt;
*http://pve.proxmox.com/wiki/Java_Console_%28Ubuntu%29&lt;br /&gt;
&lt;br /&gt;
==Install Proxmox VE on Debian Squeeze==&lt;br /&gt;
: http://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Squeeze&lt;br /&gt;
==Install Proxmox VE on Debian Wheezy==&lt;br /&gt;
: http://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Wheezy&lt;br /&gt;
&lt;br /&gt;
==Hetzner Proxmox installieren==&lt;br /&gt;
: http://wiki.hetzner.de/index.php/Proxmox_VE#Netzwerkkonfiguration_KVM.2FBridged&lt;br /&gt;
&lt;br /&gt;
==Konfigfiles==&lt;br /&gt;
 /etc/pve/qemu-server/&lt;br /&gt;
==Isos==&lt;br /&gt;
 /var/lib/vz/template/iso&lt;br /&gt;
&lt;br /&gt;
=QM=&lt;br /&gt;
== listen der virtuellen maschinen ==&lt;br /&gt;
 root@betor:~# qm list &lt;br /&gt;
      VMID NAME                 STATUS     MEM(MB)    BOOTDISK(GB) PID       &lt;br /&gt;
       100 jello                running    4096              32.00 6942      &lt;br /&gt;
       101 seven                stopped    4096              32.00 0         &lt;br /&gt;
       102 icinga               stopped    1024              10.00 0         &lt;br /&gt;
       103 VM 103               stopped    0                  0.00 0         &lt;br /&gt;
       104 symantec             stopped    2048             250.00 0         &lt;br /&gt;
       108 icinga               stopped    1024              10.00 0&lt;br /&gt;
== starten der virtuellen maschinen ==&lt;br /&gt;
 root@betor:~# qm start 101&lt;br /&gt;
== stoppen der virtuellen maschinen ==&lt;br /&gt;
 root@betor:~# qm stop 101&lt;br /&gt;
== config der virtuellen maschinen auslesen ==&lt;br /&gt;
 root@betor:~# qm config 101&lt;br /&gt;
 boot: dcn&lt;br /&gt;
 bootdisk: ide0&lt;br /&gt;
 cores: 2&lt;br /&gt;
 ide0: local:101/vm-101-disk-1.qcow2,format=qcow2,size=32G&lt;br /&gt;
 ide2: none,media=cdrom&lt;br /&gt;
 memory: 4096&lt;br /&gt;
 name: seven&lt;br /&gt;
 net0: e1000=2A:06:D1:86:82:37,bridge=vmbr0&lt;br /&gt;
 ostype: win7&lt;br /&gt;
 sockets: 2&lt;br /&gt;
== shutdown einer virtuellen maschine ==&lt;br /&gt;
 root@betor:~# qm shutdown 101&lt;br /&gt;
== status einer virtuellen maschine anzeigen ==&lt;br /&gt;
 root@betor:~# qm status 101&lt;br /&gt;
 status: running&lt;br /&gt;
== virtuelle maschine erstellen ==&lt;br /&gt;
  qm create 115 --cdrom local:iso/ubuntu-6.06.1-desktop-i386.iso  --name ubuntu6 --net0 virtio=62:57:BC:A2:0E:18 \ &lt;br /&gt;
     --ide0  local:115/vm-115-disk-1.qcow2,format=qcow2,size=20G     --ostype l26 --memory 512 --onboot no --sockets 2&lt;br /&gt;
&lt;br /&gt;
== virtuelle maschine inklusive Volumes löschen==&lt;br /&gt;
 qm destroy 115&lt;br /&gt;
&lt;br /&gt;
==VM lock==&lt;br /&gt;
&lt;br /&gt;
 qm lock $VMID&lt;br /&gt;
 qm unlock $VMID&lt;br /&gt;
&lt;br /&gt;
==festplatte durchreichen==&lt;br /&gt;
*http://www.andysblog.de/proxmox-ve-festplatte-an-vm-durchreichen&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
: Link für die cmd-Liste: http://pve.proxmox.com/wiki/Command_line_tools&lt;br /&gt;
: Link für QM-manual: http://pve.proxmox.com/wiki/Qm_manual&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Hauptseite&amp;diff=4207</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Hauptseite&amp;diff=4207"/>
		<updated>2014-04-14T10:15:52Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* How To's */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Dokumentation ===&lt;br /&gt;
&lt;br /&gt;
* [[Aufgaben]]&lt;br /&gt;
* [[Lösungen]]&lt;br /&gt;
=== Grundlagen und Administration ===&lt;br /&gt;
&lt;br /&gt;
* [[Linux Grundlagen]]&lt;br /&gt;
* [[Bootprozess]]&lt;br /&gt;
&lt;br /&gt;
* [[Administration]]&lt;br /&gt;
* [[Kernelmodule]]&lt;br /&gt;
* [[Bash]]&lt;br /&gt;
* [[VI Crash]]&lt;br /&gt;
* [[Netzwerkkonfiguration unter Ubuntu]]&lt;br /&gt;
* [[Paketmanagement]]&lt;br /&gt;
* [[RPM]]&lt;br /&gt;
* [[Yum howto]]&lt;br /&gt;
* [[Nützliche Tools]]&lt;br /&gt;
* [[LVM]]&lt;br /&gt;
* [[RAID|RAID einrichten]]&lt;br /&gt;
* [[sudo]]&lt;br /&gt;
* [[syslog-ng]]&lt;br /&gt;
* [[cron]]&lt;br /&gt;
* [[incron]]&lt;br /&gt;
* [[Screen]]&lt;br /&gt;
* [[PPA]]&lt;br /&gt;
* [[systemd]]&lt;br /&gt;
* [[Exploit]]&lt;br /&gt;
* [[WLAN]]&lt;br /&gt;
* [[Netstat unter Windows]]&lt;br /&gt;
* [[ACL - Kurzreferenz]]&lt;br /&gt;
* [[Fedora]]&lt;br /&gt;
* [[grub2]]&lt;br /&gt;
&lt;br /&gt;
=== Netzwerken ===&lt;br /&gt;
* [[http://www.xinux.de//docs/internetadmin.pdf interadmin]]&lt;br /&gt;
* [[Ubuntu Serverdienste]]&lt;br /&gt;
* [[Network Tools]]&lt;br /&gt;
* [[SSH]]&lt;br /&gt;
* [[Ssh-tunnel]]&lt;br /&gt;
* [[Mailserver]]&lt;br /&gt;
* [[NTP]]&lt;br /&gt;
* [[Rsync]]&lt;br /&gt;
* [[IP Befehle]]&lt;br /&gt;
* [[Tcpdump]]&lt;br /&gt;
* [[Cloud]]&lt;br /&gt;
* [[NET]]&lt;br /&gt;
* [[Udpcast]]&lt;br /&gt;
* [[Dynamic Host Configuration Protocol]]&lt;br /&gt;
* [[Ramdisk entpacken]]&lt;br /&gt;
* [[PXELinux]]&lt;br /&gt;
* [[Bing]]&lt;br /&gt;
* [[Nemesis]]&lt;br /&gt;
* [[Heartbeat]]&lt;br /&gt;
* [[DRBD]]&lt;br /&gt;
* [[RedHat Cluster Suite]]&lt;br /&gt;
* [[PACEMAKER]]&lt;br /&gt;
* [[OCFS2]]&lt;br /&gt;
* [[CRM/CIB]]&lt;br /&gt;
* [[WLAN AccessPoint]]&lt;br /&gt;
* [[IPTables - from scratch]]&lt;br /&gt;
* [[Bintec]]&lt;br /&gt;
* [[Netzwerktechnik]]&lt;br /&gt;
* [[tcp/ip]]&lt;br /&gt;
* [[Nagios]]&lt;br /&gt;
* [[Betavine Connection Manager]]&lt;br /&gt;
* [[VLAN]]&lt;br /&gt;
* [[pix howto]]&lt;br /&gt;
* [[cisco howto]]&lt;br /&gt;
* [[Firewall Allgemein]]&lt;br /&gt;
* [[Subnetz mit Ubuntu Router]]&lt;br /&gt;
* [[Multicast Routing]]&lt;br /&gt;
* [[VPN]]&lt;br /&gt;
* [[VPN Allgemein|VPN Allgemein]]&lt;br /&gt;
* [[IPSEC]]&lt;br /&gt;
* [[nTop]]&lt;br /&gt;
* [[Fritz unter Ubuntu 10.04]]&lt;br /&gt;
* [[DNS mit bind9]]&lt;br /&gt;
* [[L2TP over IPSEC]]&lt;br /&gt;
* [[Traffic measure]]&lt;br /&gt;
&lt;br /&gt;
=== Systeme ===&lt;br /&gt;
* [[FreeNas]]&lt;br /&gt;
* [[FreeBsd]]&lt;br /&gt;
* [[RaspberryPi]]&lt;br /&gt;
&lt;br /&gt;
=== Dienste ===&lt;br /&gt;
* [[Untersuchung eines Linuxserver]]&lt;br /&gt;
* [[apache2]]&lt;br /&gt;
* [[apache2-neue Version]]&lt;br /&gt;
* [[Apache SSL]]&lt;br /&gt;
* [[PostgreSQL]]&lt;br /&gt;
* [[Tomcat 5.5]]&lt;br /&gt;
* [[Squid]]&lt;br /&gt;
* [[VLC]]&lt;br /&gt;
* [[VMware installation auf Ubuntu]]&lt;br /&gt;
* [[vpnc]]&lt;br /&gt;
* [[Wireless Tools]]&lt;br /&gt;
* [[Perl]]&lt;br /&gt;
* [[Joomla]]&lt;br /&gt;
* [[MySQL]]&lt;br /&gt;
* [[Typo3]]&lt;br /&gt;
* [[Samba]]&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
* [[Computer]]&lt;br /&gt;
* [[RAM]]&lt;br /&gt;
&lt;br /&gt;
=== Virtualisierung ===&lt;br /&gt;
* [[KVM]]&lt;br /&gt;
* [[Virtualbox]]&lt;br /&gt;
* [[Proxmox]]&lt;br /&gt;
&lt;br /&gt;
=== Operating Systeme ===&lt;br /&gt;
* [[Android]]&lt;br /&gt;
* [[OSX]]&lt;br /&gt;
&lt;br /&gt;
=== Misc ===&lt;br /&gt;
* [[Pflichtenheft]]&lt;br /&gt;
* [[Projektdoku]]&lt;br /&gt;
* [[Ubuntu]]&lt;br /&gt;
* [[o2 Mobile]]&lt;br /&gt;
* [[ESXI|Vmware|]]&lt;br /&gt;
* [[iscsi]]&lt;br /&gt;
* [[firefox]]&lt;br /&gt;
&lt;br /&gt;
=== Mitarbeiter ===&lt;br /&gt;
* [[Systemaufbau]]&lt;br /&gt;
=== Grafisches ===&lt;br /&gt;
* [[Netzwerk]]&lt;br /&gt;
* [[Paketmanager]]&lt;br /&gt;
* [[CD Brennen]]&lt;br /&gt;
* [[EMail einrichten]]&lt;br /&gt;
* [[Drucker]]&lt;br /&gt;
* [[TS schneiden und brennen]]&lt;br /&gt;
* [[Video Konvert Misc]]&lt;br /&gt;
* [[VNC Server]]&lt;br /&gt;
* [[Unity]]&lt;br /&gt;
* [[Avidemux]]&lt;br /&gt;
&lt;br /&gt;
===== [[LibreOffice]] =====&lt;br /&gt;
* [[Erste Schritte in LibreOffice|Erste Schritte]]&lt;br /&gt;
* [[Dokumente mit LibreOffice|Writer]]&lt;br /&gt;
* [[Tabellenkalkulation mit LibreOffice|Calc]]&lt;br /&gt;
* [[Presentationen mit LibreOffice|Impress]]&lt;br /&gt;
* [[Vektorgrafiken mit LibreOffice|Draw]]&lt;br /&gt;
* [[Der LibreOffice Formeleditor|Math]]&lt;br /&gt;
&lt;br /&gt;
===Sprachen===&lt;br /&gt;
*[[Perl]]&lt;br /&gt;
*[[Php]]&lt;br /&gt;
&lt;br /&gt;
=== How To's ===&lt;br /&gt;
&lt;br /&gt;
* [[Installation von Mediawiki unter Ubuntu]]&lt;br /&gt;
* [[Openssl]]&lt;br /&gt;
* [[Ungeschütztes Linux Hacken|Linux Grub Passwort Reset]]&lt;br /&gt;
* [[Root RAID|Root RAID einrichten]]&lt;br /&gt;
* [[Runit|Runit einrichten]]&lt;br /&gt;
* [[Wiederherstellung vom Master Boot Record - Windows 7]]&lt;br /&gt;
* [[glusterfs]]&lt;br /&gt;
* [[Geräte mit Android via MTP in Ubuntu Linux einbinden]]&lt;br /&gt;
* [[Autostart von script mit udev]]&lt;br /&gt;
* [[USB-Installation von Linux]]&lt;br /&gt;
* [[KVM Images mounten]]&lt;br /&gt;
* [[pppoe einrichten]]&lt;br /&gt;
* [[qcow2 backup]]&lt;br /&gt;
* [[VM's von VMwares Server2 zu ESXi migrieren]]&lt;br /&gt;
* [[Netzwerkkarten bündeln]]&lt;br /&gt;
* [[ESXI]]&lt;br /&gt;
* [[S.M.A.R.T. - smartmontools]]&lt;br /&gt;
* [[lsb-release IO Error mit Teamviewer8 - FIX]]&lt;br /&gt;
* [[asterisk]]&lt;br /&gt;
* [[rkhunter]]&lt;br /&gt;
* [[uefi und gpt]]&lt;br /&gt;
* [[locale]]&lt;br /&gt;
* [[icinga]]&lt;br /&gt;
* [[dummy, pseudo Interface]]&lt;br /&gt;
* [[xtrend]]&lt;br /&gt;
* [[windows complete backup rebuild]]&lt;br /&gt;
* [[stunnel]]&lt;br /&gt;
* [[ubuntu auflösung ändern]]&lt;br /&gt;
* [[capi]]&lt;br /&gt;
* [[unetbootin bugversion]]&lt;br /&gt;
* [[hacking]]&lt;br /&gt;
* [[Hot add a new disk device to Ubuntu server]]&lt;br /&gt;
* [[Tmux]]&lt;br /&gt;
* [[golang]]&lt;br /&gt;
* [[Plugin Netzwerküberwachung Smartphone]]&lt;br /&gt;
&lt;br /&gt;
=== New ===&lt;br /&gt;
* [[Debian]]&lt;br /&gt;
* [[CentOS]]&lt;br /&gt;
* [[Clouds]]&lt;br /&gt;
* [[LDAP]]&lt;br /&gt;
* [[Datarecovery]]&lt;br /&gt;
* [[Linux Mint]]&lt;br /&gt;
* [[Ubuntu Tips]]&lt;br /&gt;
* [[Raidcontroller Monitortools]]&lt;br /&gt;
* [[Telekom]]&lt;br /&gt;
&lt;br /&gt;
=== Videos===&lt;br /&gt;
* [[http://www.youtube.com/watch?v=FaQm9gtUzSs Astaro HA Cluster]]&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Proxmox&amp;diff=4168</id>
		<title>Proxmox</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Proxmox&amp;diff=4168"/>
		<updated>2014-03-26T10:16:57Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* Snapshot live */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Infos - Hostsystem=&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox.jpg|1050px]]&lt;br /&gt;
&lt;br /&gt;
* über die URL: https://HOST-IP:8006/ kann man auf das Webinterface zugreifen.&lt;br /&gt;
&lt;br /&gt;
* Die klassische Ansicht zeigt links die Server/VM-Liste und in der Mitte die verschiedenen Monitore/Parameter sowie Einstellungsmöglichkeiten.&lt;br /&gt;
&lt;br /&gt;
* unten befindet sich der Serverlog, welcher die aktuellen Prozesse/Aufgaben anzeigt.&lt;br /&gt;
&lt;br /&gt;
==Neue VM anlegen/löschen==&lt;br /&gt;
&lt;br /&gt;
: '''1.''' Man klickt den Knotenpunkt an&lt;br /&gt;
: '''2.''' Auf den &amp;quot;Erstelle VM&amp;quot;-Button oben rechts klicken&lt;br /&gt;
: '''3.''' Die jeweiligen Spezifikationen eintragen&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox2.jpg]]&lt;br /&gt;
&lt;br /&gt;
: '''4.''' VM wird normalerweise automatisch danach gestartet, wenn nicht -&amp;gt; starten!&lt;br /&gt;
: '''5.''' Die VM in der Hostliste links auswählen und danach auf &amp;quot;Konsole&amp;quot; oben rechts klicken. (dafür muss Java installiert sein, siehe Troubleshoot)&lt;br /&gt;
: '''6.''' Nun seht ihr ein neues Browserfenster, mit der grafischen Ausgabe der VM.&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox3.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
: '''7.''' Fertig installieren.&lt;br /&gt;
: '''8.''' VM herunterfahren&lt;br /&gt;
: '''9.''' Vm anklicken, Optionen auswählen, Bootreihenfolge per Doppelklick anpassen!&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox5.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
: '''10.''' anwählen der VM, und einen Klick auf &amp;quot;Entfernen&amp;quot; oben rechts, führt zum löschen der VM&lt;br /&gt;
&lt;br /&gt;
==Storage über webinterface==&lt;br /&gt;
&lt;br /&gt;
: '''1.''' &amp;quot;Rechenzentrum&amp;quot; anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Storage&amp;quot; wechseln&lt;br /&gt;
: '''3.''' &amp;quot;Hinzufügen/entfernen/Bearbeiten&amp;quot; nach belieben drücken&lt;br /&gt;
&lt;br /&gt;
'''Beispiel hier: NFS'''&lt;br /&gt;
[[Datei:proxmox6.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: '''4.''' Wählt euer Storagetyp (NFS/iSCSI/Directory/etc...)&lt;br /&gt;
: '''5.''' Wählt bei Inhalt '''alles''' aus und setzt &amp;quot;Max Backups&amp;quot; nach oben. (Dieser Parameter gibt die maximale Anzahl an mlgichen Backups auf dem Speicher an.)&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox7.jpg]]&lt;br /&gt;
&lt;br /&gt;
: YT-Video: http://www.youtube.com/watch?v=kHyf_l1Q1ow&lt;br /&gt;
&lt;br /&gt;
===Storage über Konsole mounten===&lt;br /&gt;
====template/isos====&lt;br /&gt;
 cd /var/lib/vz&lt;br /&gt;
 rm -r iso/ &amp;amp;&amp;amp; ln -s /mnt/MOUNTPUNKFÜRDEINEISOS/ iso&lt;br /&gt;
====bestehende VMs====&lt;br /&gt;
 cd /var/lib/vz&lt;br /&gt;
 rm -r images/ &amp;amp;&amp;amp; ln -s /mnt/MOUNTPUNKFÜRDEINEVMS/ images&lt;br /&gt;
&lt;br /&gt;
Danach müssen noch die confs kopiert werden.&lt;br /&gt;
&lt;br /&gt;
 /etc/pve/qemu-server/ vom originalsystem kopieren oder auch mounten&lt;br /&gt;
 cd /etc/pve/&lt;br /&gt;
 rm -r qemu-server/ &amp;amp;&amp;amp; ln -s /mnt/MOUNTPUNKFÜRDEINEVMCONFS/ qemu-server&lt;br /&gt;
&lt;br /&gt;
'''ACHTUNG: wenn die confs kopiert werden, müssen die Pfadangaben überarbeitet werden!'''&lt;br /&gt;
&lt;br /&gt;
==Migration==&lt;br /&gt;
&lt;br /&gt;
Rechtsklick auf die VM und &amp;quot;Migration&amp;quot; auswählen, dazu muss ein weiterer Knoten bekannt sein. (Knoten = ProxmoxVE-Host)&lt;br /&gt;
: YT-Video: http://www.youtube.com/watch?v=AkimEEHArqg&lt;br /&gt;
&lt;br /&gt;
===Image einfügen===&lt;br /&gt;
&lt;br /&gt;
1. auf dem Host System das gewünscht Image (raw/.img) hinterlegen&lt;br /&gt;
&lt;br /&gt;
2. eine neue VM anlegen und den gewünschten Typ anlegen! (qcow2/raw/vmdk)&lt;br /&gt;
&lt;br /&gt;
3. Bei Bedarf das Image konvertieren: &lt;br /&gt;
 qemu-img -f raw -O qcow2 input.img output.qcow2&lt;br /&gt;
&lt;br /&gt;
4. Das Image mit dem erstellen Datenspeicher ersetzen:&lt;br /&gt;
 cp input.img ../&amp;quot;VM-ID&amp;quot;/vm-&amp;quot;VM-ID&amp;quot;-disk-1.qcow2&lt;br /&gt;
 Beispiel: cp input.img ../101/vm-101-disk-1.qcow2&lt;br /&gt;
&lt;br /&gt;
5. vm starten&lt;br /&gt;
&lt;br /&gt;
: Link: http://agix.com.au/blog/?p=2696&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Storage einfügen ===&lt;br /&gt;
&lt;br /&gt;
==Backup==&lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gibt es 3 Arten, eine VM zu backupen.&lt;br /&gt;
&lt;br /&gt;
: '''1.''' stop-mode (Da wird die VM komplett heruntergefahren. lange downtime)&lt;br /&gt;
: '''2.''' suspend-mode (VM wird in den Ruhemodus versetzt. kurze Downtime)&lt;br /&gt;
: '''3.''' snapshot-mode (VM bleibt aktiv beim Backup)&lt;br /&gt;
===webinterface===&lt;br /&gt;
====Backup erstellen====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' VM anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Backup&amp;quot; wechseln&lt;br /&gt;
: '''3.''' &amp;quot;Backup starten&amp;quot; auswählen&lt;br /&gt;
: '''4.''' Kompression, Storage und mode angeben&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox8.jpg]]&lt;br /&gt;
&lt;br /&gt;
: '''5.''' Wenn das Backup fertig ist, seht ihr nun einen Eintrag in der &amp;quot;Backup-Liste&amp;quot; '''(Beispiel hier: VM: -101 seven-)'''&lt;br /&gt;
: '''(eventuell noch den Storage oben rechts anpassen...&lt;br /&gt;
'''&lt;br /&gt;
[[Datei:proxmox9.jpg]]&lt;br /&gt;
&lt;br /&gt;
====Backup aufspielen====&lt;br /&gt;
&lt;br /&gt;
: '''oben rechts euer Backup-Storage auswählen!'''&lt;br /&gt;
&lt;br /&gt;
: '''1.''' In der Hostleiste links, muss das Backupverzeichnis geöffnet werden&lt;br /&gt;
: '''2.''' Danach auf den Reiter &amp;quot;Inhalt&amp;quot; wechseln&lt;br /&gt;
: '''3.''' Hier ist eine Liste mit Images/Backups/Snapshots/etc. zu sehen&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox10.jpg]]&lt;br /&gt;
&lt;br /&gt;
: '''4.''' Backup anwählen, und zurückspieln&lt;br /&gt;
&lt;br /&gt;
====Snapshot live====&lt;br /&gt;
&lt;br /&gt;
=====erstellen=====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' VM anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Snapshots&amp;quot; wechseln&lt;br /&gt;
: '''3.''' &amp;quot;Snapshot erstellen&amp;quot; auswählen&lt;br /&gt;
: '''4.''' Beschreibung und Name eingeben.&lt;br /&gt;
&lt;br /&gt;
=====rollback=====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' VM anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Snapshots&amp;quot; wechseln&lt;br /&gt;
: '''3.''' gewünschtes Snapshot auswählen&lt;br /&gt;
: '''4.''' &amp;quot;Rollback&amp;quot; drücken&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===console===&lt;br /&gt;
====Backup erstellen====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' als root einloggen&lt;br /&gt;
: '''2.''' VM-ID der zu backupenden VM auswählen&lt;br /&gt;
: '''3.''' Kompression, Storage und mode angeben&lt;br /&gt;
: '''4.''' Backup erstellen:&lt;br /&gt;
 &lt;br /&gt;
 vzdump $VMID --remove 0 --mode $MODE --compress $COMP --storage $STOR --node $HOSTSYSTEM&lt;br /&gt;
 mode-usage: snapshot | stop | suspend&lt;br /&gt;
 compress-usage: 0 | 1 | gzip | lzo (lzo is default)&lt;br /&gt;
 storage: im webinterface kann man die gemounteten Storages einsehen&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 vzdump 102 --remove 0 --mode stop --compress lzo --storage bucket-one --node moxxie&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Backup aufspielen====&lt;br /&gt;
&lt;br /&gt;
: '''Das Backup auf dem Storage suchen. Bei mir wurde das Verzeichnis &amp;quot;dump&amp;quot; erstellt. (bucket-one ist hier der gemountete Speicher)'''&lt;br /&gt;
&lt;br /&gt;
: '''1.'''  lzop -d -c /mnt/pve/bucket-one/dump/vzdump-qemu-102-2013_11_07-13_40_03.vma.lzo|vma extract -v -r /var/tmp/vzdumptmp161098.fifo - /var/tmp/vzdumptmp161098&lt;br /&gt;
: '''2.''' &amp;quot;zurückspielen&amp;quot;&lt;br /&gt;
: '''3.''' VM-ID und Storage auswählen&lt;br /&gt;
: '''4.''' (Das ist btw auch ein Weg die VM zu kopieren)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!----&lt;br /&gt;
====Snapshot live====&lt;br /&gt;
&lt;br /&gt;
=====erstellen=====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' VM anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Snapshots&amp;quot; wechseln&lt;br /&gt;
: '''3.''' &amp;quot;Snapshot erstellen&amp;quot; auswählen&lt;br /&gt;
: '''4.''' Beschreibung und Name eingeben.&lt;br /&gt;
&lt;br /&gt;
=====rollback=====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' VM anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Snapshots&amp;quot; wechseln&lt;br /&gt;
: '''3.''' gewünschtes Snapshot auswählen&lt;br /&gt;
: '''4.''' &amp;quot;Rollback&amp;quot; drücken&lt;br /&gt;
------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Troubleshoot=&lt;br /&gt;
==bridge==&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
Beispiel.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto vmbr0&lt;br /&gt;
iface vmbr0 inet static&lt;br /&gt;
        address  192.168.240.187&lt;br /&gt;
        netmask  255.255.248.0&lt;br /&gt;
        gateway  192.168.240.100&lt;br /&gt;
        bridge_ports eth0&lt;br /&gt;
        bridge_stp off&lt;br /&gt;
        bridge_fd 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==VNC Ports umlegen==&lt;br /&gt;
===Für Proxmox /3.X2.X===&lt;br /&gt;
 vi /usr/share/perl5/PVE/Tools.pm&lt;br /&gt;
&lt;br /&gt;
Ändern von diesen Zeilen, (ca. Zeile 724)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sub next_vnc_port {&lt;br /&gt;
    return next_unused_port(5900, 6000);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in diese Zeilen: (gewünschte Ports eintragen[Bsp.: 6900-7000])&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sub next_vnc_port {&lt;br /&gt;
    return next_unused_port(6900, 7000);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Proxmox-System muss neugestartet werden!&lt;br /&gt;
&lt;br /&gt;
===Für Proxmox 1.X===&lt;br /&gt;
 vi /usr/share/perl5/PVE/ConfigServer.pm&lt;br /&gt;
&lt;br /&gt;
Ändern von dieser Zeile, &lt;br /&gt;
 for (my $p = 5900; $p &amp;lt; 6000; $p++) {&lt;br /&gt;
&lt;br /&gt;
in diese Zeile: (gewünschte Ports eintragen[Bsp.: 6900-7000])&lt;br /&gt;
 for (my $p = 6900; $p &amp;lt; 7000; $p++) {&lt;br /&gt;
&lt;br /&gt;
Das Proxmox-System muss neugestartet werden!&lt;br /&gt;
&lt;br /&gt;
==USB pass through==&lt;br /&gt;
&lt;br /&gt;
mit das device ermitteln&lt;br /&gt;
 lsusb&lt;br /&gt;
&lt;br /&gt;
Beispiel: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@moxxie:/var/log/vzdump# lsusb   &lt;br /&gt;
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 008 Device 002: ID 046d:c315 Logitech, Inc. Classic New Touch Keyboard&lt;br /&gt;
Bus 008 Device 003: ID 04d8:fa0d Microchip Technology, Inc.&lt;br /&gt;
root@moxxie:/var/log/vzdump# &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wir suchen dieses Gerät und wollen es durchtunneln:&lt;br /&gt;
 Bus 008 Device 003: ID 04d8:fa0d Microchip Technology, Inc.&lt;br /&gt;
&lt;br /&gt;
danach das USBGerät durchtunneln&lt;br /&gt;
 qm set $VMID -usb0 host=$VENDOR:$PRODID&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 qm set 110 -usb0 host=04d8:fa0d&lt;br /&gt;
&lt;br /&gt;
==Port list==&lt;br /&gt;
&lt;br /&gt;
 Web interface: 8006&lt;br /&gt;
 VNC Web console: 5900-5999&lt;br /&gt;
 SPICE console: 3128&lt;br /&gt;
 SSH access (only optional): 22&lt;br /&gt;
 CMAN multicast (if you run a cluster): 5404, 5405 UDP&lt;br /&gt;
&lt;br /&gt;
==VM-Killen==&lt;br /&gt;
&lt;br /&gt;
Mit SSH auf den Knoten/server connecten.&lt;br /&gt;
&lt;br /&gt;
Danach mit '''&amp;quot;ps -elf | grep kvm&amp;quot;''' die VM suchen und mit &amp;quot;kill&amp;quot; töten...&lt;br /&gt;
&lt;br /&gt;
==Validation entfernen==&lt;br /&gt;
backup the file:&lt;br /&gt;
 cp /usr/share/pve-manager/ext4/pvemanagerlib.js /usr/share/pve-manager/ext4/pvemanagerlib.js_BKP&lt;br /&gt;
&lt;br /&gt;
open the file&lt;br /&gt;
 vi /usr/share/pve-manager/ext4/pvemanagerlib.js +454&lt;br /&gt;
&lt;br /&gt;
change the line &lt;br /&gt;
 if (data.status !== 'Active') {&lt;br /&gt;
&lt;br /&gt;
to below:&lt;br /&gt;
 if (false) {&lt;br /&gt;
&lt;br /&gt;
==Manual: qm==&lt;br /&gt;
*http://pve.proxmox.com/wiki/Manual:_qm&lt;br /&gt;
&lt;br /&gt;
==Java Konsole==&lt;br /&gt;
&lt;br /&gt;
Laut Proxmox einfach updaten!&lt;br /&gt;
Stable version: '''7 Patch45 32bit @Windows7'''&lt;br /&gt;
&lt;br /&gt;
*http://pve.proxmox.com/wiki/Java_Console_%28Ubuntu%29&lt;br /&gt;
&lt;br /&gt;
==Install Proxmox VE on Debian Squeeze==&lt;br /&gt;
: http://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Squeeze&lt;br /&gt;
==Install Proxmox VE on Debian Wheezy==&lt;br /&gt;
: http://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Wheezy&lt;br /&gt;
&lt;br /&gt;
==Hetzner Proxmox installieren==&lt;br /&gt;
: http://wiki.hetzner.de/index.php/Proxmox_VE#Netzwerkkonfiguration_KVM.2FBridged&lt;br /&gt;
&lt;br /&gt;
==Konfigfiles==&lt;br /&gt;
 /etc/pve/qemu-server/&lt;br /&gt;
==Isos==&lt;br /&gt;
 /var/lib/vz/template/iso&lt;br /&gt;
&lt;br /&gt;
=QM=&lt;br /&gt;
== listen der virtuellen maschinen ==&lt;br /&gt;
 root@betor:~# qm list &lt;br /&gt;
      VMID NAME                 STATUS     MEM(MB)    BOOTDISK(GB) PID       &lt;br /&gt;
       100 jello                running    4096              32.00 6942      &lt;br /&gt;
       101 seven                stopped    4096              32.00 0         &lt;br /&gt;
       102 icinga               stopped    1024              10.00 0         &lt;br /&gt;
       103 VM 103               stopped    0                  0.00 0         &lt;br /&gt;
       104 symantec             stopped    2048             250.00 0         &lt;br /&gt;
       108 icinga               stopped    1024              10.00 0&lt;br /&gt;
== starten der virtuellen maschinen ==&lt;br /&gt;
 root@betor:~# qm start 101&lt;br /&gt;
== stoppen der virtuellen maschinen ==&lt;br /&gt;
 root@betor:~# qm stop 101&lt;br /&gt;
== config der virtuellen maschinen auslesen ==&lt;br /&gt;
 root@betor:~# qm config 101&lt;br /&gt;
 boot: dcn&lt;br /&gt;
 bootdisk: ide0&lt;br /&gt;
 cores: 2&lt;br /&gt;
 ide0: local:101/vm-101-disk-1.qcow2,format=qcow2,size=32G&lt;br /&gt;
 ide2: none,media=cdrom&lt;br /&gt;
 memory: 4096&lt;br /&gt;
 name: seven&lt;br /&gt;
 net0: e1000=2A:06:D1:86:82:37,bridge=vmbr0&lt;br /&gt;
 ostype: win7&lt;br /&gt;
 sockets: 2&lt;br /&gt;
== shutdown einer virtuellen maschine ==&lt;br /&gt;
 root@betor:~# qm shutdown 101&lt;br /&gt;
== status einer virtuellen maschine anzeigen ==&lt;br /&gt;
 root@betor:~# qm status 101&lt;br /&gt;
 status: running&lt;br /&gt;
== virtuelle maschine erstellen ==&lt;br /&gt;
  qm create 115 --cdrom local:iso/ubuntu-6.06.1-desktop-i386.iso  --name ubuntu6 --net0 virtio=62:57:BC:A2:0E:18 \ &lt;br /&gt;
     --ide0  local:115/vm-115-disk-1.qcow2,format=qcow2,size=20G     --ostype l26 --memory 512 --onboot no --sockets 2&lt;br /&gt;
&lt;br /&gt;
== virtuelle maschine inklusive Volumes löschen==&lt;br /&gt;
 qm destroy 115&lt;br /&gt;
&lt;br /&gt;
==VM lock==&lt;br /&gt;
&lt;br /&gt;
 qm lock $VMID&lt;br /&gt;
 qm unlock $VMID&lt;br /&gt;
&lt;br /&gt;
==festplatte durchreichen==&lt;br /&gt;
*http://www.andysblog.de/proxmox-ve-festplatte-an-vm-durchreichen&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
: Link für die cmd-Liste: http://pve.proxmox.com/wiki/Command_line_tools&lt;br /&gt;
: Link für QM-manual: http://pve.proxmox.com/wiki/Qm_manual&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Proxmox&amp;diff=4139</id>
		<title>Proxmox</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Proxmox&amp;diff=4139"/>
		<updated>2014-03-13T11:30:23Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* festplatte durchreichen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Infos - Hostsystem=&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox.jpg|1050px]]&lt;br /&gt;
&lt;br /&gt;
* über die URL: https://HOST-IP:8006/ kann man auf das Webinterface zugreifen.&lt;br /&gt;
&lt;br /&gt;
* Die klassische Ansicht zeigt links die Server/VM-Liste und in der Mitte die verschiedenen Monitore/Parameter sowie Einstellungsmöglichkeiten.&lt;br /&gt;
&lt;br /&gt;
* unten befindet sich der Serverlog, welcher die aktuellen Prozesse/Aufgaben anzeigt.&lt;br /&gt;
&lt;br /&gt;
==Neue VM anlegen/löschen==&lt;br /&gt;
&lt;br /&gt;
: '''1.''' Man klickt den Knotenpunkt an&lt;br /&gt;
: '''2.''' Auf den &amp;quot;Erstelle VM&amp;quot;-Button oben rechts klicken&lt;br /&gt;
: '''3.''' Die jeweiligen Spezifikationen eintragen&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox2.jpg]]&lt;br /&gt;
&lt;br /&gt;
: '''4.''' VM wird normalerweise automatisch danach gestartet, wenn nicht -&amp;gt; starten!&lt;br /&gt;
: '''5.''' Die VM in der Hostliste links auswählen und danach auf &amp;quot;Konsole&amp;quot; oben rechts klicken. (dafür muss Java installiert sein, siehe Troubleshoot)&lt;br /&gt;
: '''6.''' Nun seht ihr ein neues Browserfenster, mit der grafischen Ausgabe der VM.&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox3.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
: '''7.''' Fertig installieren.&lt;br /&gt;
: '''8.''' VM herunterfahren&lt;br /&gt;
: '''9.''' Vm anklicken, Optionen auswählen, Bootreihenfolge per Doppelklick anpassen!&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox5.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
: '''10.''' anwählen der VM, und einen Klick auf &amp;quot;Entfernen&amp;quot; oben rechts, führt zum löschen der VM&lt;br /&gt;
&lt;br /&gt;
==Storage über webinterface==&lt;br /&gt;
&lt;br /&gt;
: '''1.''' &amp;quot;Rechenzentrum&amp;quot; anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Storage&amp;quot; wechseln&lt;br /&gt;
: '''3.''' &amp;quot;Hinzufügen/entfernen/Bearbeiten&amp;quot; nach belieben drücken&lt;br /&gt;
&lt;br /&gt;
'''Beispiel hier: NFS'''&lt;br /&gt;
[[Datei:proxmox6.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: '''4.''' Wählt euer Storagetyp (NFS/iSCSI/Directory/etc...)&lt;br /&gt;
: '''5.''' Wählt bei Inhalt '''alles''' aus und setzt &amp;quot;Max Backups&amp;quot; nach oben. (Dieser Parameter gibt die maximale Anzahl an mlgichen Backups auf dem Speicher an.)&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox7.jpg]]&lt;br /&gt;
&lt;br /&gt;
: YT-Video: http://www.youtube.com/watch?v=kHyf_l1Q1ow&lt;br /&gt;
&lt;br /&gt;
===Storage über Konsole mounten===&lt;br /&gt;
====template/isos====&lt;br /&gt;
 cd /var/lib/vz&lt;br /&gt;
 rm -r iso/ &amp;amp;&amp;amp; ln -s /mnt/MOUNTPUNKFÜRDEINEISOS/ iso&lt;br /&gt;
====bestehende VMs====&lt;br /&gt;
 cd /var/lib/vz&lt;br /&gt;
 rm -r images/ &amp;amp;&amp;amp; ln -s /mnt/MOUNTPUNKFÜRDEINEVMS/ images&lt;br /&gt;
&lt;br /&gt;
Danach müssen noch die confs kopiert werden.&lt;br /&gt;
&lt;br /&gt;
 /etc/pve/qemu-server/ vom originalsystem kopieren oder auch mounten&lt;br /&gt;
 cd /etc/pve/&lt;br /&gt;
 rm -r qemu-server/ &amp;amp;&amp;amp; ln -s /mnt/MOUNTPUNKFÜRDEINEVMCONFS/ qemu-server&lt;br /&gt;
&lt;br /&gt;
'''ACHTUNG: wenn die confs kopiert werden, müssen die Pfadangaben überarbeitet werden!'''&lt;br /&gt;
&lt;br /&gt;
==Migration==&lt;br /&gt;
&lt;br /&gt;
Rechtsklick auf die VM und &amp;quot;Migration&amp;quot; auswählen, dazu muss ein weiterer Knoten bekannt sein. (Knoten = ProxmoxVE-Host)&lt;br /&gt;
: YT-Video: http://www.youtube.com/watch?v=AkimEEHArqg&lt;br /&gt;
&lt;br /&gt;
===Image einfügen===&lt;br /&gt;
&lt;br /&gt;
1. auf dem Host System das gewünscht Image (raw/.img) hinterlegen&lt;br /&gt;
&lt;br /&gt;
2. eine neue VM anlegen und den gewünschten Typ anlegen! (qcow2/raw/vmdk)&lt;br /&gt;
&lt;br /&gt;
3. Bei Bedarf das Image konvertieren: &lt;br /&gt;
 qemu-img -f raw -O qcow2 input.img output.qcow2&lt;br /&gt;
&lt;br /&gt;
4. Das Image mit dem erstellen Datenspeicher ersetzen:&lt;br /&gt;
 cp input.img ../&amp;quot;VM-ID&amp;quot;/vm-&amp;quot;VM-ID&amp;quot;-disk-1.qcow2&lt;br /&gt;
 Beispiel: cp input.img ../101/vm-101-disk-1.qcow2&lt;br /&gt;
&lt;br /&gt;
5. vm starten&lt;br /&gt;
&lt;br /&gt;
: Link: http://agix.com.au/blog/?p=2696&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Storage einfügen ===&lt;br /&gt;
&lt;br /&gt;
==Backup==&lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gibt es 3 Arten, eine VM zu backupen.&lt;br /&gt;
&lt;br /&gt;
: '''1.''' stop-mode (Da wird die VM komplett heruntergefahren. lange downtime)&lt;br /&gt;
: '''2.''' suspend-mode (VM wird in den Ruhemodus versetzt. kurze Downtime)&lt;br /&gt;
: '''3.''' snapshot-mode (VM bleibt aktiv beim Backup)&lt;br /&gt;
===webinterface===&lt;br /&gt;
====Backup erstellen====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' VM anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Backup&amp;quot; wechseln&lt;br /&gt;
: '''3.''' &amp;quot;Backup starten&amp;quot; auswählen&lt;br /&gt;
: '''4.''' Kompression, Storage und mode angeben&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox8.jpg]]&lt;br /&gt;
&lt;br /&gt;
: '''5.''' Wenn das Backup fertig ist, seht ihr nun einen Eintrag in der &amp;quot;Backup-Liste&amp;quot; '''(Beispiel hier: VM: -101 seven-)'''&lt;br /&gt;
: '''(eventuell noch den Storage oben rechts anpassen...&lt;br /&gt;
'''&lt;br /&gt;
[[Datei:proxmox9.jpg]]&lt;br /&gt;
&lt;br /&gt;
====Backup aufspielen====&lt;br /&gt;
&lt;br /&gt;
: '''oben rechts euer Backup-Storage auswählen!'''&lt;br /&gt;
&lt;br /&gt;
: '''1.''' In der Hostleiste links, muss das Backupverzeichnis geöffnet werden&lt;br /&gt;
: '''2.''' Danach auf den Reiter &amp;quot;Inhalt&amp;quot; wechseln&lt;br /&gt;
: '''3.''' Hier ist eine Liste mit Images/Backups/Snapshots/etc. zu sehen&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox10.jpg]]&lt;br /&gt;
&lt;br /&gt;
: '''4.''' Backup anwählen, und zurückspieln&lt;br /&gt;
&lt;br /&gt;
====Snapshot live====&lt;br /&gt;
&lt;br /&gt;
=====erstellen=====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' VM anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Snapshots&amp;quot; wechseln&lt;br /&gt;
: '''3.''' &amp;quot;Snapshot erstellen&amp;quot; auswählen&lt;br /&gt;
: '''4.''' Beschreibung und Name eingeben.&lt;br /&gt;
&lt;br /&gt;
=====rollback=====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' VM anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Snapshots&amp;quot; wechseln&lt;br /&gt;
: '''3.''' gewünschtes Snapshot auswählen&lt;br /&gt;
: '''4.''' &amp;quot;Rollback&amp;quot; drücken&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===console===&lt;br /&gt;
====Backup erstellen====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' als root einloggen&lt;br /&gt;
: '''2.''' VM-ID der zu backupenden VM auswählen&lt;br /&gt;
: '''3.''' Kompression, Storage und mode angeben&lt;br /&gt;
: '''4.''' Backup erstellen:&lt;br /&gt;
 &lt;br /&gt;
 vzdump $VMID --remove 0 --mode $MODE --compress $COMP --storage $STOR --node $HOSTSYSTEM&lt;br /&gt;
 mode-usage: snapshot | stop | suspend&lt;br /&gt;
 compress-usage: 0 | 1 | gzip | lzo (lzo is default)&lt;br /&gt;
 storage: im webinterface kann man die gemounteten Storages einsehen&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 vzdump 102 --remove 0 --mode stop --compress lzo --storage bucket-one --node moxxie&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Backup aufspielen====&lt;br /&gt;
&lt;br /&gt;
: '''Das Backup auf dem Storage suchen. Bei mir wurde das Verzeichnis &amp;quot;dump&amp;quot; erstellt. (bucket-one ist hier der gemountete Speicher)'''&lt;br /&gt;
&lt;br /&gt;
: '''1.'''  lzop -d -c /mnt/pve/bucket-one/dump/vzdump-qemu-102-2013_11_07-13_40_03.vma.lzo|vma extract -v -r /var/tmp/vzdumptmp161098.fifo - /var/tmp/vzdumptmp161098&lt;br /&gt;
: '''2.''' &amp;quot;zurückspielen&amp;quot;&lt;br /&gt;
: '''3.''' VM-ID und Storage auswählen&lt;br /&gt;
: '''4.''' (Das ist btw auch ein Weg die VM zu kopieren)&lt;br /&gt;
&lt;br /&gt;
====Snapshot live====&lt;br /&gt;
&lt;br /&gt;
=====erstellen=====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' VM anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Snapshots&amp;quot; wechseln&lt;br /&gt;
: '''3.''' &amp;quot;Snapshot erstellen&amp;quot; auswählen&lt;br /&gt;
: '''4.''' Beschreibung und Name eingeben.&lt;br /&gt;
&lt;br /&gt;
=====rollback=====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' VM anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Snapshots&amp;quot; wechseln&lt;br /&gt;
: '''3.''' gewünschtes Snapshot auswählen&lt;br /&gt;
: '''4.''' &amp;quot;Rollback&amp;quot; drücken&lt;br /&gt;
&lt;br /&gt;
=Troubleshoot=&lt;br /&gt;
==bridge==&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
Beispiel.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto vmbr0&lt;br /&gt;
iface vmbr0 inet static&lt;br /&gt;
        address  192.168.240.187&lt;br /&gt;
        netmask  255.255.248.0&lt;br /&gt;
        gateway  192.168.240.100&lt;br /&gt;
        bridge_ports eth0&lt;br /&gt;
        bridge_stp off&lt;br /&gt;
        bridge_fd 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==VNC Ports umlegen==&lt;br /&gt;
===Für Proxmox /3.X2.X===&lt;br /&gt;
 vi /usr/share/perl5/PVE/Tools.pm&lt;br /&gt;
&lt;br /&gt;
Ändern von diesen Zeilen, (ca. Zeile 724)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sub next_vnc_port {&lt;br /&gt;
    return next_unused_port(5900, 6000);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in diese Zeilen: (gewünschte Ports eintragen[Bsp.: 6900-7000])&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sub next_vnc_port {&lt;br /&gt;
    return next_unused_port(6900, 7000);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Proxmox-System muss neugestartet werden!&lt;br /&gt;
&lt;br /&gt;
===Für Proxmox 1.X===&lt;br /&gt;
 vi /usr/share/perl5/PVE/ConfigServer.pm&lt;br /&gt;
&lt;br /&gt;
Ändern von dieser Zeile, &lt;br /&gt;
 for (my $p = 5900; $p &amp;lt; 6000; $p++) {&lt;br /&gt;
&lt;br /&gt;
in diese Zeile: (gewünschte Ports eintragen[Bsp.: 6900-7000])&lt;br /&gt;
 for (my $p = 6900; $p &amp;lt; 7000; $p++) {&lt;br /&gt;
&lt;br /&gt;
Das Proxmox-System muss neugestartet werden!&lt;br /&gt;
&lt;br /&gt;
==USB pass through==&lt;br /&gt;
&lt;br /&gt;
mit das device ermitteln&lt;br /&gt;
 lsusb&lt;br /&gt;
&lt;br /&gt;
Beispiel: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@moxxie:/var/log/vzdump# lsusb   &lt;br /&gt;
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 008 Device 002: ID 046d:c315 Logitech, Inc. Classic New Touch Keyboard&lt;br /&gt;
Bus 008 Device 003: ID 04d8:fa0d Microchip Technology, Inc.&lt;br /&gt;
root@moxxie:/var/log/vzdump# &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wir suchen dieses Gerät und wollen es durchtunneln:&lt;br /&gt;
 Bus 008 Device 003: ID 04d8:fa0d Microchip Technology, Inc.&lt;br /&gt;
&lt;br /&gt;
danach das USBGerät durchtunneln&lt;br /&gt;
 qm set $VMID -usb0 host=$VENDOR:$PRODID&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 qm set 110 -usb0 host=04d8:fa0d&lt;br /&gt;
&lt;br /&gt;
==Port list==&lt;br /&gt;
&lt;br /&gt;
 Web interface: 8006&lt;br /&gt;
 VNC Web console: 5900-5999&lt;br /&gt;
 SPICE console: 3128&lt;br /&gt;
 SSH access (only optional): 22&lt;br /&gt;
 CMAN multicast (if you run a cluster): 5404, 5405 UDP&lt;br /&gt;
&lt;br /&gt;
==VM-Killen==&lt;br /&gt;
&lt;br /&gt;
Mit SSH auf den Knoten/server connecten.&lt;br /&gt;
&lt;br /&gt;
Danach mit '''&amp;quot;ps -elf | grep kvm&amp;quot;''' die VM suchen und mit &amp;quot;kill&amp;quot; töten...&lt;br /&gt;
&lt;br /&gt;
==Validation entfernen==&lt;br /&gt;
backup the file:&lt;br /&gt;
 cp /usr/share/pve-manager/ext4/pvemanagerlib.js /usr/share/pve-manager/ext4/pvemanagerlib.js_BKP&lt;br /&gt;
&lt;br /&gt;
open the file&lt;br /&gt;
 vi /usr/share/pve-manager/ext4/pvemanagerlib.js +454&lt;br /&gt;
&lt;br /&gt;
change the line &lt;br /&gt;
 if (data.status !== 'Active') {&lt;br /&gt;
&lt;br /&gt;
to below:&lt;br /&gt;
 if (false) {&lt;br /&gt;
&lt;br /&gt;
==Manual: qm==&lt;br /&gt;
*http://pve.proxmox.com/wiki/Manual:_qm&lt;br /&gt;
&lt;br /&gt;
==Java Konsole==&lt;br /&gt;
&lt;br /&gt;
Laut Proxmox einfach updaten!&lt;br /&gt;
Stable version: '''7 Patch45 32bit @Windows7'''&lt;br /&gt;
&lt;br /&gt;
*http://pve.proxmox.com/wiki/Java_Console_%28Ubuntu%29&lt;br /&gt;
&lt;br /&gt;
==Install Proxmox VE on Debian Squeeze==&lt;br /&gt;
: http://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Squeeze&lt;br /&gt;
==Install Proxmox VE on Debian Wheezy==&lt;br /&gt;
: http://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Wheezy&lt;br /&gt;
&lt;br /&gt;
==Hetzner Proxmox installieren==&lt;br /&gt;
: http://wiki.hetzner.de/index.php/Proxmox_VE#Netzwerkkonfiguration_KVM.2FBridged&lt;br /&gt;
&lt;br /&gt;
==Konfigfiles==&lt;br /&gt;
 /etc/pve/qemu-server/&lt;br /&gt;
==Isos==&lt;br /&gt;
 /var/lib/vz/template/iso&lt;br /&gt;
&lt;br /&gt;
=QM=&lt;br /&gt;
== listen der virtuellen maschinen ==&lt;br /&gt;
 root@betor:~# qm list &lt;br /&gt;
      VMID NAME                 STATUS     MEM(MB)    BOOTDISK(GB) PID       &lt;br /&gt;
       100 jello                running    4096              32.00 6942      &lt;br /&gt;
       101 seven                stopped    4096              32.00 0         &lt;br /&gt;
       102 icinga               stopped    1024              10.00 0         &lt;br /&gt;
       103 VM 103               stopped    0                  0.00 0         &lt;br /&gt;
       104 symantec             stopped    2048             250.00 0         &lt;br /&gt;
       108 icinga               stopped    1024              10.00 0&lt;br /&gt;
== starten der virtuellen maschinen ==&lt;br /&gt;
 root@betor:~# qm start 101&lt;br /&gt;
== stoppen der virtuellen maschinen ==&lt;br /&gt;
 root@betor:~# qm stop 101&lt;br /&gt;
== config der virtuellen maschinen auslesen ==&lt;br /&gt;
 root@betor:~# qm config 101&lt;br /&gt;
 boot: dcn&lt;br /&gt;
 bootdisk: ide0&lt;br /&gt;
 cores: 2&lt;br /&gt;
 ide0: local:101/vm-101-disk-1.qcow2,format=qcow2,size=32G&lt;br /&gt;
 ide2: none,media=cdrom&lt;br /&gt;
 memory: 4096&lt;br /&gt;
 name: seven&lt;br /&gt;
 net0: e1000=2A:06:D1:86:82:37,bridge=vmbr0&lt;br /&gt;
 ostype: win7&lt;br /&gt;
 sockets: 2&lt;br /&gt;
== shutdown einer virtuellen maschine ==&lt;br /&gt;
 root@betor:~# qm shutdown 101&lt;br /&gt;
== status einer virtuellen maschine anzeigen ==&lt;br /&gt;
 root@betor:~# qm status 101&lt;br /&gt;
 status: running&lt;br /&gt;
== virtuelle maschine erstellen ==&lt;br /&gt;
  qm create 115 --cdrom local:iso/ubuntu-6.06.1-desktop-i386.iso  --name ubuntu6 --net0 virtio=62:57:BC:A2:0E:18 \ &lt;br /&gt;
     --ide0  local:115/vm-115-disk-1.qcow2,format=qcow2,size=20G     --ostype l26 --memory 512 --onboot no --sockets 2&lt;br /&gt;
&lt;br /&gt;
== virtuelle maschine inklusive Volumes löschen==&lt;br /&gt;
 qm destroy 115&lt;br /&gt;
&lt;br /&gt;
==VM lock==&lt;br /&gt;
&lt;br /&gt;
 qm lock $VMID&lt;br /&gt;
 qm unlock $VMID&lt;br /&gt;
&lt;br /&gt;
==festplatte durchreichen==&lt;br /&gt;
*http://www.andysblog.de/proxmox-ve-festplatte-an-vm-durchreichen&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
: Link für die cmd-Liste: http://pve.proxmox.com/wiki/Command_line_tools&lt;br /&gt;
: Link für QM-manual: http://pve.proxmox.com/wiki/Qm_manual&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Samba4&amp;diff=4090</id>
		<title>Samba4</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Samba4&amp;diff=4090"/>
		<updated>2014-02-26T14:36:20Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* samba upstart script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Installation=&lt;br /&gt;
==Interface anpassen==&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
address 192.168.0.100&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
network 192.168.0.0&lt;br /&gt;
broadcast 192.168.0.255&lt;br /&gt;
gateway 192.168.0.1 &lt;br /&gt;
dns-nameservers 192.168.0.100 8.8.8.8 (we use our server as DNS + google DNS as secondary DNS)&lt;br /&gt;
dns-search mydomain.lan&lt;br /&gt;
### IPs NOCH ANPASSEN! ###&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==hosts anpassen==&lt;br /&gt;
 vi /etc/hosts&lt;br /&gt;
 &lt;br /&gt;
 127.0.0.1       localhost.localdomain   localhost &lt;br /&gt;
 192.168.0.100   DC01.mydomain.lan       DC01&lt;br /&gt;
&lt;br /&gt;
 sudo echo DC01.mydomain.lan &amp;gt; /etc/hostname&lt;br /&gt;
 /etc/init.d/networking restart&lt;br /&gt;
&lt;br /&gt;
==Pakete und libs installieren==&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get update &amp;amp;&amp;amp; apt-get upgrade -y&lt;br /&gt;
 sudo apt-get install git build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev libpam0g-dev ntp -y&lt;br /&gt;
&lt;br /&gt;
You'll be asked for kerberos informations.&lt;br /&gt;
When asked for the default realm etc, enter mydomain.lan and DC01 as the host. &lt;br /&gt;
&lt;br /&gt;
==samba4 downloaden und installieren==&lt;br /&gt;
&lt;br /&gt;
 git clone -b v4-0-stable git://git.samba.org/samba.git samba4&lt;br /&gt;
&lt;br /&gt;
 cd samba4&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-debug --enable-selftest &lt;br /&gt;
&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Links setzen==&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/local/samba/sbin/* /usr/local/sbin&lt;br /&gt;
 ln -s /usr/local/samba/bin/* /usr/local/bin&lt;br /&gt;
&lt;br /&gt;
==Domain anlegen==&lt;br /&gt;
vorher das löschen:&lt;br /&gt;
 rm /usr/local/samba/etc/smb.conf&lt;br /&gt;
&lt;br /&gt;
''' realm, domain und adminpass''' sollten/können angepasst werden!&lt;br /&gt;
 /usr/local/samba/bin/samba-tool domain provision --realm=mydomain.lan --domain=mydomain --adminpass=&amp;quot;your_password&amp;quot; --server-role=dc --dns-backend=SAMBA_INTERNAL&lt;br /&gt;
&lt;br /&gt;
==Start von samba==&lt;br /&gt;
 /usr/local/samba/sbin/samba&lt;br /&gt;
&lt;br /&gt;
==smbversion, share und auth check==&lt;br /&gt;
&lt;br /&gt;
===smbversion===&lt;br /&gt;
Diese sollten übereinstimmen:&lt;br /&gt;
 /usr/local/samba/sbin/samba -V&lt;br /&gt;
 /usr/local/samba/bin/smbclient -V&lt;br /&gt;
&lt;br /&gt;
===shares anzeigen:===&lt;br /&gt;
 /usr/local/samba/bin/smbclient -L localhost -U%&lt;br /&gt;
&lt;br /&gt;
Sollte so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Sharename      Type      Comment      &lt;br /&gt;
---------        ----       -------        &lt;br /&gt;
netlogon         Disk &lt;br /&gt;
sysvol            Disk &lt;br /&gt;
IPC$              IPC         IPC Service (Samba 4.0.5)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Authentication check:===&lt;br /&gt;
Passwort in dem Command ändern!&lt;br /&gt;
 /usr/local/samba/bin/smbclient //localhost/netlogon -UAdministrator%&amp;quot;your_password&amp;quot; -c 'ls'&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Domain=[MYDOMAIN] OS=[Unix] Server=[Samba 4.0.5]  &lt;br /&gt;
.                                   D        0  Fri May 17 21:40:08 2013   &lt;br /&gt;
..                                  D        0  Fri May 17 21:42:36 2013&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DNS setzen==&lt;br /&gt;
===Forwarder eintragen===&lt;br /&gt;
 echo  domain MYDOMAIN.LAN &amp;gt;&amp;gt; /etc/resolv.conf&lt;br /&gt;
 sudo vi  /usr/local/samba/etc/smb.conf&lt;br /&gt;
&lt;br /&gt;
füge hinzu: (Man kann natürlich auch seinen eigenen DNS angeben)&lt;br /&gt;
 dns forwarder = 8.8.8.8 (I use google DNS here again)&lt;br /&gt;
&lt;br /&gt;
===Check===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
host -t SRV _ldap._tcp.mydomain.lan&lt;br /&gt;
_ldap._tcp.mydomain.lan has SRV record 0 100 389 DC01.mydomain.lan.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
host -t SRV _kerberos._udp.mydomain.lan&lt;br /&gt;
_kerberos._udp.mydomain.lan has SRV record 0 100 88 DC01.mydomain.lan&lt;br /&gt;
&lt;br /&gt;
host -t A DC01.mydomain.lan&lt;br /&gt;
DC01.mydomain.lan has address 192.168.0.100.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn '''&amp;quot;host mydomain.lan not found 3(NXDOMAIN)&amp;quot;''' ausgegeben wird, ist Samba nicht richtig gestartet!&lt;br /&gt;
&lt;br /&gt;
==Kerberos==&lt;br /&gt;
ändere '''$(REALM)''' zu '''MYDOMAIN.LAN'''&lt;br /&gt;
 vi /usr/local/samba/share/setup/krb5.conf&lt;br /&gt;
&lt;br /&gt;
==Share hinzufügen==&lt;br /&gt;
&lt;br /&gt;
 mkdir -m 770 /share&lt;br /&gt;
 chmod g+s /share&lt;br /&gt;
 chown root:users /share&lt;br /&gt;
&lt;br /&gt;
 vi /usr/local/samba/etc/smb.conf&lt;br /&gt;
füg das ein:&lt;br /&gt;
&lt;br /&gt;
 [share]&lt;br /&gt;
 directory_mode: parameter = 0700&lt;br /&gt;
 read only = no&lt;br /&gt;
 path = /share&lt;br /&gt;
 csc policy = documents&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
===ntp===&lt;br /&gt;
 vi /etc/ntp.conf &lt;br /&gt;
&lt;br /&gt;
füge einen von hier hinzu:&lt;br /&gt;
 http://www.pool.ntp.org/zone/de&lt;br /&gt;
&lt;br /&gt;
 service ntp restart&lt;br /&gt;
 ntpdate 0.de.pool.ntp.org&lt;br /&gt;
 ntpq -p&lt;br /&gt;
&lt;br /&gt;
===Adminpasswort läuft nicht ab===&lt;br /&gt;
 /usr/local/samba/bin/samba-tool user setexpiry administrator --noexpiry&lt;br /&gt;
&lt;br /&gt;
===samba upstart script===&lt;br /&gt;
&lt;br /&gt;
 vi /etc/init.d/samba&lt;br /&gt;
&lt;br /&gt;
 description &amp;quot;SMB/CIFS File and Active Directory Server&amp;quot;&lt;br /&gt;
 author      &amp;quot;Jelmer Vernooij &amp;lt;jelmer@ubuntu.com&amp;gt;&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
 start on (local-filesystems and net-device-up)&lt;br /&gt;
 stop on runlevel [!2345]&lt;br /&gt;
 &lt;br /&gt;
 expect fork&lt;br /&gt;
 normal exit 0 &lt;br /&gt;
 &lt;br /&gt;
 pre-start script&lt;br /&gt;
 	[ -r /etc/default/samba4 ] &amp;amp;&amp;amp; . /etc/default/samba4&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/run/samba&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/log/samba&lt;br /&gt;
 end script &lt;br /&gt;
  &lt;br /&gt;
 exec samba -D&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
=howto=&lt;br /&gt;
https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO&lt;br /&gt;
&lt;br /&gt;
=installation=&lt;br /&gt;
*http://ubuntuforums.org/showthread.php?t=2146198&lt;br /&gt;
&lt;br /&gt;
=dns=&lt;br /&gt;
*zone anlegen&lt;br /&gt;
 samba-tool dns add localhost  simplex.local  otto A 192.168.246.23&lt;br /&gt;
=pam ldap=&lt;br /&gt;
*http://zachbethel.com/2013/04/10/linux-ldap-authentication-with-samba4/&lt;br /&gt;
=ldapbackend=&lt;br /&gt;
*http://www.foteviken.de/?p=1925&lt;br /&gt;
=samba-and-active-directory=&lt;br /&gt;
*http://www.held-im-ruhestand.de/software/samba-and-active-directory&lt;br /&gt;
=domain member=&lt;br /&gt;
*https://wiki.samba.org/index.php/Samba4/Domain_Member&lt;br /&gt;
=group policiy=&lt;br /&gt;
*http://www.alexwyn.com/computer-tips/folder-redirection-samba4-active-directory-domain-controller&lt;br /&gt;
=movies=&lt;br /&gt;
*http://www.samba.org/tridge/Samba4Demo/&lt;br /&gt;
&lt;br /&gt;
=Kennwortrichtlinie deaktivieren=&lt;br /&gt;
 Du gehst in die Gruppenrichtlinienverwaltung.&lt;br /&gt;
 Dann gehst du in das Verzecihnis deiner gewünschten Domäne.&lt;br /&gt;
 Jetzt solltest du einen eintrag sehen, der sich &amp;quot;Default Domain Controllers Policy&amp;quot; nennt.&lt;br /&gt;
 Mit rechter Maustaste draufklicken und bearbeiten. Dann öffnet sich der Gruppenrichtlinienverwaltungs-Editor&lt;br /&gt;
 (Achtung! Auf den ersten Blick sehr leicht mit der Gruppenrichtlinienverwaltung zu verwechseln).&lt;br /&gt;
 Jetzt schaust du unter &amp;quot;Computerconfiguration&amp;gt; Richtlinien&amp;gt; Windows-Einstellungen&amp;gt; Sicherheitseinstellungen&amp;gt; Kontorichtlinien&amp;gt; Kennwortrichtlinien.&lt;br /&gt;
 &lt;br /&gt;
 Dort darf man dann endlich die Kennwortrichtlinie deaktivieren.&lt;br /&gt;
&lt;br /&gt;
=debian=&lt;br /&gt;
*http://chris-blog.net/2014/01/freigaben-auf-einem-samba-4-server-einrichten/&lt;br /&gt;
=ubuntu=&lt;br /&gt;
http://xiep.de/allgemein/ubuntu-server-12-04-mit-samba-4-und-active-directory-pdc/&lt;br /&gt;
=dns=&lt;br /&gt;
https://wiki.archlinux.org/index.php/Samba_4_Active_Directory_Domain_Controller&lt;br /&gt;
=kennwortrichtlinien=&lt;br /&gt;
http://chris-blog.net/2014/01/kennwortrichtlinie-in-samba-4-domain-deaktivieren/&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Samba4&amp;diff=4089</id>
		<title>Samba4</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Samba4&amp;diff=4089"/>
		<updated>2014-02-26T14:32:38Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* howto */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Installation=&lt;br /&gt;
==Interface anpassen==&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
address 192.168.0.100&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
network 192.168.0.0&lt;br /&gt;
broadcast 192.168.0.255&lt;br /&gt;
gateway 192.168.0.1 &lt;br /&gt;
dns-nameservers 192.168.0.100 8.8.8.8 (we use our server as DNS + google DNS as secondary DNS)&lt;br /&gt;
dns-search mydomain.lan&lt;br /&gt;
### IPs NOCH ANPASSEN! ###&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==hosts anpassen==&lt;br /&gt;
 vi /etc/hosts&lt;br /&gt;
 &lt;br /&gt;
 127.0.0.1       localhost.localdomain   localhost &lt;br /&gt;
 192.168.0.100   DC01.mydomain.lan       DC01&lt;br /&gt;
&lt;br /&gt;
 sudo echo DC01.mydomain.lan &amp;gt; /etc/hostname&lt;br /&gt;
 /etc/init.d/networking restart&lt;br /&gt;
&lt;br /&gt;
==Pakete und libs installieren==&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get update &amp;amp;&amp;amp; apt-get upgrade -y&lt;br /&gt;
 sudo apt-get install git build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev libpam0g-dev ntp -y&lt;br /&gt;
&lt;br /&gt;
You'll be asked for kerberos informations.&lt;br /&gt;
When asked for the default realm etc, enter mydomain.lan and DC01 as the host. &lt;br /&gt;
&lt;br /&gt;
==samba4 downloaden und installieren==&lt;br /&gt;
&lt;br /&gt;
 git clone -b v4-0-stable git://git.samba.org/samba.git samba4&lt;br /&gt;
&lt;br /&gt;
 cd samba4&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-debug --enable-selftest &lt;br /&gt;
&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Links setzen==&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/local/samba/sbin/* /usr/local/sbin&lt;br /&gt;
 ln -s /usr/local/samba/bin/* /usr/local/bin&lt;br /&gt;
&lt;br /&gt;
==Domain anlegen==&lt;br /&gt;
vorher das löschen:&lt;br /&gt;
 rm /usr/local/samba/etc/smb.conf&lt;br /&gt;
&lt;br /&gt;
''' realm, domain und adminpass''' sollten/können angepasst werden!&lt;br /&gt;
 /usr/local/samba/bin/samba-tool domain provision --realm=mydomain.lan --domain=mydomain --adminpass=&amp;quot;your_password&amp;quot; --server-role=dc --dns-backend=SAMBA_INTERNAL&lt;br /&gt;
&lt;br /&gt;
==Start von samba==&lt;br /&gt;
 /usr/local/samba/sbin/samba&lt;br /&gt;
&lt;br /&gt;
==smbversion, share und auth check==&lt;br /&gt;
&lt;br /&gt;
===smbversion===&lt;br /&gt;
Diese sollten übereinstimmen:&lt;br /&gt;
 /usr/local/samba/sbin/samba -V&lt;br /&gt;
 /usr/local/samba/bin/smbclient -V&lt;br /&gt;
&lt;br /&gt;
===shares anzeigen:===&lt;br /&gt;
 /usr/local/samba/bin/smbclient -L localhost -U%&lt;br /&gt;
&lt;br /&gt;
Sollte so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Sharename      Type      Comment      &lt;br /&gt;
---------        ----       -------        &lt;br /&gt;
netlogon         Disk &lt;br /&gt;
sysvol            Disk &lt;br /&gt;
IPC$              IPC         IPC Service (Samba 4.0.5)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Authentication check:===&lt;br /&gt;
Passwort in dem Command ändern!&lt;br /&gt;
 /usr/local/samba/bin/smbclient //localhost/netlogon -UAdministrator%&amp;quot;your_password&amp;quot; -c 'ls'&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Domain=[MYDOMAIN] OS=[Unix] Server=[Samba 4.0.5]  &lt;br /&gt;
.                                   D        0  Fri May 17 21:40:08 2013   &lt;br /&gt;
..                                  D        0  Fri May 17 21:42:36 2013&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DNS setzen==&lt;br /&gt;
===Forwarder eintragen===&lt;br /&gt;
 echo  domain MYDOMAIN.LAN &amp;gt;&amp;gt; /etc/resolv.conf&lt;br /&gt;
 sudo vi  /usr/local/samba/etc/smb.conf&lt;br /&gt;
&lt;br /&gt;
füge hinzu: (Man kann natürlich auch seinen eigenen DNS angeben)&lt;br /&gt;
 dns forwarder = 8.8.8.8 (I use google DNS here again)&lt;br /&gt;
&lt;br /&gt;
===Check===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
host -t SRV _ldap._tcp.mydomain.lan&lt;br /&gt;
_ldap._tcp.mydomain.lan has SRV record 0 100 389 DC01.mydomain.lan.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
host -t SRV _kerberos._udp.mydomain.lan&lt;br /&gt;
_kerberos._udp.mydomain.lan has SRV record 0 100 88 DC01.mydomain.lan&lt;br /&gt;
&lt;br /&gt;
host -t A DC01.mydomain.lan&lt;br /&gt;
DC01.mydomain.lan has address 192.168.0.100.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn '''&amp;quot;host mydomain.lan not found 3(NXDOMAIN)&amp;quot;''' ausgegeben wird, ist Samba nicht richtig gestartet!&lt;br /&gt;
&lt;br /&gt;
==Kerberos==&lt;br /&gt;
ändere '''$(REALM)''' zu '''MYDOMAIN.LAN'''&lt;br /&gt;
 vi /usr/local/samba/share/setup/krb5.conf&lt;br /&gt;
&lt;br /&gt;
==Share hinzufügen==&lt;br /&gt;
&lt;br /&gt;
 mkdir -m 770 /share&lt;br /&gt;
 chmod g+s /share&lt;br /&gt;
 chown root:users /share&lt;br /&gt;
&lt;br /&gt;
 vi /usr/local/samba/etc/smb.conf&lt;br /&gt;
füg das ein:&lt;br /&gt;
&lt;br /&gt;
 [share]&lt;br /&gt;
 directory_mode: parameter = 0700&lt;br /&gt;
 read only = no&lt;br /&gt;
 path = /share&lt;br /&gt;
 csc policy = documents&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
===ntp===&lt;br /&gt;
 vi /etc/ntp.conf &lt;br /&gt;
&lt;br /&gt;
füge einen von hier hinzu:&lt;br /&gt;
 http://www.pool.ntp.org/zone/de&lt;br /&gt;
&lt;br /&gt;
 service ntp restart&lt;br /&gt;
 ntpdate 0.de.pool.ntp.org&lt;br /&gt;
 ntpq -p&lt;br /&gt;
&lt;br /&gt;
===Adminpasswort läuft nicht ab===&lt;br /&gt;
 /usr/local/samba/bin/samba-tool user setexpiry administrator --noexpiry&lt;br /&gt;
&lt;br /&gt;
===samba upstart script===&lt;br /&gt;
&lt;br /&gt;
 vi /etc/init.d/samba&lt;br /&gt;
&lt;br /&gt;
 description &amp;quot;SMB/CIFS File and Active Directory Server&amp;quot;&lt;br /&gt;
 author      &amp;quot;Jelmer Vernooij &amp;lt;jelmer@ubuntu.com&amp;gt;&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
 start on (local-filesystems and net-device-up)&lt;br /&gt;
 stop on runlevel [!2345]&lt;br /&gt;
 &lt;br /&gt;
 expect fork&lt;br /&gt;
 normal exit 0 &lt;br /&gt;
 &lt;br /&gt;
 pre-start script&lt;br /&gt;
 	[ -r /etc/default/samba4 ] &amp;amp;&amp;amp; . /etc/default/samba4&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/run/samba&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/log/samba&lt;br /&gt;
 end script &lt;br /&gt;
  &lt;br /&gt;
 exec samba -D&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=howto=&lt;br /&gt;
https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO&lt;br /&gt;
&lt;br /&gt;
=installation=&lt;br /&gt;
*http://ubuntuforums.org/showthread.php?t=2146198&lt;br /&gt;
&lt;br /&gt;
=dns=&lt;br /&gt;
*zone anlegen&lt;br /&gt;
 samba-tool dns add localhost  simplex.local  otto A 192.168.246.23&lt;br /&gt;
=pam ldap=&lt;br /&gt;
*http://zachbethel.com/2013/04/10/linux-ldap-authentication-with-samba4/&lt;br /&gt;
=ldapbackend=&lt;br /&gt;
*http://www.foteviken.de/?p=1925&lt;br /&gt;
=samba-and-active-directory=&lt;br /&gt;
*http://www.held-im-ruhestand.de/software/samba-and-active-directory&lt;br /&gt;
=domain member=&lt;br /&gt;
*https://wiki.samba.org/index.php/Samba4/Domain_Member&lt;br /&gt;
=group policiy=&lt;br /&gt;
*http://www.alexwyn.com/computer-tips/folder-redirection-samba4-active-directory-domain-controller&lt;br /&gt;
=movies=&lt;br /&gt;
*http://www.samba.org/tridge/Samba4Demo/&lt;br /&gt;
&lt;br /&gt;
=Kennwortrichtlinie deaktivieren=&lt;br /&gt;
 Du gehst in die Gruppenrichtlinienverwaltung.&lt;br /&gt;
 Dann gehst du in das Verzecihnis deiner gewünschten Domäne.&lt;br /&gt;
 Jetzt solltest du einen eintrag sehen, der sich &amp;quot;Default Domain Controllers Policy&amp;quot; nennt.&lt;br /&gt;
 Mit rechter Maustaste draufklicken und bearbeiten. Dann öffnet sich der Gruppenrichtlinienverwaltungs-Editor&lt;br /&gt;
 (Achtung! Auf den ersten Blick sehr leicht mit der Gruppenrichtlinienverwaltung zu verwechseln).&lt;br /&gt;
 Jetzt schaust du unter &amp;quot;Computerconfiguration&amp;gt; Richtlinien&amp;gt; Windows-Einstellungen&amp;gt; Sicherheitseinstellungen&amp;gt; Kontorichtlinien&amp;gt; Kennwortrichtlinien.&lt;br /&gt;
 &lt;br /&gt;
 Dort darf man dann endlich die Kennwortrichtlinie deaktivieren.&lt;br /&gt;
&lt;br /&gt;
=debian=&lt;br /&gt;
*http://chris-blog.net/2014/01/freigaben-auf-einem-samba-4-server-einrichten/&lt;br /&gt;
=ubuntu=&lt;br /&gt;
http://xiep.de/allgemein/ubuntu-server-12-04-mit-samba-4-und-active-directory-pdc/&lt;br /&gt;
=dns=&lt;br /&gt;
https://wiki.archlinux.org/index.php/Samba_4_Active_Directory_Domain_Controller&lt;br /&gt;
=kennwortrichtlinien=&lt;br /&gt;
http://chris-blog.net/2014/01/kennwortrichtlinie-in-samba-4-domain-deaktivieren/&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Samba4&amp;diff=4088</id>
		<title>Samba4</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Samba4&amp;diff=4088"/>
		<updated>2014-02-26T14:32:16Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* Share hinzufügen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Installation=&lt;br /&gt;
==Interface anpassen==&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
address 192.168.0.100&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
network 192.168.0.0&lt;br /&gt;
broadcast 192.168.0.255&lt;br /&gt;
gateway 192.168.0.1 &lt;br /&gt;
dns-nameservers 192.168.0.100 8.8.8.8 (we use our server as DNS + google DNS as secondary DNS)&lt;br /&gt;
dns-search mydomain.lan&lt;br /&gt;
### IPs NOCH ANPASSEN! ###&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==hosts anpassen==&lt;br /&gt;
 vi /etc/hosts&lt;br /&gt;
 &lt;br /&gt;
 127.0.0.1       localhost.localdomain   localhost &lt;br /&gt;
 192.168.0.100   DC01.mydomain.lan       DC01&lt;br /&gt;
&lt;br /&gt;
 sudo echo DC01.mydomain.lan &amp;gt; /etc/hostname&lt;br /&gt;
 /etc/init.d/networking restart&lt;br /&gt;
&lt;br /&gt;
==Pakete und libs installieren==&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get update &amp;amp;&amp;amp; apt-get upgrade -y&lt;br /&gt;
 sudo apt-get install git build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev libpam0g-dev ntp -y&lt;br /&gt;
&lt;br /&gt;
You'll be asked for kerberos informations.&lt;br /&gt;
When asked for the default realm etc, enter mydomain.lan and DC01 as the host. &lt;br /&gt;
&lt;br /&gt;
==samba4 downloaden und installieren==&lt;br /&gt;
&lt;br /&gt;
 git clone -b v4-0-stable git://git.samba.org/samba.git samba4&lt;br /&gt;
&lt;br /&gt;
 cd samba4&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-debug --enable-selftest &lt;br /&gt;
&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Links setzen==&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/local/samba/sbin/* /usr/local/sbin&lt;br /&gt;
 ln -s /usr/local/samba/bin/* /usr/local/bin&lt;br /&gt;
&lt;br /&gt;
==Domain anlegen==&lt;br /&gt;
vorher das löschen:&lt;br /&gt;
 rm /usr/local/samba/etc/smb.conf&lt;br /&gt;
&lt;br /&gt;
''' realm, domain und adminpass''' sollten/können angepasst werden!&lt;br /&gt;
 /usr/local/samba/bin/samba-tool domain provision --realm=mydomain.lan --domain=mydomain --adminpass=&amp;quot;your_password&amp;quot; --server-role=dc --dns-backend=SAMBA_INTERNAL&lt;br /&gt;
&lt;br /&gt;
==Start von samba==&lt;br /&gt;
 /usr/local/samba/sbin/samba&lt;br /&gt;
&lt;br /&gt;
==smbversion, share und auth check==&lt;br /&gt;
&lt;br /&gt;
===smbversion===&lt;br /&gt;
Diese sollten übereinstimmen:&lt;br /&gt;
 /usr/local/samba/sbin/samba -V&lt;br /&gt;
 /usr/local/samba/bin/smbclient -V&lt;br /&gt;
&lt;br /&gt;
===shares anzeigen:===&lt;br /&gt;
 /usr/local/samba/bin/smbclient -L localhost -U%&lt;br /&gt;
&lt;br /&gt;
Sollte so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Sharename      Type      Comment      &lt;br /&gt;
---------        ----       -------        &lt;br /&gt;
netlogon         Disk &lt;br /&gt;
sysvol            Disk &lt;br /&gt;
IPC$              IPC         IPC Service (Samba 4.0.5)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Authentication check:===&lt;br /&gt;
Passwort in dem Command ändern!&lt;br /&gt;
 /usr/local/samba/bin/smbclient //localhost/netlogon -UAdministrator%&amp;quot;your_password&amp;quot; -c 'ls'&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Domain=[MYDOMAIN] OS=[Unix] Server=[Samba 4.0.5]  &lt;br /&gt;
.                                   D        0  Fri May 17 21:40:08 2013   &lt;br /&gt;
..                                  D        0  Fri May 17 21:42:36 2013&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DNS setzen==&lt;br /&gt;
===Forwarder eintragen===&lt;br /&gt;
 echo  domain MYDOMAIN.LAN &amp;gt;&amp;gt; /etc/resolv.conf&lt;br /&gt;
 sudo vi  /usr/local/samba/etc/smb.conf&lt;br /&gt;
&lt;br /&gt;
füge hinzu: (Man kann natürlich auch seinen eigenen DNS angeben)&lt;br /&gt;
 dns forwarder = 8.8.8.8 (I use google DNS here again)&lt;br /&gt;
&lt;br /&gt;
===Check===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
host -t SRV _ldap._tcp.mydomain.lan&lt;br /&gt;
_ldap._tcp.mydomain.lan has SRV record 0 100 389 DC01.mydomain.lan.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
host -t SRV _kerberos._udp.mydomain.lan&lt;br /&gt;
_kerberos._udp.mydomain.lan has SRV record 0 100 88 DC01.mydomain.lan&lt;br /&gt;
&lt;br /&gt;
host -t A DC01.mydomain.lan&lt;br /&gt;
DC01.mydomain.lan has address 192.168.0.100.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn '''&amp;quot;host mydomain.lan not found 3(NXDOMAIN)&amp;quot;''' ausgegeben wird, ist Samba nicht richtig gestartet!&lt;br /&gt;
&lt;br /&gt;
==Kerberos==&lt;br /&gt;
ändere '''$(REALM)''' zu '''MYDOMAIN.LAN'''&lt;br /&gt;
 vi /usr/local/samba/share/setup/krb5.conf&lt;br /&gt;
&lt;br /&gt;
==Share hinzufügen==&lt;br /&gt;
&lt;br /&gt;
 mkdir -m 770 /share&lt;br /&gt;
 chmod g+s /share&lt;br /&gt;
 chown root:users /share&lt;br /&gt;
&lt;br /&gt;
 vi /usr/local/samba/etc/smb.conf&lt;br /&gt;
füg das ein:&lt;br /&gt;
&lt;br /&gt;
 [share]&lt;br /&gt;
 directory_mode: parameter = 0700&lt;br /&gt;
 read only = no&lt;br /&gt;
 path = /share&lt;br /&gt;
 csc policy = documents&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
===ntp===&lt;br /&gt;
 vi /etc/ntp.conf &lt;br /&gt;
&lt;br /&gt;
füge einen von hier hinzu:&lt;br /&gt;
 http://www.pool.ntp.org/zone/de&lt;br /&gt;
&lt;br /&gt;
 service ntp restart&lt;br /&gt;
 ntpdate 0.de.pool.ntp.org&lt;br /&gt;
 ntpq -p&lt;br /&gt;
&lt;br /&gt;
===Adminpasswort läuft nicht ab===&lt;br /&gt;
 /usr/local/samba/bin/samba-tool user setexpiry administrator --noexpiry&lt;br /&gt;
&lt;br /&gt;
===samba upstart script===&lt;br /&gt;
&lt;br /&gt;
 vi /etc/init.d/samba&lt;br /&gt;
&lt;br /&gt;
 description &amp;quot;SMB/CIFS File and Active Directory Server&amp;quot;&lt;br /&gt;
 author      &amp;quot;Jelmer Vernooij &amp;lt;jelmer@ubuntu.com&amp;gt;&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
 start on (local-filesystems and net-device-up)&lt;br /&gt;
 stop on runlevel [!2345]&lt;br /&gt;
 &lt;br /&gt;
 expect fork&lt;br /&gt;
 normal exit 0 &lt;br /&gt;
 &lt;br /&gt;
 pre-start script&lt;br /&gt;
 	[ -r /etc/default/samba4 ] &amp;amp;&amp;amp; . /etc/default/samba4&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/run/samba&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/log/samba&lt;br /&gt;
 end script &lt;br /&gt;
  &lt;br /&gt;
 exec samba -D&lt;br /&gt;
&lt;br /&gt;
=howto=&lt;br /&gt;
https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO&lt;br /&gt;
&lt;br /&gt;
=installation=&lt;br /&gt;
*http://ubuntuforums.org/showthread.php?t=2146198&lt;br /&gt;
&lt;br /&gt;
=dns=&lt;br /&gt;
*zone anlegen&lt;br /&gt;
 samba-tool dns add localhost  simplex.local  otto A 192.168.246.23&lt;br /&gt;
=pam ldap=&lt;br /&gt;
*http://zachbethel.com/2013/04/10/linux-ldap-authentication-with-samba4/&lt;br /&gt;
=ldapbackend=&lt;br /&gt;
*http://www.foteviken.de/?p=1925&lt;br /&gt;
=samba-and-active-directory=&lt;br /&gt;
*http://www.held-im-ruhestand.de/software/samba-and-active-directory&lt;br /&gt;
=domain member=&lt;br /&gt;
*https://wiki.samba.org/index.php/Samba4/Domain_Member&lt;br /&gt;
=group policiy=&lt;br /&gt;
*http://www.alexwyn.com/computer-tips/folder-redirection-samba4-active-directory-domain-controller&lt;br /&gt;
=movies=&lt;br /&gt;
*http://www.samba.org/tridge/Samba4Demo/&lt;br /&gt;
&lt;br /&gt;
=Kennwortrichtlinie deaktivieren=&lt;br /&gt;
 Du gehst in die Gruppenrichtlinienverwaltung.&lt;br /&gt;
 Dann gehst du in das Verzecihnis deiner gewünschten Domäne.&lt;br /&gt;
 Jetzt solltest du einen eintrag sehen, der sich &amp;quot;Default Domain Controllers Policy&amp;quot; nennt.&lt;br /&gt;
 Mit rechter Maustaste draufklicken und bearbeiten. Dann öffnet sich der Gruppenrichtlinienverwaltungs-Editor&lt;br /&gt;
 (Achtung! Auf den ersten Blick sehr leicht mit der Gruppenrichtlinienverwaltung zu verwechseln).&lt;br /&gt;
 Jetzt schaust du unter &amp;quot;Computerconfiguration&amp;gt; Richtlinien&amp;gt; Windows-Einstellungen&amp;gt; Sicherheitseinstellungen&amp;gt; Kontorichtlinien&amp;gt; Kennwortrichtlinien.&lt;br /&gt;
 &lt;br /&gt;
 Dort darf man dann endlich die Kennwortrichtlinie deaktivieren.&lt;br /&gt;
&lt;br /&gt;
=debian=&lt;br /&gt;
*http://chris-blog.net/2014/01/freigaben-auf-einem-samba-4-server-einrichten/&lt;br /&gt;
=ubuntu=&lt;br /&gt;
http://xiep.de/allgemein/ubuntu-server-12-04-mit-samba-4-und-active-directory-pdc/&lt;br /&gt;
=dns=&lt;br /&gt;
https://wiki.archlinux.org/index.php/Samba_4_Active_Directory_Domain_Controller&lt;br /&gt;
=kennwortrichtlinien=&lt;br /&gt;
http://chris-blog.net/2014/01/kennwortrichtlinie-in-samba-4-domain-deaktivieren/&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Samba4&amp;diff=4087</id>
		<title>Samba4</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Samba4&amp;diff=4087"/>
		<updated>2014-02-26T14:31:01Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* Adminpasswort läuft nicht ab */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Installation=&lt;br /&gt;
==Interface anpassen==&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
address 192.168.0.100&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
network 192.168.0.0&lt;br /&gt;
broadcast 192.168.0.255&lt;br /&gt;
gateway 192.168.0.1 &lt;br /&gt;
dns-nameservers 192.168.0.100 8.8.8.8 (we use our server as DNS + google DNS as secondary DNS)&lt;br /&gt;
dns-search mydomain.lan&lt;br /&gt;
### IPs NOCH ANPASSEN! ###&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==hosts anpassen==&lt;br /&gt;
 vi /etc/hosts&lt;br /&gt;
 &lt;br /&gt;
 127.0.0.1       localhost.localdomain   localhost &lt;br /&gt;
 192.168.0.100   DC01.mydomain.lan       DC01&lt;br /&gt;
&lt;br /&gt;
 sudo echo DC01.mydomain.lan &amp;gt; /etc/hostname&lt;br /&gt;
 /etc/init.d/networking restart&lt;br /&gt;
&lt;br /&gt;
==Pakete und libs installieren==&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get update &amp;amp;&amp;amp; apt-get upgrade -y&lt;br /&gt;
 sudo apt-get install git build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev libpam0g-dev ntp -y&lt;br /&gt;
&lt;br /&gt;
You'll be asked for kerberos informations.&lt;br /&gt;
When asked for the default realm etc, enter mydomain.lan and DC01 as the host. &lt;br /&gt;
&lt;br /&gt;
==samba4 downloaden und installieren==&lt;br /&gt;
&lt;br /&gt;
 git clone -b v4-0-stable git://git.samba.org/samba.git samba4&lt;br /&gt;
&lt;br /&gt;
 cd samba4&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-debug --enable-selftest &lt;br /&gt;
&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Links setzen==&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/local/samba/sbin/* /usr/local/sbin&lt;br /&gt;
 ln -s /usr/local/samba/bin/* /usr/local/bin&lt;br /&gt;
&lt;br /&gt;
==Domain anlegen==&lt;br /&gt;
vorher das löschen:&lt;br /&gt;
 rm /usr/local/samba/etc/smb.conf&lt;br /&gt;
&lt;br /&gt;
''' realm, domain und adminpass''' sollten/können angepasst werden!&lt;br /&gt;
 /usr/local/samba/bin/samba-tool domain provision --realm=mydomain.lan --domain=mydomain --adminpass=&amp;quot;your_password&amp;quot; --server-role=dc --dns-backend=SAMBA_INTERNAL&lt;br /&gt;
&lt;br /&gt;
==Start von samba==&lt;br /&gt;
 /usr/local/samba/sbin/samba&lt;br /&gt;
&lt;br /&gt;
==smbversion, share und auth check==&lt;br /&gt;
&lt;br /&gt;
===smbversion===&lt;br /&gt;
Diese sollten übereinstimmen:&lt;br /&gt;
 /usr/local/samba/sbin/samba -V&lt;br /&gt;
 /usr/local/samba/bin/smbclient -V&lt;br /&gt;
&lt;br /&gt;
===shares anzeigen:===&lt;br /&gt;
 /usr/local/samba/bin/smbclient -L localhost -U%&lt;br /&gt;
&lt;br /&gt;
Sollte so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Sharename      Type      Comment      &lt;br /&gt;
---------        ----       -------        &lt;br /&gt;
netlogon         Disk &lt;br /&gt;
sysvol            Disk &lt;br /&gt;
IPC$              IPC         IPC Service (Samba 4.0.5)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Authentication check:===&lt;br /&gt;
Passwort in dem Command ändern!&lt;br /&gt;
 /usr/local/samba/bin/smbclient //localhost/netlogon -UAdministrator%&amp;quot;your_password&amp;quot; -c 'ls'&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Domain=[MYDOMAIN] OS=[Unix] Server=[Samba 4.0.5]  &lt;br /&gt;
.                                   D        0  Fri May 17 21:40:08 2013   &lt;br /&gt;
..                                  D        0  Fri May 17 21:42:36 2013&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DNS setzen==&lt;br /&gt;
===Forwarder eintragen===&lt;br /&gt;
 echo  domain MYDOMAIN.LAN &amp;gt;&amp;gt; /etc/resolv.conf&lt;br /&gt;
 sudo vi  /usr/local/samba/etc/smb.conf&lt;br /&gt;
&lt;br /&gt;
füge hinzu: (Man kann natürlich auch seinen eigenen DNS angeben)&lt;br /&gt;
 dns forwarder = 8.8.8.8 (I use google DNS here again)&lt;br /&gt;
&lt;br /&gt;
===Check===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
host -t SRV _ldap._tcp.mydomain.lan&lt;br /&gt;
_ldap._tcp.mydomain.lan has SRV record 0 100 389 DC01.mydomain.lan.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
host -t SRV _kerberos._udp.mydomain.lan&lt;br /&gt;
_kerberos._udp.mydomain.lan has SRV record 0 100 88 DC01.mydomain.lan&lt;br /&gt;
&lt;br /&gt;
host -t A DC01.mydomain.lan&lt;br /&gt;
DC01.mydomain.lan has address 192.168.0.100.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn '''&amp;quot;host mydomain.lan not found 3(NXDOMAIN)&amp;quot;''' ausgegeben wird, ist Samba nicht richtig gestartet!&lt;br /&gt;
&lt;br /&gt;
==Kerberos==&lt;br /&gt;
ändere '''$(REALM)''' zu '''MYDOMAIN.LAN'''&lt;br /&gt;
 vi /usr/local/samba/share/setup/krb5.conf&lt;br /&gt;
&lt;br /&gt;
==Share hinzufügen==&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
mkdir -m 770 /Users&lt;br /&gt;
chmod g+s /Users&lt;br /&gt;
chown root:users /Users&lt;br /&gt;
then edit /usr/local/samba/etc/smb.conf&lt;br /&gt;
&lt;br /&gt;
and add the following lines:&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
[Users]&lt;br /&gt;
directory_mode: parameter = 0700&lt;br /&gt;
read only = no&lt;br /&gt;
path = /Users&lt;br /&gt;
csc policy = documents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
finally set no expiration flag fro your active directory administrator password (or you'll have problems after 42 days)&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
===ntp===&lt;br /&gt;
 vi /etc/ntp.conf &lt;br /&gt;
&lt;br /&gt;
füge einen von hier hinzu:&lt;br /&gt;
 http://www.pool.ntp.org/zone/de&lt;br /&gt;
&lt;br /&gt;
 service ntp restart&lt;br /&gt;
 ntpdate 0.de.pool.ntp.org&lt;br /&gt;
 ntpq -p&lt;br /&gt;
&lt;br /&gt;
===Adminpasswort läuft nicht ab===&lt;br /&gt;
 /usr/local/samba/bin/samba-tool user setexpiry administrator --noexpiry&lt;br /&gt;
&lt;br /&gt;
===samba upstart script===&lt;br /&gt;
&lt;br /&gt;
 vi /etc/init.d/samba&lt;br /&gt;
&lt;br /&gt;
 description &amp;quot;SMB/CIFS File and Active Directory Server&amp;quot;&lt;br /&gt;
 author      &amp;quot;Jelmer Vernooij &amp;lt;jelmer@ubuntu.com&amp;gt;&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
 start on (local-filesystems and net-device-up)&lt;br /&gt;
 stop on runlevel [!2345]&lt;br /&gt;
 &lt;br /&gt;
 expect fork&lt;br /&gt;
 normal exit 0 &lt;br /&gt;
 &lt;br /&gt;
 pre-start script&lt;br /&gt;
 	[ -r /etc/default/samba4 ] &amp;amp;&amp;amp; . /etc/default/samba4&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/run/samba&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/log/samba&lt;br /&gt;
 end script &lt;br /&gt;
  &lt;br /&gt;
 exec samba -D&lt;br /&gt;
&lt;br /&gt;
=howto=&lt;br /&gt;
https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO&lt;br /&gt;
&lt;br /&gt;
=installation=&lt;br /&gt;
*http://ubuntuforums.org/showthread.php?t=2146198&lt;br /&gt;
&lt;br /&gt;
=dns=&lt;br /&gt;
*zone anlegen&lt;br /&gt;
 samba-tool dns add localhost  simplex.local  otto A 192.168.246.23&lt;br /&gt;
=pam ldap=&lt;br /&gt;
*http://zachbethel.com/2013/04/10/linux-ldap-authentication-with-samba4/&lt;br /&gt;
=ldapbackend=&lt;br /&gt;
*http://www.foteviken.de/?p=1925&lt;br /&gt;
=samba-and-active-directory=&lt;br /&gt;
*http://www.held-im-ruhestand.de/software/samba-and-active-directory&lt;br /&gt;
=domain member=&lt;br /&gt;
*https://wiki.samba.org/index.php/Samba4/Domain_Member&lt;br /&gt;
=group policiy=&lt;br /&gt;
*http://www.alexwyn.com/computer-tips/folder-redirection-samba4-active-directory-domain-controller&lt;br /&gt;
=movies=&lt;br /&gt;
*http://www.samba.org/tridge/Samba4Demo/&lt;br /&gt;
&lt;br /&gt;
=Kennwortrichtlinie deaktivieren=&lt;br /&gt;
 Du gehst in die Gruppenrichtlinienverwaltung.&lt;br /&gt;
 Dann gehst du in das Verzecihnis deiner gewünschten Domäne.&lt;br /&gt;
 Jetzt solltest du einen eintrag sehen, der sich &amp;quot;Default Domain Controllers Policy&amp;quot; nennt.&lt;br /&gt;
 Mit rechter Maustaste draufklicken und bearbeiten. Dann öffnet sich der Gruppenrichtlinienverwaltungs-Editor&lt;br /&gt;
 (Achtung! Auf den ersten Blick sehr leicht mit der Gruppenrichtlinienverwaltung zu verwechseln).&lt;br /&gt;
 Jetzt schaust du unter &amp;quot;Computerconfiguration&amp;gt; Richtlinien&amp;gt; Windows-Einstellungen&amp;gt; Sicherheitseinstellungen&amp;gt; Kontorichtlinien&amp;gt; Kennwortrichtlinien.&lt;br /&gt;
 &lt;br /&gt;
 Dort darf man dann endlich die Kennwortrichtlinie deaktivieren.&lt;br /&gt;
&lt;br /&gt;
=debian=&lt;br /&gt;
*http://chris-blog.net/2014/01/freigaben-auf-einem-samba-4-server-einrichten/&lt;br /&gt;
=ubuntu=&lt;br /&gt;
http://xiep.de/allgemein/ubuntu-server-12-04-mit-samba-4-und-active-directory-pdc/&lt;br /&gt;
=dns=&lt;br /&gt;
https://wiki.archlinux.org/index.php/Samba_4_Active_Directory_Domain_Controller&lt;br /&gt;
=kennwortrichtlinien=&lt;br /&gt;
http://chris-blog.net/2014/01/kennwortrichtlinie-in-samba-4-domain-deaktivieren/&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Samba4&amp;diff=4086</id>
		<title>Samba4</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Samba4&amp;diff=4086"/>
		<updated>2014-02-26T14:30:51Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* Share hinzufügen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Installation=&lt;br /&gt;
==Interface anpassen==&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
address 192.168.0.100&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
network 192.168.0.0&lt;br /&gt;
broadcast 192.168.0.255&lt;br /&gt;
gateway 192.168.0.1 &lt;br /&gt;
dns-nameservers 192.168.0.100 8.8.8.8 (we use our server as DNS + google DNS as secondary DNS)&lt;br /&gt;
dns-search mydomain.lan&lt;br /&gt;
### IPs NOCH ANPASSEN! ###&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==hosts anpassen==&lt;br /&gt;
 vi /etc/hosts&lt;br /&gt;
 &lt;br /&gt;
 127.0.0.1       localhost.localdomain   localhost &lt;br /&gt;
 192.168.0.100   DC01.mydomain.lan       DC01&lt;br /&gt;
&lt;br /&gt;
 sudo echo DC01.mydomain.lan &amp;gt; /etc/hostname&lt;br /&gt;
 /etc/init.d/networking restart&lt;br /&gt;
&lt;br /&gt;
==Pakete und libs installieren==&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get update &amp;amp;&amp;amp; apt-get upgrade -y&lt;br /&gt;
 sudo apt-get install git build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev libpam0g-dev ntp -y&lt;br /&gt;
&lt;br /&gt;
You'll be asked for kerberos informations.&lt;br /&gt;
When asked for the default realm etc, enter mydomain.lan and DC01 as the host. &lt;br /&gt;
&lt;br /&gt;
==samba4 downloaden und installieren==&lt;br /&gt;
&lt;br /&gt;
 git clone -b v4-0-stable git://git.samba.org/samba.git samba4&lt;br /&gt;
&lt;br /&gt;
 cd samba4&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-debug --enable-selftest &lt;br /&gt;
&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Links setzen==&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/local/samba/sbin/* /usr/local/sbin&lt;br /&gt;
 ln -s /usr/local/samba/bin/* /usr/local/bin&lt;br /&gt;
&lt;br /&gt;
==Domain anlegen==&lt;br /&gt;
vorher das löschen:&lt;br /&gt;
 rm /usr/local/samba/etc/smb.conf&lt;br /&gt;
&lt;br /&gt;
''' realm, domain und adminpass''' sollten/können angepasst werden!&lt;br /&gt;
 /usr/local/samba/bin/samba-tool domain provision --realm=mydomain.lan --domain=mydomain --adminpass=&amp;quot;your_password&amp;quot; --server-role=dc --dns-backend=SAMBA_INTERNAL&lt;br /&gt;
&lt;br /&gt;
==Start von samba==&lt;br /&gt;
 /usr/local/samba/sbin/samba&lt;br /&gt;
&lt;br /&gt;
==smbversion, share und auth check==&lt;br /&gt;
&lt;br /&gt;
===smbversion===&lt;br /&gt;
Diese sollten übereinstimmen:&lt;br /&gt;
 /usr/local/samba/sbin/samba -V&lt;br /&gt;
 /usr/local/samba/bin/smbclient -V&lt;br /&gt;
&lt;br /&gt;
===shares anzeigen:===&lt;br /&gt;
 /usr/local/samba/bin/smbclient -L localhost -U%&lt;br /&gt;
&lt;br /&gt;
Sollte so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Sharename      Type      Comment      &lt;br /&gt;
---------        ----       -------        &lt;br /&gt;
netlogon         Disk &lt;br /&gt;
sysvol            Disk &lt;br /&gt;
IPC$              IPC         IPC Service (Samba 4.0.5)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Authentication check:===&lt;br /&gt;
Passwort in dem Command ändern!&lt;br /&gt;
 /usr/local/samba/bin/smbclient //localhost/netlogon -UAdministrator%&amp;quot;your_password&amp;quot; -c 'ls'&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Domain=[MYDOMAIN] OS=[Unix] Server=[Samba 4.0.5]  &lt;br /&gt;
.                                   D        0  Fri May 17 21:40:08 2013   &lt;br /&gt;
..                                  D        0  Fri May 17 21:42:36 2013&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DNS setzen==&lt;br /&gt;
===Forwarder eintragen===&lt;br /&gt;
 echo  domain MYDOMAIN.LAN &amp;gt;&amp;gt; /etc/resolv.conf&lt;br /&gt;
 sudo vi  /usr/local/samba/etc/smb.conf&lt;br /&gt;
&lt;br /&gt;
füge hinzu: (Man kann natürlich auch seinen eigenen DNS angeben)&lt;br /&gt;
 dns forwarder = 8.8.8.8 (I use google DNS here again)&lt;br /&gt;
&lt;br /&gt;
===Check===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
host -t SRV _ldap._tcp.mydomain.lan&lt;br /&gt;
_ldap._tcp.mydomain.lan has SRV record 0 100 389 DC01.mydomain.lan.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
host -t SRV _kerberos._udp.mydomain.lan&lt;br /&gt;
_kerberos._udp.mydomain.lan has SRV record 0 100 88 DC01.mydomain.lan&lt;br /&gt;
&lt;br /&gt;
host -t A DC01.mydomain.lan&lt;br /&gt;
DC01.mydomain.lan has address 192.168.0.100.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn '''&amp;quot;host mydomain.lan not found 3(NXDOMAIN)&amp;quot;''' ausgegeben wird, ist Samba nicht richtig gestartet!&lt;br /&gt;
&lt;br /&gt;
==Kerberos==&lt;br /&gt;
ändere '''$(REALM)''' zu '''MYDOMAIN.LAN'''&lt;br /&gt;
 vi /usr/local/samba/share/setup/krb5.conf&lt;br /&gt;
&lt;br /&gt;
==Share hinzufügen==&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
mkdir -m 770 /Users&lt;br /&gt;
chmod g+s /Users&lt;br /&gt;
chown root:users /Users&lt;br /&gt;
then edit /usr/local/samba/etc/smb.conf&lt;br /&gt;
&lt;br /&gt;
and add the following lines:&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
[Users]&lt;br /&gt;
directory_mode: parameter = 0700&lt;br /&gt;
read only = no&lt;br /&gt;
path = /Users&lt;br /&gt;
csc policy = documents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
finally set no expiration flag fro your active directory administrator password (or you'll have problems after 42 days)&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
===ntp===&lt;br /&gt;
 vi /etc/ntp.conf &lt;br /&gt;
&lt;br /&gt;
füge einen von hier hinzu:&lt;br /&gt;
 http://www.pool.ntp.org/zone/de&lt;br /&gt;
&lt;br /&gt;
 service ntp restart&lt;br /&gt;
 ntpdate 0.de.pool.ntp.org&lt;br /&gt;
 ntpq -p&lt;br /&gt;
&lt;br /&gt;
===Adminpasswort läuft nicht ab===&lt;br /&gt;
 /usr/local/samba/bin/samba-tool user setexpiry administrator --noexpiry&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===samba upstart script===&lt;br /&gt;
&lt;br /&gt;
 vi /etc/init.d/samba&lt;br /&gt;
&lt;br /&gt;
 description &amp;quot;SMB/CIFS File and Active Directory Server&amp;quot;&lt;br /&gt;
 author      &amp;quot;Jelmer Vernooij &amp;lt;jelmer@ubuntu.com&amp;gt;&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
 start on (local-filesystems and net-device-up)&lt;br /&gt;
 stop on runlevel [!2345]&lt;br /&gt;
 &lt;br /&gt;
 expect fork&lt;br /&gt;
 normal exit 0 &lt;br /&gt;
 &lt;br /&gt;
 pre-start script&lt;br /&gt;
 	[ -r /etc/default/samba4 ] &amp;amp;&amp;amp; . /etc/default/samba4&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/run/samba&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/log/samba&lt;br /&gt;
 end script &lt;br /&gt;
  &lt;br /&gt;
 exec samba -D&lt;br /&gt;
&lt;br /&gt;
=howto=&lt;br /&gt;
https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO&lt;br /&gt;
&lt;br /&gt;
=installation=&lt;br /&gt;
*http://ubuntuforums.org/showthread.php?t=2146198&lt;br /&gt;
&lt;br /&gt;
=dns=&lt;br /&gt;
*zone anlegen&lt;br /&gt;
 samba-tool dns add localhost  simplex.local  otto A 192.168.246.23&lt;br /&gt;
=pam ldap=&lt;br /&gt;
*http://zachbethel.com/2013/04/10/linux-ldap-authentication-with-samba4/&lt;br /&gt;
=ldapbackend=&lt;br /&gt;
*http://www.foteviken.de/?p=1925&lt;br /&gt;
=samba-and-active-directory=&lt;br /&gt;
*http://www.held-im-ruhestand.de/software/samba-and-active-directory&lt;br /&gt;
=domain member=&lt;br /&gt;
*https://wiki.samba.org/index.php/Samba4/Domain_Member&lt;br /&gt;
=group policiy=&lt;br /&gt;
*http://www.alexwyn.com/computer-tips/folder-redirection-samba4-active-directory-domain-controller&lt;br /&gt;
=movies=&lt;br /&gt;
*http://www.samba.org/tridge/Samba4Demo/&lt;br /&gt;
&lt;br /&gt;
=Kennwortrichtlinie deaktivieren=&lt;br /&gt;
 Du gehst in die Gruppenrichtlinienverwaltung.&lt;br /&gt;
 Dann gehst du in das Verzecihnis deiner gewünschten Domäne.&lt;br /&gt;
 Jetzt solltest du einen eintrag sehen, der sich &amp;quot;Default Domain Controllers Policy&amp;quot; nennt.&lt;br /&gt;
 Mit rechter Maustaste draufklicken und bearbeiten. Dann öffnet sich der Gruppenrichtlinienverwaltungs-Editor&lt;br /&gt;
 (Achtung! Auf den ersten Blick sehr leicht mit der Gruppenrichtlinienverwaltung zu verwechseln).&lt;br /&gt;
 Jetzt schaust du unter &amp;quot;Computerconfiguration&amp;gt; Richtlinien&amp;gt; Windows-Einstellungen&amp;gt; Sicherheitseinstellungen&amp;gt; Kontorichtlinien&amp;gt; Kennwortrichtlinien.&lt;br /&gt;
 &lt;br /&gt;
 Dort darf man dann endlich die Kennwortrichtlinie deaktivieren.&lt;br /&gt;
&lt;br /&gt;
=debian=&lt;br /&gt;
*http://chris-blog.net/2014/01/freigaben-auf-einem-samba-4-server-einrichten/&lt;br /&gt;
=ubuntu=&lt;br /&gt;
http://xiep.de/allgemein/ubuntu-server-12-04-mit-samba-4-und-active-directory-pdc/&lt;br /&gt;
=dns=&lt;br /&gt;
https://wiki.archlinux.org/index.php/Samba_4_Active_Directory_Domain_Controller&lt;br /&gt;
=kennwortrichtlinien=&lt;br /&gt;
http://chris-blog.net/2014/01/kennwortrichtlinie-in-samba-4-domain-deaktivieren/&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Samba4&amp;diff=4085</id>
		<title>Samba4</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Samba4&amp;diff=4085"/>
		<updated>2014-02-26T14:30:31Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* Misc */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Installation=&lt;br /&gt;
==Interface anpassen==&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
address 192.168.0.100&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
network 192.168.0.0&lt;br /&gt;
broadcast 192.168.0.255&lt;br /&gt;
gateway 192.168.0.1 &lt;br /&gt;
dns-nameservers 192.168.0.100 8.8.8.8 (we use our server as DNS + google DNS as secondary DNS)&lt;br /&gt;
dns-search mydomain.lan&lt;br /&gt;
### IPs NOCH ANPASSEN! ###&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==hosts anpassen==&lt;br /&gt;
 vi /etc/hosts&lt;br /&gt;
 &lt;br /&gt;
 127.0.0.1       localhost.localdomain   localhost &lt;br /&gt;
 192.168.0.100   DC01.mydomain.lan       DC01&lt;br /&gt;
&lt;br /&gt;
 sudo echo DC01.mydomain.lan &amp;gt; /etc/hostname&lt;br /&gt;
 /etc/init.d/networking restart&lt;br /&gt;
&lt;br /&gt;
==Pakete und libs installieren==&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get update &amp;amp;&amp;amp; apt-get upgrade -y&lt;br /&gt;
 sudo apt-get install git build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev libpam0g-dev ntp -y&lt;br /&gt;
&lt;br /&gt;
You'll be asked for kerberos informations.&lt;br /&gt;
When asked for the default realm etc, enter mydomain.lan and DC01 as the host. &lt;br /&gt;
&lt;br /&gt;
==samba4 downloaden und installieren==&lt;br /&gt;
&lt;br /&gt;
 git clone -b v4-0-stable git://git.samba.org/samba.git samba4&lt;br /&gt;
&lt;br /&gt;
 cd samba4&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-debug --enable-selftest &lt;br /&gt;
&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Links setzen==&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/local/samba/sbin/* /usr/local/sbin&lt;br /&gt;
 ln -s /usr/local/samba/bin/* /usr/local/bin&lt;br /&gt;
&lt;br /&gt;
==Domain anlegen==&lt;br /&gt;
vorher das löschen:&lt;br /&gt;
 rm /usr/local/samba/etc/smb.conf&lt;br /&gt;
&lt;br /&gt;
''' realm, domain und adminpass''' sollten/können angepasst werden!&lt;br /&gt;
 /usr/local/samba/bin/samba-tool domain provision --realm=mydomain.lan --domain=mydomain --adminpass=&amp;quot;your_password&amp;quot; --server-role=dc --dns-backend=SAMBA_INTERNAL&lt;br /&gt;
&lt;br /&gt;
==Start von samba==&lt;br /&gt;
 /usr/local/samba/sbin/samba&lt;br /&gt;
&lt;br /&gt;
==smbversion, share und auth check==&lt;br /&gt;
&lt;br /&gt;
===smbversion===&lt;br /&gt;
Diese sollten übereinstimmen:&lt;br /&gt;
 /usr/local/samba/sbin/samba -V&lt;br /&gt;
 /usr/local/samba/bin/smbclient -V&lt;br /&gt;
&lt;br /&gt;
===shares anzeigen:===&lt;br /&gt;
 /usr/local/samba/bin/smbclient -L localhost -U%&lt;br /&gt;
&lt;br /&gt;
Sollte so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Sharename      Type      Comment      &lt;br /&gt;
---------        ----       -------        &lt;br /&gt;
netlogon         Disk &lt;br /&gt;
sysvol            Disk &lt;br /&gt;
IPC$              IPC         IPC Service (Samba 4.0.5)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Authentication check:===&lt;br /&gt;
Passwort in dem Command ändern!&lt;br /&gt;
 /usr/local/samba/bin/smbclient //localhost/netlogon -UAdministrator%&amp;quot;your_password&amp;quot; -c 'ls'&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Domain=[MYDOMAIN] OS=[Unix] Server=[Samba 4.0.5]  &lt;br /&gt;
.                                   D        0  Fri May 17 21:40:08 2013   &lt;br /&gt;
..                                  D        0  Fri May 17 21:42:36 2013&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DNS setzen==&lt;br /&gt;
===Forwarder eintragen===&lt;br /&gt;
 echo  domain MYDOMAIN.LAN &amp;gt;&amp;gt; /etc/resolv.conf&lt;br /&gt;
 sudo vi  /usr/local/samba/etc/smb.conf&lt;br /&gt;
&lt;br /&gt;
füge hinzu: (Man kann natürlich auch seinen eigenen DNS angeben)&lt;br /&gt;
 dns forwarder = 8.8.8.8 (I use google DNS here again)&lt;br /&gt;
&lt;br /&gt;
===Check===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
host -t SRV _ldap._tcp.mydomain.lan&lt;br /&gt;
_ldap._tcp.mydomain.lan has SRV record 0 100 389 DC01.mydomain.lan.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
host -t SRV _kerberos._udp.mydomain.lan&lt;br /&gt;
_kerberos._udp.mydomain.lan has SRV record 0 100 88 DC01.mydomain.lan&lt;br /&gt;
&lt;br /&gt;
host -t A DC01.mydomain.lan&lt;br /&gt;
DC01.mydomain.lan has address 192.168.0.100.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn '''&amp;quot;host mydomain.lan not found 3(NXDOMAIN)&amp;quot;''' ausgegeben wird, ist Samba nicht richtig gestartet!&lt;br /&gt;
&lt;br /&gt;
==Kerberos==&lt;br /&gt;
ändere '''$(REALM)''' zu '''MYDOMAIN.LAN'''&lt;br /&gt;
 vi /usr/local/samba/share/setup/krb5.conf&lt;br /&gt;
&lt;br /&gt;
==Share hinzufügen==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
mkdir -m 770 /Users&lt;br /&gt;
chmod g+s /Users&lt;br /&gt;
chown root:users /Users&lt;br /&gt;
then edit /usr/local/samba/etc/smb.conf&lt;br /&gt;
&lt;br /&gt;
and add the following lines:&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
[Users]&lt;br /&gt;
directory_mode: parameter = 0700&lt;br /&gt;
read only = no&lt;br /&gt;
path = /Users&lt;br /&gt;
csc policy = documents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
finally set no expiration flag fro your active directory administrator password (or you'll have problems after 42 days)&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===samba upstart script===&lt;br /&gt;
&lt;br /&gt;
 vi /etc/init.d/samba&lt;br /&gt;
&lt;br /&gt;
 description &amp;quot;SMB/CIFS File and Active Directory Server&amp;quot;&lt;br /&gt;
 author      &amp;quot;Jelmer Vernooij &amp;lt;jelmer@ubuntu.com&amp;gt;&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
 start on (local-filesystems and net-device-up)&lt;br /&gt;
 stop on runlevel [!2345]&lt;br /&gt;
 &lt;br /&gt;
 expect fork&lt;br /&gt;
 normal exit 0 &lt;br /&gt;
 &lt;br /&gt;
 pre-start script&lt;br /&gt;
 	[ -r /etc/default/samba4 ] &amp;amp;&amp;amp; . /etc/default/samba4&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/run/samba&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/log/samba&lt;br /&gt;
 end script &lt;br /&gt;
  &lt;br /&gt;
 exec samba -D&lt;br /&gt;
&lt;br /&gt;
=howto=&lt;br /&gt;
https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO&lt;br /&gt;
&lt;br /&gt;
=installation=&lt;br /&gt;
*http://ubuntuforums.org/showthread.php?t=2146198&lt;br /&gt;
&lt;br /&gt;
=dns=&lt;br /&gt;
*zone anlegen&lt;br /&gt;
 samba-tool dns add localhost  simplex.local  otto A 192.168.246.23&lt;br /&gt;
=pam ldap=&lt;br /&gt;
*http://zachbethel.com/2013/04/10/linux-ldap-authentication-with-samba4/&lt;br /&gt;
=ldapbackend=&lt;br /&gt;
*http://www.foteviken.de/?p=1925&lt;br /&gt;
=samba-and-active-directory=&lt;br /&gt;
*http://www.held-im-ruhestand.de/software/samba-and-active-directory&lt;br /&gt;
=domain member=&lt;br /&gt;
*https://wiki.samba.org/index.php/Samba4/Domain_Member&lt;br /&gt;
=group policiy=&lt;br /&gt;
*http://www.alexwyn.com/computer-tips/folder-redirection-samba4-active-directory-domain-controller&lt;br /&gt;
=movies=&lt;br /&gt;
*http://www.samba.org/tridge/Samba4Demo/&lt;br /&gt;
&lt;br /&gt;
=Kennwortrichtlinie deaktivieren=&lt;br /&gt;
 Du gehst in die Gruppenrichtlinienverwaltung.&lt;br /&gt;
 Dann gehst du in das Verzecihnis deiner gewünschten Domäne.&lt;br /&gt;
 Jetzt solltest du einen eintrag sehen, der sich &amp;quot;Default Domain Controllers Policy&amp;quot; nennt.&lt;br /&gt;
 Mit rechter Maustaste draufklicken und bearbeiten. Dann öffnet sich der Gruppenrichtlinienverwaltungs-Editor&lt;br /&gt;
 (Achtung! Auf den ersten Blick sehr leicht mit der Gruppenrichtlinienverwaltung zu verwechseln).&lt;br /&gt;
 Jetzt schaust du unter &amp;quot;Computerconfiguration&amp;gt; Richtlinien&amp;gt; Windows-Einstellungen&amp;gt; Sicherheitseinstellungen&amp;gt; Kontorichtlinien&amp;gt; Kennwortrichtlinien.&lt;br /&gt;
 &lt;br /&gt;
 Dort darf man dann endlich die Kennwortrichtlinie deaktivieren.&lt;br /&gt;
&lt;br /&gt;
=debian=&lt;br /&gt;
*http://chris-blog.net/2014/01/freigaben-auf-einem-samba-4-server-einrichten/&lt;br /&gt;
=ubuntu=&lt;br /&gt;
http://xiep.de/allgemein/ubuntu-server-12-04-mit-samba-4-und-active-directory-pdc/&lt;br /&gt;
=dns=&lt;br /&gt;
https://wiki.archlinux.org/index.php/Samba_4_Active_Directory_Domain_Controller&lt;br /&gt;
=kennwortrichtlinien=&lt;br /&gt;
http://chris-blog.net/2014/01/kennwortrichtlinie-in-samba-4-domain-deaktivieren/&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Samba4&amp;diff=4084</id>
		<title>Samba4</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Samba4&amp;diff=4084"/>
		<updated>2014-02-26T14:30:24Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* Misc */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Installation=&lt;br /&gt;
==Interface anpassen==&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
address 192.168.0.100&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
network 192.168.0.0&lt;br /&gt;
broadcast 192.168.0.255&lt;br /&gt;
gateway 192.168.0.1 &lt;br /&gt;
dns-nameservers 192.168.0.100 8.8.8.8 (we use our server as DNS + google DNS as secondary DNS)&lt;br /&gt;
dns-search mydomain.lan&lt;br /&gt;
### IPs NOCH ANPASSEN! ###&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==hosts anpassen==&lt;br /&gt;
 vi /etc/hosts&lt;br /&gt;
 &lt;br /&gt;
 127.0.0.1       localhost.localdomain   localhost &lt;br /&gt;
 192.168.0.100   DC01.mydomain.lan       DC01&lt;br /&gt;
&lt;br /&gt;
 sudo echo DC01.mydomain.lan &amp;gt; /etc/hostname&lt;br /&gt;
 /etc/init.d/networking restart&lt;br /&gt;
&lt;br /&gt;
==Pakete und libs installieren==&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get update &amp;amp;&amp;amp; apt-get upgrade -y&lt;br /&gt;
 sudo apt-get install git build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev libpam0g-dev ntp -y&lt;br /&gt;
&lt;br /&gt;
You'll be asked for kerberos informations.&lt;br /&gt;
When asked for the default realm etc, enter mydomain.lan and DC01 as the host. &lt;br /&gt;
&lt;br /&gt;
==samba4 downloaden und installieren==&lt;br /&gt;
&lt;br /&gt;
 git clone -b v4-0-stable git://git.samba.org/samba.git samba4&lt;br /&gt;
&lt;br /&gt;
 cd samba4&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-debug --enable-selftest &lt;br /&gt;
&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Links setzen==&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/local/samba/sbin/* /usr/local/sbin&lt;br /&gt;
 ln -s /usr/local/samba/bin/* /usr/local/bin&lt;br /&gt;
&lt;br /&gt;
==Domain anlegen==&lt;br /&gt;
vorher das löschen:&lt;br /&gt;
 rm /usr/local/samba/etc/smb.conf&lt;br /&gt;
&lt;br /&gt;
''' realm, domain und adminpass''' sollten/können angepasst werden!&lt;br /&gt;
 /usr/local/samba/bin/samba-tool domain provision --realm=mydomain.lan --domain=mydomain --adminpass=&amp;quot;your_password&amp;quot; --server-role=dc --dns-backend=SAMBA_INTERNAL&lt;br /&gt;
&lt;br /&gt;
==Start von samba==&lt;br /&gt;
 /usr/local/samba/sbin/samba&lt;br /&gt;
&lt;br /&gt;
==smbversion, share und auth check==&lt;br /&gt;
&lt;br /&gt;
===smbversion===&lt;br /&gt;
Diese sollten übereinstimmen:&lt;br /&gt;
 /usr/local/samba/sbin/samba -V&lt;br /&gt;
 /usr/local/samba/bin/smbclient -V&lt;br /&gt;
&lt;br /&gt;
===shares anzeigen:===&lt;br /&gt;
 /usr/local/samba/bin/smbclient -L localhost -U%&lt;br /&gt;
&lt;br /&gt;
Sollte so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Sharename      Type      Comment      &lt;br /&gt;
---------        ----       -------        &lt;br /&gt;
netlogon         Disk &lt;br /&gt;
sysvol            Disk &lt;br /&gt;
IPC$              IPC         IPC Service (Samba 4.0.5)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Authentication check:===&lt;br /&gt;
Passwort in dem Command ändern!&lt;br /&gt;
 /usr/local/samba/bin/smbclient //localhost/netlogon -UAdministrator%&amp;quot;your_password&amp;quot; -c 'ls'&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Domain=[MYDOMAIN] OS=[Unix] Server=[Samba 4.0.5]  &lt;br /&gt;
.                                   D        0  Fri May 17 21:40:08 2013   &lt;br /&gt;
..                                  D        0  Fri May 17 21:42:36 2013&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DNS setzen==&lt;br /&gt;
===Forwarder eintragen===&lt;br /&gt;
 echo  domain MYDOMAIN.LAN &amp;gt;&amp;gt; /etc/resolv.conf&lt;br /&gt;
 sudo vi  /usr/local/samba/etc/smb.conf&lt;br /&gt;
&lt;br /&gt;
füge hinzu: (Man kann natürlich auch seinen eigenen DNS angeben)&lt;br /&gt;
 dns forwarder = 8.8.8.8 (I use google DNS here again)&lt;br /&gt;
&lt;br /&gt;
===Check===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
host -t SRV _ldap._tcp.mydomain.lan&lt;br /&gt;
_ldap._tcp.mydomain.lan has SRV record 0 100 389 DC01.mydomain.lan.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
host -t SRV _kerberos._udp.mydomain.lan&lt;br /&gt;
_kerberos._udp.mydomain.lan has SRV record 0 100 88 DC01.mydomain.lan&lt;br /&gt;
&lt;br /&gt;
host -t A DC01.mydomain.lan&lt;br /&gt;
DC01.mydomain.lan has address 192.168.0.100.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn '''&amp;quot;host mydomain.lan not found 3(NXDOMAIN)&amp;quot;''' ausgegeben wird, ist Samba nicht richtig gestartet!&lt;br /&gt;
&lt;br /&gt;
==Kerberos==&lt;br /&gt;
ändere '''$(REALM)''' zu '''MYDOMAIN.LAN'''&lt;br /&gt;
 vi /usr/local/samba/share/setup/krb5.conf&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
===ntp===&lt;br /&gt;
 vi /etc/ntp.conf &lt;br /&gt;
&lt;br /&gt;
füge einen von hier hinzu:&lt;br /&gt;
 http://www.pool.ntp.org/zone/de&lt;br /&gt;
&lt;br /&gt;
 service ntp restart&lt;br /&gt;
 ntpdate 0.de.pool.ntp.org&lt;br /&gt;
 ntpq -p&lt;br /&gt;
&lt;br /&gt;
===Adminpasswort läuft nicht ab===&lt;br /&gt;
 /usr/local/samba/bin/samba-tool user setexpiry administrator --noexpiry&lt;br /&gt;
&lt;br /&gt;
==Share hinzufügen==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
mkdir -m 770 /Users&lt;br /&gt;
chmod g+s /Users&lt;br /&gt;
chown root:users /Users&lt;br /&gt;
then edit /usr/local/samba/etc/smb.conf&lt;br /&gt;
&lt;br /&gt;
and add the following lines:&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
[Users]&lt;br /&gt;
directory_mode: parameter = 0700&lt;br /&gt;
read only = no&lt;br /&gt;
path = /Users&lt;br /&gt;
csc policy = documents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
finally set no expiration flag fro your active directory administrator password (or you'll have problems after 42 days)&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===samba upstart script===&lt;br /&gt;
&lt;br /&gt;
 vi /etc/init.d/samba&lt;br /&gt;
&lt;br /&gt;
 description &amp;quot;SMB/CIFS File and Active Directory Server&amp;quot;&lt;br /&gt;
 author      &amp;quot;Jelmer Vernooij &amp;lt;jelmer@ubuntu.com&amp;gt;&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
 start on (local-filesystems and net-device-up)&lt;br /&gt;
 stop on runlevel [!2345]&lt;br /&gt;
 &lt;br /&gt;
 expect fork&lt;br /&gt;
 normal exit 0 &lt;br /&gt;
 &lt;br /&gt;
 pre-start script&lt;br /&gt;
 	[ -r /etc/default/samba4 ] &amp;amp;&amp;amp; . /etc/default/samba4&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/run/samba&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/log/samba&lt;br /&gt;
 end script &lt;br /&gt;
  &lt;br /&gt;
 exec samba -D&lt;br /&gt;
&lt;br /&gt;
=howto=&lt;br /&gt;
https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO&lt;br /&gt;
&lt;br /&gt;
=installation=&lt;br /&gt;
*http://ubuntuforums.org/showthread.php?t=2146198&lt;br /&gt;
&lt;br /&gt;
=dns=&lt;br /&gt;
*zone anlegen&lt;br /&gt;
 samba-tool dns add localhost  simplex.local  otto A 192.168.246.23&lt;br /&gt;
=pam ldap=&lt;br /&gt;
*http://zachbethel.com/2013/04/10/linux-ldap-authentication-with-samba4/&lt;br /&gt;
=ldapbackend=&lt;br /&gt;
*http://www.foteviken.de/?p=1925&lt;br /&gt;
=samba-and-active-directory=&lt;br /&gt;
*http://www.held-im-ruhestand.de/software/samba-and-active-directory&lt;br /&gt;
=domain member=&lt;br /&gt;
*https://wiki.samba.org/index.php/Samba4/Domain_Member&lt;br /&gt;
=group policiy=&lt;br /&gt;
*http://www.alexwyn.com/computer-tips/folder-redirection-samba4-active-directory-domain-controller&lt;br /&gt;
=movies=&lt;br /&gt;
*http://www.samba.org/tridge/Samba4Demo/&lt;br /&gt;
&lt;br /&gt;
=Kennwortrichtlinie deaktivieren=&lt;br /&gt;
 Du gehst in die Gruppenrichtlinienverwaltung.&lt;br /&gt;
 Dann gehst du in das Verzecihnis deiner gewünschten Domäne.&lt;br /&gt;
 Jetzt solltest du einen eintrag sehen, der sich &amp;quot;Default Domain Controllers Policy&amp;quot; nennt.&lt;br /&gt;
 Mit rechter Maustaste draufklicken und bearbeiten. Dann öffnet sich der Gruppenrichtlinienverwaltungs-Editor&lt;br /&gt;
 (Achtung! Auf den ersten Blick sehr leicht mit der Gruppenrichtlinienverwaltung zu verwechseln).&lt;br /&gt;
 Jetzt schaust du unter &amp;quot;Computerconfiguration&amp;gt; Richtlinien&amp;gt; Windows-Einstellungen&amp;gt; Sicherheitseinstellungen&amp;gt; Kontorichtlinien&amp;gt; Kennwortrichtlinien.&lt;br /&gt;
 &lt;br /&gt;
 Dort darf man dann endlich die Kennwortrichtlinie deaktivieren.&lt;br /&gt;
&lt;br /&gt;
=debian=&lt;br /&gt;
*http://chris-blog.net/2014/01/freigaben-auf-einem-samba-4-server-einrichten/&lt;br /&gt;
=ubuntu=&lt;br /&gt;
http://xiep.de/allgemein/ubuntu-server-12-04-mit-samba-4-und-active-directory-pdc/&lt;br /&gt;
=dns=&lt;br /&gt;
https://wiki.archlinux.org/index.php/Samba_4_Active_Directory_Domain_Controller&lt;br /&gt;
=kennwortrichtlinien=&lt;br /&gt;
http://chris-blog.net/2014/01/kennwortrichtlinie-in-samba-4-domain-deaktivieren/&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Samba4&amp;diff=4083</id>
		<title>Samba4</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Samba4&amp;diff=4083"/>
		<updated>2014-02-26T14:30:01Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* Misc */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Installation=&lt;br /&gt;
==Interface anpassen==&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
address 192.168.0.100&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
network 192.168.0.0&lt;br /&gt;
broadcast 192.168.0.255&lt;br /&gt;
gateway 192.168.0.1 &lt;br /&gt;
dns-nameservers 192.168.0.100 8.8.8.8 (we use our server as DNS + google DNS as secondary DNS)&lt;br /&gt;
dns-search mydomain.lan&lt;br /&gt;
### IPs NOCH ANPASSEN! ###&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==hosts anpassen==&lt;br /&gt;
 vi /etc/hosts&lt;br /&gt;
 &lt;br /&gt;
 127.0.0.1       localhost.localdomain   localhost &lt;br /&gt;
 192.168.0.100   DC01.mydomain.lan       DC01&lt;br /&gt;
&lt;br /&gt;
 sudo echo DC01.mydomain.lan &amp;gt; /etc/hostname&lt;br /&gt;
 /etc/init.d/networking restart&lt;br /&gt;
&lt;br /&gt;
==Pakete und libs installieren==&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get update &amp;amp;&amp;amp; apt-get upgrade -y&lt;br /&gt;
 sudo apt-get install git build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev libpam0g-dev ntp -y&lt;br /&gt;
&lt;br /&gt;
You'll be asked for kerberos informations.&lt;br /&gt;
When asked for the default realm etc, enter mydomain.lan and DC01 as the host. &lt;br /&gt;
&lt;br /&gt;
==samba4 downloaden und installieren==&lt;br /&gt;
&lt;br /&gt;
 git clone -b v4-0-stable git://git.samba.org/samba.git samba4&lt;br /&gt;
&lt;br /&gt;
 cd samba4&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-debug --enable-selftest &lt;br /&gt;
&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Links setzen==&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/local/samba/sbin/* /usr/local/sbin&lt;br /&gt;
 ln -s /usr/local/samba/bin/* /usr/local/bin&lt;br /&gt;
&lt;br /&gt;
==Domain anlegen==&lt;br /&gt;
vorher das löschen:&lt;br /&gt;
 rm /usr/local/samba/etc/smb.conf&lt;br /&gt;
&lt;br /&gt;
''' realm, domain und adminpass''' sollten/können angepasst werden!&lt;br /&gt;
 /usr/local/samba/bin/samba-tool domain provision --realm=mydomain.lan --domain=mydomain --adminpass=&amp;quot;your_password&amp;quot; --server-role=dc --dns-backend=SAMBA_INTERNAL&lt;br /&gt;
&lt;br /&gt;
==Start von samba==&lt;br /&gt;
 /usr/local/samba/sbin/samba&lt;br /&gt;
&lt;br /&gt;
==smbversion, share und auth check==&lt;br /&gt;
&lt;br /&gt;
===smbversion===&lt;br /&gt;
Diese sollten übereinstimmen:&lt;br /&gt;
 /usr/local/samba/sbin/samba -V&lt;br /&gt;
 /usr/local/samba/bin/smbclient -V&lt;br /&gt;
&lt;br /&gt;
===shares anzeigen:===&lt;br /&gt;
 /usr/local/samba/bin/smbclient -L localhost -U%&lt;br /&gt;
&lt;br /&gt;
Sollte so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Sharename      Type      Comment      &lt;br /&gt;
---------        ----       -------        &lt;br /&gt;
netlogon         Disk &lt;br /&gt;
sysvol            Disk &lt;br /&gt;
IPC$              IPC         IPC Service (Samba 4.0.5)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Authentication check:===&lt;br /&gt;
Passwort in dem Command ändern!&lt;br /&gt;
 /usr/local/samba/bin/smbclient //localhost/netlogon -UAdministrator%&amp;quot;your_password&amp;quot; -c 'ls'&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Domain=[MYDOMAIN] OS=[Unix] Server=[Samba 4.0.5]  &lt;br /&gt;
.                                   D        0  Fri May 17 21:40:08 2013   &lt;br /&gt;
..                                  D        0  Fri May 17 21:42:36 2013&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DNS setzen==&lt;br /&gt;
===Forwarder eintragen===&lt;br /&gt;
 echo  domain MYDOMAIN.LAN &amp;gt;&amp;gt; /etc/resolv.conf&lt;br /&gt;
 sudo vi  /usr/local/samba/etc/smb.conf&lt;br /&gt;
&lt;br /&gt;
füge hinzu: (Man kann natürlich auch seinen eigenen DNS angeben)&lt;br /&gt;
 dns forwarder = 8.8.8.8 (I use google DNS here again)&lt;br /&gt;
&lt;br /&gt;
===Check===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
host -t SRV _ldap._tcp.mydomain.lan&lt;br /&gt;
_ldap._tcp.mydomain.lan has SRV record 0 100 389 DC01.mydomain.lan.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
host -t SRV _kerberos._udp.mydomain.lan&lt;br /&gt;
_kerberos._udp.mydomain.lan has SRV record 0 100 88 DC01.mydomain.lan&lt;br /&gt;
&lt;br /&gt;
host -t A DC01.mydomain.lan&lt;br /&gt;
DC01.mydomain.lan has address 192.168.0.100.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn '''&amp;quot;host mydomain.lan not found 3(NXDOMAIN)&amp;quot;''' ausgegeben wird, ist Samba nicht richtig gestartet!&lt;br /&gt;
&lt;br /&gt;
==Kerberos==&lt;br /&gt;
ändere '''$(REALM)''' zu '''MYDOMAIN.LAN'''&lt;br /&gt;
 vi /usr/local/samba/share/setup/krb5.conf&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
===ntp===&lt;br /&gt;
 vi /etc/ntp.conf &lt;br /&gt;
&lt;br /&gt;
füge einen von hier hinzu:&lt;br /&gt;
 http://www.pool.ntp.org/zone/de&lt;br /&gt;
&lt;br /&gt;
 service ntp restart&lt;br /&gt;
 ntpdate 0.de.pool.ntp.org&lt;br /&gt;
 ntpq -p&lt;br /&gt;
&lt;br /&gt;
==Share hinzufügen==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
mkdir -m 770 /Users&lt;br /&gt;
chmod g+s /Users&lt;br /&gt;
chown root:users /Users&lt;br /&gt;
then edit /usr/local/samba/etc/smb.conf&lt;br /&gt;
&lt;br /&gt;
and add the following lines:&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
[Users]&lt;br /&gt;
directory_mode: parameter = 0700&lt;br /&gt;
read only = no&lt;br /&gt;
path = /Users&lt;br /&gt;
csc policy = documents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
finally set no expiration flag fro your active directory administrator password (or you'll have problems after 42 days)&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===samba upstart script===&lt;br /&gt;
&lt;br /&gt;
 vi /etc/init.d/samba&lt;br /&gt;
&lt;br /&gt;
 description &amp;quot;SMB/CIFS File and Active Directory Server&amp;quot;&lt;br /&gt;
 author      &amp;quot;Jelmer Vernooij &amp;lt;jelmer@ubuntu.com&amp;gt;&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
 start on (local-filesystems and net-device-up)&lt;br /&gt;
 stop on runlevel [!2345]&lt;br /&gt;
 &lt;br /&gt;
 expect fork&lt;br /&gt;
 normal exit 0 &lt;br /&gt;
 &lt;br /&gt;
 pre-start script&lt;br /&gt;
 	[ -r /etc/default/samba4 ] &amp;amp;&amp;amp; . /etc/default/samba4&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/run/samba&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/log/samba&lt;br /&gt;
 end script &lt;br /&gt;
  &lt;br /&gt;
 exec samba -D&lt;br /&gt;
&lt;br /&gt;
=howto=&lt;br /&gt;
https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO&lt;br /&gt;
&lt;br /&gt;
=installation=&lt;br /&gt;
*http://ubuntuforums.org/showthread.php?t=2146198&lt;br /&gt;
&lt;br /&gt;
=dns=&lt;br /&gt;
*zone anlegen&lt;br /&gt;
 samba-tool dns add localhost  simplex.local  otto A 192.168.246.23&lt;br /&gt;
=pam ldap=&lt;br /&gt;
*http://zachbethel.com/2013/04/10/linux-ldap-authentication-with-samba4/&lt;br /&gt;
=ldapbackend=&lt;br /&gt;
*http://www.foteviken.de/?p=1925&lt;br /&gt;
=samba-and-active-directory=&lt;br /&gt;
*http://www.held-im-ruhestand.de/software/samba-and-active-directory&lt;br /&gt;
=domain member=&lt;br /&gt;
*https://wiki.samba.org/index.php/Samba4/Domain_Member&lt;br /&gt;
=group policiy=&lt;br /&gt;
*http://www.alexwyn.com/computer-tips/folder-redirection-samba4-active-directory-domain-controller&lt;br /&gt;
=movies=&lt;br /&gt;
*http://www.samba.org/tridge/Samba4Demo/&lt;br /&gt;
&lt;br /&gt;
=Kennwortrichtlinie deaktivieren=&lt;br /&gt;
 Du gehst in die Gruppenrichtlinienverwaltung.&lt;br /&gt;
 Dann gehst du in das Verzecihnis deiner gewünschten Domäne.&lt;br /&gt;
 Jetzt solltest du einen eintrag sehen, der sich &amp;quot;Default Domain Controllers Policy&amp;quot; nennt.&lt;br /&gt;
 Mit rechter Maustaste draufklicken und bearbeiten. Dann öffnet sich der Gruppenrichtlinienverwaltungs-Editor&lt;br /&gt;
 (Achtung! Auf den ersten Blick sehr leicht mit der Gruppenrichtlinienverwaltung zu verwechseln).&lt;br /&gt;
 Jetzt schaust du unter &amp;quot;Computerconfiguration&amp;gt; Richtlinien&amp;gt; Windows-Einstellungen&amp;gt; Sicherheitseinstellungen&amp;gt; Kontorichtlinien&amp;gt; Kennwortrichtlinien.&lt;br /&gt;
 &lt;br /&gt;
 Dort darf man dann endlich die Kennwortrichtlinie deaktivieren.&lt;br /&gt;
&lt;br /&gt;
=debian=&lt;br /&gt;
*http://chris-blog.net/2014/01/freigaben-auf-einem-samba-4-server-einrichten/&lt;br /&gt;
=ubuntu=&lt;br /&gt;
http://xiep.de/allgemein/ubuntu-server-12-04-mit-samba-4-und-active-directory-pdc/&lt;br /&gt;
=dns=&lt;br /&gt;
https://wiki.archlinux.org/index.php/Samba_4_Active_Directory_Domain_Controller&lt;br /&gt;
=kennwortrichtlinien=&lt;br /&gt;
http://chris-blog.net/2014/01/kennwortrichtlinie-in-samba-4-domain-deaktivieren/&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Samba4&amp;diff=4082</id>
		<title>Samba4</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Samba4&amp;diff=4082"/>
		<updated>2014-02-26T14:29:06Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* Kerberos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Installation=&lt;br /&gt;
==Interface anpassen==&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
address 192.168.0.100&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
network 192.168.0.0&lt;br /&gt;
broadcast 192.168.0.255&lt;br /&gt;
gateway 192.168.0.1 &lt;br /&gt;
dns-nameservers 192.168.0.100 8.8.8.8 (we use our server as DNS + google DNS as secondary DNS)&lt;br /&gt;
dns-search mydomain.lan&lt;br /&gt;
### IPs NOCH ANPASSEN! ###&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==hosts anpassen==&lt;br /&gt;
 vi /etc/hosts&lt;br /&gt;
 &lt;br /&gt;
 127.0.0.1       localhost.localdomain   localhost &lt;br /&gt;
 192.168.0.100   DC01.mydomain.lan       DC01&lt;br /&gt;
&lt;br /&gt;
 sudo echo DC01.mydomain.lan &amp;gt; /etc/hostname&lt;br /&gt;
 /etc/init.d/networking restart&lt;br /&gt;
&lt;br /&gt;
==Pakete und libs installieren==&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get update &amp;amp;&amp;amp; apt-get upgrade -y&lt;br /&gt;
 sudo apt-get install git build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev libpam0g-dev ntp -y&lt;br /&gt;
&lt;br /&gt;
You'll be asked for kerberos informations.&lt;br /&gt;
When asked for the default realm etc, enter mydomain.lan and DC01 as the host. &lt;br /&gt;
&lt;br /&gt;
==samba4 downloaden und installieren==&lt;br /&gt;
&lt;br /&gt;
 git clone -b v4-0-stable git://git.samba.org/samba.git samba4&lt;br /&gt;
&lt;br /&gt;
 cd samba4&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-debug --enable-selftest &lt;br /&gt;
&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Links setzen==&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/local/samba/sbin/* /usr/local/sbin&lt;br /&gt;
 ln -s /usr/local/samba/bin/* /usr/local/bin&lt;br /&gt;
&lt;br /&gt;
==Domain anlegen==&lt;br /&gt;
vorher das löschen:&lt;br /&gt;
 rm /usr/local/samba/etc/smb.conf&lt;br /&gt;
&lt;br /&gt;
''' realm, domain und adminpass''' sollten/können angepasst werden!&lt;br /&gt;
 /usr/local/samba/bin/samba-tool domain provision --realm=mydomain.lan --domain=mydomain --adminpass=&amp;quot;your_password&amp;quot; --server-role=dc --dns-backend=SAMBA_INTERNAL&lt;br /&gt;
&lt;br /&gt;
==Start von samba==&lt;br /&gt;
 /usr/local/samba/sbin/samba&lt;br /&gt;
&lt;br /&gt;
==smbversion, share und auth check==&lt;br /&gt;
&lt;br /&gt;
===smbversion===&lt;br /&gt;
Diese sollten übereinstimmen:&lt;br /&gt;
 /usr/local/samba/sbin/samba -V&lt;br /&gt;
 /usr/local/samba/bin/smbclient -V&lt;br /&gt;
&lt;br /&gt;
===shares anzeigen:===&lt;br /&gt;
 /usr/local/samba/bin/smbclient -L localhost -U%&lt;br /&gt;
&lt;br /&gt;
Sollte so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Sharename      Type      Comment      &lt;br /&gt;
---------        ----       -------        &lt;br /&gt;
netlogon         Disk &lt;br /&gt;
sysvol            Disk &lt;br /&gt;
IPC$              IPC         IPC Service (Samba 4.0.5)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Authentication check:===&lt;br /&gt;
Passwort in dem Command ändern!&lt;br /&gt;
 /usr/local/samba/bin/smbclient //localhost/netlogon -UAdministrator%&amp;quot;your_password&amp;quot; -c 'ls'&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Domain=[MYDOMAIN] OS=[Unix] Server=[Samba 4.0.5]  &lt;br /&gt;
.                                   D        0  Fri May 17 21:40:08 2013   &lt;br /&gt;
..                                  D        0  Fri May 17 21:42:36 2013&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DNS setzen==&lt;br /&gt;
===Forwarder eintragen===&lt;br /&gt;
 echo  domain MYDOMAIN.LAN &amp;gt;&amp;gt; /etc/resolv.conf&lt;br /&gt;
 sudo vi  /usr/local/samba/etc/smb.conf&lt;br /&gt;
&lt;br /&gt;
füge hinzu: (Man kann natürlich auch seinen eigenen DNS angeben)&lt;br /&gt;
 dns forwarder = 8.8.8.8 (I use google DNS here again)&lt;br /&gt;
&lt;br /&gt;
===Check===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
host -t SRV _ldap._tcp.mydomain.lan&lt;br /&gt;
_ldap._tcp.mydomain.lan has SRV record 0 100 389 DC01.mydomain.lan.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
host -t SRV _kerberos._udp.mydomain.lan&lt;br /&gt;
_kerberos._udp.mydomain.lan has SRV record 0 100 88 DC01.mydomain.lan&lt;br /&gt;
&lt;br /&gt;
host -t A DC01.mydomain.lan&lt;br /&gt;
DC01.mydomain.lan has address 192.168.0.100.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn '''&amp;quot;host mydomain.lan not found 3(NXDOMAIN)&amp;quot;''' ausgegeben wird, ist Samba nicht richtig gestartet!&lt;br /&gt;
&lt;br /&gt;
==Kerberos==&lt;br /&gt;
ändere '''$(REALM)''' zu '''MYDOMAIN.LAN'''&lt;br /&gt;
 vi /usr/local/samba/share/setup/krb5.conf&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
===ntp===&lt;br /&gt;
 vi /etc/ntp.conf &lt;br /&gt;
&lt;br /&gt;
füge einen von hier hinzu:&lt;br /&gt;
 http://www.pool.ntp.org/zone/de&lt;br /&gt;
&lt;br /&gt;
 service ntp restart&lt;br /&gt;
 ntpdate 0.de.pool.ntp.org&lt;br /&gt;
 ntpq -p&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===samba upstart script===&lt;br /&gt;
&lt;br /&gt;
 vi /etc/init.d/samba&lt;br /&gt;
&lt;br /&gt;
 description &amp;quot;SMB/CIFS File and Active Directory Server&amp;quot;&lt;br /&gt;
 author      &amp;quot;Jelmer Vernooij &amp;lt;jelmer@ubuntu.com&amp;gt;&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
 start on (local-filesystems and net-device-up)&lt;br /&gt;
 stop on runlevel [!2345]&lt;br /&gt;
 &lt;br /&gt;
 expect fork&lt;br /&gt;
 normal exit 0 &lt;br /&gt;
 &lt;br /&gt;
 pre-start script&lt;br /&gt;
 	[ -r /etc/default/samba4 ] &amp;amp;&amp;amp; . /etc/default/samba4&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/run/samba&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/log/samba&lt;br /&gt;
 end script &lt;br /&gt;
  &lt;br /&gt;
 exec samba -D&lt;br /&gt;
&lt;br /&gt;
=howto=&lt;br /&gt;
https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO&lt;br /&gt;
&lt;br /&gt;
=installation=&lt;br /&gt;
*http://ubuntuforums.org/showthread.php?t=2146198&lt;br /&gt;
&lt;br /&gt;
=dns=&lt;br /&gt;
*zone anlegen&lt;br /&gt;
 samba-tool dns add localhost  simplex.local  otto A 192.168.246.23&lt;br /&gt;
=pam ldap=&lt;br /&gt;
*http://zachbethel.com/2013/04/10/linux-ldap-authentication-with-samba4/&lt;br /&gt;
=ldapbackend=&lt;br /&gt;
*http://www.foteviken.de/?p=1925&lt;br /&gt;
=samba-and-active-directory=&lt;br /&gt;
*http://www.held-im-ruhestand.de/software/samba-and-active-directory&lt;br /&gt;
=domain member=&lt;br /&gt;
*https://wiki.samba.org/index.php/Samba4/Domain_Member&lt;br /&gt;
=group policiy=&lt;br /&gt;
*http://www.alexwyn.com/computer-tips/folder-redirection-samba4-active-directory-domain-controller&lt;br /&gt;
=movies=&lt;br /&gt;
*http://www.samba.org/tridge/Samba4Demo/&lt;br /&gt;
&lt;br /&gt;
=Kennwortrichtlinie deaktivieren=&lt;br /&gt;
 Du gehst in die Gruppenrichtlinienverwaltung.&lt;br /&gt;
 Dann gehst du in das Verzecihnis deiner gewünschten Domäne.&lt;br /&gt;
 Jetzt solltest du einen eintrag sehen, der sich &amp;quot;Default Domain Controllers Policy&amp;quot; nennt.&lt;br /&gt;
 Mit rechter Maustaste draufklicken und bearbeiten. Dann öffnet sich der Gruppenrichtlinienverwaltungs-Editor&lt;br /&gt;
 (Achtung! Auf den ersten Blick sehr leicht mit der Gruppenrichtlinienverwaltung zu verwechseln).&lt;br /&gt;
 Jetzt schaust du unter &amp;quot;Computerconfiguration&amp;gt; Richtlinien&amp;gt; Windows-Einstellungen&amp;gt; Sicherheitseinstellungen&amp;gt; Kontorichtlinien&amp;gt; Kennwortrichtlinien.&lt;br /&gt;
 &lt;br /&gt;
 Dort darf man dann endlich die Kennwortrichtlinie deaktivieren.&lt;br /&gt;
&lt;br /&gt;
=debian=&lt;br /&gt;
*http://chris-blog.net/2014/01/freigaben-auf-einem-samba-4-server-einrichten/&lt;br /&gt;
=ubuntu=&lt;br /&gt;
http://xiep.de/allgemein/ubuntu-server-12-04-mit-samba-4-und-active-directory-pdc/&lt;br /&gt;
=dns=&lt;br /&gt;
https://wiki.archlinux.org/index.php/Samba_4_Active_Directory_Domain_Controller&lt;br /&gt;
=kennwortrichtlinien=&lt;br /&gt;
http://chris-blog.net/2014/01/kennwortrichtlinie-in-samba-4-domain-deaktivieren/&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Samba4&amp;diff=4081</id>
		<title>Samba4</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Samba4&amp;diff=4081"/>
		<updated>2014-02-26T14:26:37Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* DNS setzen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Installation=&lt;br /&gt;
==Interface anpassen==&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
address 192.168.0.100&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
network 192.168.0.0&lt;br /&gt;
broadcast 192.168.0.255&lt;br /&gt;
gateway 192.168.0.1 &lt;br /&gt;
dns-nameservers 192.168.0.100 8.8.8.8 (we use our server as DNS + google DNS as secondary DNS)&lt;br /&gt;
dns-search mydomain.lan&lt;br /&gt;
### IPs NOCH ANPASSEN! ###&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==hosts anpassen==&lt;br /&gt;
 vi /etc/hosts&lt;br /&gt;
 &lt;br /&gt;
 127.0.0.1       localhost.localdomain   localhost &lt;br /&gt;
 192.168.0.100   DC01.mydomain.lan       DC01&lt;br /&gt;
&lt;br /&gt;
 sudo echo DC01.mydomain.lan &amp;gt; /etc/hostname&lt;br /&gt;
 /etc/init.d/networking restart&lt;br /&gt;
&lt;br /&gt;
==Pakete und libs installieren==&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get update &amp;amp;&amp;amp; apt-get upgrade -y&lt;br /&gt;
 sudo apt-get install git build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev libpam0g-dev ntp -y&lt;br /&gt;
&lt;br /&gt;
You'll be asked for kerberos informations.&lt;br /&gt;
When asked for the default realm etc, enter mydomain.lan and DC01 as the host. &lt;br /&gt;
&lt;br /&gt;
==samba4 downloaden und installieren==&lt;br /&gt;
&lt;br /&gt;
 git clone -b v4-0-stable git://git.samba.org/samba.git samba4&lt;br /&gt;
&lt;br /&gt;
 cd samba4&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-debug --enable-selftest &lt;br /&gt;
&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Links setzen==&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/local/samba/sbin/* /usr/local/sbin&lt;br /&gt;
 ln -s /usr/local/samba/bin/* /usr/local/bin&lt;br /&gt;
&lt;br /&gt;
==Domain anlegen==&lt;br /&gt;
vorher das löschen:&lt;br /&gt;
 rm /usr/local/samba/etc/smb.conf&lt;br /&gt;
&lt;br /&gt;
''' realm, domain und adminpass''' sollten/können angepasst werden!&lt;br /&gt;
 /usr/local/samba/bin/samba-tool domain provision --realm=mydomain.lan --domain=mydomain --adminpass=&amp;quot;your_password&amp;quot; --server-role=dc --dns-backend=SAMBA_INTERNAL&lt;br /&gt;
&lt;br /&gt;
==Start von samba==&lt;br /&gt;
 /usr/local/samba/sbin/samba&lt;br /&gt;
&lt;br /&gt;
==smbversion, share und auth check==&lt;br /&gt;
&lt;br /&gt;
===smbversion===&lt;br /&gt;
Diese sollten übereinstimmen:&lt;br /&gt;
 /usr/local/samba/sbin/samba -V&lt;br /&gt;
 /usr/local/samba/bin/smbclient -V&lt;br /&gt;
&lt;br /&gt;
===shares anzeigen:===&lt;br /&gt;
 /usr/local/samba/bin/smbclient -L localhost -U%&lt;br /&gt;
&lt;br /&gt;
Sollte so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Sharename      Type      Comment      &lt;br /&gt;
---------        ----       -------        &lt;br /&gt;
netlogon         Disk &lt;br /&gt;
sysvol            Disk &lt;br /&gt;
IPC$              IPC         IPC Service (Samba 4.0.5)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Authentication check:===&lt;br /&gt;
Passwort in dem Command ändern!&lt;br /&gt;
 /usr/local/samba/bin/smbclient //localhost/netlogon -UAdministrator%&amp;quot;your_password&amp;quot; -c 'ls'&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Domain=[MYDOMAIN] OS=[Unix] Server=[Samba 4.0.5]  &lt;br /&gt;
.                                   D        0  Fri May 17 21:40:08 2013   &lt;br /&gt;
..                                  D        0  Fri May 17 21:42:36 2013&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DNS setzen==&lt;br /&gt;
===Forwarder eintragen===&lt;br /&gt;
 echo  domain MYDOMAIN.LAN &amp;gt;&amp;gt; /etc/resolv.conf&lt;br /&gt;
 sudo vi  /usr/local/samba/etc/smb.conf&lt;br /&gt;
&lt;br /&gt;
füge hinzu: (Man kann natürlich auch seinen eigenen DNS angeben)&lt;br /&gt;
 dns forwarder = 8.8.8.8 (I use google DNS here again)&lt;br /&gt;
&lt;br /&gt;
===Check===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
host -t SRV _ldap._tcp.mydomain.lan&lt;br /&gt;
_ldap._tcp.mydomain.lan has SRV record 0 100 389 DC01.mydomain.lan.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
host -t SRV _kerberos._udp.mydomain.lan&lt;br /&gt;
_kerberos._udp.mydomain.lan has SRV record 0 100 88 DC01.mydomain.lan&lt;br /&gt;
&lt;br /&gt;
host -t A DC01.mydomain.lan&lt;br /&gt;
DC01.mydomain.lan has address 192.168.0.100.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn '''&amp;quot;host mydomain.lan not found 3(NXDOMAIN)&amp;quot;''' ausgegeben wird, ist Samba nicht richtig gestartet!&lt;br /&gt;
&lt;br /&gt;
==Kerberos==&lt;br /&gt;
 vi /usr/local/samba/share/setup/krb5.conf&lt;br /&gt;
 ändere $(REALM) by MYDOMAIN.LAN&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
===ntp===&lt;br /&gt;
 vi /etc/ntp.conf &lt;br /&gt;
&lt;br /&gt;
füge einen von hier hinzu:&lt;br /&gt;
 http://www.pool.ntp.org/zone/de&lt;br /&gt;
&lt;br /&gt;
 service ntp restart&lt;br /&gt;
 ntpdate 0.de.pool.ntp.org&lt;br /&gt;
 ntpq -p&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===samba upstart script===&lt;br /&gt;
&lt;br /&gt;
 vi /etc/init.d/samba&lt;br /&gt;
&lt;br /&gt;
 description &amp;quot;SMB/CIFS File and Active Directory Server&amp;quot;&lt;br /&gt;
 author      &amp;quot;Jelmer Vernooij &amp;lt;jelmer@ubuntu.com&amp;gt;&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
 start on (local-filesystems and net-device-up)&lt;br /&gt;
 stop on runlevel [!2345]&lt;br /&gt;
 &lt;br /&gt;
 expect fork&lt;br /&gt;
 normal exit 0 &lt;br /&gt;
 &lt;br /&gt;
 pre-start script&lt;br /&gt;
 	[ -r /etc/default/samba4 ] &amp;amp;&amp;amp; . /etc/default/samba4&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/run/samba&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/log/samba&lt;br /&gt;
 end script &lt;br /&gt;
  &lt;br /&gt;
 exec samba -D&lt;br /&gt;
&lt;br /&gt;
=howto=&lt;br /&gt;
https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO&lt;br /&gt;
&lt;br /&gt;
=installation=&lt;br /&gt;
*http://ubuntuforums.org/showthread.php?t=2146198&lt;br /&gt;
&lt;br /&gt;
=dns=&lt;br /&gt;
*zone anlegen&lt;br /&gt;
 samba-tool dns add localhost  simplex.local  otto A 192.168.246.23&lt;br /&gt;
=pam ldap=&lt;br /&gt;
*http://zachbethel.com/2013/04/10/linux-ldap-authentication-with-samba4/&lt;br /&gt;
=ldapbackend=&lt;br /&gt;
*http://www.foteviken.de/?p=1925&lt;br /&gt;
=samba-and-active-directory=&lt;br /&gt;
*http://www.held-im-ruhestand.de/software/samba-and-active-directory&lt;br /&gt;
=domain member=&lt;br /&gt;
*https://wiki.samba.org/index.php/Samba4/Domain_Member&lt;br /&gt;
=group policiy=&lt;br /&gt;
*http://www.alexwyn.com/computer-tips/folder-redirection-samba4-active-directory-domain-controller&lt;br /&gt;
=movies=&lt;br /&gt;
*http://www.samba.org/tridge/Samba4Demo/&lt;br /&gt;
&lt;br /&gt;
=Kennwortrichtlinie deaktivieren=&lt;br /&gt;
 Du gehst in die Gruppenrichtlinienverwaltung.&lt;br /&gt;
 Dann gehst du in das Verzecihnis deiner gewünschten Domäne.&lt;br /&gt;
 Jetzt solltest du einen eintrag sehen, der sich &amp;quot;Default Domain Controllers Policy&amp;quot; nennt.&lt;br /&gt;
 Mit rechter Maustaste draufklicken und bearbeiten. Dann öffnet sich der Gruppenrichtlinienverwaltungs-Editor&lt;br /&gt;
 (Achtung! Auf den ersten Blick sehr leicht mit der Gruppenrichtlinienverwaltung zu verwechseln).&lt;br /&gt;
 Jetzt schaust du unter &amp;quot;Computerconfiguration&amp;gt; Richtlinien&amp;gt; Windows-Einstellungen&amp;gt; Sicherheitseinstellungen&amp;gt; Kontorichtlinien&amp;gt; Kennwortrichtlinien.&lt;br /&gt;
 &lt;br /&gt;
 Dort darf man dann endlich die Kennwortrichtlinie deaktivieren.&lt;br /&gt;
&lt;br /&gt;
=debian=&lt;br /&gt;
*http://chris-blog.net/2014/01/freigaben-auf-einem-samba-4-server-einrichten/&lt;br /&gt;
=ubuntu=&lt;br /&gt;
http://xiep.de/allgemein/ubuntu-server-12-04-mit-samba-4-und-active-directory-pdc/&lt;br /&gt;
=dns=&lt;br /&gt;
https://wiki.archlinux.org/index.php/Samba_4_Active_Directory_Domain_Controller&lt;br /&gt;
=kennwortrichtlinien=&lt;br /&gt;
http://chris-blog.net/2014/01/kennwortrichtlinie-in-samba-4-domain-deaktivieren/&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Samba4&amp;diff=4080</id>
		<title>Samba4</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Samba4&amp;diff=4080"/>
		<updated>2014-02-26T14:20:32Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* DNS setzen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Installation=&lt;br /&gt;
==Interface anpassen==&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
address 192.168.0.100&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
network 192.168.0.0&lt;br /&gt;
broadcast 192.168.0.255&lt;br /&gt;
gateway 192.168.0.1 &lt;br /&gt;
dns-nameservers 192.168.0.100 8.8.8.8 (we use our server as DNS + google DNS as secondary DNS)&lt;br /&gt;
dns-search mydomain.lan&lt;br /&gt;
### IPs NOCH ANPASSEN! ###&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==hosts anpassen==&lt;br /&gt;
 vi /etc/hosts&lt;br /&gt;
 &lt;br /&gt;
 127.0.0.1       localhost.localdomain   localhost &lt;br /&gt;
 192.168.0.100   DC01.mydomain.lan       DC01&lt;br /&gt;
&lt;br /&gt;
 sudo echo DC01.mydomain.lan &amp;gt; /etc/hostname&lt;br /&gt;
 /etc/init.d/networking restart&lt;br /&gt;
&lt;br /&gt;
==Pakete und libs installieren==&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get update &amp;amp;&amp;amp; apt-get upgrade -y&lt;br /&gt;
 sudo apt-get install git build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev libpam0g-dev ntp -y&lt;br /&gt;
&lt;br /&gt;
You'll be asked for kerberos informations.&lt;br /&gt;
When asked for the default realm etc, enter mydomain.lan and DC01 as the host. &lt;br /&gt;
&lt;br /&gt;
==samba4 downloaden und installieren==&lt;br /&gt;
&lt;br /&gt;
 git clone -b v4-0-stable git://git.samba.org/samba.git samba4&lt;br /&gt;
&lt;br /&gt;
 cd samba4&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-debug --enable-selftest &lt;br /&gt;
&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Links setzen==&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/local/samba/sbin/* /usr/local/sbin&lt;br /&gt;
 ln -s /usr/local/samba/bin/* /usr/local/bin&lt;br /&gt;
&lt;br /&gt;
==Domain anlegen==&lt;br /&gt;
vorher das löschen:&lt;br /&gt;
 rm /usr/local/samba/etc/smb.conf&lt;br /&gt;
&lt;br /&gt;
''' realm, domain und adminpass''' sollten/können angepasst werden!&lt;br /&gt;
 /usr/local/samba/bin/samba-tool domain provision --realm=mydomain.lan --domain=mydomain --adminpass=&amp;quot;your_password&amp;quot; --server-role=dc --dns-backend=SAMBA_INTERNAL&lt;br /&gt;
&lt;br /&gt;
==Start von samba==&lt;br /&gt;
 /usr/local/samba/sbin/samba&lt;br /&gt;
&lt;br /&gt;
==smbversion, share und auth check==&lt;br /&gt;
&lt;br /&gt;
===smbversion===&lt;br /&gt;
Diese sollten übereinstimmen:&lt;br /&gt;
 /usr/local/samba/sbin/samba -V&lt;br /&gt;
 /usr/local/samba/bin/smbclient -V&lt;br /&gt;
&lt;br /&gt;
===shares anzeigen:===&lt;br /&gt;
 /usr/local/samba/bin/smbclient -L localhost -U%&lt;br /&gt;
&lt;br /&gt;
Sollte so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Sharename      Type      Comment      &lt;br /&gt;
---------        ----       -------        &lt;br /&gt;
netlogon         Disk &lt;br /&gt;
sysvol            Disk &lt;br /&gt;
IPC$              IPC         IPC Service (Samba 4.0.5)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Authentication check:===&lt;br /&gt;
Passwort in dem Command ändern!&lt;br /&gt;
 /usr/local/samba/bin/smbclient //localhost/netlogon -UAdministrator%&amp;quot;your_password&amp;quot; -c 'ls'&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Domain=[MYDOMAIN] OS=[Unix] Server=[Samba 4.0.5]  &lt;br /&gt;
.                                   D        0  Fri May 17 21:40:08 2013   &lt;br /&gt;
..                                  D        0  Fri May 17 21:42:36 2013&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DNS setzen==&lt;br /&gt;
 echo  domain MYDOMAIN.LAN &amp;gt;&amp;gt; /etc/resolv.conf&lt;br /&gt;
 sudo vi  /usr/local/samba/etc/smb.conf&lt;br /&gt;
&lt;br /&gt;
füge hinzu: (Man kann natürlich auch seinen eigenen DNS angeben)&lt;br /&gt;
 dns forwarder = 8.8.8.8 (I use google DNS here again)&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===samba upstart script===&lt;br /&gt;
&lt;br /&gt;
 vi /etc/init.d/samba&lt;br /&gt;
&lt;br /&gt;
 description &amp;quot;SMB/CIFS File and Active Directory Server&amp;quot;&lt;br /&gt;
 author      &amp;quot;Jelmer Vernooij &amp;lt;jelmer@ubuntu.com&amp;gt;&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
 start on (local-filesystems and net-device-up)&lt;br /&gt;
 stop on runlevel [!2345]&lt;br /&gt;
 &lt;br /&gt;
 expect fork&lt;br /&gt;
 normal exit 0 &lt;br /&gt;
 &lt;br /&gt;
 pre-start script&lt;br /&gt;
 	[ -r /etc/default/samba4 ] &amp;amp;&amp;amp; . /etc/default/samba4&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/run/samba&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/log/samba&lt;br /&gt;
 end script &lt;br /&gt;
  &lt;br /&gt;
 exec samba -D&lt;br /&gt;
&lt;br /&gt;
=howto=&lt;br /&gt;
https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO&lt;br /&gt;
&lt;br /&gt;
=installation=&lt;br /&gt;
*http://ubuntuforums.org/showthread.php?t=2146198&lt;br /&gt;
&lt;br /&gt;
=dns=&lt;br /&gt;
*zone anlegen&lt;br /&gt;
 samba-tool dns add localhost  simplex.local  otto A 192.168.246.23&lt;br /&gt;
=pam ldap=&lt;br /&gt;
*http://zachbethel.com/2013/04/10/linux-ldap-authentication-with-samba4/&lt;br /&gt;
=ldapbackend=&lt;br /&gt;
*http://www.foteviken.de/?p=1925&lt;br /&gt;
=samba-and-active-directory=&lt;br /&gt;
*http://www.held-im-ruhestand.de/software/samba-and-active-directory&lt;br /&gt;
=domain member=&lt;br /&gt;
*https://wiki.samba.org/index.php/Samba4/Domain_Member&lt;br /&gt;
=group policiy=&lt;br /&gt;
*http://www.alexwyn.com/computer-tips/folder-redirection-samba4-active-directory-domain-controller&lt;br /&gt;
=movies=&lt;br /&gt;
*http://www.samba.org/tridge/Samba4Demo/&lt;br /&gt;
&lt;br /&gt;
=Kennwortrichtlinie deaktivieren=&lt;br /&gt;
 Du gehst in die Gruppenrichtlinienverwaltung.&lt;br /&gt;
 Dann gehst du in das Verzecihnis deiner gewünschten Domäne.&lt;br /&gt;
 Jetzt solltest du einen eintrag sehen, der sich &amp;quot;Default Domain Controllers Policy&amp;quot; nennt.&lt;br /&gt;
 Mit rechter Maustaste draufklicken und bearbeiten. Dann öffnet sich der Gruppenrichtlinienverwaltungs-Editor&lt;br /&gt;
 (Achtung! Auf den ersten Blick sehr leicht mit der Gruppenrichtlinienverwaltung zu verwechseln).&lt;br /&gt;
 Jetzt schaust du unter &amp;quot;Computerconfiguration&amp;gt; Richtlinien&amp;gt; Windows-Einstellungen&amp;gt; Sicherheitseinstellungen&amp;gt; Kontorichtlinien&amp;gt; Kennwortrichtlinien.&lt;br /&gt;
 &lt;br /&gt;
 Dort darf man dann endlich die Kennwortrichtlinie deaktivieren.&lt;br /&gt;
&lt;br /&gt;
=debian=&lt;br /&gt;
*http://chris-blog.net/2014/01/freigaben-auf-einem-samba-4-server-einrichten/&lt;br /&gt;
=ubuntu=&lt;br /&gt;
http://xiep.de/allgemein/ubuntu-server-12-04-mit-samba-4-und-active-directory-pdc/&lt;br /&gt;
=dns=&lt;br /&gt;
https://wiki.archlinux.org/index.php/Samba_4_Active_Directory_Domain_Controller&lt;br /&gt;
=kennwortrichtlinien=&lt;br /&gt;
http://chris-blog.net/2014/01/kennwortrichtlinie-in-samba-4-domain-deaktivieren/&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Samba4&amp;diff=4079</id>
		<title>Samba4</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Samba4&amp;diff=4079"/>
		<updated>2014-02-26T14:19:24Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* Domain anlegen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Installation=&lt;br /&gt;
==Interface anpassen==&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
address 192.168.0.100&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
network 192.168.0.0&lt;br /&gt;
broadcast 192.168.0.255&lt;br /&gt;
gateway 192.168.0.1 &lt;br /&gt;
dns-nameservers 192.168.0.100 8.8.8.8 (we use our server as DNS + google DNS as secondary DNS)&lt;br /&gt;
dns-search mydomain.lan&lt;br /&gt;
### IPs NOCH ANPASSEN! ###&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==hosts anpassen==&lt;br /&gt;
 vi /etc/hosts&lt;br /&gt;
 &lt;br /&gt;
 127.0.0.1       localhost.localdomain   localhost &lt;br /&gt;
 192.168.0.100   DC01.mydomain.lan       DC01&lt;br /&gt;
&lt;br /&gt;
 sudo echo DC01.mydomain.lan &amp;gt; /etc/hostname&lt;br /&gt;
 /etc/init.d/networking restart&lt;br /&gt;
&lt;br /&gt;
==Pakete und libs installieren==&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get update &amp;amp;&amp;amp; apt-get upgrade -y&lt;br /&gt;
 sudo apt-get install git build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev libpam0g-dev ntp -y&lt;br /&gt;
&lt;br /&gt;
You'll be asked for kerberos informations.&lt;br /&gt;
When asked for the default realm etc, enter mydomain.lan and DC01 as the host. &lt;br /&gt;
&lt;br /&gt;
==samba4 downloaden und installieren==&lt;br /&gt;
&lt;br /&gt;
 git clone -b v4-0-stable git://git.samba.org/samba.git samba4&lt;br /&gt;
&lt;br /&gt;
 cd samba4&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-debug --enable-selftest &lt;br /&gt;
&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Links setzen==&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/local/samba/sbin/* /usr/local/sbin&lt;br /&gt;
 ln -s /usr/local/samba/bin/* /usr/local/bin&lt;br /&gt;
&lt;br /&gt;
==Domain anlegen==&lt;br /&gt;
vorher das löschen:&lt;br /&gt;
 rm /usr/local/samba/etc/smb.conf&lt;br /&gt;
&lt;br /&gt;
''' realm, domain und adminpass''' sollten/können angepasst werden!&lt;br /&gt;
 /usr/local/samba/bin/samba-tool domain provision --realm=mydomain.lan --domain=mydomain --adminpass=&amp;quot;your_password&amp;quot; --server-role=dc --dns-backend=SAMBA_INTERNAL&lt;br /&gt;
&lt;br /&gt;
==Start von samba==&lt;br /&gt;
 /usr/local/samba/sbin/samba&lt;br /&gt;
&lt;br /&gt;
==smbversion, share und auth check==&lt;br /&gt;
&lt;br /&gt;
===smbversion===&lt;br /&gt;
Diese sollten übereinstimmen:&lt;br /&gt;
 /usr/local/samba/sbin/samba -V&lt;br /&gt;
 /usr/local/samba/bin/smbclient -V&lt;br /&gt;
&lt;br /&gt;
===shares anzeigen:===&lt;br /&gt;
 /usr/local/samba/bin/smbclient -L localhost -U%&lt;br /&gt;
&lt;br /&gt;
Sollte so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Sharename      Type      Comment      &lt;br /&gt;
---------        ----       -------        &lt;br /&gt;
netlogon         Disk &lt;br /&gt;
sysvol            Disk &lt;br /&gt;
IPC$              IPC         IPC Service (Samba 4.0.5)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Authentication check:===&lt;br /&gt;
Passwort in dem Command ändern!&lt;br /&gt;
 /usr/local/samba/bin/smbclient //localhost/netlogon -UAdministrator%&amp;quot;your_password&amp;quot; -c 'ls'&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Domain=[MYDOMAIN] OS=[Unix] Server=[Samba 4.0.5]  &lt;br /&gt;
.                                   D        0  Fri May 17 21:40:08 2013   &lt;br /&gt;
..                                  D        0  Fri May 17 21:42:36 2013&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DNS setzen==&lt;br /&gt;
 echo  domain MYDOMAIN.LAN &amp;gt;&amp;gt; /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===samba upstart script===&lt;br /&gt;
&lt;br /&gt;
 vi /etc/init.d/samba&lt;br /&gt;
&lt;br /&gt;
 description &amp;quot;SMB/CIFS File and Active Directory Server&amp;quot;&lt;br /&gt;
 author      &amp;quot;Jelmer Vernooij &amp;lt;jelmer@ubuntu.com&amp;gt;&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
 start on (local-filesystems and net-device-up)&lt;br /&gt;
 stop on runlevel [!2345]&lt;br /&gt;
 &lt;br /&gt;
 expect fork&lt;br /&gt;
 normal exit 0 &lt;br /&gt;
 &lt;br /&gt;
 pre-start script&lt;br /&gt;
 	[ -r /etc/default/samba4 ] &amp;amp;&amp;amp; . /etc/default/samba4&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/run/samba&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/log/samba&lt;br /&gt;
 end script &lt;br /&gt;
  &lt;br /&gt;
 exec samba -D&lt;br /&gt;
&lt;br /&gt;
=howto=&lt;br /&gt;
https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO&lt;br /&gt;
&lt;br /&gt;
=installation=&lt;br /&gt;
*http://ubuntuforums.org/showthread.php?t=2146198&lt;br /&gt;
&lt;br /&gt;
=dns=&lt;br /&gt;
*zone anlegen&lt;br /&gt;
 samba-tool dns add localhost  simplex.local  otto A 192.168.246.23&lt;br /&gt;
=pam ldap=&lt;br /&gt;
*http://zachbethel.com/2013/04/10/linux-ldap-authentication-with-samba4/&lt;br /&gt;
=ldapbackend=&lt;br /&gt;
*http://www.foteviken.de/?p=1925&lt;br /&gt;
=samba-and-active-directory=&lt;br /&gt;
*http://www.held-im-ruhestand.de/software/samba-and-active-directory&lt;br /&gt;
=domain member=&lt;br /&gt;
*https://wiki.samba.org/index.php/Samba4/Domain_Member&lt;br /&gt;
=group policiy=&lt;br /&gt;
*http://www.alexwyn.com/computer-tips/folder-redirection-samba4-active-directory-domain-controller&lt;br /&gt;
=movies=&lt;br /&gt;
*http://www.samba.org/tridge/Samba4Demo/&lt;br /&gt;
&lt;br /&gt;
=Kennwortrichtlinie deaktivieren=&lt;br /&gt;
 Du gehst in die Gruppenrichtlinienverwaltung.&lt;br /&gt;
 Dann gehst du in das Verzecihnis deiner gewünschten Domäne.&lt;br /&gt;
 Jetzt solltest du einen eintrag sehen, der sich &amp;quot;Default Domain Controllers Policy&amp;quot; nennt.&lt;br /&gt;
 Mit rechter Maustaste draufklicken und bearbeiten. Dann öffnet sich der Gruppenrichtlinienverwaltungs-Editor&lt;br /&gt;
 (Achtung! Auf den ersten Blick sehr leicht mit der Gruppenrichtlinienverwaltung zu verwechseln).&lt;br /&gt;
 Jetzt schaust du unter &amp;quot;Computerconfiguration&amp;gt; Richtlinien&amp;gt; Windows-Einstellungen&amp;gt; Sicherheitseinstellungen&amp;gt; Kontorichtlinien&amp;gt; Kennwortrichtlinien.&lt;br /&gt;
 &lt;br /&gt;
 Dort darf man dann endlich die Kennwortrichtlinie deaktivieren.&lt;br /&gt;
&lt;br /&gt;
=debian=&lt;br /&gt;
*http://chris-blog.net/2014/01/freigaben-auf-einem-samba-4-server-einrichten/&lt;br /&gt;
=ubuntu=&lt;br /&gt;
http://xiep.de/allgemein/ubuntu-server-12-04-mit-samba-4-und-active-directory-pdc/&lt;br /&gt;
=dns=&lt;br /&gt;
https://wiki.archlinux.org/index.php/Samba_4_Active_Directory_Domain_Controller&lt;br /&gt;
=kennwortrichtlinien=&lt;br /&gt;
http://chris-blog.net/2014/01/kennwortrichtlinie-in-samba-4-domain-deaktivieren/&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Samba4&amp;diff=4078</id>
		<title>Samba4</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Samba4&amp;diff=4078"/>
		<updated>2014-02-26T14:19:07Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* Start von samba */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Installation=&lt;br /&gt;
==Interface anpassen==&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
address 192.168.0.100&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
network 192.168.0.0&lt;br /&gt;
broadcast 192.168.0.255&lt;br /&gt;
gateway 192.168.0.1 &lt;br /&gt;
dns-nameservers 192.168.0.100 8.8.8.8 (we use our server as DNS + google DNS as secondary DNS)&lt;br /&gt;
dns-search mydomain.lan&lt;br /&gt;
### IPs NOCH ANPASSEN! ###&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==hosts anpassen==&lt;br /&gt;
 vi /etc/hosts&lt;br /&gt;
 &lt;br /&gt;
 127.0.0.1       localhost.localdomain   localhost &lt;br /&gt;
 192.168.0.100   DC01.mydomain.lan       DC01&lt;br /&gt;
&lt;br /&gt;
 sudo echo DC01.mydomain.lan &amp;gt; /etc/hostname&lt;br /&gt;
 /etc/init.d/networking restart&lt;br /&gt;
&lt;br /&gt;
==Pakete und libs installieren==&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get update &amp;amp;&amp;amp; apt-get upgrade -y&lt;br /&gt;
 sudo apt-get install git build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev libpam0g-dev ntp -y&lt;br /&gt;
&lt;br /&gt;
You'll be asked for kerberos informations.&lt;br /&gt;
When asked for the default realm etc, enter mydomain.lan and DC01 as the host. &lt;br /&gt;
&lt;br /&gt;
==samba4 downloaden und installieren==&lt;br /&gt;
&lt;br /&gt;
 git clone -b v4-0-stable git://git.samba.org/samba.git samba4&lt;br /&gt;
&lt;br /&gt;
 cd samba4&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-debug --enable-selftest &lt;br /&gt;
&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Links setzen==&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/local/samba/sbin/* /usr/local/sbin&lt;br /&gt;
 ln -s /usr/local/samba/bin/* /usr/local/bin&lt;br /&gt;
&lt;br /&gt;
==Domain anlegen==&lt;br /&gt;
&lt;br /&gt;
''' realm, domain und adminpass''' sollten/können angepasst werden!&lt;br /&gt;
 /usr/local/samba/bin/samba-tool domain provision --realm=mydomain.lan --domain=mydomain --adminpass=&amp;quot;your_password&amp;quot; --server-role=dc --dns-backend=SAMBA_INTERNAL&lt;br /&gt;
 &lt;br /&gt;
==Start von samba==&lt;br /&gt;
 /usr/local/samba/sbin/samba&lt;br /&gt;
&lt;br /&gt;
==smbversion, share und auth check==&lt;br /&gt;
&lt;br /&gt;
===smbversion===&lt;br /&gt;
Diese sollten übereinstimmen:&lt;br /&gt;
 /usr/local/samba/sbin/samba -V&lt;br /&gt;
 /usr/local/samba/bin/smbclient -V&lt;br /&gt;
&lt;br /&gt;
===shares anzeigen:===&lt;br /&gt;
 /usr/local/samba/bin/smbclient -L localhost -U%&lt;br /&gt;
&lt;br /&gt;
Sollte so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Sharename      Type      Comment      &lt;br /&gt;
---------        ----       -------        &lt;br /&gt;
netlogon         Disk &lt;br /&gt;
sysvol            Disk &lt;br /&gt;
IPC$              IPC         IPC Service (Samba 4.0.5)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Authentication check:===&lt;br /&gt;
Passwort in dem Command ändern!&lt;br /&gt;
 /usr/local/samba/bin/smbclient //localhost/netlogon -UAdministrator%&amp;quot;your_password&amp;quot; -c 'ls'&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Domain=[MYDOMAIN] OS=[Unix] Server=[Samba 4.0.5]  &lt;br /&gt;
.                                   D        0  Fri May 17 21:40:08 2013   &lt;br /&gt;
..                                  D        0  Fri May 17 21:42:36 2013&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DNS setzen==&lt;br /&gt;
 echo  domain MYDOMAIN.LAN &amp;gt;&amp;gt; /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===samba upstart script===&lt;br /&gt;
&lt;br /&gt;
 vi /etc/init.d/samba&lt;br /&gt;
&lt;br /&gt;
 description &amp;quot;SMB/CIFS File and Active Directory Server&amp;quot;&lt;br /&gt;
 author      &amp;quot;Jelmer Vernooij &amp;lt;jelmer@ubuntu.com&amp;gt;&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
 start on (local-filesystems and net-device-up)&lt;br /&gt;
 stop on runlevel [!2345]&lt;br /&gt;
 &lt;br /&gt;
 expect fork&lt;br /&gt;
 normal exit 0 &lt;br /&gt;
 &lt;br /&gt;
 pre-start script&lt;br /&gt;
 	[ -r /etc/default/samba4 ] &amp;amp;&amp;amp; . /etc/default/samba4&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/run/samba&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/log/samba&lt;br /&gt;
 end script &lt;br /&gt;
  &lt;br /&gt;
 exec samba -D&lt;br /&gt;
&lt;br /&gt;
=howto=&lt;br /&gt;
https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO&lt;br /&gt;
&lt;br /&gt;
=installation=&lt;br /&gt;
*http://ubuntuforums.org/showthread.php?t=2146198&lt;br /&gt;
&lt;br /&gt;
=dns=&lt;br /&gt;
*zone anlegen&lt;br /&gt;
 samba-tool dns add localhost  simplex.local  otto A 192.168.246.23&lt;br /&gt;
=pam ldap=&lt;br /&gt;
*http://zachbethel.com/2013/04/10/linux-ldap-authentication-with-samba4/&lt;br /&gt;
=ldapbackend=&lt;br /&gt;
*http://www.foteviken.de/?p=1925&lt;br /&gt;
=samba-and-active-directory=&lt;br /&gt;
*http://www.held-im-ruhestand.de/software/samba-and-active-directory&lt;br /&gt;
=domain member=&lt;br /&gt;
*https://wiki.samba.org/index.php/Samba4/Domain_Member&lt;br /&gt;
=group policiy=&lt;br /&gt;
*http://www.alexwyn.com/computer-tips/folder-redirection-samba4-active-directory-domain-controller&lt;br /&gt;
=movies=&lt;br /&gt;
*http://www.samba.org/tridge/Samba4Demo/&lt;br /&gt;
&lt;br /&gt;
=Kennwortrichtlinie deaktivieren=&lt;br /&gt;
 Du gehst in die Gruppenrichtlinienverwaltung.&lt;br /&gt;
 Dann gehst du in das Verzecihnis deiner gewünschten Domäne.&lt;br /&gt;
 Jetzt solltest du einen eintrag sehen, der sich &amp;quot;Default Domain Controllers Policy&amp;quot; nennt.&lt;br /&gt;
 Mit rechter Maustaste draufklicken und bearbeiten. Dann öffnet sich der Gruppenrichtlinienverwaltungs-Editor&lt;br /&gt;
 (Achtung! Auf den ersten Blick sehr leicht mit der Gruppenrichtlinienverwaltung zu verwechseln).&lt;br /&gt;
 Jetzt schaust du unter &amp;quot;Computerconfiguration&amp;gt; Richtlinien&amp;gt; Windows-Einstellungen&amp;gt; Sicherheitseinstellungen&amp;gt; Kontorichtlinien&amp;gt; Kennwortrichtlinien.&lt;br /&gt;
 &lt;br /&gt;
 Dort darf man dann endlich die Kennwortrichtlinie deaktivieren.&lt;br /&gt;
&lt;br /&gt;
=debian=&lt;br /&gt;
*http://chris-blog.net/2014/01/freigaben-auf-einem-samba-4-server-einrichten/&lt;br /&gt;
=ubuntu=&lt;br /&gt;
http://xiep.de/allgemein/ubuntu-server-12-04-mit-samba-4-und-active-directory-pdc/&lt;br /&gt;
=dns=&lt;br /&gt;
https://wiki.archlinux.org/index.php/Samba_4_Active_Directory_Domain_Controller&lt;br /&gt;
=kennwortrichtlinien=&lt;br /&gt;
http://chris-blog.net/2014/01/kennwortrichtlinie-in-samba-4-domain-deaktivieren/&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Samba4&amp;diff=4077</id>
		<title>Samba4</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Samba4&amp;diff=4077"/>
		<updated>2014-02-26T14:14:42Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* samba4 downloaden und installieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Installation=&lt;br /&gt;
==Interface anpassen==&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
address 192.168.0.100&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
network 192.168.0.0&lt;br /&gt;
broadcast 192.168.0.255&lt;br /&gt;
gateway 192.168.0.1 &lt;br /&gt;
dns-nameservers 192.168.0.100 8.8.8.8 (we use our server as DNS + google DNS as secondary DNS)&lt;br /&gt;
dns-search mydomain.lan&lt;br /&gt;
### IPs NOCH ANPASSEN! ###&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==hosts anpassen==&lt;br /&gt;
 vi /etc/hosts&lt;br /&gt;
 &lt;br /&gt;
 127.0.0.1       localhost.localdomain   localhost &lt;br /&gt;
 192.168.0.100   DC01.mydomain.lan       DC01&lt;br /&gt;
&lt;br /&gt;
 sudo echo DC01.mydomain.lan &amp;gt; /etc/hostname&lt;br /&gt;
 /etc/init.d/networking restart&lt;br /&gt;
&lt;br /&gt;
==Pakete und libs installieren==&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get update &amp;amp;&amp;amp; apt-get upgrade -y&lt;br /&gt;
 sudo apt-get install git build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev libpam0g-dev ntp -y&lt;br /&gt;
&lt;br /&gt;
You'll be asked for kerberos informations.&lt;br /&gt;
When asked for the default realm etc, enter mydomain.lan and DC01 as the host. &lt;br /&gt;
&lt;br /&gt;
==samba4 downloaden und installieren==&lt;br /&gt;
&lt;br /&gt;
 git clone -b v4-0-stable git://git.samba.org/samba.git samba4&lt;br /&gt;
&lt;br /&gt;
 cd samba4&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-debug --enable-selftest &lt;br /&gt;
&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Links setzen==&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/local/samba/sbin/* /usr/local/sbin&lt;br /&gt;
 ln -s /usr/local/samba/bin/* /usr/local/bin&lt;br /&gt;
&lt;br /&gt;
==Domain anlegen==&lt;br /&gt;
&lt;br /&gt;
''' realm, domain und adminpass''' sollten/können angepasst werden!&lt;br /&gt;
 /usr/local/samba/bin/samba-tool domain provision --realm=mydomain.lan --domain=mydomain --adminpass=&amp;quot;your_password&amp;quot; --server-role=dc --dns-backend=SAMBA_INTERNAL&lt;br /&gt;
 &lt;br /&gt;
==Start von samba==&lt;br /&gt;
 /usr/local/samba/sbin/samba&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===samba upstart script===&lt;br /&gt;
&lt;br /&gt;
 vi /etc/init.d/samba&lt;br /&gt;
&lt;br /&gt;
 description &amp;quot;SMB/CIFS File and Active Directory Server&amp;quot;&lt;br /&gt;
 author      &amp;quot;Jelmer Vernooij &amp;lt;jelmer@ubuntu.com&amp;gt;&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
 start on (local-filesystems and net-device-up)&lt;br /&gt;
 stop on runlevel [!2345]&lt;br /&gt;
 &lt;br /&gt;
 expect fork&lt;br /&gt;
 normal exit 0 &lt;br /&gt;
 &lt;br /&gt;
 pre-start script&lt;br /&gt;
 	[ -r /etc/default/samba4 ] &amp;amp;&amp;amp; . /etc/default/samba4&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/run/samba&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/log/samba&lt;br /&gt;
 end script &lt;br /&gt;
  &lt;br /&gt;
 exec samba -D&lt;br /&gt;
&lt;br /&gt;
=howto=&lt;br /&gt;
https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO&lt;br /&gt;
&lt;br /&gt;
=installation=&lt;br /&gt;
*http://ubuntuforums.org/showthread.php?t=2146198&lt;br /&gt;
&lt;br /&gt;
=dns=&lt;br /&gt;
*zone anlegen&lt;br /&gt;
 samba-tool dns add localhost  simplex.local  otto A 192.168.246.23&lt;br /&gt;
=pam ldap=&lt;br /&gt;
*http://zachbethel.com/2013/04/10/linux-ldap-authentication-with-samba4/&lt;br /&gt;
=ldapbackend=&lt;br /&gt;
*http://www.foteviken.de/?p=1925&lt;br /&gt;
=samba-and-active-directory=&lt;br /&gt;
*http://www.held-im-ruhestand.de/software/samba-and-active-directory&lt;br /&gt;
=domain member=&lt;br /&gt;
*https://wiki.samba.org/index.php/Samba4/Domain_Member&lt;br /&gt;
=group policiy=&lt;br /&gt;
*http://www.alexwyn.com/computer-tips/folder-redirection-samba4-active-directory-domain-controller&lt;br /&gt;
=movies=&lt;br /&gt;
*http://www.samba.org/tridge/Samba4Demo/&lt;br /&gt;
&lt;br /&gt;
=Kennwortrichtlinie deaktivieren=&lt;br /&gt;
 Du gehst in die Gruppenrichtlinienverwaltung.&lt;br /&gt;
 Dann gehst du in das Verzecihnis deiner gewünschten Domäne.&lt;br /&gt;
 Jetzt solltest du einen eintrag sehen, der sich &amp;quot;Default Domain Controllers Policy&amp;quot; nennt.&lt;br /&gt;
 Mit rechter Maustaste draufklicken und bearbeiten. Dann öffnet sich der Gruppenrichtlinienverwaltungs-Editor&lt;br /&gt;
 (Achtung! Auf den ersten Blick sehr leicht mit der Gruppenrichtlinienverwaltung zu verwechseln).&lt;br /&gt;
 Jetzt schaust du unter &amp;quot;Computerconfiguration&amp;gt; Richtlinien&amp;gt; Windows-Einstellungen&amp;gt; Sicherheitseinstellungen&amp;gt; Kontorichtlinien&amp;gt; Kennwortrichtlinien.&lt;br /&gt;
 &lt;br /&gt;
 Dort darf man dann endlich die Kennwortrichtlinie deaktivieren.&lt;br /&gt;
&lt;br /&gt;
=debian=&lt;br /&gt;
*http://chris-blog.net/2014/01/freigaben-auf-einem-samba-4-server-einrichten/&lt;br /&gt;
=ubuntu=&lt;br /&gt;
http://xiep.de/allgemein/ubuntu-server-12-04-mit-samba-4-und-active-directory-pdc/&lt;br /&gt;
=dns=&lt;br /&gt;
https://wiki.archlinux.org/index.php/Samba_4_Active_Directory_Domain_Controller&lt;br /&gt;
=kennwortrichtlinien=&lt;br /&gt;
http://chris-blog.net/2014/01/kennwortrichtlinie-in-samba-4-domain-deaktivieren/&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Samba4&amp;diff=4076</id>
		<title>Samba4</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Samba4&amp;diff=4076"/>
		<updated>2014-02-26T14:14:16Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* Links setzen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Installation=&lt;br /&gt;
==Interface anpassen==&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
address 192.168.0.100&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
network 192.168.0.0&lt;br /&gt;
broadcast 192.168.0.255&lt;br /&gt;
gateway 192.168.0.1 &lt;br /&gt;
dns-nameservers 192.168.0.100 8.8.8.8 (we use our server as DNS + google DNS as secondary DNS)&lt;br /&gt;
dns-search mydomain.lan&lt;br /&gt;
### IPs NOCH ANPASSEN! ###&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==hosts anpassen==&lt;br /&gt;
 vi /etc/hosts&lt;br /&gt;
 &lt;br /&gt;
 127.0.0.1       localhost.localdomain   localhost &lt;br /&gt;
 192.168.0.100   DC01.mydomain.lan       DC01&lt;br /&gt;
&lt;br /&gt;
 sudo echo DC01.mydomain.lan &amp;gt; /etc/hostname&lt;br /&gt;
 /etc/init.d/networking restart&lt;br /&gt;
&lt;br /&gt;
==Pakete und libs installieren==&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get update &amp;amp;&amp;amp; apt-get upgrade -y&lt;br /&gt;
 sudo apt-get install git build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev libpam0g-dev ntp -y&lt;br /&gt;
&lt;br /&gt;
You'll be asked for kerberos informations.&lt;br /&gt;
When asked for the default realm etc, enter mydomain.lan and DC01 as the host. &lt;br /&gt;
&lt;br /&gt;
==samba4 downloaden und installieren==&lt;br /&gt;
&lt;br /&gt;
 git clone -b v4-0-stable git://git.samba.org/samba.git samba4&lt;br /&gt;
 cd samba4&lt;br /&gt;
 ./configure --enable-debug --enable-selftest &lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Links setzen==&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/local/samba/sbin/* /usr/local/sbin&lt;br /&gt;
 ln -s /usr/local/samba/bin/* /usr/local/bin&lt;br /&gt;
&lt;br /&gt;
==Domain anlegen==&lt;br /&gt;
&lt;br /&gt;
''' realm, domain und adminpass''' sollten/können angepasst werden!&lt;br /&gt;
 /usr/local/samba/bin/samba-tool domain provision --realm=mydomain.lan --domain=mydomain --adminpass=&amp;quot;your_password&amp;quot; --server-role=dc --dns-backend=SAMBA_INTERNAL&lt;br /&gt;
 &lt;br /&gt;
==Start von samba==&lt;br /&gt;
 /usr/local/samba/sbin/samba&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===samba upstart script===&lt;br /&gt;
&lt;br /&gt;
 vi /etc/init.d/samba&lt;br /&gt;
&lt;br /&gt;
 description &amp;quot;SMB/CIFS File and Active Directory Server&amp;quot;&lt;br /&gt;
 author      &amp;quot;Jelmer Vernooij &amp;lt;jelmer@ubuntu.com&amp;gt;&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
 start on (local-filesystems and net-device-up)&lt;br /&gt;
 stop on runlevel [!2345]&lt;br /&gt;
 &lt;br /&gt;
 expect fork&lt;br /&gt;
 normal exit 0 &lt;br /&gt;
 &lt;br /&gt;
 pre-start script&lt;br /&gt;
 	[ -r /etc/default/samba4 ] &amp;amp;&amp;amp; . /etc/default/samba4&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/run/samba&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/log/samba&lt;br /&gt;
 end script &lt;br /&gt;
  &lt;br /&gt;
 exec samba -D&lt;br /&gt;
&lt;br /&gt;
=howto=&lt;br /&gt;
https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO&lt;br /&gt;
&lt;br /&gt;
=installation=&lt;br /&gt;
*http://ubuntuforums.org/showthread.php?t=2146198&lt;br /&gt;
&lt;br /&gt;
=dns=&lt;br /&gt;
*zone anlegen&lt;br /&gt;
 samba-tool dns add localhost  simplex.local  otto A 192.168.246.23&lt;br /&gt;
=pam ldap=&lt;br /&gt;
*http://zachbethel.com/2013/04/10/linux-ldap-authentication-with-samba4/&lt;br /&gt;
=ldapbackend=&lt;br /&gt;
*http://www.foteviken.de/?p=1925&lt;br /&gt;
=samba-and-active-directory=&lt;br /&gt;
*http://www.held-im-ruhestand.de/software/samba-and-active-directory&lt;br /&gt;
=domain member=&lt;br /&gt;
*https://wiki.samba.org/index.php/Samba4/Domain_Member&lt;br /&gt;
=group policiy=&lt;br /&gt;
*http://www.alexwyn.com/computer-tips/folder-redirection-samba4-active-directory-domain-controller&lt;br /&gt;
=movies=&lt;br /&gt;
*http://www.samba.org/tridge/Samba4Demo/&lt;br /&gt;
&lt;br /&gt;
=Kennwortrichtlinie deaktivieren=&lt;br /&gt;
 Du gehst in die Gruppenrichtlinienverwaltung.&lt;br /&gt;
 Dann gehst du in das Verzecihnis deiner gewünschten Domäne.&lt;br /&gt;
 Jetzt solltest du einen eintrag sehen, der sich &amp;quot;Default Domain Controllers Policy&amp;quot; nennt.&lt;br /&gt;
 Mit rechter Maustaste draufklicken und bearbeiten. Dann öffnet sich der Gruppenrichtlinienverwaltungs-Editor&lt;br /&gt;
 (Achtung! Auf den ersten Blick sehr leicht mit der Gruppenrichtlinienverwaltung zu verwechseln).&lt;br /&gt;
 Jetzt schaust du unter &amp;quot;Computerconfiguration&amp;gt; Richtlinien&amp;gt; Windows-Einstellungen&amp;gt; Sicherheitseinstellungen&amp;gt; Kontorichtlinien&amp;gt; Kennwortrichtlinien.&lt;br /&gt;
 &lt;br /&gt;
 Dort darf man dann endlich die Kennwortrichtlinie deaktivieren.&lt;br /&gt;
&lt;br /&gt;
=debian=&lt;br /&gt;
*http://chris-blog.net/2014/01/freigaben-auf-einem-samba-4-server-einrichten/&lt;br /&gt;
=ubuntu=&lt;br /&gt;
http://xiep.de/allgemein/ubuntu-server-12-04-mit-samba-4-und-active-directory-pdc/&lt;br /&gt;
=dns=&lt;br /&gt;
https://wiki.archlinux.org/index.php/Samba_4_Active_Directory_Domain_Controller&lt;br /&gt;
=kennwortrichtlinien=&lt;br /&gt;
http://chris-blog.net/2014/01/kennwortrichtlinie-in-samba-4-domain-deaktivieren/&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Samba4&amp;diff=4075</id>
		<title>Samba4</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Samba4&amp;diff=4075"/>
		<updated>2014-02-26T14:14:04Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* samba4 downloaden und installieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Installation=&lt;br /&gt;
==Interface anpassen==&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
address 192.168.0.100&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
network 192.168.0.0&lt;br /&gt;
broadcast 192.168.0.255&lt;br /&gt;
gateway 192.168.0.1 &lt;br /&gt;
dns-nameservers 192.168.0.100 8.8.8.8 (we use our server as DNS + google DNS as secondary DNS)&lt;br /&gt;
dns-search mydomain.lan&lt;br /&gt;
### IPs NOCH ANPASSEN! ###&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==hosts anpassen==&lt;br /&gt;
 vi /etc/hosts&lt;br /&gt;
 &lt;br /&gt;
 127.0.0.1       localhost.localdomain   localhost &lt;br /&gt;
 192.168.0.100   DC01.mydomain.lan       DC01&lt;br /&gt;
&lt;br /&gt;
 sudo echo DC01.mydomain.lan &amp;gt; /etc/hostname&lt;br /&gt;
 /etc/init.d/networking restart&lt;br /&gt;
&lt;br /&gt;
==Pakete und libs installieren==&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get update &amp;amp;&amp;amp; apt-get upgrade -y&lt;br /&gt;
 sudo apt-get install git build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev libpam0g-dev ntp -y&lt;br /&gt;
&lt;br /&gt;
You'll be asked for kerberos informations.&lt;br /&gt;
When asked for the default realm etc, enter mydomain.lan and DC01 as the host. &lt;br /&gt;
&lt;br /&gt;
==samba4 downloaden und installieren==&lt;br /&gt;
&lt;br /&gt;
 git clone -b v4-0-stable git://git.samba.org/samba.git samba4&lt;br /&gt;
 cd samba4&lt;br /&gt;
 ./configure --enable-debug --enable-selftest &lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Links setzen==&lt;br /&gt;
&lt;br /&gt;
ln -s /usr/local/samba/sbin/* /usr/local/sbin&lt;br /&gt;
ln -s /usr/local/samba/bin/* /usr/local/bin&lt;br /&gt;
&lt;br /&gt;
==Domain anlegen==&lt;br /&gt;
&lt;br /&gt;
''' realm, domain und adminpass''' sollten/können angepasst werden!&lt;br /&gt;
 /usr/local/samba/bin/samba-tool domain provision --realm=mydomain.lan --domain=mydomain --adminpass=&amp;quot;your_password&amp;quot; --server-role=dc --dns-backend=SAMBA_INTERNAL&lt;br /&gt;
 &lt;br /&gt;
==Start von samba==&lt;br /&gt;
 /usr/local/samba/sbin/samba&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===samba upstart script===&lt;br /&gt;
&lt;br /&gt;
 vi /etc/init.d/samba&lt;br /&gt;
&lt;br /&gt;
 description &amp;quot;SMB/CIFS File and Active Directory Server&amp;quot;&lt;br /&gt;
 author      &amp;quot;Jelmer Vernooij &amp;lt;jelmer@ubuntu.com&amp;gt;&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
 start on (local-filesystems and net-device-up)&lt;br /&gt;
 stop on runlevel [!2345]&lt;br /&gt;
 &lt;br /&gt;
 expect fork&lt;br /&gt;
 normal exit 0 &lt;br /&gt;
 &lt;br /&gt;
 pre-start script&lt;br /&gt;
 	[ -r /etc/default/samba4 ] &amp;amp;&amp;amp; . /etc/default/samba4&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/run/samba&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/log/samba&lt;br /&gt;
 end script &lt;br /&gt;
  &lt;br /&gt;
 exec samba -D&lt;br /&gt;
&lt;br /&gt;
=howto=&lt;br /&gt;
https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO&lt;br /&gt;
&lt;br /&gt;
=installation=&lt;br /&gt;
*http://ubuntuforums.org/showthread.php?t=2146198&lt;br /&gt;
&lt;br /&gt;
=dns=&lt;br /&gt;
*zone anlegen&lt;br /&gt;
 samba-tool dns add localhost  simplex.local  otto A 192.168.246.23&lt;br /&gt;
=pam ldap=&lt;br /&gt;
*http://zachbethel.com/2013/04/10/linux-ldap-authentication-with-samba4/&lt;br /&gt;
=ldapbackend=&lt;br /&gt;
*http://www.foteviken.de/?p=1925&lt;br /&gt;
=samba-and-active-directory=&lt;br /&gt;
*http://www.held-im-ruhestand.de/software/samba-and-active-directory&lt;br /&gt;
=domain member=&lt;br /&gt;
*https://wiki.samba.org/index.php/Samba4/Domain_Member&lt;br /&gt;
=group policiy=&lt;br /&gt;
*http://www.alexwyn.com/computer-tips/folder-redirection-samba4-active-directory-domain-controller&lt;br /&gt;
=movies=&lt;br /&gt;
*http://www.samba.org/tridge/Samba4Demo/&lt;br /&gt;
&lt;br /&gt;
=Kennwortrichtlinie deaktivieren=&lt;br /&gt;
 Du gehst in die Gruppenrichtlinienverwaltung.&lt;br /&gt;
 Dann gehst du in das Verzecihnis deiner gewünschten Domäne.&lt;br /&gt;
 Jetzt solltest du einen eintrag sehen, der sich &amp;quot;Default Domain Controllers Policy&amp;quot; nennt.&lt;br /&gt;
 Mit rechter Maustaste draufklicken und bearbeiten. Dann öffnet sich der Gruppenrichtlinienverwaltungs-Editor&lt;br /&gt;
 (Achtung! Auf den ersten Blick sehr leicht mit der Gruppenrichtlinienverwaltung zu verwechseln).&lt;br /&gt;
 Jetzt schaust du unter &amp;quot;Computerconfiguration&amp;gt; Richtlinien&amp;gt; Windows-Einstellungen&amp;gt; Sicherheitseinstellungen&amp;gt; Kontorichtlinien&amp;gt; Kennwortrichtlinien.&lt;br /&gt;
 &lt;br /&gt;
 Dort darf man dann endlich die Kennwortrichtlinie deaktivieren.&lt;br /&gt;
&lt;br /&gt;
=debian=&lt;br /&gt;
*http://chris-blog.net/2014/01/freigaben-auf-einem-samba-4-server-einrichten/&lt;br /&gt;
=ubuntu=&lt;br /&gt;
http://xiep.de/allgemein/ubuntu-server-12-04-mit-samba-4-und-active-directory-pdc/&lt;br /&gt;
=dns=&lt;br /&gt;
https://wiki.archlinux.org/index.php/Samba_4_Active_Directory_Domain_Controller&lt;br /&gt;
=kennwortrichtlinien=&lt;br /&gt;
http://chris-blog.net/2014/01/kennwortrichtlinie-in-samba-4-domain-deaktivieren/&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Samba4&amp;diff=4074</id>
		<title>Samba4</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Samba4&amp;diff=4074"/>
		<updated>2014-02-26T14:11:32Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* Misc */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Installation=&lt;br /&gt;
==Interface anpassen==&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
address 192.168.0.100&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
network 192.168.0.0&lt;br /&gt;
broadcast 192.168.0.255&lt;br /&gt;
gateway 192.168.0.1 &lt;br /&gt;
dns-nameservers 192.168.0.100 8.8.8.8 (we use our server as DNS + google DNS as secondary DNS)&lt;br /&gt;
dns-search mydomain.lan&lt;br /&gt;
### IPs NOCH ANPASSEN! ###&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==hosts anpassen==&lt;br /&gt;
 vi /etc/hosts&lt;br /&gt;
 &lt;br /&gt;
 127.0.0.1       localhost.localdomain   localhost &lt;br /&gt;
 192.168.0.100   DC01.mydomain.lan       DC01&lt;br /&gt;
&lt;br /&gt;
 sudo echo DC01.mydomain.lan &amp;gt; /etc/hostname&lt;br /&gt;
 /etc/init.d/networking restart&lt;br /&gt;
&lt;br /&gt;
==Pakete und libs installieren==&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get update &amp;amp;&amp;amp; apt-get upgrade -y&lt;br /&gt;
 sudo apt-get install git build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev libpam0g-dev ntp -y&lt;br /&gt;
&lt;br /&gt;
You'll be asked for kerberos informations.&lt;br /&gt;
When asked for the default realm etc, enter mydomain.lan and DC01 as the host. &lt;br /&gt;
&lt;br /&gt;
==samba4 downloaden und installieren==&lt;br /&gt;
&lt;br /&gt;
 git clone -b v4-0-stable git://git.samba.org/samba.git samba4&lt;br /&gt;
 cd samba4&lt;br /&gt;
 ./configure --enable-debug --enable-selftest &lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Domain anlegen==&lt;br /&gt;
&lt;br /&gt;
''' realm, domain und adminpass''' sollten/können angepasst werden!&lt;br /&gt;
 /usr/local/samba/bin/samba-tool domain provision --realm=mydomain.lan --domain=mydomain --adminpass=&amp;quot;your_password&amp;quot; --server-role=dc --dns-backend=SAMBA_INTERNAL&lt;br /&gt;
 &lt;br /&gt;
==Start von samba==&lt;br /&gt;
 /usr/local/samba/sbin/samba&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===samba upstart script===&lt;br /&gt;
&lt;br /&gt;
 vi /etc/init.d/samba&lt;br /&gt;
&lt;br /&gt;
 description &amp;quot;SMB/CIFS File and Active Directory Server&amp;quot;&lt;br /&gt;
 author      &amp;quot;Jelmer Vernooij &amp;lt;jelmer@ubuntu.com&amp;gt;&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
 start on (local-filesystems and net-device-up)&lt;br /&gt;
 stop on runlevel [!2345]&lt;br /&gt;
 &lt;br /&gt;
 expect fork&lt;br /&gt;
 normal exit 0 &lt;br /&gt;
 &lt;br /&gt;
 pre-start script&lt;br /&gt;
 	[ -r /etc/default/samba4 ] &amp;amp;&amp;amp; . /etc/default/samba4&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/run/samba&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/log/samba&lt;br /&gt;
 end script &lt;br /&gt;
  &lt;br /&gt;
 exec samba -D&lt;br /&gt;
&lt;br /&gt;
=howto=&lt;br /&gt;
https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO&lt;br /&gt;
&lt;br /&gt;
=installation=&lt;br /&gt;
*http://ubuntuforums.org/showthread.php?t=2146198&lt;br /&gt;
&lt;br /&gt;
=dns=&lt;br /&gt;
*zone anlegen&lt;br /&gt;
 samba-tool dns add localhost  simplex.local  otto A 192.168.246.23&lt;br /&gt;
=pam ldap=&lt;br /&gt;
*http://zachbethel.com/2013/04/10/linux-ldap-authentication-with-samba4/&lt;br /&gt;
=ldapbackend=&lt;br /&gt;
*http://www.foteviken.de/?p=1925&lt;br /&gt;
=samba-and-active-directory=&lt;br /&gt;
*http://www.held-im-ruhestand.de/software/samba-and-active-directory&lt;br /&gt;
=domain member=&lt;br /&gt;
*https://wiki.samba.org/index.php/Samba4/Domain_Member&lt;br /&gt;
=group policiy=&lt;br /&gt;
*http://www.alexwyn.com/computer-tips/folder-redirection-samba4-active-directory-domain-controller&lt;br /&gt;
=movies=&lt;br /&gt;
*http://www.samba.org/tridge/Samba4Demo/&lt;br /&gt;
&lt;br /&gt;
=Kennwortrichtlinie deaktivieren=&lt;br /&gt;
 Du gehst in die Gruppenrichtlinienverwaltung.&lt;br /&gt;
 Dann gehst du in das Verzecihnis deiner gewünschten Domäne.&lt;br /&gt;
 Jetzt solltest du einen eintrag sehen, der sich &amp;quot;Default Domain Controllers Policy&amp;quot; nennt.&lt;br /&gt;
 Mit rechter Maustaste draufklicken und bearbeiten. Dann öffnet sich der Gruppenrichtlinienverwaltungs-Editor&lt;br /&gt;
 (Achtung! Auf den ersten Blick sehr leicht mit der Gruppenrichtlinienverwaltung zu verwechseln).&lt;br /&gt;
 Jetzt schaust du unter &amp;quot;Computerconfiguration&amp;gt; Richtlinien&amp;gt; Windows-Einstellungen&amp;gt; Sicherheitseinstellungen&amp;gt; Kontorichtlinien&amp;gt; Kennwortrichtlinien.&lt;br /&gt;
 &lt;br /&gt;
 Dort darf man dann endlich die Kennwortrichtlinie deaktivieren.&lt;br /&gt;
&lt;br /&gt;
=debian=&lt;br /&gt;
*http://chris-blog.net/2014/01/freigaben-auf-einem-samba-4-server-einrichten/&lt;br /&gt;
=ubuntu=&lt;br /&gt;
http://xiep.de/allgemein/ubuntu-server-12-04-mit-samba-4-und-active-directory-pdc/&lt;br /&gt;
=dns=&lt;br /&gt;
https://wiki.archlinux.org/index.php/Samba_4_Active_Directory_Domain_Controller&lt;br /&gt;
=kennwortrichtlinien=&lt;br /&gt;
http://chris-blog.net/2014/01/kennwortrichtlinie-in-samba-4-domain-deaktivieren/&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Samba4&amp;diff=4073</id>
		<title>Samba4</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Samba4&amp;diff=4073"/>
		<updated>2014-02-26T14:11:21Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* Domain anlegen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Installation=&lt;br /&gt;
==Interface anpassen==&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
address 192.168.0.100&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
network 192.168.0.0&lt;br /&gt;
broadcast 192.168.0.255&lt;br /&gt;
gateway 192.168.0.1 &lt;br /&gt;
dns-nameservers 192.168.0.100 8.8.8.8 (we use our server as DNS + google DNS as secondary DNS)&lt;br /&gt;
dns-search mydomain.lan&lt;br /&gt;
### IPs NOCH ANPASSEN! ###&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==hosts anpassen==&lt;br /&gt;
 vi /etc/hosts&lt;br /&gt;
 &lt;br /&gt;
 127.0.0.1       localhost.localdomain   localhost &lt;br /&gt;
 192.168.0.100   DC01.mydomain.lan       DC01&lt;br /&gt;
&lt;br /&gt;
 sudo echo DC01.mydomain.lan &amp;gt; /etc/hostname&lt;br /&gt;
 /etc/init.d/networking restart&lt;br /&gt;
&lt;br /&gt;
==Pakete und libs installieren==&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get update &amp;amp;&amp;amp; apt-get upgrade -y&lt;br /&gt;
 sudo apt-get install git build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev libpam0g-dev ntp -y&lt;br /&gt;
&lt;br /&gt;
You'll be asked for kerberos informations.&lt;br /&gt;
When asked for the default realm etc, enter mydomain.lan and DC01 as the host. &lt;br /&gt;
&lt;br /&gt;
==samba4 downloaden und installieren==&lt;br /&gt;
&lt;br /&gt;
 git clone -b v4-0-stable git://git.samba.org/samba.git samba4&lt;br /&gt;
 cd samba4&lt;br /&gt;
 ./configure --enable-debug --enable-selftest &lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Domain anlegen==&lt;br /&gt;
&lt;br /&gt;
''' realm, domain und adminpass''' sollten/können angepasst werden!&lt;br /&gt;
 /usr/local/samba/bin/samba-tool domain provision --realm=mydomain.lan --domain=mydomain --adminpass=&amp;quot;your_password&amp;quot; --server-role=dc --dns-backend=SAMBA_INTERNAL&lt;br /&gt;
 &lt;br /&gt;
==Start von samba==&lt;br /&gt;
 /usr/local/samba/sbin/samba&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===samba upstart script===&lt;br /&gt;
&lt;br /&gt;
 vi /etc/init.d/samba&lt;br /&gt;
&lt;br /&gt;
 description &amp;quot;SMB/CIFS File and Active Directory Server&amp;quot;&lt;br /&gt;
 author      &amp;quot;Jelmer Vernooij &amp;lt;jelmer@ubuntu.com&amp;gt;&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
 start on (local-filesystems and net-device-up)&lt;br /&gt;
 stop on runlevel [!2345]&lt;br /&gt;
 &lt;br /&gt;
 expect fork&lt;br /&gt;
 normal exit 0 &lt;br /&gt;
 &lt;br /&gt;
 pre-start script&lt;br /&gt;
 	[ -r /etc/default/samba4 ] &amp;amp;&amp;amp; . /etc/default/samba4&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/run/samba&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/log/samba&lt;br /&gt;
 end script &lt;br /&gt;
  &lt;br /&gt;
 exec samba -D&lt;br /&gt;
&lt;br /&gt;
=howto=&lt;br /&gt;
https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO&lt;br /&gt;
&lt;br /&gt;
=installation=&lt;br /&gt;
*http://ubuntuforums.org/showthread.php?t=2146198&lt;br /&gt;
&lt;br /&gt;
=dns=&lt;br /&gt;
*zone anlegen&lt;br /&gt;
 samba-tool dns add localhost  simplex.local  otto A 192.168.246.23&lt;br /&gt;
=pam ldap=&lt;br /&gt;
*http://zachbethel.com/2013/04/10/linux-ldap-authentication-with-samba4/&lt;br /&gt;
=ldapbackend=&lt;br /&gt;
*http://www.foteviken.de/?p=1925&lt;br /&gt;
=samba-and-active-directory=&lt;br /&gt;
*http://www.held-im-ruhestand.de/software/samba-and-active-directory&lt;br /&gt;
=domain member=&lt;br /&gt;
*https://wiki.samba.org/index.php/Samba4/Domain_Member&lt;br /&gt;
=group policiy=&lt;br /&gt;
*http://www.alexwyn.com/computer-tips/folder-redirection-samba4-active-directory-domain-controller&lt;br /&gt;
=movies=&lt;br /&gt;
*http://www.samba.org/tridge/Samba4Demo/&lt;br /&gt;
&lt;br /&gt;
=Kennwortrichtlinie deaktivieren=&lt;br /&gt;
 Du gehst in die Gruppenrichtlinienverwaltung.&lt;br /&gt;
 Dann gehst du in das Verzecihnis deiner gewünschten Domäne.&lt;br /&gt;
 Jetzt solltest du einen eintrag sehen, der sich &amp;quot;Default Domain Controllers Policy&amp;quot; nennt.&lt;br /&gt;
 Mit rechter Maustaste draufklicken und bearbeiten. Dann öffnet sich der Gruppenrichtlinienverwaltungs-Editor&lt;br /&gt;
 (Achtung! Auf den ersten Blick sehr leicht mit der Gruppenrichtlinienverwaltung zu verwechseln).&lt;br /&gt;
 Jetzt schaust du unter &amp;quot;Computerconfiguration&amp;gt; Richtlinien&amp;gt; Windows-Einstellungen&amp;gt; Sicherheitseinstellungen&amp;gt; Kontorichtlinien&amp;gt; Kennwortrichtlinien.&lt;br /&gt;
 &lt;br /&gt;
 Dort darf man dann endlich die Kennwortrichtlinie deaktivieren.&lt;br /&gt;
&lt;br /&gt;
=debian=&lt;br /&gt;
*http://chris-blog.net/2014/01/freigaben-auf-einem-samba-4-server-einrichten/&lt;br /&gt;
=ubuntu=&lt;br /&gt;
http://xiep.de/allgemein/ubuntu-server-12-04-mit-samba-4-und-active-directory-pdc/&lt;br /&gt;
=dns=&lt;br /&gt;
https://wiki.archlinux.org/index.php/Samba_4_Active_Directory_Domain_Controller&lt;br /&gt;
=kennwortrichtlinien=&lt;br /&gt;
http://chris-blog.net/2014/01/kennwortrichtlinie-in-samba-4-domain-deaktivieren/&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Samba4&amp;diff=4072</id>
		<title>Samba4</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Samba4&amp;diff=4072"/>
		<updated>2014-02-26T14:03:03Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Installation=&lt;br /&gt;
==Interface anpassen==&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
address 192.168.0.100&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
network 192.168.0.0&lt;br /&gt;
broadcast 192.168.0.255&lt;br /&gt;
gateway 192.168.0.1 &lt;br /&gt;
dns-nameservers 192.168.0.100 8.8.8.8 (we use our server as DNS + google DNS as secondary DNS)&lt;br /&gt;
dns-search mydomain.lan&lt;br /&gt;
### IPs NOCH ANPASSEN! ###&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==hosts anpassen==&lt;br /&gt;
 vi /etc/hosts&lt;br /&gt;
 &lt;br /&gt;
 127.0.0.1       localhost.localdomain   localhost &lt;br /&gt;
 192.168.0.100   DC01.mydomain.lan       DC01&lt;br /&gt;
&lt;br /&gt;
 sudo echo DC01.mydomain.lan &amp;gt; /etc/hostname&lt;br /&gt;
 /etc/init.d/networking restart&lt;br /&gt;
&lt;br /&gt;
==Pakete und libs installieren==&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get update &amp;amp;&amp;amp; apt-get upgrade -y&lt;br /&gt;
 sudo apt-get install git build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev libpam0g-dev ntp -y&lt;br /&gt;
&lt;br /&gt;
You'll be asked for kerberos informations.&lt;br /&gt;
When asked for the default realm etc, enter mydomain.lan and DC01 as the host. &lt;br /&gt;
&lt;br /&gt;
==samba4 downloaden und installieren==&lt;br /&gt;
&lt;br /&gt;
 git clone -b v4-0-stable git://git.samba.org/samba.git samba4&lt;br /&gt;
 cd samba4&lt;br /&gt;
 ./configure --enable-debug --enable-selftest &lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Domain anlegen==&lt;br /&gt;
&lt;br /&gt;
''' realm, domain und adminpass''' sollten/können angepasst werden!&lt;br /&gt;
 /usr/local/samba/bin/samba-tool domain provision --realm=mydomain.lan --domain=mydomain --adminpass=&amp;quot;your_password&amp;quot; --server-role=dc --dns-backend=SAMBA_INTERNAL&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===samba upstart script===&lt;br /&gt;
&lt;br /&gt;
 vi /etc/init.d/samba&lt;br /&gt;
&lt;br /&gt;
 description &amp;quot;SMB/CIFS File and Active Directory Server&amp;quot;&lt;br /&gt;
 author      &amp;quot;Jelmer Vernooij &amp;lt;jelmer@ubuntu.com&amp;gt;&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
 start on (local-filesystems and net-device-up)&lt;br /&gt;
 stop on runlevel [!2345]&lt;br /&gt;
 &lt;br /&gt;
 expect fork&lt;br /&gt;
 normal exit 0 &lt;br /&gt;
 &lt;br /&gt;
 pre-start script&lt;br /&gt;
 	[ -r /etc/default/samba4 ] &amp;amp;&amp;amp; . /etc/default/samba4&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/run/samba&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/log/samba&lt;br /&gt;
 end script &lt;br /&gt;
  &lt;br /&gt;
 exec samba -D&lt;br /&gt;
&lt;br /&gt;
=howto=&lt;br /&gt;
https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO&lt;br /&gt;
&lt;br /&gt;
=installation=&lt;br /&gt;
*http://ubuntuforums.org/showthread.php?t=2146198&lt;br /&gt;
&lt;br /&gt;
=dns=&lt;br /&gt;
*zone anlegen&lt;br /&gt;
 samba-tool dns add localhost  simplex.local  otto A 192.168.246.23&lt;br /&gt;
=pam ldap=&lt;br /&gt;
*http://zachbethel.com/2013/04/10/linux-ldap-authentication-with-samba4/&lt;br /&gt;
=ldapbackend=&lt;br /&gt;
*http://www.foteviken.de/?p=1925&lt;br /&gt;
=samba-and-active-directory=&lt;br /&gt;
*http://www.held-im-ruhestand.de/software/samba-and-active-directory&lt;br /&gt;
=domain member=&lt;br /&gt;
*https://wiki.samba.org/index.php/Samba4/Domain_Member&lt;br /&gt;
=group policiy=&lt;br /&gt;
*http://www.alexwyn.com/computer-tips/folder-redirection-samba4-active-directory-domain-controller&lt;br /&gt;
=movies=&lt;br /&gt;
*http://www.samba.org/tridge/Samba4Demo/&lt;br /&gt;
&lt;br /&gt;
=Kennwortrichtlinie deaktivieren=&lt;br /&gt;
 Du gehst in die Gruppenrichtlinienverwaltung.&lt;br /&gt;
 Dann gehst du in das Verzecihnis deiner gewünschten Domäne.&lt;br /&gt;
 Jetzt solltest du einen eintrag sehen, der sich &amp;quot;Default Domain Controllers Policy&amp;quot; nennt.&lt;br /&gt;
 Mit rechter Maustaste draufklicken und bearbeiten. Dann öffnet sich der Gruppenrichtlinienverwaltungs-Editor&lt;br /&gt;
 (Achtung! Auf den ersten Blick sehr leicht mit der Gruppenrichtlinienverwaltung zu verwechseln).&lt;br /&gt;
 Jetzt schaust du unter &amp;quot;Computerconfiguration&amp;gt; Richtlinien&amp;gt; Windows-Einstellungen&amp;gt; Sicherheitseinstellungen&amp;gt; Kontorichtlinien&amp;gt; Kennwortrichtlinien.&lt;br /&gt;
 &lt;br /&gt;
 Dort darf man dann endlich die Kennwortrichtlinie deaktivieren.&lt;br /&gt;
&lt;br /&gt;
=debian=&lt;br /&gt;
*http://chris-blog.net/2014/01/freigaben-auf-einem-samba-4-server-einrichten/&lt;br /&gt;
=ubuntu=&lt;br /&gt;
http://xiep.de/allgemein/ubuntu-server-12-04-mit-samba-4-und-active-directory-pdc/&lt;br /&gt;
=dns=&lt;br /&gt;
https://wiki.archlinux.org/index.php/Samba_4_Active_Directory_Domain_Controller&lt;br /&gt;
=kennwortrichtlinien=&lt;br /&gt;
http://chris-blog.net/2014/01/kennwortrichtlinie-in-samba-4-domain-deaktivieren/&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Samba4&amp;diff=4071</id>
		<title>Samba4</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Samba4&amp;diff=4071"/>
		<updated>2014-02-26T13:32:52Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* samba upstart script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Installation=&lt;br /&gt;
==Misc==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===samba upstart script===&lt;br /&gt;
&lt;br /&gt;
 vi /etc/init.d/samba&lt;br /&gt;
&lt;br /&gt;
 description &amp;quot;SMB/CIFS File and Active Directory Server&amp;quot;&lt;br /&gt;
 author      &amp;quot;Jelmer Vernooij &amp;lt;jelmer@ubuntu.com&amp;gt;&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
 start on (local-filesystems and net-device-up)&lt;br /&gt;
 stop on runlevel [!2345]&lt;br /&gt;
 &lt;br /&gt;
 expect fork&lt;br /&gt;
 normal exit 0 &lt;br /&gt;
 &lt;br /&gt;
 pre-start script&lt;br /&gt;
 	[ -r /etc/default/samba4 ] &amp;amp;&amp;amp; . /etc/default/samba4&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/run/samba&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/log/samba&lt;br /&gt;
 end script &lt;br /&gt;
  &lt;br /&gt;
 exec samba -D&lt;br /&gt;
&lt;br /&gt;
=howto=&lt;br /&gt;
https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO&lt;br /&gt;
&lt;br /&gt;
=installation=&lt;br /&gt;
*http://ubuntuforums.org/showthread.php?t=2146198&lt;br /&gt;
&lt;br /&gt;
=dns=&lt;br /&gt;
*zone anlegen&lt;br /&gt;
 samba-tool dns add localhost  simplex.local  otto A 192.168.246.23&lt;br /&gt;
=pam ldap=&lt;br /&gt;
*http://zachbethel.com/2013/04/10/linux-ldap-authentication-with-samba4/&lt;br /&gt;
=ldapbackend=&lt;br /&gt;
*http://www.foteviken.de/?p=1925&lt;br /&gt;
=samba-and-active-directory=&lt;br /&gt;
*http://www.held-im-ruhestand.de/software/samba-and-active-directory&lt;br /&gt;
=domain member=&lt;br /&gt;
*https://wiki.samba.org/index.php/Samba4/Domain_Member&lt;br /&gt;
=group policiy=&lt;br /&gt;
*http://www.alexwyn.com/computer-tips/folder-redirection-samba4-active-directory-domain-controller&lt;br /&gt;
=movies=&lt;br /&gt;
*http://www.samba.org/tridge/Samba4Demo/&lt;br /&gt;
&lt;br /&gt;
=Kennwortrichtlinie deaktivieren=&lt;br /&gt;
 Du gehst in die Gruppenrichtlinienverwaltung.&lt;br /&gt;
 Dann gehst du in das Verzecihnis deiner gewünschten Domäne.&lt;br /&gt;
 Jetzt solltest du einen eintrag sehen, der sich &amp;quot;Default Domain Controllers Policy&amp;quot; nennt.&lt;br /&gt;
 Mit rechter Maustaste draufklicken und bearbeiten. Dann öffnet sich der Gruppenrichtlinienverwaltungs-Editor&lt;br /&gt;
 (Achtung! Auf den ersten Blick sehr leicht mit der Gruppenrichtlinienverwaltung zu verwechseln).&lt;br /&gt;
 Jetzt schaust du unter &amp;quot;Computerconfiguration&amp;gt; Richtlinien&amp;gt; Windows-Einstellungen&amp;gt; Sicherheitseinstellungen&amp;gt; Kontorichtlinien&amp;gt; Kennwortrichtlinien.&lt;br /&gt;
 &lt;br /&gt;
 Dort darf man dann endlich die Kennwortrichtlinie deaktivieren.&lt;br /&gt;
&lt;br /&gt;
=debian=&lt;br /&gt;
*http://chris-blog.net/2014/01/freigaben-auf-einem-samba-4-server-einrichten/&lt;br /&gt;
=ubuntu=&lt;br /&gt;
http://xiep.de/allgemein/ubuntu-server-12-04-mit-samba-4-und-active-directory-pdc/&lt;br /&gt;
=dns=&lt;br /&gt;
https://wiki.archlinux.org/index.php/Samba_4_Active_Directory_Domain_Controller&lt;br /&gt;
=kennwortrichtlinien=&lt;br /&gt;
http://chris-blog.net/2014/01/kennwortrichtlinie-in-samba-4-domain-deaktivieren/&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Samba4&amp;diff=4070</id>
		<title>Samba4</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Samba4&amp;diff=4070"/>
		<updated>2014-02-26T13:32:25Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Installation=&lt;br /&gt;
==Misc==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=samba upstart script=&lt;br /&gt;
&lt;br /&gt;
 description &amp;quot;SMB/CIFS File and Active Directory Server&amp;quot;&lt;br /&gt;
 author      &amp;quot;Jelmer Vernooij &amp;lt;jelmer@ubuntu.com&amp;gt;&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
 start on (local-filesystems and net-device-up)&lt;br /&gt;
 stop on runlevel [!2345]&lt;br /&gt;
 &lt;br /&gt;
 expect fork&lt;br /&gt;
 normal exit 0 &lt;br /&gt;
 &lt;br /&gt;
 pre-start script&lt;br /&gt;
 	[ -r /etc/default/samba4 ] &amp;amp;&amp;amp; . /etc/default/samba4&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/run/samba&lt;br /&gt;
 	install -o root -g root -m 755 -d /var/log/samba&lt;br /&gt;
 end script &lt;br /&gt;
  &lt;br /&gt;
 exec samba -D &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=howto=&lt;br /&gt;
https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO&lt;br /&gt;
&lt;br /&gt;
=installation=&lt;br /&gt;
*http://ubuntuforums.org/showthread.php?t=2146198&lt;br /&gt;
&lt;br /&gt;
=dns=&lt;br /&gt;
*zone anlegen&lt;br /&gt;
 samba-tool dns add localhost  simplex.local  otto A 192.168.246.23&lt;br /&gt;
=pam ldap=&lt;br /&gt;
*http://zachbethel.com/2013/04/10/linux-ldap-authentication-with-samba4/&lt;br /&gt;
=ldapbackend=&lt;br /&gt;
*http://www.foteviken.de/?p=1925&lt;br /&gt;
=samba-and-active-directory=&lt;br /&gt;
*http://www.held-im-ruhestand.de/software/samba-and-active-directory&lt;br /&gt;
=domain member=&lt;br /&gt;
*https://wiki.samba.org/index.php/Samba4/Domain_Member&lt;br /&gt;
=group policiy=&lt;br /&gt;
*http://www.alexwyn.com/computer-tips/folder-redirection-samba4-active-directory-domain-controller&lt;br /&gt;
=movies=&lt;br /&gt;
*http://www.samba.org/tridge/Samba4Demo/&lt;br /&gt;
&lt;br /&gt;
=Kennwortrichtlinie deaktivieren=&lt;br /&gt;
 Du gehst in die Gruppenrichtlinienverwaltung.&lt;br /&gt;
 Dann gehst du in das Verzecihnis deiner gewünschten Domäne.&lt;br /&gt;
 Jetzt solltest du einen eintrag sehen, der sich &amp;quot;Default Domain Controllers Policy&amp;quot; nennt.&lt;br /&gt;
 Mit rechter Maustaste draufklicken und bearbeiten. Dann öffnet sich der Gruppenrichtlinienverwaltungs-Editor&lt;br /&gt;
 (Achtung! Auf den ersten Blick sehr leicht mit der Gruppenrichtlinienverwaltung zu verwechseln).&lt;br /&gt;
 Jetzt schaust du unter &amp;quot;Computerconfiguration&amp;gt; Richtlinien&amp;gt; Windows-Einstellungen&amp;gt; Sicherheitseinstellungen&amp;gt; Kontorichtlinien&amp;gt; Kennwortrichtlinien.&lt;br /&gt;
 &lt;br /&gt;
 Dort darf man dann endlich die Kennwortrichtlinie deaktivieren.&lt;br /&gt;
&lt;br /&gt;
=debian=&lt;br /&gt;
*http://chris-blog.net/2014/01/freigaben-auf-einem-samba-4-server-einrichten/&lt;br /&gt;
=ubuntu=&lt;br /&gt;
http://xiep.de/allgemein/ubuntu-server-12-04-mit-samba-4-und-active-directory-pdc/&lt;br /&gt;
=dns=&lt;br /&gt;
https://wiki.archlinux.org/index.php/Samba_4_Active_Directory_Domain_Controller&lt;br /&gt;
=kennwortrichtlinien=&lt;br /&gt;
http://chris-blog.net/2014/01/kennwortrichtlinie-in-samba-4-domain-deaktivieren/&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Proxmox&amp;diff=4057</id>
		<title>Proxmox</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Proxmox&amp;diff=4057"/>
		<updated>2014-02-17T10:45:49Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* bridgeutils */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Infos - Hostsystem=&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox.jpg|1050px]]&lt;br /&gt;
&lt;br /&gt;
* über die URL: https://HOST-IP:8006/ kann man auf das Webinterface zugreifen.&lt;br /&gt;
&lt;br /&gt;
* Die klassische Ansicht zeigt links die Server/VM-Liste und in der Mitte die verschiedenen Monitore/Parameter sowie Einstellungsmöglichkeiten.&lt;br /&gt;
&lt;br /&gt;
* unten befindet sich der Serverlog, welcher die aktuellen Prozesse/Aufgaben anzeigt.&lt;br /&gt;
&lt;br /&gt;
==Neue VM anlegen/löschen==&lt;br /&gt;
&lt;br /&gt;
: '''1.''' Man klickt den Knotenpunkt an&lt;br /&gt;
: '''2.''' Auf den &amp;quot;Erstelle VM&amp;quot;-Button oben rechts klicken&lt;br /&gt;
: '''3.''' Die jeweiligen Spezifikationen eintragen&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox2.jpg]]&lt;br /&gt;
&lt;br /&gt;
: '''4.''' VM wird normalerweise automatisch danach gestartet, wenn nicht -&amp;gt; starten!&lt;br /&gt;
: '''5.''' Die VM in der Hostliste links auswählen und danach auf &amp;quot;Konsole&amp;quot; oben rechts klicken. (dafür muss Java installiert sein, siehe Troubleshoot)&lt;br /&gt;
: '''6.''' Nun seht ihr ein neues Browserfenster, mit der grafischen Ausgabe der VM.&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox3.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
: '''7.''' Fertig installieren.&lt;br /&gt;
: '''8.''' VM herunterfahren&lt;br /&gt;
: '''9.''' Vm anklicken, Optionen auswählen, Bootreihenfolge per Doppelklick anpassen!&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox5.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
: '''10.''' anwählen der VM, und einen Klick auf &amp;quot;Entfernen&amp;quot; oben rechts, führt zum löschen der VM&lt;br /&gt;
&lt;br /&gt;
==Storage über webinterface==&lt;br /&gt;
&lt;br /&gt;
: '''1.''' &amp;quot;Rechenzentrum&amp;quot; anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Storage&amp;quot; wechseln&lt;br /&gt;
: '''3.''' &amp;quot;Hinzufügen/entfernen/Bearbeiten&amp;quot; nach belieben drücken&lt;br /&gt;
&lt;br /&gt;
'''Beispiel hier: NFS'''&lt;br /&gt;
[[Datei:proxmox6.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: '''4.''' Wählt euer Storagetyp (NFS/iSCSI/Directory/etc...)&lt;br /&gt;
: '''5.''' Wählt bei Inhalt '''alles''' aus und setzt &amp;quot;Max Backups&amp;quot; nach oben. (Dieser Parameter gibt die maximale Anzahl an mlgichen Backups auf dem Speicher an.)&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox7.jpg]]&lt;br /&gt;
&lt;br /&gt;
: YT-Video: http://www.youtube.com/watch?v=kHyf_l1Q1ow&lt;br /&gt;
&lt;br /&gt;
===Storage über Konsole mounten===&lt;br /&gt;
====template/isos====&lt;br /&gt;
 cd /var/lib/vz&lt;br /&gt;
 rm -r iso/ &amp;amp;&amp;amp; ln -s /mnt/MOUNTPUNKFÜRDEINEISOS/ iso&lt;br /&gt;
====bestehende VMs====&lt;br /&gt;
 cd /var/lib/vz&lt;br /&gt;
 rm -r images/ &amp;amp;&amp;amp; ln -s /mnt/MOUNTPUNKFÜRDEINEVMS/ images&lt;br /&gt;
&lt;br /&gt;
Danach müssen noch die confs kopiert werden.&lt;br /&gt;
&lt;br /&gt;
 /etc/pve/qemu-server/ vom originalsystem kopieren oder auch mounten&lt;br /&gt;
 cd /etc/pve/&lt;br /&gt;
 rm -r qemu-server/ &amp;amp;&amp;amp; ln -s /mnt/MOUNTPUNKFÜRDEINEVMCONFS/ qemu-server&lt;br /&gt;
&lt;br /&gt;
'''ACHTUNG: wenn die confs kopiert werden, müssen die Pfadangaben überarbeitet werden!'''&lt;br /&gt;
&lt;br /&gt;
==Migration==&lt;br /&gt;
&lt;br /&gt;
Rechtsklick auf die VM und &amp;quot;Migration&amp;quot; auswählen, dazu muss ein weiterer Knoten bekannt sein. (Knoten = ProxmoxVE-Host)&lt;br /&gt;
: YT-Video: http://www.youtube.com/watch?v=AkimEEHArqg&lt;br /&gt;
&lt;br /&gt;
===Image einfügen===&lt;br /&gt;
&lt;br /&gt;
1. auf dem Host System das gewünscht Image (raw/.img) hinterlegen&lt;br /&gt;
&lt;br /&gt;
2. eine neue VM anlegen und den gewünschten Typ anlegen! (qcow2/raw/vmdk)&lt;br /&gt;
&lt;br /&gt;
3. Bei Bedarf das Image konvertieren: &lt;br /&gt;
 qemu-img -f raw -O qcow2 input.img output.qcow2&lt;br /&gt;
&lt;br /&gt;
4. Das Image mit dem erstellen Datenspeicher ersetzen:&lt;br /&gt;
 cp input.img ../&amp;quot;VM-ID&amp;quot;/vm-&amp;quot;VM-ID&amp;quot;-disk-1.qcow2&lt;br /&gt;
 Beispiel: cp input.img ../101/vm-101-disk-1.qcow2&lt;br /&gt;
&lt;br /&gt;
5. vm starten&lt;br /&gt;
&lt;br /&gt;
: Link: http://agix.com.au/blog/?p=2696&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Storage einfügen ===&lt;br /&gt;
&lt;br /&gt;
==Backup==&lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gibt es 3 Arten, eine VM zu backupen.&lt;br /&gt;
&lt;br /&gt;
: '''1.''' stop-mode (Da wird die VM komplett heruntergefahren. lange downtime)&lt;br /&gt;
: '''2.''' suspend-mode (VM wird in den Ruhemodus versetzt. kurze Downtime)&lt;br /&gt;
: '''3.''' snapshot-mode (VM bleibt aktiv beim Backup)&lt;br /&gt;
===webinterface===&lt;br /&gt;
====Backup erstellen====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' VM anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Backup&amp;quot; wechseln&lt;br /&gt;
: '''3.''' &amp;quot;Backup starten&amp;quot; auswählen&lt;br /&gt;
: '''4.''' Kompression, Storage und mode angeben&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox8.jpg]]&lt;br /&gt;
&lt;br /&gt;
: '''5.''' Wenn das Backup fertig ist, seht ihr nun einen Eintrag in der &amp;quot;Backup-Liste&amp;quot; '''(Beispiel hier: VM: -101 seven-)'''&lt;br /&gt;
: '''(eventuell noch den Storage oben rechts anpassen...&lt;br /&gt;
'''&lt;br /&gt;
[[Datei:proxmox9.jpg]]&lt;br /&gt;
&lt;br /&gt;
====Backup aufspielen====&lt;br /&gt;
&lt;br /&gt;
: '''oben rechts euer Backup-Storage auswählen!'''&lt;br /&gt;
&lt;br /&gt;
: '''1.''' In der Hostleiste links, muss das Backupverzeichnis geöffnet werden&lt;br /&gt;
: '''2.''' Danach auf den Reiter &amp;quot;Inhalt&amp;quot; wechseln&lt;br /&gt;
: '''3.''' Hier ist eine Liste mit Images/Backups/Snapshots/etc. zu sehen&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox10.jpg]]&lt;br /&gt;
&lt;br /&gt;
: '''4.''' Backup anwählen, und zurückspieln&lt;br /&gt;
&lt;br /&gt;
====Snapshot live====&lt;br /&gt;
&lt;br /&gt;
=====erstellen=====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' VM anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Snapshots&amp;quot; wechseln&lt;br /&gt;
: '''3.''' &amp;quot;Snapshot erstellen&amp;quot; auswählen&lt;br /&gt;
: '''4.''' Beschreibung und Name eingeben.&lt;br /&gt;
&lt;br /&gt;
=====rollback=====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' VM anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Snapshots&amp;quot; wechseln&lt;br /&gt;
: '''3.''' gewünschtes Snapshot auswählen&lt;br /&gt;
: '''4.''' &amp;quot;Rollback&amp;quot; drücken&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===console===&lt;br /&gt;
====Backup erstellen====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' als root einloggen&lt;br /&gt;
: '''2.''' VM-ID der zu backupenden VM auswählen&lt;br /&gt;
: '''3.''' Kompression, Storage und mode angeben&lt;br /&gt;
: '''4.''' Backup erstellen:&lt;br /&gt;
 &lt;br /&gt;
 vzdump $VMID --remove 0 --mode $MODE --compress $COMP --storage $STOR --node $HOSTSYSTEM&lt;br /&gt;
 mode-usage: snapshot | stop | suspend&lt;br /&gt;
 compress-usage: 0 | 1 | gzip | lzo (lzo is default)&lt;br /&gt;
 storage: im webinterface kann man die gemounteten Storages einsehen&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 vzdump 102 --remove 0 --mode stop --compress lzo --storage bucket-one --node moxxie&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Backup aufspielen====&lt;br /&gt;
&lt;br /&gt;
: '''Das Backup auf dem Storage suchen. Bei mir wurde das Verzeichnis &amp;quot;dump&amp;quot; erstellt. (bucket-one ist hier der gemountete Speicher)'''&lt;br /&gt;
&lt;br /&gt;
: '''1.'''  lzop -d -c /mnt/pve/bucket-one/dump/vzdump-qemu-102-2013_11_07-13_40_03.vma.lzo|vma extract -v -r /var/tmp/vzdumptmp161098.fifo - /var/tmp/vzdumptmp161098&lt;br /&gt;
: '''2.''' &amp;quot;zurückspielen&amp;quot;&lt;br /&gt;
: '''3.''' VM-ID und Storage auswählen&lt;br /&gt;
: '''4.''' (Das ist btw auch ein Weg die VM zu kopieren)&lt;br /&gt;
&lt;br /&gt;
====Snapshot live====&lt;br /&gt;
&lt;br /&gt;
=====erstellen=====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' VM anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Snapshots&amp;quot; wechseln&lt;br /&gt;
: '''3.''' &amp;quot;Snapshot erstellen&amp;quot; auswählen&lt;br /&gt;
: '''4.''' Beschreibung und Name eingeben.&lt;br /&gt;
&lt;br /&gt;
=====rollback=====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' VM anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Snapshots&amp;quot; wechseln&lt;br /&gt;
: '''3.''' gewünschtes Snapshot auswählen&lt;br /&gt;
: '''4.''' &amp;quot;Rollback&amp;quot; drücken&lt;br /&gt;
&lt;br /&gt;
=Troubleshoot=&lt;br /&gt;
==bridge==&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
Beispiel.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto vmbr0&lt;br /&gt;
iface vmbr0 inet static&lt;br /&gt;
        address  192.168.240.187&lt;br /&gt;
        netmask  255.255.248.0&lt;br /&gt;
        gateway  192.168.240.100&lt;br /&gt;
        bridge_ports eth0&lt;br /&gt;
        bridge_stp off&lt;br /&gt;
        bridge_fd 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==VNC Ports umlegen==&lt;br /&gt;
===Für Proxmox /3.X2.X===&lt;br /&gt;
 vi /usr/share/perl5/PVE/Tools.pm&lt;br /&gt;
&lt;br /&gt;
Ändern von diesen Zeilen, (ca. Zeile 724)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sub next_vnc_port {&lt;br /&gt;
    return next_unused_port(5900, 6000);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in diese Zeilen: (gewünschte Ports eintragen[Bsp.: 6900-7000])&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sub next_vnc_port {&lt;br /&gt;
    return next_unused_port(6900, 7000);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Proxmox-System muss neugestartet werden!&lt;br /&gt;
&lt;br /&gt;
===Für Proxmox 1.X===&lt;br /&gt;
 vi /usr/share/perl5/PVE/ConfigServer.pm&lt;br /&gt;
&lt;br /&gt;
Ändern von dieser Zeile, &lt;br /&gt;
 for (my $p = 5900; $p &amp;lt; 6000; $p++) {&lt;br /&gt;
&lt;br /&gt;
in diese Zeile: (gewünschte Ports eintragen[Bsp.: 6900-7000])&lt;br /&gt;
 for (my $p = 6900; $p &amp;lt; 7000; $p++) {&lt;br /&gt;
&lt;br /&gt;
Das Proxmox-System muss neugestartet werden!&lt;br /&gt;
&lt;br /&gt;
==USB pass through==&lt;br /&gt;
&lt;br /&gt;
mit das device ermitteln&lt;br /&gt;
 lsusb&lt;br /&gt;
&lt;br /&gt;
Beispiel: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@moxxie:/var/log/vzdump# lsusb   &lt;br /&gt;
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 008 Device 002: ID 046d:c315 Logitech, Inc. Classic New Touch Keyboard&lt;br /&gt;
Bus 008 Device 003: ID 04d8:fa0d Microchip Technology, Inc.&lt;br /&gt;
root@moxxie:/var/log/vzdump# &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wir suchen dieses Gerät und wollen es durchtunneln:&lt;br /&gt;
 Bus 008 Device 003: ID 04d8:fa0d Microchip Technology, Inc.&lt;br /&gt;
&lt;br /&gt;
danach das USBGerät durchtunneln&lt;br /&gt;
 qm set $VMID -usb0 host=$VENDOR:$PRODID&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 qm set 110 -usb0 host=04d8:fa0d&lt;br /&gt;
&lt;br /&gt;
==Port list==&lt;br /&gt;
&lt;br /&gt;
 Web interface: 8006&lt;br /&gt;
 VNC Web console: 5900-5999&lt;br /&gt;
 SPICE console: 3128&lt;br /&gt;
 SSH access (only optional): 22&lt;br /&gt;
 CMAN multicast (if you run a cluster): 5404, 5405 UDP&lt;br /&gt;
&lt;br /&gt;
==VM-Killen==&lt;br /&gt;
&lt;br /&gt;
Mit SSH auf den Knoten/server connecten.&lt;br /&gt;
&lt;br /&gt;
Danach mit '''&amp;quot;ps -elf | grep kvm&amp;quot;''' die VM suchen und mit &amp;quot;kill&amp;quot; töten...&lt;br /&gt;
&lt;br /&gt;
==Validation entfernen==&lt;br /&gt;
backup the file:&lt;br /&gt;
 cp /usr/share/pve-manager/ext4/pvemanagerlib.js /usr/share/pve-manager/ext4/pvemanagerlib.js_BKP&lt;br /&gt;
&lt;br /&gt;
open the file&lt;br /&gt;
 vi /usr/share/pve-manager/ext4/pvemanagerlib.js +454&lt;br /&gt;
&lt;br /&gt;
change the line &lt;br /&gt;
 if (data.status !== 'Active') {&lt;br /&gt;
&lt;br /&gt;
to below:&lt;br /&gt;
 if (false) {&lt;br /&gt;
&lt;br /&gt;
==Manual: qm==&lt;br /&gt;
*http://pve.proxmox.com/wiki/Manual:_qm&lt;br /&gt;
&lt;br /&gt;
==Java Konsole==&lt;br /&gt;
&lt;br /&gt;
Laut Proxmox einfach updaten!&lt;br /&gt;
Stable version: '''7 Patch45 32bit @Windows7'''&lt;br /&gt;
&lt;br /&gt;
*http://pve.proxmox.com/wiki/Java_Console_%28Ubuntu%29&lt;br /&gt;
&lt;br /&gt;
==Install Proxmox VE on Debian Squeeze==&lt;br /&gt;
: http://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Squeeze&lt;br /&gt;
==Install Proxmox VE on Debian Wheezy==&lt;br /&gt;
: http://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Wheezy&lt;br /&gt;
&lt;br /&gt;
==Hetzner Proxmox installieren==&lt;br /&gt;
: http://wiki.hetzner.de/index.php/Proxmox_VE#Netzwerkkonfiguration_KVM.2FBridged&lt;br /&gt;
&lt;br /&gt;
==Konfigfiles==&lt;br /&gt;
 /etc/pve/qemu-server/&lt;br /&gt;
==Isos==&lt;br /&gt;
 /var/lib/vz/template/iso&lt;br /&gt;
&lt;br /&gt;
=QM=&lt;br /&gt;
== listen der virtuellen maschinen ==&lt;br /&gt;
 root@betor:~# qm list &lt;br /&gt;
      VMID NAME                 STATUS     MEM(MB)    BOOTDISK(GB) PID       &lt;br /&gt;
       100 jello                running    4096              32.00 6942      &lt;br /&gt;
       101 seven                stopped    4096              32.00 0         &lt;br /&gt;
       102 icinga               stopped    1024              10.00 0         &lt;br /&gt;
       103 VM 103               stopped    0                  0.00 0         &lt;br /&gt;
       104 symantec             stopped    2048             250.00 0         &lt;br /&gt;
       108 icinga               stopped    1024              10.00 0&lt;br /&gt;
== starten der virtuellen maschinen ==&lt;br /&gt;
 root@betor:~# qm start 101&lt;br /&gt;
== stoppen der virtuellen maschinen ==&lt;br /&gt;
 root@betor:~# qm stop 101&lt;br /&gt;
== config der virtuellen maschinen auslesen ==&lt;br /&gt;
 root@betor:~# qm config 101&lt;br /&gt;
 boot: dcn&lt;br /&gt;
 bootdisk: ide0&lt;br /&gt;
 cores: 2&lt;br /&gt;
 ide0: local:101/vm-101-disk-1.qcow2,format=qcow2,size=32G&lt;br /&gt;
 ide2: none,media=cdrom&lt;br /&gt;
 memory: 4096&lt;br /&gt;
 name: seven&lt;br /&gt;
 net0: e1000=2A:06:D1:86:82:37,bridge=vmbr0&lt;br /&gt;
 ostype: win7&lt;br /&gt;
 sockets: 2&lt;br /&gt;
== shutdown einer virtuellen maschine ==&lt;br /&gt;
 root@betor:~# qm shutdown 101&lt;br /&gt;
== status einer virtuellen maschine anzeigen ==&lt;br /&gt;
 root@betor:~# qm status 101&lt;br /&gt;
 status: running&lt;br /&gt;
== virtuelle maschine erstellen ==&lt;br /&gt;
  qm create 115 --cdrom local:iso/ubuntu-6.06.1-desktop-i386.iso  --name ubuntu6 --net0 virtio=62:57:BC:A2:0E:18 \ &lt;br /&gt;
     --ide0  local:115/vm-115-disk-1.qcow2,format=qcow2,size=20G     --ostype l26 --memory 512 --onboot no --sockets 2&lt;br /&gt;
&lt;br /&gt;
== virtuelle maschine inklusive Volumes löschen==&lt;br /&gt;
 qm destroy 115&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
: Link für die cmd-Liste: http://pve.proxmox.com/wiki/Command_line_tools&lt;br /&gt;
: Link für QM-manual: http://pve.proxmox.com/wiki/Qm_manual&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Proxmox&amp;diff=4056</id>
		<title>Proxmox</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Proxmox&amp;diff=4056"/>
		<updated>2014-02-17T10:45:29Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* bridgeutils */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Infos - Hostsystem=&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox.jpg|1050px]]&lt;br /&gt;
&lt;br /&gt;
* über die URL: https://HOST-IP:8006/ kann man auf das Webinterface zugreifen.&lt;br /&gt;
&lt;br /&gt;
* Die klassische Ansicht zeigt links die Server/VM-Liste und in der Mitte die verschiedenen Monitore/Parameter sowie Einstellungsmöglichkeiten.&lt;br /&gt;
&lt;br /&gt;
* unten befindet sich der Serverlog, welcher die aktuellen Prozesse/Aufgaben anzeigt.&lt;br /&gt;
&lt;br /&gt;
==Neue VM anlegen/löschen==&lt;br /&gt;
&lt;br /&gt;
: '''1.''' Man klickt den Knotenpunkt an&lt;br /&gt;
: '''2.''' Auf den &amp;quot;Erstelle VM&amp;quot;-Button oben rechts klicken&lt;br /&gt;
: '''3.''' Die jeweiligen Spezifikationen eintragen&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox2.jpg]]&lt;br /&gt;
&lt;br /&gt;
: '''4.''' VM wird normalerweise automatisch danach gestartet, wenn nicht -&amp;gt; starten!&lt;br /&gt;
: '''5.''' Die VM in der Hostliste links auswählen und danach auf &amp;quot;Konsole&amp;quot; oben rechts klicken. (dafür muss Java installiert sein, siehe Troubleshoot)&lt;br /&gt;
: '''6.''' Nun seht ihr ein neues Browserfenster, mit der grafischen Ausgabe der VM.&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox3.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
: '''7.''' Fertig installieren.&lt;br /&gt;
: '''8.''' VM herunterfahren&lt;br /&gt;
: '''9.''' Vm anklicken, Optionen auswählen, Bootreihenfolge per Doppelklick anpassen!&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox5.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
: '''10.''' anwählen der VM, und einen Klick auf &amp;quot;Entfernen&amp;quot; oben rechts, führt zum löschen der VM&lt;br /&gt;
&lt;br /&gt;
==Storage über webinterface==&lt;br /&gt;
&lt;br /&gt;
: '''1.''' &amp;quot;Rechenzentrum&amp;quot; anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Storage&amp;quot; wechseln&lt;br /&gt;
: '''3.''' &amp;quot;Hinzufügen/entfernen/Bearbeiten&amp;quot; nach belieben drücken&lt;br /&gt;
&lt;br /&gt;
'''Beispiel hier: NFS'''&lt;br /&gt;
[[Datei:proxmox6.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: '''4.''' Wählt euer Storagetyp (NFS/iSCSI/Directory/etc...)&lt;br /&gt;
: '''5.''' Wählt bei Inhalt '''alles''' aus und setzt &amp;quot;Max Backups&amp;quot; nach oben. (Dieser Parameter gibt die maximale Anzahl an mlgichen Backups auf dem Speicher an.)&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox7.jpg]]&lt;br /&gt;
&lt;br /&gt;
: YT-Video: http://www.youtube.com/watch?v=kHyf_l1Q1ow&lt;br /&gt;
&lt;br /&gt;
===Storage über Konsole mounten===&lt;br /&gt;
====template/isos====&lt;br /&gt;
 cd /var/lib/vz&lt;br /&gt;
 rm -r iso/ &amp;amp;&amp;amp; ln -s /mnt/MOUNTPUNKFÜRDEINEISOS/ iso&lt;br /&gt;
====bestehende VMs====&lt;br /&gt;
 cd /var/lib/vz&lt;br /&gt;
 rm -r images/ &amp;amp;&amp;amp; ln -s /mnt/MOUNTPUNKFÜRDEINEVMS/ images&lt;br /&gt;
&lt;br /&gt;
Danach müssen noch die confs kopiert werden.&lt;br /&gt;
&lt;br /&gt;
 /etc/pve/qemu-server/ vom originalsystem kopieren oder auch mounten&lt;br /&gt;
 cd /etc/pve/&lt;br /&gt;
 rm -r qemu-server/ &amp;amp;&amp;amp; ln -s /mnt/MOUNTPUNKFÜRDEINEVMCONFS/ qemu-server&lt;br /&gt;
&lt;br /&gt;
'''ACHTUNG: wenn die confs kopiert werden, müssen die Pfadangaben überarbeitet werden!'''&lt;br /&gt;
&lt;br /&gt;
==Migration==&lt;br /&gt;
&lt;br /&gt;
Rechtsklick auf die VM und &amp;quot;Migration&amp;quot; auswählen, dazu muss ein weiterer Knoten bekannt sein. (Knoten = ProxmoxVE-Host)&lt;br /&gt;
: YT-Video: http://www.youtube.com/watch?v=AkimEEHArqg&lt;br /&gt;
&lt;br /&gt;
===Image einfügen===&lt;br /&gt;
&lt;br /&gt;
1. auf dem Host System das gewünscht Image (raw/.img) hinterlegen&lt;br /&gt;
&lt;br /&gt;
2. eine neue VM anlegen und den gewünschten Typ anlegen! (qcow2/raw/vmdk)&lt;br /&gt;
&lt;br /&gt;
3. Bei Bedarf das Image konvertieren: &lt;br /&gt;
 qemu-img -f raw -O qcow2 input.img output.qcow2&lt;br /&gt;
&lt;br /&gt;
4. Das Image mit dem erstellen Datenspeicher ersetzen:&lt;br /&gt;
 cp input.img ../&amp;quot;VM-ID&amp;quot;/vm-&amp;quot;VM-ID&amp;quot;-disk-1.qcow2&lt;br /&gt;
 Beispiel: cp input.img ../101/vm-101-disk-1.qcow2&lt;br /&gt;
&lt;br /&gt;
5. vm starten&lt;br /&gt;
&lt;br /&gt;
: Link: http://agix.com.au/blog/?p=2696&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Storage einfügen ===&lt;br /&gt;
&lt;br /&gt;
==Backup==&lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gibt es 3 Arten, eine VM zu backupen.&lt;br /&gt;
&lt;br /&gt;
: '''1.''' stop-mode (Da wird die VM komplett heruntergefahren. lange downtime)&lt;br /&gt;
: '''2.''' suspend-mode (VM wird in den Ruhemodus versetzt. kurze Downtime)&lt;br /&gt;
: '''3.''' snapshot-mode (VM bleibt aktiv beim Backup)&lt;br /&gt;
===webinterface===&lt;br /&gt;
====Backup erstellen====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' VM anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Backup&amp;quot; wechseln&lt;br /&gt;
: '''3.''' &amp;quot;Backup starten&amp;quot; auswählen&lt;br /&gt;
: '''4.''' Kompression, Storage und mode angeben&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox8.jpg]]&lt;br /&gt;
&lt;br /&gt;
: '''5.''' Wenn das Backup fertig ist, seht ihr nun einen Eintrag in der &amp;quot;Backup-Liste&amp;quot; '''(Beispiel hier: VM: -101 seven-)'''&lt;br /&gt;
: '''(eventuell noch den Storage oben rechts anpassen...&lt;br /&gt;
'''&lt;br /&gt;
[[Datei:proxmox9.jpg]]&lt;br /&gt;
&lt;br /&gt;
====Backup aufspielen====&lt;br /&gt;
&lt;br /&gt;
: '''oben rechts euer Backup-Storage auswählen!'''&lt;br /&gt;
&lt;br /&gt;
: '''1.''' In der Hostleiste links, muss das Backupverzeichnis geöffnet werden&lt;br /&gt;
: '''2.''' Danach auf den Reiter &amp;quot;Inhalt&amp;quot; wechseln&lt;br /&gt;
: '''3.''' Hier ist eine Liste mit Images/Backups/Snapshots/etc. zu sehen&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox10.jpg]]&lt;br /&gt;
&lt;br /&gt;
: '''4.''' Backup anwählen, und zurückspieln&lt;br /&gt;
&lt;br /&gt;
====Snapshot live====&lt;br /&gt;
&lt;br /&gt;
=====erstellen=====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' VM anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Snapshots&amp;quot; wechseln&lt;br /&gt;
: '''3.''' &amp;quot;Snapshot erstellen&amp;quot; auswählen&lt;br /&gt;
: '''4.''' Beschreibung und Name eingeben.&lt;br /&gt;
&lt;br /&gt;
=====rollback=====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' VM anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Snapshots&amp;quot; wechseln&lt;br /&gt;
: '''3.''' gewünschtes Snapshot auswählen&lt;br /&gt;
: '''4.''' &amp;quot;Rollback&amp;quot; drücken&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===console===&lt;br /&gt;
====Backup erstellen====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' als root einloggen&lt;br /&gt;
: '''2.''' VM-ID der zu backupenden VM auswählen&lt;br /&gt;
: '''3.''' Kompression, Storage und mode angeben&lt;br /&gt;
: '''4.''' Backup erstellen:&lt;br /&gt;
 &lt;br /&gt;
 vzdump $VMID --remove 0 --mode $MODE --compress $COMP --storage $STOR --node $HOSTSYSTEM&lt;br /&gt;
 mode-usage: snapshot | stop | suspend&lt;br /&gt;
 compress-usage: 0 | 1 | gzip | lzo (lzo is default)&lt;br /&gt;
 storage: im webinterface kann man die gemounteten Storages einsehen&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 vzdump 102 --remove 0 --mode stop --compress lzo --storage bucket-one --node moxxie&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Backup aufspielen====&lt;br /&gt;
&lt;br /&gt;
: '''Das Backup auf dem Storage suchen. Bei mir wurde das Verzeichnis &amp;quot;dump&amp;quot; erstellt. (bucket-one ist hier der gemountete Speicher)'''&lt;br /&gt;
&lt;br /&gt;
: '''1.'''  lzop -d -c /mnt/pve/bucket-one/dump/vzdump-qemu-102-2013_11_07-13_40_03.vma.lzo|vma extract -v -r /var/tmp/vzdumptmp161098.fifo - /var/tmp/vzdumptmp161098&lt;br /&gt;
: '''2.''' &amp;quot;zurückspielen&amp;quot;&lt;br /&gt;
: '''3.''' VM-ID und Storage auswählen&lt;br /&gt;
: '''4.''' (Das ist btw auch ein Weg die VM zu kopieren)&lt;br /&gt;
&lt;br /&gt;
====Snapshot live====&lt;br /&gt;
&lt;br /&gt;
=====erstellen=====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' VM anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Snapshots&amp;quot; wechseln&lt;br /&gt;
: '''3.''' &amp;quot;Snapshot erstellen&amp;quot; auswählen&lt;br /&gt;
: '''4.''' Beschreibung und Name eingeben.&lt;br /&gt;
&lt;br /&gt;
=====rollback=====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' VM anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Snapshots&amp;quot; wechseln&lt;br /&gt;
: '''3.''' gewünschtes Snapshot auswählen&lt;br /&gt;
: '''4.''' &amp;quot;Rollback&amp;quot; drücken&lt;br /&gt;
&lt;br /&gt;
=Troubleshoot=&lt;br /&gt;
==bridgeutils==&lt;br /&gt;
 apt-get install bridgeultils&lt;br /&gt;
&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
Beispiel.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto vmbr0&lt;br /&gt;
iface vmbr0 inet static&lt;br /&gt;
        address  192.168.240.187&lt;br /&gt;
        netmask  255.255.248.0&lt;br /&gt;
        gateway  192.168.240.100&lt;br /&gt;
        bridge_ports eth0&lt;br /&gt;
        bridge_stp off&lt;br /&gt;
        bridge_fd 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==VNC Ports umlegen==&lt;br /&gt;
===Für Proxmox /3.X2.X===&lt;br /&gt;
 vi /usr/share/perl5/PVE/Tools.pm&lt;br /&gt;
&lt;br /&gt;
Ändern von diesen Zeilen, (ca. Zeile 724)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sub next_vnc_port {&lt;br /&gt;
    return next_unused_port(5900, 6000);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in diese Zeilen: (gewünschte Ports eintragen[Bsp.: 6900-7000])&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sub next_vnc_port {&lt;br /&gt;
    return next_unused_port(6900, 7000);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Proxmox-System muss neugestartet werden!&lt;br /&gt;
&lt;br /&gt;
===Für Proxmox 1.X===&lt;br /&gt;
 vi /usr/share/perl5/PVE/ConfigServer.pm&lt;br /&gt;
&lt;br /&gt;
Ändern von dieser Zeile, &lt;br /&gt;
 for (my $p = 5900; $p &amp;lt; 6000; $p++) {&lt;br /&gt;
&lt;br /&gt;
in diese Zeile: (gewünschte Ports eintragen[Bsp.: 6900-7000])&lt;br /&gt;
 for (my $p = 6900; $p &amp;lt; 7000; $p++) {&lt;br /&gt;
&lt;br /&gt;
Das Proxmox-System muss neugestartet werden!&lt;br /&gt;
&lt;br /&gt;
==USB pass through==&lt;br /&gt;
&lt;br /&gt;
mit das device ermitteln&lt;br /&gt;
 lsusb&lt;br /&gt;
&lt;br /&gt;
Beispiel: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@moxxie:/var/log/vzdump# lsusb   &lt;br /&gt;
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 008 Device 002: ID 046d:c315 Logitech, Inc. Classic New Touch Keyboard&lt;br /&gt;
Bus 008 Device 003: ID 04d8:fa0d Microchip Technology, Inc.&lt;br /&gt;
root@moxxie:/var/log/vzdump# &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wir suchen dieses Gerät und wollen es durchtunneln:&lt;br /&gt;
 Bus 008 Device 003: ID 04d8:fa0d Microchip Technology, Inc.&lt;br /&gt;
&lt;br /&gt;
danach das USBGerät durchtunneln&lt;br /&gt;
 qm set $VMID -usb0 host=$VENDOR:$PRODID&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 qm set 110 -usb0 host=04d8:fa0d&lt;br /&gt;
&lt;br /&gt;
==Port list==&lt;br /&gt;
&lt;br /&gt;
 Web interface: 8006&lt;br /&gt;
 VNC Web console: 5900-5999&lt;br /&gt;
 SPICE console: 3128&lt;br /&gt;
 SSH access (only optional): 22&lt;br /&gt;
 CMAN multicast (if you run a cluster): 5404, 5405 UDP&lt;br /&gt;
&lt;br /&gt;
==VM-Killen==&lt;br /&gt;
&lt;br /&gt;
Mit SSH auf den Knoten/server connecten.&lt;br /&gt;
&lt;br /&gt;
Danach mit '''&amp;quot;ps -elf | grep kvm&amp;quot;''' die VM suchen und mit &amp;quot;kill&amp;quot; töten...&lt;br /&gt;
&lt;br /&gt;
==Validation entfernen==&lt;br /&gt;
backup the file:&lt;br /&gt;
 cp /usr/share/pve-manager/ext4/pvemanagerlib.js /usr/share/pve-manager/ext4/pvemanagerlib.js_BKP&lt;br /&gt;
&lt;br /&gt;
open the file&lt;br /&gt;
 vi /usr/share/pve-manager/ext4/pvemanagerlib.js +454&lt;br /&gt;
&lt;br /&gt;
change the line &lt;br /&gt;
 if (data.status !== 'Active') {&lt;br /&gt;
&lt;br /&gt;
to below:&lt;br /&gt;
 if (false) {&lt;br /&gt;
&lt;br /&gt;
==Manual: qm==&lt;br /&gt;
*http://pve.proxmox.com/wiki/Manual:_qm&lt;br /&gt;
&lt;br /&gt;
==Java Konsole==&lt;br /&gt;
&lt;br /&gt;
Laut Proxmox einfach updaten!&lt;br /&gt;
Stable version: '''7 Patch45 32bit @Windows7'''&lt;br /&gt;
&lt;br /&gt;
*http://pve.proxmox.com/wiki/Java_Console_%28Ubuntu%29&lt;br /&gt;
&lt;br /&gt;
==Install Proxmox VE on Debian Squeeze==&lt;br /&gt;
: http://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Squeeze&lt;br /&gt;
==Install Proxmox VE on Debian Wheezy==&lt;br /&gt;
: http://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Wheezy&lt;br /&gt;
&lt;br /&gt;
==Hetzner Proxmox installieren==&lt;br /&gt;
: http://wiki.hetzner.de/index.php/Proxmox_VE#Netzwerkkonfiguration_KVM.2FBridged&lt;br /&gt;
&lt;br /&gt;
==Konfigfiles==&lt;br /&gt;
 /etc/pve/qemu-server/&lt;br /&gt;
==Isos==&lt;br /&gt;
 /var/lib/vz/template/iso&lt;br /&gt;
&lt;br /&gt;
=QM=&lt;br /&gt;
== listen der virtuellen maschinen ==&lt;br /&gt;
 root@betor:~# qm list &lt;br /&gt;
      VMID NAME                 STATUS     MEM(MB)    BOOTDISK(GB) PID       &lt;br /&gt;
       100 jello                running    4096              32.00 6942      &lt;br /&gt;
       101 seven                stopped    4096              32.00 0         &lt;br /&gt;
       102 icinga               stopped    1024              10.00 0         &lt;br /&gt;
       103 VM 103               stopped    0                  0.00 0         &lt;br /&gt;
       104 symantec             stopped    2048             250.00 0         &lt;br /&gt;
       108 icinga               stopped    1024              10.00 0&lt;br /&gt;
== starten der virtuellen maschinen ==&lt;br /&gt;
 root@betor:~# qm start 101&lt;br /&gt;
== stoppen der virtuellen maschinen ==&lt;br /&gt;
 root@betor:~# qm stop 101&lt;br /&gt;
== config der virtuellen maschinen auslesen ==&lt;br /&gt;
 root@betor:~# qm config 101&lt;br /&gt;
 boot: dcn&lt;br /&gt;
 bootdisk: ide0&lt;br /&gt;
 cores: 2&lt;br /&gt;
 ide0: local:101/vm-101-disk-1.qcow2,format=qcow2,size=32G&lt;br /&gt;
 ide2: none,media=cdrom&lt;br /&gt;
 memory: 4096&lt;br /&gt;
 name: seven&lt;br /&gt;
 net0: e1000=2A:06:D1:86:82:37,bridge=vmbr0&lt;br /&gt;
 ostype: win7&lt;br /&gt;
 sockets: 2&lt;br /&gt;
== shutdown einer virtuellen maschine ==&lt;br /&gt;
 root@betor:~# qm shutdown 101&lt;br /&gt;
== status einer virtuellen maschine anzeigen ==&lt;br /&gt;
 root@betor:~# qm status 101&lt;br /&gt;
 status: running&lt;br /&gt;
== virtuelle maschine erstellen ==&lt;br /&gt;
  qm create 115 --cdrom local:iso/ubuntu-6.06.1-desktop-i386.iso  --name ubuntu6 --net0 virtio=62:57:BC:A2:0E:18 \ &lt;br /&gt;
     --ide0  local:115/vm-115-disk-1.qcow2,format=qcow2,size=20G     --ostype l26 --memory 512 --onboot no --sockets 2&lt;br /&gt;
&lt;br /&gt;
== virtuelle maschine inklusive Volumes löschen==&lt;br /&gt;
 qm destroy 115&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
: Link für die cmd-Liste: http://pve.proxmox.com/wiki/Command_line_tools&lt;br /&gt;
: Link für QM-manual: http://pve.proxmox.com/wiki/Qm_manual&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Proxmox&amp;diff=4055</id>
		<title>Proxmox</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Proxmox&amp;diff=4055"/>
		<updated>2014-02-17T10:44:54Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* Troubleshoot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Infos - Hostsystem=&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox.jpg|1050px]]&lt;br /&gt;
&lt;br /&gt;
* über die URL: https://HOST-IP:8006/ kann man auf das Webinterface zugreifen.&lt;br /&gt;
&lt;br /&gt;
* Die klassische Ansicht zeigt links die Server/VM-Liste und in der Mitte die verschiedenen Monitore/Parameter sowie Einstellungsmöglichkeiten.&lt;br /&gt;
&lt;br /&gt;
* unten befindet sich der Serverlog, welcher die aktuellen Prozesse/Aufgaben anzeigt.&lt;br /&gt;
&lt;br /&gt;
==Neue VM anlegen/löschen==&lt;br /&gt;
&lt;br /&gt;
: '''1.''' Man klickt den Knotenpunkt an&lt;br /&gt;
: '''2.''' Auf den &amp;quot;Erstelle VM&amp;quot;-Button oben rechts klicken&lt;br /&gt;
: '''3.''' Die jeweiligen Spezifikationen eintragen&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox2.jpg]]&lt;br /&gt;
&lt;br /&gt;
: '''4.''' VM wird normalerweise automatisch danach gestartet, wenn nicht -&amp;gt; starten!&lt;br /&gt;
: '''5.''' Die VM in der Hostliste links auswählen und danach auf &amp;quot;Konsole&amp;quot; oben rechts klicken. (dafür muss Java installiert sein, siehe Troubleshoot)&lt;br /&gt;
: '''6.''' Nun seht ihr ein neues Browserfenster, mit der grafischen Ausgabe der VM.&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox3.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
: '''7.''' Fertig installieren.&lt;br /&gt;
: '''8.''' VM herunterfahren&lt;br /&gt;
: '''9.''' Vm anklicken, Optionen auswählen, Bootreihenfolge per Doppelklick anpassen!&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox5.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
: '''10.''' anwählen der VM, und einen Klick auf &amp;quot;Entfernen&amp;quot; oben rechts, führt zum löschen der VM&lt;br /&gt;
&lt;br /&gt;
==Storage über webinterface==&lt;br /&gt;
&lt;br /&gt;
: '''1.''' &amp;quot;Rechenzentrum&amp;quot; anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Storage&amp;quot; wechseln&lt;br /&gt;
: '''3.''' &amp;quot;Hinzufügen/entfernen/Bearbeiten&amp;quot; nach belieben drücken&lt;br /&gt;
&lt;br /&gt;
'''Beispiel hier: NFS'''&lt;br /&gt;
[[Datei:proxmox6.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: '''4.''' Wählt euer Storagetyp (NFS/iSCSI/Directory/etc...)&lt;br /&gt;
: '''5.''' Wählt bei Inhalt '''alles''' aus und setzt &amp;quot;Max Backups&amp;quot; nach oben. (Dieser Parameter gibt die maximale Anzahl an mlgichen Backups auf dem Speicher an.)&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox7.jpg]]&lt;br /&gt;
&lt;br /&gt;
: YT-Video: http://www.youtube.com/watch?v=kHyf_l1Q1ow&lt;br /&gt;
&lt;br /&gt;
===Storage über Konsole mounten===&lt;br /&gt;
====template/isos====&lt;br /&gt;
 cd /var/lib/vz&lt;br /&gt;
 rm -r iso/ &amp;amp;&amp;amp; ln -s /mnt/MOUNTPUNKFÜRDEINEISOS/ iso&lt;br /&gt;
====bestehende VMs====&lt;br /&gt;
 cd /var/lib/vz&lt;br /&gt;
 rm -r images/ &amp;amp;&amp;amp; ln -s /mnt/MOUNTPUNKFÜRDEINEVMS/ images&lt;br /&gt;
&lt;br /&gt;
Danach müssen noch die confs kopiert werden.&lt;br /&gt;
&lt;br /&gt;
 /etc/pve/qemu-server/ vom originalsystem kopieren oder auch mounten&lt;br /&gt;
 cd /etc/pve/&lt;br /&gt;
 rm -r qemu-server/ &amp;amp;&amp;amp; ln -s /mnt/MOUNTPUNKFÜRDEINEVMCONFS/ qemu-server&lt;br /&gt;
&lt;br /&gt;
'''ACHTUNG: wenn die confs kopiert werden, müssen die Pfadangaben überarbeitet werden!'''&lt;br /&gt;
&lt;br /&gt;
==Migration==&lt;br /&gt;
&lt;br /&gt;
Rechtsklick auf die VM und &amp;quot;Migration&amp;quot; auswählen, dazu muss ein weiterer Knoten bekannt sein. (Knoten = ProxmoxVE-Host)&lt;br /&gt;
: YT-Video: http://www.youtube.com/watch?v=AkimEEHArqg&lt;br /&gt;
&lt;br /&gt;
===Image einfügen===&lt;br /&gt;
&lt;br /&gt;
1. auf dem Host System das gewünscht Image (raw/.img) hinterlegen&lt;br /&gt;
&lt;br /&gt;
2. eine neue VM anlegen und den gewünschten Typ anlegen! (qcow2/raw/vmdk)&lt;br /&gt;
&lt;br /&gt;
3. Bei Bedarf das Image konvertieren: &lt;br /&gt;
 qemu-img -f raw -O qcow2 input.img output.qcow2&lt;br /&gt;
&lt;br /&gt;
4. Das Image mit dem erstellen Datenspeicher ersetzen:&lt;br /&gt;
 cp input.img ../&amp;quot;VM-ID&amp;quot;/vm-&amp;quot;VM-ID&amp;quot;-disk-1.qcow2&lt;br /&gt;
 Beispiel: cp input.img ../101/vm-101-disk-1.qcow2&lt;br /&gt;
&lt;br /&gt;
5. vm starten&lt;br /&gt;
&lt;br /&gt;
: Link: http://agix.com.au/blog/?p=2696&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Storage einfügen ===&lt;br /&gt;
&lt;br /&gt;
==Backup==&lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gibt es 3 Arten, eine VM zu backupen.&lt;br /&gt;
&lt;br /&gt;
: '''1.''' stop-mode (Da wird die VM komplett heruntergefahren. lange downtime)&lt;br /&gt;
: '''2.''' suspend-mode (VM wird in den Ruhemodus versetzt. kurze Downtime)&lt;br /&gt;
: '''3.''' snapshot-mode (VM bleibt aktiv beim Backup)&lt;br /&gt;
===webinterface===&lt;br /&gt;
====Backup erstellen====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' VM anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Backup&amp;quot; wechseln&lt;br /&gt;
: '''3.''' &amp;quot;Backup starten&amp;quot; auswählen&lt;br /&gt;
: '''4.''' Kompression, Storage und mode angeben&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox8.jpg]]&lt;br /&gt;
&lt;br /&gt;
: '''5.''' Wenn das Backup fertig ist, seht ihr nun einen Eintrag in der &amp;quot;Backup-Liste&amp;quot; '''(Beispiel hier: VM: -101 seven-)'''&lt;br /&gt;
: '''(eventuell noch den Storage oben rechts anpassen...&lt;br /&gt;
'''&lt;br /&gt;
[[Datei:proxmox9.jpg]]&lt;br /&gt;
&lt;br /&gt;
====Backup aufspielen====&lt;br /&gt;
&lt;br /&gt;
: '''oben rechts euer Backup-Storage auswählen!'''&lt;br /&gt;
&lt;br /&gt;
: '''1.''' In der Hostleiste links, muss das Backupverzeichnis geöffnet werden&lt;br /&gt;
: '''2.''' Danach auf den Reiter &amp;quot;Inhalt&amp;quot; wechseln&lt;br /&gt;
: '''3.''' Hier ist eine Liste mit Images/Backups/Snapshots/etc. zu sehen&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox10.jpg]]&lt;br /&gt;
&lt;br /&gt;
: '''4.''' Backup anwählen, und zurückspieln&lt;br /&gt;
&lt;br /&gt;
====Snapshot live====&lt;br /&gt;
&lt;br /&gt;
=====erstellen=====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' VM anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Snapshots&amp;quot; wechseln&lt;br /&gt;
: '''3.''' &amp;quot;Snapshot erstellen&amp;quot; auswählen&lt;br /&gt;
: '''4.''' Beschreibung und Name eingeben.&lt;br /&gt;
&lt;br /&gt;
=====rollback=====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' VM anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Snapshots&amp;quot; wechseln&lt;br /&gt;
: '''3.''' gewünschtes Snapshot auswählen&lt;br /&gt;
: '''4.''' &amp;quot;Rollback&amp;quot; drücken&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===console===&lt;br /&gt;
====Backup erstellen====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' als root einloggen&lt;br /&gt;
: '''2.''' VM-ID der zu backupenden VM auswählen&lt;br /&gt;
: '''3.''' Kompression, Storage und mode angeben&lt;br /&gt;
: '''4.''' Backup erstellen:&lt;br /&gt;
 &lt;br /&gt;
 vzdump $VMID --remove 0 --mode $MODE --compress $COMP --storage $STOR --node $HOSTSYSTEM&lt;br /&gt;
 mode-usage: snapshot | stop | suspend&lt;br /&gt;
 compress-usage: 0 | 1 | gzip | lzo (lzo is default)&lt;br /&gt;
 storage: im webinterface kann man die gemounteten Storages einsehen&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 vzdump 102 --remove 0 --mode stop --compress lzo --storage bucket-one --node moxxie&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Backup aufspielen====&lt;br /&gt;
&lt;br /&gt;
: '''Das Backup auf dem Storage suchen. Bei mir wurde das Verzeichnis &amp;quot;dump&amp;quot; erstellt. (bucket-one ist hier der gemountete Speicher)'''&lt;br /&gt;
&lt;br /&gt;
: '''1.'''  lzop -d -c /mnt/pve/bucket-one/dump/vzdump-qemu-102-2013_11_07-13_40_03.vma.lzo|vma extract -v -r /var/tmp/vzdumptmp161098.fifo - /var/tmp/vzdumptmp161098&lt;br /&gt;
: '''2.''' &amp;quot;zurückspielen&amp;quot;&lt;br /&gt;
: '''3.''' VM-ID und Storage auswählen&lt;br /&gt;
: '''4.''' (Das ist btw auch ein Weg die VM zu kopieren)&lt;br /&gt;
&lt;br /&gt;
====Snapshot live====&lt;br /&gt;
&lt;br /&gt;
=====erstellen=====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' VM anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Snapshots&amp;quot; wechseln&lt;br /&gt;
: '''3.''' &amp;quot;Snapshot erstellen&amp;quot; auswählen&lt;br /&gt;
: '''4.''' Beschreibung und Name eingeben.&lt;br /&gt;
&lt;br /&gt;
=====rollback=====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' VM anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Snapshots&amp;quot; wechseln&lt;br /&gt;
: '''3.''' gewünschtes Snapshot auswählen&lt;br /&gt;
: '''4.''' &amp;quot;Rollback&amp;quot; drücken&lt;br /&gt;
&lt;br /&gt;
=Troubleshoot=&lt;br /&gt;
==bridgeutils==&lt;br /&gt;
 apt-get install bridgeultils&lt;br /&gt;
&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
Beispiel.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto vmbr0&lt;br /&gt;
iface vmbr0 inet static&lt;br /&gt;
        address  192.168.240.187&lt;br /&gt;
        netmask  255.255.248.0&lt;br /&gt;
        gateway  192.168.240.100&lt;br /&gt;
        bridge_ports eth0&lt;br /&gt;
        bridge_stp off&lt;br /&gt;
        bridge_fd 0&lt;br /&gt;
&lt;br /&gt;
==VNC Ports umlegen==&lt;br /&gt;
===Für Proxmox /3.X2.X===&lt;br /&gt;
 vi /usr/share/perl5/PVE/Tools.pm&lt;br /&gt;
&lt;br /&gt;
Ändern von diesen Zeilen, (ca. Zeile 724)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sub next_vnc_port {&lt;br /&gt;
    return next_unused_port(5900, 6000);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in diese Zeilen: (gewünschte Ports eintragen[Bsp.: 6900-7000])&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sub next_vnc_port {&lt;br /&gt;
    return next_unused_port(6900, 7000);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Proxmox-System muss neugestartet werden!&lt;br /&gt;
&lt;br /&gt;
===Für Proxmox 1.X===&lt;br /&gt;
 vi /usr/share/perl5/PVE/ConfigServer.pm&lt;br /&gt;
&lt;br /&gt;
Ändern von dieser Zeile, &lt;br /&gt;
 for (my $p = 5900; $p &amp;lt; 6000; $p++) {&lt;br /&gt;
&lt;br /&gt;
in diese Zeile: (gewünschte Ports eintragen[Bsp.: 6900-7000])&lt;br /&gt;
 for (my $p = 6900; $p &amp;lt; 7000; $p++) {&lt;br /&gt;
&lt;br /&gt;
Das Proxmox-System muss neugestartet werden!&lt;br /&gt;
&lt;br /&gt;
==USB pass through==&lt;br /&gt;
&lt;br /&gt;
mit das device ermitteln&lt;br /&gt;
 lsusb&lt;br /&gt;
&lt;br /&gt;
Beispiel: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@moxxie:/var/log/vzdump# lsusb   &lt;br /&gt;
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 008 Device 002: ID 046d:c315 Logitech, Inc. Classic New Touch Keyboard&lt;br /&gt;
Bus 008 Device 003: ID 04d8:fa0d Microchip Technology, Inc.&lt;br /&gt;
root@moxxie:/var/log/vzdump# &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wir suchen dieses Gerät und wollen es durchtunneln:&lt;br /&gt;
 Bus 008 Device 003: ID 04d8:fa0d Microchip Technology, Inc.&lt;br /&gt;
&lt;br /&gt;
danach das USBGerät durchtunneln&lt;br /&gt;
 qm set $VMID -usb0 host=$VENDOR:$PRODID&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 qm set 110 -usb0 host=04d8:fa0d&lt;br /&gt;
&lt;br /&gt;
==Port list==&lt;br /&gt;
&lt;br /&gt;
 Web interface: 8006&lt;br /&gt;
 VNC Web console: 5900-5999&lt;br /&gt;
 SPICE console: 3128&lt;br /&gt;
 SSH access (only optional): 22&lt;br /&gt;
 CMAN multicast (if you run a cluster): 5404, 5405 UDP&lt;br /&gt;
&lt;br /&gt;
==VM-Killen==&lt;br /&gt;
&lt;br /&gt;
Mit SSH auf den Knoten/server connecten.&lt;br /&gt;
&lt;br /&gt;
Danach mit '''&amp;quot;ps -elf | grep kvm&amp;quot;''' die VM suchen und mit &amp;quot;kill&amp;quot; töten...&lt;br /&gt;
&lt;br /&gt;
==Validation entfernen==&lt;br /&gt;
backup the file:&lt;br /&gt;
 cp /usr/share/pve-manager/ext4/pvemanagerlib.js /usr/share/pve-manager/ext4/pvemanagerlib.js_BKP&lt;br /&gt;
&lt;br /&gt;
open the file&lt;br /&gt;
 vi /usr/share/pve-manager/ext4/pvemanagerlib.js +454&lt;br /&gt;
&lt;br /&gt;
change the line &lt;br /&gt;
 if (data.status !== 'Active') {&lt;br /&gt;
&lt;br /&gt;
to below:&lt;br /&gt;
 if (false) {&lt;br /&gt;
&lt;br /&gt;
==Manual: qm==&lt;br /&gt;
*http://pve.proxmox.com/wiki/Manual:_qm&lt;br /&gt;
&lt;br /&gt;
==Java Konsole==&lt;br /&gt;
&lt;br /&gt;
Laut Proxmox einfach updaten!&lt;br /&gt;
Stable version: '''7 Patch45 32bit @Windows7'''&lt;br /&gt;
&lt;br /&gt;
*http://pve.proxmox.com/wiki/Java_Console_%28Ubuntu%29&lt;br /&gt;
&lt;br /&gt;
==Install Proxmox VE on Debian Squeeze==&lt;br /&gt;
: http://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Squeeze&lt;br /&gt;
==Install Proxmox VE on Debian Wheezy==&lt;br /&gt;
: http://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Wheezy&lt;br /&gt;
&lt;br /&gt;
==Hetzner Proxmox installieren==&lt;br /&gt;
: http://wiki.hetzner.de/index.php/Proxmox_VE#Netzwerkkonfiguration_KVM.2FBridged&lt;br /&gt;
&lt;br /&gt;
==Konfigfiles==&lt;br /&gt;
 /etc/pve/qemu-server/&lt;br /&gt;
==Isos==&lt;br /&gt;
 /var/lib/vz/template/iso&lt;br /&gt;
&lt;br /&gt;
=QM=&lt;br /&gt;
== listen der virtuellen maschinen ==&lt;br /&gt;
 root@betor:~# qm list &lt;br /&gt;
      VMID NAME                 STATUS     MEM(MB)    BOOTDISK(GB) PID       &lt;br /&gt;
       100 jello                running    4096              32.00 6942      &lt;br /&gt;
       101 seven                stopped    4096              32.00 0         &lt;br /&gt;
       102 icinga               stopped    1024              10.00 0         &lt;br /&gt;
       103 VM 103               stopped    0                  0.00 0         &lt;br /&gt;
       104 symantec             stopped    2048             250.00 0         &lt;br /&gt;
       108 icinga               stopped    1024              10.00 0&lt;br /&gt;
== starten der virtuellen maschinen ==&lt;br /&gt;
 root@betor:~# qm start 101&lt;br /&gt;
== stoppen der virtuellen maschinen ==&lt;br /&gt;
 root@betor:~# qm stop 101&lt;br /&gt;
== config der virtuellen maschinen auslesen ==&lt;br /&gt;
 root@betor:~# qm config 101&lt;br /&gt;
 boot: dcn&lt;br /&gt;
 bootdisk: ide0&lt;br /&gt;
 cores: 2&lt;br /&gt;
 ide0: local:101/vm-101-disk-1.qcow2,format=qcow2,size=32G&lt;br /&gt;
 ide2: none,media=cdrom&lt;br /&gt;
 memory: 4096&lt;br /&gt;
 name: seven&lt;br /&gt;
 net0: e1000=2A:06:D1:86:82:37,bridge=vmbr0&lt;br /&gt;
 ostype: win7&lt;br /&gt;
 sockets: 2&lt;br /&gt;
== shutdown einer virtuellen maschine ==&lt;br /&gt;
 root@betor:~# qm shutdown 101&lt;br /&gt;
== status einer virtuellen maschine anzeigen ==&lt;br /&gt;
 root@betor:~# qm status 101&lt;br /&gt;
 status: running&lt;br /&gt;
== virtuelle maschine erstellen ==&lt;br /&gt;
  qm create 115 --cdrom local:iso/ubuntu-6.06.1-desktop-i386.iso  --name ubuntu6 --net0 virtio=62:57:BC:A2:0E:18 \ &lt;br /&gt;
     --ide0  local:115/vm-115-disk-1.qcow2,format=qcow2,size=20G     --ostype l26 --memory 512 --onboot no --sockets 2&lt;br /&gt;
&lt;br /&gt;
== virtuelle maschine inklusive Volumes löschen==&lt;br /&gt;
 qm destroy 115&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
: Link für die cmd-Liste: http://pve.proxmox.com/wiki/Command_line_tools&lt;br /&gt;
: Link für QM-manual: http://pve.proxmox.com/wiki/Qm_manual&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Proxmox&amp;diff=4054</id>
		<title>Proxmox</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Proxmox&amp;diff=4054"/>
		<updated>2014-02-17T10:21:50Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* Validation entfernen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Infos - Hostsystem=&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox.jpg|1050px]]&lt;br /&gt;
&lt;br /&gt;
* über die URL: https://HOST-IP:8006/ kann man auf das Webinterface zugreifen.&lt;br /&gt;
&lt;br /&gt;
* Die klassische Ansicht zeigt links die Server/VM-Liste und in der Mitte die verschiedenen Monitore/Parameter sowie Einstellungsmöglichkeiten.&lt;br /&gt;
&lt;br /&gt;
* unten befindet sich der Serverlog, welcher die aktuellen Prozesse/Aufgaben anzeigt.&lt;br /&gt;
&lt;br /&gt;
==Neue VM anlegen/löschen==&lt;br /&gt;
&lt;br /&gt;
: '''1.''' Man klickt den Knotenpunkt an&lt;br /&gt;
: '''2.''' Auf den &amp;quot;Erstelle VM&amp;quot;-Button oben rechts klicken&lt;br /&gt;
: '''3.''' Die jeweiligen Spezifikationen eintragen&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox2.jpg]]&lt;br /&gt;
&lt;br /&gt;
: '''4.''' VM wird normalerweise automatisch danach gestartet, wenn nicht -&amp;gt; starten!&lt;br /&gt;
: '''5.''' Die VM in der Hostliste links auswählen und danach auf &amp;quot;Konsole&amp;quot; oben rechts klicken. (dafür muss Java installiert sein, siehe Troubleshoot)&lt;br /&gt;
: '''6.''' Nun seht ihr ein neues Browserfenster, mit der grafischen Ausgabe der VM.&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox3.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
: '''7.''' Fertig installieren.&lt;br /&gt;
: '''8.''' VM herunterfahren&lt;br /&gt;
: '''9.''' Vm anklicken, Optionen auswählen, Bootreihenfolge per Doppelklick anpassen!&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox5.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
: '''10.''' anwählen der VM, und einen Klick auf &amp;quot;Entfernen&amp;quot; oben rechts, führt zum löschen der VM&lt;br /&gt;
&lt;br /&gt;
==Storage über webinterface==&lt;br /&gt;
&lt;br /&gt;
: '''1.''' &amp;quot;Rechenzentrum&amp;quot; anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Storage&amp;quot; wechseln&lt;br /&gt;
: '''3.''' &amp;quot;Hinzufügen/entfernen/Bearbeiten&amp;quot; nach belieben drücken&lt;br /&gt;
&lt;br /&gt;
'''Beispiel hier: NFS'''&lt;br /&gt;
[[Datei:proxmox6.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: '''4.''' Wählt euer Storagetyp (NFS/iSCSI/Directory/etc...)&lt;br /&gt;
: '''5.''' Wählt bei Inhalt '''alles''' aus und setzt &amp;quot;Max Backups&amp;quot; nach oben. (Dieser Parameter gibt die maximale Anzahl an mlgichen Backups auf dem Speicher an.)&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox7.jpg]]&lt;br /&gt;
&lt;br /&gt;
: YT-Video: http://www.youtube.com/watch?v=kHyf_l1Q1ow&lt;br /&gt;
&lt;br /&gt;
===Storage über Konsole mounten===&lt;br /&gt;
====template/isos====&lt;br /&gt;
 cd /var/lib/vz&lt;br /&gt;
 rm -r iso/ &amp;amp;&amp;amp; ln -s /mnt/MOUNTPUNKFÜRDEINEISOS/ iso&lt;br /&gt;
====bestehende VMs====&lt;br /&gt;
 cd /var/lib/vz&lt;br /&gt;
 rm -r images/ &amp;amp;&amp;amp; ln -s /mnt/MOUNTPUNKFÜRDEINEVMS/ images&lt;br /&gt;
&lt;br /&gt;
Danach müssen noch die confs kopiert werden.&lt;br /&gt;
&lt;br /&gt;
 /etc/pve/qemu-server/ vom originalsystem kopieren oder auch mounten&lt;br /&gt;
 cd /etc/pve/&lt;br /&gt;
 rm -r qemu-server/ &amp;amp;&amp;amp; ln -s /mnt/MOUNTPUNKFÜRDEINEVMCONFS/ qemu-server&lt;br /&gt;
&lt;br /&gt;
'''ACHTUNG: wenn die confs kopiert werden, müssen die Pfadangaben überarbeitet werden!'''&lt;br /&gt;
&lt;br /&gt;
==Migration==&lt;br /&gt;
&lt;br /&gt;
Rechtsklick auf die VM und &amp;quot;Migration&amp;quot; auswählen, dazu muss ein weiterer Knoten bekannt sein. (Knoten = ProxmoxVE-Host)&lt;br /&gt;
: YT-Video: http://www.youtube.com/watch?v=AkimEEHArqg&lt;br /&gt;
&lt;br /&gt;
===Image einfügen===&lt;br /&gt;
&lt;br /&gt;
1. auf dem Host System das gewünscht Image (raw/.img) hinterlegen&lt;br /&gt;
&lt;br /&gt;
2. eine neue VM anlegen und den gewünschten Typ anlegen! (qcow2/raw/vmdk)&lt;br /&gt;
&lt;br /&gt;
3. Bei Bedarf das Image konvertieren: &lt;br /&gt;
 qemu-img -f raw -O qcow2 input.img output.qcow2&lt;br /&gt;
&lt;br /&gt;
4. Das Image mit dem erstellen Datenspeicher ersetzen:&lt;br /&gt;
 cp input.img ../&amp;quot;VM-ID&amp;quot;/vm-&amp;quot;VM-ID&amp;quot;-disk-1.qcow2&lt;br /&gt;
 Beispiel: cp input.img ../101/vm-101-disk-1.qcow2&lt;br /&gt;
&lt;br /&gt;
5. vm starten&lt;br /&gt;
&lt;br /&gt;
: Link: http://agix.com.au/blog/?p=2696&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Storage einfügen ===&lt;br /&gt;
&lt;br /&gt;
==Backup==&lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gibt es 3 Arten, eine VM zu backupen.&lt;br /&gt;
&lt;br /&gt;
: '''1.''' stop-mode (Da wird die VM komplett heruntergefahren. lange downtime)&lt;br /&gt;
: '''2.''' suspend-mode (VM wird in den Ruhemodus versetzt. kurze Downtime)&lt;br /&gt;
: '''3.''' snapshot-mode (VM bleibt aktiv beim Backup)&lt;br /&gt;
===webinterface===&lt;br /&gt;
====Backup erstellen====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' VM anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Backup&amp;quot; wechseln&lt;br /&gt;
: '''3.''' &amp;quot;Backup starten&amp;quot; auswählen&lt;br /&gt;
: '''4.''' Kompression, Storage und mode angeben&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox8.jpg]]&lt;br /&gt;
&lt;br /&gt;
: '''5.''' Wenn das Backup fertig ist, seht ihr nun einen Eintrag in der &amp;quot;Backup-Liste&amp;quot; '''(Beispiel hier: VM: -101 seven-)'''&lt;br /&gt;
: '''(eventuell noch den Storage oben rechts anpassen...&lt;br /&gt;
'''&lt;br /&gt;
[[Datei:proxmox9.jpg]]&lt;br /&gt;
&lt;br /&gt;
====Backup aufspielen====&lt;br /&gt;
&lt;br /&gt;
: '''oben rechts euer Backup-Storage auswählen!'''&lt;br /&gt;
&lt;br /&gt;
: '''1.''' In der Hostleiste links, muss das Backupverzeichnis geöffnet werden&lt;br /&gt;
: '''2.''' Danach auf den Reiter &amp;quot;Inhalt&amp;quot; wechseln&lt;br /&gt;
: '''3.''' Hier ist eine Liste mit Images/Backups/Snapshots/etc. zu sehen&lt;br /&gt;
&lt;br /&gt;
[[Datei:proxmox10.jpg]]&lt;br /&gt;
&lt;br /&gt;
: '''4.''' Backup anwählen, und zurückspieln&lt;br /&gt;
&lt;br /&gt;
====Snapshot live====&lt;br /&gt;
&lt;br /&gt;
=====erstellen=====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' VM anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Snapshots&amp;quot; wechseln&lt;br /&gt;
: '''3.''' &amp;quot;Snapshot erstellen&amp;quot; auswählen&lt;br /&gt;
: '''4.''' Beschreibung und Name eingeben.&lt;br /&gt;
&lt;br /&gt;
=====rollback=====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' VM anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Snapshots&amp;quot; wechseln&lt;br /&gt;
: '''3.''' gewünschtes Snapshot auswählen&lt;br /&gt;
: '''4.''' &amp;quot;Rollback&amp;quot; drücken&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===console===&lt;br /&gt;
====Backup erstellen====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' als root einloggen&lt;br /&gt;
: '''2.''' VM-ID der zu backupenden VM auswählen&lt;br /&gt;
: '''3.''' Kompression, Storage und mode angeben&lt;br /&gt;
: '''4.''' Backup erstellen:&lt;br /&gt;
 &lt;br /&gt;
 vzdump $VMID --remove 0 --mode $MODE --compress $COMP --storage $STOR --node $HOSTSYSTEM&lt;br /&gt;
 mode-usage: snapshot | stop | suspend&lt;br /&gt;
 compress-usage: 0 | 1 | gzip | lzo (lzo is default)&lt;br /&gt;
 storage: im webinterface kann man die gemounteten Storages einsehen&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 vzdump 102 --remove 0 --mode stop --compress lzo --storage bucket-one --node moxxie&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Backup aufspielen====&lt;br /&gt;
&lt;br /&gt;
: '''Das Backup auf dem Storage suchen. Bei mir wurde das Verzeichnis &amp;quot;dump&amp;quot; erstellt. (bucket-one ist hier der gemountete Speicher)'''&lt;br /&gt;
&lt;br /&gt;
: '''1.'''  lzop -d -c /mnt/pve/bucket-one/dump/vzdump-qemu-102-2013_11_07-13_40_03.vma.lzo|vma extract -v -r /var/tmp/vzdumptmp161098.fifo - /var/tmp/vzdumptmp161098&lt;br /&gt;
: '''2.''' &amp;quot;zurückspielen&amp;quot;&lt;br /&gt;
: '''3.''' VM-ID und Storage auswählen&lt;br /&gt;
: '''4.''' (Das ist btw auch ein Weg die VM zu kopieren)&lt;br /&gt;
&lt;br /&gt;
====Snapshot live====&lt;br /&gt;
&lt;br /&gt;
=====erstellen=====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' VM anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Snapshots&amp;quot; wechseln&lt;br /&gt;
: '''3.''' &amp;quot;Snapshot erstellen&amp;quot; auswählen&lt;br /&gt;
: '''4.''' Beschreibung und Name eingeben.&lt;br /&gt;
&lt;br /&gt;
=====rollback=====&lt;br /&gt;
&lt;br /&gt;
: '''1.''' VM anwählen&lt;br /&gt;
: '''2.''' zum Reiter &amp;quot;Snapshots&amp;quot; wechseln&lt;br /&gt;
: '''3.''' gewünschtes Snapshot auswählen&lt;br /&gt;
: '''4.''' &amp;quot;Rollback&amp;quot; drücken&lt;br /&gt;
&lt;br /&gt;
=Troubleshoot=&lt;br /&gt;
==VNC Ports umlegen==&lt;br /&gt;
===Für Proxmox /3.X2.X===&lt;br /&gt;
 vi /usr/share/perl5/PVE/Tools.pm&lt;br /&gt;
&lt;br /&gt;
Ändern von diesen Zeilen, (ca. Zeile 724)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sub next_vnc_port {&lt;br /&gt;
    return next_unused_port(5900, 6000);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in diese Zeilen: (gewünschte Ports eintragen[Bsp.: 6900-7000])&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sub next_vnc_port {&lt;br /&gt;
    return next_unused_port(6900, 7000);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Proxmox-System muss neugestartet werden!&lt;br /&gt;
&lt;br /&gt;
===Für Proxmox 1.X===&lt;br /&gt;
 vi /usr/share/perl5/PVE/ConfigServer.pm&lt;br /&gt;
&lt;br /&gt;
Ändern von dieser Zeile, &lt;br /&gt;
 for (my $p = 5900; $p &amp;lt; 6000; $p++) {&lt;br /&gt;
&lt;br /&gt;
in diese Zeile: (gewünschte Ports eintragen[Bsp.: 6900-7000])&lt;br /&gt;
 for (my $p = 6900; $p &amp;lt; 7000; $p++) {&lt;br /&gt;
&lt;br /&gt;
Das Proxmox-System muss neugestartet werden!&lt;br /&gt;
&lt;br /&gt;
==USB pass through==&lt;br /&gt;
&lt;br /&gt;
mit das device ermitteln&lt;br /&gt;
 lsusb&lt;br /&gt;
&lt;br /&gt;
Beispiel: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@moxxie:/var/log/vzdump# lsusb   &lt;br /&gt;
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 008 Device 002: ID 046d:c315 Logitech, Inc. Classic New Touch Keyboard&lt;br /&gt;
Bus 008 Device 003: ID 04d8:fa0d Microchip Technology, Inc.&lt;br /&gt;
root@moxxie:/var/log/vzdump# &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wir suchen dieses Gerät und wollen es durchtunneln:&lt;br /&gt;
 Bus 008 Device 003: ID 04d8:fa0d Microchip Technology, Inc.&lt;br /&gt;
&lt;br /&gt;
danach das USBGerät durchtunneln&lt;br /&gt;
 qm set $VMID -usb0 host=$VENDOR:$PRODID&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 qm set 110 -usb0 host=04d8:fa0d&lt;br /&gt;
&lt;br /&gt;
==Port list==&lt;br /&gt;
&lt;br /&gt;
 Web interface: 8006&lt;br /&gt;
 VNC Web console: 5900-5999&lt;br /&gt;
 SPICE console: 3128&lt;br /&gt;
 SSH access (only optional): 22&lt;br /&gt;
 CMAN multicast (if you run a cluster): 5404, 5405 UDP&lt;br /&gt;
&lt;br /&gt;
==VM-Killen==&lt;br /&gt;
&lt;br /&gt;
Mit SSH auf den Knoten/server connecten.&lt;br /&gt;
&lt;br /&gt;
Danach mit '''&amp;quot;ps -elf | grep kvm&amp;quot;''' die VM suchen und mit &amp;quot;kill&amp;quot; töten...&lt;br /&gt;
&lt;br /&gt;
==Validation entfernen==&lt;br /&gt;
backup the file:&lt;br /&gt;
 cp /usr/share/pve-manager/ext4/pvemanagerlib.js /usr/share/pve-manager/ext4/pvemanagerlib.js_BKP&lt;br /&gt;
&lt;br /&gt;
open the file&lt;br /&gt;
 vi /usr/share/pve-manager/ext4/pvemanagerlib.js +454&lt;br /&gt;
&lt;br /&gt;
change the line &lt;br /&gt;
 if (data.status !== 'Active') {&lt;br /&gt;
&lt;br /&gt;
to below:&lt;br /&gt;
 if (false) {&lt;br /&gt;
&lt;br /&gt;
==Manual: qm==&lt;br /&gt;
*http://pve.proxmox.com/wiki/Manual:_qm&lt;br /&gt;
&lt;br /&gt;
==Java Konsole==&lt;br /&gt;
&lt;br /&gt;
Laut Proxmox einfach updaten!&lt;br /&gt;
Stable version: '''7 Patch45 32bit @Windows7'''&lt;br /&gt;
&lt;br /&gt;
*http://pve.proxmox.com/wiki/Java_Console_%28Ubuntu%29&lt;br /&gt;
&lt;br /&gt;
==Install Proxmox VE on Debian Squeeze==&lt;br /&gt;
: http://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Squeeze&lt;br /&gt;
==Install Proxmox VE on Debian Wheezy==&lt;br /&gt;
: http://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Wheezy&lt;br /&gt;
&lt;br /&gt;
==Hetzner Proxmox installieren==&lt;br /&gt;
: http://wiki.hetzner.de/index.php/Proxmox_VE#Netzwerkkonfiguration_KVM.2FBridged&lt;br /&gt;
&lt;br /&gt;
==Konfigfiles==&lt;br /&gt;
 /etc/pve/qemu-server/&lt;br /&gt;
==Isos==&lt;br /&gt;
 /var/lib/vz/template/iso&lt;br /&gt;
=QM=&lt;br /&gt;
== listen der virtuellen maschinen ==&lt;br /&gt;
 root@betor:~# qm list &lt;br /&gt;
      VMID NAME                 STATUS     MEM(MB)    BOOTDISK(GB) PID       &lt;br /&gt;
       100 jello                running    4096              32.00 6942      &lt;br /&gt;
       101 seven                stopped    4096              32.00 0         &lt;br /&gt;
       102 icinga               stopped    1024              10.00 0         &lt;br /&gt;
       103 VM 103               stopped    0                  0.00 0         &lt;br /&gt;
       104 symantec             stopped    2048             250.00 0         &lt;br /&gt;
       108 icinga               stopped    1024              10.00 0&lt;br /&gt;
== starten der virtuellen maschinen ==&lt;br /&gt;
 root@betor:~# qm start 101&lt;br /&gt;
== stoppen der virtuellen maschinen ==&lt;br /&gt;
 root@betor:~# qm stop 101&lt;br /&gt;
== config der virtuellen maschinen auslesen ==&lt;br /&gt;
 root@betor:~# qm config 101&lt;br /&gt;
 boot: dcn&lt;br /&gt;
 bootdisk: ide0&lt;br /&gt;
 cores: 2&lt;br /&gt;
 ide0: local:101/vm-101-disk-1.qcow2,format=qcow2,size=32G&lt;br /&gt;
 ide2: none,media=cdrom&lt;br /&gt;
 memory: 4096&lt;br /&gt;
 name: seven&lt;br /&gt;
 net0: e1000=2A:06:D1:86:82:37,bridge=vmbr0&lt;br /&gt;
 ostype: win7&lt;br /&gt;
 sockets: 2&lt;br /&gt;
== shutdown einer virtuellen maschine ==&lt;br /&gt;
 root@betor:~# qm shutdown 101&lt;br /&gt;
== status einer virtuellen maschine anzeigen ==&lt;br /&gt;
 root@betor:~# qm status 101&lt;br /&gt;
 status: running&lt;br /&gt;
== virtuelle maschine erstellen ==&lt;br /&gt;
  qm create 115 --cdrom local:iso/ubuntu-6.06.1-desktop-i386.iso  --name ubuntu6 --net0 virtio=62:57:BC:A2:0E:18 \ &lt;br /&gt;
     --ide0  local:115/vm-115-disk-1.qcow2,format=qcow2,size=20G     --ostype l26 --memory 512 --onboot no --sockets 2&lt;br /&gt;
&lt;br /&gt;
== virtuelle maschine inklusive Volumes löschen==&lt;br /&gt;
 qm destroy 115&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
: Link für die cmd-Liste: http://pve.proxmox.com/wiki/Command_line_tools&lt;br /&gt;
: Link für QM-manual: http://pve.proxmox.com/wiki/Qm_manual&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Grub2&amp;diff=4041</id>
		<title>Grub2</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Grub2&amp;diff=4041"/>
		<updated>2014-02-14T08:57:48Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* Troubleshoot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Systemstart=&lt;br /&gt;
&lt;br /&gt;
Systemstartablauf:&lt;br /&gt;
&lt;br /&gt;
Das BIOS sucht je nach Einstellung&lt;br /&gt;
*im MBR auf dem ersten Datenträger nach einem Bootmanager bzw. Bootloader.&lt;br /&gt;
*auf der EFI-Partition nach der Startdatei '''grubx64.efi'''&lt;br /&gt;
Der Bootloader GRUB 2 lädt sich nach und nach die Dateien bzw. Images&lt;br /&gt;
*'''boot.img'''&lt;br /&gt;
*'''core.img'''&lt;br /&gt;
*'''/boot/grub/grub.cfg'''&lt;br /&gt;
*erforderliche '''mod-Dateien (Treiber)''' für jeweils spezielle Aufgaben.&lt;br /&gt;
&lt;br /&gt;
=EFI=&lt;br /&gt;
&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
&lt;br /&gt;
Grub wird in den MBR der angeben Festplatte geschrieben: (BSP)&lt;br /&gt;
 grub-install /dev/sda [Achtung, Bootreihenfolge im BIOS/UEFI beachten!]&lt;br /&gt;
 &lt;br /&gt;
oder auf einer Partition: (BSP)&lt;br /&gt;
 grub-install --force /dev/sda3&lt;br /&gt;
&lt;br /&gt;
=Konfigurationsdateien=&lt;br /&gt;
==/boot/grub/grub.cfg==&lt;br /&gt;
&lt;br /&gt;
Diese Datei ist die generelle Konfigurationsdate von grub. Diese wird nach einem '''&amp;quot;update-grub&amp;quot;''' immer neuerstellt!&lt;br /&gt;
 vi /boot/grub/grub.cfg&lt;br /&gt;
&lt;br /&gt;
Um die Reihenfolge zu ändern, müssen dor tide &amp;quot;Menuentry's&amp;quot; geändert werden:&lt;br /&gt;
Grub wird es von oben nach unten anzeigen.&lt;br /&gt;
Beispiel: Im Moment ist der Booteintrag mit der &amp;quot;Wiederherstellungskonsole&amp;quot; an zweiter Stelle. Deshalb wird dieser Eintrag ausgeschnitten und über den ersten eingefügt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        menuentry 'Ubuntu, mit Linux 3.5.0-36-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.5.0-36-generic-advanced-3daa1a20-ab97-4eb8-84e3-137a1743bafd' {&lt;br /&gt;
        recordfail&lt;br /&gt;
                gfxmode $linux_gfx_mode&lt;br /&gt;
                insmod gzio&lt;br /&gt;
                insmod part_msdos&lt;br /&gt;
                insmod ext2&lt;br /&gt;
                set root='hd0,msdos1'&lt;br /&gt;
                if [ x$feature_platform_search_hint = xy ]; then&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                else&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root 3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                fi&lt;br /&gt;
                echo    'Linux 3.5.0-36-generic wird geladen …'&lt;br /&gt;
                linux   /boot/vmlinuz-3.5.0-36-generic root=UUID=3daa1a20-ab97-4eb8-84e3-137a1743bafd ro   &lt;br /&gt;
                echo    'Initiale Ramdisk wird geladen …'&lt;br /&gt;
                initrd  /boot/initrd.img-3.5.0-36-generic&lt;br /&gt;
        }&lt;br /&gt;
        menuentry 'Ubuntu, mit Linux 3.5.0-36-generic (Wiederherstellungsmodus)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.5.0-36-generic-recovery-3daa1a20-ab97-4eb8-84e3-137a1743bafd' {&lt;br /&gt;
        recordfail&lt;br /&gt;
                insmod gzio&lt;br /&gt;
                insmod part_msdos&lt;br /&gt;
                insmod ext2&lt;br /&gt;
                set root='hd0,msdos1'&lt;br /&gt;
                if [ x$feature_platform_search_hint = xy ]; then&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                else&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root 3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                fi&lt;br /&gt;
                echo    'Linux 3.5.0-36-generic wird geladen …'&lt;br /&gt;
                linux   /boot/vmlinuz-3.5.0-36-generic root=UUID=3daa1a20-ab97-4eb8-84e3-137a1743bafd ro recovery nomodeset &lt;br /&gt;
                echo    'Initiale Ramdisk wird geladen …'&lt;br /&gt;
                initrd  /boot/initrd.img-3.5.0-36-generic&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nun ändern in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
        menuentry 'Ubuntu, mit Linux 3.5.0-36-generic (Wiederherstellungsmodus)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.5.0-36-generic-recovery-3daa1a20-ab97-4eb8-84e3-137a1743bafd' {&lt;br /&gt;
        recordfail&lt;br /&gt;
                insmod gzio&lt;br /&gt;
                insmod part_msdos&lt;br /&gt;
                insmod ext2&lt;br /&gt;
                set root='hd0,msdos1'&lt;br /&gt;
                if [ x$feature_platform_search_hint = xy ]; then&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                else&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root 3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                fi&lt;br /&gt;
                echo    'Linux 3.5.0-36-generic wird geladen …'&lt;br /&gt;
                linux   /boot/vmlinuz-3.5.0-36-generic root=UUID=3daa1a20-ab97-4eb8-84e3-137a1743bafd ro recovery nomodeset &lt;br /&gt;
                echo    'Initiale Ramdisk wird geladen …'&lt;br /&gt;
                initrd  /boot/initrd.img-3.5.0-36-generic&lt;br /&gt;
        }&lt;br /&gt;
        menuentry 'Ubuntu, mit Linux 3.5.0-36-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.5.0-36-generic-advanced-3daa1a20-ab97-4eb8-84e3-137a1743bafd' {&lt;br /&gt;
        recordfail&lt;br /&gt;
                gfxmode $linux_gfx_mode&lt;br /&gt;
                insmod gzio&lt;br /&gt;
                insmod part_msdos&lt;br /&gt;
                insmod ext2&lt;br /&gt;
                set root='hd0,msdos1'&lt;br /&gt;
                if [ x$feature_platform_search_hint = xy ]; then&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                else&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root 3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                fi&lt;br /&gt;
                echo    'Linux 3.5.0-36-generic wird geladen …'&lt;br /&gt;
                linux   /boot/vmlinuz-3.5.0-36-generic root=UUID=3daa1a20-ab97-4eb8-84e3-137a1743bafd ro   &lt;br /&gt;
                echo    'Initiale Ramdisk wird geladen …'&lt;br /&gt;
                initrd  /boot/initrd.img-3.5.0-36-generic&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dieser Änderung ist kein update-grub erforderlich!&lt;br /&gt;
&lt;br /&gt;
==/etc/default/grub==&lt;br /&gt;
&lt;br /&gt;
Diese Datei ist von einem '''&amp;quot;update-grub&amp;quot;''' nicht betroffen. Diese bleibt bestehen...&lt;br /&gt;
 vi /etc/default/grub&lt;br /&gt;
&lt;br /&gt;
Hier eine Beispielkonfigurationsdatei, Die Kommentare über den Parametern beschreiben die Bedeutung.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Welcher Menüeintrag in /boot/grub/grub.cfg soll standardmäßig gebootet werden? [0 bedeutet erster Eintrag]&lt;br /&gt;
GRUB_DEFAULT=0&lt;br /&gt;
&lt;br /&gt;
# Ein Zahlenwert &amp;gt; 0 gibt die Zeit in Sekunden an, bis der Bootvorgang ohne Anzeige des Auswahlmenü ausgeführt wird. Mit der Umschalt-Taste kann das Auswahlmenü innerhalb der eingestellten Zeitspanne sichtbar gemacht werden.&lt;br /&gt;
#GRUB_HIDDEN_TIMEOUT=0&lt;br /&gt;
&lt;br /&gt;
# Wenn dieser Wert auf ´false´ gesetzt, so wird nur der unter GRUB_HIDDEN_TIMEOUT eingestellte Wert auf dem Monitor als Countdown angezeigt. Mit der  ⇧ -Taste kann das Auswahlmenü innerhalb der Zeitspanne sichtbar gemacht werden.&lt;br /&gt;
GRUB_HIDDEN_TIMEOUT_QUIET=true&lt;br /&gt;
&lt;br /&gt;
# Ein Zahlenwert gibt die Zeit in Sekunden an, wie lange das Auswahlmenü angezeigt wird, bevor der Standard-Eintrag geladen wird. &lt;br /&gt;
GRUB_TIMEOUT=2&lt;br /&gt;
&lt;br /&gt;
# Generiert Hinweise zur aktuellen Distribution. Bei einer Installationen im BIOS-Modus sollte man hier keine Korrekturen vornehmen.&lt;br /&gt;
# Bei einer Installationen im EFI-Modus wird hier die aktuelle Distribution ausgelesen. Man kann hier einen selektiven Eintrag für das EFI-Menü erstellen.&lt;br /&gt;
GRUB_DISTRIBUTOR=`lsb_release -i -s 2&amp;gt; /dev/null || echo Debian`&lt;br /&gt;
&lt;br /&gt;
#Die Variablen sind für die Übergabe von Kernel-Bootoptionen reserviert und werden bei den Images aus dem Verzeichnis /boot angewendet:&lt;br /&gt;
GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;&amp;quot;&lt;br /&gt;
GRUB_CMDLINE_LINUX=&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Durch Unkommentieren wird der grafische Modus komplett abgeschaltet &lt;br /&gt;
#GRUB_TERMINAL=console&lt;br /&gt;
&lt;br /&gt;
# Standardauflösung des Grub-Menüs&lt;br /&gt;
#GRUB_GFXMODE=640x480&lt;br /&gt;
&lt;br /&gt;
# Normalerweise übergibt GRUB 2 die Root-Partition mittels UUID an den zu startenden Linux-Kernel. Durch Unkommentieren kann man GRUB 2 dazu veranlassen, dies per Device-Nummerierung (/dev/sdXX) zu machen.&lt;br /&gt;
#GRUB_DISABLE_LINUX_UUID=true&lt;br /&gt;
&lt;br /&gt;
# Nach Unkommentieren und setzen auf true werden alle Recovery-Kernel-Einträge im Auswahlmenü deaktiviert.&lt;br /&gt;
#GRUB_DISABLE_RECOVERY=&amp;quot;true&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Unkommentieren für einen Signalton beim Starten&lt;br /&gt;
#GRUB_INIT_TUNE=&amp;quot;480 440 1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: Hier zum nachlesen: http://wiki.ubuntuusers.de/GRUB_2/Konfiguration&lt;br /&gt;
&lt;br /&gt;
==/etc/grub.d/==&lt;br /&gt;
&lt;br /&gt;
=Reparatur=&lt;br /&gt;
==GRUB 2 erneut in den MBR der Festplatte installieren==&lt;br /&gt;
 sudo grub-setup /dev/sdX &lt;br /&gt;
&lt;br /&gt;
==GRUB 2 vollständig neu installieren==&lt;br /&gt;
 sudo grub-install /dev/sdX &lt;br /&gt;
&lt;br /&gt;
==GRUB 2 Pakete reinstallieren==&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get update &lt;br /&gt;
 &lt;br /&gt;
'''BIOS-Installation'''&lt;br /&gt;
 sudo apt-get --reinstall install grub-common grub-pc os-prober &lt;br /&gt;
&lt;br /&gt;
'''EFI-Installation'''&lt;br /&gt;
 sudo apt-get --reinstall install grub-common grub-efi-amd64 os-prober &lt;br /&gt;
&lt;br /&gt;
==Konfigurationsdatei neu erstellen/aktualisieren==&lt;br /&gt;
 sudo update-grub &lt;br /&gt;
&lt;br /&gt;
==Eine zusätzliche Konfigurationsdatei erstellen==&lt;br /&gt;
Die aktuelle Konfiguration für das Auswahl-Menü ermitteln und in eine frei definierbare Datei speichern - die Datei grub.cfg bleibt dabei unverändert (mehr zu grub-mkconfig):&lt;br /&gt;
 sudo grub-mkconfig --output=/boot/grub/meine.cfg &lt;br /&gt;
schreibt die aktuelle Konfiguration in die Datei meine.cfg im Verzeichnis /boot/grub, die Datei kann dabei an die eigenen Bedürfnisse angepasst werden.&lt;br /&gt;
&lt;br /&gt;
=Shellbefehle=&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 grub-install&lt;br /&gt;
 &lt;br /&gt;
Erstellt die Datei grub.cfg und damit die Konfiguration für das GRUB-2-Auswahlmenü&lt;br /&gt;
 update-grub&lt;br /&gt;
 &lt;br /&gt;
Setzt den Standard-Eintrag im GRUB-2-Auswahlmenü einmalig für das nächste Starten des Rechners.&lt;br /&gt;
 grub-reboot&lt;br /&gt;
 &lt;br /&gt;
Setzt den Standard-Eintrag im GRUB-2-Auswahlmenü.&lt;br /&gt;
 grub-set-default&lt;br /&gt;
 &lt;br /&gt;
Arbeitet wie update-grub, gibt die Konfiguration aber ohne Verwendung von Optionen nur zur Kontrolle im Terminal aus, erlaubt aber auch, die Konfiguration in eine andere Datei als die grub.cfg zu schreiben.&lt;br /&gt;
 grub-mkconfig&lt;br /&gt;
 -o, --output=&amp;lt;Datei&amp;gt;	 Wird diese Option angegeben, so wird die Konfiguration in die unter &amp;lt;Datei&amp;gt; angegebene Datei geschrieben.&lt;br /&gt;
&lt;br /&gt;
Erstellt einen Schlüssel zum Sperren der Bearbeitung des Grub-Menüs insgesamt sowie der Auswahl einzelner Menüpunkte zur Laufzeit.&lt;br /&gt;
 grub-mkpasswd-pbkdf2&lt;br /&gt;
 -c Zahl	 Wird diese Option angegeben, so wird damit die maximale Anzahl von Fehlversuchen gesetzt.&lt;br /&gt;
 -l Zahl	 Die Standardlänge des Schlüssels ist ohne Option 64-Byte - mit Option kann man diesen auf den angegebenen Wert begrenzen (nicht empfohlen, siehe auch Hinweis *)&lt;br /&gt;
 -s Zahl	 Die Standardlänge der Zufallsbasis (salted hash) ist ohne Option 64-Byte - hiermit kann man diese auf den angegebenen Wert begrenzen (nicht empfohlen, siehe auch Hinweis *)&lt;br /&gt;
&lt;br /&gt;
=How to's=&lt;br /&gt;
==Password-Hack==&lt;br /&gt;
Während der Rechner hochfährt auf folgende Ausgabe achten:&lt;br /&gt;
&lt;br /&gt;
[[Image:grub.jpg]]&lt;br /&gt;
&lt;br /&gt;
und wie angegeben ESC drücken.&lt;br /&gt;
&lt;br /&gt;
Im Grub Menü angekommen nun mit den Pfeiltasten das Betriebssystem auswählen in das man sich hacken möchte:&lt;br /&gt;
&lt;br /&gt;
[[Image:grub2.jpg]]&lt;br /&gt;
&lt;br /&gt;
und wie unten mit &amp;quot;e&amp;quot; auf der Tastatur in das Editionsuntermenü wechseln.&lt;br /&gt;
&lt;br /&gt;
[[Image:grub3.jpg]]&lt;br /&gt;
&lt;br /&gt;
Hier wechselt man nun auf den Kernel und betätigt ein weiteres mal &amp;quot;e&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Nun sieht man ein Eingabefeld das so aussieht:&lt;br /&gt;
&lt;br /&gt;
[[Image:grub4.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Achtung Englische Tastatur Einstellung'''&lt;br /&gt;
&lt;br /&gt;
In diesem Feld müssen sie jetz &lt;br /&gt;
 &amp;quot;quiet splash&amp;quot; &lt;br /&gt;
mit &lt;br /&gt;
 &amp;quot;init=/bin/bash&amp;quot; &lt;br /&gt;
ersetzen:&lt;br /&gt;
&lt;br /&gt;
[[Image:grub5.jpg]]&lt;br /&gt;
&lt;br /&gt;
und mit Enter bestätigen, dann kommen sie wieder auf das vorherige Editionsmenü.&lt;br /&gt;
&lt;br /&gt;
In diesem jetz einfach nurnoch &amp;quot;b&amp;quot; drücken um zu booten.&lt;br /&gt;
&lt;br /&gt;
=Nach dem Booten=&lt;br /&gt;
&lt;br /&gt;
Das booten sollte eine relativ kurze Zeit dauern und danach müssten sie ein Eingabefeld haben das so aussieht&lt;br /&gt;
&lt;br /&gt;
[[Image:boot1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Jetzt mountet man das root Dateisystem lese und schreibbar&lt;br /&gt;
&lt;br /&gt;
[[Image:boot2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
eventuell muss mann noch weiter Dateisysteme mounten&lt;br /&gt;
&lt;br /&gt;
 root@(none):/# mount -a&lt;br /&gt;
&lt;br /&gt;
und danach den Befehl &lt;br /&gt;
&lt;br /&gt;
[[Image:boot3.jpg]]&lt;br /&gt;
&lt;br /&gt;
um das rootpasswort zu ändern.&lt;br /&gt;
&lt;br /&gt;
Danach nurnoch:&lt;br /&gt;
&lt;br /&gt;
[[Image:boot4.jpg]]&lt;br /&gt;
&lt;br /&gt;
Und '''Geschafft'''&lt;br /&gt;
&lt;br /&gt;
Beim nächsten Start des Rechners kann man sich mit seinem neu gesetzten Passwort als root anmelden&lt;br /&gt;
==chroot==&lt;br /&gt;
Die chroot-Methode verwendet man immer dann, wenn man nur oder auch die grub.cfg neu erstellen lassen will. Außerdem sollte sie immer bei komplizierteren Systemkonstellationen wie LUKS- oder LV-Partitionen sowie Raid-Verbunden und beim Wiederherstellen des Bootloaders eines Dualboot-Systems angewendet werden.&lt;br /&gt;
&lt;br /&gt;
===Kein RAID/normale Partitionen===&lt;br /&gt;
&lt;br /&gt;
1. Root-Partition mounten&lt;br /&gt;
 sudo mount /dev/sdXY /mnt &lt;br /&gt;
&lt;br /&gt;
2. (OPTIONAL)&lt;br /&gt;
Nutzt man auf dem System eine separate Boot-Partition, so muss diese ebenfalls vorab eingehängt werden:&lt;br /&gt;
 sudo mount /dev/sdXY /mnt/boot &lt;br /&gt;
Nutzt man auf seinem Rechner das &amp;quot;(U)EFI&amp;quot;-Bootverfahren, so muss die relevante Bootpartition vorab eingehängt werden mit:&lt;br /&gt;
 sudo mount /dev/sdXY /mnt/boot/efi &lt;br /&gt;
&lt;br /&gt;
3. Vorbereitung und Wechsel in die chroot-Umgebung:&lt;br /&gt;
 sudo mount -o bind /dev /mnt/dev &lt;br /&gt;
 sudo mount -o bind /sys /mnt/sys &lt;br /&gt;
 sudo mount -t proc /proc /mnt/proc &lt;br /&gt;
 sudo cp /proc/mounts /mnt/etc/mtab &lt;br /&gt;
 sudo chroot /mnt /bin/bash &lt;br /&gt;
&lt;br /&gt;
4. grub installieren:&lt;br /&gt;
 grub-install /dev/sdX &lt;br /&gt;
 (evtl.: grub-install --recheck /dev/sdX) &lt;br /&gt;
 update-grub &lt;br /&gt;
&lt;br /&gt;
5. chroot-Umgebung verlassen und neustarten&lt;br /&gt;
&lt;br /&gt;
===RAID===&lt;br /&gt;
&lt;br /&gt;
1.Desktop-CD booten und mdadm-Tools installieren:&lt;br /&gt;
 sudo apt-get install mdadm &lt;br /&gt;
 sudo mdadm --assemble --scan &lt;br /&gt;
&lt;br /&gt;
2.Einhängen der Systempartition:&lt;br /&gt;
 sudo mount /dev/mdX /mnt &lt;br /&gt;
 sudo mdadm --examine --scan &lt;br /&gt;
&lt;br /&gt;
3.(Optional)&lt;br /&gt;
Nutzt man auf dem System eine separate Boot-Partition, so muss diese ebenfalls eingehängt werden:&lt;br /&gt;
 sudo mount /dev/mdX /mnt/boot &lt;br /&gt;
&lt;br /&gt;
4.Wechsel in die chroot-Umgebung:&lt;br /&gt;
 sudo mount -o bind /dev /mnt/dev &lt;br /&gt;
 sudo mount -o bind /sys /mnt/sys &lt;br /&gt;
 sudo mount -t proc /proc /mnt/proc &lt;br /&gt;
 sudo cp /proc/mounts /mnt/etc/mtab &lt;br /&gt;
 sudo chroot /mnt /bin/bash &lt;br /&gt;
&lt;br /&gt;
5.grub installieren&lt;br /&gt;
 grub-install /dev/sdX &lt;br /&gt;
Installation auf allen teilnehmenden Platten (/dev/sda, /dev/sdb ...) empfohlen!&lt;br /&gt;
 update-grub &lt;br /&gt;
&lt;br /&gt;
6. chroot-Umgebung verlassen und neustarten&lt;br /&gt;
&lt;br /&gt;
==Root-Directory==&lt;br /&gt;
Die Root-Directory-Methode kann man immer dann wählen, wenn man sicher ist, dass die Datei grub.cfg richtig ist und GRUB 2 nur deswegen nicht richtig startet, weil er nicht oder nicht mehr bzw. nicht mehr richtig im Bootsektor oder dem MBR der betreffenden Festplatte installiert ist. Diese Situation hat man z.B. stets, '''nachdem Windows nach Ubuntu auf dem System installiert wurde'''. Diese Methode erfordert zwar weniger Einzelschritte, ist dabei aber auch weniger flexibel und erlaubt nicht so viele Reparaturoptionen wie die chroot-Methode.&lt;br /&gt;
&lt;br /&gt;
Bei dieser Variante wird GRUB 2 einfach in einem Terminal[2] von der Desktop-CD mittels des GRUB-2-Skripts grub-install erneut auf der Festplatte installiert:&lt;br /&gt;
&lt;br /&gt;
1. Desktop-Image laden&lt;br /&gt;
2. Root-Partition mounten&lt;br /&gt;
 sudo mount /dev/sdXY /mnt &lt;br /&gt;
3. Optional&lt;br /&gt;
Nutzt man auf dem System eine separate Boot-Partition, so muss diese ebenfalls vorab eingehängt werden:&lt;br /&gt;
 sudo mount /dev/sdXY /mnt/boot &lt;br /&gt;
Nutzt man auf seinem Rechner das &amp;quot;(U)EFI&amp;quot;-Bootverfahren, so muss die relevante Bootpartition vorab eingehängt werden mit:&lt;br /&gt;
 sudo mount /dev/sdXY /mnt/boot/efi &lt;br /&gt;
&lt;br /&gt;
4. Devices von USB/CD einbinden Live-System&lt;br /&gt;
 sudo mount --bind /dev/ /mnt/dev &lt;br /&gt;
5. grub installieren&lt;br /&gt;
GRUB 1.98 und vorher (bis Maverick Meerkat):&lt;br /&gt;
 sudo grub-install --root-directory=/mnt /dev/sdX &lt;br /&gt;
GRUB 1.99 und später:&lt;br /&gt;
 sudo grub-install --boot-directory=/mnt/boot /dev/sdX &lt;br /&gt;
 sudo update-grub&lt;br /&gt;
&lt;br /&gt;
=Troubleshoot=&lt;br /&gt;
==grub1 manualboot==&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Grub2&amp;diff=4040</id>
		<title>Grub2</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Grub2&amp;diff=4040"/>
		<updated>2014-02-14T08:47:22Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Systemstart=&lt;br /&gt;
&lt;br /&gt;
Systemstartablauf:&lt;br /&gt;
&lt;br /&gt;
Das BIOS sucht je nach Einstellung&lt;br /&gt;
*im MBR auf dem ersten Datenträger nach einem Bootmanager bzw. Bootloader.&lt;br /&gt;
*auf der EFI-Partition nach der Startdatei '''grubx64.efi'''&lt;br /&gt;
Der Bootloader GRUB 2 lädt sich nach und nach die Dateien bzw. Images&lt;br /&gt;
*'''boot.img'''&lt;br /&gt;
*'''core.img'''&lt;br /&gt;
*'''/boot/grub/grub.cfg'''&lt;br /&gt;
*erforderliche '''mod-Dateien (Treiber)''' für jeweils spezielle Aufgaben.&lt;br /&gt;
&lt;br /&gt;
=EFI=&lt;br /&gt;
&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
wobblwobbl&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
&lt;br /&gt;
Grub wird in den MBR der angeben Festplatte geschrieben: (BSP)&lt;br /&gt;
 grub-install /dev/sda [Achtung, Bootreihenfolge im BIOS/UEFI beachten!]&lt;br /&gt;
 &lt;br /&gt;
oder auf einer Partition: (BSP)&lt;br /&gt;
 grub-install --force /dev/sda3&lt;br /&gt;
&lt;br /&gt;
=Konfigurationsdateien=&lt;br /&gt;
==/boot/grub/grub.cfg==&lt;br /&gt;
&lt;br /&gt;
Diese Datei ist die generelle Konfigurationsdate von grub. Diese wird nach einem '''&amp;quot;update-grub&amp;quot;''' immer neuerstellt!&lt;br /&gt;
 vi /boot/grub/grub.cfg&lt;br /&gt;
&lt;br /&gt;
Um die Reihenfolge zu ändern, müssen dor tide &amp;quot;Menuentry's&amp;quot; geändert werden:&lt;br /&gt;
Grub wird es von oben nach unten anzeigen.&lt;br /&gt;
Beispiel: Im Moment ist der Booteintrag mit der &amp;quot;Wiederherstellungskonsole&amp;quot; an zweiter Stelle. Deshalb wird dieser Eintrag ausgeschnitten und über den ersten eingefügt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        menuentry 'Ubuntu, mit Linux 3.5.0-36-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.5.0-36-generic-advanced-3daa1a20-ab97-4eb8-84e3-137a1743bafd' {&lt;br /&gt;
        recordfail&lt;br /&gt;
                gfxmode $linux_gfx_mode&lt;br /&gt;
                insmod gzio&lt;br /&gt;
                insmod part_msdos&lt;br /&gt;
                insmod ext2&lt;br /&gt;
                set root='hd0,msdos1'&lt;br /&gt;
                if [ x$feature_platform_search_hint = xy ]; then&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                else&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root 3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                fi&lt;br /&gt;
                echo    'Linux 3.5.0-36-generic wird geladen …'&lt;br /&gt;
                linux   /boot/vmlinuz-3.5.0-36-generic root=UUID=3daa1a20-ab97-4eb8-84e3-137a1743bafd ro   &lt;br /&gt;
                echo    'Initiale Ramdisk wird geladen …'&lt;br /&gt;
                initrd  /boot/initrd.img-3.5.0-36-generic&lt;br /&gt;
        }&lt;br /&gt;
        menuentry 'Ubuntu, mit Linux 3.5.0-36-generic (Wiederherstellungsmodus)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.5.0-36-generic-recovery-3daa1a20-ab97-4eb8-84e3-137a1743bafd' {&lt;br /&gt;
        recordfail&lt;br /&gt;
                insmod gzio&lt;br /&gt;
                insmod part_msdos&lt;br /&gt;
                insmod ext2&lt;br /&gt;
                set root='hd0,msdos1'&lt;br /&gt;
                if [ x$feature_platform_search_hint = xy ]; then&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                else&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root 3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                fi&lt;br /&gt;
                echo    'Linux 3.5.0-36-generic wird geladen …'&lt;br /&gt;
                linux   /boot/vmlinuz-3.5.0-36-generic root=UUID=3daa1a20-ab97-4eb8-84e3-137a1743bafd ro recovery nomodeset &lt;br /&gt;
                echo    'Initiale Ramdisk wird geladen …'&lt;br /&gt;
                initrd  /boot/initrd.img-3.5.0-36-generic&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nun ändern in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
        menuentry 'Ubuntu, mit Linux 3.5.0-36-generic (Wiederherstellungsmodus)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.5.0-36-generic-recovery-3daa1a20-ab97-4eb8-84e3-137a1743bafd' {&lt;br /&gt;
        recordfail&lt;br /&gt;
                insmod gzio&lt;br /&gt;
                insmod part_msdos&lt;br /&gt;
                insmod ext2&lt;br /&gt;
                set root='hd0,msdos1'&lt;br /&gt;
                if [ x$feature_platform_search_hint = xy ]; then&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                else&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root 3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                fi&lt;br /&gt;
                echo    'Linux 3.5.0-36-generic wird geladen …'&lt;br /&gt;
                linux   /boot/vmlinuz-3.5.0-36-generic root=UUID=3daa1a20-ab97-4eb8-84e3-137a1743bafd ro recovery nomodeset &lt;br /&gt;
                echo    'Initiale Ramdisk wird geladen …'&lt;br /&gt;
                initrd  /boot/initrd.img-3.5.0-36-generic&lt;br /&gt;
        }&lt;br /&gt;
        menuentry 'Ubuntu, mit Linux 3.5.0-36-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.5.0-36-generic-advanced-3daa1a20-ab97-4eb8-84e3-137a1743bafd' {&lt;br /&gt;
        recordfail&lt;br /&gt;
                gfxmode $linux_gfx_mode&lt;br /&gt;
                insmod gzio&lt;br /&gt;
                insmod part_msdos&lt;br /&gt;
                insmod ext2&lt;br /&gt;
                set root='hd0,msdos1'&lt;br /&gt;
                if [ x$feature_platform_search_hint = xy ]; then&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                else&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root 3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                fi&lt;br /&gt;
                echo    'Linux 3.5.0-36-generic wird geladen …'&lt;br /&gt;
                linux   /boot/vmlinuz-3.5.0-36-generic root=UUID=3daa1a20-ab97-4eb8-84e3-137a1743bafd ro   &lt;br /&gt;
                echo    'Initiale Ramdisk wird geladen …'&lt;br /&gt;
                initrd  /boot/initrd.img-3.5.0-36-generic&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dieser Änderung ist kein update-grub erforderlich!&lt;br /&gt;
&lt;br /&gt;
==/etc/default/grub==&lt;br /&gt;
&lt;br /&gt;
Diese Datei ist von einem '''&amp;quot;update-grub&amp;quot;''' nicht betroffen. Diese bleibt bestehen...&lt;br /&gt;
 vi /etc/default/grub&lt;br /&gt;
&lt;br /&gt;
Hier eine Beispielkonfigurationsdatei, Die Kommentare über den Parametern beschreiben die Bedeutung.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Welcher Menüeintrag in /boot/grub/grub.cfg soll standardmäßig gebootet werden? [0 bedeutet erster Eintrag]&lt;br /&gt;
GRUB_DEFAULT=0&lt;br /&gt;
&lt;br /&gt;
# Ein Zahlenwert &amp;gt; 0 gibt die Zeit in Sekunden an, bis der Bootvorgang ohne Anzeige des Auswahlmenü ausgeführt wird. Mit der Umschalt-Taste kann das Auswahlmenü innerhalb der eingestellten Zeitspanne sichtbar gemacht werden.&lt;br /&gt;
#GRUB_HIDDEN_TIMEOUT=0&lt;br /&gt;
&lt;br /&gt;
# Wenn dieser Wert auf ´false´ gesetzt, so wird nur der unter GRUB_HIDDEN_TIMEOUT eingestellte Wert auf dem Monitor als Countdown angezeigt. Mit der  ⇧ -Taste kann das Auswahlmenü innerhalb der Zeitspanne sichtbar gemacht werden.&lt;br /&gt;
GRUB_HIDDEN_TIMEOUT_QUIET=true&lt;br /&gt;
&lt;br /&gt;
# Ein Zahlenwert gibt die Zeit in Sekunden an, wie lange das Auswahlmenü angezeigt wird, bevor der Standard-Eintrag geladen wird. &lt;br /&gt;
GRUB_TIMEOUT=2&lt;br /&gt;
&lt;br /&gt;
# Generiert Hinweise zur aktuellen Distribution. Bei einer Installationen im BIOS-Modus sollte man hier keine Korrekturen vornehmen.&lt;br /&gt;
# Bei einer Installationen im EFI-Modus wird hier die aktuelle Distribution ausgelesen. Man kann hier einen selektiven Eintrag für das EFI-Menü erstellen.&lt;br /&gt;
GRUB_DISTRIBUTOR=`lsb_release -i -s 2&amp;gt; /dev/null || echo Debian`&lt;br /&gt;
&lt;br /&gt;
#Die Variablen sind für die Übergabe von Kernel-Bootoptionen reserviert und werden bei den Images aus dem Verzeichnis /boot angewendet:&lt;br /&gt;
GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;&amp;quot;&lt;br /&gt;
GRUB_CMDLINE_LINUX=&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Durch Unkommentieren wird der grafische Modus komplett abgeschaltet &lt;br /&gt;
#GRUB_TERMINAL=console&lt;br /&gt;
&lt;br /&gt;
# Standardauflösung des Grub-Menüs&lt;br /&gt;
#GRUB_GFXMODE=640x480&lt;br /&gt;
&lt;br /&gt;
# Normalerweise übergibt GRUB 2 die Root-Partition mittels UUID an den zu startenden Linux-Kernel. Durch Unkommentieren kann man GRUB 2 dazu veranlassen, dies per Device-Nummerierung (/dev/sdXX) zu machen.&lt;br /&gt;
#GRUB_DISABLE_LINUX_UUID=true&lt;br /&gt;
&lt;br /&gt;
# Nach Unkommentieren und setzen auf true werden alle Recovery-Kernel-Einträge im Auswahlmenü deaktiviert.&lt;br /&gt;
#GRUB_DISABLE_RECOVERY=&amp;quot;true&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Unkommentieren für einen Signalton beim Starten&lt;br /&gt;
#GRUB_INIT_TUNE=&amp;quot;480 440 1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: Hier zum nachlesen: http://wiki.ubuntuusers.de/GRUB_2/Konfiguration&lt;br /&gt;
&lt;br /&gt;
==/etc/grub.d/==&lt;br /&gt;
&lt;br /&gt;
=Reparatur=&lt;br /&gt;
==GRUB 2 erneut in den MBR der Festplatte installieren==&lt;br /&gt;
 sudo grub-setup /dev/sdX &lt;br /&gt;
&lt;br /&gt;
==GRUB 2 vollständig neu installieren==&lt;br /&gt;
 sudo grub-install /dev/sdX &lt;br /&gt;
&lt;br /&gt;
==GRUB 2 Pakete reinstallieren==&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get update &lt;br /&gt;
 &lt;br /&gt;
'''BIOS-Installation'''&lt;br /&gt;
 sudo apt-get --reinstall install grub-common grub-pc os-prober &lt;br /&gt;
&lt;br /&gt;
'''EFI-Installation'''&lt;br /&gt;
 sudo apt-get --reinstall install grub-common grub-efi-amd64 os-prober &lt;br /&gt;
&lt;br /&gt;
==Konfigurationsdatei neu erstellen/aktualisieren==&lt;br /&gt;
 sudo update-grub &lt;br /&gt;
&lt;br /&gt;
==Eine zusätzliche Konfigurationsdatei erstellen==&lt;br /&gt;
Die aktuelle Konfiguration für das Auswahl-Menü ermitteln und in eine frei definierbare Datei speichern - die Datei grub.cfg bleibt dabei unverändert (mehr zu grub-mkconfig):&lt;br /&gt;
 sudo grub-mkconfig --output=/boot/grub/meine.cfg &lt;br /&gt;
schreibt die aktuelle Konfiguration in die Datei meine.cfg im Verzeichnis /boot/grub, die Datei kann dabei an die eigenen Bedürfnisse angepasst werden.&lt;br /&gt;
&lt;br /&gt;
=Shellbefehle=&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 grub-install&lt;br /&gt;
 &lt;br /&gt;
Erstellt die Datei grub.cfg und damit die Konfiguration für das GRUB-2-Auswahlmenü&lt;br /&gt;
 update-grub&lt;br /&gt;
 &lt;br /&gt;
Setzt den Standard-Eintrag im GRUB-2-Auswahlmenü einmalig für das nächste Starten des Rechners.&lt;br /&gt;
 grub-reboot&lt;br /&gt;
 &lt;br /&gt;
Setzt den Standard-Eintrag im GRUB-2-Auswahlmenü.&lt;br /&gt;
 grub-set-default&lt;br /&gt;
 &lt;br /&gt;
Arbeitet wie update-grub, gibt die Konfiguration aber ohne Verwendung von Optionen nur zur Kontrolle im Terminal aus, erlaubt aber auch, die Konfiguration in eine andere Datei als die grub.cfg zu schreiben.&lt;br /&gt;
 grub-mkconfig&lt;br /&gt;
 -o, --output=&amp;lt;Datei&amp;gt;	 Wird diese Option angegeben, so wird die Konfiguration in die unter &amp;lt;Datei&amp;gt; angegebene Datei geschrieben.&lt;br /&gt;
&lt;br /&gt;
Erstellt einen Schlüssel zum Sperren der Bearbeitung des Grub-Menüs insgesamt sowie der Auswahl einzelner Menüpunkte zur Laufzeit.&lt;br /&gt;
 grub-mkpasswd-pbkdf2&lt;br /&gt;
 -c Zahl	 Wird diese Option angegeben, so wird damit die maximale Anzahl von Fehlversuchen gesetzt.&lt;br /&gt;
 -l Zahl	 Die Standardlänge des Schlüssels ist ohne Option 64-Byte - mit Option kann man diesen auf den angegebenen Wert begrenzen (nicht empfohlen, siehe auch Hinweis *)&lt;br /&gt;
 -s Zahl	 Die Standardlänge der Zufallsbasis (salted hash) ist ohne Option 64-Byte - hiermit kann man diese auf den angegebenen Wert begrenzen (nicht empfohlen, siehe auch Hinweis *)&lt;br /&gt;
&lt;br /&gt;
=How to's=&lt;br /&gt;
==Password-Hack==&lt;br /&gt;
Während der Rechner hochfährt auf folgende Ausgabe achten:&lt;br /&gt;
&lt;br /&gt;
[[Image:grub.jpg]]&lt;br /&gt;
&lt;br /&gt;
und wie angegeben ESC drücken.&lt;br /&gt;
&lt;br /&gt;
Im Grub Menü angekommen nun mit den Pfeiltasten das Betriebssystem auswählen in das man sich hacken möchte:&lt;br /&gt;
&lt;br /&gt;
[[Image:grub2.jpg]]&lt;br /&gt;
&lt;br /&gt;
und wie unten mit &amp;quot;e&amp;quot; auf der Tastatur in das Editionsuntermenü wechseln.&lt;br /&gt;
&lt;br /&gt;
[[Image:grub3.jpg]]&lt;br /&gt;
&lt;br /&gt;
Hier wechselt man nun auf den Kernel und betätigt ein weiteres mal &amp;quot;e&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Nun sieht man ein Eingabefeld das so aussieht:&lt;br /&gt;
&lt;br /&gt;
[[Image:grub4.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Achtung Englische Tastatur Einstellung'''&lt;br /&gt;
&lt;br /&gt;
In diesem Feld müssen sie jetz &lt;br /&gt;
 &amp;quot;quiet splash&amp;quot; &lt;br /&gt;
mit &lt;br /&gt;
 &amp;quot;init=/bin/bash&amp;quot; &lt;br /&gt;
ersetzen:&lt;br /&gt;
&lt;br /&gt;
[[Image:grub5.jpg]]&lt;br /&gt;
&lt;br /&gt;
und mit Enter bestätigen, dann kommen sie wieder auf das vorherige Editionsmenü.&lt;br /&gt;
&lt;br /&gt;
In diesem jetz einfach nurnoch &amp;quot;b&amp;quot; drücken um zu booten.&lt;br /&gt;
&lt;br /&gt;
=Nach dem Booten=&lt;br /&gt;
&lt;br /&gt;
Das booten sollte eine relativ kurze Zeit dauern und danach müssten sie ein Eingabefeld haben das so aussieht&lt;br /&gt;
&lt;br /&gt;
[[Image:boot1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Jetzt mountet man das root Dateisystem lese und schreibbar&lt;br /&gt;
&lt;br /&gt;
[[Image:boot2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
eventuell muss mann noch weiter Dateisysteme mounten&lt;br /&gt;
&lt;br /&gt;
 root@(none):/# mount -a&lt;br /&gt;
&lt;br /&gt;
und danach den Befehl &lt;br /&gt;
&lt;br /&gt;
[[Image:boot3.jpg]]&lt;br /&gt;
&lt;br /&gt;
um das rootpasswort zu ändern.&lt;br /&gt;
&lt;br /&gt;
Danach nurnoch:&lt;br /&gt;
&lt;br /&gt;
[[Image:boot4.jpg]]&lt;br /&gt;
&lt;br /&gt;
Und '''Geschafft'''&lt;br /&gt;
&lt;br /&gt;
Beim nächsten Start des Rechners kann man sich mit seinem neu gesetzten Passwort als root anmelden&lt;br /&gt;
==chroot==&lt;br /&gt;
Die chroot-Methode verwendet man immer dann, wenn man nur oder auch die grub.cfg neu erstellen lassen will. Außerdem sollte sie immer bei komplizierteren Systemkonstellationen wie LUKS- oder LV-Partitionen sowie Raid-Verbunden und beim Wiederherstellen des Bootloaders eines Dualboot-Systems angewendet werden.&lt;br /&gt;
&lt;br /&gt;
===Kein RAID/normale Partitionen===&lt;br /&gt;
&lt;br /&gt;
1. Root-Partition mounten&lt;br /&gt;
 sudo mount /dev/sdXY /mnt &lt;br /&gt;
&lt;br /&gt;
2. (OPTIONAL)&lt;br /&gt;
Nutzt man auf dem System eine separate Boot-Partition, so muss diese ebenfalls vorab eingehängt werden:&lt;br /&gt;
 sudo mount /dev/sdXY /mnt/boot &lt;br /&gt;
Nutzt man auf seinem Rechner das &amp;quot;(U)EFI&amp;quot;-Bootverfahren, so muss die relevante Bootpartition vorab eingehängt werden mit:&lt;br /&gt;
 sudo mount /dev/sdXY /mnt/boot/efi &lt;br /&gt;
&lt;br /&gt;
3. Vorbereitung und Wechsel in die chroot-Umgebung:&lt;br /&gt;
 sudo mount -o bind /dev /mnt/dev &lt;br /&gt;
 sudo mount -o bind /sys /mnt/sys &lt;br /&gt;
 sudo mount -t proc /proc /mnt/proc &lt;br /&gt;
 sudo cp /proc/mounts /mnt/etc/mtab &lt;br /&gt;
 sudo chroot /mnt /bin/bash &lt;br /&gt;
&lt;br /&gt;
4. grub installieren:&lt;br /&gt;
 grub-install /dev/sdX &lt;br /&gt;
 (evtl.: grub-install --recheck /dev/sdX) &lt;br /&gt;
 update-grub &lt;br /&gt;
&lt;br /&gt;
5. chroot-Umgebung verlassen und neustarten&lt;br /&gt;
&lt;br /&gt;
===RAID===&lt;br /&gt;
&lt;br /&gt;
1.Desktop-CD booten und mdadm-Tools installieren:&lt;br /&gt;
 sudo apt-get install mdadm &lt;br /&gt;
 sudo mdadm --assemble --scan &lt;br /&gt;
&lt;br /&gt;
2.Einhängen der Systempartition:&lt;br /&gt;
 sudo mount /dev/mdX /mnt &lt;br /&gt;
 sudo mdadm --examine --scan &lt;br /&gt;
&lt;br /&gt;
3.(Optional)&lt;br /&gt;
Nutzt man auf dem System eine separate Boot-Partition, so muss diese ebenfalls eingehängt werden:&lt;br /&gt;
 sudo mount /dev/mdX /mnt/boot &lt;br /&gt;
&lt;br /&gt;
4.Wechsel in die chroot-Umgebung:&lt;br /&gt;
 sudo mount -o bind /dev /mnt/dev &lt;br /&gt;
 sudo mount -o bind /sys /mnt/sys &lt;br /&gt;
 sudo mount -t proc /proc /mnt/proc &lt;br /&gt;
 sudo cp /proc/mounts /mnt/etc/mtab &lt;br /&gt;
 sudo chroot /mnt /bin/bash &lt;br /&gt;
&lt;br /&gt;
5.grub installieren&lt;br /&gt;
 grub-install /dev/sdX &lt;br /&gt;
Installation auf allen teilnehmenden Platten (/dev/sda, /dev/sdb ...) empfohlen!&lt;br /&gt;
 update-grub &lt;br /&gt;
&lt;br /&gt;
6. chroot-Umgebung verlassen und neustarten&lt;br /&gt;
&lt;br /&gt;
==Root-Directory==&lt;br /&gt;
Die Root-Directory-Methode kann man immer dann wählen, wenn man sicher ist, dass die Datei grub.cfg richtig ist und GRUB 2 nur deswegen nicht richtig startet, weil er nicht oder nicht mehr bzw. nicht mehr richtig im Bootsektor oder dem MBR der betreffenden Festplatte installiert ist. Diese Situation hat man z.B. stets, '''nachdem Windows nach Ubuntu auf dem System installiert wurde'''. Diese Methode erfordert zwar weniger Einzelschritte, ist dabei aber auch weniger flexibel und erlaubt nicht so viele Reparaturoptionen wie die chroot-Methode.&lt;br /&gt;
&lt;br /&gt;
Bei dieser Variante wird GRUB 2 einfach in einem Terminal[2] von der Desktop-CD mittels des GRUB-2-Skripts grub-install erneut auf der Festplatte installiert:&lt;br /&gt;
&lt;br /&gt;
1. Desktop-Image laden&lt;br /&gt;
2. Root-Partition mounten&lt;br /&gt;
 sudo mount /dev/sdXY /mnt &lt;br /&gt;
3. Optional&lt;br /&gt;
Nutzt man auf dem System eine separate Boot-Partition, so muss diese ebenfalls vorab eingehängt werden:&lt;br /&gt;
 sudo mount /dev/sdXY /mnt/boot &lt;br /&gt;
Nutzt man auf seinem Rechner das &amp;quot;(U)EFI&amp;quot;-Bootverfahren, so muss die relevante Bootpartition vorab eingehängt werden mit:&lt;br /&gt;
 sudo mount /dev/sdXY /mnt/boot/efi &lt;br /&gt;
&lt;br /&gt;
4. Devices von USB/CD einbinden Live-System&lt;br /&gt;
 sudo mount --bind /dev/ /mnt/dev &lt;br /&gt;
5. grub installieren&lt;br /&gt;
GRUB 1.98 und vorher (bis Maverick Meerkat):&lt;br /&gt;
 sudo grub-install --root-directory=/mnt /dev/sdX &lt;br /&gt;
GRUB 1.99 und später:&lt;br /&gt;
 sudo grub-install --boot-directory=/mnt/boot /dev/sdX &lt;br /&gt;
 sudo update-grub&lt;br /&gt;
&lt;br /&gt;
=Troubleshoot=&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Grub2&amp;diff=4039</id>
		<title>Grub2</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Grub2&amp;diff=4039"/>
		<updated>2014-02-14T08:43:11Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* Systemstart */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Systemstart=&lt;br /&gt;
&lt;br /&gt;
Systemstartablauf:&lt;br /&gt;
&lt;br /&gt;
Das BIOS sucht je nach Einstellung&lt;br /&gt;
*im MBR auf dem ersten Datenträger nach einem Bootmanager bzw. Bootloader.&lt;br /&gt;
*auf der EFI-Partition nach der Startdatei '''grubx64.efi'''&lt;br /&gt;
Der Bootloader GRUB 2 lädt sich nach und nach die Dateien bzw. Images&lt;br /&gt;
*'''boot.img'''&lt;br /&gt;
*'''core.img'''&lt;br /&gt;
*'''/boot/grub/grub.cfg'''&lt;br /&gt;
*erforderliche '''mod-Dateien (Treiber)''' für jeweils spezielle Aufgaben.&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
&lt;br /&gt;
Grub wird in den MBR der angeben Festplatte geschrieben: (BSP)&lt;br /&gt;
 grub-install /dev/sda [Achtung, Bootreihenfolge im BIOS/UEFI beachten!]&lt;br /&gt;
 &lt;br /&gt;
oder auf einer Partition: (BSP)&lt;br /&gt;
 grub-install --force /dev/sda3&lt;br /&gt;
&lt;br /&gt;
=Konfigurationsdateien=&lt;br /&gt;
==/boot/grub/grub.cfg==&lt;br /&gt;
&lt;br /&gt;
Diese Datei ist die generelle Konfigurationsdate von grub. Diese wird nach einem '''&amp;quot;update-grub&amp;quot;''' immer neuerstellt!&lt;br /&gt;
 vi /boot/grub/grub.cfg&lt;br /&gt;
&lt;br /&gt;
Um die Reihenfolge zu ändern, müssen dor tide &amp;quot;Menuentry's&amp;quot; geändert werden:&lt;br /&gt;
Grub wird es von oben nach unten anzeigen.&lt;br /&gt;
Beispiel: Im Moment ist der Booteintrag mit der &amp;quot;Wiederherstellungskonsole&amp;quot; an zweiter Stelle. Deshalb wird dieser Eintrag ausgeschnitten und über den ersten eingefügt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        menuentry 'Ubuntu, mit Linux 3.5.0-36-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.5.0-36-generic-advanced-3daa1a20-ab97-4eb8-84e3-137a1743bafd' {&lt;br /&gt;
        recordfail&lt;br /&gt;
                gfxmode $linux_gfx_mode&lt;br /&gt;
                insmod gzio&lt;br /&gt;
                insmod part_msdos&lt;br /&gt;
                insmod ext2&lt;br /&gt;
                set root='hd0,msdos1'&lt;br /&gt;
                if [ x$feature_platform_search_hint = xy ]; then&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                else&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root 3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                fi&lt;br /&gt;
                echo    'Linux 3.5.0-36-generic wird geladen …'&lt;br /&gt;
                linux   /boot/vmlinuz-3.5.0-36-generic root=UUID=3daa1a20-ab97-4eb8-84e3-137a1743bafd ro   &lt;br /&gt;
                echo    'Initiale Ramdisk wird geladen …'&lt;br /&gt;
                initrd  /boot/initrd.img-3.5.0-36-generic&lt;br /&gt;
        }&lt;br /&gt;
        menuentry 'Ubuntu, mit Linux 3.5.0-36-generic (Wiederherstellungsmodus)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.5.0-36-generic-recovery-3daa1a20-ab97-4eb8-84e3-137a1743bafd' {&lt;br /&gt;
        recordfail&lt;br /&gt;
                insmod gzio&lt;br /&gt;
                insmod part_msdos&lt;br /&gt;
                insmod ext2&lt;br /&gt;
                set root='hd0,msdos1'&lt;br /&gt;
                if [ x$feature_platform_search_hint = xy ]; then&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                else&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root 3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                fi&lt;br /&gt;
                echo    'Linux 3.5.0-36-generic wird geladen …'&lt;br /&gt;
                linux   /boot/vmlinuz-3.5.0-36-generic root=UUID=3daa1a20-ab97-4eb8-84e3-137a1743bafd ro recovery nomodeset &lt;br /&gt;
                echo    'Initiale Ramdisk wird geladen …'&lt;br /&gt;
                initrd  /boot/initrd.img-3.5.0-36-generic&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nun ändern in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
        menuentry 'Ubuntu, mit Linux 3.5.0-36-generic (Wiederherstellungsmodus)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.5.0-36-generic-recovery-3daa1a20-ab97-4eb8-84e3-137a1743bafd' {&lt;br /&gt;
        recordfail&lt;br /&gt;
                insmod gzio&lt;br /&gt;
                insmod part_msdos&lt;br /&gt;
                insmod ext2&lt;br /&gt;
                set root='hd0,msdos1'&lt;br /&gt;
                if [ x$feature_platform_search_hint = xy ]; then&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                else&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root 3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                fi&lt;br /&gt;
                echo    'Linux 3.5.0-36-generic wird geladen …'&lt;br /&gt;
                linux   /boot/vmlinuz-3.5.0-36-generic root=UUID=3daa1a20-ab97-4eb8-84e3-137a1743bafd ro recovery nomodeset &lt;br /&gt;
                echo    'Initiale Ramdisk wird geladen …'&lt;br /&gt;
                initrd  /boot/initrd.img-3.5.0-36-generic&lt;br /&gt;
        }&lt;br /&gt;
        menuentry 'Ubuntu, mit Linux 3.5.0-36-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.5.0-36-generic-advanced-3daa1a20-ab97-4eb8-84e3-137a1743bafd' {&lt;br /&gt;
        recordfail&lt;br /&gt;
                gfxmode $linux_gfx_mode&lt;br /&gt;
                insmod gzio&lt;br /&gt;
                insmod part_msdos&lt;br /&gt;
                insmod ext2&lt;br /&gt;
                set root='hd0,msdos1'&lt;br /&gt;
                if [ x$feature_platform_search_hint = xy ]; then&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                else&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root 3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                fi&lt;br /&gt;
                echo    'Linux 3.5.0-36-generic wird geladen …'&lt;br /&gt;
                linux   /boot/vmlinuz-3.5.0-36-generic root=UUID=3daa1a20-ab97-4eb8-84e3-137a1743bafd ro   &lt;br /&gt;
                echo    'Initiale Ramdisk wird geladen …'&lt;br /&gt;
                initrd  /boot/initrd.img-3.5.0-36-generic&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dieser Änderung ist kein update-grub erforderlich!&lt;br /&gt;
&lt;br /&gt;
==/etc/default/grub==&lt;br /&gt;
&lt;br /&gt;
Diese Datei ist von einem '''&amp;quot;update-grub&amp;quot;''' nicht betroffen. Diese bleibt bestehen...&lt;br /&gt;
 vi /etc/default/grub&lt;br /&gt;
&lt;br /&gt;
Hier eine Beispielkonfigurationsdatei, Die Kommentare über den Parametern beschreiben die Bedeutung.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Welcher Menüeintrag in /boot/grub/grub.cfg soll standardmäßig gebootet werden? [0 bedeutet erster Eintrag]&lt;br /&gt;
GRUB_DEFAULT=0&lt;br /&gt;
&lt;br /&gt;
# Ein Zahlenwert &amp;gt; 0 gibt die Zeit in Sekunden an, bis der Bootvorgang ohne Anzeige des Auswahlmenü ausgeführt wird. Mit der Umschalt-Taste kann das Auswahlmenü innerhalb der eingestellten Zeitspanne sichtbar gemacht werden.&lt;br /&gt;
#GRUB_HIDDEN_TIMEOUT=0&lt;br /&gt;
&lt;br /&gt;
# Wenn dieser Wert auf ´false´ gesetzt, so wird nur der unter GRUB_HIDDEN_TIMEOUT eingestellte Wert auf dem Monitor als Countdown angezeigt. Mit der  ⇧ -Taste kann das Auswahlmenü innerhalb der Zeitspanne sichtbar gemacht werden.&lt;br /&gt;
GRUB_HIDDEN_TIMEOUT_QUIET=true&lt;br /&gt;
&lt;br /&gt;
# Ein Zahlenwert gibt die Zeit in Sekunden an, wie lange das Auswahlmenü angezeigt wird, bevor der Standard-Eintrag geladen wird. &lt;br /&gt;
GRUB_TIMEOUT=2&lt;br /&gt;
&lt;br /&gt;
# Generiert Hinweise zur aktuellen Distribution. Bei einer Installationen im BIOS-Modus sollte man hier keine Korrekturen vornehmen.&lt;br /&gt;
# Bei einer Installationen im EFI-Modus wird hier die aktuelle Distribution ausgelesen. Man kann hier einen selektiven Eintrag für das EFI-Menü erstellen.&lt;br /&gt;
GRUB_DISTRIBUTOR=`lsb_release -i -s 2&amp;gt; /dev/null || echo Debian`&lt;br /&gt;
&lt;br /&gt;
#Die Variablen sind für die Übergabe von Kernel-Bootoptionen reserviert und werden bei den Images aus dem Verzeichnis /boot angewendet:&lt;br /&gt;
GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;&amp;quot;&lt;br /&gt;
GRUB_CMDLINE_LINUX=&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Durch Unkommentieren wird der grafische Modus komplett abgeschaltet &lt;br /&gt;
#GRUB_TERMINAL=console&lt;br /&gt;
&lt;br /&gt;
# Standardauflösung des Grub-Menüs&lt;br /&gt;
#GRUB_GFXMODE=640x480&lt;br /&gt;
&lt;br /&gt;
# Normalerweise übergibt GRUB 2 die Root-Partition mittels UUID an den zu startenden Linux-Kernel. Durch Unkommentieren kann man GRUB 2 dazu veranlassen, dies per Device-Nummerierung (/dev/sdXX) zu machen.&lt;br /&gt;
#GRUB_DISABLE_LINUX_UUID=true&lt;br /&gt;
&lt;br /&gt;
# Nach Unkommentieren und setzen auf true werden alle Recovery-Kernel-Einträge im Auswahlmenü deaktiviert.&lt;br /&gt;
#GRUB_DISABLE_RECOVERY=&amp;quot;true&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Unkommentieren für einen Signalton beim Starten&lt;br /&gt;
#GRUB_INIT_TUNE=&amp;quot;480 440 1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: Hier zum nachlesen: http://wiki.ubuntuusers.de/GRUB_2/Konfiguration&lt;br /&gt;
&lt;br /&gt;
==/etc/grub.d/==&lt;br /&gt;
&lt;br /&gt;
=Reparatur=&lt;br /&gt;
==GRUB 2 erneut in den MBR der Festplatte installieren==&lt;br /&gt;
 sudo grub-setup /dev/sdX &lt;br /&gt;
&lt;br /&gt;
==GRUB 2 vollständig neu installieren==&lt;br /&gt;
 sudo grub-install /dev/sdX &lt;br /&gt;
&lt;br /&gt;
==GRUB 2 Pakete reinstallieren==&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get update &lt;br /&gt;
 &lt;br /&gt;
'''BIOS-Installation'''&lt;br /&gt;
 sudo apt-get --reinstall install grub-common grub-pc os-prober &lt;br /&gt;
&lt;br /&gt;
'''EFI-Installation'''&lt;br /&gt;
 sudo apt-get --reinstall install grub-common grub-efi-amd64 os-prober &lt;br /&gt;
&lt;br /&gt;
==Konfigurationsdatei neu erstellen/aktualisieren==&lt;br /&gt;
 sudo update-grub &lt;br /&gt;
&lt;br /&gt;
==Eine zusätzliche Konfigurationsdatei erstellen==&lt;br /&gt;
Die aktuelle Konfiguration für das Auswahl-Menü ermitteln und in eine frei definierbare Datei speichern - die Datei grub.cfg bleibt dabei unverändert (mehr zu grub-mkconfig):&lt;br /&gt;
 sudo grub-mkconfig --output=/boot/grub/meine.cfg &lt;br /&gt;
schreibt die aktuelle Konfiguration in die Datei meine.cfg im Verzeichnis /boot/grub, die Datei kann dabei an die eigenen Bedürfnisse angepasst werden.&lt;br /&gt;
&lt;br /&gt;
=Shellbefehle=&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 grub-install&lt;br /&gt;
 &lt;br /&gt;
Erstellt die Datei grub.cfg und damit die Konfiguration für das GRUB-2-Auswahlmenü&lt;br /&gt;
 update-grub&lt;br /&gt;
 &lt;br /&gt;
Setzt den Standard-Eintrag im GRUB-2-Auswahlmenü einmalig für das nächste Starten des Rechners.&lt;br /&gt;
 grub-reboot&lt;br /&gt;
 &lt;br /&gt;
Setzt den Standard-Eintrag im GRUB-2-Auswahlmenü.&lt;br /&gt;
 grub-set-default&lt;br /&gt;
 &lt;br /&gt;
Arbeitet wie update-grub, gibt die Konfiguration aber ohne Verwendung von Optionen nur zur Kontrolle im Terminal aus, erlaubt aber auch, die Konfiguration in eine andere Datei als die grub.cfg zu schreiben.&lt;br /&gt;
 grub-mkconfig&lt;br /&gt;
 -o, --output=&amp;lt;Datei&amp;gt;	 Wird diese Option angegeben, so wird die Konfiguration in die unter &amp;lt;Datei&amp;gt; angegebene Datei geschrieben.&lt;br /&gt;
&lt;br /&gt;
Erstellt einen Schlüssel zum Sperren der Bearbeitung des Grub-Menüs insgesamt sowie der Auswahl einzelner Menüpunkte zur Laufzeit.&lt;br /&gt;
 grub-mkpasswd-pbkdf2&lt;br /&gt;
 -c Zahl	 Wird diese Option angegeben, so wird damit die maximale Anzahl von Fehlversuchen gesetzt.&lt;br /&gt;
 -l Zahl	 Die Standardlänge des Schlüssels ist ohne Option 64-Byte - mit Option kann man diesen auf den angegebenen Wert begrenzen (nicht empfohlen, siehe auch Hinweis *)&lt;br /&gt;
 -s Zahl	 Die Standardlänge der Zufallsbasis (salted hash) ist ohne Option 64-Byte - hiermit kann man diese auf den angegebenen Wert begrenzen (nicht empfohlen, siehe auch Hinweis *)&lt;br /&gt;
&lt;br /&gt;
=How to's=&lt;br /&gt;
==Password-Hack==&lt;br /&gt;
Während der Rechner hochfährt auf folgende Ausgabe achten:&lt;br /&gt;
&lt;br /&gt;
[[Image:grub.jpg]]&lt;br /&gt;
&lt;br /&gt;
und wie angegeben ESC drücken.&lt;br /&gt;
&lt;br /&gt;
Im Grub Menü angekommen nun mit den Pfeiltasten das Betriebssystem auswählen in das man sich hacken möchte:&lt;br /&gt;
&lt;br /&gt;
[[Image:grub2.jpg]]&lt;br /&gt;
&lt;br /&gt;
und wie unten mit &amp;quot;e&amp;quot; auf der Tastatur in das Editionsuntermenü wechseln.&lt;br /&gt;
&lt;br /&gt;
[[Image:grub3.jpg]]&lt;br /&gt;
&lt;br /&gt;
Hier wechselt man nun auf den Kernel und betätigt ein weiteres mal &amp;quot;e&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Nun sieht man ein Eingabefeld das so aussieht:&lt;br /&gt;
&lt;br /&gt;
[[Image:grub4.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Achtung Englische Tastatur Einstellung'''&lt;br /&gt;
&lt;br /&gt;
In diesem Feld müssen sie jetz &lt;br /&gt;
 &amp;quot;quiet splash&amp;quot; &lt;br /&gt;
mit &lt;br /&gt;
 &amp;quot;init=/bin/bash&amp;quot; &lt;br /&gt;
ersetzen:&lt;br /&gt;
&lt;br /&gt;
[[Image:grub5.jpg]]&lt;br /&gt;
&lt;br /&gt;
und mit Enter bestätigen, dann kommen sie wieder auf das vorherige Editionsmenü.&lt;br /&gt;
&lt;br /&gt;
In diesem jetz einfach nurnoch &amp;quot;b&amp;quot; drücken um zu booten.&lt;br /&gt;
&lt;br /&gt;
=Nach dem Booten=&lt;br /&gt;
&lt;br /&gt;
Das booten sollte eine relativ kurze Zeit dauern und danach müssten sie ein Eingabefeld haben das so aussieht&lt;br /&gt;
&lt;br /&gt;
[[Image:boot1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Jetzt mountet man das root Dateisystem lese und schreibbar&lt;br /&gt;
&lt;br /&gt;
[[Image:boot2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
eventuell muss mann noch weiter Dateisysteme mounten&lt;br /&gt;
&lt;br /&gt;
 root@(none):/# mount -a&lt;br /&gt;
&lt;br /&gt;
und danach den Befehl &lt;br /&gt;
&lt;br /&gt;
[[Image:boot3.jpg]]&lt;br /&gt;
&lt;br /&gt;
um das rootpasswort zu ändern.&lt;br /&gt;
&lt;br /&gt;
Danach nurnoch:&lt;br /&gt;
&lt;br /&gt;
[[Image:boot4.jpg]]&lt;br /&gt;
&lt;br /&gt;
Und '''Geschafft'''&lt;br /&gt;
&lt;br /&gt;
Beim nächsten Start des Rechners kann man sich mit seinem neu gesetzten Passwort als root anmelden&lt;br /&gt;
==chroot==&lt;br /&gt;
Die chroot-Methode verwendet man immer dann, wenn man nur oder auch die grub.cfg neu erstellen lassen will. Außerdem sollte sie immer bei komplizierteren Systemkonstellationen wie LUKS- oder LV-Partitionen sowie Raid-Verbunden und beim Wiederherstellen des Bootloaders eines Dualboot-Systems angewendet werden.&lt;br /&gt;
&lt;br /&gt;
===Kein RAID/normale Partitionen===&lt;br /&gt;
&lt;br /&gt;
1. Root-Partition mounten&lt;br /&gt;
 sudo mount /dev/sdXY /mnt &lt;br /&gt;
&lt;br /&gt;
2. (OPTIONAL)&lt;br /&gt;
Nutzt man auf dem System eine separate Boot-Partition, so muss diese ebenfalls vorab eingehängt werden:&lt;br /&gt;
 sudo mount /dev/sdXY /mnt/boot &lt;br /&gt;
Nutzt man auf seinem Rechner das &amp;quot;(U)EFI&amp;quot;-Bootverfahren, so muss die relevante Bootpartition vorab eingehängt werden mit:&lt;br /&gt;
 sudo mount /dev/sdXY /mnt/boot/efi &lt;br /&gt;
&lt;br /&gt;
3. Vorbereitung und Wechsel in die chroot-Umgebung:&lt;br /&gt;
 sudo mount -o bind /dev /mnt/dev &lt;br /&gt;
 sudo mount -o bind /sys /mnt/sys &lt;br /&gt;
 sudo mount -t proc /proc /mnt/proc &lt;br /&gt;
 sudo cp /proc/mounts /mnt/etc/mtab &lt;br /&gt;
 sudo chroot /mnt /bin/bash &lt;br /&gt;
&lt;br /&gt;
4. grub installieren:&lt;br /&gt;
 grub-install /dev/sdX &lt;br /&gt;
 (evtl.: grub-install --recheck /dev/sdX) &lt;br /&gt;
 update-grub &lt;br /&gt;
&lt;br /&gt;
5. chroot-Umgebung verlassen und neustarten&lt;br /&gt;
&lt;br /&gt;
===RAID===&lt;br /&gt;
&lt;br /&gt;
1.Desktop-CD booten und mdadm-Tools installieren:&lt;br /&gt;
 sudo apt-get install mdadm &lt;br /&gt;
 sudo mdadm --assemble --scan &lt;br /&gt;
&lt;br /&gt;
2.Einhängen der Systempartition:&lt;br /&gt;
 sudo mount /dev/mdX /mnt &lt;br /&gt;
 sudo mdadm --examine --scan &lt;br /&gt;
&lt;br /&gt;
3.(Optional)&lt;br /&gt;
Nutzt man auf dem System eine separate Boot-Partition, so muss diese ebenfalls eingehängt werden:&lt;br /&gt;
 sudo mount /dev/mdX /mnt/boot &lt;br /&gt;
&lt;br /&gt;
4.Wechsel in die chroot-Umgebung:&lt;br /&gt;
 sudo mount -o bind /dev /mnt/dev &lt;br /&gt;
 sudo mount -o bind /sys /mnt/sys &lt;br /&gt;
 sudo mount -t proc /proc /mnt/proc &lt;br /&gt;
 sudo cp /proc/mounts /mnt/etc/mtab &lt;br /&gt;
 sudo chroot /mnt /bin/bash &lt;br /&gt;
&lt;br /&gt;
5.grub installieren&lt;br /&gt;
 grub-install /dev/sdX &lt;br /&gt;
Installation auf allen teilnehmenden Platten (/dev/sda, /dev/sdb ...) empfohlen!&lt;br /&gt;
 update-grub &lt;br /&gt;
&lt;br /&gt;
6. chroot-Umgebung verlassen und neustarten&lt;br /&gt;
&lt;br /&gt;
==Root-Directory==&lt;br /&gt;
Die Root-Directory-Methode kann man immer dann wählen, wenn man sicher ist, dass die Datei grub.cfg richtig ist und GRUB 2 nur deswegen nicht richtig startet, weil er nicht oder nicht mehr bzw. nicht mehr richtig im Bootsektor oder dem MBR der betreffenden Festplatte installiert ist. Diese Situation hat man z.B. stets, '''nachdem Windows nach Ubuntu auf dem System installiert wurde'''. Diese Methode erfordert zwar weniger Einzelschritte, ist dabei aber auch weniger flexibel und erlaubt nicht so viele Reparaturoptionen wie die chroot-Methode.&lt;br /&gt;
&lt;br /&gt;
Bei dieser Variante wird GRUB 2 einfach in einem Terminal[2] von der Desktop-CD mittels des GRUB-2-Skripts grub-install erneut auf der Festplatte installiert:&lt;br /&gt;
&lt;br /&gt;
1. Desktop-Image laden&lt;br /&gt;
2. Root-Partition mounten&lt;br /&gt;
 sudo mount /dev/sdXY /mnt &lt;br /&gt;
3. Optional&lt;br /&gt;
Nutzt man auf dem System eine separate Boot-Partition, so muss diese ebenfalls vorab eingehängt werden:&lt;br /&gt;
 sudo mount /dev/sdXY /mnt/boot &lt;br /&gt;
Nutzt man auf seinem Rechner das &amp;quot;(U)EFI&amp;quot;-Bootverfahren, so muss die relevante Bootpartition vorab eingehängt werden mit:&lt;br /&gt;
 sudo mount /dev/sdXY /mnt/boot/efi &lt;br /&gt;
&lt;br /&gt;
4. Devices von USB/CD einbinden Live-System&lt;br /&gt;
 sudo mount --bind /dev/ /mnt/dev &lt;br /&gt;
5. grub installieren&lt;br /&gt;
GRUB 1.98 und vorher (bis Maverick Meerkat):&lt;br /&gt;
 sudo grub-install --root-directory=/mnt /dev/sdX &lt;br /&gt;
GRUB 1.99 und später:&lt;br /&gt;
 sudo grub-install --boot-directory=/mnt/boot /dev/sdX &lt;br /&gt;
 sudo update-grub&lt;br /&gt;
&lt;br /&gt;
=Troubleshoot=&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Grub2&amp;diff=4038</id>
		<title>Grub2</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Grub2&amp;diff=4038"/>
		<updated>2014-02-14T08:42:19Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Systemstart=&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte werden beim Starten eines Rechners durchlaufen:&lt;br /&gt;
&lt;br /&gt;
Das BIOS sucht je nach Einstellung&lt;br /&gt;
*im MBR auf dem ersten Datenträger nach einem Bootmanager bzw. Bootloader.&lt;br /&gt;
*auf der EFI-Partition nach der Startdatei grubx64.efi&lt;br /&gt;
Der Bootloader GRUB 2 lädt sich nach und nach die Dateien bzw. Images&lt;br /&gt;
*boot.img&lt;br /&gt;
*core.img&lt;br /&gt;
*/boot/grub/grub.cfg&lt;br /&gt;
*erforderliche mod-Dateien (Treiber) für jeweils spezielle Aufgaben.&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
&lt;br /&gt;
Grub wird in den MBR der angeben Festplatte geschrieben: (BSP)&lt;br /&gt;
 grub-install /dev/sda [Achtung, Bootreihenfolge im BIOS/UEFI beachten!]&lt;br /&gt;
 &lt;br /&gt;
oder auf einer Partition: (BSP)&lt;br /&gt;
 grub-install --force /dev/sda3&lt;br /&gt;
&lt;br /&gt;
=Konfigurationsdateien=&lt;br /&gt;
==/boot/grub/grub.cfg==&lt;br /&gt;
&lt;br /&gt;
Diese Datei ist die generelle Konfigurationsdate von grub. Diese wird nach einem '''&amp;quot;update-grub&amp;quot;''' immer neuerstellt!&lt;br /&gt;
 vi /boot/grub/grub.cfg&lt;br /&gt;
&lt;br /&gt;
Um die Reihenfolge zu ändern, müssen dor tide &amp;quot;Menuentry's&amp;quot; geändert werden:&lt;br /&gt;
Grub wird es von oben nach unten anzeigen.&lt;br /&gt;
Beispiel: Im Moment ist der Booteintrag mit der &amp;quot;Wiederherstellungskonsole&amp;quot; an zweiter Stelle. Deshalb wird dieser Eintrag ausgeschnitten und über den ersten eingefügt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        menuentry 'Ubuntu, mit Linux 3.5.0-36-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.5.0-36-generic-advanced-3daa1a20-ab97-4eb8-84e3-137a1743bafd' {&lt;br /&gt;
        recordfail&lt;br /&gt;
                gfxmode $linux_gfx_mode&lt;br /&gt;
                insmod gzio&lt;br /&gt;
                insmod part_msdos&lt;br /&gt;
                insmod ext2&lt;br /&gt;
                set root='hd0,msdos1'&lt;br /&gt;
                if [ x$feature_platform_search_hint = xy ]; then&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                else&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root 3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                fi&lt;br /&gt;
                echo    'Linux 3.5.0-36-generic wird geladen …'&lt;br /&gt;
                linux   /boot/vmlinuz-3.5.0-36-generic root=UUID=3daa1a20-ab97-4eb8-84e3-137a1743bafd ro   &lt;br /&gt;
                echo    'Initiale Ramdisk wird geladen …'&lt;br /&gt;
                initrd  /boot/initrd.img-3.5.0-36-generic&lt;br /&gt;
        }&lt;br /&gt;
        menuentry 'Ubuntu, mit Linux 3.5.0-36-generic (Wiederherstellungsmodus)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.5.0-36-generic-recovery-3daa1a20-ab97-4eb8-84e3-137a1743bafd' {&lt;br /&gt;
        recordfail&lt;br /&gt;
                insmod gzio&lt;br /&gt;
                insmod part_msdos&lt;br /&gt;
                insmod ext2&lt;br /&gt;
                set root='hd0,msdos1'&lt;br /&gt;
                if [ x$feature_platform_search_hint = xy ]; then&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                else&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root 3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                fi&lt;br /&gt;
                echo    'Linux 3.5.0-36-generic wird geladen …'&lt;br /&gt;
                linux   /boot/vmlinuz-3.5.0-36-generic root=UUID=3daa1a20-ab97-4eb8-84e3-137a1743bafd ro recovery nomodeset &lt;br /&gt;
                echo    'Initiale Ramdisk wird geladen …'&lt;br /&gt;
                initrd  /boot/initrd.img-3.5.0-36-generic&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nun ändern in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
        menuentry 'Ubuntu, mit Linux 3.5.0-36-generic (Wiederherstellungsmodus)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.5.0-36-generic-recovery-3daa1a20-ab97-4eb8-84e3-137a1743bafd' {&lt;br /&gt;
        recordfail&lt;br /&gt;
                insmod gzio&lt;br /&gt;
                insmod part_msdos&lt;br /&gt;
                insmod ext2&lt;br /&gt;
                set root='hd0,msdos1'&lt;br /&gt;
                if [ x$feature_platform_search_hint = xy ]; then&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                else&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root 3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                fi&lt;br /&gt;
                echo    'Linux 3.5.0-36-generic wird geladen …'&lt;br /&gt;
                linux   /boot/vmlinuz-3.5.0-36-generic root=UUID=3daa1a20-ab97-4eb8-84e3-137a1743bafd ro recovery nomodeset &lt;br /&gt;
                echo    'Initiale Ramdisk wird geladen …'&lt;br /&gt;
                initrd  /boot/initrd.img-3.5.0-36-generic&lt;br /&gt;
        }&lt;br /&gt;
        menuentry 'Ubuntu, mit Linux 3.5.0-36-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.5.0-36-generic-advanced-3daa1a20-ab97-4eb8-84e3-137a1743bafd' {&lt;br /&gt;
        recordfail&lt;br /&gt;
                gfxmode $linux_gfx_mode&lt;br /&gt;
                insmod gzio&lt;br /&gt;
                insmod part_msdos&lt;br /&gt;
                insmod ext2&lt;br /&gt;
                set root='hd0,msdos1'&lt;br /&gt;
                if [ x$feature_platform_search_hint = xy ]; then&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                else&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root 3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                fi&lt;br /&gt;
                echo    'Linux 3.5.0-36-generic wird geladen …'&lt;br /&gt;
                linux   /boot/vmlinuz-3.5.0-36-generic root=UUID=3daa1a20-ab97-4eb8-84e3-137a1743bafd ro   &lt;br /&gt;
                echo    'Initiale Ramdisk wird geladen …'&lt;br /&gt;
                initrd  /boot/initrd.img-3.5.0-36-generic&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dieser Änderung ist kein update-grub erforderlich!&lt;br /&gt;
&lt;br /&gt;
==/etc/default/grub==&lt;br /&gt;
&lt;br /&gt;
Diese Datei ist von einem '''&amp;quot;update-grub&amp;quot;''' nicht betroffen. Diese bleibt bestehen...&lt;br /&gt;
 vi /etc/default/grub&lt;br /&gt;
&lt;br /&gt;
Hier eine Beispielkonfigurationsdatei, Die Kommentare über den Parametern beschreiben die Bedeutung.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Welcher Menüeintrag in /boot/grub/grub.cfg soll standardmäßig gebootet werden? [0 bedeutet erster Eintrag]&lt;br /&gt;
GRUB_DEFAULT=0&lt;br /&gt;
&lt;br /&gt;
# Ein Zahlenwert &amp;gt; 0 gibt die Zeit in Sekunden an, bis der Bootvorgang ohne Anzeige des Auswahlmenü ausgeführt wird. Mit der Umschalt-Taste kann das Auswahlmenü innerhalb der eingestellten Zeitspanne sichtbar gemacht werden.&lt;br /&gt;
#GRUB_HIDDEN_TIMEOUT=0&lt;br /&gt;
&lt;br /&gt;
# Wenn dieser Wert auf ´false´ gesetzt, so wird nur der unter GRUB_HIDDEN_TIMEOUT eingestellte Wert auf dem Monitor als Countdown angezeigt. Mit der  ⇧ -Taste kann das Auswahlmenü innerhalb der Zeitspanne sichtbar gemacht werden.&lt;br /&gt;
GRUB_HIDDEN_TIMEOUT_QUIET=true&lt;br /&gt;
&lt;br /&gt;
# Ein Zahlenwert gibt die Zeit in Sekunden an, wie lange das Auswahlmenü angezeigt wird, bevor der Standard-Eintrag geladen wird. &lt;br /&gt;
GRUB_TIMEOUT=2&lt;br /&gt;
&lt;br /&gt;
# Generiert Hinweise zur aktuellen Distribution. Bei einer Installationen im BIOS-Modus sollte man hier keine Korrekturen vornehmen.&lt;br /&gt;
# Bei einer Installationen im EFI-Modus wird hier die aktuelle Distribution ausgelesen. Man kann hier einen selektiven Eintrag für das EFI-Menü erstellen.&lt;br /&gt;
GRUB_DISTRIBUTOR=`lsb_release -i -s 2&amp;gt; /dev/null || echo Debian`&lt;br /&gt;
&lt;br /&gt;
#Die Variablen sind für die Übergabe von Kernel-Bootoptionen reserviert und werden bei den Images aus dem Verzeichnis /boot angewendet:&lt;br /&gt;
GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;&amp;quot;&lt;br /&gt;
GRUB_CMDLINE_LINUX=&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Durch Unkommentieren wird der grafische Modus komplett abgeschaltet &lt;br /&gt;
#GRUB_TERMINAL=console&lt;br /&gt;
&lt;br /&gt;
# Standardauflösung des Grub-Menüs&lt;br /&gt;
#GRUB_GFXMODE=640x480&lt;br /&gt;
&lt;br /&gt;
# Normalerweise übergibt GRUB 2 die Root-Partition mittels UUID an den zu startenden Linux-Kernel. Durch Unkommentieren kann man GRUB 2 dazu veranlassen, dies per Device-Nummerierung (/dev/sdXX) zu machen.&lt;br /&gt;
#GRUB_DISABLE_LINUX_UUID=true&lt;br /&gt;
&lt;br /&gt;
# Nach Unkommentieren und setzen auf true werden alle Recovery-Kernel-Einträge im Auswahlmenü deaktiviert.&lt;br /&gt;
#GRUB_DISABLE_RECOVERY=&amp;quot;true&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Unkommentieren für einen Signalton beim Starten&lt;br /&gt;
#GRUB_INIT_TUNE=&amp;quot;480 440 1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: Hier zum nachlesen: http://wiki.ubuntuusers.de/GRUB_2/Konfiguration&lt;br /&gt;
&lt;br /&gt;
==/etc/grub.d/==&lt;br /&gt;
&lt;br /&gt;
=Reparatur=&lt;br /&gt;
==GRUB 2 erneut in den MBR der Festplatte installieren==&lt;br /&gt;
 sudo grub-setup /dev/sdX &lt;br /&gt;
&lt;br /&gt;
==GRUB 2 vollständig neu installieren==&lt;br /&gt;
 sudo grub-install /dev/sdX &lt;br /&gt;
&lt;br /&gt;
==GRUB 2 Pakete reinstallieren==&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get update &lt;br /&gt;
 &lt;br /&gt;
'''BIOS-Installation'''&lt;br /&gt;
 sudo apt-get --reinstall install grub-common grub-pc os-prober &lt;br /&gt;
&lt;br /&gt;
'''EFI-Installation'''&lt;br /&gt;
 sudo apt-get --reinstall install grub-common grub-efi-amd64 os-prober &lt;br /&gt;
&lt;br /&gt;
==Konfigurationsdatei neu erstellen/aktualisieren==&lt;br /&gt;
 sudo update-grub &lt;br /&gt;
&lt;br /&gt;
==Eine zusätzliche Konfigurationsdatei erstellen==&lt;br /&gt;
Die aktuelle Konfiguration für das Auswahl-Menü ermitteln und in eine frei definierbare Datei speichern - die Datei grub.cfg bleibt dabei unverändert (mehr zu grub-mkconfig):&lt;br /&gt;
 sudo grub-mkconfig --output=/boot/grub/meine.cfg &lt;br /&gt;
schreibt die aktuelle Konfiguration in die Datei meine.cfg im Verzeichnis /boot/grub, die Datei kann dabei an die eigenen Bedürfnisse angepasst werden.&lt;br /&gt;
&lt;br /&gt;
=Shellbefehle=&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 grub-install&lt;br /&gt;
 &lt;br /&gt;
Erstellt die Datei grub.cfg und damit die Konfiguration für das GRUB-2-Auswahlmenü&lt;br /&gt;
 update-grub&lt;br /&gt;
 &lt;br /&gt;
Setzt den Standard-Eintrag im GRUB-2-Auswahlmenü einmalig für das nächste Starten des Rechners.&lt;br /&gt;
 grub-reboot&lt;br /&gt;
 &lt;br /&gt;
Setzt den Standard-Eintrag im GRUB-2-Auswahlmenü.&lt;br /&gt;
 grub-set-default&lt;br /&gt;
 &lt;br /&gt;
Arbeitet wie update-grub, gibt die Konfiguration aber ohne Verwendung von Optionen nur zur Kontrolle im Terminal aus, erlaubt aber auch, die Konfiguration in eine andere Datei als die grub.cfg zu schreiben.&lt;br /&gt;
 grub-mkconfig&lt;br /&gt;
 -o, --output=&amp;lt;Datei&amp;gt;	 Wird diese Option angegeben, so wird die Konfiguration in die unter &amp;lt;Datei&amp;gt; angegebene Datei geschrieben.&lt;br /&gt;
&lt;br /&gt;
Erstellt einen Schlüssel zum Sperren der Bearbeitung des Grub-Menüs insgesamt sowie der Auswahl einzelner Menüpunkte zur Laufzeit.&lt;br /&gt;
 grub-mkpasswd-pbkdf2&lt;br /&gt;
 -c Zahl	 Wird diese Option angegeben, so wird damit die maximale Anzahl von Fehlversuchen gesetzt.&lt;br /&gt;
 -l Zahl	 Die Standardlänge des Schlüssels ist ohne Option 64-Byte - mit Option kann man diesen auf den angegebenen Wert begrenzen (nicht empfohlen, siehe auch Hinweis *)&lt;br /&gt;
 -s Zahl	 Die Standardlänge der Zufallsbasis (salted hash) ist ohne Option 64-Byte - hiermit kann man diese auf den angegebenen Wert begrenzen (nicht empfohlen, siehe auch Hinweis *)&lt;br /&gt;
&lt;br /&gt;
=How to's=&lt;br /&gt;
==Password-Hack==&lt;br /&gt;
Während der Rechner hochfährt auf folgende Ausgabe achten:&lt;br /&gt;
&lt;br /&gt;
[[Image:grub.jpg]]&lt;br /&gt;
&lt;br /&gt;
und wie angegeben ESC drücken.&lt;br /&gt;
&lt;br /&gt;
Im Grub Menü angekommen nun mit den Pfeiltasten das Betriebssystem auswählen in das man sich hacken möchte:&lt;br /&gt;
&lt;br /&gt;
[[Image:grub2.jpg]]&lt;br /&gt;
&lt;br /&gt;
und wie unten mit &amp;quot;e&amp;quot; auf der Tastatur in das Editionsuntermenü wechseln.&lt;br /&gt;
&lt;br /&gt;
[[Image:grub3.jpg]]&lt;br /&gt;
&lt;br /&gt;
Hier wechselt man nun auf den Kernel und betätigt ein weiteres mal &amp;quot;e&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Nun sieht man ein Eingabefeld das so aussieht:&lt;br /&gt;
&lt;br /&gt;
[[Image:grub4.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Achtung Englische Tastatur Einstellung'''&lt;br /&gt;
&lt;br /&gt;
In diesem Feld müssen sie jetz &lt;br /&gt;
 &amp;quot;quiet splash&amp;quot; &lt;br /&gt;
mit &lt;br /&gt;
 &amp;quot;init=/bin/bash&amp;quot; &lt;br /&gt;
ersetzen:&lt;br /&gt;
&lt;br /&gt;
[[Image:grub5.jpg]]&lt;br /&gt;
&lt;br /&gt;
und mit Enter bestätigen, dann kommen sie wieder auf das vorherige Editionsmenü.&lt;br /&gt;
&lt;br /&gt;
In diesem jetz einfach nurnoch &amp;quot;b&amp;quot; drücken um zu booten.&lt;br /&gt;
&lt;br /&gt;
=Nach dem Booten=&lt;br /&gt;
&lt;br /&gt;
Das booten sollte eine relativ kurze Zeit dauern und danach müssten sie ein Eingabefeld haben das so aussieht&lt;br /&gt;
&lt;br /&gt;
[[Image:boot1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Jetzt mountet man das root Dateisystem lese und schreibbar&lt;br /&gt;
&lt;br /&gt;
[[Image:boot2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
eventuell muss mann noch weiter Dateisysteme mounten&lt;br /&gt;
&lt;br /&gt;
 root@(none):/# mount -a&lt;br /&gt;
&lt;br /&gt;
und danach den Befehl &lt;br /&gt;
&lt;br /&gt;
[[Image:boot3.jpg]]&lt;br /&gt;
&lt;br /&gt;
um das rootpasswort zu ändern.&lt;br /&gt;
&lt;br /&gt;
Danach nurnoch:&lt;br /&gt;
&lt;br /&gt;
[[Image:boot4.jpg]]&lt;br /&gt;
&lt;br /&gt;
Und '''Geschafft'''&lt;br /&gt;
&lt;br /&gt;
Beim nächsten Start des Rechners kann man sich mit seinem neu gesetzten Passwort als root anmelden&lt;br /&gt;
==chroot==&lt;br /&gt;
Die chroot-Methode verwendet man immer dann, wenn man nur oder auch die grub.cfg neu erstellen lassen will. Außerdem sollte sie immer bei komplizierteren Systemkonstellationen wie LUKS- oder LV-Partitionen sowie Raid-Verbunden und beim Wiederherstellen des Bootloaders eines Dualboot-Systems angewendet werden.&lt;br /&gt;
&lt;br /&gt;
===Kein RAID/normale Partitionen===&lt;br /&gt;
&lt;br /&gt;
1. Root-Partition mounten&lt;br /&gt;
 sudo mount /dev/sdXY /mnt &lt;br /&gt;
&lt;br /&gt;
2. (OPTIONAL)&lt;br /&gt;
Nutzt man auf dem System eine separate Boot-Partition, so muss diese ebenfalls vorab eingehängt werden:&lt;br /&gt;
 sudo mount /dev/sdXY /mnt/boot &lt;br /&gt;
Nutzt man auf seinem Rechner das &amp;quot;(U)EFI&amp;quot;-Bootverfahren, so muss die relevante Bootpartition vorab eingehängt werden mit:&lt;br /&gt;
 sudo mount /dev/sdXY /mnt/boot/efi &lt;br /&gt;
&lt;br /&gt;
3. Vorbereitung und Wechsel in die chroot-Umgebung:&lt;br /&gt;
 sudo mount -o bind /dev /mnt/dev &lt;br /&gt;
 sudo mount -o bind /sys /mnt/sys &lt;br /&gt;
 sudo mount -t proc /proc /mnt/proc &lt;br /&gt;
 sudo cp /proc/mounts /mnt/etc/mtab &lt;br /&gt;
 sudo chroot /mnt /bin/bash &lt;br /&gt;
&lt;br /&gt;
4. grub installieren:&lt;br /&gt;
 grub-install /dev/sdX &lt;br /&gt;
 (evtl.: grub-install --recheck /dev/sdX) &lt;br /&gt;
 update-grub &lt;br /&gt;
&lt;br /&gt;
5. chroot-Umgebung verlassen und neustarten&lt;br /&gt;
&lt;br /&gt;
===RAID===&lt;br /&gt;
&lt;br /&gt;
1.Desktop-CD booten und mdadm-Tools installieren:&lt;br /&gt;
 sudo apt-get install mdadm &lt;br /&gt;
 sudo mdadm --assemble --scan &lt;br /&gt;
&lt;br /&gt;
2.Einhängen der Systempartition:&lt;br /&gt;
 sudo mount /dev/mdX /mnt &lt;br /&gt;
 sudo mdadm --examine --scan &lt;br /&gt;
&lt;br /&gt;
3.(Optional)&lt;br /&gt;
Nutzt man auf dem System eine separate Boot-Partition, so muss diese ebenfalls eingehängt werden:&lt;br /&gt;
 sudo mount /dev/mdX /mnt/boot &lt;br /&gt;
&lt;br /&gt;
4.Wechsel in die chroot-Umgebung:&lt;br /&gt;
 sudo mount -o bind /dev /mnt/dev &lt;br /&gt;
 sudo mount -o bind /sys /mnt/sys &lt;br /&gt;
 sudo mount -t proc /proc /mnt/proc &lt;br /&gt;
 sudo cp /proc/mounts /mnt/etc/mtab &lt;br /&gt;
 sudo chroot /mnt /bin/bash &lt;br /&gt;
&lt;br /&gt;
5.grub installieren&lt;br /&gt;
 grub-install /dev/sdX &lt;br /&gt;
Installation auf allen teilnehmenden Platten (/dev/sda, /dev/sdb ...) empfohlen!&lt;br /&gt;
 update-grub &lt;br /&gt;
&lt;br /&gt;
6. chroot-Umgebung verlassen und neustarten&lt;br /&gt;
&lt;br /&gt;
==Root-Directory==&lt;br /&gt;
Die Root-Directory-Methode kann man immer dann wählen, wenn man sicher ist, dass die Datei grub.cfg richtig ist und GRUB 2 nur deswegen nicht richtig startet, weil er nicht oder nicht mehr bzw. nicht mehr richtig im Bootsektor oder dem MBR der betreffenden Festplatte installiert ist. Diese Situation hat man z.B. stets, '''nachdem Windows nach Ubuntu auf dem System installiert wurde'''. Diese Methode erfordert zwar weniger Einzelschritte, ist dabei aber auch weniger flexibel und erlaubt nicht so viele Reparaturoptionen wie die chroot-Methode.&lt;br /&gt;
&lt;br /&gt;
Bei dieser Variante wird GRUB 2 einfach in einem Terminal[2] von der Desktop-CD mittels des GRUB-2-Skripts grub-install erneut auf der Festplatte installiert:&lt;br /&gt;
&lt;br /&gt;
1. Desktop-Image laden&lt;br /&gt;
2. Root-Partition mounten&lt;br /&gt;
 sudo mount /dev/sdXY /mnt &lt;br /&gt;
3. Optional&lt;br /&gt;
Nutzt man auf dem System eine separate Boot-Partition, so muss diese ebenfalls vorab eingehängt werden:&lt;br /&gt;
 sudo mount /dev/sdXY /mnt/boot &lt;br /&gt;
Nutzt man auf seinem Rechner das &amp;quot;(U)EFI&amp;quot;-Bootverfahren, so muss die relevante Bootpartition vorab eingehängt werden mit:&lt;br /&gt;
 sudo mount /dev/sdXY /mnt/boot/efi &lt;br /&gt;
&lt;br /&gt;
4. Devices von USB/CD einbinden Live-System&lt;br /&gt;
 sudo mount --bind /dev/ /mnt/dev &lt;br /&gt;
5. grub installieren&lt;br /&gt;
GRUB 1.98 und vorher (bis Maverick Meerkat):&lt;br /&gt;
 sudo grub-install --root-directory=/mnt /dev/sdX &lt;br /&gt;
GRUB 1.99 und später:&lt;br /&gt;
 sudo grub-install --boot-directory=/mnt/boot /dev/sdX &lt;br /&gt;
 sudo update-grub&lt;br /&gt;
&lt;br /&gt;
=Troubleshoot=&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Grub2&amp;diff=4037</id>
		<title>Grub2</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Grub2&amp;diff=4037"/>
		<updated>2014-02-13T14:32:19Z</updated>

		<summary type="html">&lt;p&gt;192.168.241.1: /* Shellbefehle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Installation=&lt;br /&gt;
&lt;br /&gt;
Grub wird in den MBR der angeben Festplatte geschrieben: (BSP)&lt;br /&gt;
 grub-install /dev/sda [Achtung, Bootreihenfolge im BIOS/UEFI beachten!]&lt;br /&gt;
 &lt;br /&gt;
oder auf einer Partition: (BSP)&lt;br /&gt;
 grub-install --force /dev/sda3&lt;br /&gt;
&lt;br /&gt;
=Konfigurationsdateien=&lt;br /&gt;
==/boot/grub/grub.cfg==&lt;br /&gt;
&lt;br /&gt;
Diese Datei ist die generelle Konfigurationsdate von grub. Diese wird nach einem '''&amp;quot;update-grub&amp;quot;''' immer neuerstellt!&lt;br /&gt;
 vi /boot/grub/grub.cfg&lt;br /&gt;
&lt;br /&gt;
Um die Reihenfolge zu ändern, müssen dor tide &amp;quot;Menuentry's&amp;quot; geändert werden:&lt;br /&gt;
Grub wird es von oben nach unten anzeigen.&lt;br /&gt;
Beispiel: Im Moment ist der Booteintrag mit der &amp;quot;Wiederherstellungskonsole&amp;quot; an zweiter Stelle. Deshalb wird dieser Eintrag ausgeschnitten und über den ersten eingefügt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        menuentry 'Ubuntu, mit Linux 3.5.0-36-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.5.0-36-generic-advanced-3daa1a20-ab97-4eb8-84e3-137a1743bafd' {&lt;br /&gt;
        recordfail&lt;br /&gt;
                gfxmode $linux_gfx_mode&lt;br /&gt;
                insmod gzio&lt;br /&gt;
                insmod part_msdos&lt;br /&gt;
                insmod ext2&lt;br /&gt;
                set root='hd0,msdos1'&lt;br /&gt;
                if [ x$feature_platform_search_hint = xy ]; then&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                else&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root 3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                fi&lt;br /&gt;
                echo    'Linux 3.5.0-36-generic wird geladen …'&lt;br /&gt;
                linux   /boot/vmlinuz-3.5.0-36-generic root=UUID=3daa1a20-ab97-4eb8-84e3-137a1743bafd ro   &lt;br /&gt;
                echo    'Initiale Ramdisk wird geladen …'&lt;br /&gt;
                initrd  /boot/initrd.img-3.5.0-36-generic&lt;br /&gt;
        }&lt;br /&gt;
        menuentry 'Ubuntu, mit Linux 3.5.0-36-generic (Wiederherstellungsmodus)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.5.0-36-generic-recovery-3daa1a20-ab97-4eb8-84e3-137a1743bafd' {&lt;br /&gt;
        recordfail&lt;br /&gt;
                insmod gzio&lt;br /&gt;
                insmod part_msdos&lt;br /&gt;
                insmod ext2&lt;br /&gt;
                set root='hd0,msdos1'&lt;br /&gt;
                if [ x$feature_platform_search_hint = xy ]; then&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                else&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root 3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                fi&lt;br /&gt;
                echo    'Linux 3.5.0-36-generic wird geladen …'&lt;br /&gt;
                linux   /boot/vmlinuz-3.5.0-36-generic root=UUID=3daa1a20-ab97-4eb8-84e3-137a1743bafd ro recovery nomodeset &lt;br /&gt;
                echo    'Initiale Ramdisk wird geladen …'&lt;br /&gt;
                initrd  /boot/initrd.img-3.5.0-36-generic&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nun ändern in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
        menuentry 'Ubuntu, mit Linux 3.5.0-36-generic (Wiederherstellungsmodus)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.5.0-36-generic-recovery-3daa1a20-ab97-4eb8-84e3-137a1743bafd' {&lt;br /&gt;
        recordfail&lt;br /&gt;
                insmod gzio&lt;br /&gt;
                insmod part_msdos&lt;br /&gt;
                insmod ext2&lt;br /&gt;
                set root='hd0,msdos1'&lt;br /&gt;
                if [ x$feature_platform_search_hint = xy ]; then&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                else&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root 3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                fi&lt;br /&gt;
                echo    'Linux 3.5.0-36-generic wird geladen …'&lt;br /&gt;
                linux   /boot/vmlinuz-3.5.0-36-generic root=UUID=3daa1a20-ab97-4eb8-84e3-137a1743bafd ro recovery nomodeset &lt;br /&gt;
                echo    'Initiale Ramdisk wird geladen …'&lt;br /&gt;
                initrd  /boot/initrd.img-3.5.0-36-generic&lt;br /&gt;
        }&lt;br /&gt;
        menuentry 'Ubuntu, mit Linux 3.5.0-36-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.5.0-36-generic-advanced-3daa1a20-ab97-4eb8-84e3-137a1743bafd' {&lt;br /&gt;
        recordfail&lt;br /&gt;
                gfxmode $linux_gfx_mode&lt;br /&gt;
                insmod gzio&lt;br /&gt;
                insmod part_msdos&lt;br /&gt;
                insmod ext2&lt;br /&gt;
                set root='hd0,msdos1'&lt;br /&gt;
                if [ x$feature_platform_search_hint = xy ]; then&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                else&lt;br /&gt;
                  search --no-floppy --fs-uuid --set=root 3daa1a20-ab97-4eb8-84e3-137a1743bafd&lt;br /&gt;
                fi&lt;br /&gt;
                echo    'Linux 3.5.0-36-generic wird geladen …'&lt;br /&gt;
                linux   /boot/vmlinuz-3.5.0-36-generic root=UUID=3daa1a20-ab97-4eb8-84e3-137a1743bafd ro   &lt;br /&gt;
                echo    'Initiale Ramdisk wird geladen …'&lt;br /&gt;
                initrd  /boot/initrd.img-3.5.0-36-generic&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dieser Änderung ist kein update-grub erforderlich!&lt;br /&gt;
&lt;br /&gt;
==/etc/default/grub==&lt;br /&gt;
&lt;br /&gt;
Diese Datei ist von einem '''&amp;quot;update-grub&amp;quot;''' nicht betroffen. Diese bleibt bestehen...&lt;br /&gt;
 vi /etc/default/grub&lt;br /&gt;
&lt;br /&gt;
Hier eine Beispielkonfigurationsdatei, Die Kommentare über den Parametern beschreiben die Bedeutung.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Welcher Menüeintrag in /boot/grub/grub.cfg soll standardmäßig gebootet werden? [0 bedeutet erster Eintrag]&lt;br /&gt;
GRUB_DEFAULT=0&lt;br /&gt;
&lt;br /&gt;
# Ein Zahlenwert &amp;gt; 0 gibt die Zeit in Sekunden an, bis der Bootvorgang ohne Anzeige des Auswahlmenü ausgeführt wird. Mit der Umschalt-Taste kann das Auswahlmenü innerhalb der eingestellten Zeitspanne sichtbar gemacht werden.&lt;br /&gt;
#GRUB_HIDDEN_TIMEOUT=0&lt;br /&gt;
&lt;br /&gt;
# Wenn dieser Wert auf ´false´ gesetzt, so wird nur der unter GRUB_HIDDEN_TIMEOUT eingestellte Wert auf dem Monitor als Countdown angezeigt. Mit der  ⇧ -Taste kann das Auswahlmenü innerhalb der Zeitspanne sichtbar gemacht werden.&lt;br /&gt;
GRUB_HIDDEN_TIMEOUT_QUIET=true&lt;br /&gt;
&lt;br /&gt;
# Ein Zahlenwert gibt die Zeit in Sekunden an, wie lange das Auswahlmenü angezeigt wird, bevor der Standard-Eintrag geladen wird. &lt;br /&gt;
GRUB_TIMEOUT=2&lt;br /&gt;
&lt;br /&gt;
# Generiert Hinweise zur aktuellen Distribution. Bei einer Installationen im BIOS-Modus sollte man hier keine Korrekturen vornehmen.&lt;br /&gt;
# Bei einer Installationen im EFI-Modus wird hier die aktuelle Distribution ausgelesen. Man kann hier einen selektiven Eintrag für das EFI-Menü erstellen.&lt;br /&gt;
GRUB_DISTRIBUTOR=`lsb_release -i -s 2&amp;gt; /dev/null || echo Debian`&lt;br /&gt;
&lt;br /&gt;
#Die Variablen sind für die Übergabe von Kernel-Bootoptionen reserviert und werden bei den Images aus dem Verzeichnis /boot angewendet:&lt;br /&gt;
GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;&amp;quot;&lt;br /&gt;
GRUB_CMDLINE_LINUX=&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Durch Unkommentieren wird der grafische Modus komplett abgeschaltet &lt;br /&gt;
#GRUB_TERMINAL=console&lt;br /&gt;
&lt;br /&gt;
# Standardauflösung des Grub-Menüs&lt;br /&gt;
#GRUB_GFXMODE=640x480&lt;br /&gt;
&lt;br /&gt;
# Normalerweise übergibt GRUB 2 die Root-Partition mittels UUID an den zu startenden Linux-Kernel. Durch Unkommentieren kann man GRUB 2 dazu veranlassen, dies per Device-Nummerierung (/dev/sdXX) zu machen.&lt;br /&gt;
#GRUB_DISABLE_LINUX_UUID=true&lt;br /&gt;
&lt;br /&gt;
# Nach Unkommentieren und setzen auf true werden alle Recovery-Kernel-Einträge im Auswahlmenü deaktiviert.&lt;br /&gt;
#GRUB_DISABLE_RECOVERY=&amp;quot;true&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Unkommentieren für einen Signalton beim Starten&lt;br /&gt;
#GRUB_INIT_TUNE=&amp;quot;480 440 1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: Hier zum nachlesen: http://wiki.ubuntuusers.de/GRUB_2/Konfiguration&lt;br /&gt;
&lt;br /&gt;
==/etc/grub.d/==&lt;br /&gt;
&lt;br /&gt;
=Reparatur=&lt;br /&gt;
==GRUB 2 erneut in den MBR der Festplatte installieren==&lt;br /&gt;
 sudo grub-setup /dev/sdX &lt;br /&gt;
&lt;br /&gt;
==GRUB 2 vollständig neu installieren==&lt;br /&gt;
 sudo grub-install /dev/sdX &lt;br /&gt;
&lt;br /&gt;
==GRUB 2 Pakete reinstallieren==&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get update &lt;br /&gt;
 &lt;br /&gt;
'''BIOS-Installation'''&lt;br /&gt;
 sudo apt-get --reinstall install grub-common grub-pc os-prober &lt;br /&gt;
&lt;br /&gt;
'''EFI-Installation'''&lt;br /&gt;
 sudo apt-get --reinstall install grub-common grub-efi-amd64 os-prober &lt;br /&gt;
&lt;br /&gt;
==Konfigurationsdatei neu erstellen/aktualisieren==&lt;br /&gt;
 sudo update-grub &lt;br /&gt;
&lt;br /&gt;
==Eine zusätzliche Konfigurationsdatei erstellen==&lt;br /&gt;
Die aktuelle Konfiguration für das Auswahl-Menü ermitteln und in eine frei definierbare Datei speichern - die Datei grub.cfg bleibt dabei unverändert (mehr zu grub-mkconfig):&lt;br /&gt;
 sudo grub-mkconfig --output=/boot/grub/meine.cfg &lt;br /&gt;
schreibt die aktuelle Konfiguration in die Datei meine.cfg im Verzeichnis /boot/grub, die Datei kann dabei an die eigenen Bedürfnisse angepasst werden.&lt;br /&gt;
&lt;br /&gt;
=Shellbefehle=&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 grub-install&lt;br /&gt;
 &lt;br /&gt;
Erstellt die Datei grub.cfg und damit die Konfiguration für das GRUB-2-Auswahlmenü&lt;br /&gt;
 update-grub&lt;br /&gt;
 &lt;br /&gt;
Setzt den Standard-Eintrag im GRUB-2-Auswahlmenü einmalig für das nächste Starten des Rechners.&lt;br /&gt;
 grub-reboot&lt;br /&gt;
 &lt;br /&gt;
Setzt den Standard-Eintrag im GRUB-2-Auswahlmenü.&lt;br /&gt;
 grub-set-default&lt;br /&gt;
 &lt;br /&gt;
Arbeitet wie update-grub, gibt die Konfiguration aber ohne Verwendung von Optionen nur zur Kontrolle im Terminal aus, erlaubt aber auch, die Konfiguration in eine andere Datei als die grub.cfg zu schreiben.&lt;br /&gt;
 grub-mkconfig&lt;br /&gt;
 -o, --output=&amp;lt;Datei&amp;gt;	 Wird diese Option angegeben, so wird die Konfiguration in die unter &amp;lt;Datei&amp;gt; angegebene Datei geschrieben.&lt;br /&gt;
&lt;br /&gt;
Erstellt einen Schlüssel zum Sperren der Bearbeitung des Grub-Menüs insgesamt sowie der Auswahl einzelner Menüpunkte zur Laufzeit.&lt;br /&gt;
 grub-mkpasswd-pbkdf2&lt;br /&gt;
 -c Zahl	 Wird diese Option angegeben, so wird damit die maximale Anzahl von Fehlversuchen gesetzt.&lt;br /&gt;
 -l Zahl	 Die Standardlänge des Schlüssels ist ohne Option 64-Byte - mit Option kann man diesen auf den angegebenen Wert begrenzen (nicht empfohlen, siehe auch Hinweis *)&lt;br /&gt;
 -s Zahl	 Die Standardlänge der Zufallsbasis (salted hash) ist ohne Option 64-Byte - hiermit kann man diese auf den angegebenen Wert begrenzen (nicht empfohlen, siehe auch Hinweis *)&lt;br /&gt;
&lt;br /&gt;
=How to's=&lt;br /&gt;
==Password-Hack==&lt;br /&gt;
Während der Rechner hochfährt auf folgende Ausgabe achten:&lt;br /&gt;
&lt;br /&gt;
[[Image:grub.jpg]]&lt;br /&gt;
&lt;br /&gt;
und wie angegeben ESC drücken.&lt;br /&gt;
&lt;br /&gt;
Im Grub Menü angekommen nun mit den Pfeiltasten das Betriebssystem auswählen in das man sich hacken möchte:&lt;br /&gt;
&lt;br /&gt;
[[Image:grub2.jpg]]&lt;br /&gt;
&lt;br /&gt;
und wie unten mit &amp;quot;e&amp;quot; auf der Tastatur in das Editionsuntermenü wechseln.&lt;br /&gt;
&lt;br /&gt;
[[Image:grub3.jpg]]&lt;br /&gt;
&lt;br /&gt;
Hier wechselt man nun auf den Kernel und betätigt ein weiteres mal &amp;quot;e&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Nun sieht man ein Eingabefeld das so aussieht:&lt;br /&gt;
&lt;br /&gt;
[[Image:grub4.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Achtung Englische Tastatur Einstellung'''&lt;br /&gt;
&lt;br /&gt;
In diesem Feld müssen sie jetz &lt;br /&gt;
 &amp;quot;quiet splash&amp;quot; &lt;br /&gt;
mit &lt;br /&gt;
 &amp;quot;init=/bin/bash&amp;quot; &lt;br /&gt;
ersetzen:&lt;br /&gt;
&lt;br /&gt;
[[Image:grub5.jpg]]&lt;br /&gt;
&lt;br /&gt;
und mit Enter bestätigen, dann kommen sie wieder auf das vorherige Editionsmenü.&lt;br /&gt;
&lt;br /&gt;
In diesem jetz einfach nurnoch &amp;quot;b&amp;quot; drücken um zu booten.&lt;br /&gt;
&lt;br /&gt;
=Nach dem Booten=&lt;br /&gt;
&lt;br /&gt;
Das booten sollte eine relativ kurze Zeit dauern und danach müssten sie ein Eingabefeld haben das so aussieht&lt;br /&gt;
&lt;br /&gt;
[[Image:boot1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Jetzt mountet man das root Dateisystem lese und schreibbar&lt;br /&gt;
&lt;br /&gt;
[[Image:boot2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
eventuell muss mann noch weiter Dateisysteme mounten&lt;br /&gt;
&lt;br /&gt;
 root@(none):/# mount -a&lt;br /&gt;
&lt;br /&gt;
und danach den Befehl &lt;br /&gt;
&lt;br /&gt;
[[Image:boot3.jpg]]&lt;br /&gt;
&lt;br /&gt;
um das rootpasswort zu ändern.&lt;br /&gt;
&lt;br /&gt;
Danach nurnoch:&lt;br /&gt;
&lt;br /&gt;
[[Image:boot4.jpg]]&lt;br /&gt;
&lt;br /&gt;
Und '''Geschafft'''&lt;br /&gt;
&lt;br /&gt;
Beim nächsten Start des Rechners kann man sich mit seinem neu gesetzten Passwort als root anmelden&lt;br /&gt;
==chroot==&lt;br /&gt;
Die chroot-Methode verwendet man immer dann, wenn man nur oder auch die grub.cfg neu erstellen lassen will. Außerdem sollte sie immer bei komplizierteren Systemkonstellationen wie LUKS- oder LV-Partitionen sowie Raid-Verbunden und beim Wiederherstellen des Bootloaders eines Dualboot-Systems angewendet werden.&lt;br /&gt;
&lt;br /&gt;
===Kein RAID/normale Partitionen===&lt;br /&gt;
&lt;br /&gt;
1. Root-Partition mounten&lt;br /&gt;
 sudo mount /dev/sdXY /mnt &lt;br /&gt;
&lt;br /&gt;
2. (OPTIONAL)&lt;br /&gt;
Nutzt man auf dem System eine separate Boot-Partition, so muss diese ebenfalls vorab eingehängt werden:&lt;br /&gt;
 sudo mount /dev/sdXY /mnt/boot &lt;br /&gt;
Nutzt man auf seinem Rechner das &amp;quot;(U)EFI&amp;quot;-Bootverfahren, so muss die relevante Bootpartition vorab eingehängt werden mit:&lt;br /&gt;
 sudo mount /dev/sdXY /mnt/boot/efi &lt;br /&gt;
&lt;br /&gt;
3. Vorbereitung und Wechsel in die chroot-Umgebung:&lt;br /&gt;
 sudo mount -o bind /dev /mnt/dev &lt;br /&gt;
 sudo mount -o bind /sys /mnt/sys &lt;br /&gt;
 sudo mount -t proc /proc /mnt/proc &lt;br /&gt;
 sudo cp /proc/mounts /mnt/etc/mtab &lt;br /&gt;
 sudo chroot /mnt /bin/bash &lt;br /&gt;
&lt;br /&gt;
4. grub installieren:&lt;br /&gt;
 grub-install /dev/sdX &lt;br /&gt;
 (evtl.: grub-install --recheck /dev/sdX) &lt;br /&gt;
 update-grub &lt;br /&gt;
&lt;br /&gt;
5. chroot-Umgebung verlassen und neustarten&lt;br /&gt;
&lt;br /&gt;
===RAID===&lt;br /&gt;
&lt;br /&gt;
1.Desktop-CD booten und mdadm-Tools installieren:&lt;br /&gt;
 sudo apt-get install mdadm &lt;br /&gt;
 sudo mdadm --assemble --scan &lt;br /&gt;
&lt;br /&gt;
2.Einhängen der Systempartition:&lt;br /&gt;
 sudo mount /dev/mdX /mnt &lt;br /&gt;
 sudo mdadm --examine --scan &lt;br /&gt;
&lt;br /&gt;
3.(Optional)&lt;br /&gt;
Nutzt man auf dem System eine separate Boot-Partition, so muss diese ebenfalls eingehängt werden:&lt;br /&gt;
 sudo mount /dev/mdX /mnt/boot &lt;br /&gt;
&lt;br /&gt;
4.Wechsel in die chroot-Umgebung:&lt;br /&gt;
 sudo mount -o bind /dev /mnt/dev &lt;br /&gt;
 sudo mount -o bind /sys /mnt/sys &lt;br /&gt;
 sudo mount -t proc /proc /mnt/proc &lt;br /&gt;
 sudo cp /proc/mounts /mnt/etc/mtab &lt;br /&gt;
 sudo chroot /mnt /bin/bash &lt;br /&gt;
&lt;br /&gt;
5.grub installieren&lt;br /&gt;
 grub-install /dev/sdX &lt;br /&gt;
Installation auf allen teilnehmenden Platten (/dev/sda, /dev/sdb ...) empfohlen!&lt;br /&gt;
 update-grub &lt;br /&gt;
&lt;br /&gt;
6. chroot-Umgebung verlassen und neustarten&lt;br /&gt;
&lt;br /&gt;
==Root-Directory==&lt;br /&gt;
Die Root-Directory-Methode kann man immer dann wählen, wenn man sicher ist, dass die Datei grub.cfg richtig ist und GRUB 2 nur deswegen nicht richtig startet, weil er nicht oder nicht mehr bzw. nicht mehr richtig im Bootsektor oder dem MBR der betreffenden Festplatte installiert ist. Diese Situation hat man z.B. stets, '''nachdem Windows nach Ubuntu auf dem System installiert wurde'''. Diese Methode erfordert zwar weniger Einzelschritte, ist dabei aber auch weniger flexibel und erlaubt nicht so viele Reparaturoptionen wie die chroot-Methode.&lt;br /&gt;
&lt;br /&gt;
Bei dieser Variante wird GRUB 2 einfach in einem Terminal[2] von der Desktop-CD mittels des GRUB-2-Skripts grub-install erneut auf der Festplatte installiert:&lt;br /&gt;
&lt;br /&gt;
1. Desktop-Image laden&lt;br /&gt;
2. Root-Partition mounten&lt;br /&gt;
 sudo mount /dev/sdXY /mnt &lt;br /&gt;
3. Optional&lt;br /&gt;
Nutzt man auf dem System eine separate Boot-Partition, so muss diese ebenfalls vorab eingehängt werden:&lt;br /&gt;
 sudo mount /dev/sdXY /mnt/boot &lt;br /&gt;
Nutzt man auf seinem Rechner das &amp;quot;(U)EFI&amp;quot;-Bootverfahren, so muss die relevante Bootpartition vorab eingehängt werden mit:&lt;br /&gt;
 sudo mount /dev/sdXY /mnt/boot/efi &lt;br /&gt;
&lt;br /&gt;
4. Devices von USB/CD einbinden Live-System&lt;br /&gt;
 sudo mount --bind /dev/ /mnt/dev &lt;br /&gt;
5. grub installieren&lt;br /&gt;
GRUB 1.98 und vorher (bis Maverick Meerkat):&lt;br /&gt;
 sudo grub-install --root-directory=/mnt /dev/sdX &lt;br /&gt;
GRUB 1.99 und später:&lt;br /&gt;
 sudo grub-install --boot-directory=/mnt/boot /dev/sdX &lt;br /&gt;
 sudo update-grub&lt;br /&gt;
&lt;br /&gt;
=Troubleshoot=&lt;/div&gt;</summary>
		<author><name>192.168.241.1</name></author>
	</entry>
</feed>