Arquivos históricos do BR-Linux.org apresenta:

Linux in Brazil (Ajato e Cable Modem )

Configurando seu cable modem para o serviço Ajato

Roberto Janny T. J. (krivilli) (rj@crovax.zzn.com)
Fevereiro, 2001

Nota Geral

Espero (sinceramente) que esse texto ajude você a configurar o 'Ajato' no GNU/Linux. Mas não dou qualquer garantia de que funcione, parcial ou totalmente. Também não me responsabilizo por qualquer dano causado ao seu computador e afins. Caso você tenha quaisquer sugestões, dúvidas ou críticas, não hesite em falar comigo (rj@crovax.zzn.com).

Apesar desse texto tratar de forma específica do serviço 'Ajato', as informações também podem ser úteis para quem utiliza um sistema semelhante.

Preâmbulo

Escrevi esse pequeno 'como-fazer', primeiramente, com o objetivo de criar uma referência para instalação e configuração do 'Ajato' para uso pessoal. Para pessoas como eu, fica mais fácil entender as coisas no papel :) Um outro motivo para a divulgação das informações aqui presentes, é preencher parte da lacuna do suporte 'velado' do 'Ajato' em relação ao GNU/Linux.

Nesse 'como-fazer' abordo a configuração de uma maneira geral, com exceção da seção "8" que trata especificamente do Cable Modem externo 'SURFboard' da Motorola. Caso você use outro cable modem, e conseguiu usar o 'Ajato' com sucesso, entre em contato (rj@crovax.zzn.com) para que eu possa adicionar uma nota sobre isso nesse documento (com os devidos créditos, claro...).

Antes de reclamar com algo como "não precisava fazer isso, com o Linuxconf....", espere um pouco: se você optou por utilizar o Linuxconf, tudo bem. Aqui preferi fazer a configuração manualmente, para evitar 'pisar em ovos'. E mesmo porque se você pensou nisso, não precisaria estar lendo esse texto, né? Resumindo, seria possível realizar a descrição da configuração em apenas algumas linhas, mas optei por dar o máximo de detalhes possíveis.

Definindo os requisitos

Antes de começar, necessita-se ter uma certa noção do que precisaremos. Tentarei ser bem sucinto:

- Um cliente DHCP (sugiro o uso do dhcpcd)

- Sua placa de rede deve ter suporte junto ao Linux

- Conhecimento básico do ambiente GNU/Linux ('ls', 'cd', 'tar', etc.)

- Alguns dados sobre o seu provedor

- Talvez um pouco de paciência :)

Você pode baixar o cliente dhcpcd de locais como http://rpmfind.net, http://freshmeat.net e do site principal: ftp://ftp.phystech.com/pub ou a partir do mirror da Metalab: ftp://metalab.unc.edu/pub/Linux/system/network/daemons

Para maiores informações sobre sua placa de rede, consulte o Ethernet-HOWTO (www.linuxdoc.org). Sugiro também a leitura do DHCP-Mini-HOWTO.

Dentre as informações necessárias sobre o seu provedor, estão:

* Endereço IP (IPADDRS): Atribuído pelo serviço Ajato

* Máscara de sub-rede (NETMASK): 255.255.255.0

* Endereço do Gateway: 200.182.17.60 (entre em contato com o Ajato para confirmar)

* Hostname: Atribuído pelo serviço Ajato (opcional, deixar apenas como hostname já basta).

* Nome do domínio: ajato.com.br

* Servidor DNS primário (nameserver): 200.212.26.129

* Servidor DNS secundário (nameserver): 200.212.26.130

* Freqüência: 393012500 MHz (MMDS)

* Número do telefone de acesso:

Veja que esses valores acima são do provedor Ajato de São Paulo. Para maiores informações entre em contato com o seu suporte Ajato.

Configurando a interface de rede

Pressupondo que a sua placa de rede seja suportada pelo Linux, tente o seguinte:

No momento da inicialização do Linux, procure por uma mensagem como esta:

eth0: 3c509 at 0x300 tag 1, 10baseT port, address 00 20 af ee 01 23, IRQ 10. 3c509.c:1.07 6/15/95 becker@cesdis.gsfc.nasa.gov

