Isso será fácil amigão.
Precisamos saber se a
wlan funciona corretamente no Linux, confere?
Para saber qual a interface, execute os seguintes comandos e cole o resultado aqui.
ifconfig -a
iwconfig
nm-toolSe tudo estiver tranquilo, partiremos para o compartilhamento.
Crie um script de Firewall como serviço de sistema.
Execute o seguinte comando para criar o arquivo de firewall.
sudo gedit /etc/init.d/firewallDentro dele, cole o seguinte conteúdo.
#!/bin/bash
#### Declarando variáveis ####
# Interface da Internet:
ifinternet="wlan0"
# Interface da Rede Local
iflocal="eth0"
# IP da Internet
ip_internet="ip da internet"
# IP da Rede Local
rede_local="192.168.0.0/24"
#### Função "start" ####
iniciar(){
## Limpa todas as regras ##
iptables -F
iptables -t nat -F
iptables -t mangle -F
## Carrega módulos ##
modprobe ip_tables
modprobe iptable_mangle
modprobe iptable_nat
## Habilita roteamento no kernel ##
echo 1 > /proc/sys/net/ipv4/ip_forward
## Compartilha a internet ##
iptables -t nat -A POSTROUTING -o $ifinternet -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
#### Regras de Firewall ####
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i $iflocal -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p udp --dport 80 -j ACCEPT
iptables -A FORWARD -i lo -j ACCEPT
iptables -A FORWARD -i $iflocal -j ACCEPT
iptables -A FORWARD -p tcp --dport 22 -j ACCEPT
iptables -A FORWARD -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -p udp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --syn -s $rede_local -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
}
parar(){
iptables -F
iptables -F -t nat
}
status (){
iptables -L -v -n
}
case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar ;;
"status")status;;
*) echo "Use os parâmetros start, stop ou status"
esac
Normalmente deve ser
wlan0 para a rede sem fio e
eth0 para a rede local.
Depois disso, dê permissão de execução ao arquivo com o comando
sudo chmod +x /etc/init.d/firewall.
Depois, precisaremos definir algumas entradas no arquivo
interfaces, adicione essas seguintes linhas.
#### Rede Local 1 "eth0" ####
auto eth0
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
Reinicie o serviço de rede com o comando
sudo service networking restart, e inicie o serviço de firewall com o comando
sudo service firewall startColoque o roteador para trabalhar como Access Point, conectando o cabo que sai do servidor em uma das portas LAN do roteador,
não na porta WAN e sim na LAN.
Abra as configurações do roteador, mude seu endereço IP para
192.168.0.254, e configure o servidor DHCP do roteador para:
Start IP Address: 192.168.0.100
End IP Address:: 192.168.0.200
Default Gateway: 192.168.0.1
Primary DNS: 8.8.8.8
Secondary DNS: 8.8.4.4Reinicie o roteador, acesse as máquinas locais, conecte a rede sem fio ou ao cabo, não defina endereço IP, use o DHCP, e veja se consegue pingar no servidor com o comando
ping 192.168.0.1 e então, para a internet
ping www.google.comSe tudo der certo, pode colocar o serviço de firewall para iniciar junto do sistema, com o comando:
sudo update-rc.d firewall start 99 2 3 4 5 . stop 0 1 6 .Se não funcionar, reporte aqui, juntamente com os seguintes comandos, para certificar que o script está sendo executado corretamente.
cat /proc/sys/net/ipv4/ip_forward
sudo iptables -L -v -n
sudo iptables -t nat -L -v -nNão se esqueça de conectar a rede sem fio no seu servidor usando o Network Manager, fica mais fácil.
Espero ter ajudado.