A relevância do bloqueio de acessos a recursos proibidos afeta qualquer administrador que possa ser oficialmente responsabilizado por não cumprir a lei ou as ordens das autoridades competentes.

Por que reinventar a roda se já existem programas e distribuições especializadas para nossas tarefas, como: Zeroshell, pfSense, ClearOS.
Outra questão levantada pela gerência: O produto usado tem certificação de segurança do nosso país?
Tivemos experiência com as distribuições mencionadas:
- Zeroshell — os desenvolvedores até nos ofereceram uma licença gratuita por 2 anos, mas o que nos interessava não executava a função crítica de modo lógico para nós;
- pfSense — respeito e honra, mas ao mesmo tempo é monótono, acostumar-se com a linha de comando do firewall FreeBSD não foi suficientemente conveniente para nós (acho que é questão de hábito, mas não era 'o caminho');
- ClearOS — em nosso hardware estava muito lento, não conseguimos chegar a testes sérios, então por que ter interfaces tão pesadas?
- Ideco SELECTA. O produto 'Aideco' é uma conversa à parte, é um produto interessante, mas por motivos políticos não é para nós, e também quero 'puxar' sobre a licença para o mesmo Linux, Roundcube, etc. De onde eles tiraram que ‘a partir do momento que modificam’ a interface, Python e tirando direitos de superusuário, podem vender um produto final composto por módulos desenvolvidos e aprimorados pela comunidade de internet distribuídos sob GPL&etc.
Entendo que agora serei alvo de críticas negativas pedindo para justificar detalhadamente minhas percepções subjetivas, mas quero dizer que esse nó da rede também é um balanceador de tráfego para 4 canais externos para a Internet, e cada canal tem suas particularidades. Outro ponto crítico foi a necessidade de um dos vários interfaces de rede funcionar em diferentes espaços de endereço, e eu estou pronto para reconhecer que não estou preparado para aplicar VLANs em qualquer lugar onde seja necessário ou não.Em uso, temos dispositivos como o TP-Link TL-R480T+ — eles não se comportam perfeitamente, no geral têm suas nuances. Essa parte no Linux foi conseguida em configurações razoáveis graças ao site oficial do Ubuntu. . E cada um dos canais pode "parar" a qualquer momento, assim como pode subir. Se você estiver interessado em um script que funcione no momento (isso merece uma publicação separada) — escreva nos comentários.
A solução em questão não se destaca como única, mas gostaria de fazer a pergunta: "Por que em uma empresa adaptar-se a produtos duvidosos de terceiros com requisitos de hardware exigentes quando se pode considerar uma alternativa?".
Se na Rússia há uma lista da Roskomnadzor, na Ucrânia — um aplicativo da Decisão do Conselho de Segurança Nacional (por exemplo, ), os gestores locais também estão atentos. Por exemplo, recebemos uma lista de sites proibidos, que, segundo a direção, prejudicam a produtividade no trabalho.
Ao conversar com colegas em outras empresas, onde todos os sites estão suspensos por padrão e o acesso a um site específico só pode ser concedido com a permissão do chefe, pensei respeitosamente e, após "refletir sobre o problema", percebi que a vida é boa e começamos nossa busca.
Tendo a oportunidade de não apenas olhar analiticamente o que é escrito nos "livros de donas de casa" sobre a filtragem de tráfego, mas também observar o que acontece nos canais de diferentes provedores, notamos as seguintes receitas (todas as capturas de tela estão um pouco cortadas, peço que entendam):
Provedor 1
— não se preocupa e impõe seus próprios servidores DNS e um proxy transparente. Bem, e daí?... Pelo menos temos acesso ao que precisamos (se precisarmos disso :))
Provedor 2
— acredita que seu provedor superior deve se preocupar com isso; a equipe de suporte do provedor superior até admitiu por que não consigo acessar o site não proibido que preciso. Acho que a imagem irá divertir você 🙂

