Regras de firewall
Aqui, a configuração dependerá do nível de segurança que se deseja. É relativa à política adotada neste sentido. Tal como sugerido no
artigo de Carlos Eduardo Morimoto, com certas
adaptações, temos o seguinte:
# echo "1" > /proc/sys/net/ipv4/ip_forward
# iptables -t nat -A POSTROUTING -o wlan1 -j MASQUERADE
# iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
# echo "1" > /proc/sys/net/ipv4/conf/default/rp_filter
# iptables -A INPUT -m state --state INVALID -j DROP
# ifconfig wlan0 192.168.44.1 netmask 255.255.255.0
A primeira linha ativa, o
ip_forward, que é responsável pelo encaminhamento de pacotes. A segunda linha ativa o mascaramento (veja
que trata-se da placa de rede referente à antena externa - wlan1). A terceira, que o servidor não responda a pings. As duas últimas protegem contra
IP spoofing, uma técnica de invasão.
Caso todos os procedimentos listados até aqui forem implementados, podemos testar o nosso já operante servidor. Algo muito importante, que
nenhures é citado explicitamente é que ele NÃO é DHCP, isto é, não irá achar um endereço IP para o seu cliente.
Por conseguinte, o cliente DEVE possuir um IP estático, caso contrário, não haverá compartilhamento. Aceito sugestões quanto a possuir uma forma
de se fazer um roteador virtual DHCP. Talvez seja um bom tema para outro artigo de um bem-aventurado.
Configuração de rede do cliente
O endereço IP escolhido, deve pertencer ao intervalo entre 2 e 255 (inclusivo). Ele não pode ser o mesmo que de outro cliente que esteja usando a
rede interna. O algarismo 1 também é proibido porque é o utilizado pelo pseudorroteador.
Uma sugestão de configuração é dada a seguir:
Endereço IP |
192.168.44.13 |
Gateway |
192.168.44.1 |
DNS primário |
8.8.8.8 |
DNS secundário |
4.4.4.4 |
Automatizando o processo
Nesta altura, já deve haver o compartilhamento da Internet. Portanto, resta-nos colocar este "trambolho" para funcionar toda vez que o PC for
ligado.
É certo que há formas mais elegantes de se fazer isto. Para iniciantes em
GNU/Linux ou no
Slackware, acredito que a maneira mais
simples é a edição do arquivo "rc.local" desta forma:
# vi /etc/rc.d/rc.local
No final deste arquivo, podemos acrescentar:
ifconfig wlan0 192.168.44.1 netmask 255.255.255.0
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o wlan1 -j MASQUERADE
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
echo "1" > /proc/sys/net/ipv4/conf/default/rp_filter
iptables -A INPUT -m state --state INVALID -j DROP
# Hostapd
hostapd /etc/hostapd/hostapd.conf &
exit 0
Conclusão
Dentro das minhas limitações de origem técnica, tentei mostrar, como uma conversa informal, como consegui resolver um problema prático e que,
por
possuir muitos detalhes, acabei por gastar muito tempo na sua implementação.
Espero que, com este artigo, muitas pessoas não necessitem gastar tanto tempo para montar seu roteador virtual.
Fiquem à vontade quanto ao envio de críticas e sugestões.
Obrigado a todos pela oportunidade.