Shell script para alterar sintaxes de comando.

1. Shell script para alterar sintaxes de comando.

Jvictor
jvictor88

(usa Kali)

Enviado em 23/05/2019 - 16:30h

Pessoal,
boa tarde, trabalho com firewalls de diferentes fabricantes estou com o seguinte caso.

Preciso que essa sintaxe:

Sintaxe Juniper:
set security policies from-zone USERS-10 to-zone Untrust policy WEB-SERVER match source-address N_10.0.10.0_24
set security policies from-zone USERS-10 to-zone Untrust policy WEB-SERVER match destination-address N_100.200.200.0_24
set security policies from-zone USERS-10 to-zone Untrust policy WEB-SERVER match application junos-http
set security policies from-zone USERS-10 to-zone Untrust policy WEB-SERVER match application junos-https
set security policies from-zone USERS-10 to-zone Untrust policy WEB-SERVER then permit
set security policies from-zone USERS-10 to-zone Untrust policy WEB-SERVER then log session-init

Seja transformada nessa sintaxe:
Sintaxe fortigate:
edit 0
set srcintf USERS-10
set dstintf Untrust
set srcaddr N_10.0.10.0_24
set dstaddr N_100.200.200.0_24
set action accept
set schedule "always"
set service "junos-http" "junos-https"
set logtraffic all
next

Tentei com o sed e com o awk, mas por exemplo o "from-zone" "to-zone" aparece em toda linha não funciona para o que eu preciso. Eu pensei em uma forma de, os campos source-address/destination-address eu jogo em um arquivo, o from-zone/to-zone que aparecem somente na linha que tenha a string "then permit" eu passe para outro arquivo... até ai blza, mas o problema é colocar depois tudo em um unico arquivo.

Outra coisa que eu pensei foi um while, onde ele le a linha por linha, faça um awk em cada linha, para separar somente as colunas e me trazer só o source-destination-application-e quando encontrasse o "then permit", ele tbm separasse a coluna from-zone/to-zone. Mas não consegui montar isso na pratica.

Alguém tem algua ideia?

Obrigado,
João Victor


  


2. Re: Shell script para alterar sintaxes de comando.

Perfil removido
removido

(usa Nenhuma)

Enviado em 23/05/2019 - 17:31h

A Fortinet disponibiliza um converter.

https://www.fortinet.com/support/product-downloads.html?tab=tab-forticonverter



3. Re: Shell script para alterar sintaxes de comando.

Jvictor
jvictor88

(usa Kali)

Enviado em 23/05/2019 - 17:45h

Obrigado! Mas é pago :(



4. Re: Shell script para alterar sintaxes de comando.

Paulo
paulo1205

(usa Ubuntu)

Enviado em 24/05/2019 - 09:29h

E você espera que alguém aqui faça de graça para você?


... “Principium sapientiae timor Domini, et scientia sanctorum prudentia.” (Proverbia 9:10)


5. Re: Shell script para alterar sintaxes de comando.

Jvictor
jvictor88

(usa Kali)

Enviado em 24/05/2019 - 11:24h

Paulo,
eu não vim aqui no forum pedir para que façam por mim. Foi um pedido de ajuda, igual fazem nos outros tópico... Pq vc não vai lá nos outros tópicos, escrever o mesmo que você escreveu aqui? Saber "comando linux e lógica" não te torna melhor que ninguém ok? Te torna apenas habilidoso com linux... Só isso! Você com certeza um dia deve ter tido um inicio de carreira, e com certeza pediu ajuda, mesmo que não admita.

De qualquer forma, juntando tudo que eu vi na internet, eu consegui o que eu precisava, e não vejo problemas em compartilhar. O script abaixo, me ajudou no que eu precisava. Não 100%, mas adiantou bastante.

cat FW-rules-SRX-23-05 | while read line;
do
if [ $(echo $line | grep 'then log' | wc -l) -eq 1 ];then
echo "$line"
else
echo "$line" | awk '{print $10, $11, $12}'
fi
done

Obrigado!


6. Re: Shell script para alterar sintaxes de comando.

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 24/05/2019 - 18:25h


Boa noite JVictor.
Veja se ajuda....
awk  'BEGIN{printf "Sintaxe fortigate:\nedit 0\n"}
{if ($11~/source/) print "set srcintf" ,$5"\nset dstintf " $7"\nset srcaddr" ,$12;
else if ($11~/destination/) printf "set dstaddr " $12"\nset action accept\nset schedule \"always\"\n";
else if ($12~/junos-http/) printf "set service %s" ,"\""$12"\"";
else if ($11~/permit/) printf "\nset logtraffic all\n"}' texto.txt|sed 's/set service//2'
Sintaxe fortigate:
edit 0
set srcintf USERS-10
set dstintf Untrust
set srcaddr N_10.0.10.0_24
set dstaddr N_100.200.200.0_24
set action accept
set schedule "always"
set service "junos-http" "junos-https"
set logtraffic all



cat texto.txt
Sintaxe Juniper:
set security policies from-zone USERS-10 to-zone Untrust policy WEB-SERVER match source-address N_10.0.10.0_24
set security policies from-zone USERS-10 to-zone Untrust policy WEB-SERVER match destination-address N_100.200.200.0_24
set security policies from-zone USERS-10 to-zone Untrust policy WEB-SERVER match application junos-http
set security policies from-zone USERS-10 to-zone Untrust policy WEB-SERVER match application junos-https
set security policies from-zone USERS-10 to-zone Untrust policy WEB-SERVER then permit
set security policies from-zone USERS-10 to-zone Untrust policy WEB-SERVER then log session-init

Importante, Veja => echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver


7. Re: Shell script para alterar sintaxes de comando.

Jvictor
jvictor88

(usa Kali)

Enviado em 25/05/2019 - 22:46h

Marcelo, eu testei seu script mas infelizmente as regas não ficaram na ordem que eu preciso.

Eu coloquei apenas uma regra de firewall de exemplo, mas existem centenas dela, e ele ordenou apenas a primeira.

Mas de qualquer forma eu vou fuçar os parametros que vc usou, e acredito que muita coisa possa ser útil pra eu poder usar em outras seções de configuração, como os objetos de serviço e endereços.

MUITO OBRIGADO, PELA PACIÊNCIA E DISPOSIÇÃO EM AJUDAR. :)


8. Re: Shell script para alterar sintaxes de comando.

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 26/05/2019 - 00:33h


jvictor88 escreveu:

Marcelo, eu testei seu script mas infelizmente as regas não ficaram na ordem que eu preciso.

Eu coloquei apenas uma regra de firewall de exemplo, mas existem centenas dela, e ele ordenou apenas a primeira.

Mas de qualquer forma eu vou fuçar os parametros que vc usou, e acredito que muita coisa possa ser útil pra eu poder usar em outras seções de configuração, como os objetos de serviço e endereços.

MUITO OBRIGADO, PELA PACIÊNCIA E DISPOSIÇÃO EM AJUDAR. :)

Por nada jvictor88 .
Pena que não deu certo....
Fiquei um bom tempo "procurando por padrões", para montar o comando.....
Precisando, estou por aqui.... até quando não sei.... tem um pessoal inconveniente, que só frequenta o fórum para atormentar....
Paciência tem limites....
Bom, não vou "esticar" . . . .


VEJA => echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts