shieldscript - Script para defesa b醩ica do seu GNU/Linux

Publicado por Felipe Ruiz Peixoto (鷏tima atualiza玢o em 07/04/2015)

[ Hits: 3.691 ]

Homepage: https://www.ubuntu.com/

Download 6186.shieldscript

Download 1427907799.shieldscript (vers鉶 2)




Olá, uma das coisas que mais gosto de fazer em um GNU/Linux são scripts, eles facilitam muito a minha vida. :)

Acabei de criar um script para configurar uma proteção básica para meu sistema (Kali). Ele pode ser útil para pessoas que não possuem muito conhecimento em GNU/Linux a fim de se protegerem.

Estou publicando o script aqui para que seja melhorado por quem tiver mais ideias. Vou colocar ele no SourceForge também.

Precisa ter iptables e xterm instalado, e ser executado como superusuário.

Ele instala automaticamente vários pacotes: clamav-daemon, clamav-freshclam, clamtk (não usa), rkhunter, chkrootkit e firestarter (não usa). Veja a seguir um manual de como utilizar o script.

Para começar, abra o terminal, digite o comando su e depois sua senha para usar como superusuário.

Depois é só arrastar e soltar o arquivo para dentro do terminal (ou digitar o caminho até ele) e apertar enter para ver as opções:

Para instalar, use:

# /minhapasta/shieldscript -i

O terminal poderá fazer "uma ou duas" perguntas, uma delas é "Type your net ip (example 123.456.789.123/16):". Então você deve ver qual faixa de IP seu roteador utiliza e colocar aqui no formato mostrado no exemplo. Para facilitar, abra as informações da conexão clicando com o botão direto no ícone de rede perto do relógio. Para o número antes da barra procure sua máscara de sub-rede e troque os números 255 pelos números do seu endereço IP, deixando outros números como estão. Para o número depois da barra, conte quantos números 255 tem sua máscara e multiplique isto por 8. Este método não é correto mas funciona para redes domésticas simples.

No fim da instalação este script vai criar outro chamado "start_my_firewall" que deve ser executado sempre que você fizer seu login, bastando dar dois cliques sobre ele.

Para atualizar os programas de proteção use:

# /minhapasta/shieldscript -u

Para instalar e atualizar em seguida use:

# /minhapasta/shieldscript -iu

Para procurar e remover programas maliciosos do seu sistema e ativar o firewall use:

# /minhapasta/shieldscript -c

Para fazer isso depois de instalar e atualizar use:

# /minhapasta/shieldscript -a

Para "zerar" as configurações de firewall use:

# /minhapasta/shieldscript -f

E para desinstalar tudo use:

# /minhapasta/shieldscript -r

  



Vers鮡s atualizadas deste script

Vers鉶 2 - Enviado por Felipe Ruiz Peixoto em 01/04/2015

Changelog: Nova vers鉶 melhorada.

Download 1427907799.shieldscript


Esconder c骴igo-fonte

#!/bin/bash
#牋This program is free software; you can redistribute it and/or modify
#牋it under the terms of the GNU General Public License as published by
#牋the Free Software Foundation; either version 2 of the License, or
#牋(at your option) any later version.
#
#牋This program is distributed in the hope that it will be useful,
#牋but WITHOUT ANY WARRANTY; without even the implied warranty of
#牋MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.牋See the
#牋GNU General Public License for more details.
#
#牋You should have received a copy of the GNU General Public License
#牋along with this program; if not, write to the Free Software
#牋Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
#牋MA 02110-1301, USA.
#

## Version number of the script
VERSION=0.3

echo Shieldscript-Anti Hacker Linux Script provides basic protection configuration v. $VERSION
echo Need superuser permissions

## Installation function
Install(){
牋牋echo Installing needed packages
牋牋apt-get install --fix-missing -y clamav-daemon clamav-freshclam clamtk rkhunter chkrootkit firestarter

牋牋echo Blocking the ping in the firewall
牋牋iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

牋牋echo Blocking port scanners
牋牋iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
牋牋iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

牋牋echo Blocking tracertroute
牋牋iptables -A INPUT -p udp -s 0/0 -i eth1 --dport 33435:33525 -j DROP

牋牋echo Protecting against attacks, worms and tojans
牋牋iptables -A INPUT -m state --state INVALID -j DROP

牋牋iptables -A FORWARD -p tcp --dport 135 -i venet0 -j REJECT

牋牋iptables -N TROJAN
牋牋iptables -A TROJAN -m limit --limit 15/m -j LOG --log-level 6 --log-prefix "FIREWALL: trojan: "
牋牋iptables -A TROJAN -j DROP
牋牋iptables -A INPUT -p TCP -i venet0 --dport 666 -j TROJAN
牋牋iptables -A INPUT -p TCP -i venet0 --dport 4000 -j TROJAN
牋牋iptables -A INPUT -p TCP -i venet0 --dport 6000 -j TROJAN
牋牋iptables -A INPUT -p TCP -i venet0 --dport 6006 -j TROJAN
牋牋iptables -A INPUT -p TCP -i venet0 --dport 16660 -j TROJAN

牋牋echo Avoiding IP Spoofing in the firewall
牋牋echo 'Type your net ip (example 123.456.789.123/16):'
牋牋read faixadeip


牋牋#Bloqueia IP Spoofing para máquinas com interface de rede
牋牋#iptables -A INPUT -s 10.0.0.0/8 -i eth0 -j DROP
牋牋#iptables -A INPUT -s 172.16.0.0/8 -i eth0 -j DROP
牋牋#iptables -A INPUT -s 192.168.0.0/8 -i eth0 -j DROP
牋牋iptables -A FORWARD -i eth0 ! -s $faixadeip -j DROP
牋牋#Bloqueia IP Spoofing para máquinas com interface WiFi:
牋牋#iptables -A INPUT -s 10.0.0.0/8 -i wlan0 -j DROP
牋牋#iptables -A INPUT -s 172.16.0.0/8 -i wlan0 -j DROP
牋牋#iptables -A INPUT -s 192.168.0.0/8 -i wlan0 -j DROP
牋牋iptables -A FORWARD -i wlan0 ! -s $faixadeip -j DROP
牋牋#Bloqueia IP Spoofing para máquinas com interface com modens ADSL:
牋牋#iptables -A INPUT -s 10.0.0.0/8 -i ppp0 -j DROP
牋牋#iptables -A INPUT -s 172.16.0.0/8 -i ppp0 -j DROP
牋牋#iptables -A INPUT -s 192.168.0.0/8 -i ppp0 -j DROP
牋牋iptables -A FORWARD -i ppp0 ! -s $faixadeip -j DROP

牋牋#Garante a navegacao da maquina
牋牋#iptables -A INPUT -m state -state RELATED,ESTABLISHED -j ACCEPT

牋牋echo Saving firewall configurations and changing the rc.local
牋牋mkdir -p /usr/share/shieldscript
牋牋echo Making backup of your current rc.local, to restore use the option -f
牋牋cp -f -R /etc/rc.local /usr/share/shieldscript
牋牋chmod +x /usr/share/shieldscript/rc.local

牋牋echo Saving your firewall settings
牋牋iptables-save > /usr/share/shieldscript/conf
牋牋echo Making the script to enable firewall settings
牋牋echo '#!/bin/sh' > /usr/share/shieldscript/firescript
牋牋echo "echo Shieldscript v. $VERSION" >> /usr/share/shieldscript/firescript
牋牋echo "echo To activate your firewall please input your superuser password" >> /usr/share/shieldscript/firescript
牋牋echo 'su -c "iptables-restore /usr/share/shieldscript/conf"' >> /usr/share/shieldscript/firescript
牋牋echo "echo OK" >> /usr/share/shieldscript/firescript
牋牋echo "echo Press enter to exit" >> /usr/share/shieldscript/firescript
牋牋echo "read none" >> /usr/share/shieldscript/firescript
牋牋echo "exit 0" >> /usr/share/shieldscript/firescript
牋牋chmod +x /usr/share/shieldscript/firescript

牋牋## Create a script to start the firewall

牋牋echo '#!/bin/sh' > start_my_firewall
牋牋echo 'xterm -e /usr/share/shieldscript/firescript' >> start_my_firewall
牋牋chmod +x start_my_firewall

牋牋## TODO Start firescript at logon

牋牋#echo Creating shieldscriptfw in init.d to start the firewall
牋牋#echo '#!/bin/bash' > /etc/init.d/shieldscriptfw
牋牋#echo '#' >> /etc/init.d/shieldscriptfw
牋牋#echo '# /etc/init.d/shieldscriptfw' >> /etc/init.d/shieldscriptfw
牋牋#echo ' ' >> /etc/init.d/shieldscriptfw
牋牋#echo '### BEGIN INIT INFO' >> /etc/init.d/shieldscriptfw
牋牋#echo '# Provides:牋牋牋牋牋shieldscriptfw' >> /etc/init.d/shieldscriptfw
牋牋#echo '# Required-Start:牋牋$local_fs $syslog' >> /etc/init.d/shieldscriptfw
牋牋#echo '# Required-Stop:牋牋 $local_fs $syslog' >> /etc/init.d/shieldscriptfw
牋牋#echo '# Default-Start:牋牋 2 3 4 5' >> /etc/init.d/shieldscriptfw
牋牋#echo '# Default-Stop:牋牋牋0 1 6' >> /etc/init.d/shieldscriptfw
牋牋#echo '# Short-Description: Start shieldscript firewall configuration automatically' >> /etc/init.d/shieldscriptfw
牋牋#echo '# Description:牋牋牋 Start shieldscript firewall configuration' >> /etc/init.d/shieldscriptfw
牋牋#echo '### END INIT INFO' >> /etc/init.d/shieldscriptfw
牋牋#echo ' ' >> /etc/init.d/shieldscriptfw
牋牋#echo ' ' >> /etc/init.d/shieldscriptfw
牋牋#echo 'case "$1" in' >> /etc/init.d/shieldscriptfw
牋牋#echo 'start ) xterm /usr/share/shieldscript/firescript ;;' >> /etc/init.d/shieldscriptfw
牋牋#echo ' ' >> /etc/init.d/shieldscriptfw
牋牋#echo 'stop ) echo "OK." ;;' >> /etc/init.d/shieldscriptfw
牋牋#echo ' ' >> /etc/init.d/shieldscriptfw
牋牋#echo 'restart )echo "OK." ;;' >> /etc/init.d/shieldscriptfw
牋牋#echo ' ' >> /etc/init.d/shieldscriptfw
牋牋#echo '* ) echo "Invalid option" ;;' >> /etc/init.d/shieldscriptfw
牋牋#echo 'esac' >> /etc/init.d/shieldscriptfw
牋牋#chmod +x /etc/init.d/shieldscriptfw

牋牋#which update-rc.d
牋牋#if [ $? = 0 ]
牋牋#then
牋牋#牋 update-rc.d shieldscriptfw defaults
牋牋#else
牋牋#牋 chkconfig --add shieldscriptfw
牋牋#牋 chkconfig shieldscriptfw on
牋牋#fi


牋牋#echo '#!/bin/sh -e' > /etc/rc.local
牋牋#echo '# rc.local' >> /etc/rc.local
牋牋#echo '#' >> /etc/rc.local
牋牋#echo '# This script is executed at the end of each multiuser runlevel.' >> /etc/rc.local
牋牋#echo '# Make sure that the script will "exit 0" on success or any other' >> /etc/rc.local
牋牋#echo '# value on error.' >> /etc/rc.local
牋牋#echo '#' >> /etc/rc.local
牋牋#echo '# In order to enable or disable this script just change the execution' >> /etc/rc.local
牋牋#echo '# bits.' >> /etc/rc.local
牋牋#echo '#' >> /etc/rc.local
牋牋#echo '# By default this script does nothing.' >> /etc/rc.local
牋牋#echo '# Shieldscript firewall' >> /etc/rc.local
牋牋#echo "xterm /usr/share/shieldscript/firescript" >> /etc/rc.local
牋牋#echo 'exit 0' >> /etc/rc.local
牋牋#chmod +x /etc/rc.local
牋牋echo INSTALLATION FINISHED
}

