Материал из Wiki.X-news.org
Перейти к: навигация, поиск

Данная статья описывает установку и настройку прокси сервера на основе squid-2.5.14 с использованием аудентификации по mac адресу с ограничением скорости закачки с помощью пулов задержки, анализа статистики лога с помощью sarg-2.2. А также в кратце описан процесс поднятия WWW сервера на основе apache-1.3.36 для удобства доступа до статистики полученной sarg.

Для начала надо пересобрать ядро с поддержкой DIVERT для NAT и ipfw. Добавляем вот это в конфигурационный файл ядра

options IPFIREWALL options IPFIREWALL_VERBOSE options IPFIREWALL_VERBOSE_LIMIT=100 options IPFIREWALL_FORWARD options IPDIVERTпересобираем ядро и устанавливаем его. Затем в файл /etc/rc.conf добавляем

firewall_enable="YES" firewall_script="/etc/rc.ipfw1" natd_enable="YES" natd_flags="-f /etc/natd.conf"первая строка включает firewall ipfw, вторая указывает какой скрипт указания правил использовать при загрузке, третья включает NAT, чертвертая указывает конфигурационный с которым будет работать NAT.

Создаем файл natd.conf в /etc

  1. cd /etc
  2. touch natd.conf
  3. chmod 600 natd.confс таким содержанием

use_sockets yes same_ports yes unregistered_only yes interface fxp0потом создаем файл rc.ipfw1 и ставим ему безопасные права

  1. cd /etc
  2. touch rc.ipfw1
  3. chmod 600 rc.ipfw1с таким содержанием
  1. !/bin/sh
