BEM-VINDO À DISCIPLINA DE:
Segurança Linux




                      Prof: Cássio Alexandre Ramos
                      cassioaramos (at) gmail (dot) com
                      http://cassioaramos.blogspot.com
                      http://www.facebook.com/cassioaramos

                                     Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Segurança	
  Linux
                                     	
  
•  Introdução	
  
•  Hardening	
  de	
  SO	
  
•  Hardening	
  de	
  Rede	
  
•  Tunning	
  de	
  Kernel	
  
•  Criptografia	
  
•  Hardening	
  de	
  Serviços	
  –	
  FTP	
  e	
  SSH	
  

                                                  Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Introdução	
  
•  Hardening	
  
    –  Endurecimento	
  
    –  Fortalecimento	
  

•  Tipos	
  
    –  S.O	
  
    –  AplicaHvos	
  



                                     Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  SO	
  
•  Instalação	
  
   –  UHlizar	
  distribuição	
  “Confiável”,	
  com	
  atualizações	
  
      regulares,	
  bom	
  suporte	
  a	
  disposiHvos,	
  possibilidade	
  de	
  
      suporte	
  técnico	
  etc	
  
   –  Reduzir	
  o	
  número	
  de	
  pacotes	
  ao	
  estritamente	
  necessário	
  
   –  ParHcionamento	
  de	
  disco	
  
        •  Diminui	
  tempo	
  de	
  acesso	
  ao	
  dado	
  
        •  ParHção	
  separada	
  para	
  o	
  sistema,	
  facilita	
  recuperação	
  de	
  
           desastres,	
  reinstalação	
  etc	
  
        •  Evita	
  a	
  parada	
  do	
  sistema	
  (parHção	
  /	
  cheia)	
  
        •  Segurança	
  extra	
  contra	
  o	
  consumo	
  e	
  disco	
  
        •  Isolar	
  parHção	
  /tmp	
  e	
  usar	
  atributos	
  nosuid	
  e	
  noexec	
  
                                                                   Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  SO	
  
•  ParHcionamento	
  de	
  disco	
  
   –  hYp://www.vivaolinux.com.br/arHgos/impressora.php?
      codigo=5116	
  




                                         Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  SO	
  
•  Verificação	
  de	
  pacotes	
  instalados	
  no	
  Sistema	
  
   –  dpkg	
  -­‐l	
  
   –  dpkg	
  -­‐l	
  |	
  awk	
  '{print	
  $2,$3}'	
  |	
  sed	
  '1,5d'	
  >	
  /root/
      aula_linux/pacotes.txt	
  
        •  segunda	
  e	
  terceira	
  coluna	
  ($2,$3)	
  -­‐	
  nomes	
  dos	
  programas	
  e	
  suas	
  
           versões.	
  	
  
        •  sed	
  remove	
  5	
  primeiras	
  linhas	
  -­‐	
  info	
  não	
  relevantes.	
  Direciona	
  o	
  
           resultado	
  para	
  o	
  arquivo	
  pacotes.txt	
  dentro	
  de	
  /root/aula_linux.	
  

•  Desinstalação	
  de	
  pacotes	
  
   –  apHtude	
  purge	
  wget	
  

                                                                        Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  SO	
  
•  Permissão	
  Suid	
  
   –  Suid	
  Bit	
  (4):	
  Quando	
  setada,	
  permite	
  que	
  qualquer	
  usuário	
  
      execute	
  determinado	
  binário	
  ou	
  programa,	
  como	
  se	
  fosse	
  
      o	
  usuário	
  dono	
  
   –  Sgid	
  Bit	
  (2):	
  Quando	
  setada,	
  permite	
  manter	
  padrões	
  de	
  
      criação	
  de	
  arquivos	
  e	
  diretórios,	
  possibilitando	
  que	
  
      qualquer	
  arquivo	
  ou	
  diretório	
  criado	
  assuma	
  o	
  grupo	
  dono	
  
      do	
  diretório	
  pai	
  como	
  grupo	
  padrão.	
  
   –  SHcky	
  Bit	
  (1):	
  Quando	
  setada,	
  impede	
  que	
  um	
  usuário	
  
      apague	
  o	
  arquivo	
  ou	
  diretório	
  do	
  outro,	
  mesmo	
  que	
  o	
  
      diretório	
  pai	
  tenha	
  permissões	
  que	
  permitam	
  a	
  exclusão.	
  

                                                          Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  SO	
  
•  Permissão	
  Suid	
  
   –  Encontrar	
  arquivos	
  com	
  permissão	
  
       •  find	
  /	
  -­‐perm	
  -­‐4000	
  >	
  /root/aula_linux/suid.txt	
  
   –  Remover	
  permissão	
  
       •  chmod	
  -­‐s	
  <caminho-­‐aquivo>	
  




                                                          Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  SO	
  
•  Sugestão	
  




                                      Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  SO	
  