Como se descobriu, eles traduzem os nomes dos sites proibidos em endereços IP e bloqueiam exatamente o IP (não se preocupam que neste IP possam estar hospedados 20 sites).
Provedor 3
— permite o tráfego para lá, mas não o permite de volta pelo caminho.
Provedor 4
— proíbe todas as manipulações com pacotes na direção indicada.
E o que fazer com VPNs (respeito ao navegador Opera) e plugins para navegadores? Brincando inicialmente com um nó Mikrotik, até tivemos uma receita pesada para L7, da qual posteriormente tivemos que nos afastar (os nomes proibidos podem ser muitos, é triste quando, além de suas responsabilidades diretas nas rotas, em 30 expressões a carga do CPU PPC460GT chega a 100%).
.
O que ficou claro:
DNS em 127.0.0.1 não é uma panaceia, as versões modernas dos navegadores permitem contornar esses problemas. Não é possível restringir todos os usuários a direitos limitados, e não devemos esquecer o grande número de DNS alternativos. A internet não é estática, e além de novos endereços DNS, sites proibidos compram novos endereços, mudam domínios de nível superior, podem adicionar/remover um caractere de seu endereço. Mas ainda assim, algo como isso pode sobreviver:
ip route add blackhole 1.2.3.4Seria bastante eficaz obter uma lista de endereços IP da lista de sites proibidos, mas, pelas razões mencionadas acima, mudamos para considerações sobre Iptables. Já havia um balanceador ativo na versão 7.5.1804 do CentOS Linux.
A internet do usuário deve ser rápida, e o navegador não deve esperar meio minuto, concluindo que a página não está disponível. Após longas pesquisas, chegamos a este modelo:
Arquivo 1 -> /script/denied_host, lista de nomes proibidos:
test.test
blablabla.bubu
torrent
pornoArquivo 2 -> /script/denied_range, lista de espaços de endereços e endereços proibidos:
192.168.111.0/24
241.242.0.0/16Arquivo-script 3 -> ipt.sh, executando tarefas com iptables:
# считываем полезную информацию из перечней файлов
HOSTS=`cat /script/denied_host | grep -v '^#'`
RANGE=`cat /script/denied_range | grep -v '^#'`
echo "Stopping firewall and allowing everyone..."
# сбрасываем все настройки iptables, разрешая то что не запрещено
sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -t nat -X
sudo iptables -t mangle -F
sudo iptables -t mangle -X
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
#решаем обновить информацию о маршрутах (особенность нашей архитектуры)
sudo sh rout.sh
# циклически обрабатывая каждую строку файла применяем правило блокировки строки
for i in $HOSTS; do
sudo iptables -I FORWARD -m string --string $i --algo bm --from 1 --to 600 -p tcp -j REJECT --reject-with tcp-reset;
sudo iptables -I FORWARD -m string --string $i --algo bm --from 1 --to 600 -p udp -j DROP;
done
# циклически обрабатывая каждую строку файла применяем правило блокировки адреса
for i in $RANGE; do
sudo iptables -I FORWARD -p UDP -d $i -j DROP;
sudo iptables -I FORWARD -p TCP -d $i -j REJECT --reject-with tcp-reset;
done
O uso do sudo é devido a um pequeno hack que temos para gerenciar através da interface WEB, mas, como mostrou a experiência de uso desse modelo por mais de um ano, a interface WEB não é tão necessária. Após a implementação, houve o desejo de armazenar a lista de sites em um banco de dados, etc. O número de hosts bloqueados é superior a 250 + uma dúzia de espaços de endereços. Realmente há um problema ao acessar sites via conexão https e, como administrador de sistema, tenho algumas queixas sobre os navegadores :), mas esses são casos particulares, a maioria das ativações de falta de acesso ao recurso ainda estão do nosso lado, além disso, conseguimos bloquear o Opera VPN, plugins como friGate e a telemetria da Microsoft.

Fonte: habr.com
