Segurança em Sistemas Operacionais Unix/Linux

Centro de Informática de Ribeirão Preto - CIRP

Segurança em Sistemas Operacionais Unix/Linux

1 - Apresentação


2 - Arquivos de senhas


Dica : Acompanhar o que o usuário está digitando

2.1 - Atributos e Permissões de arquivos

2.2 - Proteção em partições e arquivos de inicialização, terminais, etc.

2.3 - Proteção no Sistema de Arquivos

2.4 - Exercícios com os recursos citados no itens anteriores.

3 - PAM - Módulo de autenticação Plugável

Utilização com SSH, telnet, POP e IMAP, SUDO

Exercícios com atribuição de permissão de su para poucos usuários, controle de recursos, CPU, memória, etc.

Controle dos serviços POP e IMAP:

Referências:

3.1 - Exemplos de utilização do PAM:

Usando o PAM para limitar o uso de recursos no servidor.

Fazer com sessões de shell iniciadas por usuários ou grupo de usuários tenham restrições quanto ao uso de recursos da máquina como:

  • Número máximo de arquivos abertos.
  • Prioridade para rodar processos
  • Máximo uso do processador
  • Máximo uso de memória
  • Máximo uso de forks (processos)
  • Número máximo de logins (veja ulimit). Ver arquivos do diretório /etc/security/

    3.2 - Configurando o PAM

    Primeiro deve-se selecionar o serviço que se irá aplicar estas restrições.

    Como exemplo limitaremos o uso de recursos de sessões abertas pelo ssh, sessões remotas.

    Altere o /etc/pam.d/sshd e inclua a linha depois do último "session required":

    • session    required     pam_limits.so
    • session    required     /lib/security/pam_limits.so

    Exemplos:

    1 - Limitar número máximo de processos para 6 e quantidade de logins para 2 de todos os usuários.

    Alterar o arquivo /etc/security/limits.conf

    •  *               hard    nproc           6
    •  *               hard    maxlogins       2

    É importante frisar que nenhuma restrição pode ser aplicada ao usuário root.

    - Alterar o arquivo /etc/security/access.conf:

    -:ALL EXCEPT root:LOCAL

    Isso vai proibir accesso remoto para o root, só permite localmente.

    *** www.newsforge.com/article.pl?sid=04/09/20/1556223

    Exercícios:

    • 1 - Configurar o PAM de modo a permitir que apenas alguns usuários possam se tornar root.
    • 2 - Configurar o PAM para os serviços IMAP e POP - (www.faqs.org/docs/securing/chap23sec189.html)
    • 3 - Controlar o acesso ao servidor, via SSH, em determinados dias e horários apenas.
    • 4 - Configurar os limites do servidor, estabelecendo o número máximo de processos, conexões simultâneas, número de conexões dos usuários, ftp users, tempo de conexão, falhas de autenticação, etc.
    • 5 - Através do link : www.linuxsecurity.com/docs/harden-doc/html/securing-debian-howto/ch4.en.html#s4.9.8, faça uma comparação com as configurações padrões dos servidores Linux, instalação default.
    • 6 - Instalar o Módulo do de configuração do PAM para o WEBMIN (www.webmin.com)

    4 - Ferramentas de varredura e Scan ports

    4.1 - Verificações com programas netstat e lsof

    Exemplos de utilização:

    
    	lsof -P -n -r -i tcp:80 | grep ESTABLISHED
    	lsof | grep t0rn --->  detecta t0rnrootkit
    	lsof -i tcp:9611 
    	lsof -i tcp:5874 
    	lsof -i TCP:12754
    	lsof -i tcp:22
    	netstat -an
    	lsof | grep LISTEN
    	netstat -an | grep LISTEN
    	nmap hostname
    	lsof -P -n -i
    	lsof -P -n -i tcp:139
    	lsof -P -n -i tcp:80
    	lsof -P -n -i tcp:22
    

    4.2 - Verificação do Status do Servidor

    systat (detalhes envolvidos dos programas sa e arquivos de log)

    Utilização do pacote do Systat, em FreeBSD

    • systat -vmstat
    • systat -iostat
    • systat com os argumentos: icmp, icmp6,ifstat, iostat, ip, ip6, mbufs, netstat, pigs, swap, tcp, vmstat

    Utilização do pacote do SAC (System Accounting), em Linux

    • Instalação: Aptitude install sac
    • sac --help
    • sac -r

    4.3 - Monitoração das atividades de Rede

    • Pacotes iptraf, trafshow, netdiag, iplog (TCP/IP traffic logger)
    • Utilização do IPLOG:
    • /usr/local/sbin/iplog -o -L -z -u iplog --tcp=false --icmp=false -F --icmp-resolve=false -N --udp-resolve=false -i rl0
    • # Mais detalhes em /usr/local/etc/iplog.conf

    4.4 - Escuta de tráfego e Sniffers

      O objetivo é detectar o tráfego de rede. Ferramentas para auditar a rede e fazer testes de invasão. Procurar por senhas, e-mails, arquivos e etc. Interceptar o tráfego de rede direcionados a servidores SSH, explorar sessões HTTPS em ambientes fechados.

    • Utilização dos programas ethereal, tethereal, ngrep, tcpdump, scapy e dsniff
    • Outras ferramentas SNIFFER para Linux: apt-cache search sniffer
    • Como detectar sniffers na rede ?
    • Detecção remota de Sniffers
    • Software dsniff:
    • dsniff is a collection of tools for network auditing and penetration testing. dsniff, filesnarf, mailsnarf, msgsnarf, urlsnarf, and webspy passively monitor a network for interesting data (passwords, e-mail, files, etc.). arpspoof, dnsspoof, and macof facilitate the interception of network traffic normally unavailable to an attacker (e.g, due to layer-2 switching). sshmitm and webmitm implement active monkey-in-the-middle attacks against redirected SSH and HTTPS sessions by exploiting weak bindings in ad-hoc PKI. WWW: http://www.monkey.org/~dugsong/dsniff/


    Exemplos de utilização: