Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2023-03-01 21:50:25

  amin - Użytkownik

amin
Użytkownik
Zarejestrowany: 2023-03-01

Privoxy na serwerze jako przechwytujące proxy.

Witam.
Uruchomiłem sobie taki mały serwer na Armbianie.
Armbian to taki Debian na procesory arm.
Na wersje serwerową zainstalowałem hostapd oraz dnsmasq i działa to jako Access point.
Do tego chciałbym dołożyć privoxy do filtrowania treści.
Privoxy miałoby działać jako przezroczyste proxy, czyli wszystko co łączy się przez wi-fi na
portach 80 i 443 jest filtrowane przez privoxy.
Zrobiłem wszystko według tego opisu: https://msfn.org/board/topic/183726-privoxy-as-ssl-filter/
Czyli W pliku konfiguracyjnym ustawiłem privoxy jako przechwytujące proxy oraz wskazałem certyfikaty wygenerowane w openssl.
Ten sam certyfikat zaimportowałem do firefoxa na komputerze.

Wprowadziłem reguły iptables które znalazłem w temacie o konfiguracji mitmproxy, ale zmieniłem port mitmproxy 8080 na
port privoxy 8018.


sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8018
sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8018


Po wprowadzeniu tych reguł tracę połączenie z internetem.

Offline

 

#2  2023-03-02 01:18:54

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Privoxy na serwerze jako przechwytujące proxy.

A jak w przeglądarkach manualnie ustawisz korzystanie z proxy, to działa bez tej gimnastyki z iptables NAT?

Moim zdaniem puszczenie przez proxy ruchu SSL w czasach, kiedy przeglądarki stosują certificate pinnning czy sprawdzają OSCP raczej mija się z celem.
Do tego zabawa z certyfikatem CA do przeglądarki jest dużo trudniejsza niż ustawienie ruchu z przeglądarki na proxy w ustawieniach.

Zwłaszcza że Privoxy to raczej kiedyś była potęga, teraz dużo mądrzejsze od DuckDuckGo Privacy Essentails, Privacy Badger  czy Ublocka nie jest, nie wspominając o możliwościach Noscripta.

Powłokę Bash też można na proxy wypuścić:
https://www.cyberciti.biz/faq/linux-unix-set-proxy- … ent-variable/

Ostatnio edytowany przez Jacekalex (2023-03-02 01:21:31)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#3  2023-03-02 10:27:00

  amin - Użytkownik

amin
Użytkownik
Zarejestrowany: 2023-03-01

Re: Privoxy na serwerze jako przechwytujące proxy.

Po skonfigurowanie proxy w przeglądarce również nie działa.
Jeżeli ustawie serwer proxy tylko dla http i wejdę na
stronę 'config.privoxy.org' to przerywa połączenie ale inne strony wczytują się normalnie.
Jak ustawię dla http i https to żadna strona się nie otwiera.
Wszystko robiłem według tego opisu: https://step-tech.pl/po/jak-uzywac-raspberry-pi-jak … xy-z-privoxy/
System na moim komputerze to KDE neon (Ubuntu 22.04 LTS).
Myślę że jest coś nietak z regułami iptables bo jeżeli wprowadzę tylko tą:

$ sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8018

To strony w przeglądarce się wczytują ale 'config.privoxy.org' się nie otwiera.
Na komputerze dostaję komunikat że połączenie internetowe działa, ale łączność internetowa jest ograniczona.
Na początek chciałbym żeby chociaż http mi działało.

Ostatnio edytowany przez amin (2023-03-02 10:28:28)

Offline

 

#4  2023-03-02 22:47:47

  jawojx - Użytkownik

jawojx
Użytkownik
Zarejestrowany: 2012-10-11

Re: Privoxy na serwerze jako przechwytujące proxy.

