transparenter Proxy mit Squid
opensuse 10.0
Hallo,
ich habe opensuse 10.0.
2 Netzwerkkarten (eth0=192.168.3.1;eth1 192.168.1.2)
an diesem Rechner ist über eth1 ein DSL-Modem angeschlossen (IP 192.168.1.1) und mit dsl0 konfiguriert.
die Schnittstelle eth0 macht für sein Netz DHCP-Server (192.168.3.10-192.168.3.20 mit Gateway 192.168.3.1).
Alle PCs sollen automatisch auf dem Proxy geleitet werden!
Habe in der squid.conf eingetragen:
http_port 192.168.1.2:3128
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
und in der SuSEfirewall2
FW_DEV_EXT="dsl0 eth-id-00:e0:20:e3:db:d7" (eht-id==eht1->Schnittstelle zum DSL-Modem)
FW_DEV_INT="eth-id-00:c0:a8:f2:24:44" (eth0)
FW_ROUTE="yes"
FW_MASQUERADE="yes"
FW_SERVICES_EXT_TCP="domain http www"
FW_SERVICES_EXT_UDP="domain"
FW_SERVICES_INT_TCP="domain www 3128"
FW_SERVICES_INT_UDP="domain"
FW_REDIRECT="192.168.3.0/24,0/0,tcp,80,3128"
Das Problem ist: Wenn ein Client (z.B 192.168.3.20) den Proxy (192.168.1.2:3128) einträgt, kann er darüber ins Netz, alles läuft, wunderbar..
doch wenn der Client den Proxy raus nimmt und transparent ins Internet soll, kann er die Seite nicht finden und in der access.log von squid steht auch nichts.
Kann mir jemand weiterhelfen?
Danke im Voraus
Hallo,
ich habe opensuse 10.0.
2 Netzwerkkarten (eth0=192.168.3.1;eth1 192.168.1.2)
an diesem Rechner ist über eth1 ein DSL-Modem angeschlossen (IP 192.168.1.1) und mit dsl0 konfiguriert.
die Schnittstelle eth0 macht für sein Netz DHCP-Server (192.168.3.10-192.168.3.20 mit Gateway 192.168.3.1).
Alle PCs sollen automatisch auf dem Proxy geleitet werden!
Habe in der squid.conf eingetragen:
http_port 192.168.1.2:3128
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
und in der SuSEfirewall2
FW_DEV_EXT="dsl0 eth-id-00:e0:20:e3:db:d7" (eht-id==eht1->Schnittstelle zum DSL-Modem)
FW_DEV_INT="eth-id-00:c0:a8:f2:24:44" (eth0)
FW_ROUTE="yes"
FW_MASQUERADE="yes"
FW_SERVICES_EXT_TCP="domain http www"
FW_SERVICES_EXT_UDP="domain"
FW_SERVICES_INT_TCP="domain www 3128"
FW_SERVICES_INT_UDP="domain"
FW_REDIRECT="192.168.3.0/24,0/0,tcp,80,3128"
Das Problem ist: Wenn ein Client (z.B 192.168.3.20) den Proxy (192.168.1.2:3128) einträgt, kann er darüber ins Netz, alles läuft, wunderbar..
doch wenn der Client den Proxy raus nimmt und transparent ins Internet soll, kann er die Seite nicht finden und in der access.log von squid steht auch nichts.
Kann mir jemand weiterhelfen?
Danke im Voraus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 18891
Url: https://administrator.de/contentid/18891
Ausgedruckt am: 19.11.2024 um 09:11 Uhr
5 Kommentare
Neuester Kommentar
Hi,
probiers mal mit iptables deaktivier dazu aber vorerst mal die SuSE Firewall:
INET=eth1
LAN=eth0
modprobe ip_conntrack &> /dev/null
modprobe ip_conntrack_ftp &> /dev/null
modprobe ipt_state &> /dev/null
modprobe iptable_nat &> /dev/null
modprobe ipt_REJECT &> /dev/null
modprobe ipt_MASQUERADE &> /dev/null
modprobe ip_nat_ftp
$IPT -X
$IPT -F -t nat
$IPT -P FORWARD ACCEPT
$IPT -P OUTPUT ACCEPT
echo 1 > /proc/sys/net/ipv4/conf/all/proxy_arp
$IPT -t nat -A PREROUTING -p tcp -i $INET --dport 80 -j DNAT --to ip.des.gateways.eintragen:3128
$IPT -N block
$IPT -A block -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A block -m state --state NEW -i ! $INET -j ACCEPT
$IPT -A block -j DROP
$IPT -A INPUT -j block
$IPT -A FORWARD -j block
Wenn das nicht funktioniert stelle ich mal mein Firewall-Script zur Verfügung.
Gruß duddits
probiers mal mit iptables deaktivier dazu aber vorerst mal die SuSE Firewall:
- /sbin/iptables-firewall
- deklaration
INET=eth1
LAN=eth0
- Benoetigte Module laden
modprobe ip_conntrack &> /dev/null
modprobe ip_conntrack_ftp &> /dev/null
modprobe ipt_state &> /dev/null
modprobe iptable_nat &> /dev/null
modprobe ipt_REJECT &> /dev/null
modprobe ipt_MASQUERADE &> /dev/null
modprobe ip_nat_ftp
- Alle alten Regeln löschen, anschließend die Default-Policy setzen
$IPT -X
$IPT -F -t nat
- Wenn keine andere Regel greift, alles erlauben
$IPT -P FORWARD ACCEPT
$IPT -P OUTPUT ACCEPT
- Forwarding im Kernel aktivieren
echo 1 > /proc/sys/net/ipv4/conf/all/proxy_arp
$IPT -t nat -A PREROUTING -p tcp -i $INET --dport 80 -j DNAT --to ip.des.gateways.eintragen:3128
- falls das nicht funktioniert probier:
- Masquerading
- neue Regel (block) erstellen
$IPT -N block
$IPT -A block -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A block -m state --state NEW -i ! $INET -j ACCEPT
$IPT -A block -j DROP
$IPT -A INPUT -j block
$IPT -A FORWARD -j block
- ende
Wenn das nicht funktioniert stelle ich mal mein Firewall-Script zur Verfügung.
Gruß duddits