Isso deve funcionar:
iptables -t nat -A POSTROUTING -o wlan0 -s 10.42.0.0/24 -j MASQUERADE iptables -A FORWARD -i wlan0 -o eth0 -m state \ --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPT
Estou com problema ao definir o compartilhamento de conexão no meu sistema Slackware. Eu habilitei rc.ip_forward:
$ cat /proc/sys/net/ipv4/ip_forward
1
E adicionei a próxima regra do iptables (e não tenho outras regras):
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
Esta é a saída de ifconfig
:
$ /sbin/ifconfig
eth0 Link encap:Ethernet HWaddr 6c:62:6d:91:7f:3f
inet addr:10.42.0.1 Bcast:10.42.0.255 Mask:255.255.255.0
inet6 addr: fe80::6e62:6dff:fe91:7f3f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:528 errors:0 dropped:36 overruns:0 frame:0
TX packets:92 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:292440 (285.5 KiB) TX bytes:32536 (31.7 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:349 errors:0 dropped:0 overruns:0 frame:0
TX packets:349 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:27128 (26.4 KiB) TX bytes:27128 (26.4 KiB)
wlan0 Link encap:Ethernet HWaddr 14:d6:4d:48:b0:cd
inet addr:131.114.43.177 Bcast:131.114.43.255 Mask:255.255.252.0
inet6 addr: fe80::16d6:4dff:fe48:b0cd/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:19695 errors:0 dropped:0 overruns:0 frame:0
TX packets:18023 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:9712346 (9.2 MiB) TX bytes:3213810 (3.0 MiB)
Onde wlan0 é a interface conectada à internet. O endereço IP eth0 é configurado manualmente com netconfig
, enquanto wlan0 é atribuído com dhcp pelo ponto de acesso.
Conectado à eth0, há um roteador com seu próprio servidor dhcp, portanto, não preciso executar um no meu sistema. O roteador está em 192.168.1.1 e está servindo o endereço de 192.168.1.100. Não há problema de hardware, já que posso fazer isso com o Ubuntu e o NetworkManager (com a caixa de seleção "compartilhada com outro" para eth0).
Como posso resolver isso?
Isso deve funcionar:
iptables -t nat -A POSTROUTING -o wlan0 -s 10.42.0.0/24 -j MASQUERADE iptables -A FORWARD -i wlan0 -o eth0 -m state \ --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPT