script iptables para bloquear tudo e liberar internet

49. Re: script iptables para bloquear tudo e liberar internet

  


50. Re: script iptables para bloquear tudo e liberar internet

Buckminster
Buckminster

(usa Debian)

Enviado em 12/06/2013 - 18:02h

#!/bin/bash
#
#Desabilitando o tráfego entre as placas
########################################
echo 0 > /proc/sys/net/ipv4/ip_forward
#
##Apagando e restaurando as chains e tabelas
############################################
iptables -Z # Zera as regras das chains
iptables -F # Remove as regras das chains
iptables -X # Apaga as chains
iptables -t nat -Z
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -Z
iptables -t mangle -F
iptables -t mangle -X
#
##Proteção contra ping, SYN Cookie, IP Spoofing e proteções do kernel
#####################################################################
echo 1 > /proc/sys/net/ipv4/tcp_syncookies #Syn Flood-DoS
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter #Ip Spoofing
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts #Sem ping e port scanners
echo 0 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses #Sem resposta remota
for i in /proc/sys/net/ipv4/conf/*; do
echo 0 > $i/accept_redirects #Sem redirecionar rotas
echo 0 > $i/accept_source_route #Sem traceroute
echo 1 > $i/log_martians #Loga pacotes suspeitos no kernel
echo 1 > $i/rp_filter #Ip Spoofing
echo 1 > $i/secure_redirects; done #Redirecionamento seguro de pacotes
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all #Sem ping e tracert
#
#Carregando os módulos.
#######################
modprobe ip_tables
modprobe iptable_nat
modprobe iptable_filter
modprobe iptable_mangle
#
##Definindo políticas padrões
#############################
iptables -P INPUT DROP # iptables a política padrão da chain INPUT é proibir tudo
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
#
##Liberando a Loopback
######################
iptables -A INPUT -i lo -j ACCEPT # adiciona regra na chain INPUT para liberar a loopback
#
##Regras de segurança na internet e de aceitação de pacotes
###########################################################
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW ! -i eth0 -j DROP # << Interface de entrada da internet
iptables -A FORWARD -m state --state NEW ! -i eth0 -j DROP
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP


http://www.vivaolinux.com.br/artigo/Manual-do-IPtables-Comentarios-e-sugestoes-de-regras/


51. Re: script iptables para bloquear tudo e liberar internet

GUILHERME PERES
guichagas

(usa Ubuntu)

Enviado em 12/06/2013 - 18:08h

modprobe ip_tables
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_REJECT
modprobe ipt_MASQUERADE
modprobe ipt_state
modprobe ipt_multiport
modprobe iptable_mangle
modprobe ipt_limit

esses modulos sempre tem que estar no firewall?
claro so os modulos que estiver usando, mas se estiver usando essa regra eu tenho que declarar o moduli
modprobe ipt_limit
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK, FIN, -m limit --limit 1/s -j ACCEPT

e se nao declarar oque acontece?


52. Re: script iptables para bloquear tudo e liberar internet

Buckminster
Buckminster

(usa Debian)

Enviado em 12/06/2013 - 18:59h

guichagas escreveu:

modprobe ip_tables
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_REJECT
modprobe ipt_MASQUERADE
modprobe ipt_state
modprobe ipt_multiport
modprobe iptable_mangle
modprobe ipt_limit

esses modulos sempre tem que estar no firewall?
claro so os modulos que estiver usando, mas se estiver usando essa regra eu tenho que declarar o moduli
modprobe ipt_limit
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK, FIN, -m limit --limit 1/s -j ACCEPT

e se nao declarar oque acontece?


O Iptables trabalha diretamente no kernel. Os módulos que estiverem habilitados no kernel ele carrega automaticamente. Mas é sempre bom chamar os módulos que você está utilizando no script. Eu sempre chamo para garantir.


53. usando só iptables

Alex Rocha
alerocha79

(usa Ubuntu)

Enviado em 02/12/2013 - 19:37h

Quiosque funcionando: consegui usando o Debian 7.2, bloqueia todos os sites da internet e só acessa um domínio.

Passos:

A) Configurar o firewall (arquivo: firewall.sh, e dê permissão de execução – sudo chmod a+x firewall.sh, salvei em /home/firewall.sh):

#######################INICIODOARQUIVO########
#!/bin/bash

# Apagando todas as regras
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X

# Mudando a politica – Começa bloqueando tudo
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# Libera conexões pre-estabelecidas
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# Liberar https – aqui você coloca o ip do domínio
iptables -A OUTPUT -p tcp -d xx.xx.xx.xx --dport 443 -m state --state NEW -j ACCEPT

# Liberar http – aqui você coloca o ip do domínio
iptables -A OUTPUT -p tcp -d xx.xx.xx.xx --dport 80 -m state --state NEW -j ACCEPT

# Liberar DNS
iptables -A OUTPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT

#Liberar DHCP - na minha rede interna usa dhcp
iptables -A OUTPUT -p tcp --dport 67 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -p udp --dport 67 -m state --state NEW -j ACCEPT

#######################FIM

B) deixar configurado para quando iniciar a máquina executar o firewall.sh
edite:
sudo gedit /etc/rc.local

#############INICIODOARQUIVO
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

/home/./firewall.sh
exit 0
#################################FIM

Inicie:
sudo /etc/init.d/rc.local start

C)Agendei para executar o script de 5 em 5 minutos no cron (precaução minha):

Configurando o cron:
crontab -e

######INICIO
# Todos os dias de 5 em 5 minutos
*/5 * * * * /etc/init.d/rc.local start

#######FIM

Monitorando para ver se está sendo executado:
sudo tail -f grep CRON /var/log/syslog

D) Configurando para iniciar a máquina e abrir só o firefox
edite:
sudo gedit /etc/X11/Xsession.d/99x11-common_start

###########INICIODOARQUIVO

# $Id: 99x11-common_start 305 2005-07-03 18:51:43Z dnusinow $

# This file is sourced by Xsession(5), not executed.

#exec $STARTUP

exec firefox javascript:%20resizeTo\(1280,1024\)

# vim:set ai et sts=2 sw=2 tw=80:

######FIM






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts