                  T     H     E

         $Pø"ý$b   ,gPø"ýb  ,gPø"ýb  ,gPø$$$$$$$ý$b  $     $
         $     $  $      $  $     $         $        $     $
         $     $  $         $     $         $        $     $
         $     $  $         $     $         $        $,   ,$
         $     $  gPý""'    $$$$$$$         $        $$$$$$$
         $     $  $         $     $         $        $'   `$
         $     $  $      $  $     $         $        $     $
         $     $  $      $  $     $        .$.       $     $
         $,   g'  $,    g'  $     $        $$$       $     $
         $Pýýø"    øýýýø"   ý     ý        $$$       ý     ý
            $   $  
            $  $   
            $ $    
            $$            ø
            $$     $$  $  $  ,g$$$   $  $  $$$$$  .$$$$$
            $ $    $ $ $  $  $       $  $    $    $$ 
            $  $   $  $$  $  $  `"$  $$$$    $    `""'$.
            $   $  $   $  $  `d$$b'  $  $    $        $$
            $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$P'

 ______________________________Death_Knights_________________________________
 ----------------------------------------------------------------------------

                        Data estelar:  1.0874935177
                        Data terrestre:  22/10/1998


DeathKnights #05a

e-mail: death@DeathKnights.com

page: http://www.DeathKnights.com


     melhor visualizado com joe -asis e terminal com setfont alt-8x16. (linux)
                           melhor visualizado com edit.                (dos)


 ______________________________Death_Knights_________________________________
 ----------------------------------------------------------------------------


.-----------.
|   SECOES   \_______________________________________________________________
`----------------------------------------------------------------------------'

1  * ESCLARECIMENTOS                        Cacaio
2  * Mensagens do LILO                      Cacaio
3  * Programacao basica de shell script     Cacaio
4  * Contas, passwd, etc...                 Cacaio
5  * IP aliases                             Cacaio
6  * Alteracao do prompt                    Cacaio
7  * Instalacao do BitchX                   ReNeGaDe
8  * Como instalar o Linux                  zine deathknights00
9  * Como recompilar o kernel               CeZiNHa
10 * Comandos mais utiliazdos no Linux      zine deathknights01
11 * The Death Knights port scanner 2.0     Cacaio
12 * Conectando Linux ao Provedor Internet  Vagner Farias (colaborador)
13 * neped                                  Cacaio
--

14 * FEW WORDS                               Cacaio


-=[  1  ]=-
.----------------.
| ESCLARECiMENTOS \__________________________________________________________
`----------------------------------------------------------------------------'


        Nao nos responsabilizamos pela informacao contida neste zine. Se voce
usar indevidamente qualquer informacao contida aqui, a responsabilidade e' to-
da sua. Se for pego, preso ou sei la o que, nao nos perturbe.

        Este numero e' um pouco diferente dos anteriores... ele e' destinado
aos iniciantes em Linux. Por que isto? Por que recebemos muitos e-mails com
perguntas basicas sobre Linux, ou com duvidas que alguem que tenha uma nocao
basica nao teria. Tenho certeza de que uma boa parte de que nem todos nossos
leitores se interessarao por este numero da zine, mas como alguns leitores
precisam disto, estamos publicando.

        Ah, aqui voce vai encontrar alguns textos traduzidos, pegos pela net, 
e ate' textos de outros colegas, portanto, nao nos perturbe falando "voce
copiou isto daqui ou de la'", porque se eu copiei, foi com autorizacao. Se eu
traduzi, e' porque ninguem tinha o feito entao eu resolvi traduzir. No inicio
de cada materia, caso ela seja traduzida ou tenha sido outra pessoa quem a
escreveu, havera uma notificacao.

        Os alguns dados da materia 'Alteracao de prompt' foram retirados do
zine NearZ, portanto, o credito nesta materia nao e' somente nosso, melhor,
nao e' nem 95% nosso, mas sim do NearZ. [http://www.cyberspace.org/~nearz]

        Este grupo nao visa nenhum fim lucrativo. Nos fazemos isto por diver-
sao e nada mais.

        Se voce nao gostou da informacao contida aqui, nao nos perturbe. O
problema e' todo seu.


-=[  2  ]=-
.------------------.
| Mensagens do LILO \________________________________________________________
`----------------------------------------------------------------------------'
                                by Cacaio

[TRADUCAO]                                                          [TRADUCAO]


        Quando o LILO e' carregado, ele mostra a palavra "LILO". Cada letra
e' impressa na tela depois ou antes de alguma acao especifica. Se o lilo
falhar em alguma acao, as letras impressas na tela podem ser usadas para
identificar o problema.
        Preste atencao que alguns digitos hexa podem aparecer depois do
primeiro "L" se algum problema transitorio ocorrer no disco rigido. A nao
ser que o LILO pare neste ponto, gerando uma corrente de erros sem fim,
os digitos hexa nao indicam um problema serio.

  ({nada})  Nenhuma parte do LILO foi carregada. Ou o LILO nao esta' instalado
ou a particao em que o setor de boot esta' alocado nao esta' ativa.


   L {erro} ... O primeiro estagio do carregador de boot foi carregada e
inicializada, mas nao pode carregar o segundo estagio. O codigo de erro de
dois digitos indica o tipo do problema. Isto geralmente indica um erro na
midia(o HD no caso) ou os parametros do HD nao foram colocados corretamente.

   LI    O primeiro estagio do carregador de boot pode carregar o segundo
estagio, mas nao pode executa-lo. Isto pode ser causado pelos parametros do
HD nao terem sido colocados corretamente ou por mover /boot/boot.b sem
executar o instalador de map.

   LIL   O segundo estagio do carregador de boot foi inicializado, mas nao
pode carregar a tabela de descricao do arquivo map. Isto geralmente e' causado
por um erro de midia(HD) ou pelos parametros do HD nao terem sido colocados
corretamente.

   LIL?   O segundo estagio do carregador de boot foi inicializado em um
endereco incorreto. Isto pode ser causado pelos parametros do HD nao terem
sido colocados corretamente ou por mover /boot/boot.b sem executar o
instalador de map.

   LIL-   A tabela de descricao esta corrompida. Isto pode ser causado pelos
parametros do HD nao terem sido colocados corretamente ou por mover
/boot/boot.b sem executar o instalador de map.

   LILO   Todas as partes do LILO foram carregadas com sucesso.



     Cacaio               Cacaio@DeathKnights.com
     `'`'`'               `'`'`'`'`'`'`'`'`'`'`'`



-=[  3  ]=-
.-----------------------------------.
| Programacao basica de shell script \_______________________________________
`----------------------------------------------------------------------------'
                                by Cacaio


        Ae, aqui vou ensinar como escrever arquivos de comando. Eles geralmen-
te sao chamados de shell scripts. Olha so o que vou falar:

   o  Como instalar seu diretorio de comando
   o  Alterando a variavel PATH pra incluir o seu diretorio de comandos e o
      diretorio corrente
   o  Como criar seu arquivo de comando e como torna-lo executavel
   o  Como executar seus arquivos de comando


      .-------------------------------------------------------.  
      | Variavel PATH / Como instalar seu diretorio de comando `-------.
      `=================-=-====--==-=-=-===----==---=-=---=-=--- -- -  -


        Conforme voce vai se tornando mais intimo do sistema operacional, voce
ira comecara usar comandos mais complexos. E digitar varios comandos para a
mesma coisa *e' tedioso*. Mas os shell scripts podem ser usados para isto,
executarem varios comandos, e e' isto o que veremos.

        Todos os comandos que voce executa estao no(s) diretorio(s) identifi-
cados pela variavel PATH. Normalmente, os diretorios default do PATH sao pro-
tegidos de forma que voce pode executar o que estiver dentro destes
diretorios, mas nao pode altera-los ou apaga-los, nem fazer nada dentro do
diretorio. Entao, cada vez que voce executar algo que nao esta dentro do PATH,
se voce nao estiver dentro do diretorio do mesmo voce deve informar o caminho
completo para o programa. Se voce nao quiser ter o trabalho todo de mudar de
diretorio ou digitar o caminho completo, voce pode colocar um diretorio com
shell scripts que fazem esta tarefa mais facilmente para voce, e entao colocar
este seu diretorio na variavel PATH. Os nomes mais utilizados para estes
diretorios sao 'bin' ou 'util', mas voce pode colocar o nome que quiser.

        Vamos comecar... primeiro, vamos ver qual o seu PATH definido:

                                                                          
  $ echo $PATH                                                            
  /usr/local/bin:/bin:/usr/bin                                                
  $                                                                       

        Hmmm.... seu path e' o default. Vamos voltar neste assunto depois.
Agora, ja sabemos seu path e vimos que nele nao se encontra nenum diretorio
de comando incluido por voce. Entao, para continuarmos, voce tem que incluir
este diretorio(se quiser seguir o que diz aqui).

            1->  Digite 'cd ~' para certificar-se de que esta' em seu home
                 directory
            2->  Digite 'mkdir' para criar o diretorio 'bin' e 'chmod 755'
                 para torna-lo disponivel para voce para acesso completo e
                 fornecer acesso de leitura e execucao para qualquer outro
                 usuario.


  $ mkdir bin
  $ chmod 755 bin
  $

        Edite seu arquivo de configuracao (.profile, .bash_profile, etc..)
para adicionar o pathname em sua variavel PATH. Se ele tem uma atribuicao para
um path, adicione o pathname que voce quer. Caso nao tenha, voce pode adicionar
apenas colocando a seguinte linha:

PATH=$PATH:$HOME/bin

        Efetue um logoff e em seguida um login.


      .-----------------------------------------.  
      | Criando e executando arquivos de comando `---------------------.
      `=================-=-====--==-=-=-===----==---=-=---=-=--- -- -  -


        Pense s respeito dos comandos que voce digita quando muda para um
diretorio diferente. Um pwd, talvez, para certificar-se que esta no local
certo. Entao, talvez voce queira verificar quais arquivos e diretorios existem
neste diretorio, para isso, voce executaria o comando ls. Para finalizar, voce
poderia enviar um comando du e ver o espaco que esta sendo consumido neste
diretorio. Normalmente, voce poderia executar estes comandos da seguinte
forma:

  $ pwd
  /home/death
  $ ls
  adv_awk/          contest/        ham/          src/
  awk_test/         teste/          lib/          seila/
  bin/              group           profile.bak
  $ du -s
  2517
  $

        Entendeu o que viu? Caso nao tenha entendido, eu explico:

        Tipo de Arquivo                    Indicador
        ---------------                    ----------
        Normal                              (nenhum)
        Executavel                             *
        Diretorio                              /
        Uniao Simbolica                        @


        O programa du apresenta o uso do disco em termos de blocos de 512
bytes. A opcao -s orienta o programa a imprimir somente um sumario (os blocos
totais) para o diretorio informado (. por default).

        Voce tambem pode escrever todos os comandos em so uma linha os
separando por ponto e virgula (;). Isto faz voce ter que teclar enter somente
uma vez, mas mesmo assim teria que digitar todos os comandos:

  $ pwd ; ls ; du -s
  /home/death
  adv_awk/          contest/        ham/          src/
  awk_test/         teste/          lib/          seila/
  bin/              group           profile.bak
  2517
  $

        Trabalhoso, nao? E se apenas um comando fizesse tudo isso... e isto
pode ser feito. Vamos agora criar o script 'myls' que fara tudo isto. Ao
inves de usar um editor de texto, usarei o cat mesmo, pois nem todos usam
o mesmo editor de texto e esta materia e' dedicada a iniciantes. Nao falarei
comando de nenhum editor de texto.

  $ cat > myls
  pwd
  ls
  du -s
  (Aperte CTRL+D)
  $

        Agora, utilize o chmod para definir as permissoes necessarias (+x
permite execucao por qualquer usuario). Utilizando o comando ls antes e depois
de chmod, voce podera ver a diferenca.

  $ ls -l myls
  -rw-r--r--   1 death    users          19 Jun 08 20:23 myls
  $ chmod +x myls
  -rwxr-xr-x   1 death    users          19 Jun 08 20:23 myls
  $

        Agora vamos testar o script!

  $ myls
  myls: command not found
  $

        Epa! O que aconteceu? A listagem apresenta o programa no diretorio
corrente, mas ele nao e' encontrado. Por que? Lembre o que foi falado da
variavel PATH e a necessidade de especificar o diretorio corrente em seu PATH.
Voce precisara inserir um . a variavel PATH em seu arquivo de configuracao
(insira os caracteres :. ao fim da linha de PATH, salve o arquivo e reinicie
o login para que as alteracoes facam efeito). Por enquanto, simplesmente
especifique na linha de comando o local onde o programa se encontra:

  $ ./myls
  /home/death
  adv_awk/          contest/        ham/          src/
  awk_test/         teste/          lib/          seila/
  bin/              group           profile.bak
  2517
  $

        Isso nao e' bem mais facil do que digitar uma serie de comandos?
Agora, vamos mover o script myls para o seu diretorio bin, digitando:

  $ mv mylsy $HOME/bin
  $

        Pronto! Agora e' so digitar myls para rodar o myls. Voce pode fazer
isto com qualquer nome de arquivo que queira e colocar os comandos desejados
no script.


     Cacaio               Cacaio@DeathKnights.com
     `'`'`'               `'`'`'`'`'`'`'`'`'`'`'`


-=[  4  ]=-
.-----------------------.
| Contas, passwd, etc... \___________________________________________________
`----------------------------------------------------------------------------'
                                by Cacaio

Somente abordarei o basico quanto a isto. Se quiser se aprofundar, leia o
/etc/passwd.defs, man 5 passwd, man adduser, etc...

Para adicionar uma conta, use o comando "adduser".
Exemplo:

$ adduser

Login name for new user (8 characters or less) []: death05

User id for death05 [ defaults to next available]: (tecle ENTER)

Initial group for death05 [users]: (escolha o grupo. se nao souber tecle ENTER)

death05's home directory [/home/death05]: (escolha o diretorio do usuario)

death05's shell [/bin/bash]: (escolha a shell. exemplos: bash, csh, ash, zsh, etc...)

death05's account expiry date (MM/DD/YY) []: (data de expiracao da conta)

OK, I'm about to make a new account. Here's what you entered so far:
(Aparecerao as informacoes que voce colocou)

New login name: death05                 (Login novo)
New UID: [Next available]               (UID)
Initial group: users                    (Grupo)
Additional groups: [none]               (Grupos adicionais)
Home directory: /home/death05           (Diretorio inicial/home)
Shell: /bin/bash                        (Shell)
Expiry date: [no expiration]            (Data de expiracao)

This is it... if you want to bail out, hit Control-C.  Otherwise, press
ENTER to go ahead and make the account.
(Se algo estiver errado ou for desistir, pressione Control-C. Caso
contrario, pressione ENTER e continue a criar a conta)


Making new account...

Changing the user information for tdk05
Enter the new value, or press return for the default
(Aqui voce coloca o valor que quiser, ou pressiona ENTER para o padrao)

        Full Name []: Conta de teste               (Nome Completo)
        Room Number []:                            (Numero da sala)
        Work Phone []:                             (Telefone de trabalho)
        Home Phone []:                             (Telefone de casa)
        Other []: Facil!                           (Comentarios adicionais)

Changing password for death05
Enter the new password (minimum of 5, maximum of 8 characters)
Please use a combination of upper and lower case letters and numbers.
(Aqui voce coloca a senha para o usuario novo. A senha tem que ter no minimo
5 caracteres e no maximo 8. Usar uma senha segura e' sempre bom.

(Senha segura: uma senha com combinacao de letras e numeros que seja ilogica
e nao seja nenhuma palavra de nenhum dicionario ou alguma data.  Exemplos:

phi47jty
4jqft6z
loomoo63
thetib1
l4korou

SEMPRE use uma senha segura. Se voce quiser, pode aumentar o tamanho maximo
da senha e usar quantos caracteres quiser no /etc/login.defs)
Uma senha segura pode ser feita randomicamente em nosso site.
http://www.deathknights.com

New password:                           (Coloque a nova senha)
Re-enter new password:                  (Re-digite a senha nova para verificacao) 
Password changed.
Done...                                 
$

Pronto! Conta criada!


E para remover uma conta use o comando "userdel".
Exemplo:

$ userdel lynx
$


Conta removida!


Ah, lembre-se do basico: voce deve ser o root para fazer isto. Voce como
root deve criar uma conta para voce usar. Use a conta root somente para
admnistrar o sistema.




 /////////////////////////////////////
// Criando uma conta so' de e-mail //
////////////////////////////////////

Crie uma conta normal, edite o arquivo /etc/passwd. No arquivo passwd,
troque o home directory para /dev/null e a shell para /dev/null tambem.

Exemplo:

(Linha do passwd antes da alteracao:)
death05:x:1006:100:Conta de teste ,,,,Facil!:/home/death05:/bin/bash

(Linha do passwd apos alteracao:)
death05:x:1006:100:Conta de teste ,,,,Facil!:/dev/null:/dev/null



 /////////////////////////////////////////////////////////////
// Criando uma conta para usar apenas determinado programa //
////////////////////////////////////////////////////////////

Muito facil tambem. E' como criar a conta de e-mail, mas voce deve ao inves
de colocar a shell para /dev/null colocar a shell para o programa que voce
quer que seja executado. Ao sair deste programa, o usuario automaticamente
saira do sistema. Isto e' util para se adicionar contas somente com acesso
ao pine, ou programas de irc, ou como desejar. Nao e' recomendado fazer isto
para usar o programa lynx, pois com ele o usuario pode cair na shell sem que
voce queira apenas abrindo a seguinte url:

LYNXDOWNLOAD://Method=-1/File=/dev/null;/bin/bash;/SugFile=/dev/null

Ou trocando /bin/bash para a shell que voce quiser. Assim, o usuario cairia na
shell. Mas nao e' isto o que queremos. Solucao: nao criar este tipo de conta
para o lynx.



 /////////////////////////
// Estrutura do passwd //
///////////////////////

As linhas do passwd podem ser encontradas das seguintes formas:

death05:x:1006:100:Conta de teste ,,,,Facil!:/home/death05:/bin/bash

Ou assim:

death05:cwvZeodnca8L6:1006:100:Conta de teste ,,,,Facil!:/home/death05:/bin/bash

Qual a diferenca delas?

E' que na primeira linha de exemplo, a senha esta em shadow, e no segundo
nao. Se o seu sistema nao coloca automaticamente o shadow nas senhas, pegue
e instale o shadow suite. Isto e' basico para que seu sistema seja seguro.

Bem, agora vou falar da estrutura.

death05:cwvZeodnca8L6:1006:100:Conta de teste ,,,,Facil:/home/death05:/bin/bash
  |           |       |   |            |                        |         |
nome da conta |       |   |            |                        |         |
     senha encriptada |   |            |                        |         |
                     UID GID   Nome, telefone, etc...   diretorio home   shell                 

So' isso que vou falar mesmo, so' o basico. Como ja falei, se aprofunde mais
se quiser.

     Cacaio               Cacaio@DeathKnights.com
     `'`'`'               `'`'`'`'`'`'`'`'`'`'`'`

-=[  5  ]=-
.-----------.
| IP aliases \_______________________________________________________________
`----------------------------------------------------------------------------'
                                by Cacaio


Ae, vou ensinar aqui algo que pode ser util. IP aliases no linux. Nao to afim
de introducao e por isso vou logo dizer como fazer.

Carregue o modo de IP alias(se ja nao estiver compilado no kernel):

 /sbin/insmod /lib/modules/`uname -r`/ipv4/ip_alias.o

Agora arrume o loopback, eth0 e todos os IPs comecando com o numero do IP
princial para a interface do eth0:


 /sbin/ifconfig lo 127.0.0.1
 /sbin/ifconfig eth0 up
 /sbin/ifconfig eth0 196.16.3.1
 /sbin/ifconfig eth0:0 196.16.3.10
 /sbin/ifconfig eth0:1 196.16.3.100

196.16.3.1 e' o numero de IP principal, enquanto .10 e .100 sao aliases. A
parada e' o 'eth0:x' onde x=0,1,2,... para os IPs diferentes... O IP principal
nao precisa ser colocado no alias.

Agora arrume as rotas. Primeiro o loopback, depois os varios IPs comecando com 
o padrao:

 /sbin/route add -net 127.0.0.0
 /sbin/route add -net 196.16.3.0 dev eth0
 /sbin/route add -host 196.16.3.1 dev eth0
 /sbin/route add -host 196.16.3.10 dev eth0:0
 /sbin/route add -host 196.16.3.100 dev eth0:1
 /sbin/route add default gw 196.16.3.200


E e' isso ae!



Ah... peraih!

Neste exemplo eu uso so 3 IPs. O numero maximo ta' definido pra 256 no arquivo
/usr/include/linux/net_alias.h. 256 IPs e' MUITA coisa! :P

Aqui ta como o meu /sbin/ifconfig e':


lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Bcast:196.255.255.255  Mask:255.0.0.0
          UP BROADCAST LOOPBACK RUNNING  MTU:3584  Metric:1
          RX packets:5088 errors:0 dropped:0 overruns:0
          TX packets:5088 errors:0 dropped:0 overruns:0

eth0      Link encap:10Mbps Ethernet  HWaddr 00:8E:B8:83:19:20
          inet addr:196.16.3.1  Bcast:196.16.3.255  Mask:255.255.255.0
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:334036 errors:0 dropped:0 overruns:0
          TX packets:11605 errors:0 dropped:0 overruns:0
          Interrupt:7 Base address:0x378

eth0:0    Link encap:10Mbps Ethernet  HWaddr 00:8E:B8:83:19:20
          inet addr:196.16.3.10  Bcast:196.16.3.255  Mask:255.255.255.0
          UP BROADCAST RUNNING  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0
          TX packets:0 errors:0 dropped:0 overruns:0

eth0:1    Link encap:10Mbps Ethernet  HWaddr 00:8E:B8:83:19:20
          inet addr:196.16.3.100  Bcast:196.16.3.255  Mask:255.255.255.0
          UP BROADCAST RUNNING  MTU:1500  Metric:1
          RX packets:1 errors:0 dropped:0 overruns:0
          TX packets:0 errors:0 dropped:0 overruns:0

O /proc/net/aliases:

device           family address
eth0:0           2      196.16.3.10
eth0:1           2      196.16.3.100

O /proc/net/alias_types:

type    name            n_attach
2       ip              2


E, claro, as coisas do /proc/net foram criadas pelo ifconfig e nao manualmente.

E como fazer para que sempre que o micro for iniciado isto ser feito
automaticamente?


Creio que no seu sistema tenha um arquivo /etc/rc.d/rc.local. Coloque nele
mais ou menos isto:

     #arrumando os IP aliases
     echo "Arrumando os aliases: 196.16.3.1, 196.16.3.10, 196.16.3.100 ..."
     /sbin/ifconfig lo 127.0.0.1
     /sbin/ifconfig eth0 up
     /sbin/ifconfig eth0 196.16.3.1
     /sbin/ifconfig eth0:0 196.16.3.10
     /sbin/ifconfig eth0:1 196.16.3.100
     #roteando...
     echo "Roteando ..."
     /sbin/route add -net 127.0.0.0
     /sbin/route add -net 196.16.3.0 dev eth0
     /sbin/route add -host 196.16.3.1 eth0
     /sbin/route add -host 196.16.3.10 eth0:0
     /sbin/route add -host 196.16.3.100 eth0:1
     /sbin/route add default gw 196.16.3.200
     #

Altere o que for necessario.


E como eu faco para a maquina que esta usando o alias para receber e-mail para
outros aliases(usando sendmail)?

Crie um arquivo chamado, por exemplo, de /etc/mynames.cw. Ele nao precisa ter
este nome ou estar no /etc. Neste arquivo, coloque os nomes de dominios ofici-
ais dos IPs com alias. Se estes IPs nao tem um dominio, voce pode colocar
apenas o numero do IP.

     /etc/mynames.cw:
     ----------------
     # /etc/mynames.cw - tem todos os alias da sua maquina
     dominio.um.mil
     dominio.dois.com
     dominio.tres.org
     4.5.6.7



No seu arquivo sendmail.cf, onde temdefinida a classe da macro Fw, coloque o
seguinte:

     .
     .
     .
     ##################
     #   local info   #
     ##################
     .
     .
     # arquivo que contem nomes dos hosts que receberao e-mail
     Fw/etc/mynames.cw
     .
     .
     .


Isto deve servir. Teste a configuracao chamando o sendmail no modo de teste
por exemplo:

     $ /usr/lib/sendmail -bt
     ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
     Enter < ruleset> < address>
     > 0 me@4.5.6.7
     rewrite: ruleset  0   input: me @ 4 . 5 . 6 . 7
     rewrite: ruleset 98   input: me @ 4 . 5 . 6 . 7
     rewrite: ruleset 98 returns: me @ 4 . 5 . 6 . 7
     rewrite: ruleset 97   input: me @ 4 . 5 . 6 . 7
     rewrite: ruleset  3   input: me @ 4 . 5 . 6 . 7
     rewrite: ruleset 96   input: me < @ 4 . 5 . 6 . 7 >
     rewrite: ruleset 96 returns: me < @ 4 . 5 . 6 . 7 . >
     rewrite: ruleset  3 returns: me < @ 4 . 5 . 6 . 7 . >
     rewrite: ruleset  0   input: me < @ 4 . 5 . 6 . 7 . >
     rewrite: ruleset 98   input: me < @ 4 . 5 . 6 . 7 . >
     rewrite: ruleset 98 returns: me < @ 4 . 5 . 6 . 7 . >
     rewrite: ruleset  0 returns: $# local $: me
     rewrite: ruleset 97 returns: $# local $: me
     rewrite: ruleset  0 returns: $# local $: me
     > 0 me@4.5.6.8
     rewrite: ruleset  0   input: me @ 4 . 5 . 6 . 8
     rewrite: ruleset 98   input: me @ 4 . 5 . 6 . 8
     rewrite: ruleset 98 returns: me @ 4 . 5 . 6 . 8
     rewrite: ruleset 97   input: me @ 4 . 5 . 6 . 8
     rewrite: ruleset  3   input: me @ 4 . 5 . 6 . 8
     rewrite: ruleset 96   input: me < @ 4 . 5 . 6 . 8 >
     rewrite: ruleset 96 returns: me < @ 4 . 5 . 6 . 8 >
     rewrite: ruleset  3 returns: me < @ 4 . 5 . 6 . 8 >
     rewrite: ruleset  0   input: me < @ 4 . 5 . 6 . 8 >
     rewrite: ruleset 98   input: me < @ 4 . 5 . 6 . 8 >
     rewrite: ruleset 98 returns: me < @ 4 . 5 . 6 . 8 >
     rewrite: ruleset 95   input: < > me < @ 4 . 5 . 6 . 8 >
     rewrite: ruleset 95 returns: me < @ 4 . 5 . 6 . 8 >
     rewrite: ruleset  0 returns: $# smtp $@ 4 . 5 . 6 . 8 $: me < @ 4 . 5 . 6 . 8 >
     rewrite: ruleset 97 returns: $# smtp $@ 4 . 5 . 6 . 8 $: me < @ 4 . 5 . 6 . 8 >
     rewrite: ruleset  0 returns: $# smtp $@ 4 . 5 . 6 . 8 $: me < @ 4 . 5 . 6 . 8 >
     >


Ta tudo certinho agora... ajudei em algo? Espero que sim! :P


     Cacaio               Cacaio@DeathKnights.com
     `'`'`'               `'`'`'`'`'`'`'`'`'`'`'`


-=[  6  ]=-
.---------------------.
| Alteracao do prompt  \_____________________________________________________
`----------------------------------------------------------------------------'
                                 by Cacaio

        Hey, voce sabe o que e' prompt ne'? E' aquele negocio assim:

 death:~#
 OU
 [root@death ~]#

Ta cansado do seu? E' so' trocar... coisa bem basica... Perai'! Voce nao sabe
como trocar? Hmmm... ta ok... vou ensinar.

Edite o arquivo ~/.profile ou ~/.bash_profile para configuracoes a nivel de
usuario *ou* /etc/profile para configuracoes globais. Neste arquivo voce
encontrara uma linha com PS1='...'. E' so' esses parametros do PS1 que voce
tem que trocar! Mas pelo que trocar? Ai' vai a lista das 'tags':

    \d  A data no formato "Dia-da-Semana Mes Dia-do-Mes"
    \n  Nova linha
    \W  Ultima parte do diretorio atual (Ex: /usr/bin == bin)
    \w  Diretorio atual
    \#  Numero do comando, contador de comandos
    \t  A hora no formato HH:MM:SS
    \s  Nome do shell (bash)
    \$  Se for root # e se nao for $
    \u  User que voce tah agora
    \h  Nome do host
    \!  Numero do comando no history, incluindo os do ~/.bash_history
    \\  Uma barra '\'
    \[  Comeca uma string de controle, ANSI, e caracters nao imprimiveis
    \]  Termina a string comecada com \[

Exemplo:

PS1='\h:\s(\u/tty`tty |cut -b9-`)[\W]\$'

sairia algo como:

 death:bash(root/ttyp0)[~]#

Dificil neh? O legal e' que voce tambem pode usar cores ANSI.

Aqui estao elas:

   => Desliga a cor anterior
   => Negrito
   => Escuro
   => Sublinhado (monitores mono)
   => Piscante
   => Reverso
  => Preto
  => Vermelho
  => Verde
  => Amarelo
  => Azul
  => Rosa
  => Azul piscina
  => Branco
  => Fundo Preto
  => Fundo Vermelho
  => Fundo Verde
  => Fundo Amarelo
  => Fundo Azul
  => Fundo Rosa
  => Fundo Azul pscina
  => Fundo Branco


        Eh isso ae... valeu pessoal da NearZ!

        Ah, deem uma olhada no zine NearZ tambem! Muito bom.
        [http://www.cyberspace.org/~nearz]

        []'s

     Cacaio               Cacaio@DeathKnights.com
     `'`'`'               `'`'`'`'`'`'`'`'`'`'`'`

-=[  7  ]=-
.----------------------.
| Instalacao do BitchX  \____________________________________________________
`----------------------------------------------------------------------------'
                                 by ReNeGaDe


Para que voce possa instalar o BitchX primeiro tera que obte-lo que vc
pode conseguir hein ftp.bitchx.[com/org/net] ou www.bitchx.com apos 
pega-lo, voce tera que seguir os seguintes passos:

1- Descompacta-lo.. ele geralmente estar .tar.gz que vc usara: 
tar xvfz ircii-pana-75p1.tar.gz

2- Ele ira criar um diretorio chamado BitchX entre nele e escreva:
./configure que assim sera feita a configuracao dela pra seu computador.

3- Apos o configure escreva: make para compila-lo.

4- Escreva ./BitchX no dir do BitchX e entre nele!

Pronto aqui acaba a instalacao simples e basica do BitchX!



     ReNeGaDe               ReNeGaDe@DeathKnights.com
     `'`'`'`'               `'`'`'`'`'`'`'`'`'`'`'`'`



-=[  8  ]=-
.---------------------.
| How to install Linux \_____________________________________________________
`----------------------------------------------------------------------------'
                           zine deathknights00

  
   Bem, estava de saco cheio de ficar respondendo perguntas absurdas sobre
como instalar o Linux. Se voce esta quebrando a cabeca aqui esta o seu 
remedio. Aqui eu irei escrever uma instalacao do Slack Ware 3.1 versao CDROM
para uma particao no seu HD.

   Para voce instalar o Linux e necessario, um CDROM IDE, um disco rigido com
400 Mb livres que e o recomendado para uma instalacao de Linux e uns disk 
formatados em DOS. Depois voce vera pra que serve.

   Para comecar, voce presisa de 2 diskettes, uma de boot e outra de root. 
A de boot como o nome indica e a que vai fazer a inicializacao do seu sistema
A de root e o sistema em miniatura chama-se minix. Depois de ter lido o boot
insira o diskette de root. Para fazeres os diskettes iniciais e necessario 
ir ao direterio bootdsks.144 do teu CDROM, leia o arquivo WHICH.ONE onde tera
uma tabela especificando qual a imagem que devera ser usado  para o teu 
hardware, mais presisamente o teu CDROM. Como examplo  vamus usar o bare.i q
e para CDROM IDE. Para criar um diskette com o bare.i use o rawrite. Apos vc
digitar ele lhe perguntara qual a imagem que queres criar no disk 
( digite bare.i ) e pergunta onde queres criar. Digite a: .
Depois de teres criado o diskette de boot, tera que criar o diskette de root
que esta no diretorio rootdsks e que geralmente e a color.gz, repita o mesmo
procedimento com o diskette de root. Depois de teres os dois diskettes criados, 
esta na hora de arrumar o sistema.
Enfie o diskette de boot em seu drive ( RESET ), quando ele pedir a de root,
enfie a de root no drive, que aparecera login, digite "root". Agora voce
chegou na linha de comando, digite fdisk para criar as particoes para o seu
novo sistema. Voce ira criar duas particoes, uma para o Linux, e outra particao para o SWAP ( Memoria Virtual ). Dentro do fdisk,
digite "n" ( Add New Partition ), digite "p" ( Primary Partition ), diga 2
porque se voce tiver uma outra particao de DOS ou RWIN95 essas serao a 
primeira. Depois ele te pede o First Cilinder, veja o exemplo a seguir. 
First Cilinder (205-1200), digite sempre o primeiro numero do First Cilinder,
depois ele pede o Last Cilinder, ai sera a quantidade que voce ira botar para
a particao, digite +40MB, com isso ele criara um particao de 40 MB. Agora 
devemos avisa que essa particao pertence ao SWAP, para isso digite "t" 
( Change Partition Type ) e ele pede o numero da particao. Lembre-se, digite 
"2", a seguir ele pedi o codigo da particao. Digie "L" para ver a lista de 
codigo, observe o núuero da particao de SWAP, e digite 82. Voce acabou de 
criar uma particao de 40 MB destinana para o SWAP ( Memoria Virtual ). Agora
falta criar a particao para o Sistema. Repita os mesmo passos, porem o numero
da particao sera "3". Agora temos q fazer o First Cilinder. Digamos que o 
First Cilinder (560-1200), lembre-se, sera o primeiro numero. Last Cilinder
sera o 1200, com isso voce deixara o resto de seu HD para essa particao. Nao 
e presiso mudar o tipo de particao porque ele inicia com a particao Linux 
Native. Apos ter feito tudo isso digite "w" ( Write Table to Disk and Exit ).
Tire o diskette de root do drive e enfie o diskette de boot e de "Reset" na
maquina.
    Voce conclui um dos primeiro passos. Repita os mesmos procedimentos 
anteriores, insira o diskette de boot, ate pedir o diskette de root e quando
aparecer o login digite "setup". Ira aparecer uma tela cheia das opcoes para
escolher. Bom, a primeira a coisa a ser feito e o KeyMap, como nao tem a 
versao em Portugues, escolha a versao em Ingles. O KeyMap pode ser alterado 
quando voce quiser. Depois ira pedir onde querem instalar o Linux ( ENTER 
YOUR TARGET PARTITION ) e digite onde esta a particao de Linux Native, no 
exemplo criamos na particao 3 ( /dev/hda3 ), depois pergunta qual e a 
particao de SWAP, particao 2 ( /dev/hda2 ). Depois ira lhe perguntar se voce
quer montar um filesystem, claro que sim, digite o diretorio que querem monta
o DOS, digite /dosc ( Agora voce podera acessar o DOS digitando cd /dosc e 
voce estara em seu C:\ ), depois ele ira lhe perguntar em que particao esta o
DOS, neste caso /dev/hda1 . A seguir ele ira pedir "Enter Your Source Media",
selecionem "Install From CDROM". Selecionem a opcao "Try to Scan Your CDROM",
se nao encontraremee porque voce pegou o diskette de boot errado, ( Leia o 
arquivo WHICH.ONE ) mas vamos dizer se ele achou o seu CDROM. Apos isso ele
pergunta que tipo de instalacao voce que faze, diga "Normall Instalation". 
Depois ira pedir que tipo de instalacao, selecione a opcao "Expert". A seguir
ira aparecer um quado com "Disk Sets". Vou lhe dizer o que e recomendavel 
instalar.

     A - Basic Linux System -> Tem tudo para o seu sistema operativo 
                               ( Instala )
     AP - Various Application -> Varios utilitarios ( Instala )

     D - Program Development -> Compiladores e Linguagens de programacao 
                                ( Instala )
     E - Gnu EMACS -> ( Nao Instalar )
   
     F - FAQ Lists -> Muito bom ( Instala )

     K - Linux Kernel Source -> A maior parte dos programas presisa disso.
                                ( Instala )
     N - NetWorking -> Internet 
                       ( Instala )
     T - teX Type Setting -> ( Nao Instala )
     
     TCL/TK -> Essencial para fazer BOT; linguagem de programacao
               ( Instala )
     X - Xfree Window System -> "Windows para Linux" 
                                ( Opcional )
     XAP - XApplication -> Application para a opcao "x"
                           ( Caso tenha instalado a opcao "X" Insatale esse )
     XD - X Server Development Kit -> Para programadores
                                      ( Instala )
     XVIEW -> Image View ( JPG )
              ( Opcional )
     Games -> Jogos
              ( Opcional )
   
     Depois de ter feito tudo isso, tudo ok! Agora espere uns 20 minutos e 
tera o Linux instalado.


                          death@deathknights.com
                          `'`'`'`'`'`'`'`'`'`'`'


-=[  9  ]=-
.-------------------------.
| Como recompilar o kernel \_________________________________________________
`----------------------------------------------------------------------------'
                                CeZiNHa

Para compilar o kernel eh necessario o arquivo linux-2.0.xx.tar.gz 
(onde xx eh a versao mais atual). Esse texto explica como atualizar o 
kernel 2.0.xx, a configuracao eh a mais simples, em caso de duvida
leia /usr/src/linux/README, ou ainda 

Download
   ftp://ftp.cdrom.com/pub/
   ftp://ftp.kernel.com/pub/
   ftp://sunsite.unc.edu/pub/Linux/kernel

Copie o arquivo linux-2.0.xx.tar.gz para /usr/src
                cp linux-2.0.xx.tar.gz /usr/src

Descompacte o arquivo (nao esqueca de alterar 'xx' para a versao atual)
                cd /usr/src
                tar zxvpf linux-2.0.xx.tar.gz

Vc pode usar patch para atualizar o kernel tb.
                cd /usr/src
                gzip -cd patchXX.gz | patch -p0

Tenha certeza que os links simbolicos estao corretos:
                cd /usr/include
                rm -rf asm linux scsi
                ln -s /usr/src/linux/include/asm-i386 asm
                ln -s /usr/src/linux/include/linux linux
                ln -s /usr/src/linux/include/scsi scsi

Compilando
   cd /usr/src/linux
   make mrproper
   make menuconfig (pode ser usado tb 'make config' no console mesmo 
ou 'make xconfig' no X)

Configuracoes
   Ao executar o menunconfig, aparecera um menu com opcoes. Deve-se escolher
   cada opcao, a partir dai aparecerao outros menus. Tecle 'Y' para incluir,
   'N' para excluir, 'M' para deixar como modulo, 'ESC ESC' para sair, ? para
   help. Legenda: [*] built-in   [ ] excluido   <M> modulo   <> aceita modulo
   

   Configuracao simples: Este eh um exemplo configuracao basica do kernel 2.0.35
   com acesso discado a Internet, c/ cdrom IDE, e placa de som SoundBlaster 16, 
   s/ scsi para um Pentium. Algumas opcoes podem ser diferentes dependendo do 
   kernel.
   
   Code maturity levels options
     [ ] Prompt for development and/or incomplete code/drivers

   Loadable module support
     [*] Enable loadable module support
     [ ] Set version information on all symbols for modules
     [*] Kernel daemon support (e.g. autoload of modules)

   General setup
     [ ] Kernel math emulation             
     [*] Networking support
     [ ] Limit memory to low 16MB
     [*] PCI bios support  
     [*] System V IPC 
     <*> Kernel support for a.out binaries      
     <*> Kernel support for ELF binaries  
     [*] Compile kernel as ELF - if your GCC is ELF-GCC
     (Pentium) Processor type ----- Aqui vc tem q escolher qual seu processador

   Floppy, IDE, and other block devices
     <*> Normal floppy disk support
     [*] Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support
     --- Please see Documentation/ide.txt for help/info on IDE drives
     [ ]    Use old disk-only driver on primary interface
     [*]    Include IDE/ATAPI CDROM support
     [ ]    Include IDE/ATAPI TAPE support
     [ ]    Include IDE/ATAPI FLOPPY support (new)
     [ ]    SCSI emulation support
     [ ]    Support removable IDE interfaces (PCMCIA)
     [ ]    CMD640 chipset bugfix/support
     [ ]    RZ1000 chipset bugfix/support  
     [ ]    Intel 82371 PIIX (Triton I/II) DMA support
     [ ]    Other IDE chipset support
     --- Additional Block Devices
     < > Loopback device support
     [ ] Multiple devices driver support
     < > RAM disk support
     < > XT harddisk support
     < > Parallel port IDE device support

   Networking options
     [ ] Network firewalls
     [ ] Network aliasing
     [*] TCP/IP networking
     [ ] IP: forwarding/gatewaying
     [ ] IP: multicasting
     [ ] IP: syn cookies
     [ ] IP: accounting
     [ ] IP: optimize as router not host
     < > IP: tunneling
     --- (it is safe to leave these untouched)
     [ ] IP: PC/TCP compatibility mode
     < > IP: Reverse ARP
     [ ] IP: Disable Path MTU Discovery (normally enabled)
     [*] IP: Drop source routed frames
     [*] IP: Allow large windows (not recommended if <16Mb of memory)
     ---
     < > The IPX protocol
     < > Appletalk DDP
     < > Amateur Radio AX.25 Level 2
     [ ] Kernel/User network link driver

   SCSI support
     < > SCSI support

   Network device support
     [*] Network device support
     <M> Dummy net driver support
     < > EQL (serial line load balancing) support
     < > PLIP (parallel port) support
     <M> PPP (point-to-point) support
     --- CCP compressors for PPP are only built as modules.
     < > SLIP (serial line) support
     [ ] Radio network interfaces
     [ ] Ethernet (10 or 100Mbit)
     [ ] Token Ring driver support
     [ ] FDDI driver support
     < > ARCnet support

   ISDN subsystem
     < > ISDN support

   CD-ROM drivers (not for SCSI or IDE/ATAPI drives)
     [ ] Support non-SCSI/IDE/ATAPI CDROM drives

   Filesystems
     [ ] Quota support
     <M> Minix fs support
     < > Extended fs support
     <*> Second extended fs support
     < > xiafs filesystem support
     <*> Native language support (Needed for FAT and ISO9660)
     <M> ISO9660 cdrom filesystem support
     <M> DOS FAT fs support
     <M> MSDOS fs support
     < > umsdos: Unix like fs on top of std MSDOS FAT fs
     <M> VFAT (Windows-95) fs support
     <*> Codepage 437
     < > Codepage 737
     < > Codepage 775
     < > Codepage 850
     < > Codepage 852
     < > Codepage 855
     < > Codepage 857
     < > Codepage 860
     < > Codepage 861
     < > Codepage 862
     < > Codepage 863
     < > Codepage 864
     < > Codepage 865
     < > Codepage 866
     < > Codepage 869
     < > Codepage 874
     <*> NLS ISO 8859-1
     < > NLS ISO 8859-2
     < > NLS ISO 8859-3
     < > NLS ISO 8859-4
     < > NLS ISO 8859-5
     < > NLS ISO 8859-6
     < > NLS ISO 8859-7
     < > NLS ISO 8859-8
     < > NLS ISO 8859-9
     < > NLS KOI8-R
     [*] /proc filesystem support 
     < > NFS filesystem support
     < > SMB filesystem support (to mount WfW shares etc..) 
     < > OS/2 HPFS filesystem support (read only)
     < > System V and Coherent filesystem support 
     < > UFS filesystem support (read only)

   Character devices
     <*> Standard/generic serial support 
     [ ] Digiboard PC/Xx Support
     < > Cyclades async mux support
     [ ] Stallion multiport serial support
     < > SDL RISCom/8 card support 
     <M> Parallel printer support
     < > Specialix IO8+ card support
     [ ] Mouse Support (not serial mice)
     [ ] Support for user misc device modules 
     [ ] QIC-02 tape support
     < > Ftape (QIC-80/Travan) support
     [ ] Advanced Power Management BIOS support 
     [ ] Watchdog Timer Support
     [ ] Enhanced Real Time Clock Support 

   Sound
     <M> Sound card support
     Old configuration script  (For: SM Wave, PSS & AudioTrix Pro) -->
     [ ] ProAudioSpectrum 16 support
     [*] Sound Blaster (SB, SBPro, SB16, clones) support
     [*] Generic OPL2/OPL3 FM synthesizer support
     [ ] Gravis Ultrasound support
     [ ] MPU-401 support (NOT for SB16)
     [ ] 6850 UART Midi support
     [ ] PSS (ECHO-ADI2111) support
     [ ] 16 bit sampling option of GUS (_NOT_ GUS MAX)
     [ ] GUS MAX support
     [ ] Microsoft Sound System support
     [ ] Ensoniq SoundScape support
     [ ] MediaTrix AudioTrix Pro support
     [ ] Support for MAD16 and/or Mozart based cards
     [ ] Support for Crystal CS4232 based (PnP) cards
     [ ] Support for Turtle Beach Wave Front (Maui, Tropez) synthesizers
     [*] /dev/dsp and /dev/audio support
     [*] MIDI interface support
     [*] FM synthesizer (YM3812/OPL-3) support
     (220) I/O base for SB Check from manual of the card
     (5) Sound Blaster IRQ Check from manual of the card
     (1) Sound Blaster DMA 0, 1 or 3
     (5) Sound Blaster 16 bit DMA (_REQUIRED_for SB16, Jazz16, SMW) 5, 6 o
     (0) MPU401 I/O base of SB16, Jazz16 and ES1688 Check from manual of t
     (-1) SB MPU401 IRQ (Jazz16, SM Wave and ES1688) Use -1 with SB16
     (65536) Audio DMA buffer size 4096, 16384, 32768 or 65536 
     [ ] Additional low level drivers

   Kernel hacking
     [ ] Kernel profiling support
   
   Tecle <ESC><ESC> depois grave a configuracao. Digite:
  $ make dep
  $ make clean
  $ make install

   De um boot no sistema e verifique se aparecera a mensagem:
   Welcome to Linux 2.0.35.

   Prontim.. compilado. Em caso de duvidas, verifique Kernel-HOWTO


     CeZiNHa               cezinha@DeathKnights.com
     `'`'`'`               `'`'`'`'`'`'`'`'`'`'`'`'



-=[  10  ]=-
.----------------------------------.
| Comandos mais utiliazdos no Linux \________________________________________
`----------------------------------------------------------------------------'
                           zine deathknights00


        Vamos deixar bem claro que vamos falar sobre os comandos mais
utilizados no Linux, lembrando que nao sao todos os comandos. 
    
     who (ou w)    -=> ver quem esta' logado
     pwd           -=> ver diretorio atual
     mkdir         -=> cria um novo diretorio
     ls            -=> lista de arquivos do diretoria atual
     cp            -=> copia arquivos 
     mv            -=> move arquivos 
     rm            -=> deleta arquivos
     kill          -=> elimina processo e users
     wall          -=> envia mensagem a todos os users conectados
     cc ou gcc     -=> compilar
     find          -=> procurar arquivos
     date          -=> exibe data e hora de seu sistema
     su            -=> troca de user sem presisar do logout
     touch         -=> cria um arquivo fazio
     free          -=> mostra a quantidade de memoria fisica e swap desponivel
     df            -=> visualisa espaco nas particoes
     talk [user]   -=> entra em chat com outro usuario
     write [user]  -=> envia uma mensagem para algum usuario automaticamente
     wall          -=> semelhante ao write, mas envia a mensagem a todos os
                       usuarios logados no momento


     Bom, ai foram alguns comandos mais utilizados para o Linux, se voce tem
algo a reclamar a respeito a essa materia envie e-mail para nos.


                          death@deathknights.com
                          `'`'`'`'`'`'`'`'`'`'`'
-=[  11  ]=-
.-----------------------------------.
| The Death Knights port scanner 2.0 \_______________________________________
`----------------------------------------------------------------------------'
                                by Cacaio

        No zine deathknights02, apresentei a primeira versao deste port
scanner feito por mim. Agora, depois de muitas pequenas versoes anteriores,
apresento a versao 2.0.

O que tem de novo:

     o  Problemas de compilacao com linux Red Hat e unixes resolvidos
     o  Ele esta' mais rapido
     o  Problemas de alguns ANSI's corrigidos
     o  Se aparecer algum 'UNKNOWN' em alguma porta e voce souber do que e'
        esta porta, basta adiciona-la a seu /etc/services que na proxima vez
        o port scanner a reconhecera'.
     o  Mudancas simples na estrutura


        Mas para que serve um port scanner? O nome ja diz...

Port = Porta
Scanner = Localizador

Logo, ele procura por portas. Como as portas fechadas nao podem ser detectadas
(ohhhh!!!), logo ele procura por portas abertas. Isto e' util para voce ver
quais as portas estao abertas em algum sistema, e fehca-las se nao estiver
usando *ou* pode ser usado com outros fins por usuarios mal intencionados.

O port scanner (deathscan.c) esta anexado a esta zine. Faca bom proveito :)


cya nex time

     Cacaio               Cacaio@DeathKnights.com
     `'`'`'               `'`'`'`'`'`'`'`'`'`'`'`
                          


-=[  11  ]=-
.--------------------------------------.
| Conectando Linux ao Provedor Internet \____________________________________
`----------------------------------------------------------------------------'
                                by Vagner Farias

1. Introdução.

Este documento tem por função descrever como utilizar o Linux para
conectar-se a um Provedor Internet através de uma linha discada. Por
enquanto ainda não são abordadas a utilização de softwares de mail, news,
etc.

Assim que sobrar um tempinho, estarei lançando um "kit conexão", que poderá
ser utilizado em qualquer máquina com Perl instalado.

1.1 Acentuação

Este documento foi escrito na Língua Portuguesa, portanto contém acentução.
Se você não consegue visualizar os caracteres acentuados, você tem as
seguintes opções, em ordem:

a) Ler o Portuguese-HOWTO (sim, este É em português - *quase* igual ao
nosso!) 
b) Utilizar o software "joe" na leitura, digitando: 
telematica:~$ joe -asis conexao.txt

2. Procedimentos iniciais.

Você deve ter instalado os softwares de rede (pacote N, no Slackware - nem
todos são necessários), além de ter compilado o kernel com suporte a PPP.

Identifique em qual saída serial o seu modem está conectado. Lembre-se:

DOS   -   Linux
COM1      /dev/cua0 (/dev/ttyS0)
COM2      /dev/cua1 (/dev/ttyS1)
COM3      /dev/cua2 (/dev/ttyS2)
COM4      /dev/cua3 (/dev/ttyS3)

Logo após, utilize o "su" para tornar-se root (você não está lendo este
documento como root, está?) crie um symlink de /dev/modem para a serial na
qual seu modem se encontra. Por exemplo (no caso do modem encontrar-se em
/dev/cua1 - COM2):

telematica:/home/farias# ln -s /dev/cua1 /dev/modem

Esta ação produzirá o seguinte:

telematica:/home/farias# ls -l /dev/modem
lrwxrwxrwx   1 root     root            4 Jan 18  1997 /dev/modem -> /dev/cua1

A configuração padrão normalmente permite acesso direto à /dev/modem apenas
para o usuário root.

Você pode utilizar o software "minicom" para testar sua configuração e para
observar as sequências de conexão do seu Provedor. Você irá precisar delas
se desejar automatizar o processo de conexão.

2.1 Arquivos de Configuração.

Novamente, estas tarefas devem ser feitas com o usuário root. Edite os
seguintes arquivos:

#/etc/hosts.deny
ALL: ALL
#End of /etc/hosts.deny

#/etc/hosts.allow
ALL: 127.0.0.1
#End of /etc/host.allow

Para obter maiores informações sobre estes arquivos, consulte "man 5
hosts_access". Estou considerando que você nao esteja conectado à uma LAN
e/ou que não tenha acesso à um IP estático (se você não sabe o que é, com
certeza nao tem).

Neste ponto, você precisa saber qual é o name server (DNS server) de seu
provedor e edite o arquivo "/etc/resolv.conf".

#/etc/resolv.conf
search . provedor.com.br
nameserver 222.222.222.222
nameserver 333.333.333.333
nameserver 444.444.444.444
#End of /etc/resolv.conf

Você pode utilizar até 3 name servers, que serão consultados em ordem, no
caso do anterior nao responder.

Modifique agora o arquivo "/etc/hosts".

#/etc/hosts
localhost 127.0.0.1
0.0.0.0   telematica
#* "telematica" é o nome de minha maquina, troque pelo nome da sua.
#End of /etc/hosts

Uma mínima configuração é necessária em "/etc/networks".

#/etc/networks
loopback 127.0.0.1
localnet 0.0.0.0
#End of /etc/networks

Você precisa agora configurar as opções a serem utilizadas pelo pppd,
durante a conexão. Para isto, crie o arquivo "/etc/ppp/options":

# /etc/ppp/options (NO PAP/CHAP)
#
# Prevent pppd from forking into the background
-detach
# If you are using a STATIC IP number, edit the 0.0.0.0 part of the
# following line to your static IP number.
0.0.0.0:
#
# use the modem control lines
modem
# use uucp style locks to ensure exclusive access to the serial device
lock
# use hardware flow control
crtscts
# create a default route for this connection in the routing table
defaultroute
# do NOT set up any "escaped" control sequences
asyncmap 0
# use a maximum transmission packet size of 552 bytes
mtu 552
# use a maximum receive packet size of 552 bytes
mru 552
#
#-------END OF SAMPLE /etc/ppp/options (no PAP/CHAP)
   
Este arquivo tem funcionado nos Provedores que já tive oportunidade de
testar.

Aconselho ainda a criação do arquivo /etc/ppp/scripts/ppp-off, contendo o
seguinte:

#!/bin/sh
######################################################################
# /etc/ppp/scripts/ppp-off 
#
# Determine the device to be terminated.
#
if [ "$1" = "" ]; then
	DEVICE=ppp0
else
	DEVICE=$1
fi

######################################################################
#
# If the ppp0 pid file is present then the program is running. Stop it.
if [ -r /var/run/$DEVICE.pid ]; then
        kill -INT `cat /var/run/$DEVICE.pid`
#
# If the kill did not work then there is no process running for this
# pid. It may also mean that the lock file will be left. You may wish
# to delete the lock file at the same time.
        if [ ! "$?" = "0" ]; then
                rm -f /var/run/$DEVICE.pid
                echo "ERROR: Removed stale pid file"
                exit 1
        fi
#
# Success. Let pppd clean up its own junk.
        echo "PPP link to $DEVICE terminated."
        exit 0
fi
#
# The ppp process is not running for ppp0
echo "ERROR: PPP link is not active on $DEVICE"
exit 1
# --------- End of /etc/ppp/scripts/ppp-off

Com isto, já é possível testar uma conexão manual ao provedor. Se tudo
funcionar como desejado, poderemos automatizar o processo.

3 Conexão.

3.1 Conexão Manual.

Você pode utilizar o "minicom", que tem a possibilidade de sair sem ressetar
o modem (Ctrl + A + Q ou Alt + Q). Agora você deve logar-se como "root"
("su" não irá funcionar). Disque para seu Provedor, logue-se (informe seu
username e senha quando solicitado), e estabeleça PPP no servidor (digitando
"ppp" ou selecinando a opção equivalente em algum menu - depende do
provedor). Você poderá observar o aparecimento de "lixo" em sua tela, tipo:

~y}#.!}!}!} }8}!}$}%U}"}&} } } } }%}& ...}'}"}(}"} .¸y}