Update(){
牋牋rkhunter --update
牋牋freshclam
}

FirewallReset(){
牋牋iptables -F
牋牋iptables -Z
牋牋iptables -X

牋牋mv /usr/share/shieldscript/rc.local牋/etc
牋牋chmod +x /etc/rc.local
牋牋rm -R /usr/share/shieldscript

牋牋echo Use a opcao -i para refazer o firewall

牋牋# iptables -P INPUT ACCEPT
牋牋# iptables -F
牋牋# iptables -A INPUT -i lo -j ACCEPT
牋牋# iptables -A INPUT -m state 杝tate ESTABLISHED,RELATED -j ACCEPT
牋牋# iptables -A INPUT -p tcp 杁port 22 -j ACCEPT
牋牋# iptables -P INPUT DROP
牋牋# iptables -P FORWARD DROP
牋牋# iptables -P OUTPUT ACCEPT
牋牋# iptables -L -v
}

Uninstall(){
牋牋FirewallReset
牋牋apt-get remove --fix-missing -y clamav-daemon clamav-freshclam clamtk rkhunter chkrootkit firestarter
牋牋rm -f -R /usr/share/shieldscript

牋牋#which update-rc.d
牋牋#if [ $? = 0 ]
牋牋#then
牋牋#牋 update-rc.d -f shieldscriptfw remove
牋牋#else
牋牋#牋 chkconfig shieldscriptfw off
牋牋#牋 chkconfig --del shieldscriptfw
牋牋#fi

牋牋#rm -f /etc/init.d/shieldscriptfw
牋牋echo Shieldscript v. $VERSION uninstalled
}