Domyślny port dla privoxy to 8118, wszędzie ustawiasz 8018, nic nie piszesz, że zmieniałeś w konfiguracji. To samo dotyczy nazw interfejsów sieciowych, na pewno masz eth0 i wlan0, robiłeś coś z tym, by tak mieć (może i tak jest Armbianie, ale czy jest), sprawdzałeś to.

Offline

 

#5  2023-03-03 00:09:12

  amin - Użytkownik

amin
Użytkownik
Zarejestrowany: 2023-03-01

Re: Privoxy na serwerze jako przechwytujące proxy.

W pliku config mam ustawione: 'listen-address 0.0.0.0:8118'
Tu na forum zrobiłem błąd, ale normalnie używam portu 8118 a nie 8018.
Pod eth0 mam podłączony kabel LAN a wlan0 to wi-fi.
Adres eth0 to '192.168.1.11' natomiast wlan0 ma adres '172.24.1.1'
To jest stary TV Box na którym jest zainstalowany 'hostapd' oraz 'dnsmasq' i działa to jako AP.
I teraz do tego chciałbym dołożyć privoxy.

Zeby to działało jako AP dodałem takie reguły:
# iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
# iptables -A FORWARD -i eth0 -o wlan0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# iptables-save > /etc/firewall.conf
I przy starcie te reguły są odtwarzane.
Jednak niezależnie od tego czy te reguły są, czy je wyczyszczę to dodanie tej reguły:
# iptables -t nat -A PREROUTING -i wlan0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8118
odcina połączenie http.
Zależy mi na tym żeby privoxy znajdowało się między eth0 i wlan0.  (Privoxy as "intercepting proxy").
Tak samo jak mitmproxy i dlatego próbowałem użyć reguł iptables od mitmproxy.

Ostatnio edytowany przez amin (2023-03-03 01:01:28)

Offline

 

#6  2023-03-03 14:13:56

  amin - Użytkownik

amin
Użytkownik
Zarejestrowany: 2023-03-01

Re: Privoxy na serwerze jako przechwytujące proxy.

Nie wiem czy dobrze robię, ale w taki sposób czyszczę iptables, przed wprowadzeniem zasad od privoxy.
root@armbian:~# iptables --flush
root@armbian:~# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Tu wprowadzam nowe reguły dla privoxy.
Są to reguły które wczoraj znalazłem w Linux Magazine z marca 2020 (232) przeznaczone dla privoxy:

       #Example Firewall Rules for an Intercepting Router
EXTERNAL_INTERFACE=eth0
INTERNAL_INTERFACE=wlan0
      # Masquerade outgoing traffic.
iptables -t nat -A POSTROUTING -o $EXTERNAL_INTERFACE -j MASQUERADE

     # Redirect connections that attempt to talk to external web servers without using the proxy.
iptables -t nat -I PREROUTING -i $INTERNAL_INTERFACE -p tcp ! -s 172.24.1.1 --dport 80 -j DNAT --to-destination 172.24.1.1:8118

    # Permit loopback traffic, allow traffic generated by the router itself, and drop connections from the WAN.
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i $EXTERNAL_INTERFACE -j DROP

I nadal to samo, czyli http zablokowane.

Offline

 

#7  2023-03-03 16:04:45

  jawojx - Użytkownik

jawojx
Użytkownik
Zarejestrowany: 2012-10-11

Re: Privoxy na serwerze jako przechwytujące proxy.

Nie rób wszystkiego po omacku. Zainstaluj curl-a i sprawdź z klienta, czy masz odpowiedz z adresu konfiguracji privoxy (lub inny adres) z ustawieniami nawet od razu dla https. Przy założeniu, że privoxy jest na adresie 172.24.1.1, to wygląda tak (można bez verbose, ale tak będziesz miał pełną informację).

Kod:

export https_proxy=https://172.24.1.1:8118 ; export http_proxy=http://172.24.1.1:8118 ; curl -v -I http://p.p

Offline

 

#8  2023-03-03 19:19:36

  amin - Użytkownik

amin
Użytkownik
Zarejestrowany: 2023-03-01