Se não deu tempo verificar, use o comando 'dmesg':

~# dmesg | more

Se tudo correu como previsto, em seu arquivo /etc/modules.conf (ou conf.modules) adicione a seguinte linha:

alias eth0 rtl8139

salve e feche o /etc/modules.conf.

~# depmod -ae

No meu caso, "rtl8139" se refere ao módulo (driver) da minha placa de rede (uma 'Realtek 8139', Trellis). Portanto, troque pelo (seu) módulo apropriado. O seu kernel já deve estar compilado com suporte a redes, placas ethernet e módulos (no meu caso, novamente, foi necessário também o suporte a placas 'fast_ethernet'). A maioria das distribuições atuais já trazem um kernel com opções comuns habilitadas. Se esse não for o seu caso, será necessário recompilar o kernel.

Editando alguns arquivos

Primeiramente edite o seu arquivo /etc/resolv.conf, adicionando os IPs dos servidores DNS. Você pode obter esses endereços através do 'winipcfg', no Windows, ou ligando para o seu ISP. Abaixo é apenas um exemplo (na verdade esses endereços funcionam para *mim* e são do servidor DNS do 'Ajato' de São Paulo).

# inicio do /etc/resolv.conf #
search ajato.com.br
nameserver 200.212.26.129
nameserver 200.212.26.130
# fim do /etc/resolv.conf #

Salve e feche o arquivo.

Entre no diretório /etc/sysconfig/network-scripts: [Nota do Editor: se sua distribuição de Linux utilizar outro método para inicializar as placas de rede, refira-se à documentação da mesma neste passo).

~# cd /etc/sysconfig/network-scripts

Então edite o arquivo ifcfg-eth0 (se não existir, crie-o). Edite (ou insira) as seguintes linhas:

DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
#IPADDR=192.168.100.x
#NETMASK=255.255.255.0
#NETWORK=192.168.100.0

Salve e feche o arquivo.

!AVISO! Claro que você poderia usar o Linuxconf, e reduzir o trabalho. Para tanto é só usar o 'netconf'.

Slackware

Para o Slackware Linux edite o arquivo /etc/hosts com as seguintes configurações:

localhost 127.0.0.1
0.0.0.0 minha_máquina

onde tem 'minha_máquina' coloque IP da máquina.

Agora edite o seu arquivo rc.inet1 (faça um backup dele antes, só para garantir), inserindo as seguintes linhas:

/sbin/ifconfig eth0 ${IPADDR} broadcast ${BROADCAST}\
         netmask ${NETMASK}
/sbin/route add -net ${NETWORK} netmask ${NETMASK} eth0
/sbin/route add default gw ${GATEWAY} netmask 0.0.0.0 metric
/usr/sbin/dhcpcd

Veja que as variáveis '${IPADDR}', '${NETWORK}', etc, no sistema Slackware não estão ajustadas, sendo, portanto, necessário declara-las. Para isso, você poderia colocar no início do arquivo algo como abaixo:

IPADDR=coloque aqui o endereço IP da sua placa de rede
BROADCAST=opcional
NETMASK=máscara de sub-rede
NETWORK=o IP da rede Ajato

No meu caso ficou assim:

IPADDR=192.168.100.x
NETMASK=255.255.255.0
NETWORK=192.168.100.0
GATEWAY=200.182.17.40

No 'x' tem mais um 'número', que é a minha identificação na rede Ajato, registrado junto a eles. Este 'x' está compreendido na faixa 1-254. Entre em contato com o suporte Ajato para mais informações. Pode-se usar também o aplicativo 'netconfig' para configurar (tipo, porta do modem, host, domain, etc.). Para inicia-lo:

~# netconfig

Instalando o cliente DHCP (dhcpcd)

Para instalar faça o seguinte: no caso dos fontes:

~# tar -xvzf dhcpcd-1.xxxxx.tar.gz
~# cd dhcpcd-1.xxxxx
~# ./configure
~# make
~# make install 

(você precisa de privilégios de root para executar esse comando)

Para instalar a partir de pacotes RPM:

