Download pdf - Segurança Linux

Transcript
Page 1: Segurança Linux

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

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

BEM-VINDO À DISCIPLINA DE: Segurança Linux

Page 2: Segurança Linux

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  

Page 3: Segurança Linux

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

Introdução  

•  Hardening  – Endurecimento  

– Fortalecimento  

•  Tipos  – S.O  

– AplicaHvos  

Page 4: Segurança Linux

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  

Page 5: Segurança Linux

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

Hardening  de  SO  •  ParHcionamento  de  disco  

–  hYp://www.vivaolinux.com.br/arHgos/impressora.php?codigo=5116  

Page 6: Segurança Linux

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  

Page 7: Segurança Linux

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.  

Page 8: Segurança Linux

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>  

Page 9: Segurança Linux

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

Hardening  de  SO  

•  Sugestão  

Page 10: Segurança Linux

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      

Page 11: Segurança Linux

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  

Page 12: Segurança Linux

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    

Page 13: Segurança Linux

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  

 

Page 14: Segurança Linux

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  

 

Page 15: Segurança Linux

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:  

Page 16: Segurança Linux

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  

Page 17: Segurança Linux

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  

Page 18: Segurança Linux

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  

Page 19: Segurança Linux

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)    

Page 20: Segurança Linux

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    

Page 21: Segurança Linux

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  

Page 22: Segurança Linux

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  

Page 23: Segurança Linux

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  

Page 24: Segurança Linux

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  

Page 25: Segurança Linux

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)  

Page 26: Segurança Linux

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  

Page 27: Segurança Linux

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  

Page 28: Segurança Linux

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)  

Page 29: Segurança Linux

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    

Page 30: Segurança Linux

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  

Page 31: Segurança Linux

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    

Page 32: Segurança Linux

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  

 

Page 33: Segurança Linux

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    

Page 34: Segurança Linux

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  

Page 35: Segurança Linux

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

Page 36: Segurança Linux

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

Hardening  de  SO  

Password Aging

Page 37: Segurança Linux

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:

Page 38: Segurança Linux

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  

Page 39: Segurança Linux

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

Page 40: Segurança Linux

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  

Page 41: Segurança Linux

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        

Page 42: Segurança Linux

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    

Page 43: Segurança Linux

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  

Page 44: Segurança Linux

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

Hardening  de  Rede  

•  TCP  Wrappers  

Page 45: Segurança Linux

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

Hardening  de  Rede  

•  TCP  Wrappers  

Page 46: Segurança Linux

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  

Page 47: Segurança Linux

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  

Page 48: Segurança Linux

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

Criptografia  

•  Tipos  – De  SO  – De  ParHção    – De  arquivos  e  pastas  

•  Criptografia    •  Assinatura  digital  

Page 49: Segurança Linux

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  

Page 50: Segurança Linux

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  

Page 51: Segurança Linux

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    

Page 52: Segurança Linux

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  

Page 53: Segurança Linux

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

Criptografia  EncFs  

•  Para  desmontar:  $  fusermount  -­‐u  ~/texto_claro  

•  Enviar  para  host  remoto  $  rsync  -­‐av  /home/cassio/.criptografado/  [email protected]:/home/cassio/  

•  Lab  –    – Debian  e  Ubuntu  –  rsync  cliente  debian  e  server  Ubuntu  

•  hYp://www.vivaolinux.com.br/arHgos/impressora.php?codigo=6642  

Page 54: Segurança Linux

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

Escondendo  Banner  

Page 55: Segurança Linux

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

Escondendo  Banner  

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

Page 56: Segurança Linux

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

Descobrindo  OS  

Banners  -­‐  OsGuessing  

/proc/sys/net/ipv4/ip_default_ttl

Page 57: Segurança Linux

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

Page 58: Segurança Linux

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

Kernel  Tuning  

•  Sysctl  –w  (write)  grava  a  alteração  

Page 59: Segurança Linux

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

Page 60: Segurança Linux

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

Page 61: Segurança Linux

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

Kernel  Tuning  

Ignoring Broadcasts Request Ignorar mensagens enviadas para broadcast net.ipv4.icmp_echo_ignore_broadcasts = 1

Page 62: Segurança Linux

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.  

Page 63: Segurança Linux

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  

Page 64: Segurança Linux

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  

Page 65: Segurança Linux

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  

Page 66: Segurança Linux

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  

Page 67: Segurança Linux

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  

Page 68: Segurança Linux

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:  

Page 69: Segurança Linux

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/  

Page 70: Segurança Linux

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    

Page 71: Segurança Linux

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  

Page 72: Segurança Linux

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)  

Page 73: Segurança Linux

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)    

Page 74: Segurança Linux

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  

Page 75: Segurança Linux

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    

Page 76: Segurança Linux

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    

Page 77: Segurança Linux

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  

Page 78: Segurança Linux

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  

Page 79: Segurança Linux

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  

Page 80: Segurança Linux

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  

Page 81: Segurança Linux

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

Hardening  Linux  

•  Bonus  – Chave  Privada  no  pendrive  – ssh  –i  path  servidor  

Page 82: Segurança Linux

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

PERGUNTAS??  


Recommended