SlideShare ist ein Scribd-Unternehmen logo
1 von 98
Downloaden Sie, um offline zu lesen
Disciplina
                   Segurança em Sistema
                       Operacional Livre

                 Prof: Hélio Marques Sobrinho
                         hmarx@linuxtech.com.br




(C) 2011 HMarx                                    1 / 98
Programa

s
    § Sistema de computação e segurança
     Introdução
    § O ambiente operacional GNU/Linux
s
    § Planejamento, Instalação e Configuração
    Instalação do GNU/Linux
    § O shell e seus comandos
s
    § Usuários e grupos
    Administração do GNU/Linux
    § Sistemas de arquivos
    § Serviços
s
    § Firewall, VPN, SSL, ..
    Segurança
    § Logs.
s Conclusões
(C) 2011 HMarx                                  2 / 98
Referências bibliográficas
   §      Olaf Kirch, "Linux Network Administrator´s Guide", SSC, USA, 1994.

   §      Simon Garfinkel & Gene Spafford, "Practical Unix & Internet Secutiry",
          O´Reilly, USA, 1996.

   §      Anonymous, "Maximum Linux Security", SAMS, USA, 2000.

   §      "openSuSE Security Guide", Novell

   §      "openSuSE Linux Administration and User Guide", Novell


   § ¶ www.cert.org (Computer Emergency Report Team)
     Alguns sites:
     ¶ www.kernel.org      ¶ www.gnu.org
         ¶                                      ¶
         ¶                                      ¶
             www.nsa.org                             www.linuxsecurity.com

         ¶
             www.sans.org                            www.rootprompt.org

   §
             pgp.mit.edu
          e muito mais.

(C) 2011 HMarx                                                                     3 / 98
Agenda
s       Conteúdo
            ð
            ð
                     Introdução e conceitos

            ð
                     Utilização e Comandos básicos

            ð
                     Instalação e configuração do Linux.

            ð
                     Administração do Linux.

            ð
                     Serviços de rede.

            ð
                     Firewall, VPN, SSL.

            ð
                     Logs e Avaliação
                     Feedbacks e conclusões.




    (C) 2011 HMarx                                         4 / 98
Introdução

s Sistema de Computação
    § ð
     Hardware, Software e Peopleware
      ð
                  Processadores, memórias, dispositivos de E/S, ...

           ð
                  Sistema operacional, utilitários e aplicativos
                  Engenheiros, projetistas, técnicos, analistas,
                  programadores, operadores e usuários




 (C) 2011 HMarx                                                       5 / 98
Segurança
s Conceitos - ISO 27001 e 27002
    § ð
    Critérios de segurança
      ð
                  Disponibilidade

          ð
                  Integridade

          ð
                  Confiabilidade

          2
                  Privacidade
                  MTTF, MTBF, MTTR
s Componentes do sistema de computação

      Exercício #1

         Para cada um dos 3 componente do sistema de computação escolher um
      elemento e exemplificar (se aplicável) causa e efeito para cada critério de
      segurança acima.




 (C) 2011 HMarx                                                                     6 / 98
Critérios de segurança
s       DoD - U.S. Department of Defense
         NSA           - National Securiy Agency
         NCSC         - National Computer Security Center
         TCSEC        - Trusted Computer System Evaluation Criteria
         CC           - Common Criteria


s Classes
             D       Segurança mínima
             C       Proteção facultativa
             B       Proteção obrigatória
             A       Proteção verificada




    (C) 2011 HMarx                                                    7 / 98
Nova classificação

s    CCITSE
          ð
          Common Criteria for Information Tecnology Security Evaluation

          ð
                 CC - Common Criteria
                 EAL - Evaluation Assurance Level
                 EAL 1 : Testado funcionalmente
                 EAL 2 : Testado estruturalmente
                 EAL 3 : Metodicamente testado e verificado
                 EAL 4 : Metodicamente projetado, testado e revisado
                 EAL 5 : Projetado semi-formalmente e testado
                 EAL 6 : Projeto semi-formalmente verificado e testado
                 EAL 7 : Projeto formalmente verificado e testado
      Red Hat Enterprise 5.3                    EAL 4,    dez/2009
      SuSE Linux Enterprise 10 SP1              EAL 4,    out/2007
      VMWare ESX Server 2.5.0                   EAL 2,    set/2005
      Microsoft Windows 2003 Server             EAL 4,    out/2006


(C) 2011 HMarx                                                            8 / 98
Histórico do GNU/Linux
s Bell Labs, USA, 1960
       §
       § ð Ken Thompson
    Multics - GE 645
    Unics => PDP-7
         ð Dennis Ritchie,
         ð Brian Kernigham                 GE-645


       § AT&T, SysV, Unix®
                                           Multics
                                                     Ken Thompson
                                                     Dennis Ritchie
                                                     PDP-11
s
       § ð FSF- -GNUSoftwareUnix
       MIT, USA, 1983
         GNU           is Not
              ð
                  Free        Foundation
                     Richard Stallman
s Helsinki, Finlândia,1991
       §
    Freax => Linux
                     Ä                               GNU / Linux

              ð
                         Linux kernel                dynamic duo
                     Linus Torvalds

    (C) 2011 HMarx                                              9 / 98
Software Livre
s FSF - Free Software Foundation
    §
    §
    GPL - General Public License

    §
    LGPL - Lesser General Public License

    §
    AGPL - Affero General Public License
    FDL - Free Documentation License




                  Tim (O’Reilly) e Richard Stallman (FSF)

 (C) 2011 HMarx                                             10 / 98
Distribuição
s Meio de distribuição
             ð
             ð
                     Kernel linux

             ð
                     Utilitários e aplicativos GNU e outros

             ð
                     Instalação, Administração e configuração
                     Pacotes RPM, TAR, DEB, ...
s Algumas distribuições




       § e muito mais !
s
       § SLES, RHEL e Oracle
       Enterprise Linux



    (C) 2011 HMarx                                              11 / 98
Instalação do GNU/Linux

s
    § ð Estaçãoda instalação servidor ? Grid/Cluster ?
     Planejamento
      Objetivo
      ð Quais serviços ??Web ? Mail ? Banco de dados ?
                 de trabalho ou


    § ð Volumes ? Tamanhos ?disco(s)
         Firewall ? VPN
      Particionamento do(s)
            Ä swap, /, /home, /boot, /var, ...
          ð Ä swap,de arquivosreiserfs, xfs, ...
            Sistema

    § ð Desenvolvimento de software? Entretenimento ?
                    ext2, ext3,
      Pacotes de aplicativos
         Editoração eletrônica ? Educacional ?
                 Geoprocessamento ? Aplicativos especiais ?



(C) 2011 HMarx                                                12 / 98
Instalação do GNU/Linux
s
       § ð ethernet ? token ring ? wireless ?
         Ambiente de rede
         Interfaces
            Ä
                     Ä
                         10Mbps ? 100Mbps ?

                     Ä
                         1Gbps ? 10Gbps ? ...

       § ð TCP/IP ? SMB ? IPX ?
                         Coaxial ? UTP ? STP ? Fibra ?
         Protocolos
         ð NCP ? DHCP ?
               Ä Nomes, endereços
               Ä IPs, máscaras, rotas
             ð Ä usuário, senha,autenticação
               Parâmetros para

       §
                                 padrão
             Dominios e endereços
               Ä DNS ? SMB/NMB ? AD?
               Ä IPv4 ? IPv6 ?
               Ä NIS ? LDAP ?
    (C) 2011 HMarx                                       13 / 98
Arquitetura do GNU/Linux




    F               ..

          Nenhuma aplicação acessa o hardware diretamente !

(C) 2011 HMarx                                                14 / 98
Iniciando o GNU/Linux

s O processo de boot




(C) 2011 HMarx                     15 / 98
Do init aos processos
s Árvore de processos




(C) 2011 HMarx                           16 / 98
Sessões
s Abertura de sessão / login
       §
       § ð console, terminal (real ou emulado)
    local ou remota (telnet, ssh, ...)
    texto ou gráfica
         ð XWindow
       § ð user id e group id
         login e senha
             ð Ä login : gid default a vários grupos
               um usuário pode pertencer

             ð Ä root : root
               Super usuário

                     F
         ð um usuário pode pertencer a vários grupos
                         uid 0, gid 0

       § ð usuário, grupoacesso a arquivos e diretórios : rwx
         Permissões de
                          e outros: Read, Write, eXecute
s      Fechar sessão / logout
         ð exit ou Ctrl-D
    (C) 2011 HMarx                                              17 / 98
Autenticação
s Arquivo
         ð /etc/passwd e /etc/shadow
s      Bases
         ð NIS
         ð LDAP
