Продолжение материала статьи: Настройка шлюзового компьютера для выхода в интернет.
Для комфортной работы в командной строке рекомендуем установить программу midnight commander. Для этого выполните команду
$ sudo apt-get install mc
программа запускается командой
$ mc
или, если хотите получить привилегии root
$ sudo mc
В комплекте программы есть очень удобный текстовый редактор mcedit. Нужный конфигурационный файл для редактирования можно будет открывать командой
$ mcedit путь_и_имя_файла
или
$ sudo mcedit путь_и_имя_файла
Установка и настройка кеширующего доменного сервера
Рекомендуется перед началом дальнейшей настройки обновить систему и установить DNS-сервер и веб-сервер следующими командами:
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install bind9
$ sudo apt-get install apache2
В файле /etc/bind/named.conf.options найдите строки
// forwarders {
// 0.0.0.0;
//};
и замените их на:
forwarders {
81.176.72.82;
81.176.72.83;
};
И перезапустите bind (доменный сервер) командой
$ sudo /etc/init.d/bind9 restart
Установка и настройка прокси-сервера SQUID
$ sudo apt-get install squid3
Редактируем /etc/squid3/squid.conf
Примечание. В конфигурационных файлах строки, начинающиеся со знака #, считаются комментариями и не влияют на настройку программы.
Меняем строчку
http_port 3128
на
http_port 3128 transparent
Настраиваем кэш:
cache_dir ufs /var/spool/squid3 4096 32 256
Здесь указано, что для кеша будет использоваться 4Гб на диске.
Указываем внутренние сети, лишние комменитруем:
#acl localnet src 10.0.0.0/24 # RFC1918 possible internal network
#acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
Разрешаем доступ из внутренних сетей. Для этого нужно найти и раскомментировать строку:
http_access allow localnet
На всякий случай устанавливаем лимит памяти:
memory_pools on
memory_pools_limit 64 MB
Вписать (можно в конец файла) строчку:
dns_nameservers 127.0.0.1
Настройки программы squid закончены. Осталось дать команду их принять.
$ sudo /etc/init.d/squid3 stop
$ sudo /usr/sbin/squid3 -z
$ sudo /etc/init.d/squid3 start
Теперь если в браузере рабочих станций настроить прокси сервер с ip-адресом 192.168.0.254 и портом 3128, то все веб страницы будут загружаться именно через этот прокси сервер.
Настройка «прозрачности»
В файле /etc/iptables.up.rules секцию:
*nat
:OUTPUT ACCEPT [0:0]
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -j MASQUERADE
COMMIT
меняем на:
*nat
:OUTPUT ACCEPT [0:0]
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -i eth1 -d ! 192.168.0.0/16 -p tcp -m multiport --dport 80,8080 -j DNAT --to-destination 192.168.0.254:3128
-A PREROUTING -i eth1 -p tcp -m multiport --dport 80,8080 -j REDIRECT --to-ports 3128
-A POSTROUTING -j MASQUERADE
COMMIT
Внимание! «-A PREROUTING -i eth1 -d ! 192.168.0.0/16 -p tcp -m multiport --dport 80,8080 -j DNAT --to-destination 192.168.0.254:3128» одна строка, разрывать ее нельзя
Теперь мы имеем полнофункциональный прокси-сервер, умеющий кешировать запросы и фильтровать контент. Осталось только научить его считать трафик.
Подсчет трафика с помощью Sarg
Для работы Sarg необходимо наличие web-сервера apache (см. выше). Устанавливается Sarg командой:
$sudo apt-get install sarg
После установки необходимо править конфигурационный файл /etc/sarg/sarg.conf
language English
заменить на
language Russian_UTF-8
access_log /var/log/squid/access.log
заменить на
access_log /var/log/squid3/access.log
output_dir /var/lib/sarg
заменить на
output_dir /var/www
После таких настроек каждую ночь после 1:00 сервер будет автоматически формировать отчет со списком клиентских машин (в списке представлены их IP-адресами), с указанием потребленного HTTP-трафика и возможностью расшифровки по адресам открытых сайтов. Этот отчет будет доступен в браузере с любой клиентской машины по адресу http://192.168.0.254
Вручную отчет можно сформировать командой:
$ sudo sarg
Примечание. Не забывайте удалять ненужные отчеты из папки /var/www на сервере. Иначе может быстро кончиться дисковое пространство.