Agora saia do minicom sem ressetar o modem (Alt + Q), e no prompt do shell,
digite (como root):

telematica:~# pppd -d -detach /dev/modem &

A opção -d habilita o debug, o que poderá ajudá-lo na resolução de
problemas.

Alguns segundos depois, você poderá verificar a interface PPP, digitando:

telematica:~# ifconfig ppp0

Deverá aparecer algo como:

----------------------------------------------------------------------------
ppp0      Link encap:Point-Point Protocol
          inet addr:200.248.171.138  P-t-P:200.248.171.4  Mask:255.255.255.0
          UP POINTOPOINT RUNNING  MTU:1500  Metric:1
          RX packets:276 errors:0 dropped:0 overruns:0
          TX packets:268 errors:0 dropped:0 overruns:0
-----------------------------------------------------------------------------

Onde:

* inet addr: indica o seu número IP para esta conexão.
* P-t-P: indica o número IP do servidor.

Se tudo ocorreu bem, parabéns, pois você está conectado. Contudo, existe um
porém. Se, por acaso, você não conseguir acessar outros hosts que não seja o
roteador do provedor (neste caso, 200.248.171.4), você deve verificar a
tabela de roteamento do kernel. Digite:

telematica:~$ /sbin/route
Kernel routing table
Destination     Gateway         Genmask         Flags MSS    Window Use Iface
vendetta.conesu *               255.255.255.255 UH    1500   0        0 ppp0
localnet        *               255.255.255.0   U     1500   0        8 eth0
loopback        *               255.0.0.0       U     3584   0       31 lo
default         vendetta.conesu *               UG    1500   0       21 ppp0

