Piter Punk's HomePage - Artigos
 
English version
O Caso do 386SX como roteador

Piter PUNK

Neste artigo iremos ensinar como transformar um 386SX com apenas 4MB de RAM em um roteador útil e funcional. É o linux (mais uma vez) salvando a pátria e dando uso a um computador considerado (por alguns) como inútil.

1. A máquina

  • 386SX
  • 4MB de RAM
  • 110MB de HD
  • Placa de rede NE2000 ISA
  • Modem US-Robotics 33600 ISA

2. Instalação

O Linux utilizado foi o Slackware 7.1, poderia ser o 7.0 também. Em geral, é melhor utilizar o kernel 2.0.x porém, o objetivo desse artigo é escrever um firewall e existe muito mais documentação sobre o ipchains (da série 2.2.x) do que sobre o ipfwadm (da série 2.0.x). Se você souber usar o ipfwadm, instale o Slackware 3.3 ou 96, você terá um desempenho melhor.

O primeiro passo da instalação, é retirar o HD do 386 e colocar em outro computador mais possante, coloque-o como master da primária. Insira o CD do Slackware e dê o boot pelo CD-ROM.

Não existe segredo aqui, eu particionei o meu HD assim:

	/     /dev/hda1    102MB
	swap  /dev/hda2      8MB

e sobrou espaço no /. Como sobrou espaço, é mais inteligente fazer assim:

	/     /dev/hda1     90MB
	/tmp  /dev/hda2     12MB
	swap  /dev/hda3      8MB

Assim, você pode montar a partição / como read-only e desligar e ligar o computador direto, sem a necessidade de um shutdown. Tenha em mente, que os logs do sistema terão que ser desligados ou enviados para outra máquina, já que nesta tudo opera em read-only. Se você prefere manter seus logs no próprio roteador, utilize a particao / como rw (ou faca uma /var separada).

Depois do reparticionamento, inicie o programa de instalação e siga as instruções normalmente. Lembre-se de quando for formatar a partição, escolher 1024 bytes por inode.

Instale as séries A e N no modo menu, para que você possa retirar tudo aquilo que não for utilizar. Instale apenas o necessário para as funcões de router e firewall. A minha instalação deu 67MB, mas nada impede que a sua seja menor. Atenção! Não tente detectar a sua placa de rede, lembre-se que no 386 será outra placa! Depois do Linux instalado, reboote a máquina (mas não devolva o HD para o 386. não ainda).

3. Configuração

Agora, vamos configurar a máquina. Se você seguiu a minha dica de particionamento, seu /etc/fstab deverá ficar assim:

	/dev/hda1  /        ext2   ro             1 1
	/dev/hda2  /tmp     ext2   defaults       1 1
	/dev/hda3  swap     swap   defaults       0 0
	none       /dev/pts devpts gid=5,mode=620 0 0
	none       /proc    proc   defaults       0 0

Se você não tem partições separadas para o /tmp e para o /, não coloque o / como read-only, você terá problemas com isso.

Depois de editar o /etc/fstab, é importante editar o /etc/lilo.conf, comente as linhas que dizem: prompt e timeout. Rode o lilo. Com estas alterações você garante que o computador vai iniciar automaticamente.

Também deve ser editado /etc/rc.d/rc.S, em uma linha em que está escrito:

	/sbin/mount -w -v -n -o remount /

Deve ficar:

	/sbin/mount -r -v -n -o remount /

Isto é feito para que o sistema de arquivos / nao seja remontado como para escrita-leitura (assim a gente obriga a ficar apenas leitura).

Como a máquina em que vamos rodar possui pouquíssima memória, é necessário diminuir ao máximo a quantidade gasta. Um dos métodos é deixando-a com apenas um console virtual. Para fazer isso, edite o /etc/inittab, onde você achar:

	c1:12345:respawn:/sbin/agetty 38400 tty1 linux
	c2:12345:respawn:/sbin/agetty 38400 tty2 linux
	cn:12345:respawn:/sbin/agetty 38400 ttyn linux

Apague todas as linhas deixando apenas a primeira (c1). O próximo passo é retirar os servidores desnecessários editando o /etc/rc.d/rc.inet2, infelizmente, só você pode saber o que é e o que não é necessário no seu computador.

Por último, edite o /etc/rc.d/rc.modules e comente as seguintes linhas:

	if cat /proc/ksyms | grep "\[parport_pc\]" 1> /dev/null 2> /dev/null; then
	  echo "parport0 is built-in, not loading module" > /dev/null 
	else 
  	if [ -r /lib/modules/`uname -r`/misc/parport_pc.o ]; then 
	    # Generic setup example: 
	    /sbin/modprobe parport_pc 
	    # Hardware specific setup example (required for PLIP and better 
	    # performance in general): 
	    #/sbin/modprobe parport_pc io=0x378 irq=7 
	  fi 
	fi

Comente ou apague todas elas... elas são responsáveis pelo carregamento do módulo da porta paralela, só perda de memória. Também remova as seguintes linhas:

	if cat /proc/ksyms | grep "\[lp\]" 1> /dev/null 2> /dev/null ; then 
	  echo "lp support built-in, not loading module" > /dev/null 
	else 
	  if [ -r /lib/modules/`uname -r`/misc/lp.o ]; then 
	    /sbin/modprobe lp 
	  fi 
	fi

Ainda no rc.modules, você deve habilitar o suporte para a sua placa de rede, eu descomentei a linha:

	/sbin/modprobe ne io=0x300 irq=7

Certifique-se de que o ppp também está sendo carregado. E descomente as linhas apropriadas sobre os módulos do ip masquerading...

	/sbin/modprobe ip_masq_irc
	/sbin/modprobe ip_masq_ftp
	/sbin/modprobe ip_masq_user

Estes são os que eu uso, dependendo do que você utiliza na internet, deve descomentar alguns dos outros módulos. Agora é só rodar o ppp-setup e configurar o seu modem.

Por último, edite o /etc/rc.d/rc.local e insira as seguintes linhas:

	/sbin/ipchains -A forward -j MASQ
	ifconfig eth0 down
	ppp-on
	ifconfig eth0 up

Atenção! Isso apenas habilita o roteamento e o masquerading! Se você quiser um firewall decente, leia os vários HOWTOs escritos sobre esse assunto!

Devolva o HD para o 386 e ligue-o. Automaticamente ele vai entrar no Linux e conectar na internet -:) Se você instalou o root como read-only, pode desligar normalmente no power. Caso contrário CTRL+ALT+DEL para desligar.

4. Conclusão

Agora você possui um roteador, e arranjou um (bom) uso para o seu velho 386, com o Linux é assim. Sempre existe algum uso para o seu computador. Esta é apenas a primeira parte de uma série de artigos sobre como ressuscitar micros antigos. Mande sugestões ou críticas para piterpk@terra.com.br


Links Principal Artigos Piter Punk Dicas Programas
 
Powered by Slackware Linux - Written in VIm (the best one!) Last Update: 30 Oct 2004