• проблема с Captive Portal!

    Locked
    6
    0 Votes
    6 Posts
    2k Views
    N
    А свободных подключений (states) много свободных?
  • Не могу отследить ошибку

    Locked
    10
    0 Votes
    10 Posts
    3k Views
    R
    Проблема найдена HAVP в режиме parent for squid
  • 0 Votes
    2 Posts
    1k Views
    werterW
    @toreadorufa: Pfsnese по умолчанию не позволяет отправлять письма (2.0.1 release) Блокирует все письма вложения которых превышает 50Kb! Стоит прокси но даже с отключенным Transparent proxy тоже самое  ??? Где копать? Уже кучу времени убил пытаясь найти ответ на вопрос как сделать нормальную отправку почты через Outlook Express или TheBat! Бред. Я еще с версии 1.2.3 (сейчас на 2.0.1) отправляю МЕГАБАЙТы почтой. И аутлуком и мышей летучей. И сквид у меня в транспаренте. Всё ок. Ищите причину в другом - настройки почтового клиента, пермишены на почтовом сервере (!!!), фаерволл на клиенте. PF здесь не причем. P.s. Порты для почты в fw открыты ?
  • при подключении PPPoЕ разрывы соединения

    Locked
    2
    0 Votes
    2 Posts
    1k Views
    N
    для PfSense 1.2.3 на интерфейсе WAN PPPoE configuration "Idle timeout  seconds"  поставь 0
  • PfSense как сервер обновления ESET NOD32

    Locked
    5
    0 Votes
    5 Posts
    4k Views
    N
    Вроде авторских прав на скрипт не было так что вот: 1. Скрипт обновления баз #!/bin/bash ## Путь к базам данных PATHN=/var/lib/nod32/mirror3 # Имя пользователя login_name="EAV-xxxxxxxxxxxx" # Пароль password="xxxxxxxxxxxxxxxxx" RAR=/usr/bin/unrar ## Адреса серверов обновлений (адреса дб без /nod_upd) URLN0=http://um10.eset.com URLN1=http://um12.eset.com #URLN2=http://89.202.157.227 URLN2=http://um14.eset.com #URLN3=http://62.67.184.68 URLN3=http://um16.eset.com set -x if [ -n "$login_name" ]; then     url2="/eset_upd" else     secret=""     url2="" fi        if [ $URLN = "http://update.eset.com" ]; then     url2="/eset_eval" fi set +x cd $PATHN/arc rm -f update.ver # Получаем свежий update.ver URLNn=$URLN0 wget -c --http-user=$login_name --http-password=$password $URLNn$url2/update.ver if [ $? -eq 1 ]; then URLNn=$URLN1 wget -c --http-user=$login_name --http-password=$password $URLNn$url2/update.ver   if [ $? -eq 1 ]; then URLNn=$URLN2 wget -c --http-user=$login_name --http-password=$password $URLNn$url2/update.ver else     echo "Не могу получить update.ver"     exit 1   fi fi if [ -n "$login_name" -o -n "url2" ]; then     mv update.ver update.rar     $RAR x -y update.rar     code1=$?     if [ $code1 -eq 1 ]; then         cp update.rar update.ver     fi     rm update.rar fi cd $PATHN # Функция записи данных в файл update.ver func1 () { echo "[$1]" >> update.ver version=`echo "$2" | grep -a -m1 version= | cut -d "=" -f2| col` echo "version=$version" >> update.ver platform=`echo "$2" | grep -a -m1 platform= | cut -d "=" -f2| col` echo "platform=$platform" >> update.ver versionid=`echo "$2" | grep -a -m1 version= | cut -d "=" -f2| cut -d " " -f1 | col` if [ -z "$versionid" ]; then versionid=0 fi  echo "versionid=$versionid" >> update.ver type=`echo "$2" |  grep -a -m1 type= | cut -d "=" -f2| col` echo "type=$type" >> update.ver GROUP=`echo "$2" | grep -a -m1 group= | cut -d "=" -f2| col` echo "group=$GROUP" >> update.ver date1=`echo "$2" | grep -a -m1 "date=" | cut -d "=" -f2| col` echo "date=$date1" >> update.ver echo "file=$3" >> update.ver buildregname=`echo "$2" | grep -a -m1 buildregname= | cut -d "=" -f2|cut -d "\"" -f2| col` echo "buildregname=$buildregname" >> update.ver build=`echo "$2" | grep -a -m1 build= | cut -d "=" -f2| col` echo "build=$build" >> update.ver level=`echo "$2" | grep -a -m1 level= | cut -d "=" -f2| col` echo "level=$level" >> update.ver base=`echo "$2" | grep -a -m1 base= | cut -d "=" -f2| col` echo "base=$base" >> update.ver category=`echo "$2" | grep -a -m1 category= | cut -d "=" -f2| col` echo "size=$4" >> update.ver echo "category=$category" >> update.ver echo  >> update.ver     } fileok=`grep -m1 "ENGINE0" arc/update.ver | col` if [ $fileok == "[ENGINE0]"  ]; then     upd_new=`cat arc/update.ver | col`     rm update.ver     # Находим перечень проверяемых файлов     nodfiles=`ls -1 *.nup`     # Для каждого файла делаем проверку     for row in $nodfiles; do text=`head -17 $row` # Название секции section=`echo "$text" | grep -a -m1 name= | cut -d "=" -f2| col` # Название билда build_old=`echo "$text" | grep -a -m1 build= | cut -d "=" -f2| col` # Выделяем секцию в 14 строк с началом названия секции text_new=`echo "$upd_new"| grep -A14 "\[$section\]"` # Находим его номер build_new=`echo "$text_new" |grep build= | cut -d "=" -f2 ` # Находим путь до файла path_new=`echo "$text_new" |grep file= | cut -d "=" -f2 ` # Находим название файла files_new=`basename "$path_new"` # Находим размер файла на диске size_old=`ls -l $row | awk '{print $5}'` # Находим размер файла из update.ver size_new=`echo "$text_new" |grep size= | cut -d "=" -f2 ` # Если секция ENGENE2, то запоминаем номер версии if [ $section = ENGINE2 ]; then     version_old=`echo "$text" | grep version= | cut -d "=" -f2`     version_new=`echo "$text_new" |grep version= | cut -d "=" -f2 ` fi    # Если этот файл есть в update.ver if [ -n "$build_new" ]; then          # Если номер билда не совпадает     if [ $build_old -lt $build_new ];  then echo " Номер билда $build_old и $build_new не совпадает" echo "Удаляем старый $row и загружаем $files_new" rm -f $row wget -c --http-user=$login_name --http-password=$password $URLNn/$path_new if [ $? -eq 1 ]; then     echo "Ошибка загрузки файла $files_new"     exit 1 fi    text=`head -14 $files_new` row=$files_new     # Если билды равны     elif [ $build_old -eq $build_new ];  then # Проверяем если размер файлов совпадает if [ $size_old -eq $size_new ]; then     # Проверяем если названия файлов не совпадают     if [ $files_new != $row ]; then echo "Переименовываем $row в $files_new" mv $row $files_new row=$files_new     fi else     echo "Размеры файлов $files_new и $row не совпадают"     echo "Удаляем старый $row и загружаем $files_new"     rm -f $row     wget -c --http-user=$login_name --http-password=$password $URLNn/$path_new     if [ $? -eq 1 ]; then         echo "Ошибка загрузки файла $files_new" exit 1     fi        # Определяем размер полученого файла     size_wget=`ls -l $files_new | awk '{print $5}'`     text=`head -14 $files_new`     row=$files_new     # Сравниваем его с размером из update.ver #    if [ $size_wget -ne $size_new ]; then # echo "Размер файла $row не совпадает с данными из update.ver" # exit 1 #  fi     fi     # Если новый билд меньше старого     elif [ $build_old -gt $build_new ];  then # Проверяем если названия файлов не совпадают if [ $files_new != $row ]; then     echo "Переименовываем $row в $files_new"     mv $row $files_new     row=$files_new fi     fi     # Определяем размер файла на диске     size=`ls -l $row | awk '{print $5}'`     # Записываем данные о файле в файл update.ver     if [ -n "`grep $section arc/name_section1`" ]; then func1 $section "$text" $row $size     fi     else     # Если файл есть, но его нет в полученом update.ver,     # то проверяем нужен ли он и если нужен, то добавляем в update.ver     size=`ls -l $row | awk '{print $5}'`     if [ -z "`grep $section arc/name_section3`" ]; then if [ -n "`grep $section arc/name_section1`" ]; then     func1 $section "$text" $row $size else         # Если файл не нужен, то удаляем     echo "Удаляем ненужный файл $row"     rm -f $row fi        else # Если файл не нужен, то удаляем echo "Удаляем ненужный файл $row" rm -f $row        fi         fi     done     # Если в базе не все файлы, то недостающие надо докачать     # Находим перечень всех секций в update.ver     section_all=`echo "$upd_new" |grep "\["`     # Для каждой секции делаем     for sec1 in $section_all; do sec=`echo $sec1 | cut -d "[" -f2 | cut -d "]" -f1` # Если данные этой секции нужны if [ -n "`grep $sec arc/name_section1`" ]; then # Выделяем секцию в 13 строк с началом названия секции text_new=`echo "$upd_new"| grep -A13 "\[$sec\]"` # Находим его номер билда build_new=`echo "$text_new" |grep build= | cut -d "=" -f2 ` # Находим путь загрузки path_new=`echo "$text_new" |grep file= | cut -d "=" -f2 ` # Находим название файла files_new=`basename "$path_new"` # Если нет файла , то загрузить if [ ! -s "$files_new" ]; then        echo "файла $files_new нет - загрузить"     wget -c --http-user=$login_name --http-password=$password $URLNn/$path_new     if [ $? -eq 1 ]; then echo "Ошибка получения файла $files_new" exit 1     fi      # Выделяем секцию в 6 строк с серединой с названием файла     text_new=`echo "$upd_new"| grep -A5 -B5 $files_new`     # Определяем размер файла из update.ver     size_new=`echo "$text_new" |grep size= | cut -d "=" -f2 `     # Определяем размер полученого файла     size_wget=`ls -l $files_new | awk '{print $5}'`     # Сравниваем его с размером из update.ver #    if [ $size_wget -ne $size_new ]; then # echo "Размер файла $files_new не совпадает с данными из update.ver" # exit 1 #    fi     text=`head -17 $files_new`     # Название секции из файла     section_f=`echo "$text" | grep -a -m1 name= | cut -d "=" -f2| col`         # Добавляем сведения о файле в update.ver     if [ -n "`grep $section_f arc/name_section1`" ]; then func1 $section_f "$text" $files_new $size_new     #elif [ -n "`grep $section_f arc/name_section2`" ]; then #func2 $section_f "$text" $files_new $size_new     fi     if [ $section_f = ENGINE2 ]; then version_new=`echo "$text" |grep version= | cut -d "=" -f2 `     fi    fi     fi        done #Формируем последнюю секцию     text_new=`echo "$upd_new"| grep -A2 "\[COMPATLIST\]"`     file1=`echo "$text_new" | grep "file" | cut -d "=" -f2`     echo "$text_new" >> update.ver     echo >> update.ver     pole=`echo "$file1"| cut -b -6 `     data1=`echo "$upd_new" | grep -A10 "\[$file1\]" | grep "$pole"`     echo "$data1" >> update.ver     echo >> update.ver     echo "Old version: $version_old"     echo "New version: $version_new" else     echo "Файл update.ver - плохой"     exit 1 fi    exit 0 2. Общая логика (то что по расписанию выполняется) #!/bin/bash # Прграмма по обновлению антивирусных баз NOD32  # Путь к скриптам path_prog=/etc/upd_prog cd $path_prog # Путь до баз на веб path_html=/var/www/eset_upd dir_arc=eset_upd # Путь до баз обновления path_base=/var/lib/nod32/mirror3 if [ ! -d $path_html/nod_upd ]; then     mkdir $path_html/$dir_arc fi # Обновляем базы с интернета     /etc/upd_prog/NOD32_update3.sh if [ $? -eq 0 ]; then        # Удаляем старые файлы     rm $path_html/*.nup     # Копируем новые     cp -p $path_base/* $path_html     cp -p $path_base/update.ver $path_html/$dir_arc     # Меняем права для доступа appach     chown -R www-data $path_html/*.*     chgrp -R www-data $path_html/*.*     # Убираем все лишнее     echo "Обновление антивирусных баз OK" else     echo "Обновление антивирусных баз ERROR"     echo "Восстанавливаем базу"     # Удаляем плохие файлы файлы     rm $path_base/*.*     # Копируем старые     cp -p $path_html/* $path_base fi    echo "Время работы сценария $SECONDS с"
  • Sqstat + virtual ip lan

    Locked
    17
    0 Votes
    17 Posts
    7k Views
    S
    Спасибо, уже нашел!
  • 0 Votes
    6 Posts
    3k Views
    werterW
    @Botv0091: кроме того в статье нет правила которое бы возвращало изначального провайдера при восстановлении связи монитором. http://forum.pfsense.org/index.php?topic=49511.0#msg262645 - последний пост со скринами от nalawadesatyen . По идее , если основной линк имеет Tier 1, а резервный - Tier 2, то pf при пропадание-появление связи должен возвращать линк на tier с наименьшим значением. Пробуйте так, только не торопитесь. P.s. По поводу вашего клиента OpenVPN на pf - http://forum.pfsense.org/index.php/topic,45252.0.html . Там дискуссия большая , но пробуйте так : The way I do it is with outbound NAT + floating rules. I make sure outbound NAT applies to my OpenVPN client connection (rule for each wan, source 'any', destination of the far side of the VPN on the applicable VPN port). Then a floating rule catches the outbound VPN traffic and makes it use a failover gateway group. Interface for OpenVPN in this case is just 'any' so it uses the right source. P.s.s. Подумалось перевести оба момеда в режим bridge и пускай pf поднимает две сессии. Тем более они в одной сети с pf. И уже failover настраивать между ними. Идеально бы было перенести машину с pf в комнату к этим двум модемам (оба в бридж), воткнуть еще две сетевые (или одну + свитч), далее LAN - в общую локалку, а двумя сетевыми (WAN1 (192.168.10.2) и WAN2 (192.168.20.2))- к модемам (или в варианте со свитчем и еще одной сетевой - просто дать этой сетевой два адреса для доступа к обоим момедам (192.168.10.2 и 192.168.20.2) ). Модемам же дать адреса из др. сетей на ваш выбор (напр., 192.168.10.1 и 192.168.20.1 ). И пускай себе pf поднимает обе сессии. Ну должно быть у pf минимум ДВА интерфейса - LAN и WAN . Иначе весь его смысл как fw-ла теряется.
  • Создание пакета

    Locked
    1
    0 Votes
    1 Posts
    1k Views
    No one has replied
  • Зависает web configurator а потом и сайты

    Locked
    11
    0 Votes
    11 Posts
    4k Views
    R
    В принципе попробую удалить sarg т.к он не используется в основном…
  • Не работает онлайн статистика squid

    Locked
    17
    0 Votes
    17 Posts
    7k Views
    V
    У меня заработала после перезагрузки.
  • 0 Votes
    1 Posts
    1k Views
    No one has replied
  • Как изменить порядок интерфейсов в PF

    Locked
    7
    0 Votes
    7 Posts
    2k Views
    S
    Спасибо. Понял.
  • OpenVPN проблемы

    Locked
    4
    0 Votes
    4 Posts
    2k Views
    G
    Тогда посмотри http://blog.stefcho.eu/?p=528. И посмотри http://forum.ixbt.com/topic.cgi?id=14:40906 (п.5. Некоторые распростанённые проблемы и методы решения). Помоему это Ваш случай. Ну и http://openvpn.se/files/howto/openvpn-howto_run_openvpn_as_nonadmin.html
  • 0 Votes
    8 Posts
    3k Views
    A
    угу.. все тот же Disable NAT Reflection играюсь далее..
  • Проблема с CP в версии 2.1.0

    Locked
    2
    0 Votes
    2 Posts
    1k Views
    V
    Так, в англоязычной ветке вроде появился ответ http://forum.pfsense.org/index.php/topic,49490.0.html Буду пробовать. Проверил, предложенный патч работает не корректно. CaptivePortal заработал, но после авторизации в файервол добавляется правило шейпера на MAC-адрес, которое делает работу в интернете невозможной (2 килобита/сек).
  • 0 Votes
    5 Posts
    2k Views
    D
    @dvserg: 2 dr.gopher: не балуй людей, из поста вообще не понятно что за система - может там вообще речь про MacOS. Ок. Буду писать - телепатов нет.  ;) Пусть учатся, задавать вопросы.
  • Установка pfSense на RAID

    Locked
    3
    0 Votes
    3 Posts
    3k Views
    O
    думаю остановлюсь на софтовом gmirror, у него и мониторинг состояния в дашборде имеется. Вот только вопрос возник с gmirror, в случае, если один из хардов откажет и будет заменен на другой, каким образом можно будет восстановить этот софтовый раид ?
  • Правила в Squid

    Locked
    12
    0 Votes
    12 Posts
    6k Views
    werterW
    @Evgeny: Спасибо, попробую помочь моему товарисчу. Проблема в том, что у меня живого pfSense давно уже нет под рукой, а этот человек по-русски не понимает -) Так пусть удаленно даст Вам доступ . Какие проблемы ? Ammyy Admin , TeamViewer и т.д. никто не отменял. Или сразу правило пускай рисует для доступа в веб-морду пф, если у него "белая" статика или динамика. Или пускай впн-сервер поднимет на самом пф.  Вариантов - тьма! Зайдете удаленно и сами все сделаете.
  • Вопрос по sqstat

    Locked
    5
    0 Votes
    5 Posts
    3k Views
    S
    http_port 172.16.0.250:81 icp_port 0 pid_filename /var/run/squid.pid cache_effective_user proxy cache_effective_group proxy error_directory /usr/local/etc/squid/errors/Russian-1251 icon_directory /usr/local/etc/squid/icons visible_hostname pfsense access_log /var/squid/logs/access.log cache_log /var/squid/logs/cache.log cache_store_log none logfile_rotate 30 shutdown_lifetime 3 seconds acl localnet src 172.16.0.0/255.255.255.0 acl localnet src 172.16.1.0/255.255.255.0 acl localnet src 172.16.3.0/255.255.255.0 acl localnet src 172.16.101.0/255.255.255.0 acl localnet src 172.16.11.0/255.255.255.0 acl localnet src 172.16.12.0/255.255.255.0 acl localnet src 172.16.13.0/255.255.255.0 acl localnet src 192.168.0.0/255.255.255.0 acl localnet src 192.168.25.0/255.255.255.0 uri_whitespace strip cache_mem 100 MB maximum_object_size_in_memory 32 KB memory_replacement_policy heap GDSF cache_replacement_policy heap LFUDA cache_dir ufs /var/squid/cache 500 16 256 minimum_object_size 0 KB maximum_object_size 4 KB offline_mode off cache_swap_low 90 cache_swap_high 95 acl all src 0/0 acl localhost src 127.0.0.1/255.255.255.255 acl webserver src 172.16.0.250/255.255.255.255 acl safeports port 20 21 70 80 210 280 443 488 563 591 631 777 901 3128 1025-65535 acl sslports port 20 21 443 563   acl manager proto cache_object acl purge method PURGE acl connect method CONNECT                                                                                                                     acl dynamic urlpath_regex cgi-bin ? acl blacklist dstdom_regex -i "/var/squid/acl/blacklist.acl" acl whitelist dstdom_regex -i "/var/squid/acl/whitelist.acl" cache deny dynamic acl FTPclient proto FTP acl FTP_port port 60000-61000 http_access allow FTPclient http_access allow CONNECT FTP_port http_access allow manager webserver http_access deny webserver http_access deny manager http_access allow purge localhost http_access deny purge http_access deny !safeports http_access deny CONNECT !sslports http_access allow localhost debug_options 16,9 18,9 auth_param negotiate program /usr/local/libexec/squid/squid_kerb_auth # -d -s HTTP/pfsense.green.local@GREEN.LOCAL auth_param negotiate children 30 auth_param negotiate keep_alive on auth_param basic program /usr/local/libexec/squid/squid_ldap_auth -v 3 -b dc=green,dc=local -D eml@green.local -w 123555123 -f "sAMAccountName=%s" -u cn -P go-srv-dc1:389 auth_param basic children 5 auth_param basic realm Hello! auth_param basic credentialsttl 60 minutes acl auth_users proxy_auth REQUIRED external_acl_type domain_users %LOGIN /usr/local/libexec/squid/squid_ldap_group -R -b "dc=green,dc=local" -f "(&(sAMAccountName=%v)(memberOf=CN=%a,CN=Builtin,DC=green,DC=local))" -D eml@green.local -w 123555123 -K go-srv-dc1 acl Avtomat external domain_users Internet-Avtomat acl InetUsers external domain_users Internet-Users acl Nk external domain_users Internet-Nk acl OSB external domain_users Internet-OSB acl Vk external domain_users Internet-Vk acl Unlimit external domain_users Internet-Unlimit acl Mk external domain_users Internet-Mk acl Mail external domain_users Internet-Mail request_body_max_size 0 KB reply_body_max_size 0 deny all delay_pools 1 delay_class 1 2 delay_parameters 1 128000/128000 30000/30000 delay_access 1 allow InetUsers delay_access 1 allow OSB delay_access 1 allow Nk delay_access 1 allow Vk delay_access 1 allow Mk delay_access 1 allow Mail delay_access 1 allow Avtomat delay_access 1 allow Unlimit http_access deny Avtomat blacklist http_access allow Avtomat http_access deny InetUsers blacklist http_access allow InetUsers http_access allow Nk Nk-url http_access deny OSB blacklist http_access allow OSB http_access allow NK Mig http_access deny Unlimit blacklist http_access allow Unlimit http_access deny Mk blacklist http_access allow Mk http_access deny Mail blacklist http_access allow Mail http_access deny !Avtomat http_access deny localnet http_access deny all
  • 0 Votes
    16 Posts
    18k Views
    A
    А гдеж их сейчас нет этих поп…. :-) на нормальных сайтах их нет. Для меня, PfSense это роутерная операционная система. а PfSense это операционная система? Однако… Думаю, что это вопрос терминологии и не больше. ошибаетесь. "Одним из продуктов MikroTik является RouterOS — сетевая операционная система на базе Linux." Обратите внимание на слова "продукт", "MikroTik", и "RouterOS".
Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.