Se não aparecer uma rota default, ou então demorar muito para aparecer toda
a tabela de roteamento, é provavel que o pppd esteja tendo problemas para
configurar a rota default. Isto poderá acontecer no caso de já existir uma
rota default *antes* de você rodar o pppd. Neste caso, digite (como root):

telematica:/home/farias# /sbin/route del default

É provavel que esta rota esteja sendo definida nos scripts rc de
inicialização do Linux (/etc/rc.d/rc.inet1, no SlackWare), portanto comente
as linhas necessárias.

Teste agora a resolução de nomes, "pingando" um site que você tenha certeza
que esteja on-line. Você irá notar que haverá uma certa demora até que o
nome seja resolvido, mas se este atraso não for demais, está tudo OK.

Se tudo funcionou como desejado, desconecte-se digitando (como root):

telematica:/home/farias# /etc/ppp/scripts/ppp-off
PPP link to ppp0 terminated.

Se o script nao funcionar, chame o minicom, digite +++ para interromper o
modem e depois ATH0 para desligar, quando receber o "OK" do modem.

Agora já é possível automatizar a conexão.

3.2 Automatizando o processo de conexão.

Eu utilizo scripts para o "chat" na automatização da conexão, os quais nunca
me deram problemas, portanto nunca me preocupei em aprender a utilizar o
"dip".

