Skocz do zawartości

Squid - Przekierowanie Za Pomocą Iptables Nie Działa


kaktus250

Rekomendowane odpowiedzi

Na distro Aurox 9.2 miałem routing DSL' a ze serwerem squid działającym na porcie 8080. Przekierowanie robiłem w rc.local

regułką : iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

Dzieki temu squid był przeźroczysty dla hostów z sieci LAN.

Robię teraz routing tego DSL'a na Fedorze 8, podłożyłem rc.local, squida musiałem zrobić od nowa.

Wszystko działa tyle że squid nie jest przeźroczysty bo muszę w przeglądarce wpisywać port 8080 i ip serwera.

Co mogę poprawić aby uzyskać przeźroczystość ?

proszę o pomoc,

pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

WalDo napisał czy masz:

http_port 8080 transparent

a nie samo:

http_port 8080

 

To jest zapewne różnica.

Mam tylko

http_port 8080

nie wiedziałem że można napisać

http_port 8080 transparent

Wypróbuję to najszybciej jak się da, rozumiem że z opcją transparent squid sam zajmie się przekierowaniem portów.

 

Odnośnik do komentarza
Udostępnij na innych stronach

nie wiedziałem że można napisać

http_port 8080 transparent

Ja też nie. Nie znam się na konfiguracj squida, ale w sieci można wyszukać przykładowe konfiguracje i opisy dość szczegółowe, z których wynika, że taki zapis należy zastosować. Głowy nie dam, bo sam nie korzystam.

 

Odnośnik do komentarza
Udostępnij na innych stronach

Ja też nie. Nie znam się na konfiguracj squida, ale w sieci można wyszukać przykładowe konfiguracje i opisy dość szczegółowe, z których wynika, że taki zapis należy zastosować. Głowy nie dam, bo sam nie korzystam.

Problem rozwiązany:

dopisałem słowo transparent w konfiguracji squid.conf i teraz jest:

http_port 8080 transparent

działa jak trzeba

dziękuję wszystkim za podpowiedzi a szczególnie koledze WalDo

Odnośnik do komentarza
Udostępnij na innych stronach

  • 1 year later...

Witajcie.

 

Odgrzewam temat.

 

Dla celów na razie testowych postawilem taka konfiguracje:

 

DSL -- ROUTER(192.168.2.100) -- eth1 (192.168.2.1) SERVER eth0 (192.168.1.1) -- LAN (192.168.1.0/24)

 

Chcę postawić squida oraz firewalla

 

Oto moja konfiguracja:

 

SQUID

#

# Recommended minimum configuration:

#

acl manager proto cache_object

acl localhost src 127.0.0.1/32

acl localhost src ::1/128

acl to_localhost dst 127.0.0.0/8 0.0.0.0/32

acl to_localhost dst ::1/128

 

# Example rule allowing access from your local networks.

# Adapt to list your (internal) IP networks from where browsing

# should be allowed

acl localnet src 10.0.0.0/8 # RFC1918 possible internal network

acl localnet src 172.16.0.0/12 # RFC1918 possible internal network

acl localnet src 192.168.0.0/16 # RFC1918 possible internal network

acl localnet src fc00::/7 # RFC 4193 local private network range

acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines

 

acl SSL_ports port 443

acl Safe_ports port 80 # http

acl Safe_ports port 8080 # w3ache

acl Safe_ports port 21 # ftp

acl Safe_ports port 443 # https

acl Safe_ports port 70 # gopher

acl Safe_ports port 210 # wais

acl Safe_ports port 1025-65535 # unregistered ports

acl Safe_ports port 280 # http-mgmt

acl Safe_ports port 488 # gss-http

acl Safe_ports port 591 # filemaker

acl Safe_ports port 777 # multiling http

acl CONNECT method CONNECT

 

#

# Recommended minimum Access Permission configuration:

#

# Only allow cachemgr access from localhost

http_access allow manager localhost

http_access deny manager

 

# Deny requests to certain unsafe ports

http_access deny !Safe_ports

 

# Deny CONNECT to other than secure SSL ports

http_access deny CONNECT !SSL_ports

 

# We strongly recommend the following be uncommented to protect innocent

# web applications running on the proxy server who think the only

# one who can access services on "localhost" is a local user

http_access deny to_localhost

 

#

# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS

#

acl siec src 192.168.1.0/24

 

# Example rule allowing access from your local networks.

# Adapt localnet in the ACL section to list your (internal) IP networks

# from where browsing should be allowed

http_access allow siec

http_access allow localnet

http_access allow localhost

 

# And finally deny all other access to this proxy

http_access deny all

 

# Squid normally listens to port 3128

http_port 8080 transparent

 

# We recommend you to use at least the following line.

hierarchy_stoplist cgi-bin ?

 

# Uncomment and adjust the following to add a disk cache directory.

cache_dir ufs /var/spool/squid 1000 16 256

 

# Leave coredumps in the first cache dir

coredump_dir /var/spool/squid

 

# Add any of your own refresh_pattern entries above these.

refresh_pattern ^ftp: 1440 20% 10080

refresh_pattern ^gopher: 1440 0% 1440

refresh_pattern -i (/cgi-bin/|\?) 0 0% 0

refresh_pattern . 0 20% 4320

 

visible_hostname xxx

#error_directory /usr/share/squid/errors/pl