Check(){
牋牋rkhunter --check
牋牋chkrootkit
牋牋clamscan --bell --remove=yes -r -z -i
牋牋iptables-restore /usr/share/shieldscript/conf
}

Help(){
牋牋echo Syntax: anti-hacker-linux-script [option]
牋牋echo Options:
牋牋echo -i牋 ----牋 install
牋牋echo -u牋 ----牋 update
牋牋echo -c牋 ----牋 check the system
牋牋echo -iu牋----牋 install and update
牋牋echo -a牋 ----牋 install, update and check
牋牋echo -r牋 ----牋 uninstall
牋牋echo -h牋 ----牋 show this help text
牋牋echo -f牋 ----牋 reset firewall
牋牋echo -x牋 ----牋 exit
牋牋## Authors
牋牋echo 'Felipe Ruiz Peixoto "Felipeludo" <feliperuiz.sax.eletronic@gmail.com>'
}

case $1 in
牋牋"-h") Help ;;
牋牋"-u") Update ;;
牋牋"-c") Check ;;
牋牋"-i") Install ;;
牋牋"-iu") Install ; Update ;;
牋牋"-a") Install ; Update ; Check ;;
牋牋"-r") Uninstall ;;
牋牋"-f") FirewallReset ;;
牋牋"-x") exit 0 ;;
牋牋*) Help ;;
esac

Scripts recomendados

Anti Pop-UP Speedy

Minha solu玢o para monitorar m鷏tiplos term鬽etros no Slackware

Popcorn-Time via shell script

Detectar sistemas operacionais dos dispositivos na rede via TTL

Utilitario de montagem


  

Coment醨ios
[1] Coment醨io enviado por fabio em 23/03/2015 - 13:59h

Ótimo trabalho, meus parabéns!

[2] Coment醨io enviado por AlvesUeliton em 21/04/2015 - 20:37h


Bom, fui inventar de instalar o ESETnod32 bloqueou a internet. Com esse script isso nao acontece, nao e? Porque todo sistema antivirus Linux que testei, fico sem net, com excessao do clamav

[i]comentario enviado pelo UcBrowser num dispositivo nao totalmente compativel, por isso a falta de acentuaçao.[i]

[3] Coment醨io enviado por RuizBRX11 em 22/04/2015 - 13:51h


[2] Comentário enviado por AlvesUeliton em 21/04/2015 - 20:37h


Bom, fui inventar de instalar o ESETnod32 bloqueou a internet. Com esse script isso nao acontece, nao e? Porque todo sistema antivirus Linux que testei, fico sem net, com excessao do clamav

[i]comentario enviado pelo UcBrowser num dispositivo nao totalmente compativel, por isso a falta de acentuaçao.[i]


Creio que não, ele utiliza o antivirus clamav apenas em modo texto, juntamente com outros softwares de proteção, mas sem proteger em tempo real. Você pode usar ele para fazer checagens periódicas.
Aqui no meu Kali funciona sem nenhum problema, mas cuidado na hora de colocar sua faixa de IP, e sempre inicie ele antes de usar a internet, executando o arquivo start_my_firewall.
Obrigado :)


Contribuir com coment醨io




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts