URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 76798
[ Назад ]

Исходное сообщение
"Sqid через фаервол"

Отправлено Free_Man , 15-Окт-07 23:27 
Всем привет, у меня стоит FreeBSD 6.2, из портов поставил Squid, настроил Squid.conf, rc.firewall, rc.conf ....при выключенном фаерволе в rc.conf и в IE стоит прокси 192.168.1.1 порт 3128 работает все нормально, прокси отрубает те IP и сайты которые запрещены. При включении Фаервола и отключении в IE прокси Squid не работает. Пропускается все и вся. Открываются сайты и работают блокированные IP. В фаерволе стоит перенапровление с 3128 на 80 8080 поры, мне не надо прописывать прокси в IE. нужно чтоб все шло через Фаервол и перенаправлялось в Squid. Самое главное на другом серваке все теже настройки и все работает отлично. Я уж не знаю где и что я пропустил...

*************************************Squid.conf******************************************
#Recommended minimum configuration:
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 me src 192.168.1.2
acl vip src 192.168.1.3
acl black_list src 192.168.1.20
acl allowed_hostnames src 192.168.1.0/255.255.255.0
acl Fishki dstdomain "/etc/sites.conf"
acl Porno dstdom_regex cmex smeh blya udaf padonak bugaga bugaka romantic prikol stopme xoxma funny reality dagdan dom2 mercenaries combats tube igray 1ove yumor funpix rapidshare kiss ledi lady cekc kolobok qip flash soft lady woman diet fitne play anekdot chat dosug damochka horoscop sex porn porno erotic xxx dating love passion warez prostitutki individualki mp3 game znakomst bride kolobok
acl Media urlpath_regex -i \.mp3$ \.asf$ \.wma$ \.avi$ \.wav$ \.mov$ \.exe$ \.swf$ \.wmv$ \.bat$ \.scr$ \.kit$ \.3gp$
acl flv urlpath_regex -i \.flv$
acl SSL method CONNECT
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
#Default:
# http_access deny all
#
#Recommended minimum configuration:
#
# Only allow cachemgr access from localhost
http_access deny me
http_access allow manager localhost
http_access deny manager
http_access deny Media
http_access allow vip
http_access deny black_list
http_access deny Fishki
http_access deny Porno
http_access deny flv
*****************************************************************************************
*************************************rc.firewall*****************************************
[Ss][Ii][Mm][Pp][Ll][Ee])
    ############
    # This is a prototype setup for a simple firewall.  Configure this
    # machine as a DNS and NTP server, and point all the machines
    # on the inside at this machine for those services.
    ############
    # set these to your outside interface network and netmask and ip
    oif="rl0"
    onet="192.168.0.0"
    omask="255.255.255.0"
    oip="192.168.0.2"
    # set these to your inside interface network and netmask and ip
    iif="sk0"
    inet="192.168.1.0"
    imask="255.255.255.0"
    iip="192.168.1.1"
    setup_loopback
    # Divert
    #$(fwcmd) add deny all from any 80 to any
    #${fwcmd} add deny all from any to any 80
    ${fwcmd} add fwd 127.0.0.1,3128 tcp from any to any 80,8080 in
    #${fwcmd} add allow all from any 3128 to any
    #${fwcmd} add allow all from any to any 3128
    ${fwcmd} add divert natd all from any to any via ${oif}
    #${fwcmd} add fwd 127.0.0.1,3128 tcp from 192.168.10.0/24 to any 80,8080
    ${fwcmd} add pass ICMP from any to any
    ${fwcmd} add deny icmp from any to any frag
    ${fwcmd} add pass all from any to any via lo0
    #VIP
    ${fwcmd} add pass all from any 1723 to any
    ${fwcmd} add pass all from any to any 1723
    ${fwcmd} add allow gre from any to any
    
    #Admin
    ${fwcmd} add allow tcp from me 22 to any
    ${fwcmd} add allow tcp from any to me 22 via rl0
        
    #Pipe
    #${fwcmd} add pipe 2 ip from any to any
    #${fwcmd} add pipe 2 ip from any to 192.168.10.0/24
    #${fwcmd} add pipe 2 ip from any to 192.168.30.0/24
        #${fwcmd} add pipe 2 ip from 192.168.10.0/24 to any
    #${fwcmd} add pipe 2 ip from 192.168.20.0/24 to any
    #${fwcmd} add pipe 2 ip from 192.168.30.0/24 to any
                 
    #${fwcmd} pipe 1 config bw 512Kbit/s
    #${fwcmd} pipe 2 config bw 512Kbit/s            
    ${fwcmd} add pass all from any to any via ${iif}
    #${fwcmd} add pass all from any to any via ${iif2}
    #smtp
    ${fwcmd} add pass all from any to any 25
    ${fwcmd} add pass all from any 25 to any
            
    #pop
    
    ${fwcmd} add pass all from any to any 110
    ${fwcmd} add pass all from any 110 to any    
        
    #ftp
    
    ${fwcmd} add pass all from any to me 21
    ${fwcmd} add pass all from me 21 to any
    
    ${fwcmd} add pass all from any to ${inet} 20,21
    ${fwcmd} add pass all from ${inet} 20,21 to any
    
    #ICQ
    
    ${fwcmd} add pass tcp from any to any 5190
    ${fwcmd} add pass tcp from any 5190 to any
    
    #DNS
    
    ${fwcmd} add pass udp from any to any 53
    ${fwcmd} add pass udp from any 53 to any
    
    #HTTP
    
    ${fwcmd} add pass all from any to any 80
    ${fwcmd} add pass all from any 80 to any
    ${fwcmd} add pass tcp from any to any 8080
    ${fwcmd} add pass tcp from any 8080 to any
    ${fwcmd} add pass tcp from any to any 8101
    ${fwcmd} add pass tcp from any 8101 to any
    ${fwcmd} add pass tcp from any to any 8181
    ${fwcmd} add pass tcp from any 8181 to any
    ${fwcmd} add pass tcp from any to any 443
    ${fwcmd} add pass tcp from any 443 to any
    ${fwcmd} add pass all from any 9091 to any
    ${fwcmd} add pass all from any to any 9091
        ${fwcmd} add pass udp from any to any 8080
        ${fwcmd} add pass udp from any 8080 to any
        ${fwcmd} add pass udp from any to any 8101
        ${fwcmd} add pass udp from any 8101 to any
        ${fwcmd} add pass udp from any to any 8181
        ${fwcmd} add pass udp from any 8181 to any
        ${fwcmd} add pass udp from any to any 443
        ${fwcmd} add pass udp from any 443 to any
    #CS
    ${fwcmd} add pass all from any to any 27015
    ${fwcmd} add pass all from any 27015 to any
    case ${natd_enable} in