fwcmd="/sbin/ipfw"
 ${fwcmd} -f flush 
 # VAR
  if_inet="fxp0"              # внешний сетевой интерфейс
   ip_inet="aaa.aaa.aaa.aaa"   # ip внешнего сетового интерфейса
    net="bbb.bbb.b.b/24"        # ваша подсетка
    # Local
     ${fwcmd} add allow all from any to any via lo0
      ${fwcmd} add deny all from any to 127.0.0.0/8
       ${fwcmd} add deny all from 127.0.0.0/8 to any
       # тут разрешаю SSH чтоб безбоязненно можно было удаленно править правила которые идут дальше
        ${fwcmd} add allow tcp from any to any ssh
         ${fwcmd} add allow tcp from any ssh to any
         # anti spoofing #1
          ${fwcmd} add deny all from any to 10.0.0.0/8 via ${if_inet}
           ${fwcmd} add deny all from any to 172.16.0.0/12 via ${if_inet}
            ${fwcmd} add deny all from any to 192.168.0.0/16 via ${if_inet}
             ${fwcmd} add deny all from any to 0.0.0.0/8 via ${if_inet}
              ${fwcmd} add deny all from any to 169.254.0.0/16 via ${if_inet}
               ${fwcmd} add deny all from any to 192.0.2.0/24 via ${if_inet}
                ${fwcmd} add deny all from any to 224.0.0.0/4 via ${if_inet}
                 ${fwcmd} add deny all from any to 240.0.0.0/4 via ${if_inet}
                 # NAT
                  ${fwcmd} add divert 8668 ip from ${net} to any out via ${if_inet}
                   ${fwcmd} add divert 8668 ip from any to ${ip_inet} in via ${if_inet}
                   # anti spoofing #2
                    ${fwcmd} add deny all from 10.0.0.0/8 to any via ${if_inet}
                     ${fwcmd} add deny all from 172.16.0.0/12 to any via ${if_inet}
                      ${fwcmd} add deny all from 192.168.0.0/16 to any via ${if_inet}
                       ${fwcmd} add deny all from 0.0.0.0/8 to any via ${if_inet}
                        ${fwcmd} add deny all from 169.254.0.0/16 to any via ${if_inet}
                         ${fwcmd} add deny all from 192.0.2.0/24 to any via ${if_inet}
                          ${fwcmd} add deny all from 224.0.0.0/4 to any via ${if_inet}
                           ${fwcmd} add deny all from 240.0.0.0/4 to any via ${if_inet}
                           # все остальное разрешить (желательно только то что нужно =) )
                            ${fwcmd} add allow all from any to anyсразу отмечу для создания правил безопастности более индивидуально посетите хороший сайт http://ipfw.ism.kiev.ua/ посвященный настройки firewall ipfw и эти правила для aaa.aaa.aaa.aaa реального IP 
                            
                            Изменения вносить лучше в /etc/rc.conf и создание /etc/rc.ipfw1 до перезагрузки после установки пересобранного ядра. 
                            
                            Так теперь можно приступать к установке squid 
                            
                            #cd /usr/ports/www/squid
                            #make configили так 
                            
                            cd /usr/ports/www/squid && make configставим галочки напротив 
                            
                            SQUID_DELAY_POOLS
                            SQUID_ARP_ACL
                            SQUID_RCNGк уже установленным. Первая строка включает поддержку пулов задержки для ограничения скорости, вторая включает поддержку использования в ACL МАС адресов, третья указавает на создание загрузочного скрипта в rc.d . Нажимаем ОК. Потом делаем 
                            
                            #make install cleanЗатем идем в /usr/local/etc/squid создаем файл squid.conf с безопастными правилами 
                            
                            #touch squid.conf
                            #chmod 600 squid.confили можно как вариант скопировать конфигурационный файл squid по умолчанию и его редактировать 
                            
                            #cp ./squid.conf.default ./squid.confу меня squid.conf примерно имеет такое содержание 
                            
                            http_port 3128
                            icp_port 3130
                            hierarchy_stoplist cgi-bin ?
                            
                            acl QUERY urlpath_regex cgi-bin \?
                            no_cache deny QUERY
                            
                            cache_mem 32 MB
                            
                            maximum_object_size 2000 KB
                            maximum_object_size_in_memory 1000 KB
                            
                            cache_dir ufs /usr/local/squid/cache 2000 16 256
                            access_log /usr/local/squid/logs/access.log squid
                            
                            auth_param basic children 5
                            auth_param basic realm Squid proxy-caching web server
                            auth_param basic credentialsttl 2 hours
                            auth_param basic casesensitive off
                            
                            refresh_pattern ^ftp:           1440    20%     10080
                            refresh_pattern ^gopher:        1440    0%      1440
                            refresh_pattern .               0       20%     4320
                            
                            acl all src 0.0.0.0/0.0.0.0
                            acl manager proto cache_object
                            acl localnet src 192.168.0.0/24
                            acl localhost src 127.0.0.1/255.255.255.255
                            acl to_localhost dst 127.0.0.0/8
                            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 Icq_port port 5190          # icq
                            acl Irc_port port 6667          # irc
                            acl MSN_port port 1863          # msn messager
                            acl CONNECT method CONNECT
                            
                            acl erasha arp XX:XX:XX:XX:XX:XX
                            acl user1 arp XX:XX:XX:XX:XX:XX
                            acl user2 arp XX:XX:XX:XX:XX:XX
                            acl user3 arp XX:XX:XX:XX:XX:XX
                            
                            acl stop_files url_regex -i .mp3$ .vqf$ .rpm$ .avi$ .mpeg$ .mpe$ .mpg$ .qt$ .ram$ .rm$ .raw$ .wav$ .mov$ .ogg$ .exe$ .com$
                            acl StopWWW dstdomain "/usr/local/etc/squid/stopWWW.acl"
                            
                            http_access allow erasha
                            
                            http_access deny stop_files
                            http_access deny StopWWW
                            
                            http_access allow user1
                            http_access allow user2
                            http_access allow user3
                            
                            http_access allow CONNECT Icq_port
                            http_access allow localnet Icq_port
                            http_access allow CONNECT Irc_port
                            http_access allow localnet Irc_port
                            http_access allow CONNECT MSN_port
                            http_access allow localnet MSN_port
                            http_access allow manager localhost
                            http_access deny manager
                            http_access deny !Safe_ports
                            http_access deny CONNECT !SSL_ports
                            http_access deny all
                            
                            http_reply_access allow all
                            
                            icp_access allow all
                            
                            visible_hostname proxy
                            
                            icon_directory /usr/local/etc/squid/icons
                            
                            error_directory /usr/local/etc/squid/errors/Russian-koi8-r
                            
                            delay_pools 3
                            
                            delay_class 1 2
                            delay_parameters 1 6000/2000 3000/2000
                            delay_access 1 allow user1
                            delay_access 1 deny all
                            
                            delay_class 2 2
                            delay_parameters 2 15000/3000 15000/3000
                            delay_access 2 allow user2
                            delay_access 2 deny all
                            
                            delay_class 3 2
                            delay_parameters 3 60000/3000 60000/3000
                            delay_access 3 allow user3
                            delay_access 3 deny all
                            
                            coredump_dir /usr/local/squid/cacheРазберем конфигурационный файл. 
                            
                            http_port 3128указываем порт для запросов клиентов, можно задать 8080.
                            
                            
                            icp_port 3130указываем номер порта Internet Cache Protocol (ICP) для открытия возможности использования кешей соседних squid прокси.
                            
                            
                            hierarchy_stoplist cgi-bin ?squid не будет кешировать динамически генерируемые страницы (поисковые сервера, некоторые другие серверы и чаты), а будет напрямую перенаправлять запрос серверу.
                            
                            
                            acl QUERY urlpath_regex cgi-bin \?
                            no_cache deny QUERYэти две строки примерно аналогичны предыдущей, но касательно кэша... то есть если каким-либо данные странички попали в кэш (ну например работал сквид без предыдущей строчки некоторое время), то они немедленно удаляются из кеша.
                            
                            
                            cache_mem 32 MBсколько оперативной памяти сквид может забрать под свои нужды. По умолчанию стоит 8 мегабайт, что хватит лишь при очень слабой загрузке.
                            
                            
                            maximum_object_size 2000 KBмаксимальный размер объектов, которые будут сохранены на диск. По умолчанию стоит 4096 килобайт.
                            
                            
                            maximum_object_size_in_memory 1000 KBмаксимальный размер объектов, которые будут сохранены в кэше. По умолчанию стоит 4096 килобайт.
                            
                            
                            cache_dir ufs /usr/local/squid/cache 2000 16 256указывает сквиду, где сохранять кешируемые файлы. Указывает отдать под кеш 2000 мегабайт и создать 16 и 256 соответственно каталогов 1го и 2го уровня. Про каталоги сами все поймете, когда загляните в место, где у сквида кэш.
                            
                            
                            access_log /usr/local/squid/logs/access.log squidУкажим явно где у нас будут лежать логи.
                            
                            
                            auth_param basic children 5количество процессов авторизации запросов.
                            
                            
                            auth_param basic realm Squid proxy-caching web serverуказываем надпись, которая будет выводиться с запросом авторизации.
                            
                            
                            auth_param basic credentialsttl 2 hoursуказываем время хранения авторизации, в данном случае 2 часа.
                            
                            
                            auth_param basic casesensitive offуказываем, что регистр введенных данных роли не играет.
                            
                            
                            refresh_pattern ^ftp:           1440    20%     10080
                            refresh_pattern ^gopher:        1440    0%      1440                                                           
                            refresh_pattern .               0       20%     4320в этих трех строках мы указываем сколько времени в минутах объект в кеше считается свежим и какой процент объектов оставлять с последнего обновления.
                            
                            
                            acl all src 0.0.0.0/0.0.0.0
                            acl manager proto cache_object
                            acl localnet src 192.168.0.0/24
                            acl localhost src 127.0.0.1/255.255.255.255
                            acl to_localhost dst 127.0.0.0/8
                            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 Icq_port port 5190          # icq
                            acl Irc_port port 6667          # irc
                            acl MSN_port port 1863          # msn messager
                            acl CONNECT method CONNECTЗдесь с помощью acl мы задаем localhost, локальную сеть, порты на которые мы разрешим выходить программам через наш прокси. Также указываем manager протокол cache_object, используемого для управления и мониторинга кеша.
                            
                            
                            acl CONNECT method CONNECTвключает поддержку проброски соединения с помощью команды протокола CONNECT. 
                            
                            acl erasha arp XX:XX:XX:XX:XX:XX      
                            acl user1 arp XX:XX:XX:XX:XX:XX
                            acl user2 arp XX:XX:XX:XX:XX:XX                
                            acl user3 arp XX:XX:XX:XX:XX:XXс помощью acl...arp указываем МАС адреса сетевых карт пользователей, которым мы в дальнейшем разрешать/запрещать доступ к интернету. вместо XX:XX:XX:XX:XX:XX указываем МАС адрес сетевой карты компьютера пользователя. Скрипт для получения МАС адреса будет приведен в приложении.
                            
                            
                            acl stop_files url_regex -i .mp3$ .vqf$ .rpm$ .avi$ .mpeg$ .mpe$ .mpg$ .qt$ .ram$ .rm$ .raw$ .wav$ .mov$ .ogg$ .exe$ .com$здесь мы указываем расширения файлов которые мы запретим для закачки.
                            
                            
                            acl StopWWW dstdomain "/usr/local/etc/squid/stopWWW.acl"здесь указываем файл в котором указываем адреса сайтов на которые нельзя ходить юзерам. файл имеет такой вид 
                            
                            .zaycev.net
                            .rmp.ru
                            .berkova.net
                            .sexmovies.ru
                            .mp3real.ru
                            .erovideo.ru
                            .muzudar.ruэто как бы подборка сайтов sex содержания и с mp3, т.к. в stop_files мы не закрыли архивы, а на некоторых сайтах лежат mp3 с расширением например rar, и пользователи могут закачивать музыку потом меняя расширение у файлов, поэтому я решил запрещать сами сайты. 
                            
                            http_access allow erasha
                            http_access deny stop_files
                            http_access allow user1
                            http_access allow user2
                            http_access allow user3Здесь мы разрешаем с помошь http_access allow доступ до интернета, а используя http_access deny запрещаем выкачивать stop_files с расширениями указанными выше. Обратите внимание что разрешение доступа до интернета для пользователя erasha стоит выше запрета на закачку stop_files. Это сделано для того чтобы на пользователя erasha не действовал запрет не закачку stop_files, а на остальных пользователей которым разрешен доступ до интернета указанным после запрета на stop_files этот запрет действует. 
                            
                            http_access allow CONNECT Icq_port
                            http_access allow localnet Icq_port
                            http_access allow CONNECT Irc_port
                            http_access allow localnet Irc_port
                            http_access allow CONNECT MSN_port
                            http_access allow localnet MSN_port
                            http_access allow manager localhost
                            http_access deny manager
                            http_access deny !Safe_ports
                            http_access deny CONNECT !SSL_ports
                            http_access deny allВ этих строках разрешаем использования метода CONNECT для локальной сети на Icq_port,Irc_port,MSN_port, разрешаем доступ maneger доступ до localhost. Запрещаем использование всех портов кроме Safe_ports, запрещаем метод CONNECT на все порты кроме SSL_ports, и в конце все запрещаем. Знак .!. используется как НЕ, т.е. если дословно http_access deny !Safe_ports запретить http доступ НЕ Safe_ports. 
                            
                            http_reply_access allow allРазрешаем ответы на все запросы. 
                            
                            icp_access allow allРазрешаем доступ до icp всем. 
                            
                            visible_hostname proxyэто имя будет упоминаться в сообщениях об ошибках. 
                            
                            icon_directory /usr/local/etc/squid/iconsУказываем католог с иконками 
                            
                            error_directory /usr/local/etc/squid/errors/Russian-koi8-rУказываем католог с шаблонами страниц ошибок на нужном языке и в нужной кодировке, в нашем случае язык русский в Koi8-r кодировке 
                            
                            delay_pools 3
                            
                            delay_class 1 2
                            delay_parameters 1 6000/2000 3000/2000
                            delay_access 1 allow user1
                            delay_access 1 deny all
                            
                            delay_class 2 2
                            delay_parameters 2 15000/3000 15000/3000
                            delay_access 2 allow user2
                            delay_access 2 deny all
                            
                            delay_class 3 2
                            delay_parameters 3 60000/3000 60000/3000
                            delay_access 3 allow user3
                            delay_access 3 deny all
                            Здесь мы создаем пулы задержки для ограничения по скорости пользоветелей. Пулы задержки делятся на три класса. Первый класс управляет одним потоком на всех кому резрешено использовать его. Используют когда достаточно задать скорость для всех без какого либо разграничения. Второй класс уже управляет общим потоком и управление потоком для каждого хоста из. Используется уже если нужно в сети распределить поток между хостами. Третий класс управляет общим потоком, потоком на всю подсеть и потоком для каждого хоста. Используется если есть необходимость распределить поток между подсетями и отдельными хостами в этих подсетях. 
                            
                            delay_pools 3указываем сколько у нас будет всего пулов задержки, в нашем случае три. 
                            
                            delay_class 1 2здесь указываем номер пула и его класс, т.е. пул номер один второго класса. 
                            
                            delay_parameters 1 6000/2000 3000/2000здесь задаем параметры пула. Указаываем номер пула которому устанавливаем параметры, у нас .1, далее идет указание ограничения по скорости этого пула. 6000/2000 указывает что после закачки более 2000 байт установить скорость не выше 6000 байт/с, до 2000 байт закачка происходит без какого либо ограничения по скорости. исходя из того что у нас пул второго класса такое ограничение мы установили на общий поток, далее 3000/2000 указываем что каждому хосту после закачки более 2000 байт установить скорость 3000 байт. 
                            
                            вот как бы шаблон по которому думаю более нагладно разобраться 
                            
                            delay_parameters 3 total_rest/total_max  - 1 класс
                            delay_parameters 3 total_rest/total_max ind_rest/ind_max  - 2 класс
                            delay_parameters 3 total_rest/total_max net_rest/net_max ind_rest/ind_max  - 3 классгде total - на всех net - на подсеть ind - на отдельный адрес rest - скорость (в байт/сек) max - размер трафика при превышении которого устанавливается ограничение по скорости (в байтах) 
                            
                            еще если указать так 
                            
                            delay_parameters А -1/-1то -1/-1 это указывает на отсутствие каких либо ограничений для пула А. 
                            
                            delay_access 1 allow user1Разрешаем user1 успользовать пул номер 1. 
                            
                            delay_access 1 deny allЗапрещаем все остальным использовать пул номер 1. 
                            
                            Следующие пулы аналогичны первому по структуре. 
                            
                            coredump_dir /usr/local/squid/cacheУказываем куда сбрасывать core. 
                            
                            И на последок создадим swap директорию для squid 
                            
                            # /usr/local/sbin/squid -zДобавим SQUID в автозагрузку (в /etc/rc.conf) 
                            
                            squid_enable="YES"Запустим squid 
                            
                            # /usr/local/sbin/squid -DТак вроде все с squid разобрались. 
                            
                            Теперь приступим к установке анализатора логов squid-a sarg -2.2 
                            
                            #cd /usr/ports/www/sarg
                            #make install cleanили так 
                            
                            cd /usr/ports/www/sarg && make install cleanЗатем идем в /usr/local/etc/sarg создаем файл sarg.conf с безопастными правилами 
                            
                            #touch sarg.conf
                            #chmod 600 sarg.confили можно как вариант скопировать конфигурационный файл squid по умолчанию и его редактировать 
                            
                            #cp ./sarg.conf.default ./sarg.confу меня sarg.conf примерно имеет такое содержание 
                            
                            language Russian_koi8
                            access_log /usr/local/squid/logs/access.log
                            graphs yes
                            graph_days_bytes_bar_color orange
                            title "МОЯ ОГРАНИЗАЦИЯ"
                            font_face Tahoma,Verdana,Arial
                            header_color darkblue
                            header_bgcolor blanchedalmond
                            font_size 10px
                            header_font_size 10px
                            title_font_size 11px
                            background_color white
                            text_color #000000
                            text_bgcolor blanchedalmond
                            title_color green
                            logo_image none
                            logo_text_color #000000
                            background_image none
                            output_dir /usr/local/sarg/squid-reports
                            resolve_ip yes
                            #lastlog 0
                            index yes
                            overwrite_report no
                            #output_email erasha@domain.ru
                            max_elapsed 28800000
                            charset Koi8-r
                            show_successful_message yes
                            show_read_statistics yes
                            topuser_fields NUM DATE_TIME USERID CONNECT BYTES %BYTES IN-CACHE-OUT USED_TIME MILISEC %TIME TOTAL AVERAGE
                            user_report_fields CONNECT BYTES %BYTES IN-CACHE-OUT USED_TIME MILISEC %TIME TOTAL AVERAGE
                            #show_sarg_info yes
                            #show_sarg_logo yesразберем опции. 
                            
                            language Russian_koi8Указываем язык который будет использоваться в отчётах 
                            
                            access_log /usr/local/squid/logs/access.logУказываем где будет находиться лог squid который sarg будет анализировать 
                            
                            graphs yes
                            graph_days_bytes_bar_color orangeРазрешаем формирование графиков 
                            
                            title "МОЯ ОГРАНИЗАЦИЯ"Указываем загологок отчетов sarg 
                            
                            font_face Tahoma,Verdana,Arial
                            header_color darkblue
                            header_bgcolor blanchedalmond
                            font_size 10px
                            header_font_size 10px
                            title_font_size 11px
                            background_color white
                            text_color #000000
                            text_bgcolor blanchedalmond
                            title_color green
                            logo_image none
                            logo_text_color #000000
                            background_image noneВыше указываются размер, 
                            
                            output_dir /usr/local/sarg/squid-reportsУказываем где будут храниться отчёты 
                            
                            resolve_ip yesразрешаем чтобы вместо ip компов sarg резолвил имена компов 
                            
                            #lastlog 0параметр задает количество отчетов хранимых в каталоге, если он указан 
                            
                            index yesсоздавать index-ный файл отчетов 
                            
                            overwrite_report noПерезаписывать отчеты, здесь не перезаписываются а делаются еще один 
                            
                            #output_email erasha@domain.ruможно при желании указать куда отправлять отчет, я это пока не использую 
                            
                            max_elapsed 28800000
                            charset Koi8-rКодировка надписей графика 
                            
                            show_successful_message yesПоказывать сообщение о удачном завершении анализа 
                            
                            show_read_statistics yesПоказывать статистику чтения 
                            
                            topuser_fields NUM DATE_TIME USERID CONNECT BYTES %BYTES IN-CACHE-OUT USED_TIME MILISEC %TIME TOTAL AVERAGE
                            user_report_fields CONNECT BYTES %BYTES IN-CACHE-OUT USED_TIME MILISEC %TIME TOTAL AVERAGEЗдесь указываются поля для статистики 
                            
                            #show_sarg_info yes
                            #show_sarg_logo yesПоказать инфо по sarg и его лого, я пока отключил. 
                            
                            Так с настройкой анализатора логоф squid закончили. 
                            
                            Установил www сервер для удобного просмотра отчетов sarg, я выбрал apache 1.3 
                            
                            #cd /usr/ports/www/apache13
                            #make install cleanили так 
                            
                            cd /usr/ports/www/apache13 && make install cleanпотом делаем символьный линк 
                            
                            # ln - s /usr/local/sarg/squid-reports /usr/local/wwwединственное каталога /usr/local/sarg/squid-reports пока не было сделано ни одного отчета нету, я используя squid смотрел одну любую страницу чтобы был хоть какой то лог, потом запускал sarg, он анализируя лог создавал отчет вместе с каталогами, а потом делал символьный линк и запускал apache. можно конечно каталоги сделать руками вот так 
                            
                            #mkdir /usr/local/sarg/squid-reports
                            #chmod 755 /usr/local/sarg/squid-reportsи надо создать пустой index.html для apacha 
                            
                            #touch /usr/local/sarg/squid-reports/index.html
                            #chmod 644 /usr/local/sarg/squid-reports/index.htmlдалее идем в /usr/local/etc/apache 
                            
                            открываем на редактирование httpd.conf, идем на 330 строку правим 
                            
                            ServerAdmin you@your.addressнапример на 
                            
                            ServerAdmin erasha@domain.ruт.е. указываем адрес куда apache будет отправлять письма со своими проблемами  
                            
                            далее на 355 строке указываем где лежат наши отчеты 
                            
                            DocumentRoot "/usr/local/www/squid-reports"Для запуска при загрузки системы добавляем в /etc/rc.conf 
                            
                            apache_enable="YES"и запускаем 
                            
                            /usr/local/etc/rc.d/apache.sh startТак теперь можно проверить работают squid и apache у нас 
                            
                            #sockstatсмотрим на предмет наличия строк 
                            
                            www   httpd  XXX  16  tcp4  *:80    *:*
                            squid squid  XXX  12  tcp4  *:3128  *:*Первая показывает что запущен apache, вторая что squid работает. 
                            
                            я пользуюсь маленьким скприптиком для получения mac адреса компа вот с таким содержанием 
                            
                            #!/bin/sh
                            name=$1
                            ip=`ping -c1 $name | grep PING | awk '{print $3}' | sed 's/..$//' | sed 's/^(//'`
                            ot=`arp -an|grep "($ip)"|awk '{print $4}'`
                            echo $otя скриптик назвал mac.sh и пользую так 
                            
                            %mac.sh СетовоеИмяМашины_Или_IP
                            ХХ:ХХ:ХХ:ХХ:ХХ:ХХ   <-полученный МАСесли кто может предложить другой скрипт, поделитесь со мной, положу его в эту статью. 
                            
                            используя Cron собираю статистику с нарастающим итогом ежедневно и обнуляю итоги в начале каждого месяца 
                            
                            для этого добивил в /etc/crontab следующие строки 
                            
                            0       0       *       *       *       erasha  /usr/local/bin/sudo /usr/local/bin/sarg
                            15       0       1       *       *       root    /usr/local/sbin/squid -k rotateпервая запускает sarg каждый день каждого месяца в 00:00 для подбивки итогов за период с первого числа месяца по текущий вторая делает ротацию логов squid, т.е. очищает текущий лог с переносом логов в архив. первую строку также можно сделать в таком виде 
                            
                            0       0       *       *       *       root  /usr/local/bin/sargНу вроде все.Выражаю благодарность s1lv3r за внесенные исправления и подсказки  Также Grayich за указание на мои недочеты и ошибки.  Да еще natd поднимаю для того что бы из вне нельзя было поднимать соединения с внутренней сеткой. Пробуйте, тестируйте, критикуйте и пишите мне на мыло erasha@bsdportal.ru или стучитесь в аську 144897928. 
                            
                            Чуть позже статью поправлю под текущие версии портов, т.к. есть небольшие изменения