A melhor coisa a fazer aqui seria configurar um NAT e encaminhar as portas necessárias da interface wlan0 do home para as portas equivalentes na interface do disco rígido externo.
O script a seguir é um exemplo que configuraria o NAT de forma que os dispositivos conectados à eth0 em casa (por meio de um switch ou de um TP cruzado) obtivessem acesso à rede sem fio.
#!/bin/sh INTERNAL_IP=home.lan INTERNAL_NM=255.255.255.0 INTERNAL=eth0 EXTERNAL=wlan0 ifconfig $INTERNAL $INTERNAL_IP netmask $INTERNAL_NM up echo 1 >/proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -o $EXTERNAL -s 192.168.0.0/24 -j MASQUERADE iptables -A FORWARD -i $EXTERNAL -o $INTERNAL -m state \ --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -i $INTERNAL -o $EXTERNAL -j ACCEPT
Para que a situação descrita funcione, os dispositivos da rede sem fio devem estar habilitados para "olhar para trás" na rede NAT (que está escondida atrás de home.lan). A abordagem que você tentou na pergunta é basicamente correta, exceto que ela se traduz na direção errada. Você deseja encaminhar pacotes recebidos em portas específicas na interface home.lan para o ip local NATH escondido de mbl.lan
#(continued) iptables -t nat -A PREROUTING -i $EXTERNAL -p tcp --dport 445 -j DNAT \ --to mbl.lan:445 iptables -t nat -A PREROUTING -i $EXTERNAL -p tcp --dport 139 -j DNAT \ --to mbl.lan:139
Esta configuração tornaria impossível executar um servidor samba no host, porque o tráfego vindo para as portas samba padrão é enviado para o disco rígido externo. Isso não faz parte da questão, mas uma possível solução seria executar o serviço samba de home em uma porta diferente, ou usar um valor --dport como 4455 e configurar manualmente os clientes para se conectar a uma porta diferente quando acessando meu livro ao vivo.
Note que esta resposta assume que o samba está sendo usado na unidade e que as portas precisarão ser ajustadas se um protocolo diferente for usado.
Uma limitação notável deste método é que todas as conexões que chegam à unidade externa parecerão ter sido originadas em home.lan.
Alias de rede:
mbl.lan (meu endereço ao vivo do livro; 192.160.0.66)
home.lan (endereço ip home wlan0; 192.168.0.12)