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

Usar tag [Video] [Tutorial]
Avatar do usuário
marceloleaes
Administrator
Administrator
Mensagens: 1516
Registrado em: 10 Jun 2013 12:45
Localização: Novo Hamburgo
Idade: 41
Contato:
Status: Offline

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

Mensagem 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  :)
Editado pela última vez por marceloleaes em 06 Jul 2013 14:58, em um total de 1 vez.


"Transportai um punhado de terra todos os dias e fareis uma montanha." Confúcio

Avatar do usuário
brunoagne3
Newbie
Newbie
Mensagens: 21
Registrado em: 12 Jun 2013 13:24
Localização: Vitória - ES
Idade: 40
Contato:
Status: Offline

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

Mensagem por brunoagne3 »

Matou a Pau! parabéns pelo totu...

Avatar do usuário
marceloleaes
Administrator
Administrator
Mensagens: 1516
Registrado em: 10 Jun 2013 12:45
Localização: Novo Hamburgo
Idade: 41
Contato:
Status: Offline

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

Mensagem por marceloleaes »

Tem que clicar ali no Thankyou  ;D hehehehe
"Transportai um punhado de terra todos os dias e fareis uma montanha." Confúcio

Avatar do usuário
reginaldo_barreto
Newbie
Newbie
Mensagens: 16
Registrado em: 20 Jun 2013 00:10
Idade: 43
Contato:
Status: Offline

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

Mensagem por reginaldo_barreto »

Excelente solução.
:)
Reginaldo Barreto

Avatar do usuário
Eduardo Jonck
Administrator
Administrator
Mensagens: 56
Registrado em: 10 Jun 2013 17:35
Idade: 38
Contato:
Status: Offline

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

Mensagem 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.

Avatar do usuário
Eduardo Jonck
Administrator
Administrator
Mensagens: 56
Registrado em: 10 Jun 2013 17:35
Idade: 38
Contato:
Status: Offline

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

Mensagem 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!!!

Avatar do usuário
marceloleaes
Administrator
Administrator
Mensagens: 1516
Registrado em: 10 Jun 2013 12:45
Localização: Novo Hamburgo
Idade: 41
Contato:
Status: Offline

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

Mensagem 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.
"Transportai um punhado de terra todos os dias e fareis uma montanha." Confúcio

Avatar do usuário
evertin
Full Member
Full Member
Mensagens: 110
Registrado em: 26 Jun 2013 10:57
Status: Offline

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

Mensagem 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

Avatar do usuário
Elton
Administrator
Administrator
Mensagens: 1259
Registrado em: 10 Jun 2013 12:44
Status: Offline

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

Mensagem 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
"Colaborar atrai amigos, competir atrai inimigos ..."

Avatar do usuário
evertin
Full Member
Full Member
Mensagens: 110
Registrado em: 26 Jun 2013 10:57
Status: Offline

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

Mensagem 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

 
Editado pela última vez por evertin em 05 Dez 2013 11:59, em um total de 1 vez.

Leonardo.lima
Newbie
Newbie
Mensagens: 29
Registrado em: 03 Nov 2013 11:24
Status: Offline

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

Mensagem por Leonardo.lima »

A união faz a força....aqui faz mais conhecimento. :)

Avatar do usuário
Elton
Administrator
Administrator
Mensagens: 1259
Registrado em: 10 Jun 2013 12:44
Status: Offline

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

Mensagem por Elton »

levo esse comigo "Colaborar atrai amigos, competir atrai inimigos ..."  ;)
"Colaborar atrai amigos, competir atrai inimigos ..."

Tornadeiro
Newbie
Newbie
Mensagens: 10
Registrado em: 02 Jun 2014 15:09
Status: Offline

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

Mensagem por Tornadeiro »

Olá, pessoal, se eu pretender fazer esse bloqueio em ip's+mac's específicos, como poderia fazer?

Agradeço e aguardo.

Avatar do usuário
marceloleaes
Administrator
Administrator
Mensagens: 1516
Registrado em: 10 Jun 2013 12:45
Localização: Novo Hamburgo
Idade: 41
Contato:
Status: Offline

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

Mensagem por marceloleaes »

Mesmo procedimento, o que importa é a numeração da regra, o conteúdo não importa.
"Transportai um punhado de terra todos os dias e fareis uma montanha." Confúcio

Tornadeiro
Newbie
Newbie
Mensagens: 10
Registrado em: 02 Jun 2014 15:09
Status: Offline

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

Mensagem 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?

Responder

Voltar para “Video Aula e Tutoriais”