~# rpm -ivh dhcpcd-1.xxxx.rpm

Ou use um 'front-end' gráfico, como o kpackage ou gnorpm.

Ele irá criar o diretório /etc/dhcpcd, onde o DHCPcd armazenará as informações sobre o DHCP. Os binários serão copiados para o diretório /usr/sbin. Se você souber o que está fazendo, pode-se incluir a seguinte linha em seu arquivo /etc/syslog.conf:

local0.* /var/log/dhcpcd.log

e então atualize o daemon syslog:

~# kill -1 `cat /var/run/syslogd.pid`

Quando terminar, reinicie a máquina.

Configurando a interface de rede (Parte 2)

Você também poderia configurar a interface da seguinte maneira:

~# ifconfig eth0 ${IPADDR} broadcast ${BROADCAST}\
        netmask ${NETMASK}
~# route add -net ${NETWORK} netmask ${NETMASK} eth0
~# route add default gw ${GATEWAY} netmask 0.0.0.0 metric

Exemplo:

~# ifconfig eth0 192.168.11.1 broadcast 192.168.11.255\
     netmask 255.255.255.0
~# route add -net 192.168.11.0 netmask 255.255.255.0 eth0
~# route add default gw 200.182.17.40 netmask 0.0.0.0 metric

Essa etapa não é obrigatória, uma vez que o cliente dhcpcd pode tomar conta do resto. Mas coloquei aqui para título de informação, caso seja necessária. Essas linhas poderiam ser colocadas em um shell script, para facilitar:

#!/bin/bash    
#Esse script é para estabelecer as 
# propriedades IF do cable modem, bem como
# as propriedades do roteador
ifconfig eth0 up
ifconfig eth0 192.168.11.1 broadcast 192.168.11.255\
       netmask 255.255.255.0
route add -host 192.168.11.1 eth0
route add -net 192.168.11.0 eth0

Então para iniciar a interface eth0:

~# ifdown eth0

~# ifup eth0

Voce pode verificar se está tudo o.k. com o comando 'netstat':

~# netstat -u

Configurando a conexão com o Cable Modem externo (SURFboard - Motorola)

Essa parte só trata de três pontos:

- verificação do sinal, para ver se está tudo o.k.

- a configuração da discagem (caso a conexão seja unidirecional, usando o SURFboard)

- e a conexão propriamente dita.

Nessa etapa você vai depender do registro do seu cable modem (através do endereço MAC) com o serviço Ajato, Assim você terá um IP 'interno' (algo como 192.168.100.x). Para iniciar a configuração, aponte o seu browser (Beonex, Opera, Mozilla, Galeon, Netscape,....não testei com o lynx) para o seu endereço IP. Por exemplo para:

http://192.168.100.15

Mas lembre-se de trocar pelo o seu IP. Em seguida deverá aparecer uma espécie de 'painel de controle'. Aqui pode-se configurar opções como:

- Número do telefone de conexão (caso seja unidirecional)

- Seu login e a sua senha

- String de inicialização do modem

- verificar se o sinal está o.k (se 'travo' na frequência correta)

- E a discagem para a conexão (caso seja unidirecional)

Se você consegui se conectar com sucesso, tente 'pingar' alguns domínios (válidos) da internet. Exemplo:

~# ping yahoo.com (pressione Ctrl-C para finalizar o ping.)

PING yahoo.com (204.71.200.243): 56 data bytes
64 bytes from 204.71.200.243: icmp_seq=0 ttl=247 time=90.6 ms
64 bytes from 204.71.200.243: icmp_seq=1 ttl=247 time=89.5 ms
64 bytes from 204.71.200.243: icmp_seq=2 ttl=247 time=90.0 ms
64 bytes from 204.71.200.243: icmp_seq=3 ttl=247 time=89.8 ms
64 bytes from 204.71.200.243: icmp_seq=4 ttl=247 time=88.1 ms

--- yahoo.com ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max = 88.1/89.6/90.6 ms

Pronto, você está apto para navegação! Tente agora com um browser (i.e. não me referi ao IE :))

Considerações finais

