Автор Тема: Squid във вътрешна мрежа  (Прочетена 2184 пъти)

Neoromantic

  • Напреднали
  • *****
  • Публикации: 71
    • Профил
Squid във вътрешна мрежа
« -: Aug 15, 2006, 12:31 »
Имам следния проблем:
Намирам се в мрежа 192.168.0.0/24
Искам да настроя SQUID да работи като вътрешно за мрежата proxy.
Машината, на която го настройвам е с IP Adress: 192.168.0.5.
На нея default gateway e : 192.168.0.1
Политиките са АCCEPT и няма никакви ограничения.

Ако поискам да мина през този SQUID от друга машина(клиент) задавам на браузъра да минава през 192.168.0.5 Порт:8080, като също така премахвам default gateway на клиентската машина.

SQUID е настроен по следния начин:

http_port 8080

acl filedeny urlpath_regex -i "/opt/squid/etc/filedeny"
http_acess deny filedeny

filedeny
\.mp3$
\.avi$

На машината с IP: 192.168.0.1 също има настроен squid. Там също има подобни рестрикции, които работят.
Грешките за отказан достъп се получават оттам, а не от машината с IP 192.168.0.5.
Това обаче е за ограничението по файлово разширение. Ако ограничавам протокол (например ftp)
заявката стига само до 192.168.0.5 и грешките се връщат оттам.
Защо заявките с разрешен пртокол и забранени файлови разширения се препращат към 192.168.0.1, макар
че би трябвало да се отказват още при 192.168.0.5?
Активен

morbid_viper

  • Напреднали
  • *****
  • Публикации: 266
  • Distribution: (Open)SUSE since v5.3 (1999)
  • Window Manager: KDE ориентиран
    • Профил
Squid във вътрешна мрежа
« Отговор #1 -: Aug 15, 2006, 14:48 »
оффф... темата е доста пространна и не може да се опише накратко като отговор тук, по скоро като отделна статия.
аз съм направил подобно нещо във всички офиси на нашата компания. за по-лесно, обаче, използвам squidGuard. там се определят класове от мрежи, на които можеш да зададеш различни неща като ограничение до какво да има достъп и до какво да няма, както и ограничения по време.
в squid.conf се настройва почти единствено това:

Примерен код

redirect_program /usr/sbin/squidGuard
acl localnet src 192.168.0.0/255.255.255.0
http_access allow localnet
http_access deny all

ето и примерен squidguard.conf
Примерен код

logdir /var/lib/squidGuard/logs
dbhome /var/lib/squidGuard/db

time kidsnoinet {
        weekly * 00:00-08:00
        weekly * 09:30-12:30
        weekly * 13:00-17:30
        weekly * 20:00-24:00
}

time grownupsnoinet {
        weekly * 00:00-08:00 20:00-24:00
}

dest security {
        expressionlist          security/expressions
        redirect                http://192.168.0.20/security.html
        log                     security.log
}

dest blacklist {
        domainlist              blacklist/domains
        urllist                 blacklist/urls
        expressionlist          blacklist/expressions
        redirect                http://192.168.0.20/porn.html
        log                     porn.log
}
dest banned {
        domainlist              banned/domains
        urllist                 banned/urls
        expressionlist          banned/expressions
        redirect                http://192.168.0.20/banned.html
        log                     banned.log
}

dest locals {
        domainlist              locals/domains
}

dest permited {
        domainlist              permited/domains
}

src gods {
        ip      192.168.0.99 192.168.0.20
        ip      192.168.0.11 192.168.0.12 192.168.0.13
}


src grownups {
        ip      192.168.0.100-192.168.0.124
}

src kids {
        ip      192.168.0.125-192.168.0.199
}

src babies {
        ip      192.168.0.200-192.168.0.254
}

acl {
        gods {
                pass all
        }

        grownups outside grownupsnoinet {
                pass !banned !blacklist !security all
    }

    kids outside kidsnoinet {
                pass !banned !blacklist !security all
    } else {
        pass permited locals none
    }
       babies {
                pass permited locals none
        }

    default {
                pass permited locals none
                redirect http://192.168.0.20/access_denied.html
    }
}


ето и малко примери за това как се ограничават музиката, филмите, порното  дори и джава аплетите:
/var/lib/squidGuard/db/blacklist/expressions
Примерен код

