Sziasztok!
6 órája kutatok a neten, hogy hogyan lehet beállítani egy transzparens proxyt. HUP-on is volt 1-2 téma, ahol megoldották a problémát, de nem sikerült.
A jelenlegi felállás:
- Debian 6 Squeeze
- Squid 2.7 Stable 9
- eth0: (ez megy az internet felé)
- eth1: 192.168.1.1 (belső hálózat: 192.168.1.0/24)
- eth2: (dinamikusan kapja az ip-t egy másik hálózatból) ezen nem transzparens módba figyel a squid
Egy olyan átjárót szeretnék létrehozni, mely a felhasználót kényszeríti proxy használatára és ne kelljen beállítani kliens oldalon a böngészőt. Érdemes reklám szűrést squidGuarddal megvalósítani?
Ha böngészőben beállítom a proxyt (192.168.1.1:3128) akkor csatlakozik az internetre a proxyval. A szerveren iptables segítségével átirányítottam a forgalmat a 80-as portról a 3128-ra (iptables -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128), és a squid.confba hozzátettem: http_port 192.168.1.1:3128 transparent, de így sem működik. Proxy nélkül egyszer nem tölt be semmit, máskor meg betölti az oldalt, de proxyt nem használ.
Előre is köszönöm segítségeteket!
- 16107 megtekintés
Hozzászólások
Heló. Lehet hülyeség, de amikor én csináltam a transzparens mód csak úgy működött, hogyha csináltam egy DNS szervert(Bind) is a Squid mellé. Nem transzparens módban erre nem volt szükség.
Vagy megpróbálhatod iptablessel a szolgáltatód DNS-ét használni:
iptables -t nat -A PREROUTING -p tcp --dport 53 -j MASQUERADE
iptables -t nat -A PREROUTING -p udp --dport 53 -j MASQUERADE
Régen használtam iptablest lehet el is írtam őket, szóval csak saját felelősségre.
- A hozzászóláshoz be kell jelentkezni
Squid-nak is meg lehet adni a DNS-t:
dns_nameservers xxx.xxx.xxx.xxx
Illetve, hogy transzparens proxy-ként működjön:
http_port xxx.xxx.xxx.xxx:port transparent
De tényleg a tábla hiányzott az iptables-ből.
- A hozzászóláshoz be kell jelentkezni
A DNS szerver megvolt adva : )
http_port 192.168.1.1:3128 transparent
dns_nameservers x.x.x.x (internetszolgáltató)
- A hozzászóláshoz be kell jelentkezni
Köszönöm, ez hiányzott! De a PREROUTING helyett POSTROUTING van. Ez a helyes:
iptables -t nat -A POSTROUTING -p tcp --dport 53 -j MASQUERADE
iptables -t nat -A POSTROUTING -p udp --dport 53 -j MASQUERADE
Így már működik!
- A hozzászóláshoz be kell jelentkezni
Szerintem kihagytad, hogy az iptables szabályt melyik táblához adja hozzá. Helyesen:
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
Esetleg ezt is érdemes átnézni:
http://www.ubuntugeek.com/how-to-setup-transparent-squid-proxy-server-i…
--------------------------------------------------------------
"Tegnap reggel addig röhögtünk a főnök viccén, míg ki nem derült, hogy az a napi feladat."
- A hozzászóláshoz be kell jelentkezni
Jó doksit itt is találsz: http://hup.hu/node/77361
- A hozzászóláshoz be kell jelentkezni
Hálás köszönet!
- A hozzászóláshoz be kell jelentkezni
Köszönöm, ezt meg is találtam már : )
- A hozzászóláshoz be kell jelentkezni
Sziasztok!
Épp múlt héten csináltam egyet, először transzparens lett volna, utána jött a kérés, hogy a nevelők had írhassanak be jelszót és a gyerek csak úgy használhassa az internetet, így lett user/pass.
Egy gondom, hogy a https nem megy át, portoknál a kommentet kivettem. Kell működni a https-nek is?
A pontos konfig nincs most előttem.
- A hozzászóláshoz be kell jelentkezni
Sajnos Transzparens módnál le kell mondanunk az authentikációról.
Azt olvastam, hogy kezeli már a HTTPS-t (elvileg)
Nekem azért van szükségem transzparensre, mert nyílt wifin lesz osztva a net és a csatlakozók nem fognak proxyt beállítani.
- A hozzászóláshoz be kell jelentkezni
Erre a proxy autoconfig szerintem jobb megoldás lenne, a transparent proxy lehet hogy több bajt okoz mint amennyi haszna lesz.
- A hozzászóláshoz be kell jelentkezni
"Sajnos Transzparens módnál le kell mondanunk az authentikációról. "
Igen, ezt olvastam, de ésszerű is. Azt is olvastam, hogy ekkor a https sem megy. Szerencsére jött a kérés, hogy legyen user/pass, viszont így sincs https.
- A hozzászóláshoz be kell jelentkezni
Köszönöm mindenkinek aki segített! Sh scripthez hozzáadtam, ami csatoló felhúzásakor indul.
#!/bin/sh
PATH=/usr/sbin:/sbin:/bin:/usr/bin
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW -i ! eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o eth0 -j REJECT
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -p tcp --dport 53 -j MASQUERADE
iptables -t nat -A POSTROUTING -p udp --dport 53 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
- A hozzászóláshoz be kell jelentkezni
Sziasztok!
Én annyiban szólnék hozzá, hogy én is szeretnék tanácsot kérni.
Nálam egy ipcop v2 megy mint proxy és szintén transzparens módban. A proxy http protokollon megy és az a gond, hogy vannak olyan weblapok amiknek van https oldaluk is, pl.: Facebook.
Nálunk termenkénti tiltás is van (MAC alaján) így a tanár az adott teremben le tudja tiltani a netet.
A gond az, hogy a fifikás tanulók https-en facebookoznak. Azt szeretném megoldani, hogy adott termet teljesen le tudjak tiltani a squid-del.
Próbálkoztam, azzal, hogy a /var/ipcop/proxy/acls/include.acl fájlba írok, de nem igazán értek a squidhez így nem is lett jó az eredmény.
Szeretnék kérni tanácsot a megoldáshoz.
Itt van a squid.conf:
http_port 10.205.206.254:8080 transparent
cache_effective_user squid
cache_effective_group squid
umask 022
pid_filename /var/run/squid.pid
cache_mem 4 MB
cache_dir aufs /var/log/cache 50 16 256
error_directory /usr/lib/squid/errors.ipcop/hu
access_log /dev/null
cache_log /dev/null
cache_store_log none
log_mime_hdrs off
logfile_rotate 0
forwarded_for off
via off
acl within_timeframe time MTWHFAS 00:00-24:00
acl localhost src 127.0.0.1/32
acl SSL_ports port 443 # https
acl SSL_ports port 8443 # alternative https
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 1025-65535 # unprivileged ports
acl Safe_ports port 8080 # Squids port (for icons)
acl IPCop_http port 81
acl IPCop_https port 8443
acl IPCop_ips dst 10.205.206.254
acl IPCop_networks src "/var/ipcop/proxy/acls/src_networks.acl"
acl IPCop_servers dst "/var/ipcop/proxy/acls/src_subnets.acl"
acl IPCop_green_network src 10.205.206.0/24
acl IPCop_green_servers dst 10.205.206.0/24
acl IPCop_blue_network src 10.205.205.0/24
acl IPCop_blue_servers dst 10.205.205.0/24
acl IPCop_banned_mac arp "/var/ipcop/proxy/acls/src_banned_mac.acl"
acl CONNECT method CONNECT
#Classroom extensions
acl IPCop_no_access_ips src "/var/ipcop/proxy/acls/src_noaccess_ip.acl"
acl IPCop_no_access_mac arp "/var/ipcop/proxy/acls/src_noaccess_mac.acl"
deny_info ERR_ACCESS_DENIED IPCop_no_access_ips
deny_info ERR_ACCESS_DENIED IPCop_no_access_mac
http_access deny IPCop_no_access_ips
http_access deny IPCop_no_access_mac
#Access to squid:
#local machine, no restriction
http_access allow localhost
#GUI admin if local machine connects
http_access allow IPCop_ips IPCop_networks IPCop_http
http_access allow CONNECT IPCop_ips IPCop_networks IPCop_https
#Deny not web services
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
#Set custom configured ACLs
http_access deny IPCop_banned_mac
http_access allow IPCop_networks within_timeframe
http_access deny all
#Strip HTTP Header
request_header_access X-Forwarded-For deny all
request_header_access Via deny all
maximum_object_size 4096 KB
minimum_object_size 0 KB
request_body_max_size 0 KB
reply_body_max_size none all
visible_hostname hercules.localdomain
Itt van a /var/ipcop/proxy/acls/include.acl
acl szamtec-termek arp 00:24:21:20:48:23 ide jönnének a mac címek
acl facebook dstdomain .facebook.com
acl officetime time MTWHFA 08:00-15:00
http_reply_access_deny facebook szamtec-termek officetime
http_access deny CONNECT facebook szamtec-termek officetime
- A hozzászóláshoz be kell jelentkezni
ez érdekelne engem is, de mintha az olvastam volna, hogy ez transzparens módon nem fog menni
- A hozzászóláshoz be kell jelentkezni
ez így van :) nem fog, így maradt az iptables ^^ btw, elég, ha kiszűröd 443-on a fészbúk tartományát/vagy címeit
--
"'The time has come,' the Walrus said"
- A hozzászóláshoz be kell jelentkezni
acl deny_url dstdomain "/etc/squid/deny_urls.txt"
..
http_access deny deny_url
- A hozzászóláshoz be kell jelentkezni
Nekem fontos lenne, hogy csak adott mac címekre vonatkozzon a tiltás.
Erre vonatkoztt a kérdésem. Ezt hogyan kell?
Köszi
- A hozzászóláshoz be kell jelentkezni
Próbáld a squid CONNECT lehetőségét használni.
http://wiki.squid-cache.org/SquidFaq/ConfiguringSquid
Amikor annó squid https szavakra kerestem google-ban akkor ott is ezzel okoskodtak.
Ez még érdekesen hangzik:
http://blog.davidvassallo.me/2011/03/22/squid-transparent-ssl-intercept…
viszont ha jól értem bukod az ssl-es oldalak hiteles kulcsait, és a sajátod megy a kliensek felé helyette (bár csak átfutottam a cikket).
- A hozzászóláshoz be kell jelentkezni
Nem tudom, hogy rosszul értelmezem e, vagy a hozzászólók figyelmét kerülte el, de mint ahogy írtam én ezt a tiltást csak bizonyos mac című gépekre akarom bekapcsolni. Tehát a kérés az volna, hogy ezt hogyan... köszi
- A hozzászóláshoz be kell jelentkezni
DHCP szerverrel adsz MAC alapján a gépeknek statikus IP-t.
Majd ezt az IP-t szabályzod (tiltod,engedélyezed, listás szürésre teszed, stb) a squid-al.
Például...
- A hozzászóláshoz be kell jelentkezni
Köszönöm, jó ötlet.
Esetleg tudnál egy konkért példával segíteni?
Mondjuk facebook tiltása xxx.xxx és xxx.xxx ip című gépekre.
Elég kezdő vagyok ezen a téren.
kösszi
- A hozzászóláshoz be kell jelentkezni
Mindenféle gorombaság nélkül ajánlom a google-t. Például squid example esetleg squid basic example szavakkal.
Szerintem sokkal jobb, és többet is tanul belölle az ember, ha utána néz amennyire tud, esetleg egy teszt környezetben (akár virtuálisan) összerakja a rendszert, mielött élesbe állna. Így közben tanulni is lehet és van idö/lehetöség kikisérletezni a megoldást.
Hirtelen ezt találtam:
https://help.ubuntu.com/12.04/serverguide/squid.html
De itt egy példa config:
-- dhcpd.conf --
option domain-name "example.site";
option domain-name-servers 8.8.8.8, 8.8.4.4;
option routers 192.168.3.10; #linux proxy szerver IP-je
### option subnet-mask 255.255.0.0;
default-lease-time 28800;
max-lease-time 259200;
subnet 192.168.3.0 netmask 255.255.0.0 {
range 192.168.3.50 192.168.3.150;
}
#desktop1
host desktop1 {
hardware ethernet 1c:2c:3a:4a:5b:5d;
fixed-address 192.168.4.10;
}
--- squid.conf --- (részlet!)
acl all src 0.0.0.0/0.0.0.0
acl allowedhosts src 192.168.4.0/24
acl limitedhosts src 192.168.3.0/24
acl whitelist url_regex "/etc/squid/whitelist.txt"
acl blacklist url_regex "/etc/squid/blacklist.txt"
http_access deny blacklist
http_access allow allowedhosts
http_access allow limitedhosts whitelist
http_access deny limitedhosts
--- blacklist.txt ---
# video pages
youtube
videa
vimeo
indavideo
video
radio
#community
facebook
iwiw
badoo
netlog
a whitelist.txt is hasonló a blacklist.txt-hez, de nevéhez is mérten pont a fordítottja.
A fenti squid.conf részlet (ha jól írtam meg), akkor azt teszi, hogy mindenkinél tiltja a blacklist.txt-ben lévö szavakat az url-ben. A 192.168.4.0-s tartománynak mindent enged, de a 192.168.3.0-s gépeknek csak a whitelist-be felvett szavakat tartalmazó oldalakat (persze ide lehet domaineket is felvenni a szavak helyett. pl: index.hu)
Remélem segít.
A többit már google-val össze tudod szedni. ;)
Sok sikert!
- A hozzászóláshoz be kell jelentkezni
Sziasztok!
Nagyon hasznosak a leírások.
Végül is elvileg értem, mit kell csinálni de gyakorlatban mégse sikerült. Ezért is másoltam be mindjárt a konfigomat. Megnéznétek esetleg mit rontottam el benne?
Főleg a második részre volnék kíváncsi.
köszi
- A hozzászóláshoz be kell jelentkezni
Köszi mindenkinek a hozzászólást.
Addig sikerült eljutni, hogy mac cím alapján meg tudom adni az egyes domainek tiltását.
acl tanuloi-gepek arp "/var/ipcop/proxy/tanuloi-gepek.txt"
acl ads url_regex "/var/ipcop/proxy/badsites.txt"
http_access deny ads tanuloi-gepek
A tanuloi-gepek.txt tartalmazza soronként a mac címeket
#[4-es-terem]
xx:6f:xx
xx:e5:xx
xx:e5:xx
már csak a https alapú lapok tiltása kellene pl.:facebook
de már ez is haladás.
- A hozzászóláshoz be kell jelentkezni
ez is meg transzparens? ha igen, akkor at van iranyitva a 443-as port a squidre?
- A hozzászóláshoz be kell jelentkezni
(Miért nem IP-t tiltasz és DHCP-ben történik a MAC-IP hozzárendelés?)
- A hozzászóláshoz be kell jelentkezni
acl deny_url dstdomain "/etc/squid/deny_urls.txt"
..
http_access deny deny_url macszabaly
- A hozzászóláshoz be kell jelentkezni
torolheto
- A hozzászóláshoz be kell jelentkezni
Nem célom az önreklám, de hátha segít valakinek:
http://fixaltam.blogspot.hu/2011/05/atlatszo-squid-jelszavas-vedelem.html
- A hozzászóláshoz be kell jelentkezni
ez jó. felélesztem... :(
--
#conf t
#int world
#no shut
- A hozzászóláshoz be kell jelentkezni
ez klassz megoldás, frappáns.
- A hozzászóláshoz be kell jelentkezni
Feliratkozom.
-----------------------------------------
Linux alapparancsok, kezdőknek
- A hozzászóláshoz be kell jelentkezni
Én is "csatlakozom."
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni