26 de setembro de 2010

OpenWRT no WR1043ND - Montando devices

Para instalar uma unidade de armazenamento no WR1043ND pelo OpenWRT é necessário instalar e carregar os módulos necessários, claramente é necessário ajustar o formatos de arquivo, uma boa opção de FS é o ext3, ou ext4, e um bom particionador é o GParted.

Após ajustar o dispositivo, será necessário dar os comandos abaixo
root@OpenWrt:~# opkg update
root@OpenWrt:~# opkg install kmod-usb2 usbutils kmod-fs-ext4 kmod-fs-vfat kmod-usb-storage fdisk block-mount block-hotplug

Após isto, será necessário verificar se o seu Router é capaz de ler o disco
# fdisk -l
(...)
/dev/sda1 * 1 3582 28772383+ 83 Linux
/dev/sda2 3583 3648 530145 82 Linux swap / Solaris

O block-mount é responsável por instalar o fstab, assim: # /etc/init.d/fstab enable

Pelo browser será capaz de verificar que uma nova aba foi criada em System > Mount Points. Basta habilitar os devices, que estarão prontos para uso no ponto de montagem (p.ex. /home - não esqueça de criar a pasta que pretende montar > mkdir /home).
Obs. É possível ajustar o ponto de montagem pelo uuid, basta digitar blkid. Caso tenha algum problema, pode executar o comando mkswap /dev/sdaX para a memória Swap.
Obs2. O ponto de montagem DEVERÁ ser ext4, por mais que use ext2, p.ex., pois o módulo instalado foi kmod-fs-ext4.

Compartilhamento de arquivos via rede (smb.cifs) - SAMBA
Obs. Não tenho como escopo configurar o samba, para tanto poderá verificar este excelente manual do Guiadohardware
root@OpenWrt:~# opkg update
root@OpenWrt:~# opkg install samba3
root@OpenWrt:~# smbd -F -s /etc/samba/smb.conf
root@OpenWrt:~# /etc/init.d/samba start

Para conferir se o módulo está ativo
root@OpenWrt:~# ps aux | grep mbd
1394 root 2624 S N smbd -D
1396 root 2128 S nmbd -D

para que o serviço se torne inicializavel, será necessário editar o arquivo /etc/rc.local:
root@OpenWrt:~# vi /etc/rc.local
Será necessário inserir o comando abaixo,
para editar com vi:
(aperte 'i' para inserir, Ctrl+C encerrar o 'i', e :wq para salvar e sair)

/etc/init.d/samba start
antes de 'exit 0'

** obs. ainda não sei se esta regra é necessária (editar), pois conta na documentação, apenas a inclui sem testar. Ela abre uma as portas netbios no firewall para trafego na rede local
root@OpenWrt:~# echo iptables -I INPUT -s 192.168.1.0/24 -d 192.168.1.1/24 -p tcp --dport 137:139 -j ACCEPT >> /etc/firewall.user
root@OpenWrt:~# echo iptables -I INPUT -s 192.168.1.0/24 -d 192.168.1.1/24 -p tcp --dport 445 -j ACCEPT >> /etc/firewall.user
/etc/init.d/firewall restart

Para adicionar os usuários com acesso ao samba, no caso criei usuários sem acesso ao shell, poderia
root@OpenWrt:~# echo username:*:1001:1001:username:/home/username:/bin/false >> /etc/passwd
root@OpenWrt:~# echo username:x:1001: >> /etc/group

//Criar usuário no samba
root@OpenWrt:~# smbpasswd username password
Obs. Para adicionar um usuário com acesso ao shell (que também poderá logar ao roteador), basta copiar o conteúdo do root e trocar pelo nome do usuário, a senha será a mesma do root, posteriormente basta trocá-la, logando no shell (comando passwd). O comando su não consta no sistema, assim não poderá logar com um usuário e trocar por outro.

Para acessar pelo Windows 7/Vista, crie um arquivo nome.reg com o conteúdo abaixo e o execute no Win7/Vista.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
"LmCompatibilityLevel"=dword:00000001

Obs. Caso pretenda usar seu router como PDC, não conseguirá incluir o Windows 7/Vista ao domínio, se a versão for menor que a Version 3.3 (que é o caso: smbd -V / Version 3.0.24), assim será necessário compilar uma nova versão do samba, porém existem alguns agravantes, cujo principal o tamanho da memória flash disponível no router e o tamanho do arquivo compilado. Para fazer experiências, talvez seja preferível usar uma máquina virtual.
:-(

21 de setembro de 2010

OpenWRT no wr1043nd - Wi-FI

Após instalação, do OpenWRT no wr1043nd (como instalar), me deparei que a interface wifi não fora reconhecida.

Para resolver isto, basta se conectar via ssh no 192.168.1.1 (usando o putty (Windows), ou via shell (Linux)), e dar o comando abaixo.
opkg install kmod-mac80211 kmod-ath9k wpad-mini
wifi detect > /etc/config/wireless

na interface web (abra o navegador e digite 192.168.1.1), logue, no link do lado direito; Administration:
Network > WIFI > RADIO0 (caso o atalho WIFI não apareça, reinicie o roteador antes)
clique em enable e Save & Apply

de volta ao shell (ou putty)
wifi up
reboot

Obs.
1) Ainda não habilite criptografia
2) Escolha um canal (1, 6, ou 11), pois o automático simplesmente não funciona
3) Não altere o valor do Transmit Power
*) Caso já tenha feito alguma das opções acima, basta dar o comando abaixo
wifi down
wifi detect > /etc/config/wireless
wifi up
reboot

Agora, será possível conectar-se, entretanto não será possível navegar via wi-fi, pois será necessário abrir uma regra no netfilter.

Apenas um lembrente, caso faça alguma besteira, poderá perder seu roteador, pois poderá bloquear a conexão ao mesmo, exceto caso venha a estabelecer uma conexão serial.

na interface web (abra o navegador e digite 192.168.1.1), logue, no link do lado direito; Administration:
Network > Interfaces, escreva WLAN e clique em Add entry.

Protocol: static
Bridge interfaces: habilitado(checked)
Interface: mon.wlan0
Zone: Lan
Ipv4: 192.168.1.1
Zone: 255.255.255.0


Agora, basta dar um Save & Apply e reiniciar o roteador, caso não tenha navegação após tais modificações, certifique-se que a interface wan recebeu um ip (interface web > Network).