Página 1 de 2

[Tutorial] Liberando ou bloqueando portas de saida por horário

Enviado: 06 Jul 2013 14:42
por marceloleaes
Buenas, tive uma necessidade em alguns clientes de bloquear ou liberar portas em determinados horários. Como o Endian não tem este recurso precisei bolar dois scripts para executar a tarefa. No exemplo vamos fechar a porta 80 e 443 com um script e depois teremos outro script responsável por liberar novamente estas portas. O agendamento dos scripts devem ser adicionados ao crontab e executados nos horários determinados. O script é básico, nada de mais... é o SED alterando as linhas que precisamos. Vamos aos exemplos ?

A sintaxe do comando é: sed -e '1,2s/TEXTO/NOVOTEXTO/g' /var/efw/outgoing/config >> /var/efw/outgoing/config.temporario

Com ele o SED vai alterar as linhas 1 e 2 do arquivo /var/efw/outgoing/config e gravar em um arquivo temporario. As regras de saida do Endian são salvas no seguinte formato:

Imagem

Perceba que a linha 1 e a linha 2 são as regras que pretendemos alterar, porta 80 e porta 443 , se rodarmos o comando SED alterando o texto ON para OFF a saida será a seguinte:

Imagem

Após rodarmos o comando SED precisamos aplicar e reiniciar para isto vamos utilizar o comando do Endian: /usr/local/bin/setoutgoing

Agora que você entendeu a "mágica" vamos aos scripts de exemplo necessários ?

Bloqueando as portas 80 e 443

Código: Selecionar todos

#!/bin/sh
# Bloqueia portas 80 e 443

sed -e '1,2s/on,tcp/off,tcp/g' /var/efw/outgoing/config >> /var/efw/outgoing/config.temporario
mv /var/efw/outgoing/config.temporario /var/efw/outgoing/config
/usr/local/bin/setoutgoing
exit 0 
Liberando as portas 80 e 443

Código: Selecionar todos

#!/bin/sh
# Libera portas 80 e 443

sed -e '1,2s/off,tcp/on,tcp/g' /var/efw/outgoing/config >> /var/efw/outgoing/config.temporario
mv /var/efw/outgoing/config.temporario /var/efw/outgoing/config
/usr/local/bin/setoutgoing
exit 0 
Simples não ?

Perceba que os scripts não removem as regras, somente desmarcam elas deixando inativas.

Imagem

Ela pode ser aplicada a qualquer linha do arquivo, basta informar a linha correta e o texto a ser alterado.


Agora é agendar no crontab para executar nos horários necessários.

Bom proveito  :)

Re:[Tutorial] Liberando ou bloqueando portas de saida por horário

Enviado: 07 Jul 2013 15:03
por brunoagne3
Matou a Pau! parabéns pelo totu...

Re:[Tutorial] Liberando ou bloqueando portas de saida por horário

Enviado: 07 Jul 2013 18:06
por marceloleaes
Tem que clicar ali no Thankyou  ;D hehehehe

Re:[Tutorial] Liberando ou bloqueando portas de saida por horário

Enviado: 07 Jul 2013 19:44
por reginaldo_barreto
Excelente solução.
:)

Re:[Tutorial] Liberando ou bloqueando portas de saida por horário

Enviado: 02 Out 2013 12:52
por Eduardo Jonck
O problema é que depois para deletar qualquer regra a interface gráfica não funciona mais , ou seja, se precisa ativar ou desativar qualquer regra ja era, não é possível. Precisamos verificar isso.

Re:[Tutorial] Liberando ou bloqueando portas de saida por horário

Enviado: 02 Out 2013 13:10
por Eduardo Jonck
Achei o erro, depois de executar o script do comando "sed" o arquivo é criado como "root", onde o mesmo deve ficar como "nobody" para que o apache interprete os comandos.

Fica a dica!!!

Re:[Tutorial] Liberando ou bloqueando portas de saida por horário

Enviado: 02 Out 2013 16:23
por marceloleaes
Não consegui reproduzir o problema, mas se tem, basta colocar "nobody" antes do comando do script no cron, assim executa como o nobody e não como root.

Re:[Tutorial] Liberando ou bloqueando portas de saida por horário