*****************************************************************************************
**************************************rc.conf********************************************
font8x14="cp866-8x14"
font8x16="cp866b-8x16"
font8x8="cp866-8x8"
gateway_enable="YES"
hostname="unix"
defaultrouter=192.168.0.1
ifconfig_rl0="inet 192.168.0.2 netmask 255.255.255.0"
ifconfig_sk0="inet 192.168.1.1 netmask 255.255.255.0"
squid_enable="YES"
natd_enable="YES"
natd_interface="rl0"
natd_flags="-f /etc/natd.conf"
firewall_enable="YES"
firewall_type="SIMPLE"
#firewall_type="OPEN"
firewall_script="/etc/rc.firewall"
#squid_enable="YES"
inetd_enable="YES"
ipv6_enable="YES"
keymap="ru.koi8-r"
linux_enable="YES"
mousechar_start="3"
moused_enable="YES"
nfs_client_enable="YES"
nfs_server_enable="YES"
rpcbind_enable="YES"
saver="daemon"
sshd_enable="YES"
usbd_enable="YES"


Содержание

Сообщения в этом обсуждении
"Sqid через фаервол"
Отправлено universite , 16-Окт-07 02:00 
>Всем привет, у меня стоит FreeBSD 6.2, из портов поставил Squid, настроил
>Squid.conf, rc.firewall, rc.conf ....при выключенном фаерволе в rc.conf и в IE
>стоит прокси 192.168.1.1 порт 3128 работает все нормально, прокси отрубает те
>IP и сайты которые запрещены. При включении Фаервола и отключении в
>IE прокси Squid не работает.
>natd_enable="YES"
>natd_interface="rl0"
>natd_flags="-f /etc/natd.conf"

Отключи NAT и все будет гуд.


"Sqid через фаервол"
Отправлено Free_Man , 16-Окт-07 21:38 
>Отключи NAT и все будет гуд.

