= Wünsche =

Markus meint:
{{{
Proxy auf Gateway-Server für alle PC´s im Netzwerk aufsetzen und darüber per
Masquerading/Firewall TCP/IP-Zugriff auf einen "virtuell-externen"
Server(z.B. Apache - nicht im Netzwerk, soz. als Mini-Internet) ermöglichen.
Apache müßte relativ schnell auf einem Linux-PC zum Laufen zu bringen sein.
Der wird halt vom Netzwerk abgekoppelt, erhält seine feste IP-Adresse.
Der Squid auf dem Gatewayrechner, sowie dessen IP-Konfiguration können ja
zunächst mal ohne Firewall aufgesetzt werden, um die Konfiguration zum
Laufen zu bringen. Anschließend müßten dann die Firewall installiert und
Masquerading-Regeln festgelegt werden.
Naja, so irgendwie stell ich mir das ganze vor...
}}}

Keskin meint:
{{{
Eine Win 2003 Domäne ins Internet routen.
Sprich das ganze Aktive Directory mit dem Linux Server Routen
DNS Auflösung Mit Linux http://www.orgdns.org/
Mailgateway
Firewall Basis mit Funktionen.
VPN SERVER bei Linux....

Szenario

Eine Vorhandene Domäne mit einem Exchange Server mit einem Linux Kiste
Online machen.
}}}

= Ziele =
Dies soll der Rechner leisten:
 * Masquarading Firewall für das lokale Netzwerk 192.168.0.0
 * Transparent Proxying, d.h. alle Anfragen  mit destport 80 werden an Proxy weitergeleitet (squid)
  * siehe Unterseite von PaketFilter
 * Squid läuft selbst nicht in einem Cache-Netz (kein Elter, keine Kinder, keine Geschwister)
 * Selbst Serverdienste im Internet zur Verfügung stellen:
  * Port Forwarding (Virtuelle Ports)
  * Dynamic DNS mit http://www.orgdns.org/ oder http://www.dyndns.org/ (Theorie)

= Keine Ziele =
Das muss der Rechner nicht können:
 * VPN (zu viel Aufwand für den einen Tag)
 * Mailserver (macht das Samba-Team evtl. kann aber "durchgeleitet werden mit port forwarding)
 * Wir verwenden keine spezielle Linux-Distribution wie [[fli4l]] oder ipcop.org (vgl. FireWall).

= Umsetzung =
'''Situation:'''

{{drawing:situation}}

Schritte zur Umsetzung:
 1. Prüfen ob Squid bereits installiert mit: rpm -q squid
 2. Squid installieren entweder mit: Yast2, Yast, Webbrowser Konqueror, Kommandozeile;
 {{{
   Anleitung für Kommandozeile: 
      Datei auf lokalen Rechner kopieren mit:
      wget 192.168.1.1/suse/suse/i586/squid-2.5.STABLE3-93.i586.rpm
      Installieren mit:
      rpm -i squid-2.5.STABLE3-93.i586.rpm
 }}}

 3. Squid konfigurieren (in /etc/squid/squid.conf)
 {{{
         Port auf Benutzerdefinierte Einstellung setzen:
         "http_port 8080" (Default war 3128)
         Zugriffsrechte für LAN definieren:
         "acl our_networks src 192.168.1.0/24"
         Zugriffsrechte für LAN aktivieren:
         "http_access allow our_networks"
 }}}

 4. verbindung zu Nameserver einrichten
 {{{
   /etc/resolv.conf editieren:
   "nameserver 3.5.7.9" und 
   "search local"  hinzufügen 
 }}}

 5. Routing für Netzwerkkarten eth1 (eth0 Netzwerkkarte ist bereits auf 192.168.1.100 konfiguriert)
 {{{
   ifconfig eth1 down
   ifconfig eth1 3.5.7.9
   ifconfig und route -n zum abfragen der Konfiguration
 }}}

 6. Squid starten:
 {{{
    rcsquid start     
    rcsquid status # schauen ob er wirklich läuft
 }}}

 7. Client Browser für Proxyzugriff konfigurieren 
   (Einstellungen/Proxy/IP-Adresse/Port 8080)
 
 8. [[dnsmasq]] auf Router installieren und bei den anderen Rechnern im Netz als Nameserver eintragen. (Fungiert z.B. auch als DHCP-Server!).

 9. Masquerading aktivieren (Aufruf vom Script mit "source [Dateiname]")
 {{{
 EXTIF="eth1"  
 INTIF="eth0"

 echo "   External Interface:  $EXTIF"
 echo "   Internal Interface:  $INTIF"

 #routing aktivieren
 echo 1 > /proc/sys/net/ipv4/ip_forward

 # Standard-Regeln
 iptables -P INPUT ACCEPT
 iptables -P OUTPUT ACCEPT
 iptables -P FORWARD DROP

 #Alte Regeln Löschen
 iptables -F
 iptables -t nat -F

 ## Forwarding erlauben
 # Virtuellen Server durchlassen
 iptables -A FORWARD -i $EXTIF -o $INTIF  --dst 192.168.1.5 -p tcp --dport 80 -j ACCEPT

 iptables -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
 iptables -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
 iptables -A FORWARD -j LOG

 #Virtuellen Server weiterleiten
 iptables -t nat -A PREROUTING -i eth1 -p tcp  --dport 80 -j DNAT --to-destination 192.168.1.5:80

 #Masquerading aktiviern
 iptables -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE
 }}}


= Links und Literatur =
 * PaketFilter
  * Die Hompage der Linux-Firewall-Systeme: http://www.netfilter.org/
  * Firewall-HOWTO (http://www.tldp.org/HOWTO/Firewall-HOWTO.html)
  * IP-Masquerade-HOWTO (http://www.tldp.org/HOWTO/IP-Masquerade-HOWTO/index.html)
  * Masquerading Made Simple HOWTO (http://www.tldp.org/HOWTO/Masquerading-Simple-HOWTO/index.html)
  * http://www.yolinux.com/TUTORIALS/LinuxTutorialIptablesNetworkGateway.html
  * http://iptables-tutorial.frozentux.net/iptables-tutorial.html
 * [[Squid]]
  * http://www.squid-cache.org/
  * [[Squid/ACL]]
 * zu Dynamic DNS siehe NameServer