Enviado: 21 Nov 2013 17:39
por evertin
Boa tarde Pessoal,
Preciso criar um script pra bloquear a regra que libera o acesso completo da rede blue para vermelha.

Via putty rodei >  cd /var/efw/outgoing    e  cat config , ele mostrou na tela a regra  da rede blue:

on,,,,,ALLOW,,Liberar Rede Blue,on,BLUE,                    Acesso Full a Internet


No comentário do Eduardo Jonck , eu deveria também adicionar o nobody ao script.


Afinal pra bloquear a rede entre 13:00 e 11:59    e    liberar    entre 12:00 e  12:59  como ficariam os scripts ?


Obrigado.


Everton

Re:[Tutorial] Liberando ou bloqueando portas de saida por horário

Enviado: 22 Nov 2013 10:17
por Elton
eu acho que no seu tu teria que usar o sed para arrancar o blue dessa linha mais ai não sei o impacto, mais a logica teria que tirar o blue da linha 1 e 2 e depois quando for liberar colocar blue ai vou ver se penso melhor e te falo.abraços

Re:[Tutorial] Liberando ou bloqueando portas de saida por horário

Enviado: 05 Dez 2013 11:46
por evertin
Bom dia Galera.....
Complementando o Mega tutorial do Marcelo, consegui agendar os scripts para rede blue , desta forma todos os dias as 12:00 o cron executa o comando e libera o acesso completo a internet , dai as 13:00 horário que os funcionários voltam do almoço o cron executa o outro script e bloqueia tudo novamente. 


No meu exemplo fiz da seguinte forma:


1 - Criar 2 políticas de acesso negado, assim o acesso a internet só funciona entre 12:00 e 12:59

Imagem


Detalhes da política :

Imagem



2 - Criar o script liga-blue.sh em /etc/cron.daily


Imagem


3 - Criar o script desliga-blue.sh , não esquecendo que ambos os scripts devem ser salvos com a extensão  .sh


Imagem


4 - Dar as permissões no scripts criados, usando o putty.


Imagem


5 - Agendar a execução dos scripts , pra isso usamos o editor de texto ''nano''  que vai editar a tabela do cron.
comando:  nano /etc/crontab
digitamos:    00 12 * * * nobody /etc/cron.daily/liga-blue.sh
                      00 13 * * * nobody /etc/cron.daily//desliga-blue.sh

pra salvar ctrl + x    e  y para comfirmar.

Obs. Em todos os scripts é necessário sempre executar como usuário nobody como no meu exemplo.


6 - Reiniciar o serviço do Cron.


Imagem

Importante: A minha regra na saída do Firewall é a 23 , verifique a sua.

Agora é aguardar até o horário escolhido e verificar se tudo está liberado ou bloqueado..... rsrs


Fim.


Agradecimentos ao Marcelo Leães e Elton pelo apoio em mais está etapa.


Boa sorte a todos.


Everton

 

Re:[Tutorial] Liberando ou bloqueando portas de saida por horário

Enviado: 05 Dez 2013 17:23
por Leonardo.lima
A união faz a força....aqui faz mais conhecimento. :)

Re:[Tutorial] Liberando ou bloqueando portas de saida por horário

Enviado: 05 Dez 2013 17:34
por Elton
levo esse comigo "Colaborar atrai amigos, competir atrai inimigos ..."  ;)

Re:[Tutorial] Liberando ou bloqueando portas de saida por horário

Enviado: 18 Jun 2015 17:26
por Tornadeiro
Olá, pessoal, se eu pretender fazer esse bloqueio em ip's+mac's específicos, como poderia fazer?

Agradeço e aguardo.

Re:[Tutorial] Liberando ou bloqueando portas de saida por horário

Enviado: 18 Jun 2015 17:33
por marceloleaes
Mesmo procedimento, o que importa é a numeração da regra, o conteúdo não importa.

Re:[Tutorial] Liberando ou bloqueando portas de saida por horário

Enviado: 19 Jun 2015 10:26
por Tornadeiro
Quando ele cita que a regra de saída dele no firewall é a 23, no meu caso há uma regra para cada saída (uma para a porta 80 e uma outra para a 443), preciso fazer uma regra onde estejam as duas portas?