•  Lab	
  –	
  Permissão	
  Suid	
  
    –  Como	
  root	
  
    #cp	
  /bin/*sh*	
  /tmp	
  	
  	
  ##	
  /tmp	
  em	
  parHção	
  separada	
  
    #chmod	
  4755	
  /tmp/*sh*	
  
    –  Como	
  usuário	
  comum	
  (em	
  outro	
  terminal)	
  
    $	
  cd	
  /tmp	
  
    $	
  ./sh	
  
    #	
  whoami	
  
    #	
  exit	
  
    	
                                                    Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  SO	
  
•  Lab	
  –	
  Permissão	
  Suid	
  
    –  Resolvendo	
  o	
  problema	
  
    #	
  mount	
  -­‐o	
  remount,rw,nosuid	
  /tmp	
  
    –  RepeHr	
  procedimento	
  como	
  usuário	
  comum	
  
    $	
  cd	
  /tmp	
  
    $	
  ./sh	
  
    $	
  whoami	
  
    $	
  exit	
  

                                            Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  SO	
  
•  chaYr	
  e	
  lsaYr	
  
    –  Comandos	
  servem	
  para	
  incrementar	
  segurança	
  
       em	
  arquivos	
  
    –  Usa	
  atributos	
  e	
  não	
  permissões	
  
    –  hYp://www.vivaolinux.com.br/dicas/impressora.php?codigo=11152	
  
    #	
  chaYr	
  +ia	
  arquivo	
  
    #	
  rm	
  –rf	
  arquivo	
  
    #	
  lsaYr	
  arquivo	
  
    	
  

                                                Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  SO	
  
•  Permissões	
  de	
  Arquivos	
  e	
  DiretóHos	
  
   –  Leitura	
  (r)	
  
   –  Escrita	
  (w)	
  
   –  Execução	
  (x)	
  

ubuntu$ ls -l passwd shadow	
  
-rw-r--r-- 1 root root   5244 Jan 26 10:24
passwd 	
  
-rw-r----- 1 root shadow 5244 Jan 26 10:24
shadow	
  

                                           Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  SO	
  
•  Usuários	
  e	
  Grupos	
  
   –  Useradd,	
  userdel,	
  usermod,	
  passwd,	
  
      groupadd,groupdel,	
  groupmod	
  
   –  #	
  groupadd	
  adm-­‐teste	
  
   #	
  adduser	
  user1;	
  adduser	
  user1	
  adm-­‐teste	
  
   #	
  adduser	
  user2;	
  adduser	
  user2	
  adm-­‐teste	
  
   #	
  mkdir	
  comparHlhado	
  
   #	
  chown	
  root:adm-­‐teste	
  comparHlhado	
  	
  
   #	
  chmod	
  750	
  comparHlhado	
  


                                                          Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  SO	
  
•  Desabilitando	
  “ctrl+alt+del”	
  
   –  /etc/iniYab	
  
   #ca:12345:ctrlaltdel:/sbin/shutdown	
  -­‐t1	
  -­‐a	
  -­‐r	
  now	
  
   ca:12345:ctrlaltdel:/bin/echo	
  ”Recurso	
  desabilitado”	
  
   #	
  init	
  q	
  	
  	
  	
  	
  	
  ###	
  atualiza	
  o	
  iniYab	
  
•  Default	
  runlevel	
  
   –  /etc/iniYab	
  
   #	
  The	
  default	
  runlevel.	
  
   id:2:initdefault:	
  

                                                                              Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  SO	
  
•  Bloqueio	
  de	
  Terminal	
  
   –  Administrador	
  sai	
  da	
  sessão	
  sem	
  logout	
  
       •  configurar	
  a	
  variável	
  chamada	
  "TMOUT"	
  com	
  
          um	
  tempo	
  (em	
  segundos	
  
       Manual	
  –	
  TMOUT=10	
  
       No	
  login	
  (vi	
  /etc/profile)	
  -­‐	
  TMOUT=10	
  
       Por	
  usuário	
  -­‐	
  Configurar	
  variável	
  no	
  .bashrc	
  



                                                        Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  SO	
  
•  Bloqueio	
  de	
  Console	
  para	
  o	
  root	
  
    –  Impede	
  que	
  o	
  root	
  faça	
  login	
  nos	
  terminais	
  Yy1	
  a	
  
       Yy6	
  (vinculado	
  ao	
  PAM)	
  
    –  /etc/secureYy	
  
    #Yy1	
  
    #Yy2	
  
    #Yy3	
  
    #Yy4	
  
    #Yy5	
  
    #Yy6	
  
                                                        Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  SO	
  
•  PAM	
  –	
  Módulos	
  de	
  autenHcação	
  Plugáveis	
  
   –  trazer	
  novas	
  funcionalidades	
  para	
  um	
  programa	
  
   –  Ex.	
  Login.	
  A	
  função	
  dele	
  é	
  somente	
  checar	
  usuário	
  
      e	
  senha,	
  verificar	
  se	
  estão	
  cadastrados	
  no	
  sistema	
  
       •  E	
  se	
  desejarmos	
  que,	
  para	
  o	
  login	
  de	
  um	
  usuário,além	
  
          da	
  senha	
  seja	
  checado	
  se	
  naquele	
  dia	
  e	
  horário	
  ele	
  
          pode	
  logar	
  
       •  definir	
  somente	
  alguns	
  grupos	
  que	
  podem	
  fazer	
  su	
  




                                                            Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  SO	
  
•  PAM	
  –	
  Módulos	
  de	
  autenHcação	
  Plugáveis	
  
   –  Módulos	
  podem	
  ser	
  usados	
  para	
  qualquer	
  
        aplicação	
  com	
  suporte	
  a	
  PAM	
  
   root@debian:/#	
  ldd	
  /bin/login	
  
   linux-­‐gate.so.1	
  =>	
  	
  (0xb7745000)	
  
   libpam.so.0	
  =>	
  /lib/libpam.so.0	
  (0xb7728000)	
  
   libpam_misc.so.0	
  =>	
  /lib/libpam_misc.so.0	
  
   (0xb7725000)	
  
   libc.so.6	
  =>	
  /lib/i686/cmov/libc.so.6	
  (0xb75de000)	
  
   	
                                               Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  SO	
  
•  PAM	
  –	
  Módulos	
  disponíveis	
  
   #	
  ls	
  –l	
  /lib/security	
  
•  PAM	
  –	
  arquivos	
  de	
  configuração	
  
   #	
  ls	
  –l	
  /etc/pam.d	
  
   	
  




                                            Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  SO	
  
•  PAM	
  –	
  UHlização	
  
   –  <Hpos	
  de	
  módulo>	
  <controle>	
  <módulo>	
  <argumentos	
  do	
  módulo>	
  

•  Módulos	
  
   –  Account	
  
   –  Auth	
  
   –  Password	
  
   –  Session	
  



                                                            Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  SO	
  
•  PAM	
  –	
  UHlização	
  
   –  <Hpos	
  de	
  módulo>	
  <controle>	
  <módulo>	
  <argumentos	
  do	
  módulo>	
  

•  Controle	
  
   –  Required	
  
   –  Requisite	
  
   –  Sufficient	
  
   –  OpHonal	
  



                                                            Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  SO	
  
•  PAM	
  –	
  Limitar	
  horários	
  de	
  login	
  
    –  AHvar	
  módulo	
  na	
  aplicação	
  
    #	
  vim	
  /etc/pam.d/login	
  
    account 	
  requisite 	
  pam_Hme.so	
  




                                                 Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  SO	
  
•  PAM	
  –	
  Limitar	
  horários	
  de	
  login	
  
    #	
  vi	
  /etc/security/Hme.conf	
  
    –  login;*;usuario;Al0800-­‐1800	
  	
  
    –  login;*;usuario;!SaSu0000-­‐240	
  
        •  login:	
  É	
  o	
  nome	
  do	
  serviço	
  onde	
  o	
  pam_Hme.so	
  está	
  
           aHvado	
  
        •  *:	
  Indica	
  os	
  terminais	
  texto	
  (Yy)	
  onde	
  a	
  políHca	
  será	
  
           aplicada.	
  Nesse	
  caso	
  são	
  todos	
  os	
  terminais	
  
        •  Usuário	
  –	
  usuário	
  onde	
  a	
  políHca	
  será	
  aplicada	
  


                                                               Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  SO	
  
•  PAM	
  –	
  Limitar	
  horários	
  de	
  login	
  
    #	
  vi	
  /etc/security/Hme.conf	
  
    –  login;*;usuario;Al0800-­‐1800	
  	
  
    –  login;*;usuario;!SaSu0000-­‐240	
  
        •  Al0800-­‐1800:	
  Indica	
  os	
  dias	
  que	
  o	
  usuário	
  poderá	
  logar.	
  
           Todos	
  os	
  dias	
  (Al)	
  das	
  8	
  às	
  18	
  horas	
  (0800-­‐1800)	
  
        •  !SaSu0000-­‐2400:	
  todos	
  os	
  dias	
  com	
  exceção	
  (!)	
  dos	
  
           sábados	
  e	
  domingos	
  (SaSu)	
  o	
  dia	
  inteiro	
  (0000-­‐2400)	
  



                                                             Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  SO	
  
•  PAM	
  –	
  Limitar	
  logins	
  consecuHvos	
  
   #	
  vi	
  /pam.d/login	
  
   Session	
  	
   	
  required 	
  pam_limits.so	
  
   #	
  vi	
  /etc/security/limits.conf	
  
   usuario	
   	
  hard 	
  	
  maxlogins 	
  	
  2	
  




                                                  Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  SO	
  
•  PAM	
  –	
  Limitar	
  su	
  
    #	
  groupadd	
  adm-­‐teste	
  
    #	
  adduser	
  cassio	
  adm-­‐teste	
  
    #	
  passwd	
  cassio	
  
    #	
  vi	
  /pam.d/su	
  
    auth	
  required 	
  pam_wheel.so	
  	
  group=adm-­‐teste	
  
•  Habilitar	
  log	
  
    #	
  vim	
  /etc/login.defs	
  	
  
    SULOG_FILE 	
  /var/log/sulog	
  
                                             Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  SO	
  
•  PAM	
  –	
  segurança	
  de	
  senhas	
  
   #	
  apHtude	
  install	
  libpam-­‐cracklib	
  
   #	
  vim	
  /etc/pam.d/common-­‐password	
  
   Comentar	
  
   #	
  password 	
  required	
  pam_unix.sonullok	
  obscure	
  min=4	
  max=8	
  md5	
  
   Descomentar	
  
   password	
  required 	
  pam_cracklib.so	
  retry=3	
  minlen=8	
  difok=3	
  
   password	
  required 	
  pam_unix.so	
  use_authok	
  nullok	
  md5	
  
   	
  
   retry=3	
  (tentaHvas	
  de	
  mudança	
  de	
  senha),	
  minlen=8	
  (no	
  mínimo	
  8	
  
   caracteres)	
  difok=3:	
  (diferença	
  de	
  pelo	
  menos	
  3	
  letras	
  da	
  anHga)	
  
                                                                     Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  SO	
  
•  Verificar	
  senhas	
  fracas	
  
   #	
  apHtude	
  install	
  john	
  
   #	
  cd	
  /usr/share/john	
  
   #	
  cat	
  password.lst	
  (arquivo	
  de	
  senhas)	
  
   #	
  cp	
  /etc/shadow	
  /root/senhas	
  
•  UHlização	
  
   #	
  ./john	
  /root/senhas	
  (ou)	
  
   #	
  john	
  -­‐-­‐wordlist:/root/meu_dicionario	
  /root/
   senhas	
  
   	
  
                                                   Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  SO	
  
•  Segurança	
  Física	
  -­‐	
  Gerenciador	
  de	
  boot	
  
    –  No	
  prompt	
  do	
  grub,	
  e	
  (edit)	
  
    Subs0tuir	
  
    “ro	
  quiet”	
  
    Por	
  	
  
    “rw	
  init=/bin/bash”	
  
    Para	
  reiniciar	
  
    contrl	
  +	
  x	
  

                                                        Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  SO	
  
•  Gerenciador	
  de	
  boot	
  –	
  Correção	
  
   h4p://ubuntuforum-­‐br.org/index.php?topic=65572.0	
  
   –  Editar	
  o	
  arquivo	
  /etc/grub.d/00_header	
  e	
  colocar	
  
        no	
  final	
  do	
  mesmo	
  
   cat	
  <<	
  EOF	
  
   set	
  superusers="user1"	
  
   password	
  user1	
  password1	
  
   EOF	
  
   Após	
  isso,	
  para	
  gerar	
  novo	
  /boot/grub/grub.cfg	
  	
  
   #	
  update-­‐grub	
  
   	
                                              Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  SO	
  
•  Gerenciador	
  de	
  boot	
  –	
  	
  com	
  senha	
  cripto	
  
    #	
  grub-­‐mkpasswd-­‐pbkdf2	
  (gera	
  hash	
  da	
  senha)	
  
    –  Editar	
  o	
  arquivo	
  /etc/grub.d/00_header	
  e	
  colocar	
  
         no	
  final	
  do	
  mesmo	
  
    cat	
  <<	
  EOF	
  
    set	
  superusers="user1"	
  
    password_pbkdf2	
  user1	
  grub.pbkdf2.sha512.10000.long_number	
  
    EOF	
  
    Após	
  isso,	
  para	
  gerar	
  novo	
  /boot/grub/grub.cfg	
  	
  
    #	
  update-­‐grub	
  
                                                 Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
    	
  
Hardening	
  de	
  SO	
  
•  Segurança	
  Física	
  -­‐	
  Boot	
  por	
  DVD/pendrive	
  
   Dar	
  o	
  boot	
  pelo	
  DVD	
  
   #	
  fdisk	
  -­‐l	
  (para	
  ver	
  aonde	
  esta	
  o	
  raíz)	
  
   #	
  mkdir	
  /media/teste	
  
   #	
  mount	
  /dev/sda1	
  /media/teste	
  
   #	
  chroot	
  /media/teste	
  
   basta	
  trocar	
  a	
  senha	
  
   #	
  passwd	
  	
  

                                                                 Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  SO	
  
•  SUDO	
  -­‐	
  Super	
  user	
  do	
  
     –  Arq	
  Configuração	
  -­‐	
  /etc/sudoers	
  (visudo)	
  
     –  %admin	
  ALL=(ALL)NOPASSWD	
  /usr/bin/apt-­‐get	
  
         •  %admin	
  –	
  grupo	
  admin	
  
         •  ALL=	
  -­‐	
  qualquer	
  host/IP	
  	
  
         •  (ALL)	
  –	
  qualquer	
  usuário	
  
         •  NOPASSWD	
  –	
  sem	
  senha	
  
         •  :/usr/bin/apt-­‐get	
  –	
  comando	
  
•  %admin	
  ALL=(ALL)	
  ALL	
  	
  	
  
•  Lab	
  Ubuntu	
  (Log	
  -­‐	
  /var/log/auth.log)	
  
•  hYp://ubuntuforums.org/showthread.php?t=1132821	
  
                                                    Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  SO	
  

                 Segurança do Login

# vim /etc/login.defs
LOGIN_RETRIES: Definição do número de tentativas de login
LOGIN_TIMEOUT: Tempo de espera para nova tentativa de login, caso
tenha errado senha/user
PASS_MIN_LEN: Tamanho da senha, minimo por padrão é 5.
LOG_UNKFAIL_ENAB: Grava no arquivo de log /var/log/faillog os
usuários desconhecidos que tentarem se logar sem sucessso
LOG_OK_LOGINS: Ativa log dos logins com sucesso




                                          Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  SO	
  

  Password Aging




                   Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  SO	
  
                          Password	
  Aging	
  
	
   Quando uma conta e criada no linux os seguintes campos são passados
     ao arquivo /etc/shadow:




                                                  Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  SO	
  
•  Contas	
  
   –  Data	
  de	
  expiração	
  
   –  Chage	
  
       •  Modifica	
  os	
  parametros	
  de	
  /etc/shadow	
  
      	
  #	
  chage	
  –l	
  usuário	
  
      	
  #	
  chage	
  -­‐E	
  AAAA-­‐MM-­‐DD	
  usuario	
  
      	
  #	
  chage	
  -­‐M	
  30	
  -­‐W	
  5	
  -­‐I	
  2	
  usuario	
  
      	
  M	
  -­‐	
  Tempo	
  máximo	
  de	
  validade	
  da	
  conta	
  
       	
  W	
  -­‐	
  Tempo	
  de	
  aviso	
  
       	
  I	
  -­‐	
  Tempo	
  antes	
  da	
  conta	
  ser	
  desaHvada	
  
                                                                               Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  SO	
  
      Desabilite todas as contas especiais
apagar usuários padrões e contas de grupo que você
 não utilize em seu sistema como: lp, news, uucp,
            operator, games, gopher etc

       Para apagar uma conta de usuário:
             [root@bt /]# userdel LP

             Para apagar um grupo:
             [root@bt /]# groupdel LP

                                   Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  Rede	
  
•  Verificar	
  serviços	
  aHvos	
  TCP	
  
   root@debian:/#	
  netstat	
  -­‐natp	
  
   Conexões	
  Internet	
  AHvas	
  (servidores	
  e	
  estabelecidas)	
  
   Proto	
  Recv-­‐Q	
  Send-­‐Q	
  Endereço	
  Local	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Endereço	
  Remoto	
  	
  	
  	
  	
  	
  	
  	
  	
  Estado	
  	
  	
  
   PID/Program	
  name	
  
   tcp	
  	
  	
  	
  	
  	
  	
  	
  0	
  	
  	
  	
  	
  	
  0	
  0.0.0.0:22	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  0.0.0.0:*	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  OUÇA	
  	
  	
  	
  	
  	
  	
  1439/sshd	
  	
  	
  	
  	
  	
  	
  	
  
   tcp	
  	
  	
  	
  	
  	
  	
  	
  0	
  	
  	
  	
  	
  	
  0	
  127.0.0.1:631	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  0.0.0.0:*	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  OUÇA	
  	
  	
  	
  	
  	
  	
  1770/cupsd	
  	
  
   tcp6	
  	
  	
  	
  	
  	
  	
  0	
  	
  	
  	
  	
  	
  0	
  :::22	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  :::*	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  OUÇA	
  	
  	
  	
  	
  	
  	
  1439/sshd	
  	
  	
  	
  	
  	
  	
  	
  
   tcp6	
  	
  	
  	
  	
  	
  	
  0	
  	
  	
  	
  	
  	
  0	
  ::1:631	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  :::*	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  OUÇA	
  	
  	
  	
  	
  	
  	
  1770/cupsd	
  	
  	
  	
  	
  	
  	
  
   tcp6	
  	
  	
  	
  	
  	
  	
  0	
  	
  	
  	
  	
  	
  0	
  :::80	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  :::*	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  OUÇA	
  	
  	
  	
  	
  	
  	
  1210/apache2	
  




                                                                                                                                                                                                Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  Rede	
  
•  Verificar	
  serviços	
  aHvos	
  UDP	
  
   root@debian:/#	
  netstat	
  -­‐naup	
  
   Conexões	
  Internet	
  AHvas	
  (servidores	
  e	
  estabelecidas)	
  
   Proto	
  Recv-­‐Q	
  Send-­‐Q	
  Endereço	
  Local	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Endereço	
  Remoto	
  	
  	
  	
  	
  	
  	
  	
  	
  Estado	
  	
  	
  
   PID/Program	
  name	
  
   udp	
  	
  	
  	
  	
  	
  	
  	
  0	
  	
  	
  	
  	
  	
  0	
  0.0.0.0:631	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  0.0.0.0:*	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  1770/cupsd	
  	
  	
  	
  	
  	
  	
  
   udp	
  	
  	
  	
  	
  	
  	
  	
  0	
  	
  	
  	
  	
  	
  0	
  0.0.0.0:514	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  0.0.0.0:*	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  1118/rsyslogd	
  	
  	
  	
  




                                                                                                                                                                                     Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  Rede	
  
•  Verificar	
  serviços	
  aHvos	
  
   –  Instalar	
  nmap	
  –	
  network	
  mapper	
  
   #	
  apHtude	
  install	
  nmap	
  
   #	
  nmap	
  192.168.200.X	
  
   #	
  nmap	
  -­‐sU	
  192.168.200.X	
  
   #	
  nmap	
  -­‐sV	
  -­‐p	
  1-­‐100	
  192.168.200.X	
  
   #	
  nmap	
  -­‐O	
  192.168.200.X	
  
   	
  

                                                         Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  Rede	
  
•  DesaHvar	
  Serviços	
  desnecessários	
  
    #	
  update-­‐rc.d	
  -­‐f	
  portmap	
  remove	
  	
  
    #	
  update-­‐rc.d	
  -­‐f	
  exim4	
  remove	
  	
  
    #	
  netstat	
  –natpu	
  
•  rcconf	
  
    #	
  apt-­‐get	
  install	
  rcconf	
  




                                                         Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  Rede	
  
•  TCP	
  Wrappers	
  




                                   Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  Rede	
  
•  TCP	
  Wrappers	
  




                                   Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  Rede	
  
•  TCP	
  Wrappers	
  
   –  Usado	
  para	
  autorizar	
  ou	
  negar	
  acesso	
  a	
  serviços	
  
      controlados	
  pelo	
  wrapper	
  
        root@ubuntu:˜#	
  ldd	
  /usr/sbin/sshd	
  |	
  grep	
  libwrap	
  
        libwrap.so.0	
  =>	
  /lib/libwrap.so.0	
  (0x009b9000)	
  
        root@ubuntu:~#	
  strings	
  -­‐f	
  /usr/sbin/sshd	
  |	
  grep	
  hosts_access	
  
        /usr/sbin/sshd:	
  hosts_access	
  
   –  A	
  configuração	
  dos	
  serviços	
  com	
  TCP	
  wrappers	
  deve	
  ser	
  
      efetuada	
  através	
  dos	
  seguinte	
  arquivos	
  	
  
        •  /etc/hosts.allow	
  
        •  /etc/hosts.deny	
  


                                                                Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  de	
  Rede	
  
•  TCP	
  Wrappers	
  
   –  Sintaxe	
  
   daemon	
  :	
  cliente	
  [:opção1:opção2:...]	
  
   vsŒpd	
  :	
  192.168.1.	
  ,	
  .abc.com.in	
  :	
  spawn	
  /bin/echo	
  ‘/bin/date’	
  dennied	
  >>	
  /var/log/vsŒp.log	
  
                                                                                                                               	
  
   (/etc/hosts.deny)	
  

   –  Lab	
  –	
  servidor	
  ubuntu,	
  cliente	
  BT	
  novo	
  
          •  log	
  /var/log/auth.log	
  
   –  hYp://segurancalinux.com/arHgos/
      impressora.php?codigo=10311	
  


                                                                                   Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Criptografia	
  
•  Tipos	
  
    –  De	
  SO	
  
    –  De	
  ParHção	
  	
  
    –  De	
  arquivos	
  e	
  pastas	
  
        •  Criptografia	
  	
  
        •  Assinatura	
  digital	
  




                                           Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Criptografia	
  
•  Openssl	
  
   –  Criptografar	
  
       #	
  openssl	
  enc	
  -­‐e	
  -­‐aes256	
  -­‐in	
  arq1.txt	
  -­‐out	
  arq1_cripto.txt	
  
   –  Decriptografar	
  
       #	
  openssl	
  enc	
  -­‐aes256	
  –d	
  -­‐in	
  arq1_cripto.txt	
  -­‐out	
  arq1.txt	
  




                                                                Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Criptografia	
  
•  Openssl	
  –	
  script	
  para	
  criptografar	
  (ext	
  .enc)	
  
    #!/bin/bash	
  	
  
    if	
  [	
  $#	
  -­‐lt	
  1	
  ]	
  	
  
               	
  then	
  
               	
                 	
  echo	
  "UHlização:	
  $0	
  arquivo-­‐a-­‐ser-­‐criptografado”	
  
               	
                 	
  exit	
  1	
  	
  
    fi	
  	
  
    openssl	
  enc	
  -­‐e	
  -­‐aes256	
  -­‐in	
  "$1"	
  -­‐out	
  "$1".enc	
  
    	
  
    U0lizaçao:	
  ./script	
  	
  	
  arq_a_ser_cripto	
  

                                                                    Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Criptografia	
  
•  Openssl	
  –	
  script	
  para	
  decriptografar	
  
   #!/bin/bash	
  	
  
   if	
  [	
  $#	
  -­‐lt	
  2	
  ]	
  	
  
               	
  then	
  
               	
                           	
  echo	
  "UHlização:	
  $0	
  novo-­‐nome-­‐do-­‐arquivo-­‐criptografado”	
  
               	
                           	
  exit	
  1	
  	
  
   fi	
  	
  
   openssl	
  enc	
  -­‐d	
  -­‐aes256	
  -­‐in	
  "$1"	
  -­‐out	
  ”$2”	
  
   	
  
   U0lizaçao:	
  ./script	
  	
  	
  arq_cripto	
  	
  	
  novo_nome_de_arquivo	
  
   	
  


                                                                                Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Criptografia	
  EncFs
                                        	
  
•  #	
  apt-­‐get	
  install	
  encfs	
  fuse-­‐uHls	
  libfuse2	
  	
  	
  
•  #	
  adduser	
  <usuário>	
  fuse	
  	
  
•  $	
  mkdir	
  ~/.criptografado	
  ~/texto_claro	
  	
  
    –  ˜/.criptografado	
  -­‐	
  dados	
  criptografados,	
  
    –  ˜/texto_claro	
  -­‐	
  dados	
  em	
  claro	
  
•  Para	
  aHvar	
  a	
  criptografia:	
  	
  
•  $	
  encfs	
  ~/.criptografado/	
  ~/texto_claro/	
  
•  ?>p	
  
                                                       Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Criptografia	
  EncFs
                                      	
  
•  Para	
  desmontar:	
  
   $	
  fusermount	
  -­‐u	
  ~/texto_claro	
  
•  Enviar	
  para	
  host	
  remoto	
  
   $	
  rsync	
  -­‐av	
  /home/cassio/.criptografado/	
  
   cassio@172.16.49.137:/home/cassio/	
  
•  Lab	
  –	
  	
  
    –  Debian	
  e	
  Ubuntu	
  
    –  rsync	
  cliente	
  debian	
  e	
  server	
  Ubuntu	
  
•  hYp://www.vivaolinux.com.br/arHgos/impressora.php?codigo=6642	
  

                                                     Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Escondendo	
  Banner	
  




                  Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Escondendo	
  Banner	
  




http://www.vivaolinux.com.br/artigos/impressora.php?codigo=985




                                         Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Descobrindo	
  OS	
  
 Banners	
  -­‐	
  OsGuessing	
  




/proc/sys/net/ipv4/ip_default_ttl


                                    Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Kernel	
  Tuning	
  
Os parâmetros do kernel são configurados no arquivo /etc/
sysctl.conf
O comando sysctl –p ativa os parâmetros configurados neste arquivo




                                             Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Kernel	
  Tuning	
  
•  Sysctl	
  –w	
  (write)	
  grava	
  a	
  alteração	
  




                                                 Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Kernel	
  Tuning	
  


TCP SYN Cookie Protection
  Tenta evitar o SYN ATAQUE que causa uma negação
  de serviço

  net.ipv4.tcp_syncookies = 1




                                Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Kernel	
  Tuning	
  

•  Ignoring to ICMP Requests
   •  Maquinas param de responder a pacotes ICMP (ping).
   •  net.ipv4.icmp_echo_ignore_all = 1

•  Desabilita IPV6
    •  net.ipv6.conf.all.disable_ipv6 = 1




                                            Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Kernel	
  Tuning	
  


Ignoring Broadcasts Request
   Ignorar mensagens enviadas para broadcast

   net.ipv4.icmp_echo_ignore_broadcasts = 1




                                 Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
BasHlle	
  
•  AplicaHvo	
  para	
  Hardening	
  
•  Modo	
  operação	
  -­‐	
  faz	
  perguntas	
  e	
  cria	
  poliHca	
  
   baseado	
  nas	
  respostas	
  
•  Modo	
  auditoria	
  –	
  cria	
  relatório	
  HTML	
  
•  	
  SO	
  suportados	
  Debian,	
  Fedora,	
  Gentoo,	
  
   Mandriva,	
  Red	
  Hat	
  etc.	
  



                                                 Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
BasHlle	
  
•  Instalação	
  	
  
    –  apt-­‐get	
  install	
  basHlle	
  
    –  apt-­‐get	
  install	
  perl-­‐tk	
  
•  Modo	
  gráfico	
  	
  
    –  basHlle	
  –x	
  
•  Modo	
  Texto	
  
    –  BasHlle	
  –c	
  
•  hYp://www.csirt.pop-­‐mg.rnp.br/docs/
   hardening/linux.html	
  
                                                 Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  VSTPD	
  
•  Escondendo	
  Banner	
  
    Œpd_banner=Servidor	
  FTP	
  
•  Não	
  permiHndo	
  login	
  anonimo	
  
    anonymous_enable=NO	
  
•  PermiHndo	
  usuários	
  do	
  SO	
  	
  
    local_enable=YES	
  
•  PermiHndo	
  gravar	
  no	
  servidor	
  (anonimo	
  não)	
  
    write_enable=YES	
  

                                               Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  VSTPD	
  
•  Autorizando	
  usuários	
  a	
  usarem	
  o	
  servidor	
  
   userlist_deny=NO	
  
   userlist_enable=YES	
  
   userlist_file=/etc/vsŒpd.allowed_users	
  
   –  Crie	
  o	
  arquivo	
  /etc/vsŒpd.allowed_users	
  e	
  
      escreva	
  um	
  por	
  linha	
  quem	
  pode	
  usar	
  o	
  Œp	
  
•  Enjaulando	
  usuários	
  
   chroot_local_user=YES	
  


                                                      Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  VSTPD	
  
•  Habilitando	
  Œp	
  com	
  ssl	
  
     –  Criar	
  o	
  cerHficado	
  auto-­‐assinado	
  
     –  #	
  cd	
  /etc/ssl/private	
  
        #	
  /usr/bin/openssl	
  req	
  -­‐x509	
  -­‐nodes	
  -­‐days	
  365	
  -­‐
        newkey	
  rsa:1024	
  -­‐keyout	
  vsŒpd.pem	
  -­‐out	
  
        vsŒpd.pem	
  
•  Lab	
  –	
  debian	
  server	
  e	
  ubuntu	
  cliente	
  
hYp://www.cyberciH.biz/Hps/configure-­‐vsfptd-­‐secure-­‐connecHons-­‐via-­‐ssl-­‐tls.html	
  
hYp://dailson.blogspot.com/2009/11/implementando-­‐um-­‐servidor-­‐Œp-­‐com-­‐o.html	
  



                                                              Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  VSTPD	
  
•  Editar	
  o	
  arquivo	
  /etc/vsŒpd.conf	
  e	
  incluir	
  
    ssl_enable=YES	
  
    allow_anon_ssl=YES	
  
    force_local_data_ssl=YES	
  
    force_local_logins_ssl=YES	
  
    ssl_tlsv1=YES	
  
    ssl_sslv2=NO	
  
    ssl_sslv3=NO	
  
    rsa_cert_file=/etc/ssl/private/vsŒpd.pem	
  
                                              Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  VSTPD	
  
•  Teste	
  com	
  Œp-­‐ssl	
  e	
  filezilla	
  
    #	
  apt-­‐get	
  install	
  Œp-­‐ssl	
  
    #	
  Œp-­‐ssl	
  172.16.50.10	
  
    Connected	
  to	
  172.16.50.10.	
  
    220	
  versao	
  
    Name	
  (172.16.50.10:cassio):	
  cassio	
  
    234	
  Proceed	
  with	
  negoHaHon.	
  
    [SSL	
  Cipher	
  DES-­‐CBC3-­‐SHA]	
  
    331	
  Please	
  specify	
  the	
  password.	
  
    Password:	
  

                                                       Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  SSH	
  
•  O	
  serviço	
  SSH	
  é	
  muito	
  úHl	
  para	
  um	
  
   administrador	
  de	
  sistemas	
  
    –  Ele	
  permite	
  acesso	
  remoto	
  a	
  maquina	
  
    –  Confidencialidade	
  
    –  AutenHcidade	
  
    –  AutomaHzação	
  de	
  aHvidades	
  
    –  	
  Os	
  arquivos	
  de	
  configuração	
  normalmente	
  ficam	
  
       em:	
  /etc/ssh	
  
•  hYp://www.hardware.com.br/tutoriais/dominando-­‐ssh/	
  
                                                    Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  SSH	
  
•  Configuração	
  do	
  Servidor	
  
   –  /etc/ssh/sshd_config	
  
•  Configuração	
  do	
  Cliente	
  
   –  /etc/ssh/ssh_config	
  
•  Por	
  padrão	
  permite	
  acesso	
  por	
  qualquer	
  conta	
  
   –  ssh	
  –l	
  bob	
  172.16.49.144	
  
   –  ssh	
  –X	
  –l	
  bob	
  172.16.49.144	
  	
  


                                                        Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  SSH	
  
•  Chaves	
  de	
  verificação	
  geradas	
  na	
  instalação	
  
    –  /etc/ssh/	
  
    –  Salve	
  esses	
  arquivos	
  
•  Verificação	
  do	
  Servidor	
  
    –  Vrf	
  idenHdade	
  do	
  servidor	
  
    –  Servidor	
  envia	
  chave	
  pública	
  ao	
  cliente	
  na	
  primeira	
  
       conexão	
  (.ssh/known_hosts)	
  
    –  ssh	
  cliente	
  passa	
  a	
  enviar	
  desafio	
  para	
  o	
  servidor	
  
    –  	
  Lab	
  –	
  server	
  Ubuntu,	
  cliente	
  Debian	
  

                                                       Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  SSH	
  
•  Verificação	
  do	
  Servidor	
  –	
  conexão	
  inicial	
  
    –  Ver	
  fingerprint	
  	
  
    –  ssh-­‐keygen	
  –l	
  
        •  /etc/ssh/ssh_host_rsa_key.pub	
  (no	
  servidor)	
  
        •  No	
  cliente	
  -­‐	
  ssh	
  –l	
  usuario	
  ip	
  (confere	
  fingerprint)	
  




                                                                 Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  SSH	
  
•  Verificação	
  do	
  Servidor	
  




•  ssh-­‐keygen	
  –R	
  172.16.49.144	
  ou	
  editar	
  .ssh/
   known_hosts	
  (no	
  cliente)	
  	
  
                                           Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  SSH	
  
•  Configurações:	
  
   –  	
  Usar	
  SSH	
  2	
  
         •  	
  PROTOCOL	
  2	
  
   –  Desabilitar	
  login	
  como	
  root	
  
         •  PermitRootLogin	
  no	
  	
  
•  Tcp	
  wappers	
  
   –  	
  /etc/hosts.allow	
  -­‐	
  sshd	
  :	
  127.0.0.	
  1,	
  172.16.49.144	
  
   –  	
  /etc/hosts.deny	
  –	
  sshd	
  :	
  ALL	
  



                                                      Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  SSH	
  
•  Controle	
  de	
  usuários	
  
    –  AllowUsers	
  bob	
  alice	
  	
  
    –  DenyUsers	
  maria	
  joao	
  


•  Desabilitar	
  o	
  forward	
  de	
  portas	
  
    –  AllowTcpForwarding	
  no	
  
    –  X11Forwarding	
  no	
  	
  



                                               Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  SSH	
  
•  Criar	
  banner	
  customizado	
  
    –  #Banner	
  /etc/ssh/banner.txt	
  
•  Desabilitar	
  o	
  sŒp	
  
    –  #Subsystem	
  sŒp	
  /usr/lib/misc/sŒp-­‐server	
  	
  




                                               Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  SSH	
  
•  AutenHcação	
  Baseada	
  em	
  chaves	
  	
  
   –  No	
  cliente	
  -­‐	
  ssh-­‐keygen	
  –t	
  rsa	
  (especificar	
  senha)	
  
        •  Chmod	
  600	
  .ssh/id_rsa	
  
   –  cat	
  .ssh/id_rsa.pub	
  
   –  Copiar	
  conteudo	
  para	
  .ssh/authorized_keys	
  do	
  
      servidor	
  remoto	
  
        •  PasswordAuthenHcaHon	
  no	
  
        •  UsePam	
  no	
  




                                                       Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  SSH	
  
•  Knocking	
  
   –  Após	
  cliente	
  uHlizar	
  sequencia	
  de	
  portas	
  servidor	
  
      abre	
  a	
  porta	
  ssh	
  
   –  Integrado	
  ao	
  iptables	
  
   –  Ao	
  final	
  da	
  conexao	
  a	
  porta	
  é	
  fechada	
  
   –  	
  Editar	
  /etc/default/knockd	
  e	
  deixar	
  as	
  duas	
  linhas	
  
      seguintes:	
  	
  
       •  START_KNOCKD=1	
  
       •  KNOCKD_OPTS="-­‐i	
  eth0"	
  	
  
       	
  	
  /etc/init.d/knockd	
  restart	
  

                                                    Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  SSH	
  
•  Knocking	
  
   –  Abertura	
  
       •  root@ubuntu#	
  knock	
  172.16.49.137	
  7000:tcp	
  8000:tcp	
  9000:tcp	
  
       •  root@ubuntu#	
  ssh	
  -­‐l	
  cassio	
  172.16.49.137	
  	
  

   –  Fechamento	
  
       •  root@ubuntu#	
  knock	
  172.16.49.137	
  9000:tcp	
  8000:tcp	
  7000:tcp	
  
   –  hYp://www.vivaolinux.com.br/arHgos/impressora.php?
      codigo=7734	
  




                                                               Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
SSHFS	
  
•  Montagem	
  de	
  sist	
  de	
  arq	
  remoto	
  
•  #	
  apt-­‐get	
  install	
  sshfs	
  	
  
•  #	
  adduser	
  user	
  fuse	
  
    –  $	
  mkdir	
  /home/user/dir_montagem	
  
    –  $	
  sshfs	
  user@servidor:/home/user/	
  /home/user/
         dir_montagem/	
  
    –  $	
  fusermount	
  –u	
  /home/user/dir_montagem/	
  
•  hYp://www.hardware.com.br/dicas/usando-­‐sshfs.html	
  
•  Lab	
  cliente	
  debian	
  e	
  server	
  Ubuntu	
  


                                       Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
Hardening	
  Linux	
  
•  Bonus	
  
   –  Chave	
  Privada	
  no	
  pendrive	
  
   –  ssh	
  –i	
  path	
  servidor	
  




                                               Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  
PERGUNTAS??	
  

          Pós-­‐Graduação	
  	
  -­‐	
  	
  lato	
  Sensu	
  

Segurança Linux

  • 1.
    BEM-VINDO À DISCIPLINADE: Segurança Linux Prof: Cássio Alexandre Ramos cassioaramos (at) gmail (dot) com http://cassioaramos.blogspot.com http://www.facebook.com/cassioaramos Pós-­‐Graduação    -­‐    lato  Sensu  
  • 2.
    Segurança  Linux   •  Introdução   •  Hardening  de  SO   •  Hardening  de  Rede   •  Tunning  de  Kernel   •  Criptografia   •  Hardening  de  Serviços  –  FTP  e  SSH   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 3.
    Introdução   •  Hardening   –  Endurecimento   –  Fortalecimento   •  Tipos   –  S.O   –  AplicaHvos   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 4.
    Hardening  de  SO   •  Instalação   –  UHlizar  distribuição  “Confiável”,  com  atualizações   regulares,  bom  suporte  a  disposiHvos,  possibilidade  de   suporte  técnico  etc   –  Reduzir  o  número  de  pacotes  ao  estritamente  necessário   –  ParHcionamento  de  disco   •  Diminui  tempo  de  acesso  ao  dado   •  ParHção  separada  para  o  sistema,  facilita  recuperação  de   desastres,  reinstalação  etc   •  Evita  a  parada  do  sistema  (parHção  /  cheia)   •  Segurança  extra  contra  o  consumo  e  disco   •  Isolar  parHção  /tmp  e  usar  atributos  nosuid  e  noexec   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 5.
    Hardening  de  SO   •  ParHcionamento  de  disco   –  hYp://www.vivaolinux.com.br/arHgos/impressora.php? codigo=5116   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 6.
    Hardening  de  SO   •  Verificação  de  pacotes  instalados  no  Sistema   –  dpkg  -­‐l   –  dpkg  -­‐l  |  awk  '{print  $2,$3}'  |  sed  '1,5d'  >  /root/ aula_linux/pacotes.txt   •  segunda  e  terceira  coluna  ($2,$3)  -­‐  nomes  dos  programas  e  suas   versões.     •  sed  remove  5  primeiras  linhas  -­‐  info  não  relevantes.  Direciona  o   resultado  para  o  arquivo  pacotes.txt  dentro  de  /root/aula_linux.   •  Desinstalação  de  pacotes   –  apHtude  purge  wget   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 7.
    Hardening  de  SO   •  Permissão  Suid   –  Suid  Bit  (4):  Quando  setada,  permite  que  qualquer  usuário   execute  determinado  binário  ou  programa,  como  se  fosse   o  usuário  dono   –  Sgid  Bit  (2):  Quando  setada,  permite  manter  padrões  de   criação  de  arquivos  e  diretórios,  possibilitando  que   qualquer  arquivo  ou  diretório  criado  assuma  o  grupo  dono   do  diretório  pai  como  grupo  padrão.   –  SHcky  Bit  (1):  Quando  setada,  impede  que  um  usuário   apague  o  arquivo  ou  diretório  do  outro,  mesmo  que  o   diretório  pai  tenha  permissões  que  permitam  a  exclusão.   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 8.
    Hardening  de  SO   •  Permissão  Suid   –  Encontrar  arquivos  com  permissão   •  find  /  -­‐perm  -­‐4000  >  /root/aula_linux/suid.txt   –  Remover  permissão   •  chmod  -­‐s  <caminho-­‐aquivo>   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 9.
    Hardening  de  SO   •  Sugestão   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 10.
    Hardening  de  SO   •  Lab  –  Permissão  Suid   –  Como  root   #cp  /bin/*sh*  /tmp      ##  /tmp  em  parHção  separada   #chmod  4755  /tmp/*sh*   –  Como  usuário  comum  (em  outro  terminal)   $  cd  /tmp   $  ./sh   #  whoami   #  exit     Pós-­‐Graduação    -­‐    lato  Sensu  
  • 11.
    Hardening  de  SO   •  Lab  –  Permissão  Suid   –  Resolvendo  o  problema   #  mount  -­‐o  remount,rw,nosuid  /tmp   –  RepeHr  procedimento  como  usuário  comum   $  cd  /tmp   $  ./sh   $  whoami   $  exit   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 12.
    Hardening  de  SO   •  chaYr  e  lsaYr   –  Comandos  servem  para  incrementar  segurança   em  arquivos   –  Usa  atributos  e  não  permissões   –  hYp://www.vivaolinux.com.br/dicas/impressora.php?codigo=11152   #  chaYr  +ia  arquivo   #  rm  –rf  arquivo   #  lsaYr  arquivo     Pós-­‐Graduação    -­‐    lato  Sensu  
  • 13.
    Hardening  de  SO   •  Permissões  de  Arquivos  e  DiretóHos   –  Leitura  (r)   –  Escrita  (w)   –  Execução  (x)   ubuntu$ ls -l passwd shadow   -rw-r--r-- 1 root root 5244 Jan 26 10:24 passwd   -rw-r----- 1 root shadow 5244 Jan 26 10:24 shadow   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 14.
    Hardening  de  SO   •  Usuários  e  Grupos   –  Useradd,  userdel,  usermod,  passwd,   groupadd,groupdel,  groupmod   –  #  groupadd  adm-­‐teste   #  adduser  user1;  adduser  user1  adm-­‐teste   #  adduser  user2;  adduser  user2  adm-­‐teste   #  mkdir  comparHlhado   #  chown  root:adm-­‐teste  comparHlhado     #  chmod  750  comparHlhado   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 15.
    Hardening  de  SO   •  Desabilitando  “ctrl+alt+del”   –  /etc/iniYab   #ca:12345:ctrlaltdel:/sbin/shutdown  -­‐t1  -­‐a  -­‐r  now   ca:12345:ctrlaltdel:/bin/echo  ”Recurso  desabilitado”   #  init  q            ###  atualiza  o  iniYab   •  Default  runlevel   –  /etc/iniYab   #  The  default  runlevel.   id:2:initdefault:   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 16.
    Hardening  de  SO   •  Bloqueio  de  Terminal   –  Administrador  sai  da  sessão  sem  logout   •  configurar  a  variável  chamada  "TMOUT"  com   um  tempo  (em  segundos   Manual  –  TMOUT=10   No  login  (vi  /etc/profile)  -­‐  TMOUT=10   Por  usuário  -­‐  Configurar  variável  no  .bashrc   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 17.
    Hardening  de  SO   •  Bloqueio  de  Console  para  o  root   –  Impede  que  o  root  faça  login  nos  terminais  Yy1  a   Yy6  (vinculado  ao  PAM)   –  /etc/secureYy   #Yy1   #Yy2   #Yy3   #Yy4   #Yy5   #Yy6   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 18.
    Hardening  de  SO   •  PAM  –  Módulos  de  autenHcação  Plugáveis   –  trazer  novas  funcionalidades  para  um  programa   –  Ex.  Login.  A  função  dele  é  somente  checar  usuário   e  senha,  verificar  se  estão  cadastrados  no  sistema   •  E  se  desejarmos  que,  para  o  login  de  um  usuário,além   da  senha  seja  checado  se  naquele  dia  e  horário  ele   pode  logar   •  definir  somente  alguns  grupos  que  podem  fazer  su   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 19.
    Hardening  de  SO   •  PAM  –  Módulos  de  autenHcação  Plugáveis   –  Módulos  podem  ser  usados  para  qualquer   aplicação  com  suporte  a  PAM   root@debian:/#  ldd  /bin/login   linux-­‐gate.so.1  =>    (0xb7745000)   libpam.so.0  =>  /lib/libpam.so.0  (0xb7728000)   libpam_misc.so.0  =>  /lib/libpam_misc.so.0   (0xb7725000)   libc.so.6  =>  /lib/i686/cmov/libc.so.6  (0xb75de000)     Pós-­‐Graduação    -­‐    lato  Sensu  
  • 20.
    Hardening  de  SO   •  PAM  –  Módulos  disponíveis   #  ls  –l  /lib/security   •  PAM  –  arquivos  de  configuração   #  ls  –l  /etc/pam.d     Pós-­‐Graduação    -­‐    lato  Sensu  
  • 21.
    Hardening  de  SO   •  PAM  –  UHlização   –  <Hpos  de  módulo>  <controle>  <módulo>  <argumentos  do  módulo>   •  Módulos   –  Account   –  Auth   –  Password   –  Session   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 22.
    Hardening  de  SO   •  PAM  –  UHlização   –  <Hpos  de  módulo>  <controle>  <módulo>  <argumentos  do  módulo>   •  Controle   –  Required   –  Requisite   –  Sufficient   –  OpHonal   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 23.
    Hardening  de  SO   •  PAM  –  Limitar  horários  de  login   –  AHvar  módulo  na  aplicação   #  vim  /etc/pam.d/login   account  requisite  pam_Hme.so   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 24.
    Hardening  de  SO   •  PAM  –  Limitar  horários  de  login   #  vi  /etc/security/Hme.conf   –  login;*;usuario;Al0800-­‐1800     –  login;*;usuario;!SaSu0000-­‐240   •  login:  É  o  nome  do  serviço  onde  o  pam_Hme.so  está   aHvado   •  *:  Indica  os  terminais  texto  (Yy)  onde  a  políHca  será   aplicada.  Nesse  caso  são  todos  os  terminais   •  Usuário  –  usuário  onde  a  políHca  será  aplicada   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 25.
    Hardening  de  SO   •  PAM  –  Limitar  horários  de  login   #  vi  /etc/security/Hme.conf   –  login;*;usuario;Al0800-­‐1800     –  login;*;usuario;!SaSu0000-­‐240   •  Al0800-­‐1800:  Indica  os  dias  que  o  usuário  poderá  logar.   Todos  os  dias  (Al)  das  8  às  18  horas  (0800-­‐1800)   •  !SaSu0000-­‐2400:  todos  os  dias  com  exceção  (!)  dos   sábados  e  domingos  (SaSu)  o  dia  inteiro  (0000-­‐2400)   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 26.
    Hardening  de  SO   •  PAM  –  Limitar  logins  consecuHvos   #  vi  /pam.d/login   Session      required  pam_limits.so   #  vi  /etc/security/limits.conf   usuario    hard    maxlogins    2   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 27.
    Hardening  de  SO   •  PAM  –  Limitar  su   #  groupadd  adm-­‐teste   #  adduser  cassio  adm-­‐teste   #  passwd  cassio   #  vi  /pam.d/su   auth  required  pam_wheel.so    group=adm-­‐teste   •  Habilitar  log   #  vim  /etc/login.defs     SULOG_FILE  /var/log/sulog   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 28.
    Hardening  de  SO   •  PAM  –  segurança  de  senhas   #  apHtude  install  libpam-­‐cracklib   #  vim  /etc/pam.d/common-­‐password   Comentar   #  password  required  pam_unix.sonullok  obscure  min=4  max=8  md5   Descomentar   password  required  pam_cracklib.so  retry=3  minlen=8  difok=3   password  required  pam_unix.so  use_authok  nullok  md5     retry=3  (tentaHvas  de  mudança  de  senha),  minlen=8  (no  mínimo  8   caracteres)  difok=3:  (diferença  de  pelo  menos  3  letras  da  anHga)   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 29.
    Hardening  de  SO   •  Verificar  senhas  fracas   #  apHtude  install  john   #  cd  /usr/share/john   #  cat  password.lst  (arquivo  de  senhas)   #  cp  /etc/shadow  /root/senhas   •  UHlização   #  ./john  /root/senhas  (ou)   #  john  -­‐-­‐wordlist:/root/meu_dicionario  /root/ senhas     Pós-­‐Graduação    -­‐    lato  Sensu  
  • 30.
    Hardening  de  SO   •  Segurança  Física  -­‐  Gerenciador  de  boot   –  No  prompt  do  grub,  e  (edit)   Subs0tuir   “ro  quiet”   Por     “rw  init=/bin/bash”   Para  reiniciar   contrl  +  x   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 31.
    Hardening  de  SO   •  Gerenciador  de  boot  –  Correção   h4p://ubuntuforum-­‐br.org/index.php?topic=65572.0   –  Editar  o  arquivo  /etc/grub.d/00_header  e  colocar   no  final  do  mesmo   cat  <<  EOF   set  superusers="user1"   password  user1  password1   EOF   Após  isso,  para  gerar  novo  /boot/grub/grub.cfg     #  update-­‐grub     Pós-­‐Graduação    -­‐    lato  Sensu  
  • 32.
    Hardening  de  SO   •  Gerenciador  de  boot  –    com  senha  cripto   #  grub-­‐mkpasswd-­‐pbkdf2  (gera  hash  da  senha)   –  Editar  o  arquivo  /etc/grub.d/00_header  e  colocar   no  final  do  mesmo   cat  <<  EOF   set  superusers="user1"   password_pbkdf2  user1  grub.pbkdf2.sha512.10000.long_number   EOF   Após  isso,  para  gerar  novo  /boot/grub/grub.cfg     #  update-­‐grub   Pós-­‐Graduação    -­‐    lato  Sensu    
  • 33.
    Hardening  de  SO   •  Segurança  Física  -­‐  Boot  por  DVD/pendrive   Dar  o  boot  pelo  DVD   #  fdisk  -­‐l  (para  ver  aonde  esta  o  raíz)   #  mkdir  /media/teste   #  mount  /dev/sda1  /media/teste   #  chroot  /media/teste   basta  trocar  a  senha   #  passwd     Pós-­‐Graduação    -­‐    lato  Sensu  
  • 34.
    Hardening  de  SO   •  SUDO  -­‐  Super  user  do   –  Arq  Configuração  -­‐  /etc/sudoers  (visudo)   –  %admin  ALL=(ALL)NOPASSWD  /usr/bin/apt-­‐get   •  %admin  –  grupo  admin   •  ALL=  -­‐  qualquer  host/IP     •  (ALL)  –  qualquer  usuário   •  NOPASSWD  –  sem  senha   •  :/usr/bin/apt-­‐get  –  comando   •  %admin  ALL=(ALL)  ALL       •  Lab  Ubuntu  (Log  -­‐  /var/log/auth.log)   •  hYp://ubuntuforums.org/showthread.php?t=1132821   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 35.
    Hardening  de  SO   Segurança do Login # vim /etc/login.defs LOGIN_RETRIES: Definição do número de tentativas de login LOGIN_TIMEOUT: Tempo de espera para nova tentativa de login, caso tenha errado senha/user PASS_MIN_LEN: Tamanho da senha, minimo por padrão é 5. LOG_UNKFAIL_ENAB: Grava no arquivo de log /var/log/faillog os usuários desconhecidos que tentarem se logar sem sucessso LOG_OK_LOGINS: Ativa log dos logins com sucesso Pós-­‐Graduação    -­‐    lato  Sensu  
  • 36.
    Hardening  de  SO   Password Aging Pós-­‐Graduação    -­‐    lato  Sensu  
  • 37.
    Hardening  de  SO   Password  Aging     Quando uma conta e criada no linux os seguintes campos são passados ao arquivo /etc/shadow: Pós-­‐Graduação    -­‐    lato  Sensu  
  • 38.
    Hardening  de  SO   •  Contas   –  Data  de  expiração   –  Chage   •  Modifica  os  parametros  de  /etc/shadow    #  chage  –l  usuário    #  chage  -­‐E  AAAA-­‐MM-­‐DD  usuario    #  chage  -­‐M  30  -­‐W  5  -­‐I  2  usuario    M  -­‐  Tempo  máximo  de  validade  da  conta    W  -­‐  Tempo  de  aviso    I  -­‐  Tempo  antes  da  conta  ser  desaHvada   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 39.
    Hardening  de  SO   Desabilite todas as contas especiais apagar usuários padrões e contas de grupo que você não utilize em seu sistema como: lp, news, uucp, operator, games, gopher etc Para apagar uma conta de usuário: [root@bt /]# userdel LP Para apagar um grupo: [root@bt /]# groupdel LP Pós-­‐Graduação    -­‐    lato  Sensu  
  • 40.
    Hardening  de  Rede   •  Verificar  serviços  aHvos  TCP   root@debian:/#  netstat  -­‐natp   Conexões  Internet  AHvas  (servidores  e  estabelecidas)   Proto  Recv-­‐Q  Send-­‐Q  Endereço  Local                    Endereço  Remoto                  Estado       PID/Program  name   tcp                0            0  0.0.0.0:22                            0.0.0.0:*                              OUÇA              1439/sshd                 tcp                0            0  127.0.0.1:631                      0.0.0.0:*                              OUÇA              1770/cupsd     tcp6              0            0  :::22                                      :::*                                        OUÇA              1439/sshd                 tcp6              0            0  ::1:631                                  :::*                                        OUÇA              1770/cupsd               tcp6              0            0  :::80                                      :::*                                        OUÇA              1210/apache2   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 41.
    Hardening  de  Rede   •  Verificar  serviços  aHvos  UDP   root@debian:/#  netstat  -­‐naup   Conexões  Internet  AHvas  (servidores  e  estabelecidas)   Proto  Recv-­‐Q  Send-­‐Q  Endereço  Local                    Endereço  Remoto                  Estado       PID/Program  name   udp                0            0  0.0.0.0:631                          0.0.0.0:*                                                      1770/cupsd               udp                0            0  0.0.0.0:514                          0.0.0.0:*                                                      1118/rsyslogd         Pós-­‐Graduação    -­‐    lato  Sensu  
  • 42.
    Hardening  de  Rede   •  Verificar  serviços  aHvos   –  Instalar  nmap  –  network  mapper   #  apHtude  install  nmap   #  nmap  192.168.200.X   #  nmap  -­‐sU  192.168.200.X   #  nmap  -­‐sV  -­‐p  1-­‐100  192.168.200.X   #  nmap  -­‐O  192.168.200.X     Pós-­‐Graduação    -­‐    lato  Sensu  
  • 43.
    Hardening  de  Rede   •  DesaHvar  Serviços  desnecessários   #  update-­‐rc.d  -­‐f  portmap  remove     #  update-­‐rc.d  -­‐f  exim4  remove     #  netstat  –natpu   •  rcconf   #  apt-­‐get  install  rcconf   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 44.
    Hardening  de  Rede   •  TCP  Wrappers   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 45.
    Hardening  de  Rede   •  TCP  Wrappers   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 46.
    Hardening  de  Rede   •  TCP  Wrappers   –  Usado  para  autorizar  ou  negar  acesso  a  serviços   controlados  pelo  wrapper   root@ubuntu:˜#  ldd  /usr/sbin/sshd  |  grep  libwrap   libwrap.so.0  =>  /lib/libwrap.so.0  (0x009b9000)   root@ubuntu:~#  strings  -­‐f  /usr/sbin/sshd  |  grep  hosts_access   /usr/sbin/sshd:  hosts_access   –  A  configuração  dos  serviços  com  TCP  wrappers  deve  ser   efetuada  através  dos  seguinte  arquivos     •  /etc/hosts.allow   •  /etc/hosts.deny   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 47.
    Hardening  de  Rede   •  TCP  Wrappers   –  Sintaxe   daemon  :  cliente  [:opção1:opção2:...]   vsŒpd  :  192.168.1.  ,  .abc.com.in  :  spawn  /bin/echo  ‘/bin/date’  dennied  >>  /var/log/vsŒp.log     (/etc/hosts.deny)   –  Lab  –  servidor  ubuntu,  cliente  BT  novo   •  log  /var/log/auth.log   –  hYp://segurancalinux.com/arHgos/ impressora.php?codigo=10311   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 48.
    Criptografia   •  Tipos   –  De  SO   –  De  ParHção     –  De  arquivos  e  pastas   •  Criptografia     •  Assinatura  digital   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 49.
    Criptografia   •  Openssl   –  Criptografar   #  openssl  enc  -­‐e  -­‐aes256  -­‐in  arq1.txt  -­‐out  arq1_cripto.txt   –  Decriptografar   #  openssl  enc  -­‐aes256  –d  -­‐in  arq1_cripto.txt  -­‐out  arq1.txt   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 50.
    Criptografia   •  Openssl  –  script  para  criptografar  (ext  .enc)   #!/bin/bash     if  [  $#  -­‐lt  1  ]      then      echo  "UHlização:  $0  arquivo-­‐a-­‐ser-­‐criptografado”      exit  1     fi     openssl  enc  -­‐e  -­‐aes256  -­‐in  "$1"  -­‐out  "$1".enc     U0lizaçao:  ./script      arq_a_ser_cripto   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 51.
    Criptografia   •  Openssl  –  script  para  decriptografar   #!/bin/bash     if  [  $#  -­‐lt  2  ]      then      echo  "UHlização:  $0  novo-­‐nome-­‐do-­‐arquivo-­‐criptografado”      exit  1     fi     openssl  enc  -­‐d  -­‐aes256  -­‐in  "$1"  -­‐out  ”$2”     U0lizaçao:  ./script      arq_cripto      novo_nome_de_arquivo     Pós-­‐Graduação    -­‐    lato  Sensu  
  • 52.
    Criptografia  EncFs   •  #  apt-­‐get  install  encfs  fuse-­‐uHls  libfuse2       •  #  adduser  <usuário>  fuse     •  $  mkdir  ~/.criptografado  ~/texto_claro     –  ˜/.criptografado  -­‐  dados  criptografados,   –  ˜/texto_claro  -­‐  dados  em  claro   •  Para  aHvar  a  criptografia:     •  $  encfs  ~/.criptografado/  ~/texto_claro/   •  ?>p   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 53.
    Criptografia  EncFs   •  Para  desmontar:   $  fusermount  -­‐u  ~/texto_claro   •  Enviar  para  host  remoto   $  rsync  -­‐av  /home/cassio/.criptografado/   cassio@172.16.49.137:/home/cassio/   •  Lab  –     –  Debian  e  Ubuntu   –  rsync  cliente  debian  e  server  Ubuntu   •  hYp://www.vivaolinux.com.br/arHgos/impressora.php?codigo=6642   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 54.
    Escondendo  Banner   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 55.
  • 56.
    Descobrindo  OS   Banners  -­‐  OsGuessing   /proc/sys/net/ipv4/ip_default_ttl Pós-­‐Graduação    -­‐    lato  Sensu  
  • 57.
    Kernel  Tuning   Osparâmetros do kernel são configurados no arquivo /etc/ sysctl.conf O comando sysctl –p ativa os parâmetros configurados neste arquivo Pós-­‐Graduação    -­‐    lato  Sensu  
  • 58.
    Kernel  Tuning   • Sysctl  –w  (write)  grava  a  alteração   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 59.
    Kernel  Tuning   TCPSYN Cookie Protection Tenta evitar o SYN ATAQUE que causa uma negação de serviço net.ipv4.tcp_syncookies = 1 Pós-­‐Graduação    -­‐    lato  Sensu  
  • 60.
    Kernel  Tuning   • Ignoring to ICMP Requests •  Maquinas param de responder a pacotes ICMP (ping). •  net.ipv4.icmp_echo_ignore_all = 1 •  Desabilita IPV6 •  net.ipv6.conf.all.disable_ipv6 = 1 Pós-­‐Graduação    -­‐    lato  Sensu  
  • 61.
    Kernel  Tuning   IgnoringBroadcasts Request Ignorar mensagens enviadas para broadcast net.ipv4.icmp_echo_ignore_broadcasts = 1 Pós-­‐Graduação    -­‐    lato  Sensu  
  • 62.
    BasHlle   •  AplicaHvo  para  Hardening   •  Modo  operação  -­‐  faz  perguntas  e  cria  poliHca   baseado  nas  respostas   •  Modo  auditoria  –  cria  relatório  HTML   •   SO  suportados  Debian,  Fedora,  Gentoo,   Mandriva,  Red  Hat  etc.   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 63.
    BasHlle   •  Instalação     –  apt-­‐get  install  basHlle   –  apt-­‐get  install  perl-­‐tk   •  Modo  gráfico     –  basHlle  –x   •  Modo  Texto   –  BasHlle  –c   •  hYp://www.csirt.pop-­‐mg.rnp.br/docs/ hardening/linux.html   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 64.
    Hardening  VSTPD   • Escondendo  Banner   Œpd_banner=Servidor  FTP   •  Não  permiHndo  login  anonimo   anonymous_enable=NO   •  PermiHndo  usuários  do  SO     local_enable=YES   •  PermiHndo  gravar  no  servidor  (anonimo  não)   write_enable=YES   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 65.
    Hardening  VSTPD   • Autorizando  usuários  a  usarem  o  servidor   userlist_deny=NO   userlist_enable=YES   userlist_file=/etc/vsŒpd.allowed_users   –  Crie  o  arquivo  /etc/vsŒpd.allowed_users  e   escreva  um  por  linha  quem  pode  usar  o  Œp   •  Enjaulando  usuários   chroot_local_user=YES   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 66.
    Hardening  VSTPD   • Habilitando  Œp  com  ssl   –  Criar  o  cerHficado  auto-­‐assinado   –  #  cd  /etc/ssl/private   #  /usr/bin/openssl  req  -­‐x509  -­‐nodes  -­‐days  365  -­‐ newkey  rsa:1024  -­‐keyout  vsŒpd.pem  -­‐out   vsŒpd.pem   •  Lab  –  debian  server  e  ubuntu  cliente   hYp://www.cyberciH.biz/Hps/configure-­‐vsfptd-­‐secure-­‐connecHons-­‐via-­‐ssl-­‐tls.html   hYp://dailson.blogspot.com/2009/11/implementando-­‐um-­‐servidor-­‐Œp-­‐com-­‐o.html   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 67.
    Hardening  VSTPD   • Editar  o  arquivo  /etc/vsŒpd.conf  e  incluir   ssl_enable=YES   allow_anon_ssl=YES   force_local_data_ssl=YES   force_local_logins_ssl=YES   ssl_tlsv1=YES   ssl_sslv2=NO   ssl_sslv3=NO   rsa_cert_file=/etc/ssl/private/vsŒpd.pem   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 68.
    Hardening  VSTPD   • Teste  com  Œp-­‐ssl  e  filezilla   #  apt-­‐get  install  Œp-­‐ssl   #  Œp-­‐ssl  172.16.50.10   Connected  to  172.16.50.10.   220  versao   Name  (172.16.50.10:cassio):  cassio   234  Proceed  with  negoHaHon.   [SSL  Cipher  DES-­‐CBC3-­‐SHA]   331  Please  specify  the  password.   Password:   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 69.
    Hardening  SSH   • O  serviço  SSH  é  muito  úHl  para  um   administrador  de  sistemas   –  Ele  permite  acesso  remoto  a  maquina   –  Confidencialidade   –  AutenHcidade   –  AutomaHzação  de  aHvidades   –   Os  arquivos  de  configuração  normalmente  ficam   em:  /etc/ssh   •  hYp://www.hardware.com.br/tutoriais/dominando-­‐ssh/   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 70.
    Hardening  SSH   • Configuração  do  Servidor   –  /etc/ssh/sshd_config   •  Configuração  do  Cliente   –  /etc/ssh/ssh_config   •  Por  padrão  permite  acesso  por  qualquer  conta   –  ssh  –l  bob  172.16.49.144   –  ssh  –X  –l  bob  172.16.49.144     Pós-­‐Graduação    -­‐    lato  Sensu  
  • 71.
    Hardening  SSH   • Chaves  de  verificação  geradas  na  instalação   –  /etc/ssh/   –  Salve  esses  arquivos   •  Verificação  do  Servidor   –  Vrf  idenHdade  do  servidor   –  Servidor  envia  chave  pública  ao  cliente  na  primeira   conexão  (.ssh/known_hosts)   –  ssh  cliente  passa  a  enviar  desafio  para  o  servidor   –   Lab  –  server  Ubuntu,  cliente  Debian   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 72.
    Hardening  SSH   • Verificação  do  Servidor  –  conexão  inicial   –  Ver  fingerprint     –  ssh-­‐keygen  –l   •  /etc/ssh/ssh_host_rsa_key.pub  (no  servidor)   •  No  cliente  -­‐  ssh  –l  usuario  ip  (confere  fingerprint)   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 73.
    Hardening  SSH   • Verificação  do  Servidor   •  ssh-­‐keygen  –R  172.16.49.144  ou  editar  .ssh/ known_hosts  (no  cliente)     Pós-­‐Graduação    -­‐    lato  Sensu  
  • 74.
    Hardening  SSH   • Configurações:   –   Usar  SSH  2   •   PROTOCOL  2   –  Desabilitar  login  como  root   •  PermitRootLogin  no     •  Tcp  wappers   –   /etc/hosts.allow  -­‐  sshd  :  127.0.0.  1,  172.16.49.144   –   /etc/hosts.deny  –  sshd  :  ALL   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 75.
    Hardening  SSH   • Controle  de  usuários   –  AllowUsers  bob  alice     –  DenyUsers  maria  joao   •  Desabilitar  o  forward  de  portas   –  AllowTcpForwarding  no   –  X11Forwarding  no     Pós-­‐Graduação    -­‐    lato  Sensu  
  • 76.
    Hardening  SSH   • Criar  banner  customizado   –  #Banner  /etc/ssh/banner.txt   •  Desabilitar  o  sŒp   –  #Subsystem  sŒp  /usr/lib/misc/sŒp-­‐server     Pós-­‐Graduação    -­‐    lato  Sensu  
  • 77.
    Hardening  SSH   • AutenHcação  Baseada  em  chaves     –  No  cliente  -­‐  ssh-­‐keygen  –t  rsa  (especificar  senha)   •  Chmod  600  .ssh/id_rsa   –  cat  .ssh/id_rsa.pub   –  Copiar  conteudo  para  .ssh/authorized_keys  do   servidor  remoto   •  PasswordAuthenHcaHon  no   •  UsePam  no   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 78.
    Hardening  SSH   • Knocking   –  Após  cliente  uHlizar  sequencia  de  portas  servidor   abre  a  porta  ssh   –  Integrado  ao  iptables   –  Ao  final  da  conexao  a  porta  é  fechada   –   Editar  /etc/default/knockd  e  deixar  as  duas  linhas   seguintes:     •  START_KNOCKD=1   •  KNOCKD_OPTS="-­‐i  eth0"        /etc/init.d/knockd  restart   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 79.
    Hardening  SSH   • Knocking   –  Abertura   •  root@ubuntu#  knock  172.16.49.137  7000:tcp  8000:tcp  9000:tcp   •  root@ubuntu#  ssh  -­‐l  cassio  172.16.49.137     –  Fechamento   •  root@ubuntu#  knock  172.16.49.137  9000:tcp  8000:tcp  7000:tcp   –  hYp://www.vivaolinux.com.br/arHgos/impressora.php? codigo=7734   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 80.
    SSHFS   •  Montagem  de  sist  de  arq  remoto   •  #  apt-­‐get  install  sshfs     •  #  adduser  user  fuse   –  $  mkdir  /home/user/dir_montagem   –  $  sshfs  user@servidor:/home/user/  /home/user/ dir_montagem/   –  $  fusermount  –u  /home/user/dir_montagem/   •  hYp://www.hardware.com.br/dicas/usando-­‐sshfs.html   •  Lab  cliente  debian  e  server  Ubuntu   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 81.
    Hardening  Linux   • Bonus   –  Chave  Privada  no  pendrive   –  ssh  –i  path  servidor   Pós-­‐Graduação    -­‐    lato  Sensu  
  • 82.
    PERGUNTAS??   Pós-­‐Graduação    -­‐    lato  Sensu