Created
April 2, 2018 22:53
-
-
Save eriktonon/f368f3bbfca0ed0a00aa8b3fed47f956 to your computer and use it in GitHub Desktop.
Configuração de Centos Personalizada
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
#### DEPENDÊNCIAS #### | |
type dialog 1> /dev/null | |
if [ "$?" = 0 ]; then | |
echo "Dependencias Instaladas..." | |
else | |
echo "Instalando Dependencias!" | |
yum install -y dialog | |
fi | |
#### FUNÇÕES #### | |
sistema_operacional_func() | |
{ | |
SO=$(dialog --stdout --title 'Sistema Operacional' --menu 'Escolha seu Sistema Operacional:' 0 0 0 1 'CentOS 7') | |
menu_func | |
} | |
hostname_func() | |
{ | |
HostName=$(dialog --stdout --title 'Hostname' --inputbox 'Informe o novo HOSTNAME:' 0 0) | |
[ $? -eq 1 ] && menu_func | |
echo $HostName > /etc/hostname | |
/bin/hostname $HostName | |
dialog --title 'Aviso' --msgbox 'Operação realizada com sucesso!' 5 35 | |
menu_func | |
} | |
interfaces_rede_func() | |
{ | |
dinamico() | |
{ | |
FILE='/etc/sysconfig/network-scripts/ifcfg-'$INTERFACE | |
cat > $FILE << EOM | |
DEVICE=$i | |
BOOTPROTO=dhcp | |
ONBOOT=yes | |
EOM | |
dialog --title 'Aguarde' --infobox '\nReiniciando interfaces de rede...' 0 0 | |
/etc/init.d/network restart | |
dialog --title 'Aviso' --msgbox 'Operação realizada com sucesso!' 5 35 | |
menu_func | |
} | |
statico() | |
{ | |
IP=$( dialog --stdout --inputbox 'Informe o IP:' 0 0 ) | |
[ $? -eq 1 ] && interfaces_rede_func | |
MASK=$( dialog --stdout --inputbox 'Informe a Máscara:' 0 0 ) | |
[ $? -eq 1 ] && interfaces_rede_func | |
GATEWAY=$( dialog --stdout --inputbox 'Informe o Gateway:' 0 0 ) | |
[ $? -eq 1 ] && interfaces_rede_func | |
DNS1=$( dialog --stdout --inputbox 'Informe o DNS Primário:' 0 0 ) | |
[ $? -eq 1 ] && interfaces_rede_func | |
DNS2=$( dialog --stdout --inputbox 'Informe o DNS Secundário:' 0 0 ) | |
[ $? -eq 1 ] && interfaces_rede_func | |
dialog --title 'Informações de Rede' --yesno '\nIPADDR='$IP'\nNETMASK='$MASK'\nGATEWAY='$GATEWAY'\nDNS Primário='$DNS1'\nDNS Secundario='$DNS2'\n\nAs informações estão corretas?' 0 0 | |
[ $? -eq 1 ] && interfaces_rede_func | |
FILE='/etc/sysconfig/network-scripts/ifcfg-'$INTERFACE | |
cat > $FILE << EOM | |
DEVICE=$INTERFACE | |
TYPE=Ethernet | |
IPADDR=$IP | |
NETMASK=$MASK | |
GATEWAY=$GATEWAY | |
ONBOOT=yes | |
EOM | |
echo "nameserver $DNS1" > /etc/resolv.conf | |
echo "nameserver $DNS2" >> /etc/resolv.conf | |
dialog --title 'Aguarde' --infobox '\nReiniciando interfaces de rede...' 0 0 | |
/etc/init.d/network restart | |
dialog --title 'Aviso' --msgbox 'Operação realizada com sucesso!' 5 35 | |
menu_func | |
} | |
INTERFACES=`ip a | grep \< | cut -d ':' -f 2` | |
COMANDO="dialog --stdout --title 'Interfaces de Rede' --menu 'Selecione a interface a ser editada: ' 0 0 0 " | |
for i in $INTERFACES | |
do | |
if [ "$i" != "lo" ]; then | |
COMANDO=$COMANDO"'$i' '' " | |
fi | |
done | |
INTERFACE=$(eval $COMANDO) | |
[ $? -eq 1 ] && menu_func | |
RESPOSTA=$(dialog --stdout --title 'Modo de Operação' --menu 'Selecione o modo de operação ' 0 40 0 \ | |
1 'Static' \ | |
2 'Dinâmico') | |
case $RESPOSTA in | |
1) statico ;; | |
2) dinamico ;; | |
*) interfaces_rede_func ;; | |
esac | |
} | |
nome_interfaces() | |
{ | |
INTERFACES=`ip a | grep \< | cut -d ':' -f 2` | |
sed -i 's/rhgb quiet/rhgb quiet net.ifnames=0 biosdevname=0/' /etc/default/grub | |
grub2-mkconfig -o /boot/grub2/grub.cfg | |
INT=0 | |
for i in $INTERFACES | |
do | |
if [ "$i" != "lo" ]; then | |
sed -i "s/$i/eth$INT/g" /etc/sysconfig/network-scripts/ifcfg-$i | |
mv /etc/sysconfig/network-scripts/ifcfg-$i /etc/sysconfig/network-scripts/ifcfg-eth$INT | |
INT=`expr $INT + 1` | |
fi | |
done | |
dialog --title 'Aviso' --msgbox 'Operação realizada com sucesso! NÃO ESQUEÇA DE REINICIAR AO SAIR!' 5 70 | |
} | |
firewall_func() | |
{ | |
limpa_regra_func() | |
{ | |
iptables -F | |
iptables -X | |
iptables -t nat -F | |
iptables -t nat -X | |
} | |
inicializacao_func() | |
{ | |
limpa_regra_func | |
cat > /etc/init.d/firewall.sh << EOM | |
#!/bin/bash | |
iptables -F | |
iptables -X | |
iptables -t nat -F | |
iptables -t nat -X | |
EOM | |
chmod +x /etc/init.d/firewall.sh | |
chmod +x /etc/rc.d/rc.local | |
echo "/etc/init.d/firewall.sh" >> /etc/rc.d/rc.local | |
} | |
MENU=$(dialog --stdout --title 'Firewall' --menu 'Selecione uma opção:' 0 0 0 \ | |
1 'Limpar regras de Fiewall' \ | |
2 'Adicionar script para limpar regras de Firewall na inicialização do sistema' \ | |
3 'Voltar ao Menu Anterior') | |
case $MENU in | |
1) limpa_regra_func ;; | |
2) inicializacao_func ;; | |
3) menu_func ;; | |
*) menu_func ;; | |
esac | |
dialog --title 'Aviso' --msgbox 'Operação realizada com sucesso!' 5 35 | |
firewall_func | |
} | |
selinux_func() | |
{ | |
MODO_ATUAL=`cat /etc/selinux/config | grep ^SELINUX= | cut -d '=' -f 2` | |
echo $MODO_ATUAL | |
MENU=$(dialog --stdout --title 'Menu' --menu 'Modo Atual: '$MODO_ATUAL'\nNovo Modo:' 0 0 0 \ | |
1 'Disabled (Necessário Reiniciar)' \ | |
2 'Permissive' \ | |
3 'Enforcing (Necessário Reiniciar)' \ | |
4 'Voltar ao Menu Anterior') | |
case $MENU in | |
1) sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config ;; | |
2) sed -i 's/^SELINUX=.*/SELINUX=permissive/' /etc/selinux/config; setenforce 0 ;; | |
3) sed -i 's/^SELINUX=.*/SELINUX=enforcing/' /etc/selinux/config ;; | |
4) menu_func ;; | |
*) menu_func ;; | |
esac | |
dialog --title 'Aviso' --msgbox 'Operação realizada com sucesso!' 5 35 | |
menu_func | |
} | |
exit_func() | |
{ | |
dialog --title 'Reiniciar' --yesno '\nVocê deseja reiniciar o sistema operacional?' 0 0 | |
if [ $? -eq 1 ]; then | |
clear | |
exit | |
else | |
shutdown -r now | |
fi | |
} | |
menu_func() | |
{ | |
MENU=$(dialog --stdout --title 'Menu' --menu 'Selecione uma opção:' 0 0 0 \ | |
1 'Alterar Hostname' \ | |
2 'Interfaces de Rede' \ | |
3 'Firewall' \ | |
4 'SElinux' \ | |
5 'Alterar o nome das interfaces de rede para ethX' \ | |
6 'Alterar Sistema Operacional' \ | |
7 'Exit') | |
case $MENU in | |
1) hostname_func ;; | |
2) interfaces_rede_func ;; | |
3) firewall_func ;; | |
4) selinux_func ;; | |
5) nome_interfaces ;; | |
6) sistema_operacional_func ;; | |
7) exit_func ;; | |
*) menu_func ;; | |
esac | |
} | |
#### INICIO DO PROGRAMA #### | |
dialog --title 'Obrigado Por Usar meu Script!' --msgbox 'Designed and Developed by Erik Tonon .' 5 55 | |
sistema_operacional_func | |
menu_func |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment