Доброго времени суток.
Работаю в школе. Необходимо настроить контент фильтрацию на компьютерах школьной сети.
Исходный данные:
В качестве шлюза используется Ubuntu Server 16.04.2 lts, с 2-я сетевыми платами.
Контент фильтрацию предоставляет провайдер в виде непрозрачного прокси сервера.
С unix знаком слабо, вся сеть и сервер достались в наследство от предыдущего сисадмина.
1.Настроил DHCP сервер на выдачу постоянных IP по mac адресам.
2.Обновил Squid до версии 3.5.23
3.Отредактировал etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0 (смотрит в интернет)
iface eth0 inet static
address XX.XXX.XXX.XX (выделенный IP провайдера)
netmask 255.255.255.224
gateway XX.XXX.XXX.XX (шлюз провайдера)
dns-nameservers 77.88.8.7 77.88.8.3
post-up iptables-restore < /etc/iptables.up.rules
auto eth1 (смотрит в локальную сеть)
iface eth1 inet static
address XX.X.XX.1
netmask 255.255.255.0
dns-nameservers 77.88.8.7 77.88.8.3
4. Настроил etc/iptables.up.rules (часть файла)
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
# Служебные мимо прокси
-A PREROUTING -p tcp -m multiport -s XX.X.XX.1 --dport 80,8080,443 -j ACCEPT
-A PREROUTING -p tcp -m multiport -s XX.X.XX.12 --dport 80,8080,443 -j ACCEPT
-A PREROUTING -p tcp -m multiport -s XX.X.XX.14 --dport 80,8080,443 -j ACCEPT
# Остальные на прокси
-A PREROUTING -p tcp -m multiport ! -d XX.X.XX.0/24 -i eth1 --dport 80,8080,443 -j DNAT --to XX.X.XX.1:3128
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
5. Настроил Squid
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
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 SSL_ports port 443 # https
acl CONNECT method CONNECT
acl localnet src XX.X.XX.0/24 (локальная сеть)
never_direct allow localnet
#acl manager proto cache_object
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localhost
http_access allow localnet
http_access deny all
http_port 3128
http_port XX.X.XX.1:3128 intercept
maximum_object_size 4 MB
maximum_object_size_in_memory 512 KB
cache_mem 256 MB
cache_dir ufs /var/spool/squid 256 16 256
access_log /var/log/squid/access.log squid
logfile_rotate 5
coredump_dir /var/spool/squid
cache_swap_log /var/log/squid/swap.log
pid_filename /var/run/squid.pid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern (Release|Packages(.gz)*)$ 0 20% 2880
refresh_pattern . 0 20% 4320
cache_peer XX.XXX.XXX.XXX parent 3128 0 no-query default (родительский прокси предоставленный провайдером)
cache_effective_user proxy
cache_effective_group proxy
Проверяем на рабочей станции, HTTP открывается, HTTPS нет
где и что поправить дабы HTTPS тоже проходил через прокси?
Если прописать прокси провайдера непосредственно на рабочих станциях, то все работает, но одаренные школьники быстро все исправят