Não tenho muito mais o que dizer. Espero que você tenha conseguido configurar o seu cable modem e que eu tenha sido claro o suficiente para tanto. Acho que agora, baixar o kernel Linux do www.kernel.org vai ser 'moleza'.... :)

Adendos ao /etc/dhcpc

Alguns adendos a respeito do dhcpcd: você pode abrir o seu /etc/dhcpc/dhcpcd-eth0.info e dar uma olhada para ver se está tudo em ordem. Preste atenção nos campos "DHCPSIADDR" e "GATEWAY".

"DHCPSIADDR": endereço do seu servidor DHCP

"GATEWAY": endereço do seu Gatway

Preocupando-se com a segurança

Não preciso relatar que conexões de banda larga (Cable Modem, DSL, etc.) são alvos muito procurados por 'crackers'. Provavelmente no primeiro dia que você conectou usando o seu cable modem, você foi alvo de diversos 'probes' e 'portscans', mesmo sem saber. A Internet é um meio verdadeiramente hostíl e inseguro, portanto, precisa-se tomar um certo número de mediadas a fim de que se *reduza* o risco de uma invasão ou comprometimento do sistema.

Talvez em outra ocasião, eu discorra mais profundamente sobre esse assunto. No momento, detenho-me apenas em algumas dicas, e apenas isso. No quesito segurança é sempre bem vinda um pouco de paranóia adicional, e ter consciência de que nenhum sistema é 100% seguro, infalível. Esse engano, usualmente cometido, pode ser definitivo para a sensação de 'falsa segurança'.

Outra coisa, se você pensa que o ipchains/iptables são o firewall propriamente dito, é melhor procurar ajuda.

Então abaixo estão algumas dicas:

A. Edite o arquivo /etc/host.deny com as seguintes linhas:

ALL: ALL

Salve e feche o arquivo.

B. A. Edite o arquivo /etc/hosts.allow com as seguintes linhas:

ALL: 127.0.0.1

OBS.: caso considere que a máquina não está conectada a nenhuma rede local e não possua um IP estático.

Salve e feche o arquivo.

C. Desabilite serviços desnecessários:

Você precisa verificar algumas coisas que provavelmente foram instaladas com seu sistema, por padrão. Mas que precisam de atenção redobrada! Em particular a maioria das distribuições instalam vários tipos de servidores que, quando desnecessários, são um risco de segurança para você (não tenho certeza, mas violam até os termos de serviço do seu ISP).

Se você não vai precisar usar serviços como 'Sendmail', 'FTP', 'Telnet' ou um servidor Web (como o Apache), desabilite-os. Em sistemas RedHat-like pode-se usar o 'ntsysv' para desabilitar esses serviços na hora da inicialização. Para o Slackware, sugiro que você dê uma lida nos arquivos presentes no diretório /etc/rc.d/ (arquivos com o prefixo rc.*). Para desabilitar um determinado serviço, comente a sua linha referente, usando o "#".

Seria interessante editar algumas opções do seu arquivo /etc/inet.conf. Considere desabilitar coisas como Telnet, FTP (se você tem instalado o wu-ftp, atenção: perigo!). Pode ser prudente fechar algumas portas para o "resto do mundo", enquanto você não tiver uma política de segurança melhor.

Abra o arquivo /etc/inetd.conf com o seu editor de textos (ex. vim), e procure através dele até encontrar as seguintes linhas:

# These are standard services.
#
ftp     stream tcp nowait root /usr/sbin/tcpd  in.ftpd -l -a
telnet  stream tcp nowait root /usr/sbin/tcpd  in.telnetd
#gopher stream tcp nowait root /usr/sbin/tcpd  gn

Aqui nesse exemplo, percebe-se que o ftp e o telnet estão disponíveis e o gopher não. Para desabilitar o servidor ftp, adicione um caractere "#" (comentário) no início da linha que começa com 'ftp'. Faça o mesmo para o telnet. Salve e feche o arquivo. Agora o sistema precisa 'reler' o arquivo de configuração inetd.conf.

~# kill -HUP inetd

Somente os processos que estão habilitados (i,e., que não iniciam com "#") serão executados.

Veja mais em:

http://www.linuxsecurity.com.br/sections.php?op=listarticles&secid=3