Com estes scripts, você necessitará digitar apenas um comando para
estabelecer conexão com seu provedor de acesso. IMPORTANTE: Somente utilize
estes scripts se você testou a conexão manual e a mesma funcionou 100%!!

Para executar tais scripts, você precisará ser root, ou membro do grupo do
pppd (lembrei deste fato agora, e não pretendo reescrever este documento
abordando esta facilidade, portanto utilize root, ou leia o PPP-HOWTO). Os
scripts funcionam da seguinte maneira: quando o modem disca para o provedor,
esperamos um prompt de login do servidor, mandamos o login/username. Depois
esperamos um prompt de senha, e a enviamos.

#!/bin/sh
# /etc/ppp/scripts/ppp-on
#
# Este script não é seguro, já que é possivel visualizar os argumentos
# através do 'ps', mas é bastante fácil de entender. Se desejar algo
# melhor, RTFM 'n' do your own!
#
TELEPHONE=277997	# Número a ser discado
ACCOUNT=farias		# Username
PASSWORD=it'sasekrit!	# Senha para este username
LOCAL_IP=0.0.0.0	# IP local. Dinâmico = 0.0.0.0
REMOTE_IP=0.0.0.0	# IP remoto. Geralmente 0.0.0.0
# NETMASK=255.255.255.0	# Netmask, se necessário.
#
# Exportar variáveis para que estejam disponíveis para o script ppp-on-dialer
export TELEPHONE ACCOUNT PASSWORD
# 
# Localização do script 'ppp-on-dialer'. TEM que ser o caminho absoluto,
# não me pergunte o porquê!
#
DIALER_SCRIPT=/etc/ppp/scripts/ppp-on-dialer
#
# Inicia a conexão
# 
# A maioria das opções estão informadas no arquivo /etc/ppp/options.
#
exec /usr/sbin/pppd /dev/cua1 19200 \
	$LOCAL_IP:$REMOTE_IP \
	connect $DIALER_SCRIPT
/bin/setserial /dev/cua1 spd_vhi # modems 14.400 ou maior (> UART 16550A)
# -------- End of /etc/ppp/scripts/ppp-on

A seguir, o script ppp-on-dialer.

#!/bin/sh
# /etc/ppp/scripts/ppp-on-dialer
#
# Segunda parte dos scripts de conexão...
# 
exec chat						\
	TIMEOUT		30				\
	ABORT		'\nBUSY\r'			\
	ABORT		'\nNO ANSWER\r'			\
	ABORT		'\nRINGING\r\n\r\nRINGING\r'	\
	''		\rAT				\
	'OK-+++\c-OK'	ATH0				\
	TIMEOUT		45				\
	OK		ATDT$TELEPHONE			\
	BIS		''				\
	login:--login:	$ACCOUNT			\
	assword:	$PASSWORD			\
 	'ption'		'4'
# ------ End of /etc/ppp/scripts/ppp-on-dialer

Para maiores informações sobre scripts de conexão, leia a manpage do chat, o
PPP-HOWTO.

3.2.1 Testando os scripts de conexão.

Logue-se como root em um VC (virtual console) ou xterm e digite:

telematica~# tail -f /var/log/messages

(ou seja lá qual seja seu arquivo de log)

Em outro VC ou xterm, também como root, digite:

telematica:~# /etc/ppp/scripts/ppp-on &
[1] 678

Se você não rodar o script em background (utilizando o '&'), você não terá o
prompt liberado até que o pppd termine (quando o link é terminado).

Agora, retorne ao VC (ou xterm) onde o log está sendo mostrado. Você deverá
observar algo semelhante ao que segue (desde que tenha especificado a opção
'-v'para o chat):

Aug  6 16:34:43 telematica pppd[677]: pppd 2.2.0 started by root, uid 0
Aug  6 16:34:44 telematica chat[678]: timeout set to 30 seconds
Aug  6 16:34:44 telematica chat[678]: abort on (\nBUSY\r) 
Aug  6 16:34:44 telematica chat[678]: abort on (\nNO ANSWER\r) 
Aug  6 16:34:44 telematica chat[678]: abort on (\nRINGING\r\n\r\nRINGING\r) 
Aug  6 16:34:44 telematica chat[678]: send (rAT^M) 
Aug  6 16:34:44 telematica chat[678]: expect (OK) 
Aug  6 16:34:44 telematica chat[678]: rAT^M^M 
Aug  6 16:34:44 telematica chat[678]: OK -- got it 
Aug  6 16:34:44 telematica chat[678]: send (ATH0^M) 
Aug  6 16:34:44 telematica chat[678]: timeout set to 45 seconds
Aug  6 16:34:44 telematica chat[678]: expect (OK) 
Aug  6 16:34:44 telematica chat[678]: ^M 
Aug  6 16:34:45 telematica chat[678]: ATH0^M^M 
Aug  6 16:34:45 telematica chat[678]: OK -- got it 
Aug  6 16:34:45 telematica chat[678]: send (ATDT277997^M) 
Aug  6 16:34:45 telematica chat[678]: expect (BIS) 
Aug  6 16:34:45 telematica chat[678]: ^M 
Aug  6 16:35:01 telematica chat[678]: ATDT277997^M^M 
Aug  6 16:35:01 telematica chat[678]: CONNECT 14400/REL-LAPM V.42 BIS -- got it 
Aug  6 16:35:01 telematica chat[678]: send (^M) 
Aug  6 16:35:01 telematica chat[678]: expect (login:) 
Aug  6 16:35:01 telematica chat[678]: ^M 
Aug  6 16:35:01 telematica last message repeated 2 times
Aug  6 16:35:01 telematica chat[678]:             -----------------------------------------------^M 
Aug  6 16:35:01 telematica chat[678]:             |                 CYCLOM-MP/RA                |^M 
Aug  6 16:35:01 telematica chat[678]:             | Copyright(C) 1995,1996 CYCLADES Corporation |^M 
Aug  6 16:35:01 telematica chat[678]:             -----------------------------------------------^M 
Aug  6 16:35:01 telematica chat[678]: ^M 
Aug  6 16:35:01 telematica chat[678]: ^M 
Aug  6 16:35:01 telematica chat[678]: tom login: -- got it 
Aug  6 16:35:01 telematica chat[678]: send (farias^M) 
Aug  6 16:35:02 telematica chat[678]: expect (assword:) 
Aug  6 16:35:02 telematica chat[678]:  ^M 
Aug  6 16:35:02 telematica chat[678]:  
Aug  6 16:35:02 telematica chat[678]: Invalid user name.^M 
Aug  6 16:35:02 telematica chat[678]: tom login: farias^M 
Aug  6 16:35:02 telematica chat[678]: Password: -- got it 
Aug  6 16:35:02 telematica chat[678]: send (censored!^M) 
Aug  6 16:35:02 telematica chat[678]: expect (option) 
Aug  6 16:35:03 telematica chat[678]:  ^M 
Aug  6 16:35:03 telematica chat[678]: ^M 
Aug  6 16:35:03 telematica chat[678]: CYCLOM-MP/RA Main Menu 
Aug  6 16:35:03 telematica chat[678]: ^M 
Aug  6 16:35:03 telematica pppd[677]: Serial connection established.
Aug  6 16:35:03 telematica chat[678]: 1. Telnet                 2. Logout                     3. Ping^M 
Aug  6 16:35:03 telematica chat[678]: 4. PPP^M 
Aug  6 16:35:03 telematica chat[678]:  
Aug  6 16:35:03 telematica chat[678]: Select option -- got it 
Aug  6 16:35:03 telematica chat[678]: send (4^M) 
Aug  6 16:35:04 telematica pppd[677]: Using interface ppp0
Aug  6 16:35:04 telematica pppd[677]: Connect: ppp0 <--> /dev/cua1
Aug  6 16:35:05 telematica pppd[677]: local  IP address 200.248.171.146
Aug  6 16:35:05 telematica pppd[677]: remote IP address 200.248.171.6

Observe as últimas 3 linhas de log. Se você receber estas, existem boas
chances de você estar conectado! :-) Agora, teste a conexão, primeiramente
'pingando' o "remote IP". Logo após, faça o mesmo com o IP de um site que
sabidamente esteja on-line. Depois destes dois testes, utilize nomes ao
invés de IP's para testar o seu "/etc/resolv.conf".

Algo deu errado? Observe o log, veja onde aconteceu algo estranho (se *tudo*
lhe parece estranho, de uma olhada no PPP-HOWTO ou ISP-Hookup-HOWTO e
situe-se melhor!). Em último caso (eu disse ú-l-t-i-m-o), mande um mail para
farias@spock.ucpel.tche.br com o log da conexão (ei! não mande todo o
/var/log/messages!), que assim que eu lembrar minha senha nesse servidor eu
leio e respondo! :-)

Se tudo ocorreu bem, você pode navegar à vontade, pois você já faz parte da
grande rede!!

3.2.2 Desconectando...

Para desconectar-se, utilize o script /etc/ppp/scripts/ppp-off. Novamente,
você deve ser root para executar esta tarefa (ou membro do grupo do pppd,
mas isto é outra história...). Você poderá observar o seguinte no arquivo de
log (ou algo semelhante):

Aug  6 16:36:23 telematica pppd[677]: Terminating on signal 2.
Aug  6 16:36:23 telematica pppd[677]: Connection terminated.
Aug  6 16:36:23 telematica pppd[677]: Exit.

4. Conclusão

A idéia básica deste documento era apenas ajudar os usuários a estabelecerem
uma conexão PPP com um provedor de acessos. Quanto à utilização de softwares
clientes, como browsers, leitores de e-mail, programas de ftp, etc,
aconselho a leitura do ISP-Hookup-HOWTO ou então entre em contato com seu
Linux Guru local. Ainda não consegui organizar meu tempo para criar um
documento mais abrangente.

Espero que este documento possa ajudar qualquer usuário com o mínimo de
conhecimento em Unices a conectar-se a Internet. Se meu objetivo não foi
alcançado, solicito que entrem em contato comigo para que se possa melhorar
este breve e simples tutorial. A intenção é tornar o Linux um SO o mais
amigável possível, e embora seja uma tarefa difícil, é algo que *pode* ser
acabado, se um dia for *iniciado*!


     Vagner Farias     farias@atlas.ucpel.tche.br
     `'`'`'`'`'`'`     `'`'`'`'`'`'`'`'`'`'`'`'`'


-=[  13  ]=-
.----------.
|   neped   \________________________________________________________________
`----------------------------------------------------------------------------'
                                by Cacaio

        Seguranca e' fundamental, principalmente quando se trata de um sistema
operacional multi-usuarios. Para isto, a Toxyn Technologies desenvolveu o
neped. O neped e' um utilitario que procura em toda sua rede por interfaces
promiscuas e sniffers. E' muito util para todo o tipo de usuario. O source
vai anexado ao zine e tambem pode ser obtido em http://www.deathknights.com .


     Cacaio               Cacaio@DeathKnights.com
     `'`'`'               `'`'`'`'`'`'`'`'`'`'`'`


-=[  ?  ]=-
.-----------.
| FEW WORDS  \_______________________________________________________________
`----------------------------------------------------------------------------'
                                 by Cacaio


        Quer saber quem sao os nossos membros? De uma olhada em nossa page!
                                               http://www.DeathKnights.com

        Se voce quiser se tornar um membro, esqueca, ja temos muitos
        membros.


        Se voce quiser mandar um e-mail dizendo o que achou do zine, dar su-
        gestoes, reclamar, elogiar, meter o pau, colocar alguma materia, este-
        ja a vontade.

        Se voce tem um zine BOM *OU* um programa e queira disponibiliza-lo
        para os outros, mande-nos um e-mail. Voce podera' hospeda-lo em
        http://www.deathknights.com/SuaEscolha gratuitamente. Hey, nao vem
        pensando que isso aqui e' GeoCities, Xoom ou Tripod nao, antes iremos
        avaliar seu pedido.

        AVISO NOVAMENTE:

        The Death Knights nao visa nenhum fim lucrativo. Qualquer uso
        das informacoes contidas aqui nao e de nossa responsabilidade. Se voce
        fizer algo descrito e se der mal, problema seu. Nos ensinamos, mas nao
        pedimos para usarem o conhecimento adquirido com este zine.


        Ate o proximo numero!


 ______________________________Death_Knights_________________________________
 ----------------------------------------------------------------------------

                            Criticas? Sugestoes?


                           death@deathknights.com
