Eigener Proxy
Aus IpcopWiki
Unter Umständen ist es notwendig, einen eigenen Proxy für ein spezielles Programm einzutragen. Das jeweilige Programm soll bestimmte Server auf bestimmten Ports erreichen und sonst nichts weiter. Der Grund liegt meistens darin, dass wg der Sicherheit der Internetzugang nicht das Standardgateway des Systems ist oder das Internet anderweitig gesperrt wurde. Ein grosser Nachteil (ich bezeichne es hier als Nachteil!) liegt in der iptables-Implementierung darin, dass keine DNS-Einträge gesetzt werden können; wechselt ein Anbieter die IP-Adressen oder hat DNS-RoundRobin im Einsatz, so wird die Lastverteilung nicht genutzt.
Zwei Beispiele sollen hier einmal erläutert werden: Beispiel 1: Elster ist zwar ein proxyfähiges Programm, arbeitet aber auf IP-Ebene und möchte spezielle Ports erreichen.
ELSTER
Für ELSTER gibt es folgende Möglichkeit: In der Software wird die IP-Adresse des IPCop als Proxyserver eingetragen und es werden 6 ungenutzte Ports für die 6 ELSTER-Server vergeben (10000-10005). Der Eintrag für den ersten Server in ELSTER lautet dann wie folgt:
ipcop:10000
Im IPCop wird die Datei rc.firewall.local wie folgt editiert: im oberen Teil des Scriptes wird der Eintrag hinzugefügt
# Variablen lesen eval $(/usr/local/bin/readhash /var/ipcop/ethernet/settings)
Somit ist die grüne Netzwerkkarte als Variable $GREEN_DEV nutzbar.
In der Sektion 'start' werden folgende Zeilen eingefügt:
#ELSTER /sbin/iptables -t nat -A PREROUTING -i $GREEN_DEV -p tcp --dport 10000 -j DNAT --to-destination 62.157.211.58:8000 /sbin/iptables -t nat -A PREROUTING -i $GREEN_DEV -p tcp --dport 10001 -j DNAT --to-destination 62.157.211.59:8000 /sbin/iptables -t nat -A PREROUTING -i $GREEN_DEV -p tcp --dport 10002 -j DNAT --to-destination 62.157.211.60:8000 /sbin/iptables -t nat -A PREROUTING -i $GREEN_DEV -p tcp --dport 10003 -j DNAT --to-destination 193.109.238.26:8000 /sbin/iptables -t nat -A PREROUTING -i $GREEN_DEV -p tcp --dport 10004 -j DNAT --to-destination 193.109.238.27:8000 /sbin/iptables -t nat -A PREROUTING -i $GREEN_DEV -p tcp --dport 10005 -j DNAT --to-destination 213.182.157.55:8000
Beispiel 2: Private Mails sollen in einem Unternehmen verboten werden, trotzdem soll das Mailprogramm direkt mit einem einzigen Mailserver kommunizieren, welcher im Internet steht.
Mailnutzung
Damit Mails empfangen und gesendet werden können, wird dem Mailclient als POP3- oder SMTP-Server einfach die IP-Adresse des IPCop eingetragen.
Im IPCop selbst werden folgende Regeln gesetzt:
# Mailserver /sbin/iptables -t nat -A PREROUTING -i $GREEN_DEV -p tcp --dport 25 -j DNAT --to-destination 212.227.15.183:25 /sbin/iptables -t nat -A PREROUTING -i $GREEN_DEV -p tcp --dport 110 -j DNAT --to-destination 212.227.15.183:110
Alternativ kann auch das AddOn Copfilter genutzt werden, hierbei müssen die Module dann allerdings in den "nicht-transparenten" Modus geschaltet werden.
FTP-Proxy
Ähnlich wie bei der Mailnutzung gestaltet sich ein FTP-Proxy. Einige FTP-Programme sind nicht HTTP-Proxy-fähig und benötigen daher diese "Spezialbehandlung". - Das FTP-Programm wird auf "passiven Transfer" gestellt und als anzugebender Server wird die IP-Adresse des IPCop eingetragen. Dieser leitet dann die Anfrage auf den richtigen Server wie folgt um:
# FTPServer /sbin/iptables -t nat -A PREROUTING -i $GREEN_DEV -p tcp --dport 21 -j DNAT --to-destination 212.227.15.183:21