Re: Privoxy na serwerze jako przechwytujące proxy.

$ curl -v -I http://p.p
* Uses proxy env variable http_proxy == 'http://172.24.1.1:8118'
*   Trying 172.24.1.1:8118...
* Connected to (nil) (172.24.1.1) port 8118 (#0)
> HEAD http://p.p/ HTTP/1.1
> Host: p.p
> User-Agent: curl/7.81.0
> Accept: */*
> Proxy-Connection: Keep-Alive
>
* Recv failure: Connection reset by peer
* Closing connection 0
curl: (56) Recv failure: Connection reset by peer

Offline

 

#9  2023-03-03 22:16:43

  jawojx - Użytkownik

jawojx
Użytkownik
Zarejestrowany: 2012-10-11

Re: Privoxy na serwerze jako przechwytujące proxy.

Wygląda, że namieszało się z zaporą, zresetuj ustawienia wyczyść wszystkie reguły (dla nat-a też).

Kod:

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -F
iptables -F
iptables -X

Ustaw tylko to, co jest niezbędne bez przekierowania na razie i sprawdź jeszcze raz czy się łączy, jak tak, to możesz ustawić sobie proxy w przeglądarce i sprawdzić, jak działa, to ustawiać dalej.

Offline

 

#10  2023-03-03 23:55:45

  amin - Użytkownik

amin
Użytkownik
Zarejestrowany: 2023-03-01

Re: Privoxy na serwerze jako przechwytujące proxy.

Wyczyściłem iptables na serwerze i kliencie.
Straciłem połączenie bo działanie AP opiera się na regułach iptables:

# iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
# iptables -A FORWARD -i eth0 -o wlan0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Gdy je wprowadziłem to połączenie z siecią wróciło ale z privoxy nie idzie się połączyć.
Tak myślę że może te dwie pierwsze reguły sprawiają problem.
Ale nie wiem jak je zastąpić.

Offline

 

#11  2023-03-04 10:21:53

  jawojx - Użytkownik

jawojx
Użytkownik
Zarejestrowany: 2012-10-11

Re: Privoxy na serwerze jako przechwytujące proxy.

Na pewno straciłeś połączenie z internetem, ale lan powinien działać, bez tego, te reguły mogą być inne, może być ich mniej, ale one niczego nie powinny zamykać i jak widać, internet i lan działa. Mniejsza z tym, to jest to, o czym pisałem, by robić to minimum, jeżeli więcej nic nie dodawałeś ponad to co opisałeś, to miałeś i możesz pokazać, wynik tego z klienta (na serwerze też możesz to sprawdzić, z samym http).

Kod:

export http_proxy=http://172.24.1.1:8118 ; curl -v -I http://p.p

A z serwera, na wszelki wypadek, możesz pokazać to.

Kod:

ss -a | grep 8118

Jak dalej nic nie znajdziesz, to może zainstaluje to privoxy (tylko to dosyć proste i nie bardzo jest się gdzie pomylić z samym privoxy) i zobaczę dokładniej, gdzie mogłeś popełnić błąd.

Edycja: Literówka, nieistotna.

Ostatnio edytowany przez jawojx (2023-03-04 11:24:39)

Offline

 

#12  2023-03-04 17:59:27

  amin - Użytkownik

amin
Użytkownik
Zarejestrowany: 2023-03-01

Re: Privoxy na serwerze jako przechwytujące proxy.

To z serwera:
root@armbian:~# export http_proxy=http://172.24.1.1:8118
root@armbian:~# curl -v -I http://p.p
* Uses proxy env variable http_proxy == 'http://172.24.1.1:8118'
*   Trying 172.24.1.1:8118...
* Connected to 172.24.1.1 (172.24.1.1) port 8118 (#0)
> HEAD http://p.p/ HTTP/1.1
> Host: p.p
> User-Agent: curl/7.74.0
> Accept: */*
> Proxy-Connection: Keep-Alive
>
* Empty reply from server
* Connection #0 to host 172.24.1.1 left intact
curl: (52) Empty reply from server
root@armbian:~# ss -a | grep 8118
tcp   LISTEN 0      128                                         0.0.0.0:8118                     0.0.0.0:*           

A to z klienta:
$ export http_proxy=http://172.24.1.1:8118
$ curl -v -I http://p.p
* Uses proxy env variable http_proxy == 'http://172.24.1.1:8118'
*   Trying 172.24.1.1:8118...
* Connected to (nil) (172.24.1.1) port 8118 (#0)
> HEAD http://p.p/ HTTP/1.1
> Host: p.p
> User-Agent: curl/7.81.0
> Accept: */*
> Proxy-Connection: Keep-Alive
>
* Recv failure: Connection reset by peer
* Closing connection 0
curl: (56) Recv failure: Connection reset by peer
$ ss -a | grep 8118
u_str ESTAB  0      0                                                       * 38118                             * 38920       
u_str ESTAB  0      0                             /run/dbus/system_bus_socket 38920                             * 38118

Offline

 

#13  2023-03-04 19:06:52

  jawojx - Użytkownik

jawojx
Użytkownik
Zarejestrowany: 2012-10-11

Re: Privoxy na serwerze jako przechwytujące proxy.

Słucha na porcie 8118, a nie łączy się po http. Ale zapomniałem zapytać o to, myślałem, że to oczywiste, że wracamy do podstawowej konfiguracji i uciekło.

amin napisał(-a):

... Zrobiłem wszystko według tego opisu: https://msfn.org/board/topic/183726-privoxy-as-ssl-filter/
Czyli W pliku konfiguracyjnym ustawiłem privoxy jako przechwytujące proxy oraz wskazałem certyfikaty wygenerowane w openssl...

Oczywiście wycofałeś te zmiany w konfiguracji, ze zmian powinno zostać tylko to.

amin napisał(-a):

W pliku config mam ustawione: 'listen-address 0.0.0.0:8118'

I zrestartuj privoxy.

Kod:

# systemctl restart privoxy.service

I sprawdź, już wystarczy z klienta.

Kod:

export http_proxy=http://172.24.1.1:8118 ; curl -v -I http://p.p

Offline

 

#14  2023-03-04 20:34:40

  amin - Użytkownik

amin
Użytkownik
Zarejestrowany: 2023-03-01

Re: Privoxy na serwerze jako przechwytujące proxy.

Przeinstalowałem privoxy i w oryginalnym pliku 'config' zmieniłem tylko  'listen-address'

$ export http_proxy=http://172.24.1.1:8118
$ curl -v -I http://p.p
* Uses proxy env variable http_proxy == 'http://172.24.1.1:8118'
*   Trying 172.24.1.1:8118...
* Connected to (nil) (172.24.1.1) port 8118 (#0)
> HEAD http://p.p/ HTTP/1.1
> Host: p.p
> User-Agent: curl/7.81.0
> Accept: */*
> Proxy-Connection: Keep-Alive
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
HTTP/1.1 200 OK
< Content-Length: 2710
Content-Length: 2710
< Content-Type: text/html
Content-Type: text/html
< Cache-Control: no-cache
Cache-Control: no-cache
< Date: Sat, 04 Mar 2023 19:30:57 GMT
Date: Sat, 04 Mar 2023 19:30:57 GMT
< Last-Modified: Sat, 04 Mar 2023 19:30:57 GMT
Last-Modified: Sat, 04 Mar 2023 19:30:57 GMT
< Expires: Sat, 17 Jun 2000 12:00:00 GMT
Expires: Sat, 17 Jun 2000 12:00:00 GMT
< Pragma: no-cache
Pragma: no-cache

<
* Connection #0 to host (nil) left intact

Skonfigurowałem w przeglądarce proxy dla http i po wejściu na 'config.privoxy.org' pokazuje, że privoxy działa.
Teraz będę powoli przywracał stary 'config' i może uda się uruchomić tryb przechwytywania.

Ostatnio edytowany przez amin (2023-03-04 20:53:05)

Offline

 

#15  2023-03-04 21:19:56

  jawojx - Użytkownik

jawojx
Użytkownik
Zarejestrowany: 2012-10-11

Re: Privoxy na serwerze jako przechwytujące proxy.

To do czego łączył się curl, w tych testach co podałem http://p.p, to jest to samo co config.privoxy.org. Tylko jak zrobisz przekierowania na zaporze na port 8118, to uważaj, bo będziesz miał internet tylko tam, gdzie masz ustawione proxy. Nie zapomnij że jak chcesz coś edytować w privoxy na stronie konfiguracji to potrzebujesz ustawić w config-u enable-edit-actions 1 (ale to masz opisane), zablokuj jakąś stronę i sprawdź czy działa. No i tyle.

Ostatnio edytowany przez jawojx (2023-03-04 21:22:31)

Offline

 

#16  2023-03-07 12:50:03

  amin - Użytkownik

amin
Użytkownik
Zarejestrowany: 2023-03-01

Re: Privoxy na serwerze jako przechwytujące proxy.

W nowym pliku 'config' ustawiłem tylko 'listen-address 0.0.0.0:8118' oraz 'accept-intercepted-requests 1'.
Przy takich ustawieniach i proxy ustawionym w przeglądarce dla http i https, strony otwierają się bez problemu.
Potem wyłączyłem proxy w przeglądarce i wprowadziłem reguły iptables.
Najpierw dla http:
iptables -t nat -I PREROUTING -i $INTERNAL_INTERFACE -p tcp ! -s 172.24.1.1 --dport 80 -j DNAT --to-destination 172.24.1.1:8118
Tu wszystko działało dobrze i 'config.privoxy.org' przechodziło.
Potem dodałem regułę dla https:
iptables -t nat -I PREROUTING -i $INTERNAL_INTERFACE -p tcp ! -s 172.24.1.1 --dport 443 -j DNAT --to-destination 172.24.1.1:8118
To wszystko zablokowało i z żadną stroną nie idzie się połączyć.
W dokumentacji piszą że tryb przechwytujący nie działa z https.
Da się to jakoś obejść lub może zastosować inne reguły iptables ?
Znalazłem takie coś : https://monklinux.blogspot.com/2020/04/installing-t … proxy_14.html
Tylko że tam trzeba instalować dodatkowy serwer squid, który na razie nie jest mi do niczego potrzebny, a poza tym 
nie wiem czy poradzę sobie z konfiguracją bo kiepsko jest opisana.
Znalazłem również to:  https://github.com/wheever/ProxHTTPSProxyMII
ProxHTTPSProxyMII jest prosty do uruchomienia, więc go uruchomiłem i dostałem taki komunikat:
============================================================================
ProxHTTPSProxyMII v1.4 (urllib3/1.26.14)

  FrontServer  : localhost:8079
  RearServer   : localhost:8081
  ParentServer : None
  Proxomitron  : http://localhost:8118
============================================================================

Ostatnio edytowany przez amin (2023-03-08 15:27:16)

Offline

 

#17  2023-03-08 13:49:11

  amin - Użytkownik

amin
Użytkownik
Zarejestrowany: 2023-03-01

Re: Privoxy na serwerze jako przechwytujące proxy.

Metoda z ProxHTTPSProxyMII dobrze by działała w trybie przezroczystego proxy ale jest to
bardzo stary projekt i część stron https się nie otwiera.
Privoxy działa bardzo dobrze ale tylko po konfiguracji w przeglądarce otwiera strony https.
Jak ustawić go jako przezroczysty proxy na serwerze to działają tylko strony http a https są blokowane.
Dlaczego tak się dzieje ?
Źle to robię, czy może programiści privoxy celowo wprowadzili jakąś blokadę na przechwytywanie https ?
A jeżeli jest blokada, to czy da się ją jakoś obejść ?

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)