#dns_nameservers 192.168.2.1

 

IPTABLES

#!/bin/sh

##/usr/local/bin/fw_nat

#skrypt firewall do wspoldzielenia Internetu

#szerokopasmowego bez uslub publicznych

 

#definicja zmiennych

ipt="/sbin/iptables"

mod="/sbin/modprobe"

LAN_IFACE="eth0"

WAN_IFACE="eth1"

 

#podstawowy zestaw modulow jadra

$mod ip_tables

$mod nf_conntrack

$mod iptable_filter

$mod iptable_nat

$mod iptable_mangle

$mod ipt_LOG

$mod ipt_limit

$mod xt_state

$mod ipt_MASQUERADE

 

#add these for IRC and FTP

#$mod ip_nat_ftp

#$mod ip_nat_irc

#$mod ip_conntrack_ftp

#$mod ip_conntrack_irc

 

#Czyszczenie regul i lancuchow zapory

$ipt -F

$ipt -t nat -F

$ipt -t mangle -F

$ipt -X

$ipt -t nat -X

$ipt -t mangle -X

 

#Ustawianie domyslnych polityk

$ipt -P INPUT DROP

$ipt -P FORWARD DROP

$ipt -P OUTPUT ACCEPT

$ipt -t nat -P OUTPUT ACCEPT

$ipt -t nat -P PREROUTING ACCEPT

$ipt -t nat -P POSTROUTING ACCEPT

$ipt -t mangle -P PREROUTING ACCEPT

$ipt -t mangle -P POSTROUTING ACCEPT

 

#Ta linia odpowiada za interfejs petli zwrotnej

#i poprawna obsluge uslug bazujacych na gniazdach

$ipt -A INPUT -i lo -j ACCEPT

 

#Wlaczenie masguerady IP

$ipt -t nat -A POSTROUTING -o $WAN_IFACE -j MASQUERADE

 

#Zezwolenia nie nieograniczony ruch wyjsciowy, wejsciowy

#jest ograniczny tylko do sesji zainicjowanych lokanie

$ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

$ipt -A FORWARD -i $WAN_IFACE -o $LAN_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT

$ipt -A FORWARD -i $LAN_IFACE -o $WAN_IFACE -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

 

#Dopuszczenie komunikatow ICMP

$ipt -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

$ipt -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT

$ipt -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT

 

#Odrzucanie polaczenie nie zainicjowanych LAN

$ipt -A INPUT -p tcp --syn -j DROP

#Ustawienie transparentnego servera proxy

#$ipt -t nat -A PREROUTING -i $LAN_IFACE -p tcp --dport 80 -j REDIRECT --to-port 8080

 

route -n

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

192.168.2.0 0.0.0.0 255.255.255.0 U 1 0 0 eth1

192.168.1.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0

0.0.0.0 192.168.2.100 0.0.0.0 UG 0 0 0 eth1

 

Działa też DHCP i BIND ale nie sądzę, żeby one były problemem.

 

Przy takich ustawieniach działa wszystko ok, ale squid nie dziala bo nie ma przekierowania.

Jak odkomentuję ustatnią linijkę w IPTABLES to internet na serverze działa a w LANIE nie. Oczywiście pingi a lanu idą na zew i mogę połączyć się z zew FTP.

 

tcpdump -i eth0 tcp dst port 80 (przy wpisaniu google.pl w firefoksie)

23:56:08.133981 IP 192.168.1.2.oap-s > fk-in-f99.1e100.net.http: Flags , seq 4077015728, win 65535, options [mss 1460,nop,nop,sackOK], length 0

23:56:11.085371 IP 192.168.1.2.oap-s > fk-in-f99.1e100.net.http: Flags , seq 4077015728, win 65535, options [mss 1460,nop,nop,sackOK], length 0

23:56:16.436814 IP 192.168.1.2.cmc-port > fk.http: Flags , seq 2992921434, win 65535, options [mss 1460,nop,nop,sackOK], length 0

23:56:19.195137 IP 192.168.1.2.nati-svrloc > fk.http: Flags , seq 700235539, win 65535, options [mss 1460,nop,nop,sackOK], length 0

23:56:22.241996 IP 192.168.1.2.nati-svrloc > fk.http: Flags , seq 700235539, win 65535, options [mss 1460,nop,nop,sackOK], length 0

23:56:28.257826 IP 192.168.1.2.nati-svrloc > fk.http: Flags , seq 700235539, win 65535, options [mss 1460,nop,nop,sackOK], length 0

23:56:40.291254 IP 192.168.1.2.quasar-server > fk.http: Flags , seq 1312344930, win 65535, options [mss 1460,nop,nop,sackOK], length 0

23:56:43.352139 IP 192.168.1.2.quasar-server > fk.http: Flags , seq 1312344930, win 65535, options [mss 1460,nop,nop,sackOK], length 0

 

 

Czy wiecie czym może być problem?

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 5 months later...

Sprawdź czy bezpośrednio z serwera czy squid cash'uje .

Ten iptables jest przekombinowany trochę . Przejrzę go później na spokojnie, ale poleciłbym ci to celów testowych ten

 

http://www.cyberciti.biz/tips/linux-setup-transparent-proxy-squid-howto.html

 

ewentualnie na priwa mogę przesłać ci moją konfigurację squid i iptables którą kiedyś też męczyłem.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...