
1. Introdução
O tópico sobre filtragem de conteúdo nas escolas é bastante simples e cheio de informações, mas já está desatualizado devido à transição de muitos sites para o protocolo HTTPS seguro, com o qual a maioria das soluções propostas não funciona. Por isso, decidi escrever o artigo mais completo de A a Z, coletando todas as informações que encontrei nas extensões do Google. O artigo foi desenvolvido para o conhecimento básico no campo da administração e é adequado para professores de ciências da computação.
2. Termos de Referência
Dado: 436-FZ e uma escola na qual muitos computadores estão em rede e conectados à Internet através de um roteador MikroTik ou qualquer outro.
Objetivo: fazer a filtragem de conteúdo de HTTP e HTTPS pela lista de permissões para todos, exceto para quem você ama e para a administração da escola.
3. Resolução de problemas
Um computador de mesa não utilizado foi encontrado com Intel-ohm de núcleo duplo, 1 GB de RAM e 80 GB de disco rígido.
Para resolver isso, será feito o seguinte:
- Linux Ubuntu Server 18.04 LTS instalado
- O Transparent Proxy Squid é instalado e configurado no servidor, compilado a partir dos códigos-fonte com suporte a HTTPS.
- Integração do servidor na sub-rede, redirecionando solicitações para Proxy ou uma alternativa (no final)
Vamos começar.
3.1 Instale e configure o Ubuntu 18.04
O processo de instalação é simples. Faça o download da distribuição do Ubuntu Server 18.04 no site oficial. Eu recomendo fazer o download com o instalador antigo, pois o novo, pessoalmente, entrou em download infinito durante a instalação. Gravamos a imagem em uma unidade / disco flash USB de qualquer maneira conveniente. Para gravar em uma unidade flash USB, recomendo usar o Rufus e, no início da gravação, selecione "Gravar imagem DD". Em seguida, seguindo as informações na tela, instale o sistema. Nós nos concentramos apenas na escolha de componentes, onde você pode selecionar imediatamente o OpenSSH e é isso. Não precisamos de muito, mas precisamos instalar o que precisamos.
Então, o Ubuntu está instalado. A rede, se você tiver DHCP, já está configurada. Entraremos no modo superusuário para que a cada vez que não adicionamos sudo aos comandos.
sudo -s
Digite sua senha e atualize o sistema.
apt-get update apt-get upgrade
Instale um editor de texto e um gerenciador de arquivos.
apt-get install nano mc
Para salvar o arquivo no
nano , você deve pressionar
Ctrl + O seguido de
Y. Saia do editor pressionando
Ctrl + X. Você pode salvar o arquivo imediatamente antes de sair pressionando
Ctrl + X seguido de
Y.Para abrir o gerenciador de arquivos, digite
mc . Um típico NortonCommander DOS ou Windows TotalCommander / FAR é aberto com dois painéis. Embora eu esteja acostumado a trabalhar com o console, o gerenciador de arquivos também ajuda, por exemplo, a encontrar o arquivo desejado mais rapidamente.
Se você não possui DHCP ou deseja um endereço IP separado para o seu servidor, como eu queria, então continuaremos com a configuração.
Configurar endereço IP estáticoDiferentemente das versões anteriores do Ubuntu, no novo 18.04 a rede não está mais configurada nas
interfaces usuais
/ etc / network / , mas via netplan no arquivo
/etc/netplan/*.yaml . O arquivo pode ter um nome diferente, mas está lá sozinho. / Etc / network / interfaces em si nos escreve o seguinte:

Além disso, se você deseja atualizar de uma versão anterior à 18.04, as configurações de rede permanecerão onde estavam. O Netplan é relevante apenas para uma instalação limpa do 18.04.
Vamos começar a configurar a rede.
Primeiro, vejamos o nome da interface de rede atribuída ao sistema operacional e lembre-se disso.
ifconfig
Agora abra o arquivo de configurações.
nano /etc/netplan
Ele já deve ter uma configuração de DHCP. Vamos trazer o arquivo para o seguinte formulário.
# This file describes the network interfaces available on your system # For more information, see netplan(5). network: version: 2 renderer: networkd ethernets: : dhcp4: no dhcp6: no addresses: [/24] gateway4: nameservers: addresses: [77.88.8.7, 77.88.8.3]
Digite sua interface, endereço e gateway. O DNS recomenda que você os deixe - Yandex.DNS Children será uma proteção adicional. O mesmo DNS está configurado no meu roteador. De qualquer forma, você deve especificar o DNS que o roteador distribui.
Aqui você precisa prestar atenção aos espaços (ou seja, espaços, não tabulações). Cada um deles é separado do espaço anterior. Por exemplo, se após os servidores de nomes a linha de endereço não estiver separada por um espaço, mas alinhada com a linha acima, quando você tentar aplicar as configurações, o netplan apresentará um erro.
Aplique as configurações.
netplan apply
Reinicie o servidor, apenas por precaução.
reboot
Além disso, ele adicionou uma opção de configuração de rede alternativa para DHCP e IP estático, se o netplan não se adequar.
Configuração alternativa de redeNo Ubuntu 18.04, você pode retornar à opção de configuração de rede familiar através de
/ etc / network / interfaces . Para fazer isso, o próprio arquivo indica que você precisa instalar o utilitário
ifupdown . Instale-o:
apt-get install ifupdown
Agora abra o arquivo de configurações iniciais no netplan
nano /etc/netplan
e comente todo o seu conteúdo para que não haja conflitos.
Em seguida, abra o arquivo de configurações de rede
nano /etc/network/interfaces
E adicione a ele:
para IP estático
auto ___ iface ___ inet static address IP- netmask gateway dns-nameservers 77.88.8.7 77.88.8.3
para dinâmico (DHCP)
auto ___ iface ___ inet dhcp
Reinicialize o servidor
reboot
Se você usar esta opção para configurações de rede, nas configurações de Firewall, poderá desativar completamente o Webmin e usar a opção de configuração no spoiler (embora a variante do Webmin também funcione)
Agora você precisa habilitar a passagem de pacotes através do nosso servidor. Abra o arquivo
/etc/sysctl.conf nano /etc/sysctl.conf
Procuramos
a string
net.ipv4.ip_forward = 1 e a descomentamos. Se o valor for
0 , altere para
1 .
Digite o comando para aplicar a configuração
sysctl -p /etc/sysctl.conf
Após configurar a rede, recomendo que você vá diretamente ao terminal e continue a trabalhar nele. Para fazer isso, se você não selecionou o OpenSSH durante a fase de instalação, instale-o.
apt-get install ssh
Por padrão, o SSH já está configurado para o login de usuário / senha na porta 22, mas você pode configurá-lo por si mesmo através, por exemplo, de uma chave de autorização e com outra porta para proteger o servidor contra ataques externos. Como fazer isso está cheio de informações na Internet.
Como terminal, eu uso o XShell. Você pode usar o que preferir.
Não precisamos de um servidor DHCP e uma segunda placa de rede, pois redirecionaremos as solicitações do usuário para o nosso proxy usando o próprio roteador.
A fundação está lançada. Agora vamos instalar e configurar o Squid.
3.2 Instalando e configurando o Squid com suporte HTTPS e filtragem de lista
3.2.1 Construir e instalar o SquidComo não há um pacote Squid pronto com suporte a SSL nos repositórios, você precisará montá-lo manualmente a partir da fonte. Primeiro, abra o arquivo com os repositórios.
nano /etc/apt/sources.list
Nela, removemos o comentário (exclua # no início) das linhas que começam com
deb-src .
Depois disso, atualizaremos os pacotes.
apt-get update
Em seguida, instale as ferramentas de montagem.
apt-get install fakeroot build-essential devscripts
E adicione todos os pacotes necessários para a montagem.
apt-get build-dep squid3
Instale a biblioteca para suporte SSL.
apt-get install libssl1.0-dev
Vamos para a pasta inicial e crie uma pasta para a montagem, definindo imediatamente os direitos necessários.
cd ~ mkdir build chown _apt:root build
Vá para a pasta criada e baixe as fontes do Squid.
cd build apt-get source squid3
Uma pasta aparecerá na pasta de construção com o nome squid3 e o número da versão. No Ubuntu 18.04.3, é 3.5.27. Vamos entrar nisso.
cd squid3-3.5.27
Antes da montagem, você deve especificar opções. Abra o arquivo com eles.
nano debian/rules
Estamos procurando uma lista de opções, como na figura

Adicione as seguintes opções.
--enable-ssl \ --enable-ssl-crtd \ --with-openssl
Observe que as opções já foram adicionadas à imagem e o caractere
"\" deve aparecer após cada linha nas opções,
exceto a última .
Então, tudo está pronto para montagem. Agora vamos para a pasta de origem do Squid, embora você já deva estar nela.
cd ~/build/squid3-3.5.27
E insira o comando para construir.
debuild -d
A montagem vai demorar muito, levei uma média de 2 a 4 horas. Depende da velocidade do computador. No final da montagem, você verá um erro de assinatura do pacote. Isso é normal - ignore o erro.
Agora vá para a pasta Build.
cd ~/build
E instale o Squid.
dpkg -i squid*.deb
Ocorre imediatamente um erro sobre dependências não satisfeitas e insira o comando
apt-get install -f
Após a instalação, marcamos os pacotes para que não sejam substituídos após a atualização do sistema.
apt-mark hold squid apt-mark hold squid-common apt-mark hold squidclient
3.2.2 Configurando o Squid e a filtragemEntão, o Squid está instalado, resta configurá-lo para nossas necessidades.
Todas as configurações estão no arquivo
/etc/squid/squid.conf . Ele contém muitos comentários e, à primeira vista, parece muito complicado, mas na verdade não há nada super complicado. Para começar, limparemos os comentários copiando primeiro o original, se você quiser estudá-lo de repente com mais detalhes. Por conveniência, iremos diretamente para a pasta com o Squid.
cd /etc/squid cp squid.conf squid.conf.backup cat squid.conf.backup | egrep "^[^#]" > squid.conf
Agora abra o squid.conf
nano squid.conf
Como você pode ver, ele limpou os comentários e deixou de ser tão volumoso quanto parecia.
Sob o spoiler, postarei meu arquivo com configurações que funcionam perfeitamente, e abaixo descreverei em blocos o que e como.
Configuração do Squid.conf acl localnet src 192.168.0.0/24 acl worktime time 08:00-15:00 acl SSL_ports port 443 acl Safe_ports port 80 # http 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 CONNECT method CONNECT acl blacklist url_regex -i "/etc/squid/blacklist" acl whitelist url_regex -i "/etc/squid/whitelist" http_access allow localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow CONNECT http_access deny blacklist http_access allow whitelist http_access deny all worktime http_access allow all http_port 3128 http_port 3129 intercept https_port 3130 intercept ssl-bump options=ALL:NO_SSLv3:NO_SSLv2 connection-auth=off cert=/etc/squid/squid.pem always_direct allow all sslproxy_cert_error allow all sslproxy_flags DONT_VERIFY_PEER acl blacklist_ssl ssl::server_name_regex -i "/etc/squid/blacklist_ssl" acl whitelist_ssl ssl::server_name_regex -i "/etc/squid/whitelist_ssl" acl step1 at_step SslBump1 ssl_bump peek step1 ssl_bump terminate blacklist_ssl ssl_bump splice whitelist_ssl ssl_bump terminate all worktime ssl_bump splice all sslcrtd_program /usr/lib/squid/ssl_crtd -s /var/lib/ssl_db -M 4MB # cache_mem 512 MB maximum_object_size_in_memory 512 KB memory_replacement_policy lru cache_dir aufs /var/spool/squid 2048 16 256 # access_log daemon:/var/log/squid/access.log squid logfile_rotate 1 coredump_dir /var/spool/squid 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
O primeiro bloco é o seguinte.
acl localnet src 192.168.0.0/24 acl worktime time 08:00-15:00 acl SSL_ports port 443 acl Safe_ports port 80 # http 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 CONNECT method CONNECT
Ele é responsável pelos parâmetros acl padrão. Nele, na localnet, alteramos a rede local para a nossa e também adicionamos um tempo de trabalho (opcional). Acrescentei tempo de trabalho, visto que os professores costumam me procurar reclamando que não conseguem encontrar nada, tudo é inacessível. É claro que estou feliz que tudo funcione como deveria, mas, francamente, estou cansado de ouvir isso. Agora, estou relatando a alegação de que, depois das 15:00, a filtragem é desativada e eles podem encontrar (quase) livremente (quase) as informações de que precisam. Você pode adicionar seu tempo ou deixar a filtragem o tempo todo sem adicionar essa ACL.
O segundo bloco define as listas de sites permitidos e proibidos para HTTP e tem a seguinte aparência.
acl blacklist url_regex -i "/etc/squid/blacklist" acl whitelist url_regex -i "/etc/squid/whitelist"
Nós adicionaremos listas de sites permitidos e proibidos posteriormente, e eles serão colocados nos arquivos especificados em acl.
O terceiro bloco determina os parâmetros de acesso via HTTP e se parece com isso
http_access allow localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow CONNECT http_access deny blacklist http_access allow whitelist http_access deny all worktime http_access allow all
Aqui o item
http_access allow CONNECT é necessário, pois sem ele o Squid não deixaria ninguém na Internet. A seguir, estão as regras nas listas em preto e branco. Os parâmetros
negar e
permitir negam e
permitem acesso, respectivamente. Depois deles, vem a regra de banir completamente todo o tráfego HTTP durante o horário comercial. Se você não definiu o horário de trabalho, exclua o horário de
trabalho e a proibição será permanente. Um ponto importante é a ordem das regras, pois o Squid as lê de cima para baixo
O quarto bloco define as configurações de porta do Squid.
http_port 3128 http_port 3129 intercept https_port 3130 intercept ssl-bump options=ALL:NO_SSLv3:NO_SSLv2 connection-auth=off cert=/etc/squid/squid.pem
O primeiro parâmetro é necessário para que o erro "ERRO: Nenhuma porta de proxy direto configurada" não apareça infinitamente nos logs. Preenche o log e, portanto, a memória. Um erro comum, mas, por alguma razão, em nosso segmento ru não encontrei como corrigi-lo, fóruns estrangeiros ajudaram. O segundo parâmetro define a porta do protocolo HTTP.
Interceptação significa transparência de proxy, ou seja, não será necessário prescrever configurações em cada computador.
O terceiro parâmetro define a porta HTTPS e suas opções. Esta é uma longa fila. O arquivo
squid.pem é o nosso certificado, que criaremos posteriormente.
O quinto bloco define os parâmetros da conexão SSL com o Squid. Em particular, ele indica que todo o tráfego deve ser direcionado imediatamente para a Internet, sem o uso de caches mais altos, e os dois últimos permitem conexões mesmo com erros de verificação de certificado, pois a decisão de visitar esse recurso deve ser feita pelo usuário, não pelo servidor. Parece assim.
always_direct allow all sslproxy_cert_error allow all sslproxy_flags DONT_VERIFY_PEER
O sexto bloco define os parâmetros acl das listas "preta" e "branca", que serão criadas posteriormente, bem como a profundidade de interceptação do tráfego HTTPS.
acl blacklist_ssl ssl::server_name_regex -i "/etc/squid/blacklist_ssl" acl whitelist_ssl ssl::server_name_regex -i "/etc/squid/whitelist_ssl" acl step1 at_step SslBump1
O sétimo bloco determina os parâmetros de acesso usando o protocolo HTTPS. Aqui, a proibição e a permissão já são responsáveis pelo
término e pela
emenda, respectivamente. Novamente, não esqueça de remover o
horário de trabalho se você não tiver um horário de trabalho especificado.
ssl_bump peek step1 ssl_bump terminate blacklist_ssl ssl_bump splice whitelist_ssl ssl_bump terminate all worktime ssl_bump splice all sslcrtd_program /usr/lib/squid/ssl_crtd -s /var/lib/ssl_db -M 4MB
O oitavo bloco define o cache e o log do nosso Squid. Aqui, é importante observar apenas o parâmetro
logfile_rotate , que indica o número de dias durante os quais o log é armazenado.
# cache_mem 512 MB maximum_object_size_in_memory 512 KB memory_replacement_policy lru cache_dir aufs /var/spool/squid 2048 16 256 # access_log daemon:/var/log/squid/access.log squid logfile_rotate 1 coredump_dir /var/spool/squid 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
Isto completa a configuração do squid.conf. Salvamos o arquivo e prosseguimos para a criação do certificado e das listas.
Vamos para a pasta com o Squid
cd /etc/squid/
E digite o seguinte comando para criar o certificado
openssl req -new -newkey rsa:1024 -days 36500 -nodes -x509 -keyout squid.pem -out squid.pem
Em seguida, você precisará inserir os dados do certificado. O certificado é válido por 100 anos para esquecê-lo por um longo tempo. É necessário apenas para Proxy.
Agora crie nossos arquivos de lista.
touch blacklist touch whitelist cp whitelist whitelist_ssl cp blacklist blacklist_ssl
Os sites são listados na forma de expressões regulares. Por exemplo, para desbloquear mail.ru, abra a
lista de permissões nano whitelist
e adicione a seguinte expressão a ele.
mail\.ru
Agora bloqueie Games.Mail.ru. Vamos abrir nossa
lista negra nano blacklist
e escreva a seguinte expressão nele
games\.mail\.ru
Como, regra geral, um bloqueador de lista negra está acima da nossa lista branca, quando você alterna para mail.ru, o site será aberto conforme o esperado (exceto para fotos, mas mais sobre isso mais tarde), e se você tentar mudar para Jogos, nos Squid não vai deixar ir.
Alguns sites têm muitos subdomínios, subdomínios etc. Como, por exemplo, mail.ru armazena suas imagens em imgsmail.ru. Em relação a outros sites semelhantes, é necessário abrir o site desejado em qualquer navegador (eu uso o Chrome) e, posteriormente, as ferramentas do desenvolvedor (no Chrome, elas são chamadas pressionando F12).

Vá para a guia Fontes e veja de que outros recursos o site carrega informações.
Após adicionar sites, copie-os para as listas de HTTPS.
cp whitelist whitelist_ssl cp blacklist blacklist_ssl
Dica de preenchimento de listaCrie um arquivo de texto sem formatação no seu computador, encontre e copie a lista de sites permitidos, adicione-a ao seu. Em um notebook comum, substitua automaticamente o ponto por um ponto de barra (\.) E exclua o desnecessário pela mesma substituição automática (www, http, o caractere "/" etc.). Em seguida, esse arquivo, usando o terminal, pode ser imediatamente copiado para as folhas no servidor.
Agora verifique a configuração.
squid -k check
Se tudo estiver bem, pare o Squid.
/etc/init.d/squid stop
Reconstruir o cache
squid -z
E execute o Squid novamente
/etc/init.d/squid start
Após qualquer alteração nas listas ou na configuração do Squid, ele deve ser recarregado com o comando
/etc/init.d/squid restart
Você também pode alterar a página de restrição de acesso (funciona apenas em HTTP) no caminho
/ usr / share / squid / errors / ~ Russian-1251 . Procure na pasta o arquivo
ERR_ACCESS_DENIED e edite-o. A sintaxe do arquivo é HTML.
3.3 Monitorando o status do servidor e configurando o firewall
Para monitorar o status do nosso servidor, instale o utilitário
Webmin , com a ajuda da qual configuramos nosso Firewall. Além disso, você pode monitorar o status da CPU, RAM, etc., atualizar pacotes, adicionar e configurar componentes e muito mais. Possui terminal próprio, embora desajeitado. O utilitário funciona em qualquer navegador, portanto, você pode conectar-se ao nosso servidor a partir de qualquer computador na rede, o que é conveniente o suficiente, embora não seja seguro. Se desejado, a conexão pode ser limitada apenas a endereços IP individuais no "Controle de acesso IP" no próprio Webmin.
Antes de iniciar a instalação, adicione o repositório Webmin. Abra o sources.list.
nano /etc/apt/sources.list
E adicione a linha abaixo.
deb http:
Agora instale a chave GPG com a qual os pacotes são assinados no repositório Webmin
cd /root wget http:
Em seguida, atualizamos a lista de pacotes e instalamos o utilitário
apt-get update apt-get install webmin
Você pode se conectar ao servidor em qualquer navegador digitando a barra de endereço
IP__:10000
Por padrão, o Webmin se conecta via SSL e a maioria dos navegadores gera um erro de certificado não confiável. Para não escolher confiar sempre, desative o SSL. Para fazer isso, abra o arquivo
/etc/webmin/miniserv.conf nano /etc/webmin/miniserv.conf
Encontre a string
ssl = 1 e substitua-a por
ssl = 0 . No mesmo arquivo, você pode alterar a porta de conexão. Por padrão, é 10000. Você pode colocar qualquer um grátis.
Após conectar-se ao Webmin, vá para
Webmin -> Configuração do Webmin e mude o idioma para o russo. Então vá para
Rede -> Firewall . Por padrão, nosso firewall está limpo. Vamos para o final e ao lado de "
Ativar na inicialização", selecione
"Sim" . Clique em
"Aplicar configuração" . Agora, as configurações do nosso Firewall estão especificadas no arquivo
/etc/webmin/firewall/iptables.save e são iniciadas com o sistema. Se não houver esse arquivo, verifique o que está escrito na linha "Arquivo com regras" na guia Firewall no Webmin. Vamos abri-lo no terminal.
nano /etc/webmin/firewall/iptables.save
Vamos para o bloco
* nat e, no final, antes do
COMMIT, adicionamos as seguintes regras.
-A PREROUTING -p tcp -m tcp -i _ --dport 80 -j DNAT --to-destination ip_:3129 -A PREROUTING -p tcp -m tcp -i _ --dport 443 -j REDIRECT --to-ports 3130
Essas regras direcionam o tráfego para as portas 80 (HTTP) e 443 (HTTPS) do servidor para as portas do nosso Squid. Aqui apresentei duas variantes das regras com DNAT e REDIRECT. Você pode usar os dois ou escolher uma opção, colocando as portas apropriadas.
Configurar o FIrewall para configuração de rede alternativaEsta opção é adequada se você usou a configuração de rede alternativa descrita acima.
Primeiro, crie um arquivo com as regras do nosso Firewall e dê o direito de executar.
touch /etc/nat chmod +x /etc/nat
Abra
nano /etc/nat
E adicione o seguinte conteúdo
#!/bin/sh #Firewall iptables -t nat -A PREROUTING -p tcp -m tcp -i _ --dport 80 -j DNAT --to-destination ip_:3129 iptables -t nat -A PREROUTING -p tcp -m tcp -i _ --dport 443 -j REDIRECT --to-ports 3130
Como no caso do Webmin, apresentei duas variantes das regras com DNAT e REDIRECT. Você pode usar os dois ou escolher uma opção, colocando as portas apropriadas.
Agora adicione nosso arquivo ao download imediatamente após iniciar a rede. Abra o arquivo de configurações de rede
nano /etc/network/interfaces
E adicione a linha na parte inferior do arquivo
post-up /etc/nat
PS: a vantagem dessa opção é que você pode adicionar suas próprias regras no futuro apenas editando o arquivo / etc / nat. O Webmin é um pouco mais complicado.
Isso completa a configuração do servidor. Reinicie-o.
reboot
E vamos prosseguir com a configuração do roteador MikroTik.
3.4 Configurando um roteador MikroTik para redirecionar o tráfego para o proxy
Assumimos que você já baixou o utilitário
WinBox para controle remoto, a Internet e a rede local estão configuradas, o firewall do roteador está limpo. você sabe o nome da interface da LAN (você pode vê-lo em
IP - DHCP Server - DHCP ).
a) Vá para WinBox, vá para
IP - DHCP Server - Leases . Na lista, procuramos computadores IP para os quais a filtragem não funcionará (diretor, gerenciamento), clique com o botão direito do mouse neles e selecione
Tornar estático no menu. Ao lado deles, a letra "D" deve desaparecer, o que significa dinâmico. Agora, esses endereços serão imediatamente atribuídos estaticamente a esses computadores, independentemente do tempo de concessão, pelo endereço MAC. Se o laptop for usado via Wi-Fi e cabo, você deverá selecionar Tornar estático nos dois endereços MAC.
b) Em seguida, vá para
IP - Firewall - Address Lists e clique no sinal de
adição azul
"+" . No campo
Nome , especifique o nome do nosso grupo de endereços não filtrados
brilhantes , por exemplo, "Administradores". No campo
Endereço , especifique um endereço IP daqueles aos quais foi atribuído um estático. Repetimos isso para cada endereço, selecionando nosso grupo no campo Nome com uma seta.
c) Vá para a guia
Mangle no mesmo
IP - Firewall e clique em
"+" . Uma janela com guias será aberta. Na guia
Geral , preencha os seguintes campos:
Chain - Prerouting Src. Address - __proxy Protocol - 6 (tcp) Dst. Port - 80 In. Interface - __
Na guia
Ação , verifique o valor
Aceitar e clique em OK.
Repita o processo, mas no campo
Dst. Porta defina o valor para
443 .
d) Clique em "+" novamente e, na guia
Geral , preencheremos novamente os seguintes campos:
Chain - Prerouting Protocol - 6 (tcp) Dst. Port - 80 In. Interface - __
Vá para a guia Avançado e no campo Src. Lista de endereços selecione nossa lista de endereços de gerenciamento " Administradores ". Certifique-se de clicar na caixa exibida ao lado da lista. Um ponto de exclamação “!” Aparecerá . , significando lógico NÃO ou NEGATIVO.Vá para a guia Ação e preencha os campos: Action - mark routing New Routing Mark - to_proxy Passthrough -
Clique em OK e execute as mesmas ações, mas no campo Dst. Porta especifique o valor 443 .e) Finalmente, adicione a última regra. Clique no sinal de mais e preencha os seguintes campos na guia Geral : Chain - Prerouting In. Interface - __ Routing Mark - to_proxy
Como resultado, o seguinte deve acontecer com seus parâmetros. A ordem é importante!
f) Nós seguimos rotas IP e pressionamos "+". Preencha os seguintes campos: Dst. Address - 0.0.0.0/0 Gateway - __proxy Routing Mark - to_proxy
Clique em OK e pronto. Com o servidor ativado, todo o tráfego HTTP e HTTPS passará pelo nosso Squid.3.5 Configuração alternativa para MikroTik e outros roteadores
MikroTik, , ( ). , Squid. , .
) , , , Proxy MikroTik. ,
) 3.4 . 3.4 (, ,
) , IP ), — .
IP — Routes , ,
( , , ). => . , .
) Squid
cd /etc/squid/
nano squid.conf
:
acl localnet…
acl admins src "/etc/squid/admins-ip" # IP acl students src "/etc/squid/students-ip" # IP
, , . .
acl whitelist-stud url_regex -i "/etc/squid/whitelist-stud" #
http_access deny blacklist
http_access allow admins # http_access allow students whitelist-stud # http_access deny students #
, ( IP) ( ). admins , , IP ( ) acl blacklist.
.
acl whitelist-stud_ssl ssl::server_name_regex -i "/etc/squid/whitelist-stud_ssl"
ssl_bump terminate blacklist_ssl
ssl_bump splice admins ssl_bump splice students whitelist-stud_ssl ssl_bump terminate students
, .
.
) IP-.
touch admins-ip touch students-ip
.
touch whitelist-stud cp whitelist-stud whitelist-stud_ssl
Adicione os endereços IP e sites necessários às listas apropriadas. Na lista de sites dos alunos, você pode copiar a lista dos professores removendo sites que não são necessários para os alunos. A cópia de arquivos no Linux é feita pelo comando cp < > < >
Reinicie o Squid /etc/init.d/squid restart
) , , Proxy. DHCP- . , , MAC.
MikroTik:IP — DHCP Server — Network . Gateway Proxy-. . , . , , ( ).
:, DHCP-, , :)
: IP , Squid IP- . , - Proxy , .
4.
, . Linux Ubuntu 18.04 LTS, Squid HTTPS, , Proxy- DHCP-.
5.
«» Web Safety — Web Filter for Your Network , .
:
Kanlas ,
PetRiot ,
Barsook . .
6.
- , sudo , sudo -s .
- Squid \ , , , . .
- , . , 1000 .
, IP- Squid. Squid IP- — Mikrotik. , DHCP , . , , , IP . — Barsook- Squid ( 50) 1 . , Squid . , top .
- , , ( ), .
UPD1: Firewall
UPD2: , Squid.
UPD3: 3.1 — , . .
Dmitry1986 .