• проблема с 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.