Установка и настройка прокси-сервера squid в ubuntu linux Для

advertisement
Установка и настройка прокси-сервера squid в ubuntu linux
Для начала установим прокси-сервер squid
sudo apt-get install squid
потом откроем любым текстовым редактором файл конфигурации
sudo nano /etc/squid3/squid.conf
Следующая строка устанавливает номер порта http-прокси (в данном случае 3128)
http_port 3128
Для добавления одного ip-адреса (для примера 192.168.0.100) вставим строку
acl mynet src 192.168.0.100
Так же добавим строку
http_access allow mynet
Перезапустим прокси-сервер
sudo /etc/init.d/squid restart
Теперь всё готово - можно пользоваться!
№2. Для повышения безопасности сервер будет обслуживать запросы только из локальной сети,
IP адреса в моей локальной сети из диапазона 192.168.1.0/24,
Где: 192.168.1.0-подсеть, /24-количество бит в маске-идентификаторе сети (255.255.255.0)
#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.1.0/24 # RFC1918 possible internal network
Разрешаем доступ из localnet:
http_access allow localnet
Находим и раскоментируем, правило кеширования
cache_dir ufs /var/spool/squid 4096 32 256
Если на сервер не много оперативной памяти-1Gb то имеет смысл установить лимит ее
использования, нашим сервером. Нам необходимо найти и раскоментировать:
memory_pools on
memory_pools_limit 50 MB
50мб установлено по умолчанию.
Для уведомления пользователей об ошибках можно установить страницу ошибок на русском
задается она в параметре error_directory и установить кодировку Windows-1251, для желающих
можно зайти в директроию /usr/share/squid/errors/ и там посмотреть список папок.
error_directory /usr/share/squid/errors/Russian-1251
На этом основная настройка закончена, сохраняем изменения выходим.
Нам необходимо перестроить кеш который хранится в /usr/sbin/squid
sudo /usr/sbin/squid -z
sudo /etc/init.d/squid start
Технически сервер работает и готов к использованию и данной, минимальной конфигурации,
вполне хватит для тестов, но он висит на порту 3128 к которому http запросы никаким образом не
попадают, для этого нам необходимо завернуть порт 80 и 8080 на 3128 где их примет Squid и
обработает.
Лезем в файл rc.local
sudo nano /etc/rc.local
В локальную сеть у меня смотрит интерфейс eth2 IP которого 192.168.1.1
В сеть провайдера eth1, из этих условий вытекает то что указано ниже:
iptables -t nat -A PREROUTING -i eth2 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.1:3128
iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A PREROUTING -i eth2 -p tcp -m tcp --dport 8080 -j DNAT --to-destination
192.168.1.1:3128
iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 8080 -j REDIRECT --to-ports 3128
Добавляем это в rc.local заменив IP адрес шлюза на тот что используется в вашей сети.
Перезагружаем шлюз чтобы настройки применились, можно конечно перезапустить rc.local, но
иногда возникают непонятные глюки, которые отнимают много времени. Намного быстрее
перезагрузить систему!
Проверяем на любом клиентском ПК интернет должен работать, без дополнительных настроек
браузера.
В целом кеширование данных передаваемых из сети, а также DNS запросов от пользователей,
будет производиться, но нам необходимо заблокировать, некоторые сайты и создать нечто,
похожее на контент-фильтр.
Теперь нам необходимо добавить правила для заблокированных сайтов
sudo nano /etc/squid/squid.conf
И добавляем туда следующее:
acl ru url_regex "/etc/squid/ru.acl"
acl com url_regex "/etc/squid/com.acl"
acl org url_regex "/etc/squid/org.acl"
acl net url_regex "/etc/squid/net.acl"
http_access deny ru
http_access deny com
http_access deny org
http_access deny net
Для тех кто использует файлы из архива, их достаточно скопировать в /etc/squid/.
Чтобы заблокировать сайт достаточно добавить его в один из файлов и перезагрузить squid.
Перезапускаем Squid:
sudo /etc/init.d/squid stop
sudo /etc/init.d/squid start
Пробуем перейти с клиентского ПК по первому попавшемуся адресу из списка, должны получить
сообщение что доступ заблокирован-значит все сделано правильно.
Download