Ainda existem vários arquivos de configuração em seu /etc (como o ftp.access, ftp.allow, etc), mas os quais não vou abordar. Dúvidas? Então leia as respectivas páginas de manual. Exemplo:

~# man hosts.allow

Se você quiser começar a entender um pouco mais, veja os seguintes artigos:

http://www.linux.trix.net/segur_intro.htm

http://www.linux.trix.net/rede_iplog.htm

Links

Alguns links que podem auxiliar:

  • "Making Ethernet adapters work with Linux" -
  • http://www.scrounge.org/linux/nics.htm

  • "Cable Modem Basics" -
  • http://www.cablemodeminfo.com/linbasics.x.html-ssi

  • "Cable Modem Help - Answers for Cable Modem Users" -
  • http://www.cablemodemhelp.com/

  • "Cable Modem Resources on the Web" -
  • http://rpcp.mit.edu/~gingold/cable/

  • LinuxSecurity Brasil -
  • http://www.linuxsecurity.com.br/

  • "Usando de obscuridade como COMPLEMENTO à segurança" -
  • http://www.linuxsecurity.com.br/sections.php?op=listarticles&secid=3

  • Bastille Linux Project -
  • http://www.bastille-linux.org

  • SecurityFocus -
  • http://www.securityfocus.com

  • LinuxSecurity -
  • http://www.linuxsecurity.com

  • "Stupid, Stupid Protocols: Telnet, FTP, rsh/rcp/rlogin" -
  • http://securityportal.com/cover/coverstory20000814.html

    FAQ

    (+) Eu preciso ficar conectado permanentemente?

    (-) Não. Se você precisa se conectar ocasionalmente, pode-se iniciar o dhcpcd a partir da linha de comando (você precisa ter privilégios de root para isso)

    ~# /usr/sbin/dhcpcd

    Quando precisar desconectar, rode o seguinte:

    ~# /usr/sbin/dhcpcd -k

    (+) Minha rede funciona por alguns minutos e então para de responder.

    (-) Existem fatos relacionando essa problema com o gated (gateway daemon). Verifique se o 'gated' está sendo executado:

    ~# ps aux | grep gate

    Se for esse o motivo, desinsta-le ele ou remova a sua entrada referente em /etc/rc.d.

    (+) O cliente DHCP faz o pedido, mas não há resposta.

    (-) Em alguns sistemas, você precisa especificar um 'hostname' para a sua máquina como parte do pédido. Com o dhcpcd você pode fazer isso usando a opção '-h'.

    ~# dhcpcd -h meuhost

    Provavelmente, o 'hostname' requerido será o seu 'username' da sua conta nessa rede.

    (+) Eu segui todos os passos necessários, mas eu ainda não consigo me conectar.

    (-) O cable modem normalmente memorizará o endereço ethernet da sua placa de rede. Portanto, se você conectar um novo computador ou retirar/recolocar placas de rede será necessário "ensinar" de alguma maneira o seu 'cable modem' a reconhecer o novo computador ou a nova placa.

    Você pode desligar o cable modem e então 'religa-lo' quando o computador estiver iniciando, ou então chamar o suporte técnico e dizer a eles que você trocou a placas de rede do computador.

    Bibliografia

    * DHCP-mini-HOWTO, Vladimir Vuksan (www.linuxdoc.org)

    * Cable-Modem-mini-HOWTO, Vladimir Vuksan (www.linuxdoc.org)

    * http://www.cablemodemhelp.com


    Roberto Janny T. J. (krivilli) (rj@crovax.zzn.com)


    O Arquivo Histórico do BR-Linux.org mantém no ar (sem alteração, exceto quanto à formatação) notícias, artigos e outros textos publicados originalmente no site na segunda metade da década de 1990 e na primeira década do século XXI, que contam parte considerável a história do Linux e do Open Source no Brasil. Exceto quando indicado em contrário, a autoria dos textos é de Augusto Campos, e os termos de uso podem ser consultados na capa do BR-Linux.org. Considerando seu caráter histórico, é provável que boa parte dos links estejam quebrados, e que as informações deste texto estejam desatualizadas.