Transparent squid - IPTABLES /Problem

Masz problemy z siecią bądź internetem? Zapytaj tu
chodki
Posty: 14
Rejestracja: 11 listopada 2014, 17:44

Transparent squid - IPTABLES /Problem

Post autor: chodki »

Hej.
Jestem bardzo poczytujący w linuxie, ale postawiłem sobie zadanie w postaci instalacji squida.
Jestem już na samym końcu, mam już squida skonfigurowanego pozostał mi ostatni krok czyli przekierowanie ruchu sieciowego na port 3128.
squid pracuje na maszynie dedykowanej do tego jest między routerem a switchem dzielącym internet na użytkowników końcowych.

Działa mi już tryb brigde, ale powie mi ktoś jak przekierować ruch na squida? Wiem że załatwią tą sprawę poniższe polecenia:

ebtables -t broute -A BROUTING -p IPv4 --ip-protocol 6 --ip-destination-port 80 -j redirect --redirect-target ACCEPT

iptables -t nat -A PREROUTING -i br0 -p tcp --dport 80 -j REDIRECT --to-port 3128

Ale co dalej gdzie ja to mam umieścić, jak to uruchomić?!
Wiem że moje pytanie jest może błache, ale sorry nie wiem co dalej... ;/

(ebtables został zainstalowany)

Pozdrawiam Ł.

Awatar użytkownika
Yampress
Administrator
Posty: 6416
Rejestracja: 09 sierpnia 2007, 21:41
Lokalizacja: PL

Post autor: Yampress »

Ale nie pisz na czerwono.
Awatar użytkownika
dedito
Moderator
Posty: 3581
Rejestracja: 18 listopada 2013, 21:07
Lokalizacja: Gliwice

Post autor: dedito »

Polecenia wpisz na routerze w konsoli/terminalu/wierszu poleceń.
Najlepiej, żeby się to wykonywało również przy restartach, czyli dopisać do skryptów startowych lub do firewalla.
chodki
Posty: 14
Rejestracja: 11 listopada 2014, 17:44

Post autor: chodki »

Ok dzięki za pomoc, ale pytan ciąg dalszy. ;-) Skrypty startowe to np. rc.local? Czyli co mam umieścić te dwie linijki przed exit 0??
A w jaki sposób dodać je do firewalla?
Awatar użytkownika
dedito
Moderator
Posty: 3581
Rejestracja: 18 listopada 2013, 21:07
Lokalizacja: Gliwice

Post autor: dedito »

Metod jest co najmniej kilka. Firewall też jakoś ładuje regułki, nie wiem jak to robi w twoim przypadku.
Przykład: zapisz te dwie linijki w jakimś skrypcie bash, nadaj mu atrybut wykonywalności i w /etc/rc.local dodaj linijkę uruchamiającą ten skrypt (przed exit 0)
Awatar użytkownika
pawkrol
Moderator
Posty: 939
Rejestracja: 03 kwietnia 2011, 10:25

Post autor: pawkrol »

Lepiej dodać skrypt o którym wspomniał dedito do /etc/network/if-pre-up.d, gdyż ustawiasz firewalla przed podniesieniem interfejsu.
chodki
Posty: 14
Rejestracja: 11 listopada 2014, 17:44

Post autor: chodki »

Dzięki chłopaki sqiud już działa, mam pierwsze logi ale nie podoba mi się jedna rzecz, w logach nie mam określonego dokładnego adresu IP komputera który pobiera dane z netu.
Oto fragment loga:
1415778654.427 0 10.10.10.0 TCP_MISS/504 1454 GET http://cdn.stumble-upon.com/i/badges/ba ... 50x60.png? - NONE/- text/htm[/
1415778654.439 0 10.10.10.0 TCP_MISS/504 1418 GET http://www.binarytides.com/favicon.ico - NONE/- text/html
1415778654.541 0 10.10.10.0 TCP_MISS/504 1418 GET http://www.binarytides.com/favicon.ico - NONE/- text/html
1415778654.867 824 10.10.10.0 TCP_MISS/302 589 GET http://ads.yahoo.com/cms/v1? - DIRECT/217.163.21.35 text/plain
1415778654.870 0 10.10.10.0 TCP_MISS/504 1398 GET http://ib.adnxs.com/ymapuid? - NONE/- text/html
1415778654.875 0 10.10.10.0 TCP_MISS/504 1404 GET http://ib.adnxs.com/a_usersync? - NONE/- text/html
1415778660.581 18655 10.10.10.0 TCP_MISS/200 94605 GET http://a.disquscdn.com/next/common.8ecc ... 5e5b85d.js - DIRECT/185.31.17.196 application/javascript
1415778660.694 0 10.10.10.0 TCP_MISS/504 1482 GET http://a.disquscdn.com/next/lounge.8004 ... 7784c8f.js - NONE/- text/html
Wskazuje mi na adres 10.10.10.0 mimo iż komputer który korzysta ze squda ma ip 10.10.10.166
Jak rozwiązać ten problem?!

