O Script foi muito útil em migrações que era necessário traduzir centenas de listas de acesso.
Para quem não está acostumado a usar Shell Script:
1. Crie o arquivo no Linux com o script abaixo com o nome ACL_Ciscox3com.v0.1.beta
2.Salve também a ACL modelo Cisco no mesmo diretório.
3. Altere as permissões para poder executar o arquivo com o comando chmod+x ACL_Ciscox3com.v0.1.beta.
4. Para executar use ./ACL_Ciscox3com.v0.1.beta.
5.Depois siga as instruções na tela.
#!/bin/bash # #Este script tem como objetivo, coverter ACL de equipamentos Cisco para equipamentos #3com, H3C, Huawei e HP Serie A, de forma rápida, prática e automatizada. # #Após a conversao, verifique as regras para garantir que tudo ocorreu de forma correta. # #Criado por Fernando Quintino # RULE=-2 END="!" S_HOST="host0" #Solicita ao usuario digitar o arquivo de origem echo Digite o nome do arquivo origem: read SOURCEFILE echo #Solicita ao usuario digitar o arquivo de destino echo Digite o nome do arquivo destino: read DESTFILE echo echo echo Arquivo Origem: $SOURCEFILE echo Arquivo Destino: $PWD/$DESTFILE echo #Alteracoes na sintaxe das regras cat $SOURCEFILE | sed -e 's/ /,/g' | sed -e 's/p,any,/p,source,0.0.0.0,255.255.255.255,/g' | sed -e 's/p,host,/p,source,host0,/g' | sed -e 's/,any,/,destination,0.0.0.0,255.255.255.255,/g' | sed -e 's/,host,/,destination,/g' | sed -e 's/,eq,/,destination-port,eq,/g' | sed -e 's/,0.0.0.0,255.255.255.255,/,any,/g' | sed -e 's/,/ /g' | sed -e 's/permit/%permit/g' | sed -e 's/deny/%block/g' | tr "%" "\n" > tempfile1 #Remover itens duplicados awk '!a[$0]++' tempfile1 > tempfile2 #Adicionar ! entre as ACLs cat tempfile2 | sed 's/access-list/!%access-list/g' | tr "%" "\n" > tempfile3 #Adicionar numero das rules while read ACL; do VERIF_S_HOST=$(echo $RULE $ACL | sed 's/ /,/g' | cut -f5 -d,) if [ $ACL == $END ]; then RULE=-2 elif [ $VERIF_S_HOST == $S_HOST ]; then RULE=$(($RULE+1)) echo "$RULE $ACL" | sed 's/host0 //' | sed 's/destination/0 destination/' >> tempfile4 else RULE=$(($RULE+1)) echo "$RULE $ACL" >> tempfile4 fi done < tempfile3 #Adiciona rule ao inicio das linhas e altera "access-list" para "acl number" cat tempfile4 | sed -e 's/^/rule /g' | sed -e 's/rule -1 access-list/acl number/g' > $DESTFILE #Remove os arquivos temporarios rm tempfile1 rm tempfile2 rm tempfile3 rm tempfile4
Caso algum leitor queira traduzir o script para Windows ou colaborar, sugerir ou atualizar o mesmo para Linux, sinta-se a vontade e compartilhe com a comunidade!
Até a próxima
Nenhum comentário:
Postar um comentário