Когда я отключаю Nad то 2 сетевуха перестает получать инет sk0 ...И соответственно ничего не работает



"Sqid через фаервол"
Отправлено konst , 16-Окт-07 23:03 
>>Отключи NAT и все будет гуд.
>
>Когда я отключаю Nad то 2 сетевуха перестает получать инет sk0 ...И
>соответственно ничего не работает

перенаправляй с 80 на 3128, а не наоборот


"Sqid через фаервол"
Отправлено crash , 17-Окт-07 02:13 
>>>Отключи NAT и все будет гуд.
>>
>>Когда я отключаю Nad то 2 сетевуха перестает получать инет sk0 ...И
>>соответственно ничего не работает
>
>перенаправляй с 80 на 3128, а не наоборот

а разве не так сделано?


"Sqid через фаервол"
Отправлено konst , 17-Окт-07 02:24 
>>>>Отключи NAT и все будет гуд.
>>>
>>>Когда я отключаю Nad то 2 сетевуха перестает получать инет sk0 ...И
>>>соответственно ничего не работает
>>
>>перенаправляй с 80 на 3128, а не наоборот
>
>а разве не так сделано?

Понятия не имею... Но у автора темы:

1. В фаерволе стоит перенапровление с 3128 на 80 8080 поры
2. ${fwcmd} add fwd 127.0.0.1,3128 tcp from any to any 80,8080 in

Не знаю что как работает  п.2 (I use iptables), но судя по п.1 ....


"Sqid через фаервол"
Отправлено Free_Man , 17-Окт-07 10:44 
konst правильно заметил что у меня с 3128 на 80 8080 порты перенаправление это сделано для удобства. В ядре фаервол прописан, инет по 80 идет но не срабатывает squid нет запретов.  


"Sqid через фаервол"
Отправлено konst , 17-Окт-07 14:29 
>konst правильно заметил что у меня с 3128 на 80 8080 порты
>перенаправление это сделано для удобства. В ядре фаервол прописан, инет по
>80 идет но не срабатывает squid нет запретов.

я этого не понимай...

Если хочешб запретить локал. пользователям ходит в инет мимо squid - просто перенаправь все запросы с локальных машин на порты 80,443,5190 на 3128.
В iptables это звучит так:

-A PREROUTING -p tcp -s 192.168.0.0/24  -m multiport -d ! 192.168.0.253 --dports 80,443 -j REDIRECT --to-ports 3128
где 192.168.0.253 - локал.адрес шлюза


"Sqid через фаервол"
Отправлено crash , 19-Окт-07 02:28 
>[оверквотинг удален]
>>>
>>>перенаправляй с 80 на 3128, а не наоборот
>>
>>а разве не так сделано?
>
>Понятия не имею... Но у автора темы:
>
>1. В фаерволе стоит перенапровление с 3128 на 80 8080 поры
>2. ${fwcmd} add fwd 127.0.0.1,3128 tcp from any to any 80,8080 in
>

вообщето тут написано что если пакеты идут на порт 80 или 8080, то перенаправить их на ip 127.0.0.1 порт 3128.
Или я отстал от жизни?


"Sqid через фаервол"
Отправлено konst , 19-Окт-07 02:51 
>[оверквотинг удален]
>>
>>Понятия не имею... Но у автора темы:
>>
>>1. В фаерволе стоит перенапровление с 3128 на 80 8080 поры
>>2. ${fwcmd} add fwd 127.0.0.1,3128 tcp from any to any 80,8080 in
>>
>
>вообщето тут написано что если пакеты идут на порт 80 или 8080,
>то перенаправить их на ip 127.0.0.1 порт 3128.
>Или я отстал от жизни?

Не ЗНАЮ!!! (синтаксиса ipfw)
Я исхожу из утверждений автора темы:
1) если в броузере указать proxy и порт - все идет через squid
2) если в броузере указать "не использовать прокси" - все идет напрямую

=> значит проброска 80->3128 не работает



"Sqid через фаервол"
Отправлено Free_Man , 19-Окт-07 18:24 
>вообщето тут написано что если пакеты идут на порт 80 или 8080,
>то перенаправить их на ip 127.0.0.1 порт 3128.
>Или я отстал от жизни?
>Я бы сказал, блин...
>Если 1-е сообщение темы соответствует действительности, то у Вас и так все работает. >Все что нужно, пустить запросы на 80-й порт с локал.машин -> 3128.
>ВСЕ! Если я чего-то не понимаю - поясните для дурака: какая проблема, какая задача?

