Forums

Skip to content

Advanced search
  • Quick links
    • Unanswered topics
    • Active topics
    • Search
  • FAQ
  • Login
  • Register
  • Board index International Gentoo Users Polskie forum (Polish)
  • Search

[hardened] [~x86-64] problem z TPROXY (squid) [SOLVED]

Witajcie na polskim forum użytkowników Gentoo!
Opis instalacji i pracy z Gentoo. Pozostała dokumentacja Gentoo

Moderator: SlashBeast

Post Reply
  • Print view
Advanced search
1 post • Page 1 of 1
Author
Message
tjwasiak
n00b
n00b
Posts: 1
Joined: Tue Jul 14, 2015 4:17 pm
Location: okolice Warszawy, PL

[hardened] [~x86-64] problem z TPROXY (squid) [SOLVED]

  • Quote

Post by tjwasiak » Tue Jul 14, 2015 4:38 pm

W pełni zaktualizowany system ~x86-64:
- jądro hardened-sources 4.0.7-r1
- squid 3.5.6 [+tproxy]
- iproute2 4.1.1
- iptables 1.4.21-r1

Sieć lokalna - br0 (LAN + WLAN), 192.168.0.0/24, router ma przypisane adresy 192.168.0.1-192.168.0.5
Łącze internetowe PPPoE - ppp0, dynamiczne IP

Konfiguracja squid:

Code: Select all

http_port 192.168.0.5:3128
http_port 192.168.0.5:8080 tproxy
Konfiguracja iptables - łańcuch PREROUTING tabeli mangle:

Code: Select all

[0:0] -A PREROUTING -i ppp0 -p tcp -m tcp --sport 80 -j MARK --set-xmark 0x1/0x1
[0:0] -A PREROUTING -i br0 -p tcp -m tcp --dport 80 -j TPROXY --on-port 8080 --on-ip 192.168.0.5 --tproxy-mark 0x1/0x1
Routing:
ip rule show

Code: Select all

0:      from all lookup local
32765:  from all fwmark 0x1/0x1 lookup 1
32766:  from all lookup main
32767:  from all lookup default
ip route show table 1

Code: Select all

unicast default via 192.168.0.5 dev br0  proto static  scope global
/proc/sys/net/ipv4/conf/*/rp_filter: 0

Jeśli usunąć regułę TPROXY z łańcucha PREROUTING tabeli mangle to wszystko normalnie działa (jest włączony forwarding, MASQUERADE itp. itd.). Działa również sam Squid (przy połączeniu na port 3128). Jednak z uwagi na konieczność podziału łącza takie rozwiązanie nie jest optymalne (stosując REDIRECT/DNAT do Squid'a cały ruch WWW trafia do klasy dedykowanej routerowi). Z uwagi na ograniczone możliwości techniczne łącze jest dosyć mocno ograniczone jeśli chodzi o prędkość, a znaczna część ruchu WWW jest przez Squid'a cache'owana, co znacznie poprawia komfort korzystania z WWW.
Niestety zastosowanie reguły TPROXY powoduje że cały ruch z sieci lokalnej do portu 80 po prostu znika (nie trafia do Squid'a - potwierdziłem to stosując odpowiednią opcję debug_options).

Czy ktoś ma pomysł co jeszcze może mieć wpływ na takie zachowanie router'a?

EDIT: Znalazłem rozwiązanie problemu.
Po pierwsze - wpis w tabeli routing'u 1 powinien wyglądać następująco:

Code: Select all

local default dev br0  scope host
Po drugie - mała zmiana reguł łańcucha PREROUTING tabeli mangle

Code: Select all

[0:0] -A PREROUTING -p tcp -m socket -j MARK --set-xmark 0x1/0x1
[0:0] -A PREROUTING -p tcp -m socket -j ACCEPT
[0:0] -A PREROUTING -i br0 -p tcp -m tcp --dport 80 -j TPROXY --on-port 8080 --on-ip 192.168.0.5 --tproxy-mark 0x1/0x1
Ważne - jeśli używacie firewall'a port 80 musi być otwarty w łańcuch INPUT dla każdego docelowego adresu IP!

Teraz wszystko działa jak trzeba i cały ruch jest odpowiednio kolejkowany przez QoS.

Szkoda że dokumentacja (zarówno ogólnie dla Linux'a jak również dla Gentoo) dotycząca QoS, policy routing oraz TPROXY jest taka jaka jest - czyli praktycznie nieistniejąca, w znacznej mierze zdeaktualizowana, a poza tym trzeba jej szukać w tak wielu miejscach...
question = ( to ) ? be : ! be;
Top
Post Reply
  • Print view
1 post • Page 1 of 1

Return to “Polskie forum (Polish)”

Jump to
  • Assistance
  • ↳   News & Announcements
  • ↳   Frequently Asked Questions
  • ↳   Installing Gentoo
  • ↳   Multimedia
  • ↳   Desktop Environments
  • ↳   Networking & Security
  • ↳   Kernel & Hardware
  • ↳   Portage & Programming
  • ↳   Gamers & Players
  • ↳   Other Things Gentoo
  • ↳   Unsupported Software
  • Discussion & Documentation
  • ↳   Documentation, Tips & Tricks
  • ↳   Gentoo Chat
  • ↳   Gentoo Forums Feedback
  • ↳   Duplicate Threads
  • International Gentoo Users
  • ↳   中文 (Chinese)
  • ↳   Dutch
  • ↳   Finnish
  • ↳   French
  • ↳   Deutsches Forum (German)
  • ↳   Diskussionsforum
  • ↳   Deutsche Dokumentation
  • ↳   Greek
  • ↳   Forum italiano (Italian)
  • ↳   Forum di discussione italiano
  • ↳   Risorse italiane (documentazione e tools)
  • ↳   Polskie forum (Polish)
  • ↳   Instalacja i sprzęt
  • ↳   Polish OTW
  • ↳   Portuguese
  • ↳   Documentação, Ferramentas e Dicas
  • ↳   Russian
  • ↳   Scandinavian
  • ↳   Spanish
  • ↳   Other Languages
  • Architectures & Platforms
  • ↳   Gentoo on ARM
  • ↳   Gentoo on PPC
  • ↳   Gentoo on Sparc
  • ↳   Gentoo on Alternative Architectures
  • ↳   Gentoo on AMD64
  • ↳   Gentoo for Mac OS X (Portage for Mac OS X)
  • Board index
  • All times are UTC
  • Delete cookies

© 2001–2026 Gentoo Foundation, Inc.

Powered by phpBB® Forum Software © phpBB Limited

Privacy Policy

 

 

magic