Ustawienia squid.conf
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
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
#nasza sieć
acl our_networks src 10.10.10.0/24
#zezwalamy na dostęp do sieci odpowiednim obszarom
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow our_networks
http_access deny all
Ustawienia sieci
# The loopback network interface
auto lo
iface lo inet loopback
# Set up interfaces
iface eth0 inet manual
iface eth1 inet manual
# Bridge setup
auto br0
iface br0 inet static
bridge_ports eth0 eth1
address 10.10.10.28
broadcast 10.10.10.255
netmask 255.255.255.0
gateway 10.10.10.53
I jeszcze jedna sprawa, logi błędów (cache log),znowu fragment
2014/11/12 07:22:56| errorTryLoadText: '/var/log/squid/errors/Polish/ERR_READ_TIMEOUT': (2) No such file or directory
2014/11/12 07:22:56| errorTryLoadText: '/var/log/squid/errors/Polish/ERR_LIFETIME_EXP': (2) No such file or directory
2014/11/12 07:22:56| errorTryLoadText: '/var/log/squid/errors/Polish/ERR_READ_ERROR': (2) No such file or directory
2014/11/12 07:22:56| errorTryLoadText: '/var/log/squid/errors/Polish/ERR_WRITE_ERROR': (2) No such file or directory
2014/11/12 07:22:56| errorTryLoadText: '/var/log/squid/errors/Polish/ERR_SHUTTING_DOWN': (2) No such file or directory
Oczywiście chmody dla katalogu squid ustawione prawidłowo, sprawdzałem kilka razy, fizycznie istnieje struktura katalogów /var/log/squid/errors/Polish/ ;/

Dzięki wielkie :)
Awatar użytkownika
pawkrol
Moderator
Posty: 939
Rejestracja: 03 kwietnia 2011, 10:25

Post autor: pawkrol »

Co do braku plików w /var/log/squid/errors/Polish/ zobacz w w środku katalogi masz owe pliki.

Kod: Zaznacz cały

[font=courier new]ERR_READ_TIMEOUT
[/font][font=courier new]ERR_LIFETIME_EXP
[/font][font=courier new]ERR_READ_ERROR
[/font][font=courier new]ERR_WRITE_ERROR[/font]
[font=courier new]ERR_SHUTTING_DOWN[/font]
Jak nie masz to zerknij czy w innym katalogu ich nie ma np. w /var/log/squid/errors/English/ i ewentualnie je skopiuj

Tak się spytam po co robisz bridge na interfejsach ?
chodki
Posty: 14
Rejestracja: 11 listopada 2014, 17:44

Post autor: chodki »

W katalogu polish nie mam nic jest pusty.. ;/
Niestety także nie mam katalogu English z którego mógłbym to sobie przekopiować.. ;/
Masz może pomysł skąd je zaciągnąć albo jak wygenerować?

Jeżeli chodzi o bridge to mój plan jest taki że proxy umieszczę fizycznie między firewallem a routerem, dlatego stosuje funkcji bridge aby przelatywały przez niego pakiety.
No chyba że jest jakiś inny szybszy/ lepszy sposób?!
Jak wspominałem wcześniej jestem początkujący w linuxie a zwłaszcza w temacie squida więc każda wskazówka będzie bardzo cenna i z góry za nią dziekuje :)
Awatar użytkownika
dedito
Moderator
Posty: 3581
Rejestracja: 18 listopada 2013, 21:07
Lokalizacja: Gliwice

Post autor: dedito »

Strony błędów instalują się razem z pakietem squid-langpack ( https://packages.debian.org/wheezy/squid-langpack )
Powinieneś to mieć już w katalogu /usr/share/squid-langpack/
To skąd squid będzie ładować strony z błędami decydujesz w pliku squid.conf (jeśli pamięć mnie nie myli).
Z logów wynika, że masz to skonfigurowane na ścieżkę /var/log/squid/errors/Polish/ gdzie zapewne nie ma nic stąd błędy w logach.



ODPOWIEDZ