У меня на работе ~50 компов. Нужно раздавать им всем интернет через FreeBSD. Но делать так чтобы никаких прокси не прописывать в настройках клиентских машин, в IE 192.168.1.1 порт 3128. Организовать с помошью Squid и firewall. В Squid я прописал сайты, ip  которые запрещены. В фаерволе порты которые открыты. В фаерволе стоит строка:
${fwcmd} add fwd 127.0.0.1,3128 tcp from any to any 80,8080 in
фаервол должен перенаправить пакеты с портов 80 8080 в squid. Который в свою очередь запретит то что у него прописано в конфигурационном файле. В ядро я добавил строки которые уже тут описывал.
При команде : /etc/netstart выдается
ipfw: getsockopt(IP_FW_ADD): Invalid argument
FreeBSD не понимает "ipfw" поэтому не работет Squid. Если принужденно прописать прокси в IE то запреты на те сайты которые я ограничел срабатывают и пользователь видет некое предупреждение которое выдает Squid.


"Sqid через фаервол"
Отправлено Lindows , 19-Окт-07 20:28 
>[оверквотинг удален]
>В фаерволе порты которые открыты. В фаерволе стоит строка:
>${fwcmd} add fwd 127.0.0.1,3128 tcp from any to any 80,8080 in
>фаервол должен перенаправить пакеты с портов 80 8080 в squid. Который в
>свою очередь запретит то что у него прописано в конфигурационном файле.
>В ядро я добавил строки которые уже тут описывал.
>При команде : /etc/netstart выдается
>ipfw: getsockopt(IP_FW_ADD): Invalid argument
>FreeBSD не понимает "ipfw" поэтому не работет Squid. Если принужденно прописать прокси
>в IE то запреты на те сайты которые я ограничел срабатывают
>и пользователь видет некое предупреждение которое выдает Squid.

Скомпилируй ядро со следующими параметрами:
options   IPFIREWALL
options   IPFIREWALL_VERBOSE
options   IPFIREWALL_VERBOSE_LIMIT=1000
options   IPFIREWALL_FORWARD
options   IPDIVERT
options   IPFIREWALL_DEFAULT_TO_ACCEPT (В этом случае последней строчкой ipfw list
будет 65535 allow ip from any to any)

В /etc/rc.conf
gateway_enable="YES"
firewall_enable="YES"
firewall_script="/etc/rc.ipfw"
squid_enable="YES"

В /etc/rc.ipfe перенаправление на 127.0.0.1 3128



"Sqid через фаервол"
Отправлено Free_Man , 21-Окт-07 23:41 
>[оверквотинг удален]
>options   IPFIREWALL_DEFAULT_TO_ACCEPT (В этом случае последней строчкой ipfw list
>будет 65535 allow ip from any to any)
>
>В /etc/rc.conf
>gateway_enable="YES"
>firewall_enable="YES"
>firewall_script="/etc/rc.ipfw"
>squid_enable="YES"
>
>В /etc/rc.ipfe перенаправление на 127.0.0.1 3128

Ядро я перекомпилировал добовлял IPFIREWALL_FORWARD, FreeBSD не понимает команду fwd поэтому и пишет ipfw: getsockopt(IP_FW_ADD): Invalid argument
А перенапровление у меня и так есть только в rc.firewall, если я переделываю на
firewall_script="/etc/rc.ipfw" то инета нет ....


"Sqid через фаервол"
Отправлено Lindows , 22-Окт-07 20:44 
>[оверквотинг удален]
>>firewall_script="/etc/rc.ipfw"
>>squid_enable="YES"
>>
>>В /etc/rc.ipfe перенаправление на 127.0.0.1 3128
>
>Ядро я перекомпилировал добовлял IPFIREWALL_FORWARD, FreeBSD не понимает команду fwd поэтому и
>пишет ipfw: getsockopt(IP_FW_ADD): Invalid argument
>А перенапровление у меня и так есть только в rc.firewall, если я
>переделываю на
>firewall_script="/etc/rc.ipfw" то инета нет ....

1) Что бы заработал fwd вставь в конфиг ядра options IPDIVERT
2)rc.firewall это конфиг фаервола по умолчанию а rc.ipfw собственноручно сделаный конфиг. Создай такой файл в /etc и пропиши свои правила. И будет у тебя все, включая и инет!


"Sqid через фаервол"
Отправлено Free_Man , 23-Окт-07 11:56 
>1) Что бы заработал fwd вставь в конфиг ядра options IPDIVERT
>2)rc.firewall это конфиг фаервола по умолчанию а rc.ipfw собственноручно сделаный конфиг. Создай
>такой файл в /etc и пропиши свои правила. И будет у
>тебя все, включая и инет!

мое ядро
options     IPFIREWALL
options     IPFIREWALL_VERBOSE
options     IPFIREWALL_VERBOSE_LIMIT=10
options     IPFIREWALL_FORWARD
options     IPDIVERT
options     DUMMYNET

Я уж и лимит 100 делал и как тут рекомендовали добовлял
options   IPFIREWALL_DEFAULT_TO_ACCEPT (В этом случае последней строчкой ipfw list
будет 65535 allow ip from any to any). Но все безрезультатно  


"Sqid через фаервол"
Отправлено Free_Man , 25-Окт-07 21:22 
Всем спасибо за советы и понимание:) У меня все получилось, проблема как ни странно была в ядре:(
я компилировал с помощью команды :
cd /usr/src/
make kernel KERNCONF=my
залез в handbook там
Сборка ядра
Перейдите в каталог /usr/src:
# cd /usr/src
Сборка ядра
# make buildkernel KERNCONF=my
Установка ядра
# make installkernel KERNCONF=my



"Sqid через фаервол"
Отправлено straker , 17-Окт-07 06:45 
А форвард в ядре включен??? Если ядро стандартное, то надо подгрузить модуль ядра.

"Sqid через фаервол"
Отправлено yo , 18-Окт-07 10:51 
${fwcmd} add fwd 127.0.0.1,3128 tcp from any to any 80,8080 in

не профи, но это.. когда настраивал сквид на локальной тачке, то было подобное правило, только без in. Так вот оно само себя заворачивало. Т.е. сквид сам заворачивался на себя же. В лога сквидо было че-то про loop/зацикливание.

если надо заворачивать только из сети, то может лучше убрать это правило, т.к. ниже у тебя есть правило для локалки.

свою проблемку исправил вот так:
${fwcmd} add fwd 127.0.0.1,3128 tcp from me to any 80,8080 !uid squid

!uid squid - т.е. не давать заворачивать себя...
при условии что squid работает под юзером squid
вот.


"Sqid через фаервол"
Отправлено Kos , 18-Окт-07 11:20 
в squid.conf есть упоминание про транспарент?
например:
http_port 192.168.1.2:3128 transparent

"Sqid через фаервол"
Отправлено Lindows , 18-Окт-07 21:49 
в squid.conf  
http_port 127.0.0.1:3128 transparent

в rc.ipfw

${FwCMD} add fwd 127.0.0.1,3128 tcp from ${NetIn}/${NetMask} to any 80 via ${LanOut}
${FwCMD} add divert natd ip from ${NetIn}/${NetMask} to any out via ${LanOut}
${FwCMD} add divert natd ip from any to ${IpOut} in via ${LanOut}

NetIn - внутренняя сетка
LanOut - внешняя сетка


"Sqid через фаервол"
Отправлено Free_Man , 18-Окт-07 23:23 
при команде : /etc/netstart выдается
ipfw: getsockopt(IP_FW_ADD): Invalid argument
читал что в ядро надо вставить команду чтоб фаервол понимал ipfw...
в ядро у меня добавлено
options     IPFIREWALL
options     IPFIREWALL_VERBOSE
options     IPFIREWALL_VERBOSE_LIMIN="10"
options     IPFIREWALL_FORWARD_EXTENDED
options        IPDIVERT
options        DUMMINET

пробывал
options     IPFIREWALL_FORWARD_EXTENDED
и  
options     IPFIREWALL_FORWARD
но все равно ipfw: getsockopt(IP_FW_ADD): Invalid argument
может подскажите что добавить?


"Sqid через фаервол"
Отправлено konst , 18-Окт-07 23:43 
>может подскажите что добавить?

Я бы сказал, блин...
Если 1-е сообщение темы соответствует действительности, то у Вас и так все работает. Все что нужно, пустить запросы на 80-й порт с локал.машин -> 3128.
ВСЕ!

Если я чего-то не понимаю - поясните для дурака: какая проблема, какая задача?