(orgy|bisex|bdsm|horny|lolita|adultsight|adultsite|adultsonly|adultweb|blowjob|gang-?bang|bondage|centerfold|cumshot|cyberlust|cybercore|hardcore|masturbat|obscene|pedophil|pedofil|playmate|pornstar|sexdream|showgirl|softcore|striptease|bestal|lezbia|gay|erotic|eros|fisting|naked|nude|porn|xxx|penis|pussy|####|clit|teen|fetish|boob|breast|busen|busty|cock|smutpump|bitch|whore)
(^|[-\?+=/_])(horny|big|cyber|hard|huge|mega|small|soft|super|tiny|farm|zoo|massive)?(adult|babe|boob|breast|busen|busty|cock|penis|clit|cum|fetish|hooter|lez|lust|naked|nude|porn|porno|anal|pupper|pussy|sex|smutpump|teen|topp?les|xxx)s?([-\?+=/_]|$)


/var/lib/squidGuard/db/banned/expressions
Примерен код

\.(ai[fc]f?|a[nv]i|ra?m|mpe?g?|msi|mo[dv]|movie|qt|dif|dvd?|mpv2|mp[234]|ogg|as[fx]|bmp|fl[ai]|iso|wav|wma?|tiff?|arj|ace|rar|exe|pif|com|dll|zip|cab|lzh|scr|mdb|m3u|rm|pls)($|\?)


в другите файлове от директорията domains и urls е ясно какво се пише  :-)
съзнавам, че това е скок в тъмното, затова е по-добре да се попрочете документацията на squidGuard. това, кеот съм сложил тук е отлично работеща настройка!
Активен

-------------------------------------------------
Blessed are we to taste this life of sin!
-------------------------------------------------
Registered Linux user #251276

Neoromantic

  • Напреднали
  • *****
  • Публикации: 71
    • Профил
Squid във вътрешна мрежа
« Отговор #2 -: Aug 15, 2006, 22:32 »
morbid_viper, благодаря ти за подробния отговор. Въпреки това аз си мисля, че прескачането на едното proxy се случва, заради конфигурирания на тази машина dns, който също е вътрешен за мрежата. Оттам запитването минава през firewall(gateway) на мрежата. А там е исталиран другия squid.
Въпроса е последователността, в която минава намирането на http://www.yahoo.com да кажем и по точно какво се случва при търсене на този адрес с конфигуриран proxy сървър, без dns и default gateway.

клиент(192.168.0.5) ->proxy1(192.168.0.2) - http://www.yahoo.com?
proxy-> dns(192.168.0.3) - http://www.yahoo.com?
dns->firewall & proxy2(192.168.0.1)->rootsevers

proxy1
IP: 192.168.0.2
Default Gateway:192.168.0.1
Dns:192.168.0.3
Има ли някаква вероятност това да се случва?
Активен

morbid_viper

  • Напреднали
  • *****
  • Публикации: 266
  • Distribution: (Open)SUSE since v5.3 (1999)
  • Window Manager: KDE ориентиран
    • Профил
Squid във вътрешна мрежа
« Отговор #3 -: Aug 16, 2006, 10:12 »
проксито няма нищо общо с dns сървъра - squid ти посредничи (почти) само за уеб протоколите. dns е съвсем друг случай... него си го пускаш да си минава през защитната стена (53 порт по udp), а проксито ще се съобрази с записите в твоя /etc/resolf.conf и ще си намира IP-тата независимо къде се намира dns сървъра (някъде в интернет, във вътрешната мрежа или на същата машина).

ако на една машина нямаш настроен шлюз по подразбиране (справка: route -n) и не е указано dns сървър (справка: cat /etc/resolf.conf), то нямаш и интернет. една заявка може да минава през много проксита, което всъщност се случва в действителност. нима си мислиш, че твоят и-нет доставчик не си е сложил прокси за да спести малко трафик?

при мен имам и трите случая в различните офиси. и всички работят.  :-)
дори съм го направил да е прозрачно, така че на хората да не се налага да настройват нищо на браузърите си. всъщност те не знаят, че има прокси.

за да пуснеш squid като прозрачно прокси трябват още 4 реда в /etc/squid/squid.conf и едно NAT правило в защитната стена.

/etc/squid/squid.conf
Примерен код

httpd_accel_host virtual
httpd_accel_single_host off
httpd_accel_with_proxy on
httpd_accel_uses_host_header on


Примерен код

iprables -t nat -A PREROUTING -i $LOCAL_IFACE -p tcp -m multiport --dports 70,210,80,8080 -j REDIRECT --to-port 3128


с --dports 70,210,80,8080 се задават портовете, които да се пренасочат към проксито, което работи на порт 3128. по принцип би трябвало и https да минава, но при мен нещо се чупи и за това там няма порт 443. някой ден ще видя какъв е проблема, но сега ме мързи :-)



Активен

-------------------------------------------------
Blessed are we to taste this life of sin!
-------------------------------------------------
Registered Linux user #251276

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
??? for SQUID
Настройка на програми
s01o 1 6634 Последна публикация Jan 24, 2003, 10:42
от coldy
Squid ?
Преводи на документация
snake 1 12378 Последна публикация Apr 02, 2003, 13:50
от DonAngel
SQUID
Настройка на програми
nizz 1 6047 Последна публикация Apr 08, 2003, 15:58
от nizz
Squid
Настройка на програми
mozly 8 5872 Последна публикация Jan 13, 2004, 13:54
от mozly
squid i squid.conf problem
Настройки на софтуер
stilldark 4 6974 Последна публикация Mar 19, 2010, 17:10
от b2l