Controlando o compartilhamento de internet por MAC
Publicado por Cleyton Ferrari 02/05/2005
[ Hits: 9.189 ]
Homepage: www.w7br.com
Mostra como compartilhar a internet com a rede interna e fazer um controle por mac para liberar ou bloquear o acesso, utilizando iptables!
Se tiverem algum codigo que melhorem o script nao deixe de postar!
#/bin/bash #Script de Firewall para bloqueio por MACaddress #Criado por Carlos Eduardo Langoni #Adptado por Cleyton Ferrari para suprir as necessidades da Empresa que trabalho #23/01/2003 # IPT=iptables PROGRAMA=/etc/macfire #Nome do meu programa(Nome deste arquivo) NET_IFACE=wlan0 #Internet LAN_IFACE=eth0 #Rede interna MACLIST=/etc/maclist #Nome do arquivo com as mac dos clientes #vc deve criar uma arquivo de texto puro da seguinte forma #a;00:00:00:00:00;192.168.1.1;Computador01 #b;00:00:00:00:00;192.168.1.1;Computador02 #onde "a" o coputador acessa a internete e # "b" o computador nao navega! #lembre-se de colocar o endereço do arquivo maclist na variavel MACLIST echo "1" > /proc/sys/net/ipv4/ip_forward case $1 in start) $IPT -F $IPT -t nat -F $IPT -t filter -P FORWARD DROP #Escreve no prompt a lista dos clientes clear echo "..:: INICIADO COMPARTILHAMENTO DE INTERNET ::.." echo "" echo "..:: Lista de Clientes ::.." for i in `cat $MACLIST`; do STATUS=`echo $i | cut -d ';' -f 1` IPSOURCE=`echo $i | cut -d ';' -f 3` MACSOURCE=`echo $i | cut -d ';' -f 2` CLIENTE=`echo $i | cut -d ';' -f 4` #Se status = a então eu libera a conexao if [ $STATUS = "a" ]; then $IPT -t filter -A FORWARD -d 0/0 -s $IPSOURCE -m mac --mac-source $MACSOURCE -j ACCEPT $IPT -t filter -A FORWARD -d $IPSOURCE -s 0/0 -j ACCEPT $IPT -t nat -A POSTROUTING -s $IPSOURCE -o $NET_IFACE -j MASQUERADE $IPT -t filter -A INPUT -s $IPSOURCE -d 0/0 -m mac --mac-source $MACSOURCE -j ACCEPT $IPT -t filter -A OUTPUT -s $IPSOURCE -d 0/0 -j ACCEPT #Auxilia pra escrever os nomes do clientes no prompt echo "Liberado - IP[$IPSOURCE] - Mac [$MACSOURCE] - [$CLIENTE]" # Se for = b então bloqueia o MAC else $IPT -t filter -A FORWARD -d 0/0 -s $IPSOURCE -m mac --mac-source $MACSOURCE -j DROP $IPT -t filter -A FORWARD -d $IPSOURCE -s 0/0 -j DROP $IPT -t filter -A INPUT -s $IPSOURCE -d 0/0 -m mac --mac-source $MACSOURCE -j DROP $IPT -t filter -A OUTPUT -s $IPSOURCE -d 0/0 -j DROP echo "Bloqueado - IP[$IPSOURCE] - Mac [$MACSOURCE]" fi # Fim do IF done #Fim do FOR #============================================================================================ #Firewall de teste criado por Cleyton Ferrari baseado no kurumin firewall #02/05/2005 - Alto Paraíso/Rondônia - Brasil # echo "" echo "..:: Iniciando o carregamento do Firewall ::.." #Abre para a interface de loopback $IPT -A INPUT -p tcp --syn -s 127.0.0.1/255.0.0.0 -j ACCEPT $IPT -A INPUT -i lo -j ACCEPT #Bloqueia ping a maquina servidora da net #echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all #Protege nosso servidor contra synflood echo "1" > /proc/sys/net/ipv4/tcp_syncookies #Protege conta ICMP Broadcasting echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts #Bloquea Traceroute $IPT -A INPUT -p udp --dport 33435:33525 -j DROP # Proteções diversas contra portscanners, ping of death, ataques DoS, etc. $IPT -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT $IPT -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT $IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT $IPT -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT $IPT -A FORWARD --protocol tcp --tcp-flags ALL SYN,ACK -j DROP $IPT -A INPUT -m state --state INVALID -j DROP $IPT -N VALID_CHECK $IPT -A VALID_CHECK -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP $IPT -A VALID_CHECK -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP $IPT -A VALID_CHECK -p tcp --tcp-flags ALL ALL -j DROP $IPT -A VALID_CHECK -p tcp --tcp-flags ALL FIN -j DROP $IPT -A VALID_CHECK -p tcp --tcp-flags SYN,RST SYN,RST -j DROP $IPT -A VALID_CHECK -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP $IPT -A VALID_CHECK -p tcp --tcp-flags ALL NONE -j DROP # Bloqueia programas P2P #iMesh $IPT -A FORWARD -d 216.35.208.0/24 -j REJECT #BearShare $IPT -A FORWARD -p TCP --dport 6346 -j REJECT #ToadNode $IPT -A FORWARD -p TCP --dport 6346 -j REJECT #WinMX $IPT -A FORWARD -d 209.61.186.0/24 -j REJECT $IPT -A FORWARD -d 64.49.201.0/24 -j REJECT #Napigator $IPT -A FORWARD -d 209.25.178.0/24 -j REJECT #Morpheus $IPT -A FORWARD -d 206.142.53.0/24 -j REJECT $IPT -A FORWARD -p TCP --dport 1214 -j REJECT #KaZaA $IPT -A FORWARD -d 213.248.112.0/24 -j REJECT $IPT -A FORWARD -p TCP --dport 1214 -j REJECT #Limewire $IPT -A FORWARD -p TCP --dport 6346 -j REJECT #Audiogalaxy $IPT -A FORWARD -d 64.245.58.0/23 -j REJECT #Ponto Chave do firewall! Se nao entrar em nenhuma regra acima rejeita tudo! $IPT -A INPUT -p tcp --syn -j DROP #============================================================================================ echo "" echo "..:: FIREWALL ATIVADO SISTEMA PREPARADO ::.." echo "" ;; stop) $IPT -F $IPT -Z $IPT -X $IPT -P INPUT ACCEPT $IPT -P FORWARD ACCEPT $IPT -P OUTPUT ACCEPT $IPT -t nat -F echo "0" > /proc/sys/net/ipv4/tcp_syncookies echo "0" > /proc/sys/net/ipv4/icmp_echo_ignore_all echo "0" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts echo "0" > /proc/sys/net/ipv4/ip_forward clear echo "" echo "" echo "..:: FIREWALL DESCARREGADO SISTEMA LIBERADO ::.." echo "" echo "" ;; esac
Checar a carga da bateria (modo texto) com barra de status versão 1.0
vcut - Recortar vídeos usando ffmpeg
Algoritmo Fisher-Yates shuffle
Ajustando o brilho no Debian Wheezy
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
E a guerra contra bots continua
Tradução do artigo do filósofo Gottfried Wilhelm Leibniz sobre o sistema binário
Conheça o firewall OpenGFW, uma implementação do (Great Firewall of China).
Instalando o FreeOffice no LMDE 6
Anki: Remover Tags de Estilo HTML de Todas as Cartas
Colocando uma opção de redimensionamento de imagem no menu de contexto do KDE
Gentoo bane contribuições de código feitas com IA (5)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba