Portál AbcLinuxu, 9. června 2025 10:07
Zdravim vsechny, potreboval bych presmerovat veskery provoz do internetu pres squida, tak abych nemusel nic nastavovat na klientskych stanicich.
Na serveru mam dve sitovky, jedna pro vnitrni sit(eth1/10.0.1.1) a druha pro inet(eth0/10.0.0.1).
Pomoci iptables delam maskaradu iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 10.0.0.1
Nasel jsem navod na presmerovani provozu pres squid, konkretne:
iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 -j REDIRECT --to-port 3128
Kam bych mel tento radek napsat? Pokud to napisu pred tu maskaradu nebo za ni, tak mi provoz pres squid nejede (nezobrazuji se chybove stranky squida). Naopak kdyz maskaradu vyhodim uplne a necham pouze ten redirect na squid tam se na net nedostanu vubec.Pripominam ze jsem zacatecnik, takze asi delam nekde nejakou zasadni chybu.
Kdyz na jednotlivych stanicich nastavim pripojeni primo na port 3128, tak squid slape v pohode (chybove stranky squida se zobrazuji).
Diky !
... -i eth0 ...
Jestli je vnitřní síť na eth1, tak proč přesměrováváte na squid-a pakety z eth0?
Ano, vnitrni sit je na eth1, z eth1 mam ale default gateway na eth0, ktera je pripojena do inetu. Na eth0 sedi i squid. Mezi temito dvema mam udelany nat viz. zacatek.
Jasne, v squid.conf jsem udelal:
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
Ten redirect mi proste nejak nechce chodit, musi to byt nejaka blbost. Kdyz dam v prohlizeci primo adresu na ktere posloucha squid:3128 tak to jde...
httpd_accel_port 80Chtěl bych jen upozornit, že od určité verze squida jsou tyto direktivy staré a používá se namísto nich pouze
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
http_port 3128 transparent
/var/lib/iptables/active
eth0 - inner(LAN), eth1 - outer(WAN)
# Generated by iptables-save v1.2.11 on Fri Apr 29 20:57:09 2005 *nat :PREROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :LANMASQ - [0:0] :SQUIDRDR - [0:0] :NTPRDR - [0:0] [0:0] -A PREROUTING -i lo -p tcp -m tcp --dport 80 -j SQUIDRDR [0:0] -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j SQUIDRDR [0:0] -A PREROUTING -i eth0 -p udp -m udp --dport 123 -j NTPRDR [0:0] -A POSTROUTING -s 10.0.1.0/255.255.255.0 -j LANMASQ [0:0] -A POSTROUTING -s 10.0.2.0/255.255.255.0 -j LANMASQ [0:0] -A OUTPUT -o eth1 -p tcp -m tcp --dport 80 -m owner ! --cmd-owner squid -j SQUIDRDR #[0:0] -A LANMASQ -o eth1 -j SNAT --to-source 10.0.0.1 [0:0] -A LANMASQ -o eth1 -j MASQUERADE [0:0] -A SQUIDRDR -p tcp -m tcp -j DNAT --to-destination 10.0.1.1:3128 [0:0] -A NTPRDR -p udp -m udp -j DNAT --to-destination 10.0.1.1:123 COMMIT # Completed on Fri Apr 29 20:57:09 2005 # Generated by iptables-save v1.2.11 on Fri Apr 29 20:57:09 2005 *filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT DROP [0:0] :LOGDROP - [0:0] [0:0] -A INPUT -i lo -j ACCEPT [0:0] -A INPUT -s 10.0.1.0/255.255.255.0 -i eth0 -j ACCEPT [0:0] -A INPUT -s 10.0.2.0/255.255.255.0 -i eth0 -j ACCEPT [0:0] -A INPUT -s 10.0.1.0/255.255.255.0 -i eth1 -j LOGDROP [0:0] -A INPUT -s 10.0.2.0/255.255.255.0 -i eth1 -j LOGDROP [0:0] -A INPUT -s 10.0.0.138 -i eth1 -p udp -m udp --sport 67 --dport 68 -j ACCEPT [0:0] -A INPUT -s 10.0.0.1 -d 10.0.1.1 -p tcp -m tcp --dport 3128 -j ACCEPT [0:0] -A INPUT -i eth1 -p icmp -m icmp ! --icmp-type 5 -j ACCEPT [0:0] -A INPUT -i eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT [0:0] -A INPUT -d 10.0.0.1 -i eth1 -p tcp -m tcp --sport 80 -m conntrack --ctstate DNAT -j ACCEPT [0:0] -A INPUT -d 10.0.0.1 -i eth1 -p tcp -m multiport --dports 22,25,80 -m state --state NEW -j ACCEPT [0:0] -A INPUT -d 10.0.0.1 -i eth1 -p udp -m multiport --dports 53,123 -m state --state NEW -j ACCEPT [0:0] -A INPUT -j LOGDROP [0:0] -A FORWARD -i eth1 -o eth0 -m conntrack --ctstate RELATED,ESTABLISHED,DNAT -j ACCEPT [0:0] -A FORWARD -i eth0 -o eth1 -j ACCEPT [0:0] -A FORWARD -j LOGDROP [0:0] -A OUTPUT -o lo -j ACCEPT [0:0] -A OUTPUT -d 10.0.1.0/255.255.255.0 -o eth0 -j ACCEPT [0:0] -A OUTPUT -d 10.0.2.0/255.255.255.0 -o eth0 -j ACCEPT [0:0] -A OUTPUT -o eth1 -s 10.0.0.1 -d 10.0.1.1 -p tcp -m tcp --dport 3128 -j ACCEPT [0:0] -A OUTPUT -d 10.0.1.0/255.255.255.0 -o eth1 -j LOGDROP [0:0] -A OUTPUT -d 10.0.2.0/255.255.255.0 -o eth1 -j LOGDROP [0:0] -A OUTPUT -d 10.0.0.138 -p udp -m udp --sport 68 --dport 67 -j ACCEPT [0:0] -A OUTPUT -o eth1 -j ACCEPT [0:0] -A OUTPUT -j LOGDROP [0:0] -A LOGDROP -j LOG --log-level 6 [0:0] -A LOGDROP -p tcp -j REJECT --reject-with icmp-port-unreachable [0:0] -A LOGDROP -p udp -j REJECT --reject-with icmp-port-unreachable [0:0] -A LOGDROP -j DROP COMMIT # Completed on Fri Apr 29 20:57:09 2005 # Generated by webmin *mangle :FORWARD ACCEPT [0:0] :INPUT ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :PREROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] COMMIT # Completed
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.