Firewall iptables para desktop.
Autor: Daniel - d4n1h4ck3r@gmail.com
Licença: GPL
Sistema ultilizado: Slackware 12.2
Usabilidade: qualquer distribuição linux.
Uso: adicionar permissão de execução (chmod +x) ao arquivo como root (Ex.: # chmod +x
rc.firewall). Mover o arquivo para o diretório /etc/rc.d/ para o Slackware e distribuições
derivadas, para outra distribuições mover para o local adequado (Ex.: /etc/init.d/).
Esconder código-fonte
#!/bin/sh
#
# /etc/rc.d/rc.firewall
#
# Start/stop/restart the Firewall.
#
# To make Firewall start automatically at boot, make this
# file executable: chmod 755 /etc/rc.d/rc.firewall
# Author: Daniel - d4n1h4ck3r@gmail.com
# Criation: 04/04/2009
# Atualization: 13/06/2009
# Modules
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_filter
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_state
/sbin/modprobe ipt_owner
/sbin/modprobe ipt_REJECT
/sbin/modprobe ip_conntrack_ftp
# Firewall Start
firewall_start() {
# Clean
iptables -X
iptables -Z
iptables -F
iptables -t nat -F
# Politics default
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# Loopback Access
iptables -A INPUT -i lo -j ACCEPT
# Conections enabled
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Security
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p tcp -m limit --limit 1\s -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD --protocol tcp --tcp-flags ALL SYN,ACK -j DROP
echo "Firewall Start."
}
# Firewall Stop
firewall_stop() {
# Clean
iptables -X
iptables -Z
iptables -F
iptables -t nat -F
# Politics default
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
# Loopback access
iptables -A INPUT -i lo -j ACCEPT
# Conections enabled
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
echo "Firewall Stop (without security)."
}
# Firewall Restart
firewall_restart() {
firewall_stop
sleep 3
firewall_start
}
# Options
case "$1" in
'start')
firewall_start
;;
'stop')
firewall_stop
;;
'restart')
firewall_restart
;;
*)
echo "rc.firewall start"
echo "rc.firewall stop"
echo "rc.firewall restart"
esac
Scripts recomendados
ls informativo
Interface gráfica para nível de tinta (escputil) em shell script
Atualizar repositórios Git
Baixa arquivos de Podcast
Musicando 2
Comentários
Vc não descreveu as portas que deseja abrir ?
Somente serão abertas as portas requisitadas pelo desktop. A política padrão é negar INPUT e FORWARD, aceitando somente o OUTPUT, ou seja saida, se preciso abrir algumas portas adicionais é só inclementar de acordo com a necessidade do usuário.
Obs.: Firewall básico, se puderem inclementar ou corrigir algo, agradeço!
Mensagem
Somente serão abertas as portas requisitadas pelo desktop. A política padrão é negar INPUT e FORWARD, aceitando somente o OUTPUT, ou seja saida, se preciso abrir algumas portas adicionais é só inclementar de acordo com a necessidade do usuário.
Obs.: Firewall básico, se puderem inclementar ou corrigir algo, agradeço!
Ficou xique o seu script, eu li rapidamente o guia do morimoto e fiz com pressa o no meu arch ta assim:
#!/bin/bash
iniciar(){
#interface loopback
iptables -A INPUT -i lo -j ACCEPT
#abre as portas DNS
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
#abre as portas HTTP e HTTPS
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
#garante que o firewall permitira pacotes de conexões ja iniciadas
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#ignora pings
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
#protege contra IP spoofing
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
#descarta pacotes mal formados protegendo contra ataques diversos
iptables -A INPUT -m state --state INVALID -j DROP
#bloqueia as portas UDP de 0 a 1023 (com exceção das abertas acima)
iptables -A INPUT -p udp --dport 0:1023 -j DROP
#bloqueia conexões nas demais portas
iptables -A INPUT -p tcp --syn -j DROP
echo "Regras do firewall ativadas"
}
parar(){
iptables -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
echo "Regras do firewall desativadas"
}
case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar ;;
*) echo "Use os parametros start ou stop"
esac
E pior q ta funcionando. kkkk
na proxima vez eu vo usar o seu.
Mensagem
Ficou xique o seu script, eu li rapidamente o guia do morimoto e fiz com pressa o no meu arch ta assim:
#!/bin/bash
iniciar(){
#interface loopback
iptables -A INPUT -i lo -j ACCEPT
#abre as portas DNS
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
#abre as portas HTTP e HTTPS
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
#garante que o firewall permitira pacotes de conexões ja iniciadas
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#ignora pings
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
#protege contra IP spoofing
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
#descarta pacotes mal formados protegendo contra ataques diversos
iptables -A INPUT -m state --state INVALID -j DROP
#bloqueia as portas UDP de 0 a 1023 (com exceção das abertas acima)
iptables -A INPUT -p udp --dport 0:1023 -j DROP
#bloqueia conexões nas demais portas
iptables -A INPUT -p tcp --syn -j DROP
echo "Regras do firewall ativadas"
}
parar(){
iptables -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
echo "Regras do firewall desativadas"
}
case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar ;;
*) echo "Use os parametros start ou stop"
esac
E pior q ta funcionando. kkkk
na proxima vez eu vo usar o seu.
É semelhante os scripts, o que difere é a definição da política padrão e as portas abertas explicitamente..., mas funciona :)
Mensagem
É semelhante os scripts, o que difere é a definição da política padrão e as portas abertas explicitamente..., mas funciona :)
O script do link "fazer download" não é o que postei..., está baixando outro..., pois o que eu postei está no link "código fonte"..., estranho isso...
Mensagem
O script do link "fazer download" não é o que postei..., está baixando outro..., pois o que eu postei está no link "código fonte"..., estranho isso...
Contribuir com comentário
Enviar