#!/bin/bash
echo "Produzido por Arthur Bernardes (17)99199-1157"
echo "Declarando variáveis"
# Interface da Internet:
ifinternet="eth0"
# IP da Internet
ip_internet="192.168.100.249"
# Interface da rede local
iflocal="eth1"
# IP da Rede Local
rede_local="10.1.1.0/24"
# Portas à serem liberadas
portas_liberadas="21,23,25,53,110,143,22,80,443,3128,3306,3389,5432,5900,9091"
echo "Variáveis declaradas"
#### Função "start" ####
iniciar(){
echo "Carregando módulos"
modprobe ip_tables
modprobe iptable_mangle
modprobe iptable_nat
echo "Módulos carregados"
echo "Limpando regras"
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
iptables -Z
iptables -t nat -Z
iptables -t mangle -Z
echo "Regras limpas"
echo "Definindo política padrão"
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
echo "Política padrão definida"
echo "Habilitando roteamento"
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "Roteamento ativado"
echo "Compartilhando internet"
iptables -t nat -A POSTROUTING -o $ifinternet -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
echo "Internet compartilhada"
echo "Bloqueando IP's indesejados na rede"
#iptables -A INPUT -i $iflocal -s 10.0.0.2 -j DROP
#iptables -A FORWARD -i $iflocal -s 10.0.0.2 -j DROP
echo "IP's indesejados bloqueados"
echo "Manter conexões establecidas"
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
echo "Negando pacotes inválidos"
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
echo "Liberando portas"
iptables -A INPUT -m multiport -p tcp --dport $portas_liberadas -j ACCEPT
iptables -A FORWARD -m multiport -p tcp --dport $portas_liberadas -j ACCEPT
iptables -A OUTPUT -m multiport -p tcp --dport $portas_liberadas -j ACCEPT
iptables -A INPUT -m multiport -p udp --dport $portas_liberadas -j ACCEPT
iptables -A FORWARD -m multiport -p udp --dport $portas_liberadas -j ACCEPT
iptables -A OUTPUT -m multiport -p udp --dport $portas_liberadas -j ACCEPT
echo "Liberando tráfego"
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i $iflocal -j ACCEPT
iptables -A FORWARD -i lo -j ACCEPT
iptables -A FORWARD -i $iflocal -j ACCEPT
echo "Tráfego liberado"
echo "Tráfego redirecionado"
echo "Redirecionando tráfego para proxy transparente"
#iptables -t nat -A PREROUTING -i $iflocal -p tcp --dport 80 -j REDIRECT --to-port 3128
#iptables -t nat -A PREROUTING -i $iflocal -p udp --dport 80 -j REDIRECT --to-port 3128
echo "Tráfego redirecionado para proxy transparente"
}
parar(){
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
iptables -Z
iptables -t nat -Z
iptables -t mangle -Z
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
}
status(){
iptables -L -v -n
}
case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar ;;
"status") status;;
*) echo "Use os parâmetros start ou stop"
esac