Какую версию взять под задачи?



  • Предистория.
    В одном дальнем офисе уже используется pFsense 2.0 BETA 4.  В принципе пока нравится. Был выявлен один странный баг. Настройки OpenVPN клиента применялись методом "save + reboot".  На поиски чего и было убито два дня.

    Есть головной офис маленького ИЧП.
    Два физических интерфейса в интернет.  wan1  wan2
    Физический интерфейс "VPN" L2.
    И конечно физический интерфейс в LAN.

    Есть два офиса связь с которыми осуществляется через физический интерфейс VPN (у этих офисов других каналов связи нет).
    При этом есть удаленный офис доступный только через интернет (вот там и есть pFsense 2.b4).
    И есть офис, доступный часто через интерфейс VPN, иногда через интернет.

    Сейчас это дело разруливает FreeBSD 8.0.  Но специалист настроивший нам кусочек счастья - уволился. Нового брать не хотят. В поисках условно простой системы администрирования, с условием опыта эксплуатации pFsense возникла Мысль - перевести все офисы со шлюзов с консольной FreeBSD на версию с веб админкой.

    В головном офисе нужно (хочется) разрулить трафик между WAN (по приоритетам, по удаленным хостам, по протоколам, ).  При падении одного из каналов - соответственно весь трафик зарулить в живой. При поднятии - вернуть "как было".

    Поднять OpenVPN сервер, и гонять трафик к удаленным офисам только внутри VPN, даже если между ними "прямой провод" физического интерфейса VPN. Учредителю с ноута по PPtP ходить на локальные ресурсы и пугать планктон распечатывая "я бумажко ползу к владелицу" на сетевых принтерах.

    В головном офисе SIP Asterisk. В дальних офисах телефонов пока нет и других не предвидится. Соответственно из дальних офисов обеспечить коннект с Asterisk.

    Ну и в силу того что народ оборзел и ничего не боится, зарезать всякие вконтактики и одноглазиков вместе с порнотубами. Часть сайтов зарезать вовсе. Часть запретить избранным, части избранных разрешить всё. Запретить ходить из LAN на "неправильные" порты. торренты и дома можно покачать.

    Установленная сейчас FreeBSD не умеет ограничивать скорость. Не умеет переключать wan1-wan2.

    Поставил в виртуалку pFsense 2.0B5  Сразу возникают вопросы:

    1. transparent squid вроде как работает.
    2. LightSquid не создает репортов
    3. SquidGuard установился, но ничего не ограничивает.
    4. Нужен ли FreeSWITCH  в качестве локального прокси для конкретного дальнего офиса, или лучше всех напрямую заводить на центральный Asterisk?

    Посоветуйте что нибудь, или отговорите на что нибудь другое.



  • @StanislawK:

    Поставил в виртуалку pFsense 2.0B5   Сразу возникают вопросы:

    1. transparent squid вроде как работает.
    2. LightSquid не создает репортов
    3. SquidGuard установился, но ничего не ограничивает.
    4. Нужен ли FreeSWITCH  в качестве локального прокси для конкретного дальнего офиса, или лучше всех напрямую заводить на центральный Asterisk?

    1. OK
    2. Неизчего их создавать - проверьте логи сквида.
    3. Нужно настроить - само не ограничит.



  • @dvserg:

    @StanislawK:

    Поставил в виртуалку pFsense 2.0B5   Сразу возникают вопросы:

    1. transparent squid вроде как работает.
    2. LightSquid не создает репортов
    3. SquidGuard установился, но ничего не ограничивает.
    4. Нужен ли FreeSWITCH  в качестве локального прокси для конкретного дальнего офиса, или лучше всех напрямую заводить на центральный Asterisk?

    1. OK
    2. Неизчего их создавать - проверьте логи сквида.
    3. Нужно настроить - само не ограничит.

    1 сомнительно. ip.yandex.ru про прокси молчит. x-forward-for, и тп типичное отсутствует напрочь.

    2 ну так я специально лазал через него (pfsense as default router, squid as transparent) и в то время, когда pfsense перезагружался инет не работал. и лог сквида в принципе сайты записал. я смотрел.

    3 настроить - ясное дело. как настроить?  SquidGuard установленный по умолчанию тянет с собой пачку пресетов. несколько десятков групп с названиями "прон" "адсенс" и прочий "цп". а тут вебморда непонятная. в чем и состоит претензия на 90%.



  • Я может быть, если внедрение пройдет хорошо, поспособствую в организации вебморды к squidguard. Чисто из ненависти к рекламе.

    Есть ли мануал, как\на чем писать вебморды к pFsense?



  • В LS есть кнопка обновить. Что с ним за проблемы? Первоначальную настройку сделали?
    По squidGuardкакие претензии/предложения к интерфейсу?



  • @dvserg:

    В LS есть кнопка обновить. Что с ним за проблемы? Первоначальную настройку сделали?
    По squidGuardкакие претензии/предложения к интерфейсу?

    Кнопка есть, но нажимай ты её не нажимай, ручками ли запускаем lightparser.pl результат один:

    LigthSquid diagnostic.
    Error : report folder '/var/lightsquid/report' not contain any valid data!

    Это для 2.0-BETA5 (i386)  в 4 бете тоже самое.

    К squidGuard претенизий нет, есть пожелание в штатной установке сразу иметь пресеты Destination. Чтобы не забивать руками.

    Вот почему, при аплоаде блэклитса (с http://www.shallalist.de/ например)  на закладке Destination пусто?  Я буквально случайно сунулся создавать новый ACL и увидел что там появились Destination categories (и то, когда сделал click). Сам вид этих категорий, к стати, тоже неудобен. строчки расползлись широко и сложно отследить к чему относится acces.



  • @StanislawK:

    @dvserg:

    В LS есть кнопка обновить. Что с ним за проблемы? Первоначальную настройку сделали?

    Кнопка есть, но нажимай ты её не нажимай, ручками ли запускаем lightparser.pl результат один:

    LigthSquid diagnostic.
    Error : report folder '/var/lightsquid/report' not contain any valid data!

    Это для 2.0-BETA5 (i386)  в 4 бете тоже самое.

    Проверьте разрешения на файл /var/squid/log/access.log. У меня 640/proxy

    @StanislawK:

    К squidGuard претенизий нет, есть пожелание в штатной установке сразу иметь пресеты Destination. Чтобы не забивать руками.

    Какие именно? С ним идет уже sample база 2002 года давности. Можно скачать и установить http://www.shallalist.de/Downloads/shallalist.tar.gz базу.



  • Ладно. с внешним видом ACL s squidGuard разобрался. Мне так больше нравится.

    Правка пары строк в одной функции  файлик: /usr/local/pkg/squidguard.inc

    
    # -----------------------------------------------------------------------------
    # make_grid_controls
    # -----------------------------------------------------------------------------
    function make_grid_controls($type, $items, $enable_overtime = true) {
        global $g;
    
        $res = '';
        $tbl = '';
        $color = '';
        $color2 = '';
        $x = 0;
    
        foreach($items as $item) {
            if ($x === 0) {
                $color = 'style="background-color: #ccffcc;"';
                $color2 = 'style="background-color: #dddddd;"';
                $x = 1;
            }
            else {
                $color = 'style="background-color: #dddddd;"';
                $color2 = 'style="background-color: #ccffcc;"';
                $x = 0;
            }
    
            $name    = trim($item['name']);
            $upt_val = $item['upt_value'];
            $ovt_val = $item['ovt_value'];
            $description = $item['description'];
    
            if (!$name) continue; # skip empty
    
            $sel = "selected=\"selected\"";
            $upt_A = $upt_B = $upt_C = $upt_D = '';
            switch($upt_val) {
                case "allow": $upt_B = $sel; break;
                case "white": $upt_C = $sel; break;
                case "deny" : $upt_D = $sel; break;
                default:      $upt_A = $sel; break;
            }
    
            $ovt_A = $ovt_B = $ovt_C= $ovt_D = '';
            switch($ovt_val) {
                case "allow": $ovt_B = $sel; break;
                case "white": $ovt_C = $sel; break;
                case "deny" : $ovt_D = $sel; break;
                default:      $ovt_A = $sel; break;
            }
            unset($sel);
    
            $tbl .= "";
            # uptime table
            $tnm  = PREF_UPTIME . $name;
            $tbl .= "<select id="$tnm" name="\&quot;$tnm\&quot;">";        if ($name !== "all"/*substr_count($name, "all") === 0*/) {            $tbl .= "<option value="none&nbsp;" name="\&quot;----\&quot;&nbsp;" $upt_a="">----</option>";            $tbl .= "<option value="white" name="\&quot;white\&quot;" $upt_c="">whitelist</option>";            $tbl .= "<option value="deny&nbsp;" name="\&quot;deny\&quot;&nbsp;" $upt_d="">deny</option> ";            $tbl .= "<option value="allow" name="\&quot;allow\&quot;" $upt_b="">allow</option>";        }        else {            $tbl .= "<option value="allow" name="\&quot;allow\&quot;" $upt_b="">allow</option>";            $tbl .= "<option value="deny&nbsp;" name="\&quot;deny\&quot;&nbsp;" $upt_d="">deny</option> ";        }        $tbl .= "";        $tbl .= "access to";        $tbl .= "$description [$name]";        $tbl .= " ";        # overtime table        if ($enable_overtime) {            $tnm  = PREF_OVERTIME . $name;            $tbl .= "</select>";
                if ($name !== "all"/*substr_count($name, "all") === 0*/) {
                    $tbl .= "<option value="none&nbsp;" name="\&quot;----\&quot;&nbsp;" $ovt_a="">----</option>";
                    $tbl .= "<option value="white" name="\&quot;white\&quot;" $ovt_c="">whitelist</option>";
                    $tbl .= "<option value="deny&nbsp;" name="\&quot;deny\&quot;&nbsp;" $ovt_d="">deny</option> ";
                    $tbl .= "<option value="allow" name="\&quot;allow\&quot;" $ovt_b="">allow</option>";
                }
                else {
                    $tbl .= "<option value="allow" name="\&quot;allow\&quot;" $ovt_b="">allow</option>";
                    $tbl .= "<option value="deny&nbsp;" name="\&quot;deny\&quot;&nbsp;" $ovt_d="">deny</option> ";
                }
                $tbl .= "";
                $tbl .= "access to";
                $tbl .= "$description [$name]";
                $tbl .= " ";
            }
            $tbl .= "";
        }
    
        # header
        if (!empty($tbl)) {
            $color = 'style="background-color: #dddddd;"';
            $thdr = '';
            $hdr1up = "<big>Destination Categories</big>";
            $hdr1ov = "<big>Destination Categories in overtime</big>";
            $hds3   = "ACCESS: 'whitelist' - always pass; 'deny' - block; 'allow' - pass, if not blocked.";
            if ($enable_overtime) {
                $thdr .= "$hds3";
                $thdr .= "$hdr1up$hdr1ov";
                $thdr .= "If **'Time'** not defined, this is column will be ignored.";
                # formatting
    ######### $thdr .= "";
            }
            else {
                $thdr .= "$hds3
    
    * * *
    
    ";
                $thdr .= "$hdr1up";
                # formatting
    ######### $thdr .= "";
            }
    
            $res .= " $thdr $tbl 
    
    ";
    
            $rstyle = "";
            $ha = "" .
                  "" .
                  "<big>Destination Categories (click)</big> " .
                  "![](./themes/{$g[ "Show rules") " .
                  "" .
                   "" .
                  "![](./themes/{$g[ "Hide rules")" .
                  "" .
                  "";
            $res = "
    
    * * *
    
    $ha$res";
    
        }
        return $res;
    } 
    ``` ![pfsense-squidguard-acl.jpg](/public/_imported_attachments_/1/pfsense-squidguard-acl.jpg)
    ![pfsense-squidguard-acl.jpg_thumb](/public/_imported_attachments_/1/pfsense-squidguard-acl.jpg_thumb)


  • Ну это конечно на вкус и цвет. Мне больше нравятся "корпоративные" цвета.



  • В общем то без разницы какие цвета, если они не режут глаз и не мешают восприятию информации. В данном случае читабельность улучшилась за счет выделения  строки и перемены мест колонок. В серединке пустая колонка тоже удачно разделяет.



  • @StanislawK:

    В общем то без разницы какие цвета, если они не режут глаз и не мешают восприятию информации. В данном случае читабельность улучшилась за счет выделения  строки и перемены мест колонок. В серединке пустая колонка тоже удачно разделяет.

    В идеале хотелось-бы иметь вместо скрытой таблички табличку в скроллбоксе строк так на 5-7.



  • @dvserg:

    @StanislawK:

    @dvserg:

    В LS есть кнопка обновить. Что с ним за проблемы? Первоначальную настройку сделали?

    Кнопка есть, но нажимай ты её не нажимай, ручками ли запускаем lightparser.pl результат один:

    LigthSquid diagnostic.
    Error : report folder '/var/lightsquid/report' not contain any valid data!

    Это для 2.0-BETA5 (i386)  в 4 бете тоже самое.

    Проверьте разрешения на файл /var/squid/log/access.log. У меня 640/proxy

    Да. права правильные. Я его удалял по ssh. Squid сам и создавал со своими правами.

    -rw-r–---  1 proxy  proxy    0B Jan 26 00:00 access.log

    @dvserg:

    @StanislawK:

    К squidGuard претенизий нет, есть пожелание в штатной установке сразу иметь пресеты Destination. Чтобы не забивать руками.

    Какие именно? С ним идет уже sample база 2002 года давности. Можно скачать и установить http://www.shallalist.de/Downloads/shallalist.tar.gz базу.

    Не так. Допустим пресеты там есть. Только почему их не видно на "табе"  Destination ?
    Я увидел что там пусто, скачал и установил один набор, опять пусто. Скачал установил другой набор - пусто. и так 5 раз. только заглянув в логи увидел что оно качает и устанавливает. а так - полное впечатление что нихренчего не работает.
    Это только случайность, что я в ACL попробовал создать ACL и увидел там в Destination в свернутом виде.
    А поредактировать их? я может быть свой один любимый прон сайт исключить хочу?



  • Да. squid/log/access.log пустой.    не смотря на галочку transparent proxy  запросы идут мимо сквида.
    в Firewall нет ничего похожего на правило, по редиректу запросов на 80 порт в squid.

    Руками из вебморды не создается.



  • Destinations - это user-defined списки. Подредактировать/сохранить блэклисты через Гуй не получится, т.к. гонять файлы в 14 метров смысла нет. Для любимых порносайтов создаем в Destinations новую категорию с нашим сайтом, а в ACL выбираем для него access='white'. Это будет разрешать категорию ДО любого запрета.

    Что касается загрузки блэклистов - да, есть такое неудобство. Думаю, как только будет решен вопрос с совместимости кода с 2.0 и с 1.2.3, появится немного переработанный вариант управления загрузкой (прогресс, логи обработки).

    @StanislawK:

    Да. squid/log/access.log пустой.    не смотря на галочку transparent proxy  запросы идут мимо сквида.
    в Firewall нет ничего похожего на правило, по редиректу запросов на 80 порт в squid.

    Руками из вебморды не создается.

    Прямое указание браузеру использовать прокси эффекта не дает тоже?



  • @dvserg:

    Destinations - это user-defined списки. Подредактировать/сохранить блэклисты через Гуй не получится, т.к. гонять файлы в 14 метров смысла нет. Для любимых порносайтов создаем в Destinations новую категорию с нашим сайтом, а в ACL выбираем для него access='white'. Это будет разрешать категорию ДО любого запрета.

    Что касается загрузки блэклистов - да, есть такое неудобство. Думаю, как только будет решен вопрос с совместимости кода с 2.0 и с 1.2.3, появится немного переработанный вариант управления загрузкой (прогресс, логи обработки).

    В свежем один на 18 метров с проном, один на 1 метр, и все. Остальные смешного объема. Можно вполне придумать редактор, с постраничным (килобайт по 100-300 \ или строк по 100-300) листанием.

    @dvserg:

    @StanislawK:

    Да. squid/log/access.log пустой.    не смотря на галочку transparent proxy  запросы идут мимо сквида.
    в Firewall нет ничего похожего на правило, по редиректу запросов на 80 порт в squid.
    Руками из вебморды не создается.

    Прямое указание браузеру использовать прокси эффекта не дает тоже?

    Прямое дает.



  • На 2.0 должны быть файлы в /tmp вида pkg чего-то-там rules, в которых правила для указанного пакета (если они формируются). И что еще говорится в syslog ?



  • pFsense 2.0 beta 5 + SQUID 2.7.9_4

    Достаточно ли в веб конфигураторе установить кыржик "Transparent proxy    v"
    или необходимо произвести еще и некие нелепые телодвижения?



  • @dvserg:

    На 2.0 должны быть файлы в /tmp вида pkg чего-то-там rules, в которых правила для указанного пакета (если они формируются).

    имеется в виду rules.debug с активными правилами pf ?
    там только одно упоминание порта 80 (оно же единственное и для HTTP)

    pass  out  proto tcp  from any to any port 80  queue (qOthersDefault,qACK)  label "USER_RULE: m_Other HTTP outbound"

    @dvserg:

    И что еще говорится в syslog ?

    Jan 26 12:43:36 pfsense avahi-daemon[47806]: Server startup complete. Host name is pfsense.mrc.local. Local service cookie is 2343502676.
    Jan 26 12:43:37 pfsense avahi-daemon[47806]: Service "pfsense" (/usr/local/etc/avahi/services/ssh.service) successfully established.
    Jan 26 12:43:37 pfsense avahi-daemon[47806]: Service "SFTP File Transfer on pfsense" (/usr/local/etc/avahi/services/sftp-ssh.service) successfully established.
    Jan 26 12:43:39 pfsense Squid_Alarm[12410]: Squid has exited.  Reconfiguring filter.
    Jan 26 12:43:39 pfsense Squid_Alarm[12899]: Attempting restart…
    Jan 26 12:43:39 pfsense squid[14126]: Squid Parent: child process 14673 started
    Jan 26 12:43:42 pfsense Squid_Alarm[15704]: Reconfiguring filter…
    Jan 26 12:43:43 pfsense Squid_Alarm[30982]: Squid has resumed. Reconfiguring filter.
    Jan 26 12:50:07 pfsense php: /pkg_edit.php: Reloading Squid for configuration sync
    Jan 26 12:50:07 pfsense check_reload_status: reloading filter
    Jan 26 12:50:08 pfsense check_reload_status: syncing firewall
    Jan 26 12:50:08 pfsense check_reload_status: reloading filter
    Jan 26 12:50:09 pfsense php: /pkg_edit.php: Reloading Squid for configuration sync
    Jan 26 12:50:09 pfsense check_reload_status: reloading filter



  • @StanislawK:

    pFsense 2.0 beta 5 + SQUID 2.7.9_4

    Достаточно ли в веб конфигураторе установить кыржик "Transparent proxy    v"
    или необходимо произвести еще и некие нелепые телодвижения?

    Должно быть достаточно.

    Правило вида
    rdr on $iface proto tcp from any to !($iface) port 80 -> 127.0.0.1 port 80



  • Друзья, а не научились ещё пфСенсе запихивать на железки?
    Счас стоит системник старый, неплохо было бы на какой-нибудь роутер залить пфСенсе.. И стоял бы он как модем, малюсенький :)



  • про это тебе сюда







  • Обоснуй, почему дорого. По мне - так вполне достойная цена.



  • Ясно, значет пока нет.. Данке шён :)


Log in to reply