s      PAM - Pluggable Autentication Modules
         ð /etc/pam.conf ou /etc/pam.d/*
    #%PAM-1.0
    auth      requisite      pam_nologin.so
    auth      [user_unknown=ignore success=ok ignore=ignore auth_err=die default=bad]
    auth      include        common-auth
    account include          common-account
    password include         common-password
    session required         pam_loginuid.so
    session include          common-session
    session required         pam_lastlog.so nowtmp
    session optional         pam_mail.so standard
    session optional         pam_ck_connector.so



s Radius, Kerberos, Diameter, fingerprint, ...
    (C) 2011 HMarx                                                              18 / 98
Sistema de arquivos
s Estrutura hierárquica distribuída
            Ä diretórios, arquivos, dispositivos
            Ä root file system: /
   §      Volumes locais e remotos
            Ä Sistemas de arquivos diferentes
            Ä Sistemas operacionais diferentes
               F ext2, ext3, reiser, xfs, swap, fat, vfat, nfs, smb, ncp, ...
            Ä Transparente para as aplicações
               F Virtual File System - vfs




 (C) 2011 HMarx                                                                 19 / 98
Linux VFS

s Camada de abstração do sistema de arquivos




(C) 2011 HMarx                                 20 / 98
Dispositivos
s Volumes
  § ð locais
    dispositivos de armazenamento
      Ä
         ð Ä volumes exportados (NFS, Samba, NCP, ...)
                  discos, arquivos, memória, CD, DVD, pen drive, ...
           remotos


  § ð Sistemas de arquivos locais
    Partições
       Ä
           Ä
                  swap                              swap

           Ä
                  ext2, ext3, reiser, ...

         ð Ä LILO, de boot
                  LVM, RAID, DRBD, ...               /
           indicador

           Ä Windows, MacOS. ,,,
                     Grub,                          /home

           Ä outros                                 /usr


 (C) 2011 HMarx                                                        21 / 98
Montagem
s           ð /etc/fstab
            Montagem durante o boot (init)
            ð / (raiz)
            ð Ä locais ou remotosarquivos
              outros sistemas de

                     F   (diskless workstations)            Network File System


s Entradas no arquivo /etc/fstab
     volume mount_point             filesystem options       dump       fsck
     /dev/sda3      /                 ext3    acl,user_xattr   1         1
     server:/public /pub              nfs     acl,noauto       0         0

s Comando mount
      mount [ -o opções ] volume mount_point
      mount volume
      mount mount_point         }
                              Entradas definidas no /etc/fstab


    (C) 2011 HMarx                                                            22 / 98
Visão para as aplicações




                                   w
                                   Possibilidades

                                   w Ä
                                      Local
                                      Remoto

                                   w
                                         NFS, SMB, ...
                                      DRBD




(C) 2011 HMarx                                   23 / 98
Atributos dos arquivos

s Diretórios
      ð nomes
    § ð atributos, permissões
      Inodos
      ð blocos de dados
s drwxrwxrwx
        user      group others

                                                       {
                                                    r : read
                                                    w: write
                                         permissões x : execute
                                                       s,S : SUID, SGID



       {
        - : normal file
        d : directory                                  t ,T : Stick
        c : character device
   tipo b : block device
        p : pipe
        l : link                    $ ls -li dostextfile
        s : socket                  63677 -rw-rw---- 1 hmarx linuxtech 31 2011-03-19 19:13 dostextfile


                                 inode                    user group
                                         permissions                 size D&T            filename
                                                       links



 (C) 2011 HMarx                                                                                          24 / 98
Permissões
s Representação numérica
    § ð                                    ð
                                       000 ð
    Bits : suid sgid stick rwx
      ð
                  0
                  1
                  F
                         0
                         1
                                0
                                1      111 ð
                      altera x p/ s, S, t ou T
                                                 }   0000
                                                     7777



s Alteração de permissões
    §
    §
    chmod opções octal objeto ...
                                          *
    chmod opções {{ugoa}{+-=}{ugorwxst}, } objeto ...

s Alteração de dono
    §
    §
    chown opções [ user ] [ : group ] objeto ...
    chgrp opções group objeto ...


 (C) 2011 HMarx                                             25 / 98
Exercícios

s Permissões de acesso



  Exercício #2
       Seja uma empresa com gerentes de diversas áreas. Um funcionário pode estar
  subordinado a mais de uma área. Cada gerente disponibiliza documentos em um
  diretório que só pode ser lidos por seus subordinados.

      Como as permissões dos diretórios e arquivos devem ser estabelecidas para não
  serem violadas a confiabilidade, a privacidade e integridade destes documentos ?




(C) 2011 HMarx                                                                        26 / 98
Hard links e soft links
s Estrutura dos diretórios
                  Ä
                  Ä
                      Dados do arquivo : inodo

     §
                      Diretório: nome do arquivo
            Hard links
         $ ls -li arquivo.txt
         63675 -rw-rw---- 1 hmarx linuxtech 2910 2011-04-02 13:54 arquivo.txt
         $ ln arquivo.txt arquivo.copia
         $ ls -li arquivo.txt arquivo.copia
         63675 -rw-rw---- 2 hmarx linuxtech 2910 2011-04-02 13:54 arquivo.copia
           r
         63675 -rw-rw---- 2 hmarx linuxtech 2910 2011-04-02 13:54 arquivo.txt


     §
         $

            Soft links
         $ ln -s arquivo.txt arquivo.atalho
         $ ls -li arquivo.txt arquivo.atalho
         64134 lrwxrwxrwx 1 hmarx linuxtech 11 2011-04-02 14:04 arquivo.atalho -> arquivo.txt
          r
         63675 -rw-rw---- 2 hmarx linuxtech 2910 2011-04-02 13:54 arquivo.txt
         $



 (C) 2011 HMarx                                                                                 27 / 98
ACLs
s ACLs - Access Control Lists
                  Ä
           ð
                      Controle granular das permissões rwx
                  Sistema de arquivos montado com opção acl
                      F
                  Ä
                         Exemplo: /dev/sdc2 on /work type reiserfs (rw,acl)
                      mount -oremount,acl sistema-de-arquivos
     $ ls -l arquivo
     -rwxrw---- 1 hmarx linuxtech 61 2011-03-28 16:17 arquivo
     $ setfacl -m u:diana:rw,g:www:r arquivo                      Note a diferença !
     $ ls -l arquivo
     -rwxrw----+ 1 hmarx linuxtech 61 2011-03-28 16:17 arquivo
     $ getfacl arquivo
     # file: arquivo
     # owner: hmarx
     # group: linuxtech
     user::rw-
     user:diana:rw-
     group::rw-
     group:www:r--
     mask::rw-

       r
     other::---
     $


 (C) 2011 HMarx                                                                 28 / 98
Exercício

   Exercício #3

      Compare o esquema de proteção padrão utilizando apenas os bits rwx com o uso
    das ACLs. Que vantagens adicionais você consegue perceber ?




(C) 2011 HMarx                                                                       29 / 98
SELinux

s Security Enhanced Linux
    § ð
    DoD - NSA - NCSC
                  TCSEC, TCB, CC
      ð           GPL em 2002, kernel Linux em 2003
           ð      Mandatory Access Control
           ð      Confinamento de usuários e serviços a privilegios mínimos



s Habilitando o SELinux
    § ð security=selinux selinux=1
    parâmetros para o kernel
    § ð diretório /etc/selinux/*
      configurações
    § ð diretóriostatus /selinux/*
      controle e
                  virtual


 (C) 2011 HMarx                                                               30 / 98
A interface gráfica XWindow




                                             s Componentes
                                               §
                                               §
                                                 desktop manager
                                                 window

                                               §
                                                 manager
                                                 aplications


F      Dependendo da velocidade do enlace,
       a comunicação pode ser remota.


(C) 2011 HMarx                                              31 / 98
Componentes do XWindow

s X Server
              ð      xorg
s Desktop manager
       § ð xdm, gdm, kdm, ...
    controle de sessões
                                                                        X.org



s
       § ð fvwm,egnome, kde, enlightenment, afterstep,
       Window manager
         controle decoração de janelas
                     windowmaker, cdesim, ...
s X applications
       § ð
    aplicações gráficas
                     xterm, xclock, kmail, firefox, gimp, openoffice,
                     digikam, wxcam, amarok, ...

locate ent


    (C) 2011 HMarx                                                              32 / 98
O kdm e o desktop KDE




    openSuSE
    kdm e KDE




(C) 2011 HMarx                    33 / 98
Uma interface típica
   botões de controle   barra do título   botões de controle
     menu e sticky                        minimiza, maximiza,
                                          ordem, fechar



                                                 menu texto
                                                 menu com icones
área do
aplicativo:
textos,
diálogos,                                         barras de rolagem
botões,
canvas, ...




                                                     barra de status

                          KDE - kwrite

 (C) 2011 HMarx                                                  34 / 98
Algumas aplicações gráficas




                 Aplicações X e KDE




(C) 2011 HMarx                        35 / 98
Padrão de interface gráfica
s CUA - Common User Access
   §
   §
          Publicado pela IBM, 1987
          Utilizado por Unix, Windows e Linux
   §      Botões Ok, Cancel, Help, ...
   §      Teclas de função (F1, F4, ...)
   §      Teclas TAB, shift TAB, ESC, Enter, ...

  Exercício #4
      Quais são os elementos básicos que compõems uma interface gráfica de um aplicativo
  qualquer ?
     Porque a utilização de uma interface gráfica para administrar um servidor requer
  maiores cuidados ?




(C) 2011 HMarx                                                                       36 / 98
O Bourne Again Shell - Bash
s Interpretador de comandos
s Linguagem de programação completa
     §
     scripts : comandos interpretados
s Sintaxe
     §
     No prompt:
                 Ä   comando [ opções ] { [ argumentos ] }*




(C) 2011 HMarx                                                37 / 98
Ajuda on-line
s Aplicativos
    §
    §
    comando --help

    §
    comando -h

    §
    man opções [ sessão ] comando
    info opções comando

s Comandos do shell
    §
    help comando

s A internet
    §
    §
    §
     http://www.linuxquestions.org/
     http://www.linuxmanpages.com/
     ...
                                      !
                                      it


 (C) 2011 HMarx                            38 / 98
Elementos da linguagem bash

s Variáveis
      § ð variável=valor
    Atribuição                  NOME="Helio Marques"
                                echo $NOME
      § ð $variável
        Valor da variável

s Variáveis padrão
      § ð PATH, PS1, PS2, PS3, HOME, USER, SHELL, LANG,
    Alteráveis pelo usuário

      § ð 0,alteráveis!,pelo usuário
          ...
        Não
              1, ... 9, #, ?,@, $




(C) 2011 HMarx                                         39 / 98
Metacaracteres
s Sequência de caracteres especiais
    §
    São tratados pelo shell e substituidos antes de

    § ð Exemplos de conjunto
    serem passados para o comando
    * ? [ conjunto ] [ !conjunto ]  ~
        Ä         a-z   0123456789   0-9   0-9ABCDEF    0-9A-F
       $ echo ** ERRO **
       ** ERRO **
       $ ls
       chap1 chap2 chap3 programA programB1 programB2
       $ ls *[1-3]
       chap1 chap2 chap3 programB1 programB2
       $ ls *[!1-3]
       programA
       $ ls *[AB]?

         r
       programB1 programB2
       $




 (C) 2011 HMarx                                                  40 / 98
Usando Metacaracteres

s Comando echo
    §
    §
    echo [ -n ]  texto ...
    Imprime na saída padrão os argumentos

   Exercício #5

      Sejam as variáveis PRODUTO, que contém o nome do ítem, e VALOR, que
   contém o preço do ítem. Exemplo: PRODUTO="Caneta" e VALOR="14,95".
      Que comando irá exibir o texto abaixo ?
                    O item Caneta custa R$14,95




 (C) 2011 HMarx                                                             41 / 98
Ambiente
s ~ é o diretório pessoal
    §~jose é /home/jose
s conteúdo
    § ð .* "nomes ocultos" no ls
     arquivos e diretórios pessoais
    § ð shell - logs e de aplicativos
      configurações
                       scripts
                  Ä   .bash_history, .bashrc, .bash_login, .bash_logout, .profile,

          ð Ä .procmailrc,e-mail ...
                      .alias, ...
            tratamento de

          ð Ä ícones,aplicações gráficasde janelas, ...
                           .forward,
            desktop e
                      menus, decorações




 (C) 2011 HMarx                                                                      42 / 98
Comandos do Bash

s Comandos internos
           ð      alias, cd, fg, bg, echo, eval, exit, export, history,
                  if/then/else, while, until, for, case, pwd, set, shift, trap,
                  test, type, ulimit, umask, uname, ...
s Aplicativos externos
    § ð
    scripts e executáveis
                  ls, ps, cp, rm, rmdir, ln, mv, df, du, diff, at, bc, bzip, tar,
                  ping, host, w, who, arp, ...
s Funções
           ð      Ex: Definindo o novo comando files para exibir o
                  diretório em 3 colunas
                      function files()
                      {
                          ls   $* | pr -T --columns=3
                      }




 (C) 2011 HMarx                                                                     43 / 98
Operadores do bash

s Separador de comandos
s ;  $ date; pwd; uname -r
              Sat Mar 19 19:30:19 BRT 2011
              /home/hmarx
                  r
              2.6.34.7-0.7-default
              $


s Redirecionamento de E/S
    §
                                                              0 : entrada padrão

    > >> < >& <<texto i>&n                                {   1 : saída padrão
                                                              2 : saída de erros

     $ cat << _END_ > Arquivo            $ cat Arquivo
     Uma linha
     Outra linha
     Mais uma linha              ð       Uma linha
                                         Outra linha

                                             r
                                         Mais uma linha
        r
     _END_                               $
     $




 (C) 2011 HMarx                                                                    44 / 98
Operadores do bash
s
       §
         Pipe
              comando1 | comando2 | ...
                $ echo "Maria da Silva" | rev

                     r
                avliS ad airaM
                $



s Agrupamento de comandos (subshell)
       §
    ( comando1; comando2; ... )
                $ pwd; (cd /usr/local/bin;pwd); pwd
                /home/hmarx
                /usr/local/bin

                     r
                /home/hmarx
                $




    (C) 2011 HMarx                                    45 / 98
Operadores do bash
s
       §
         Substituição de comando
       §
              ‘comando‘
              $(comando)
                $ echo "Estamos no ano $(date +%Y)."

                     r
                Estamos no ano de 2011.
                $



s Expressões aritméticas
       §
    (( expressão ))
                 $ (( I = 500 / 3 ))
                 $ echo "I = $I"

                     r
                 I = 166
                 $




    (C) 2011 HMarx                                     46 / 98
Operadores do bash

s
       § ð operadores ]]
         Expressões lógicas
         [[ expressão
            Ä
                     Ä
                     Ä
                         -eq -lt -gt -le -ge -ne
                         -e file -r file -w file
                         ...
            $ [[ 500 -gt 100 ]]; echo $0
            0
                                                          0 é verdadeiro
                                                          1 é falso
                                                                           !
            $ [[ 500 -gt 1000 ]]; echo $0

              r
            1
            $




                         F
                                                     !
                             Ver manual do comando test




    (C) 2011 HMarx                                                         47 / 98
Exemplos de comandos
s       Comandos iterativos e condicionais
      i=0

                                   ð
                                               0
      while [[ $i -gt 5 ]]                     1
      do                                       2
        echo $i                                3
        (( ++i ))                              4
      done

      for i in uva pera caqui
      do
         echo A fruta é $i
      done
                                   ð          A fruta é uva
                                              A fruta é pera
                                              A fruta é caqui




                                                   ð            ?
                             if expr 5 > 3
     Exercício #6            then
                                echo ERRADO
            Porque ?         else
                                echo CERTO
                             fi




    (C) 2011 HMarx                                                  48 / 98
Mais alguns comandos
$ ls
bash             dostextfile foto.jpg image.gif   image.png unixtextfile
$ file *
bash:         ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
               dynamically linked (uses shared libs), for GNU/Linux 2.6.4, stripped
dostextfile: ASCII text, width CRLF line terminators
foto.jpg:     PE32 executable for MS Windows (GUI) Intel 80386 32-bit
image.gif: GIF image data, version 89a, 100 x 100
image.png: PNG image data, 250 x 250, 8-bit/color RGB, non-interlaced
unixtextfile: ASCII text
$ ls | wc

  r
    5     5    50
$



         A identificação do tipo do arquivo é pelo conteúdo e
         não pela extensão do nome do arquivo !
                                                                           !
(C) 2011 HMarx                                                                  49 / 98
GNU/Linux em Redes

s Topologias
     §
    barramentos, estrela, wireless, ...
s Arquitetura
     §
    internas, externas, locais, remotas, internet, VPNs,

     §
    ...
    A Internet
s Tecnologias
     §
    coaxial, ethernet, token-ring, wifi, wimax, ...
s Protocolos
     §
     § ð
    TCP/IP, SMB e NMB, NCP, AX25, ...
    Parâmetros
       ð
                  nomes, endereços
                  parâmetros de desempenho e segurança
s
 (C) 2011 HMarx                                            50 / 98
IPv4
s Número de 32 bits
   §                                                              R            H
    formato x.y.z.w
                  Ä   x, y, z, w ∈ [ 0 .. 255 ]
                                                              x   y     z      w
                      F
   §
                           R + H = 32
          Classe x            netid hostid networks                   IPs
         ð        A   1-126       x       y.z.w       126         16.777.216
         ð        B   128-191    x.y      x.w      16.384         65536
         ð        C   192-223   x.y.z       w      2.097.151      256
         ð        D   224-239   multicast
         ð        E   240-247   reservado


   §      Endereços especiais
                  Ä   loopback:  127.0.0.0/8 (interface lo)
                  Ä   network :  hostid[*] = 0
                  Ä
                  Ä
                      broadcast: hostid[*] = 1
                      netmask : netid[*]=1, hostid[*] = 0



 (C) 2011 HMarx                                                                    51 / 98
IPv4
s Blocks privados

                                     }
                                              Network Address Translation
  §      A : 10.0.0.0/8
  §      B : 172.16.0.0/12
  §      C : 192.168.0.0/16
s Endereços especiais
  §      loopback:    127.0.0.0/8
                   Finterface lo
                                                                 gateway/firewall


  §      network : hostid[*] = 0
  §      broadcast: hostid[*] = 1
  §      netmask : netid[*]=1, hostid[*] = 0

                   Exemplo

                    Classe C: 192.168.200.0/24
                    endereço de rede:       192.168.200.0
                    endereço de broadcast: 192.168.200.255
                    Total de 256 IPs
                          ⇒ 254 disponíveis para os nodos


  (C) 2011 HMarx                                                                    52 / 98
IPv4 - subclasses
                 R                        H
                                                             R + H = 32
        x             y        z              w              R’ + H’ = 32
                                                             R’ = R + N
                          R’                   H’            H’ = H - N
                                      N
s
      §
        Rede R = x.y.z.w/R
             R é o número de bits de netid
s Subclasses R’                               Exemplo

      § ð    2N subclasses R’
                     x’.y’.z’.w’/R’
                                               Subclasse C’: 192.168.200.0/28
                                               endereço de rede:      192.168.200.0
                                               endereço de broadcast: 192.168.200.15
                                               máscara :              255.255.255.240 ou /28

             ð       2H-N = 2H’ IPs            Total de 16 IPs
                                                     ⇒ 14 disponíveis para os nodos



    (C) 2011 HMarx                                                                       53 / 98
Praticando ...

  Exercício #7

      Identifique para os endereços abaixo: a classe (A, B ou C), o número
    de IPs disponíveis, os endereços de rede e broadcast, e a máscara no
    formato /N ou x.y.x.w, conforme a fornecida.

      a) 75.1.12.0 / 22

      b) 200.200.200.128 / 26

      c) 11.192.0.0, máscara 255.224.0.0




(C) 2011 HMarx                                                          54 / 98
Roteamento
s Tabela de roteamento
    § ð destino gateway máscara métrica interface
    route -n ou netstat -rn


    § ð Para com entradadestino DST
      Pacote
             cada
                  IP de
            Ä DST & máscara == destino ?
            Ä Envia p/ o gateway a interface
          ð Ä destino 0.0.0.0, máscara 0.0.0.0
            Rota default

               F X & 0 é sempre 0 !



 (C) 2011 HMarx                                     55 / 98
Multiplas redes

s Redes locais e remotas




(C) 2011 HMarx                     56 / 98
Práticando ...

s Cálculo de sub-redes

  Exercício #8
     Considere um provedor detentor do bloco 190.180.128.0/17.
  Ele quer fornecer subclasses com 16 IPs fixos para seus clientes.
         a) Quantos clientes ele pode atender com o bloco ?
         b) Exemplifique com algumas subclasses fornecidas.
      c) Cite algumas consequências de configurações inadequadas
  ou erradas de parâmetros de redes em termos de segurança.




 (C) 2011 HMarx                                                       57 / 98
IPv6
  s Números de 128 bits
        §
        §
      representados em hexadecimal
      bits de mais alta ordem : prefixo
  Tipo de endereço                          Prefixo       Fração do espaço
                                                          de endereçamento
   reservado                                 0000 0000         1/256
   não assinalado                            0000 0001         1/256
  reservado para NSAP                        0000 001         1/128
  reservado para                             0000 010         1/64
  não assinalado                             0000 011         1/32
  não assinalado                             0000 1           1/16
  não assinalado                             0001             1/8
  endereços de unicast global agregáveis    001               1/8
  não assinalado                            010               1/8
  não assinalado                            011               1/8
  não assinalado                            100               1/8
  não assinalado                            101               1/8
  não assinalado                           110                1/8
  não assinalado                           1110               1/16
  não assinalado                           1111 0             1/32
  não assinalado                           1111 10            1/64
  não assinalado                           1111 110           1/128
  não assinalado                           1111 1110          1/512
  endereços de unicast de link local       1111 1110 10       1/1024
  endereços de unicast de site local       1111 1110 11       110248
  endereços de multicast                   1111 1111          1/256

(C) 2011 HMarx                                                               58 / 98
IPv6 - exemplos
eth0       Link encap:Ethernet HWaddr 00:00:E8:4D:4F:A7
           inet addr:201.17.146.157 Bcast:201.17.146.255 Mask:255.255.255.0
           inet6 addr: fe80::200:e8ff:fe4d:4fa7/64 Scope:Link
           UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
           RX packets:50165271 errors:0 dropped:0 overruns:0 frame:0
           TX packets:12768430 errors:18 dropped:0 overruns:0 carrier:36
           collisions:37218 txqueuelen:1000
           RX bytes:853256390 (813.7 Mb) TX bytes:3281976782 (3129.9 Mb)
           Interrupt:129 Base address:0xb400

lo        Link encap:Local Loopback
          inet addr:127.0.0.1 Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING MTU:16436 Metric:1
          RX packets:1208299 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1208299 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:219146691 (208.9 Mb) TX bytes:219146691 (208.9 Mb)
vmnet8     Link encap:Ethernet HWaddr 00:50:56:C0:00:08
           inet addr:172.16.185.1 Bcast:172.16.185.255 Mask:255.255.255.0
           inet6 addr: fe80::250:56ff:fec0:8/64 Scope:Link
           UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
           TX packets:71600 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000
           RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)


(C) 2011 HMarx                                                                59 / 98
Serviços
s Conexão / Comunicação
         ð Ä portosUDP, sockets
            TCP, IP,

         ð Arquivos
                      e protocolos

s      Scripts em /etc/init.d/
         ð apache2, named, mysql, smbd, nmbd, vsftpd, sendmail,
         ð RunLevel em /etc/inittab
            ntp, dhcpd, nfsd, firewall, ...

                         F
                   default

                     Ä
                                                              id:5:initdefault

                     Ä
                         0:halt

                     Ä
                         1:mono

                     Ä
                         2:multi local

                     Ä
                         3:multi+rede

                     Ä
                         5:mult+rede+X11
                         6:reboot
                         F   chkconfig serviço { on | off }

    (C) 2011 HMarx                                                               60 / 98
Servidor de nomes
s DNS - Domain Name System
          ð Ä resoluçãoIPs IPs de domínios e máquinas
            domínios e

            Ä resolução de nomes de IPs (DNS reverso)
                        de

          ð Ä software BIND - Berkeley Internet Name Domain
            named




(C) 2011 HMarx                                                61 / 98
Resolvendo nomes e IPs

s Aplicativos
    §
    §
    host

    §
    dig
    nslookup
    # host 201.17.146.157
    157.146.17.201.in-addr.arpa domain name pointer atlas.linuxtech.com.br.
    # host atlas.linuxtech.com.br
    atlas.linuxtech.com.br has address 201.17.146.157
    atlas.linuxtech.com.br mail is handled by 10 atlas.linuxtech.com.br.
    # host -t mx linuxtech.com.br
    linuxtech.com.br mail is handled by 10 atlas.linuxtech.com.br.

        r
    linuxtech.com.br mail is handled by 20 master.softaplic.com.br.
    #




(C) 2011 HMarx                                                                62 / 98
E-mail

s Componentes
    §
    MUA - Mail User Agent
              Ä kmail, mutt, thunderbird, webmails, ...
    §      MTA - Mail Transport Agent
              Ä sendmail, postfix, exim, qmail, ...
    §      MDA - Mail Delivery Agent
              Ä procmail
    §      Filtros
              Ä antivirus, antispam
              Ä filtros (ip/domínio de origem, assunto, remetente,
                    destinatário, ... )
s Protocolos
           ð                              ð           ð MTA
           ð                               ð
                  [E]SMTP - MUA      MTA e MTA

           ð                               ð
                  POP - caixa postal MUA
                  IMAP - caixa postal MUA
                    F   Podem utilizar TLS e SSL !

 (C) 2011 HMarx                                                      63 / 98
Protocolo SMTP

s Conversa SMTP simplificada




(C) 2011 HMarx                    64 / 98
Segurança do e-mail
s Autenticidade
       § ð
    Endereços de origem e destino
                     To e From
                        F
              ð Ä Subject de origem
                            Facilmente forjáveis !
                IP/domínio

s Integridade
                        F   Confiabilidade do MUA, MTAs e MDAs
s Confiabilidade
              ð
              ð
                     Conteúdo e Anexos

       § SPAM / SCAM
                     Cavalos de Troia, Worms e Viruses

s
       § Criptografia
       Privacidade
            Ä           PGP

    (C) 2011 HMarx                                               65 / 98
Segurança do e-mail

 Exercício #9
     Porque a resolução dos nomes no DNS é importante para a
   segurança do sistema de e-mails ?
     O sistema GNU/Linux é praticamente imune a virus. Porque
  é necessário o uso de antivirus nele ?




(C) 2011 HMarx                                                  66 / 98
Samba
s Servidor
    §
    §
    Autenticação de usuários

    §
    Compartilhamentos
    Server, PDC, BDC

s Cliente
    §
    §
     Autenticação em servidores Windows
     Utilização de recursos compartilhados

s Configuração
    § ð parâmetros
    /etc/samba/smb.conf
        Ä
                  Ä
                      domain/workgroup, protocolo, compatilhamentos
                      mapeamento de usuários

 (C) 2011 HMarx                                                       67 / 98
Ataques

s Formas de ataque
     §
     §
    Man in the middle

     §
    Denial of service
    IP spoofing

s Ferramentas
     §
     §
    Análise de logs

     §
    TCP wrappers

     § ð
    Portscanners e sniffers
    Firewall
       ð
                  Segurança de rede
                  Proteção contra acessos indevidos
                  Ä
           ð
                      filtro de pacotes
                  Log de atividades e tráfego entre redes


 (C) 2011 HMarx                                             68 / 98
Firewall - organização

s Pacotes
     §
     §
    endereços de origem e destino
    protocolos de sessão e aplicação

s Encapsulamento de dados
     §     ð SMTP, Telnet, FTP, HTTP, ...
    Aplicação
     §     ð TCP, UDP, ICMP, ...
           Transporte
     §     ð IPv4, IPv6
           Internet
     §     ð Ethernet, FDDI, ATM, Wireless, ...
           Meio de acesso à rede



 (C) 2011 HMarx                                   69 / 98
Modelo OSI da ISO
s
                   F
    Open Systems Interconnection Model
                modelo de referência




                       7
                       6
                       5
                       4
                       3
                       2
                       1



(C) 2011 HMarx                           70 / 98
Firewall - Filtros

s Regras
     §
     §
    Direção : Inbound, Outbound, Either

     §
    Endereco de origem

     §
    Endereço de destino

     §
    Porto de origem

     §
    Porto de destino

     §
    Protocolo (TCP, UDP, ICMP, ...)

     § ð
    Ação (Allow, Deny, Drop, Reject)
    Destinos especiais
                  SNAT, DNAT, REDIRECT, MASQUERADE, LOG,
                  MARK, REJECT, ...
                  Ä    NAT : Network Address Translation ou Masquerade




 (C) 2011 HMarx                                                          71 / 98
Software iptables

s Manipulação das tabelas de regras de filtro
s Organização
     §
     §
    Tables - Tabelas que são compostas por cadeias

     §
    Chains - Cadeias que são compostas por regras

     § ð filter - tabela default
    Rules - Regras que definem o destino do pacote
    Tabelas padrao (após kernel 2.4.18)
         Ä
           ð Ä PREROUTING, OUTPUT, POSTROUTING
                   chains: INPUT, FORWARD e OUTPUT
             nat

           ð Ä INPUT, PREROUTING, FORWARD, OUTPUT e
             mangle
                   POSTROUTING




 (C) 2011 HMarx                                       72 / 98
Fluxo de pacotes


            pkt           Firewall
                                        pkt
            interface                   interface
                          forward ?     externa
            interna      masquerade ?
                            drop ?
                  pkt      reject ?         pkt




(C) 2011 HMarx                                      73 / 98
iptables - utilização
s
s
        tabela : especifica a que tabela o comando se aplica
        cadeia : especifica a que cadeia da tabela o comando se aplica

     # iptables [ -t tabela ] -L [ cadeia ]
     Lista as regras (da cadeia)
     # iptables [ -t tabela ] -N cadeia [ opções ]
     Cria uma nova cadeia
     # iptables [ -t tabela ] -X cadeia [ opções ]
     Remove a cadeia
     # iptables [ -t tabela ] -F [ cadeia ]
     Apaga todas as regras (da cadeia)
     # iptables [ -t tabela ] -Z [ cadeia ]
     Zera os contadores de bytes e pacotes (da cadeia)

    (C) 2011 HMarx                                                       74 / 98
iptables - utilização
  # iptables [ -t tabela ] -P cadeia política [ opções ]
  Define a política padrão para cadeia
             ACCEPT, DROP, QUEUE ou RETURN

  # iptables [ -t tabela ] -E nomevelho nomenovo cadeia [ opções ]
  Troca o nome de uma cadeia
  # iptables [ -t tabela ] -{ A | D} cadeia especificação [ opções ]
  Adiciona ou remove uma regra da cadeia
  # iptables [ -t tabela ] -D cadeia número [ opções ]
  Remove uma regra da cadeia
  # iptables [ -t tabela ] -I cadeia [ número ] especificação [ opções ]
  Inclui uma regra na cadeia
  # iptables [ -t tabela ] -R cadeia número especificação [ opções ]
  Substitui uma regra nd cadeia

(C) 2011 HMarx                                                        75 / 98
iptables

s Algumas opções
          ð      -v
                 Ä modo verboso
          ð      -n
                 Ä saída na forma numérica
          ð      -x
                 Ä expande os números de bytes e pacotes
          ð      -h
                 Ä ajuda
          ð      --line-numbers
                 Ä inclui número da linha no início de cada regra
          ð      --module-probe=comando
                 Ä especifica o comando para a carga dos módulos


(C) 2011 HMarx                                                      76 / 98
iptables
s       Especificações

              -p [ ! ] protocolo
              Especifica o protocolo: tcp, udp, icmp ou all

              -s [ ! ] endereço [ / máscara ]
              Especifica o endereço de origem (source)

              --source-port [ ! ] porto [ : porto ]
              Especifica o porto ou faixa de portos de origem

              -d [ ! ] endereço [ / máscara ]
              Especifica o endereço de destino

              --destination-port [ ! ] porto [ : porto ]
              Especifica o porto ou faixa de portos de destino


    (C) 2011 HMarx                                               77 / 98
iptables
s       Especificações

              --source-port { [, porto ] }*
              Especifica até 15 portos de origem

              --destination-port porto { [ , porto ] }*
              Especifica até 15 portos de destino

              --port porto { [ , porto ] }*
              Especifica o porto, quando os porto de origem e destino
              forem iguais




    (C) 2011 HMarx                                                      78 / 98
iptables
s       Especificações

              --uid-owner userid
              Especifica o Id do usuário do processo que criou o pacote

              --gid-owner gid
              Especifica o GID do processo que criou o pacote

              --pid-owner pid
              Especifica o número do processo que criou o pacote

       §      --sid-owner sessionid
              Especifica o número da sessão (grupo de processos) que
              criou o pacote




    (C) 2011 HMarx                                                        79 / 98
iptables
s       Especificações

              -i [ ! ] interface
              Especifica a interface de entrada (de onde veio o pacote)

              -o [ ! ] interface
              Especifica a interface de saída (para onde irá o pacote)

              --mac-source [ ! ] endereço
              Especifica o porto ou faixa de portos de origem

              --icmp-type [ ! ] tipo
              Especifica o tipo do pacote ICMP




    (C) 2011 HMarx                                                        80 / 98
iptables
s     Especificações
         --tcp-flags [ ! ] máscara ativos
         Especifica a lista de flags TCP. A máscara contém os flags
         que devem estar inativos. Os flags são SYN, ACK, FIN,
         RST, URG, PSH, ALL ou NONE

            [ ! ] syn
            Especifica pacotes com o bit SYN ativo e os bits ACK e
            FIN inativos

            --limit taxa [ / sufixo ]
            Especifica a taxa média máxima de pacotes. O sufixo pode
            ser second, minute, hour ou day. O default é 3/hour.

            [ ! ] --limit-burst númer
            Especifica o número máximo inicial de pacotes. O default é
            5.

    (C) 2011 HMarx                                                       81 / 98
iptables
s      Especificações
       -j   alvo
          Especifica o que fazer com o pacote. Poder ser uma cadeia

      §
          ou um destino especial.

             ð
          Destinos especiais
              LOG, MARK, REJECT, TOS, MIRROR, SNAT,
              DNAT, MASQUERADE e REDIRECT

s      Opções do destino LOG
          --log-level nível      (veja syslog.conf)
          --log-prefix prefixo   (até 29 caracteres)
          --log-tcp-sequence
          --log-tcp-options
          --log-ip-options




    (C) 2011 HMarx                                                    82 / 98
iptables
s      Opções do destino MARK
       --set-mark marca

s      Opções do destino REJECT
       --reject-with tipo

             ð
           O tipo pode ser:

             ð
               icmp-net-unreachable           echo-reply

             ð
               icmp-host-unreachable          tcp-reset

             ð
               icmp-port-unreachable

             ð
               icmp-proto-unreachable

             ð
               icmp-net-prohibited
               icmp-host-prohibited

s      Opções do destino TOS
          --set-tos tos  (veja iptables -j TOS -h)



    (C) 2011 HMarx                                         83 / 98
iptables
s    Especificações

     --state state { [, state ] }*
s    Especifica o(s) estado(s) da conexão ao(s) qual(is) o pacote está
     associado
         Estados:
            INVALID              - conexão inválida
           ESTABLISHED - conexão já estabelecida
           NEW                   - nova conexão
           RELATED               - nova conexão associada a
                                   uma já existente (ex: FTP)




(C) 2011 HMarx                                                       84 / 98
iptables
s     Especificações

    --ttl ttl
          Especifica o TTL do pacote

    --ttl-set ttl
          Estabelece novo TTL do pacote

      --ttl-dec ttl
           Decrementa o TTL do pacote

      --ttl-inc ttl
           Incrementa o TTL do pacote

            TTL = Time to live
                     F   Somente é válido para a tabela mangle !


    (C) 2011 HMarx                                                 85 / 98
iptables
s     Especificações

s     Opções do destino SNAT
      --to-source endereço [- endereço ] [ :porto [- porto ]]

s     Opções do destino DNAT
      --to-destination endereço [-endereço ] [ :porto [ - porto ]]

s     Opções dos destinos MASQUERADE ou REDIRECT
      --to-ports porto [ - porto ]




    (C) 2011 HMarx                                                   86 / 98
Exemplos

s Tabelas sem regras

           # iptables -L -n
           Chain INPUT (policy ACCEPT)
           target prot opt source      destination
           Chain FORWARD (policy ACCEPT)
           target prot opt source   destination
           Chain OUTPUT (policy ACCEPT)
                 r
           target prot opt source    destination
           #




(C) 2011 HMarx                                       87 / 98
Cadeia com algumas regras

 # iptables -L PREROUTING -t nat -n
Chain PREROUTING (policy ACCEPT)
target prot opt source     destination
DNAT      tcp -- 0.0.0.0/0 201.17.146.157   tcp dpt:2222 to:192.168.200.41:22
DNAT      tcp -- 0.0.0.0/0 201.17.146.157   tcp dpt:21211 to:192.168.200.190:22
DNAT      tcp -- 0.0.0.0/0 201.17.146.157   tcp dpt:2227 to:192.168.200.7:22
DNAT      tcp -- 0.0.0.0/0 201.17.146.157   tcp dpt:59023 to:192.168.200.5:23
DNAT      tcp -- 0.0.0.0/  192.168.200.3    tcp dpt:59023 to:192.168.200.5:23
DNAT      tcp -- 0.0.0.0/0 201.17.146.157   tcp dpt:59021 to:192.168.200.5:21
DNAT      tcp -- 0.0.0.0/0 192.168.200.3    tcp dpt:59021 to:192.168.200.5:21
DNAT      udp -- 0.0.0.0/0 0.0.0.0/0        udp dpt:11113 to:192.168.200.190:11113
 r
DNAT      udp -- 0.0.0.0/0 0.0.0.0/0        udp dpt:11113 to:192.168.200.200:11113
#




(C) 2011 HMarx                                                               88 / 98
VPN
s Virtual Private Network
    §
    §
    autenticação e criptografia
    IPsec - IP security
                  Ä   /etc/ipsec.conf e /etc/ipsec.secrets

                                   Modelo de conexão VPN




                                         tunel seguro


    § ð SSL,formasSSH, PPTP, tunnel SSH, ...
      Outras
             PPP +


 (C) 2011 HMarx                                              89 / 98
Logs
s Registro de ocorrências
    §
    §
    evento e instante
    kernel, serviços e aplicativos

s Acompanhamento
    §
    §
    dmesg (kernel)
    /var/log/* e /var/log/serviço/*

s Monitoramento e análise
    §
    §
   tail

    §
   monit, mon, nagios, ...
   emails p/ o root


 (C) 2011 HMarx                       90 / 98
Logs do firewall
Mar 27 11:48:18 thor kernel: SFW2-INext-ACC-TCP IN=eth0 OUT=
   MAC=00:00:e8:4d:4f:a7:00:13:5f:05:67:05:08:00 SRC=87.176.79.74
   DST=201.17.146.157 LEN=48 TOS=0x00 PREC=0x00 TTL=112 ID=20424 DF
   PROTO=TCP SPT=1283 DPT=25 WINDOW=16384 RES=0x00 SYN URGP=0
   OPT (020404EC01010402)

Mar 27 11:58:22 thor kernel: SFW2-INext-DROP-DEFLT IN=eth0 OUT=
   MAC=00:00:e8:4d:4f:a7:00:13:5f:05:67:05:08:00 SRC=187.115.202.240
   DST=201.17.146.157 LEN=76 TOS=0x00 PREC=0x00 TTL=58 ID=23151 DF
   PROTO=UDP SPT=16117 DPT=123 LEN=56

Mar 27 13:03:57 thor kernel: BAD IP IN=eth0 OUT=
   MAC=00:00:e8:4d:4f:a7:00:13:5f:05:67:05:08:00 SRC=119.200.73.225
   DST=201.17.146.157 LEN=48 TOS=0x00 PREC=0x00 TTL=104 ID=31668 DF
   PROTO=TCP SPT=2510 DPT=25 WINDOW=65535 RES=0x00 SYN URGP=0

Mar 27 15:37:14 thor kernel: SFW2-FWDint-DROP-DEFLT-INV IN=eth1
   OUT=eth0 SRC=192.168.200.41 DST=186.193.48.241 LEN=120 TOS=0x00
   PREC=0x00 TTL=63 ID=30632 DF PROTO=TCP SPT=47851 DPT=15354
   WINDOW=92 RES=0x00 ACK PSH FIN URGP=0
   OPT (0101080A039FB0BA00000000)




(C) 2011 HMarx                                                         91 / 98
Log de sessões e tentativas

  Jan 29 05:18:53 thor sshd[5032]: Invalid user testuser from 213.232.110.135
  Feb 3 13:01:06 thor sshd[11171]: reverse mapping checking getaddrinfo for
              18983144228.user.veloxzone.com.br [189.83.144.228] failed -
               POSSIBLE BREAK-IN ATTEMPT!

  Mar 4 13:37:51 thor sshd[31452]: Accepted keyboard-interactive/pam for hmarx
              from 186.213.97.125 port 44418 ssh2

  Mar 7 19:17:11 thor sshd[10687]: User walter from (null) not allowed because none
             of user’s groups are listed in AllowGroups

  Mar 8 12:17:58 thor sshd[26745]: Failed password for invalid user denied from
              ::ffff:121.83.254.19 port 60428 ssh2

  Mar 9 07:53:31 thor sshd[29212]: Invalid user zorro from ::ffff:78.153.209.71


  Mar 9 08:17:19 thor login[29821]: FAILED LOGIN 1 FROM /dev/tty1 FOR hmarx,
                 Authentication failure




(C) 2011 HMarx                                                                    92 / 98
Logs de e-mails
Mar 24 17:07:27 thor sendmail[20124]: p2OK7JCw020124:
   from=<goncalves@fgr.org.br>, size=269275, class=0, nrcpts=1,
   msgid=<F4B8E6386F9B4A8EB2CD1D8A5DCB7C3A@paraiba.org.br>,
   proto=ESMTP, daemon=MTA, relay=nsa33.globalconn.net [74.52.81.66]

Mar 24 17:08:27 thor sendmail[20124]: p2OK7JCw020124: Milter change (add):
    header: X-Virus-Scanned: by amavisd-new

Mar 24 17:08:28 thor sendmail[20172]: p2OK7JCw020124:
    to=<hmarx@linuxtech.com.br>, delay=00:01:05, xdelay=00:00:00, mailer=local,
    pri=299525, dsn=2.0.0, stat=Sent

Mar 19 22:04:39 thor popper[23507]: Stats: hmarx 2 29503 0 0 venus.starix.br
    192.168.200.41 [pop_updt.c:296]

Mar 19 21:33:00 thor popper[16281]: prudencia at server.museuimperial.art.br
    (173.199.129.199): -ERR [AUTH] Password supplied for "prudencia"
        is incorrect. [pop_pass.c:1295]

Mar 19 21:56:43 thor popper[23154]: [AUTH] Failed attempted login to renato from
    host (server.museuimperial.art.br) 173.199.129.199 [pop_pass.c:1383]




(C) 2011 HMarx                                                                 93 / 98
Sumário das ferramentas
s Sessões, conexões e transações segura
       § ssh, scp, sftp
       § VPN
       § https
       § certificados digitais
       § pgp
s
       § password aging
       Limitando privilégios locais

       § ulimit
       § inetd c/ tcpd ou xinetd
       § processos chrooted
       § quota em sistemas de arquivos
       § permissões de objetos (chmod)
       § ACLs
    (C) 2011 HMarx                        94 / 98
Ferramentas para gerenciamento



s Monitoração de tráfego de rede
    § iptraf
    § tcpdump
    § snort
    § ethereal / wireshark
    § SNMP
s
    § who, w, rwho - usuários com sessões abertas
    Monitoração de atividades no servidor
    § ps, pstree
    § lsof, fuser
                           - processos em execução

    § netstat
                            - arquivos e sockets abertos

    § nmap
                            - conexões potenciais e ativas

    § rpcinfo
                            - serviços acessíveis (portos abertos)

    § w, top, free, df, du - uso de CPU, memória e disco
                            - processos RPC



(C) 2011 HMarx                                                       95 / 98
Conclusões
   § ð Configuração dos serviços
     Planejamento
   § ð usuários e root
     Confiança
                 Ä
                                          !
                     Senhas fortes
                     F
   §
                        Troca periódica
          Software Livre é seguro




(C) 2011 HMarx                                96 / 98
Dúvidas
                           ?
                 Curiosidades




(C) 2011 HMarx                  97 / 98
Obrigado !




                 Hélio Marques Sobrinho

                      hmarx@linuxtech.com.br




(C) 2011 HMarx                                 98 / 98

Weitere ähnliche Inhalte

Was ist angesagt?

Apresentação - Mecanismos de segurança linux
Apresentação - Mecanismos de segurança linuxApresentação - Mecanismos de segurança linux
Apresentação - Mecanismos de segurança linuxAllan Reis
 
Aula06 – sistemas de proteção de dispositivos
Aula06 – sistemas de proteção de dispositivosAula06 – sistemas de proteção de dispositivos
Aula06 – sistemas de proteção de dispositivosCarlos Veiga
 
Fasciculo inf seg_redinf_semana4
Fasciculo inf seg_redinf_semana4Fasciculo inf seg_redinf_semana4
Fasciculo inf seg_redinf_semana4Eduardo Santana
 
Arch Linux: Uma distribuição leve e simples - Érico de Morais Nunes
Arch Linux: Uma distribuição leve e simples - Érico de Morais NunesArch Linux: Uma distribuição leve e simples - Érico de Morais Nunes
Arch Linux: Uma distribuição leve e simples - Érico de Morais NunesTchelinux
 
Ferramentas de ataques
Ferramentas de ataquesFerramentas de ataques
Ferramentas de ataquesCarlos Veiga
 
Arch Linux: Uma distribuição leve e simples - Érico Nunes
Arch Linux: Uma distribuição leve e simples - Érico NunesArch Linux: Uma distribuição leve e simples - Érico Nunes
Arch Linux: Uma distribuição leve e simples - Érico NunesTchelinux
 
Segurança em servidores Linux
Segurança em servidores LinuxSegurança em servidores Linux
Segurança em servidores LinuxImpacta Eventos
 
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais DistribuídosSistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais DistribuídosArthur Emanuel
 
Linux - Sobre a Disciplina + Introdução ao Linux
Linux - Sobre a Disciplina + Introdução ao LinuxLinux - Sobre a Disciplina + Introdução ao Linux
Linux - Sobre a Disciplina + Introdução ao LinuxFrederico Madeira
 
Apostila projetode redes
Apostila projetode redesApostila projetode redes
Apostila projetode redesredesinforma
 
Unidade2 projeto lógico da rede
Unidade2   projeto lógico da redeUnidade2   projeto lógico da rede
Unidade2 projeto lógico da redeLeandro Almeida
 
Firewall em Linux
Firewall em LinuxFirewall em Linux
Firewall em Linuxguest4e5ab
 

Was ist angesagt? (17)

Apresentação - Mecanismos de segurança linux
Apresentação - Mecanismos de segurança linuxApresentação - Mecanismos de segurança linux
Apresentação - Mecanismos de segurança linux
 
Aula06 – sistemas de proteção de dispositivos
Aula06 – sistemas de proteção de dispositivosAula06 – sistemas de proteção de dispositivos
Aula06 – sistemas de proteção de dispositivos
 
Fasciculo inf seg_redinf_semana4
Fasciculo inf seg_redinf_semana4Fasciculo inf seg_redinf_semana4
Fasciculo inf seg_redinf_semana4
 
Zfs
ZfsZfs
Zfs
 
Arch Linux: Uma distribuição leve e simples - Érico de Morais Nunes
Arch Linux: Uma distribuição leve e simples - Érico de Morais NunesArch Linux: Uma distribuição leve e simples - Érico de Morais Nunes
Arch Linux: Uma distribuição leve e simples - Érico de Morais Nunes
 
Ferramentas de ataques
Ferramentas de ataquesFerramentas de ataques
Ferramentas de ataques
 
Arch Linux: Uma distribuição leve e simples - Érico Nunes
Arch Linux: Uma distribuição leve e simples - Érico NunesArch Linux: Uma distribuição leve e simples - Érico Nunes
Arch Linux: Uma distribuição leve e simples - Érico Nunes
 
Segurança em servidores Linux
Segurança em servidores LinuxSegurança em servidores Linux
Segurança em servidores Linux
 
ZFS Filesystem
ZFS FilesystemZFS Filesystem
ZFS Filesystem
 
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais DistribuídosSistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
 
Segurança Linux
Segurança LinuxSegurança Linux
Segurança Linux
 
Linux - Sobre a Disciplina + Introdução ao Linux
Linux - Sobre a Disciplina + Introdução ao LinuxLinux - Sobre a Disciplina + Introdução ao Linux
Linux - Sobre a Disciplina + Introdução ao Linux
 
Apostila projetode redes
Apostila projetode redesApostila projetode redes
Apostila projetode redes
 
SI - Comunicação
SI - ComunicaçãoSI - Comunicação
SI - Comunicação
 
Artigo 2008 - uma visao dos protocolos para redes ethernet industriais e su...
Artigo   2008 - uma visao dos protocolos para redes ethernet industriais e su...Artigo   2008 - uma visao dos protocolos para redes ethernet industriais e su...
Artigo 2008 - uma visao dos protocolos para redes ethernet industriais e su...
 
Unidade2 projeto lógico da rede
Unidade2   projeto lógico da redeUnidade2   projeto lógico da rede
Unidade2 projeto lógico da rede
 
Firewall em Linux
Firewall em LinuxFirewall em Linux
Firewall em Linux
 

Ähnlich wie Segurança GNU/Linux

Programação para Kernel Linux - Parte 1
Programação para Kernel Linux - Parte 1Programação para Kernel Linux - Parte 1
Programação para Kernel Linux - Parte 1Ivo Calado
 
Introdução ao Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilli...
Introdução ao Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilli...Introdução ao Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilli...
Introdução ao Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilli...Tchelinux
 
Palestra - Fitem 2009 - Ferramentas de segurança OpenSource
Palestra - Fitem 2009 - Ferramentas de segurança OpenSourcePalestra - Fitem 2009 - Ferramentas de segurança OpenSource
Palestra - Fitem 2009 - Ferramentas de segurança OpenSourceLuiz Arthur
 
Semana da computacao - Linux Day
Semana da computacao - Linux DaySemana da computacao - Linux Day
Semana da computacao - Linux DayFábio Albuquerque
 
Linux Desktop (Campus Party Recife)
Linux Desktop (Campus Party Recife)Linux Desktop (Campus Party Recife)
Linux Desktop (Campus Party Recife)Adriano Melo
 
(01) intro+inicializacao+boot loader+fhs
(01) intro+inicializacao+boot loader+fhs(01) intro+inicializacao+boot loader+fhs
(01) intro+inicializacao+boot loader+fhsAnderson Lago
 
Linux e sistemas embarcados
Linux e sistemas embarcadosLinux e sistemas embarcados
Linux e sistemas embarcadosRicardo Pinheiro
 
Introdução ao OpenSolaris
Introdução ao OpenSolarisIntrodução ao OpenSolaris
Introdução ao OpenSolarisguest830f1
 
Introdução ao OpenSolaris
Introdução ao OpenSolarisIntrodução ao OpenSolaris
Introdução ao OpenSolarisCindy Dalfovo
 
Implantação de sistemas desegurança com linux
Implantação de sistemas desegurança com linuxImplantação de sistemas desegurança com linux
Implantação de sistemas desegurança com linuxSoftD Abreu
 
Aula 1 Mini Curso de Linux
Aula 1 Mini Curso de LinuxAula 1 Mini Curso de Linux
Aula 1 Mini Curso de LinuxRogério Cardoso
 
2010 03 05 Sistemas Operacionais Aula2
2010 03 05 Sistemas Operacionais Aula22010 03 05 Sistemas Operacionais Aula2
2010 03 05 Sistemas Operacionais Aula2Universal.org.mx
 
Oficinalinux Comotudo Começou
Oficinalinux Comotudo ComeçouOficinalinux Comotudo Começou
Oficinalinux Comotudo Começouguest96251d
 
Linux Como Tudo Começou
Linux Como Tudo ComeçouLinux Como Tudo Começou
Linux Como Tudo Começouguestaa94fe
 

Ähnlich wie Segurança GNU/Linux (20)

Programação para Kernel Linux - Parte 1
Programação para Kernel Linux - Parte 1Programação para Kernel Linux - Parte 1
Programação para Kernel Linux - Parte 1
 
Administração de Redes Linux - I
Administração de Redes Linux - IAdministração de Redes Linux - I
Administração de Redes Linux - I
 
Hardening Unix
Hardening UnixHardening Unix
Hardening Unix
 
Introdução ao Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilli...
Introdução ao Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilli...Introdução ao Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilli...
Introdução ao Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilli...
 
Palestra - Fitem 2009 - Ferramentas de segurança OpenSource
Palestra - Fitem 2009 - Ferramentas de segurança OpenSourcePalestra - Fitem 2009 - Ferramentas de segurança OpenSource
Palestra - Fitem 2009 - Ferramentas de segurança OpenSource
 
Semana da computacao - Linux Day
Semana da computacao - Linux DaySemana da computacao - Linux Day
Semana da computacao - Linux Day
 
Minicurso GNU/Linux
Minicurso GNU/LinuxMinicurso GNU/Linux
Minicurso GNU/Linux
 
Linux Desktop (Campus Party Recife)
Linux Desktop (Campus Party Recife)Linux Desktop (Campus Party Recife)
Linux Desktop (Campus Party Recife)
 
(01) intro+inicializacao+boot loader+fhs
(01) intro+inicializacao+boot loader+fhs(01) intro+inicializacao+boot loader+fhs
(01) intro+inicializacao+boot loader+fhs
 
Linux e sistemas embarcados
Linux e sistemas embarcadosLinux e sistemas embarcados
Linux e sistemas embarcados
 
Introdução ao OpenSolaris
Introdução ao OpenSolarisIntrodução ao OpenSolaris
Introdução ao OpenSolaris
 
Introdução ao OpenSolaris
Introdução ao OpenSolarisIntrodução ao OpenSolaris
Introdução ao OpenSolaris
 
apostila linux
apostila linuxapostila linux
apostila linux
 
Linux
LinuxLinux
Linux
 
Implantação de sistemas desegurança com linux
Implantação de sistemas desegurança com linuxImplantação de sistemas desegurança com linux
Implantação de sistemas desegurança com linux
 
Linux Conceitos Design
Linux Conceitos DesignLinux Conceitos Design
Linux Conceitos Design
 
Aula 1 Mini Curso de Linux
Aula 1 Mini Curso de LinuxAula 1 Mini Curso de Linux
Aula 1 Mini Curso de Linux
 
2010 03 05 Sistemas Operacionais Aula2
2010 03 05 Sistemas Operacionais Aula22010 03 05 Sistemas Operacionais Aula2
2010 03 05 Sistemas Operacionais Aula2
 
Oficinalinux Comotudo Começou
Oficinalinux Comotudo ComeçouOficinalinux Comotudo Começou
Oficinalinux Comotudo Começou
 
Linux Como Tudo Começou
Linux Como Tudo ComeçouLinux Como Tudo Começou
Linux Como Tudo Começou
 

Segurança GNU/Linux

  • 1. Disciplina Segurança em Sistema Operacional Livre Prof: Hélio Marques Sobrinho hmarx@linuxtech.com.br (C) 2011 HMarx 1 / 98
  • 2. Programa s § Sistema de computação e segurança Introdução § O ambiente operacional GNU/Linux s § Planejamento, Instalação e Configuração Instalação do GNU/Linux § O shell e seus comandos s § Usuários e grupos Administração do GNU/Linux § Sistemas de arquivos § Serviços s § Firewall, VPN, SSL, .. Segurança § Logs. s Conclusões (C) 2011 HMarx 2 / 98
  • 3. Referências bibliográficas § Olaf Kirch, "Linux Network Administrator´s Guide", SSC, USA, 1994. § Simon Garfinkel & Gene Spafford, "Practical Unix & Internet Secutiry", O´Reilly, USA, 1996. § Anonymous, "Maximum Linux Security", SAMS, USA, 2000. § "openSuSE Security Guide", Novell § "openSuSE Linux Administration and User Guide", Novell § ¶ www.cert.org (Computer Emergency Report Team) Alguns sites: ¶ www.kernel.org ¶ www.gnu.org ¶ ¶ ¶ ¶ www.nsa.org www.linuxsecurity.com ¶ www.sans.org www.rootprompt.org § pgp.mit.edu e muito mais. (C) 2011 HMarx 3 / 98
  • 4. Agenda s Conteúdo ð ð Introdução e conceitos ð Utilização e Comandos básicos ð Instalação e configuração do Linux. ð Administração do Linux. ð Serviços de rede. ð Firewall, VPN, SSL. ð Logs e Avaliação Feedbacks e conclusões. (C) 2011 HMarx 4 / 98
  • 5. Introdução s Sistema de Computação § ð Hardware, Software e Peopleware ð Processadores, memórias, dispositivos de E/S, ... ð Sistema operacional, utilitários e aplicativos Engenheiros, projetistas, técnicos, analistas, programadores, operadores e usuários (C) 2011 HMarx 5 / 98
  • 6. Segurança s Conceitos - ISO 27001 e 27002 § ð Critérios de segurança ð Disponibilidade ð Integridade ð Confiabilidade 2 Privacidade MTTF, MTBF, MTTR s Componentes do sistema de computação Exercício #1 Para cada um dos 3 componente do sistema de computação escolher um elemento e exemplificar (se aplicável) causa e efeito para cada critério de segurança acima. (C) 2011 HMarx 6 / 98
  • 7. Critérios de segurança s DoD - U.S. Department of Defense NSA - National Securiy Agency NCSC - National Computer Security Center TCSEC - Trusted Computer System Evaluation Criteria CC - Common Criteria s Classes D Segurança mínima C Proteção facultativa B Proteção obrigatória A Proteção verificada (C) 2011 HMarx 7 / 98
  • 8. Nova classificação s CCITSE ð Common Criteria for Information Tecnology Security Evaluation ð CC - Common Criteria EAL - Evaluation Assurance Level EAL 1 : Testado funcionalmente EAL 2 : Testado estruturalmente EAL 3 : Metodicamente testado e verificado EAL 4 : Metodicamente projetado, testado e revisado EAL 5 : Projetado semi-formalmente e testado EAL 6 : Projeto semi-formalmente verificado e testado EAL 7 : Projeto formalmente verificado e testado Red Hat Enterprise 5.3 EAL 4, dez/2009 SuSE Linux Enterprise 10 SP1 EAL 4, out/2007 VMWare ESX Server 2.5.0 EAL 2, set/2005 Microsoft Windows 2003 Server EAL 4, out/2006 (C) 2011 HMarx 8 / 98
  • 9. Histórico do GNU/Linux s Bell Labs, USA, 1960 § § ð Ken Thompson Multics - GE 645 Unics => PDP-7 ð Dennis Ritchie, ð Brian Kernigham GE-645 § AT&T, SysV, Unix® Multics Ken Thompson Dennis Ritchie PDP-11 s § ð FSF- -GNUSoftwareUnix MIT, USA, 1983 GNU is Not ð Free Foundation Richard Stallman s Helsinki, Finlândia,1991 § Freax => Linux Ä GNU / Linux ð Linux kernel dynamic duo Linus Torvalds (C) 2011 HMarx 9 / 98
  • 10. Software Livre s FSF - Free Software Foundation § § GPL - General Public License § LGPL - Lesser General Public License § AGPL - Affero General Public License FDL - Free Documentation License Tim (O’Reilly) e Richard Stallman (FSF) (C) 2011 HMarx 10 / 98
  • 11. Distribuição s Meio de distribuição ð ð Kernel linux ð Utilitários e aplicativos GNU e outros ð Instalação, Administração e configuração Pacotes RPM, TAR, DEB, ... s Algumas distribuições § e muito mais ! s § SLES, RHEL e Oracle Enterprise Linux (C) 2011 HMarx 11 / 98
  • 12. Instalação do GNU/Linux s § ð Estaçãoda instalação servidor ? Grid/Cluster ? Planejamento Objetivo ð Quais serviços ??Web ? Mail ? Banco de dados ? de trabalho ou § ð Volumes ? Tamanhos ?disco(s) Firewall ? VPN Particionamento do(s) Ä swap, /, /home, /boot, /var, ... ð Ä swap,de arquivosreiserfs, xfs, ... Sistema § ð Desenvolvimento de software? Entretenimento ? ext2, ext3, Pacotes de aplicativos Editoração eletrônica ? Educacional ? Geoprocessamento ? Aplicativos especiais ? (C) 2011 HMarx 12 / 98
  • 13. Instalação do GNU/Linux s § ð ethernet ? token ring ? wireless ? Ambiente de rede Interfaces Ä Ä 10Mbps ? 100Mbps ? Ä 1Gbps ? 10Gbps ? ... § ð TCP/IP ? SMB ? IPX ? Coaxial ? UTP ? STP ? Fibra ? Protocolos ð NCP ? DHCP ? Ä Nomes, endereços Ä IPs, máscaras, rotas ð Ä usuário, senha,autenticação Parâmetros para § padrão Dominios e endereços Ä DNS ? SMB/NMB ? AD? Ä IPv4 ? IPv6 ? Ä NIS ? LDAP ? (C) 2011 HMarx 13 / 98
  • 14. Arquitetura do GNU/Linux F .. Nenhuma aplicação acessa o hardware diretamente ! (C) 2011 HMarx 14 / 98
  • 15. Iniciando o GNU/Linux s O processo de boot (C) 2011 HMarx 15 / 98
  • 16. Do init aos processos s Árvore de processos (C) 2011 HMarx 16 / 98
  • 17. Sessões s Abertura de sessão / login § § ð console, terminal (real ou emulado) local ou remota (telnet, ssh, ...) texto ou gráfica ð XWindow § ð user id e group id login e senha ð Ä login : gid default a vários grupos um usuário pode pertencer ð Ä root : root Super usuário F ð um usuário pode pertencer a vários grupos uid 0, gid 0 § ð usuário, grupoacesso a arquivos e diretórios : rwx Permissões de e outros: Read, Write, eXecute s Fechar sessão / logout ð exit ou Ctrl-D (C) 2011 HMarx 17 / 98
  • 18. Autenticação s Arquivo ð /etc/passwd e /etc/shadow s Bases ð NIS ð LDAP s PAM - Pluggable Autentication Modules ð /etc/pam.conf ou /etc/pam.d/* #%PAM-1.0 auth requisite pam_nologin.so auth [user_unknown=ignore success=ok ignore=ignore auth_err=die default=bad] auth include common-auth account include common-account password include common-password session required pam_loginuid.so session include common-session session required pam_lastlog.so nowtmp session optional pam_mail.so standard session optional pam_ck_connector.so s Radius, Kerberos, Diameter, fingerprint, ... (C) 2011 HMarx 18 / 98
  • 19. Sistema de arquivos s Estrutura hierárquica distribuída Ä diretórios, arquivos, dispositivos Ä root file system: / § Volumes locais e remotos Ä Sistemas de arquivos diferentes Ä Sistemas operacionais diferentes F ext2, ext3, reiser, xfs, swap, fat, vfat, nfs, smb, ncp, ... Ä Transparente para as aplicações F Virtual File System - vfs (C) 2011 HMarx 19 / 98
  • 20. Linux VFS s Camada de abstração do sistema de arquivos (C) 2011 HMarx 20 / 98
  • 21. Dispositivos s Volumes § ð locais dispositivos de armazenamento Ä ð Ä volumes exportados (NFS, Samba, NCP, ...) discos, arquivos, memória, CD, DVD, pen drive, ... remotos § ð Sistemas de arquivos locais Partições Ä Ä swap swap Ä ext2, ext3, reiser, ... ð Ä LILO, de boot LVM, RAID, DRBD, ... / indicador Ä Windows, MacOS. ,,, Grub, /home Ä outros /usr (C) 2011 HMarx 21 / 98
  • 22. Montagem s ð /etc/fstab Montagem durante o boot (init) ð / (raiz) ð Ä locais ou remotosarquivos outros sistemas de F (diskless workstations) Network File System s Entradas no arquivo /etc/fstab volume mount_point filesystem options dump fsck /dev/sda3 / ext3 acl,user_xattr 1 1 server:/public /pub nfs acl,noauto 0 0 s Comando mount mount [ -o opções ] volume mount_point mount volume mount mount_point } Entradas definidas no /etc/fstab (C) 2011 HMarx 22 / 98
  • 23. Visão para as aplicações w Possibilidades w Ä Local Remoto w NFS, SMB, ... DRBD (C) 2011 HMarx 23 / 98
  • 24. Atributos dos arquivos s Diretórios ð nomes § ð atributos, permissões Inodos ð blocos de dados s drwxrwxrwx user group others { r : read w: write permissões x : execute s,S : SUID, SGID { - : normal file d : directory t ,T : Stick c : character device tipo b : block device p : pipe l : link $ ls -li dostextfile s : socket 63677 -rw-rw---- 1 hmarx linuxtech 31 2011-03-19 19:13 dostextfile inode user group permissions size D&T filename links (C) 2011 HMarx 24 / 98
  • 25. Permissões s Representação numérica § ð ð 000 ð Bits : suid sgid stick rwx ð 0 1 F 0 1 0 1 111 ð altera x p/ s, S, t ou T } 0000 7777 s Alteração de permissões § § chmod opções octal objeto ... * chmod opções {{ugoa}{+-=}{ugorwxst}, } objeto ... s Alteração de dono § § chown opções [ user ] [ : group ] objeto ... chgrp opções group objeto ... (C) 2011 HMarx 25 / 98
  • 26. Exercícios s Permissões de acesso Exercício #2 Seja uma empresa com gerentes de diversas áreas. Um funcionário pode estar subordinado a mais de uma área. Cada gerente disponibiliza documentos em um diretório que só pode ser lidos por seus subordinados. Como as permissões dos diretórios e arquivos devem ser estabelecidas para não serem violadas a confiabilidade, a privacidade e integridade destes documentos ? (C) 2011 HMarx 26 / 98
  • 27. Hard links e soft links s Estrutura dos diretórios Ä Ä Dados do arquivo : inodo § Diretório: nome do arquivo Hard links $ ls -li arquivo.txt 63675 -rw-rw---- 1 hmarx linuxtech 2910 2011-04-02 13:54 arquivo.txt $ ln arquivo.txt arquivo.copia $ ls -li arquivo.txt arquivo.copia 63675 -rw-rw---- 2 hmarx linuxtech 2910 2011-04-02 13:54 arquivo.copia r 63675 -rw-rw---- 2 hmarx linuxtech 2910 2011-04-02 13:54 arquivo.txt § $ Soft links $ ln -s arquivo.txt arquivo.atalho $ ls -li arquivo.txt arquivo.atalho 64134 lrwxrwxrwx 1 hmarx linuxtech 11 2011-04-02 14:04 arquivo.atalho -> arquivo.txt r 63675 -rw-rw---- 2 hmarx linuxtech 2910 2011-04-02 13:54 arquivo.txt $ (C) 2011 HMarx 27 / 98
  • 28. ACLs s ACLs - Access Control Lists Ä ð Controle granular das permissões rwx Sistema de arquivos montado com opção acl F Ä Exemplo: /dev/sdc2 on /work type reiserfs (rw,acl) mount -oremount,acl sistema-de-arquivos $ ls -l arquivo -rwxrw---- 1 hmarx linuxtech 61 2011-03-28 16:17 arquivo $ setfacl -m u:diana:rw,g:www:r arquivo Note a diferença ! $ ls -l arquivo -rwxrw----+ 1 hmarx linuxtech 61 2011-03-28 16:17 arquivo $ getfacl arquivo # file: arquivo # owner: hmarx # group: linuxtech user::rw- user:diana:rw- group::rw- group:www:r-- mask::rw- r other::--- $ (C) 2011 HMarx 28 / 98
  • 29. Exercício Exercício #3 Compare o esquema de proteção padrão utilizando apenas os bits rwx com o uso das ACLs. Que vantagens adicionais você consegue perceber ? (C) 2011 HMarx 29 / 98
  • 30. SELinux s Security Enhanced Linux § ð DoD - NSA - NCSC TCSEC, TCB, CC ð GPL em 2002, kernel Linux em 2003 ð Mandatory Access Control ð Confinamento de usuários e serviços a privilegios mínimos s Habilitando o SELinux § ð security=selinux selinux=1 parâmetros para o kernel § ð diretório /etc/selinux/* configurações § ð diretóriostatus /selinux/* controle e virtual (C) 2011 HMarx 30 / 98
  • 31. A interface gráfica XWindow s Componentes § § desktop manager window § manager aplications F Dependendo da velocidade do enlace, a comunicação pode ser remota. (C) 2011 HMarx 31 / 98
  • 32. Componentes do XWindow s X Server ð xorg s Desktop manager § ð xdm, gdm, kdm, ... controle de sessões X.org s § ð fvwm,egnome, kde, enlightenment, afterstep, Window manager controle decoração de janelas windowmaker, cdesim, ... s X applications § ð aplicações gráficas xterm, xclock, kmail, firefox, gimp, openoffice, digikam, wxcam, amarok, ... locate ent (C) 2011 HMarx 32 / 98
  • 33. O kdm e o desktop KDE openSuSE kdm e KDE (C) 2011 HMarx 33 / 98
  • 34. Uma interface típica botões de controle barra do título botões de controle menu e sticky minimiza, maximiza, ordem, fechar menu texto menu com icones área do aplicativo: textos, diálogos, barras de rolagem botões, canvas, ... barra de status KDE - kwrite (C) 2011 HMarx 34 / 98
  • 35. Algumas aplicações gráficas Aplicações X e KDE (C) 2011 HMarx 35 / 98
  • 36. Padrão de interface gráfica s CUA - Common User Access § § Publicado pela IBM, 1987 Utilizado por Unix, Windows e Linux § Botões Ok, Cancel, Help, ... § Teclas de função (F1, F4, ...) § Teclas TAB, shift TAB, ESC, Enter, ... Exercício #4 Quais são os elementos básicos que compõems uma interface gráfica de um aplicativo qualquer ? Porque a utilização de uma interface gráfica para administrar um servidor requer maiores cuidados ? (C) 2011 HMarx 36 / 98
  • 37. O Bourne Again Shell - Bash s Interpretador de comandos s Linguagem de programação completa § scripts : comandos interpretados s Sintaxe § No prompt: Ä comando [ opções ] { [ argumentos ] }* (C) 2011 HMarx 37 / 98
  • 38. Ajuda on-line s Aplicativos § § comando --help § comando -h § man opções [ sessão ] comando info opções comando s Comandos do shell § help comando s A internet § § § http://www.linuxquestions.org/ http://www.linuxmanpages.com/ ... ! it (C) 2011 HMarx 38 / 98
  • 39. Elementos da linguagem bash s Variáveis § ð variável=valor Atribuição NOME="Helio Marques" echo $NOME § ð $variável Valor da variável s Variáveis padrão § ð PATH, PS1, PS2, PS3, HOME, USER, SHELL, LANG, Alteráveis pelo usuário § ð 0,alteráveis!,pelo usuário ... Não 1, ... 9, #, ?,@, $ (C) 2011 HMarx 39 / 98
  • 40. Metacaracteres s Sequência de caracteres especiais § São tratados pelo shell e substituidos antes de § ð Exemplos de conjunto serem passados para o comando * ? [ conjunto ] [ !conjunto ] ~ Ä a-z 0123456789 0-9 0-9ABCDEF 0-9A-F $ echo ** ERRO ** ** ERRO ** $ ls chap1 chap2 chap3 programA programB1 programB2 $ ls *[1-3] chap1 chap2 chap3 programB1 programB2 $ ls *[!1-3] programA $ ls *[AB]? r programB1 programB2 $ (C) 2011 HMarx 40 / 98
  • 41. Usando Metacaracteres s Comando echo § § echo [ -n ] texto ... Imprime na saída padrão os argumentos Exercício #5 Sejam as variáveis PRODUTO, que contém o nome do ítem, e VALOR, que contém o preço do ítem. Exemplo: PRODUTO="Caneta" e VALOR="14,95". Que comando irá exibir o texto abaixo ? O item Caneta custa R$14,95 (C) 2011 HMarx 41 / 98
  • 42. Ambiente s ~ é o diretório pessoal §~jose é /home/jose s conteúdo § ð .* "nomes ocultos" no ls arquivos e diretórios pessoais § ð shell - logs e de aplicativos configurações scripts Ä .bash_history, .bashrc, .bash_login, .bash_logout, .profile, ð Ä .procmailrc,e-mail ... .alias, ... tratamento de ð Ä ícones,aplicações gráficasde janelas, ... .forward, desktop e menus, decorações (C) 2011 HMarx 42 / 98
  • 43. Comandos do Bash s Comandos internos ð alias, cd, fg, bg, echo, eval, exit, export, history, if/then/else, while, until, for, case, pwd, set, shift, trap, test, type, ulimit, umask, uname, ... s Aplicativos externos § ð scripts e executáveis ls, ps, cp, rm, rmdir, ln, mv, df, du, diff, at, bc, bzip, tar, ping, host, w, who, arp, ... s Funções ð Ex: Definindo o novo comando files para exibir o diretório em 3 colunas function files() { ls $* | pr -T --columns=3 } (C) 2011 HMarx 43 / 98
  • 44. Operadores do bash s Separador de comandos s ; $ date; pwd; uname -r Sat Mar 19 19:30:19 BRT 2011 /home/hmarx r 2.6.34.7-0.7-default $ s Redirecionamento de E/S § 0 : entrada padrão > >> < >& <<texto i>&n { 1 : saída padrão 2 : saída de erros $ cat << _END_ > Arquivo $ cat Arquivo Uma linha Outra linha Mais uma linha ð Uma linha Outra linha r Mais uma linha r _END_ $ $ (C) 2011 HMarx 44 / 98
  • 45. Operadores do bash s § Pipe comando1 | comando2 | ... $ echo "Maria da Silva" | rev r avliS ad airaM $ s Agrupamento de comandos (subshell) § ( comando1; comando2; ... ) $ pwd; (cd /usr/local/bin;pwd); pwd /home/hmarx /usr/local/bin r /home/hmarx $ (C) 2011 HMarx 45 / 98
  • 46. Operadores do bash s § Substituição de comando § ‘comando‘ $(comando) $ echo "Estamos no ano $(date +%Y)." r Estamos no ano de 2011. $ s Expressões aritméticas § (( expressão )) $ (( I = 500 / 3 )) $ echo "I = $I" r I = 166 $ (C) 2011 HMarx 46 / 98
  • 47. Operadores do bash s § ð operadores ]] Expressões lógicas [[ expressão Ä Ä Ä -eq -lt -gt -le -ge -ne -e file -r file -w file ... $ [[ 500 -gt 100 ]]; echo $0 0 0 é verdadeiro 1 é falso ! $ [[ 500 -gt 1000 ]]; echo $0 r 1 $ F ! Ver manual do comando test (C) 2011 HMarx 47 / 98
  • 48. Exemplos de comandos s Comandos iterativos e condicionais i=0 ð 0 while [[ $i -gt 5 ]] 1 do 2 echo $i 3 (( ++i )) 4 done for i in uva pera caqui do echo A fruta é $i done ð A fruta é uva A fruta é pera A fruta é caqui ð ? if expr 5 > 3 Exercício #6 then echo ERRADO Porque ? else echo CERTO fi (C) 2011 HMarx 48 / 98
  • 49. Mais alguns comandos $ ls bash dostextfile foto.jpg image.gif image.png unixtextfile $ file * bash: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.4, stripped dostextfile: ASCII text, width CRLF line terminators foto.jpg: PE32 executable for MS Windows (GUI) Intel 80386 32-bit image.gif: GIF image data, version 89a, 100 x 100 image.png: PNG image data, 250 x 250, 8-bit/color RGB, non-interlaced unixtextfile: ASCII text $ ls | wc r 5 5 50 $ A identificação do tipo do arquivo é pelo conteúdo e não pela extensão do nome do arquivo ! ! (C) 2011 HMarx 49 / 98
  • 50. GNU/Linux em Redes s Topologias § barramentos, estrela, wireless, ... s Arquitetura § internas, externas, locais, remotas, internet, VPNs, § ... A Internet s Tecnologias § coaxial, ethernet, token-ring, wifi, wimax, ... s Protocolos § § ð TCP/IP, SMB e NMB, NCP, AX25, ... Parâmetros ð nomes, endereços parâmetros de desempenho e segurança s (C) 2011 HMarx 50 / 98
  • 51. IPv4 s Número de 32 bits § R H formato x.y.z.w Ä x, y, z, w ∈ [ 0 .. 255 ] x y z w F § R + H = 32 Classe x netid hostid networks IPs ð A 1-126 x y.z.w 126 16.777.216 ð B 128-191 x.y x.w 16.384 65536 ð C 192-223 x.y.z w 2.097.151 256 ð D 224-239 multicast ð E 240-247 reservado § Endereços especiais Ä loopback: 127.0.0.0/8 (interface lo) Ä network : hostid[*] = 0 Ä Ä broadcast: hostid[*] = 1 netmask : netid[*]=1, hostid[*] = 0 (C) 2011 HMarx 51 / 98
  • 52. IPv4 s Blocks privados } Network Address Translation § A : 10.0.0.0/8 § B : 172.16.0.0/12 § C : 192.168.0.0/16 s Endereços especiais § loopback: 127.0.0.0/8 Finterface lo gateway/firewall § network : hostid[*] = 0 § broadcast: hostid[*] = 1 § netmask : netid[*]=1, hostid[*] = 0 Exemplo Classe C: 192.168.200.0/24 endereço de rede: 192.168.200.0 endereço de broadcast: 192.168.200.255 Total de 256 IPs ⇒ 254 disponíveis para os nodos (C) 2011 HMarx 52 / 98
  • 53. IPv4 - subclasses R H R + H = 32 x y z w R’ + H’ = 32 R’ = R + N R’ H’ H’ = H - N N s § Rede R = x.y.z.w/R R é o número de bits de netid s Subclasses R’ Exemplo § ð 2N subclasses R’ x’.y’.z’.w’/R’ Subclasse C’: 192.168.200.0/28 endereço de rede: 192.168.200.0 endereço de broadcast: 192.168.200.15 máscara : 255.255.255.240 ou /28 ð 2H-N = 2H’ IPs Total de 16 IPs ⇒ 14 disponíveis para os nodos (C) 2011 HMarx 53 / 98
  • 54. Praticando ... Exercício #7 Identifique para os endereços abaixo: a classe (A, B ou C), o número de IPs disponíveis, os endereços de rede e broadcast, e a máscara no formato /N ou x.y.x.w, conforme a fornecida. a) 75.1.12.0 / 22 b) 200.200.200.128 / 26 c) 11.192.0.0, máscara 255.224.0.0 (C) 2011 HMarx 54 / 98
  • 55. Roteamento s Tabela de roteamento § ð destino gateway máscara métrica interface route -n ou netstat -rn § ð Para com entradadestino DST Pacote cada IP de Ä DST & máscara == destino ? Ä Envia p/ o gateway a interface ð Ä destino 0.0.0.0, máscara 0.0.0.0 Rota default F X & 0 é sempre 0 ! (C) 2011 HMarx 55 / 98
  • 56. Multiplas redes s Redes locais e remotas (C) 2011 HMarx 56 / 98
  • 57. Práticando ... s Cálculo de sub-redes Exercício #8 Considere um provedor detentor do bloco 190.180.128.0/17. Ele quer fornecer subclasses com 16 IPs fixos para seus clientes. a) Quantos clientes ele pode atender com o bloco ? b) Exemplifique com algumas subclasses fornecidas. c) Cite algumas consequências de configurações inadequadas ou erradas de parâmetros de redes em termos de segurança. (C) 2011 HMarx 57 / 98
  • 58. IPv6 s Números de 128 bits § § representados em hexadecimal bits de mais alta ordem : prefixo Tipo de endereço Prefixo Fração do espaço de endereçamento reservado 0000 0000 1/256 não assinalado 0000 0001 1/256 reservado para NSAP 0000 001 1/128 reservado para 0000 010 1/64 não assinalado 0000 011 1/32 não assinalado 0000 1 1/16 não assinalado 0001 1/8 endereços de unicast global agregáveis 001 1/8 não assinalado 010 1/8 não assinalado 011 1/8 não assinalado 100 1/8 não assinalado 101 1/8 não assinalado 110 1/8 não assinalado 1110 1/16 não assinalado 1111 0 1/32 não assinalado 1111 10 1/64 não assinalado 1111 110 1/128 não assinalado 1111 1110 1/512 endereços de unicast de link local 1111 1110 10 1/1024 endereços de unicast de site local 1111 1110 11 110248 endereços de multicast 1111 1111 1/256 (C) 2011 HMarx 58 / 98
  • 59. IPv6 - exemplos eth0 Link encap:Ethernet HWaddr 00:00:E8:4D:4F:A7 inet addr:201.17.146.157 Bcast:201.17.146.255 Mask:255.255.255.0 inet6 addr: fe80::200:e8ff:fe4d:4fa7/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:50165271 errors:0 dropped:0 overruns:0 frame:0 TX packets:12768430 errors:18 dropped:0 overruns:0 carrier:36 collisions:37218 txqueuelen:1000 RX bytes:853256390 (813.7 Mb) TX bytes:3281976782 (3129.9 Mb) Interrupt:129 Base address:0xb400 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:1208299 errors:0 dropped:0 overruns:0 frame:0 TX packets:1208299 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:219146691 (208.9 Mb) TX bytes:219146691 (208.9 Mb) vmnet8 Link encap:Ethernet HWaddr 00:50:56:C0:00:08 inet addr:172.16.185.1 Bcast:172.16.185.255 Mask:255.255.255.0 inet6 addr: fe80::250:56ff:fec0:8/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:71600 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) (C) 2011 HMarx 59 / 98
  • 60. Serviços s Conexão / Comunicação ð Ä portosUDP, sockets TCP, IP, ð Arquivos e protocolos s Scripts em /etc/init.d/ ð apache2, named, mysql, smbd, nmbd, vsftpd, sendmail, ð RunLevel em /etc/inittab ntp, dhcpd, nfsd, firewall, ... F default Ä id:5:initdefault Ä 0:halt Ä 1:mono Ä 2:multi local Ä 3:multi+rede Ä 5:mult+rede+X11 6:reboot F chkconfig serviço { on | off } (C) 2011 HMarx 60 / 98
  • 61. Servidor de nomes s DNS - Domain Name System ð Ä resoluçãoIPs IPs de domínios e máquinas domínios e Ä resolução de nomes de IPs (DNS reverso) de ð Ä software BIND - Berkeley Internet Name Domain named (C) 2011 HMarx 61 / 98
  • 62. Resolvendo nomes e IPs s Aplicativos § § host § dig nslookup # host 201.17.146.157 157.146.17.201.in-addr.arpa domain name pointer atlas.linuxtech.com.br. # host atlas.linuxtech.com.br atlas.linuxtech.com.br has address 201.17.146.157 atlas.linuxtech.com.br mail is handled by 10 atlas.linuxtech.com.br. # host -t mx linuxtech.com.br linuxtech.com.br mail is handled by 10 atlas.linuxtech.com.br. r linuxtech.com.br mail is handled by 20 master.softaplic.com.br. # (C) 2011 HMarx 62 / 98
  • 63. E-mail s Componentes § MUA - Mail User Agent Ä kmail, mutt, thunderbird, webmails, ... § MTA - Mail Transport Agent Ä sendmail, postfix, exim, qmail, ... § MDA - Mail Delivery Agent Ä procmail § Filtros Ä antivirus, antispam Ä filtros (ip/domínio de origem, assunto, remetente, destinatário, ... ) s Protocolos ð ð ð MTA ð ð [E]SMTP - MUA MTA e MTA ð ð POP - caixa postal MUA IMAP - caixa postal MUA F Podem utilizar TLS e SSL ! (C) 2011 HMarx 63 / 98
  • 64. Protocolo SMTP s Conversa SMTP simplificada (C) 2011 HMarx 64 / 98
  • 65. Segurança do e-mail s Autenticidade § ð Endereços de origem e destino To e From F ð Ä Subject de origem Facilmente forjáveis ! IP/domínio s Integridade F Confiabilidade do MUA, MTAs e MDAs s Confiabilidade ð ð Conteúdo e Anexos § SPAM / SCAM Cavalos de Troia, Worms e Viruses s § Criptografia Privacidade Ä PGP (C) 2011 HMarx 65 / 98
  • 66. Segurança do e-mail Exercício #9 Porque a resolução dos nomes no DNS é importante para a segurança do sistema de e-mails ? O sistema GNU/Linux é praticamente imune a virus. Porque é necessário o uso de antivirus nele ? (C) 2011 HMarx 66 / 98
  • 67. Samba s Servidor § § Autenticação de usuários § Compartilhamentos Server, PDC, BDC s Cliente § § Autenticação em servidores Windows Utilização de recursos compartilhados s Configuração § ð parâmetros /etc/samba/smb.conf Ä Ä domain/workgroup, protocolo, compatilhamentos mapeamento de usuários (C) 2011 HMarx 67 / 98
  • 68. Ataques s Formas de ataque § § Man in the middle § Denial of service IP spoofing s Ferramentas § § Análise de logs § TCP wrappers § ð Portscanners e sniffers Firewall ð Segurança de rede Proteção contra acessos indevidos Ä ð filtro de pacotes Log de atividades e tráfego entre redes (C) 2011 HMarx 68 / 98
  • 69. Firewall - organização s Pacotes § § endereços de origem e destino protocolos de sessão e aplicação s Encapsulamento de dados § ð SMTP, Telnet, FTP, HTTP, ... Aplicação § ð TCP, UDP, ICMP, ... Transporte § ð IPv4, IPv6 Internet § ð Ethernet, FDDI, ATM, Wireless, ... Meio de acesso à rede (C) 2011 HMarx 69 / 98
  • 70. Modelo OSI da ISO s F Open Systems Interconnection Model modelo de referência 7 6 5 4 3 2 1 (C) 2011 HMarx 70 / 98
  • 71. Firewall - Filtros s Regras § § Direção : Inbound, Outbound, Either § Endereco de origem § Endereço de destino § Porto de origem § Porto de destino § Protocolo (TCP, UDP, ICMP, ...) § ð Ação (Allow, Deny, Drop, Reject) Destinos especiais SNAT, DNAT, REDIRECT, MASQUERADE, LOG, MARK, REJECT, ... Ä NAT : Network Address Translation ou Masquerade (C) 2011 HMarx 71 / 98
  • 72. Software iptables s Manipulação das tabelas de regras de filtro s Organização § § Tables - Tabelas que são compostas por cadeias § Chains - Cadeias que são compostas por regras § ð filter - tabela default Rules - Regras que definem o destino do pacote Tabelas padrao (após kernel 2.4.18) Ä ð Ä PREROUTING, OUTPUT, POSTROUTING chains: INPUT, FORWARD e OUTPUT nat ð Ä INPUT, PREROUTING, FORWARD, OUTPUT e mangle POSTROUTING (C) 2011 HMarx 72 / 98
  • 73. Fluxo de pacotes pkt Firewall pkt interface interface forward ? externa interna masquerade ? drop ? pkt reject ? pkt (C) 2011 HMarx 73 / 98
  • 74. iptables - utilização s s tabela : especifica a que tabela o comando se aplica cadeia : especifica a que cadeia da tabela o comando se aplica # iptables [ -t tabela ] -L [ cadeia ] Lista as regras (da cadeia) # iptables [ -t tabela ] -N cadeia [ opções ] Cria uma nova cadeia # iptables [ -t tabela ] -X cadeia [ opções ] Remove a cadeia # iptables [ -t tabela ] -F [ cadeia ] Apaga todas as regras (da cadeia) # iptables [ -t tabela ] -Z [ cadeia ] Zera os contadores de bytes e pacotes (da cadeia) (C) 2011 HMarx 74 / 98
  • 75. iptables - utilização # iptables [ -t tabela ] -P cadeia política [ opções ] Define a política padrão para cadeia ACCEPT, DROP, QUEUE ou RETURN # iptables [ -t tabela ] -E nomevelho nomenovo cadeia [ opções ] Troca o nome de uma cadeia # iptables [ -t tabela ] -{ A | D} cadeia especificação [ opções ] Adiciona ou remove uma regra da cadeia # iptables [ -t tabela ] -D cadeia número [ opções ] Remove uma regra da cadeia # iptables [ -t tabela ] -I cadeia [ número ] especificação [ opções ] Inclui uma regra na cadeia # iptables [ -t tabela ] -R cadeia número especificação [ opções ] Substitui uma regra nd cadeia (C) 2011 HMarx 75 / 98
  • 76. iptables s Algumas opções ð -v Ä modo verboso ð -n Ä saída na forma numérica ð -x Ä expande os números de bytes e pacotes ð -h Ä ajuda ð --line-numbers Ä inclui número da linha no início de cada regra ð --module-probe=comando Ä especifica o comando para a carga dos módulos (C) 2011 HMarx 76 / 98
  • 77. iptables s Especificações -p [ ! ] protocolo Especifica o protocolo: tcp, udp, icmp ou all -s [ ! ] endereço [ / máscara ] Especifica o endereço de origem (source) --source-port [ ! ] porto [ : porto ] Especifica o porto ou faixa de portos de origem -d [ ! ] endereço [ / máscara ] Especifica o endereço de destino --destination-port [ ! ] porto [ : porto ] Especifica o porto ou faixa de portos de destino (C) 2011 HMarx 77 / 98
  • 78. iptables s Especificações --source-port { [, porto ] }* Especifica até 15 portos de origem --destination-port porto { [ , porto ] }* Especifica até 15 portos de destino --port porto { [ , porto ] }* Especifica o porto, quando os porto de origem e destino forem iguais (C) 2011 HMarx 78 / 98
  • 79. iptables s Especificações --uid-owner userid Especifica o Id do usuário do processo que criou o pacote --gid-owner gid Especifica o GID do processo que criou o pacote --pid-owner pid Especifica o número do processo que criou o pacote § --sid-owner sessionid Especifica o número da sessão (grupo de processos) que criou o pacote (C) 2011 HMarx 79 / 98
  • 80. iptables s Especificações -i [ ! ] interface Especifica a interface de entrada (de onde veio o pacote) -o [ ! ] interface Especifica a interface de saída (para onde irá o pacote) --mac-source [ ! ] endereço Especifica o porto ou faixa de portos de origem --icmp-type [ ! ] tipo Especifica o tipo do pacote ICMP (C) 2011 HMarx 80 / 98
  • 81. iptables s Especificações --tcp-flags [ ! ] máscara ativos Especifica a lista de flags TCP. A máscara contém os flags que devem estar inativos. Os flags são SYN, ACK, FIN, RST, URG, PSH, ALL ou NONE [ ! ] syn Especifica pacotes com o bit SYN ativo e os bits ACK e FIN inativos --limit taxa [ / sufixo ] Especifica a taxa média máxima de pacotes. O sufixo pode ser second, minute, hour ou day. O default é 3/hour. [ ! ] --limit-burst númer Especifica o número máximo inicial de pacotes. O default é 5. (C) 2011 HMarx 81 / 98
  • 82. iptables s Especificações -j alvo Especifica o que fazer com o pacote. Poder ser uma cadeia § ou um destino especial. ð Destinos especiais LOG, MARK, REJECT, TOS, MIRROR, SNAT, DNAT, MASQUERADE e REDIRECT s Opções do destino LOG --log-level nível (veja syslog.conf) --log-prefix prefixo (até 29 caracteres) --log-tcp-sequence --log-tcp-options --log-ip-options (C) 2011 HMarx 82 / 98
  • 83. iptables s Opções do destino MARK --set-mark marca s Opções do destino REJECT --reject-with tipo ð O tipo pode ser: ð icmp-net-unreachable echo-reply ð icmp-host-unreachable tcp-reset ð icmp-port-unreachable ð icmp-proto-unreachable ð icmp-net-prohibited icmp-host-prohibited s Opções do destino TOS --set-tos tos (veja iptables -j TOS -h) (C) 2011 HMarx 83 / 98
  • 84. iptables s Especificações --state state { [, state ] }* s Especifica o(s) estado(s) da conexão ao(s) qual(is) o pacote está associado Estados: INVALID - conexão inválida ESTABLISHED - conexão já estabelecida NEW - nova conexão RELATED - nova conexão associada a uma já existente (ex: FTP) (C) 2011 HMarx 84 / 98
  • 85. iptables s Especificações --ttl ttl Especifica o TTL do pacote --ttl-set ttl Estabelece novo TTL do pacote --ttl-dec ttl Decrementa o TTL do pacote --ttl-inc ttl Incrementa o TTL do pacote TTL = Time to live F Somente é válido para a tabela mangle ! (C) 2011 HMarx 85 / 98
  • 86. iptables s Especificações s Opções do destino SNAT --to-source endereço [- endereço ] [ :porto [- porto ]] s Opções do destino DNAT --to-destination endereço [-endereço ] [ :porto [ - porto ]] s Opções dos destinos MASQUERADE ou REDIRECT --to-ports porto [ - porto ] (C) 2011 HMarx 86 / 98
  • 87. Exemplos s Tabelas sem regras # iptables -L -n Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) r target prot opt source destination # (C) 2011 HMarx 87 / 98
  • 88. Cadeia com algumas regras # iptables -L PREROUTING -t nat -n Chain PREROUTING (policy ACCEPT) target prot opt source destination DNAT tcp -- 0.0.0.0/0 201.17.146.157 tcp dpt:2222 to:192.168.200.41:22 DNAT tcp -- 0.0.0.0/0 201.17.146.157 tcp dpt:21211 to:192.168.200.190:22 DNAT tcp -- 0.0.0.0/0 201.17.146.157 tcp dpt:2227 to:192.168.200.7:22 DNAT tcp -- 0.0.0.0/0 201.17.146.157 tcp dpt:59023 to:192.168.200.5:23 DNAT tcp -- 0.0.0.0/ 192.168.200.3 tcp dpt:59023 to:192.168.200.5:23 DNAT tcp -- 0.0.0.0/0 201.17.146.157 tcp dpt:59021 to:192.168.200.5:21 DNAT tcp -- 0.0.0.0/0 192.168.200.3 tcp dpt:59021 to:192.168.200.5:21 DNAT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:11113 to:192.168.200.190:11113 r DNAT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:11113 to:192.168.200.200:11113 # (C) 2011 HMarx 88 / 98
  • 89. VPN s Virtual Private Network § § autenticação e criptografia IPsec - IP security Ä /etc/ipsec.conf e /etc/ipsec.secrets Modelo de conexão VPN tunel seguro § ð SSL,formasSSH, PPTP, tunnel SSH, ... Outras PPP + (C) 2011 HMarx 89 / 98
  • 90. Logs s Registro de ocorrências § § evento e instante kernel, serviços e aplicativos s Acompanhamento § § dmesg (kernel) /var/log/* e /var/log/serviço/* s Monitoramento e análise § § tail § monit, mon, nagios, ... emails p/ o root (C) 2011 HMarx 90 / 98
  • 91. Logs do firewall Mar 27 11:48:18 thor kernel: SFW2-INext-ACC-TCP IN=eth0 OUT= MAC=00:00:e8:4d:4f:a7:00:13:5f:05:67:05:08:00 SRC=87.176.79.74 DST=201.17.146.157 LEN=48 TOS=0x00 PREC=0x00 TTL=112 ID=20424 DF PROTO=TCP SPT=1283 DPT=25 WINDOW=16384 RES=0x00 SYN URGP=0 OPT (020404EC01010402) Mar 27 11:58:22 thor kernel: SFW2-INext-DROP-DEFLT IN=eth0 OUT= MAC=00:00:e8:4d:4f:a7:00:13:5f:05:67:05:08:00 SRC=187.115.202.240 DST=201.17.146.157 LEN=76 TOS=0x00 PREC=0x00 TTL=58 ID=23151 DF PROTO=UDP SPT=16117 DPT=123 LEN=56 Mar 27 13:03:57 thor kernel: BAD IP IN=eth0 OUT= MAC=00:00:e8:4d:4f:a7:00:13:5f:05:67:05:08:00 SRC=119.200.73.225 DST=201.17.146.157 LEN=48 TOS=0x00 PREC=0x00 TTL=104 ID=31668 DF PROTO=TCP SPT=2510 DPT=25 WINDOW=65535 RES=0x00 SYN URGP=0 Mar 27 15:37:14 thor kernel: SFW2-FWDint-DROP-DEFLT-INV IN=eth1 OUT=eth0 SRC=192.168.200.41 DST=186.193.48.241 LEN=120 TOS=0x00 PREC=0x00 TTL=63 ID=30632 DF PROTO=TCP SPT=47851 DPT=15354 WINDOW=92 RES=0x00 ACK PSH FIN URGP=0 OPT (0101080A039FB0BA00000000) (C) 2011 HMarx 91 / 98
  • 92. Log de sessões e tentativas Jan 29 05:18:53 thor sshd[5032]: Invalid user testuser from 213.232.110.135 Feb 3 13:01:06 thor sshd[11171]: reverse mapping checking getaddrinfo for 18983144228.user.veloxzone.com.br [189.83.144.228] failed - POSSIBLE BREAK-IN ATTEMPT! Mar 4 13:37:51 thor sshd[31452]: Accepted keyboard-interactive/pam for hmarx from 186.213.97.125 port 44418 ssh2 Mar 7 19:17:11 thor sshd[10687]: User walter from (null) not allowed because none of user’s groups are listed in AllowGroups Mar 8 12:17:58 thor sshd[26745]: Failed password for invalid user denied from ::ffff:121.83.254.19 port 60428 ssh2 Mar 9 07:53:31 thor sshd[29212]: Invalid user zorro from ::ffff:78.153.209.71 Mar 9 08:17:19 thor login[29821]: FAILED LOGIN 1 FROM /dev/tty1 FOR hmarx, Authentication failure (C) 2011 HMarx 92 / 98
  • 93. Logs de e-mails Mar 24 17:07:27 thor sendmail[20124]: p2OK7JCw020124: from=<goncalves@fgr.org.br>, size=269275, class=0, nrcpts=1, msgid=<F4B8E6386F9B4A8EB2CD1D8A5DCB7C3A@paraiba.org.br>, proto=ESMTP, daemon=MTA, relay=nsa33.globalconn.net [74.52.81.66] Mar 24 17:08:27 thor sendmail[20124]: p2OK7JCw020124: Milter change (add): header: X-Virus-Scanned: by amavisd-new Mar 24 17:08:28 thor sendmail[20172]: p2OK7JCw020124: to=<hmarx@linuxtech.com.br>, delay=00:01:05, xdelay=00:00:00, mailer=local, pri=299525, dsn=2.0.0, stat=Sent Mar 19 22:04:39 thor popper[23507]: Stats: hmarx 2 29503 0 0 venus.starix.br 192.168.200.41 [pop_updt.c:296] Mar 19 21:33:00 thor popper[16281]: prudencia at server.museuimperial.art.br (173.199.129.199): -ERR [AUTH] Password supplied for "prudencia" is incorrect. [pop_pass.c:1295] Mar 19 21:56:43 thor popper[23154]: [AUTH] Failed attempted login to renato from host (server.museuimperial.art.br) 173.199.129.199 [pop_pass.c:1383] (C) 2011 HMarx 93 / 98
  • 94. Sumário das ferramentas s Sessões, conexões e transações segura § ssh, scp, sftp § VPN § https § certificados digitais § pgp s § password aging Limitando privilégios locais § ulimit § inetd c/ tcpd ou xinetd § processos chrooted § quota em sistemas de arquivos § permissões de objetos (chmod) § ACLs (C) 2011 HMarx 94 / 98
  • 95. Ferramentas para gerenciamento s Monitoração de tráfego de rede § iptraf § tcpdump § snort § ethereal / wireshark § SNMP s § who, w, rwho - usuários com sessões abertas Monitoração de atividades no servidor § ps, pstree § lsof, fuser - processos em execução § netstat - arquivos e sockets abertos § nmap - conexões potenciais e ativas § rpcinfo - serviços acessíveis (portos abertos) § w, top, free, df, du - uso de CPU, memória e disco - processos RPC (C) 2011 HMarx 95 / 98
  • 96. Conclusões § ð Configuração dos serviços Planejamento § ð usuários e root Confiança Ä ! Senhas fortes F § Troca periódica Software Livre é seguro (C) 2011 HMarx 96 / 98
  • 97. Dúvidas ? Curiosidades (C) 2011 HMarx 97 / 98
  • 98. Obrigado ! Hélio Marques Sobrinho hmarx@linuxtech.com.br (C) 2011 HMarx 98 / 98