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
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/ [email protected]:/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??