1 - Apresentação
2 - Arquivos de senhas
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:
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:
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
sysstat (detalhes envolvidos dos programas sa e arquivos de log)
Utilização do pacote do Systat, em Linux e em FreeBSD
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
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 ?
Exemplos de utilização:
Exemplos: www.cartel-securite.fr/pbiondi/scapy.html
Test the robustness of a network stack with invalid packets:
sr(IP(dst="172.16.1.1", ihl=2, options="b$2$", version=3)/ICMP())
Packet sniffing and dissection (with a bpf filter or thetereal-like output):
a=sniff(filter="tcp port 110")
a=sniff(prn = lambda x: x.display)
Sniffed packet reemission:
a=sniff(filter="tcp port 110")
sendp(a)
Pcap file packet reemission:
sendp(rdpcap("file.cap"))
Manual TCP traceroute:
sr(IP(dst="www.google.com", ttl=(1,30))/TCP(seq=RandInt(), sport=RandShort(), dport=dport)
Protocol scan:
sr(IP(dst="172.16.1.28", proto=(1,254)))
ARP ping:
srp(Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(pdst="172.16.1.1/24"))
ACK scan:
sr(IP(dst="172.16.1.28")/TCP(dport=(1,1024), flags="A"))
Passive OS fingerprinting:
sniff(prn=prnp0f)
Active OS fingerprinting:
nmap_fp("172.16.1.232")
ARP cache poisonning:
sendp(Ether(dst=tmac)/ARP(op="who-has", psrc=victim, pdst=target))
Reporting:
report_ports("192.168.2.34", (20,30))
4.6 - Narrow Security Scanner
Procura por vulnerabilidades (500+) em aplicações WEB bem como serviços (RPC, FTPD IMAPD, POP3 e Linuxconf) no endereço IP especificado.
nss -s 192.168.0.1
* Boa ferramenta para testar a segurança de WEB site. Disponível para Unix e Windows
http://packetstorm.decepticons.org/UNIX/scanners/nss/
5 - Serviços SSH e FTP
Controle de usuários, chroot, shells permitidos, hosts, modificação de atributos execução de comandos, criação de diretórios, etc.
Exercícios
Configuração dos servidores de FTP:
6 - Segurança no Sistema Operacional FreeBSD
Segurança em BSD: BSD Security
Livro : FreeBSD and OpenBSD Security
Livros sobre Segurança: Security.oreilly.com
HandBook do FreeBSD: HanbdBook FAQ do FreeBSD : FreeBSD FAQ
6.1 - Firewall IPFW para FreeBSD: Firewall IPFW
Artigo: IP Firewall no FreeBSD
Recomendações de Segurança do FreeBSD: Security Advisories
6.2 - Securing FreeBSD: Secure.pdf securing-freebsd FreeBSD_Basics
6.3 - Níveis de Segurança do Kernel do FreeBSD: www.dicas-l.com.br/dicas-l/20060711.php
Sistemas Operacionais seguros: www.trustedbsd.org www.openbsd.org
7 - Ferramentas para verificação de integridade dos dados:
Detecção de Root Kits: Chkrootkit (www.chkrootkit.org) Artigo: chkrootkit-ssi2001.pdf
7.1 - Ferramentas AIDE (Advanced Intrusion Detection Environment), substuituta do Tripwire:
7.2 - Ferramentas COPS (Computer Oracle and Password System):
Identifica riscos de segurança em sistema Unix. Verifica se o arquivo de senhas (/etc/passwd) está vazio, se existem arquivos com permissão de escrita para todos, se o servidor de FTP anônimo está mal configurado, dentre outros.
Disponível em:www.fish.com/cops/
7.3 - Ferramenta TIGER
Verificação de Segurança local: Permissões,em arquivos de senha, NFS, Sendmail, portas de rede, etc.
Verifica vulnerabilidades de segurança em sistemas Unix. É muito parecido com o COPS porém possui mais recursos.
7.4 - Detecção de incidentes de Segurança:
www.linorg.cirp.usp.br/Guias.Conectiva/Guias_V.10.0/servidor/pt_BR/ch15s09.html
7.5 - Outras ferramentas : ISS, Tripwire, Strobe, etc.
*** www.rnp.br/newsgen/9711/seguranca.html
7.6 - Artigo sobre testes de invasão:
www.revista.unicamp.br/infotec/artigos/frank3.html#2
7.7 - Ferramentas de Detecção de Corrupção do Sistema
7.8 - Proteção do Sistema
Ferramenta harden-tools
Criptografia no File System : cfs e encfs
Proteção do Debian Linux - HowTo: Securing-Debian-HowTo
Checagem da Segurança: checksecurity
Scanner de segurança no servidor WEB: nikto
8 - Ferramentas para TCP/IP:
Netcat (Netcat for Unix & Windows)
Mais detalhes: Netcat.txt
Exemplo de utilização
$> nc -v website.com 80 # digite no prompt GET / HTTP/1.0 ou HEAD /HTTP/1.0 para adquirir informações do WEB server.
Netcat como servidor e cliente:
No servidor colocar : nc -l 2233
No cliente colocar: nc 2233
Assim, os dois podem trocar mensagens
Pode-se especificar o uso de TCP e UDP
Mais detalhes e exemplos no man nc
Utilização do Netcat: Netcat - o canivete suíço do TCP/IP
8.1 - Ferramenta socket
Cria conexões TCP socket para entrada/saída de dados.
No FreeBSD : /usr/ports/sysutils/socket
Pode-se criar uma conexão TCP em determinada porta e epserar troca de dados nesta conexão:
Exemplos (man socket)
1 - No servidor colocar: socket -sl 2345
No cliente colocar : telnet localhost 2345 e passar os dados. O cliente vai mostrar dados recebidos.
2 - Pode-se executar um determinado comando ou programa ao se conectar numa determinada porta TCP:
Colocar no servidor: socket -wslqvp "echo Funciona legal" 2345
Colocar no cliente: telnet localhost 2345 , isso vai mostrar a mensagem "Funciona legal" e fechar a conexão.
9 - Ferramentas para análise de Rede TCP/IP
www.linorg.cirp.usp.br/Guias.Conectiva/Guias_V.10.0/servidor/pt_BR/ch15s08.html
Ferramentas para FreeBSD: sockstat, systat, fstat, ifstat, netstat, nfsstat, ps, iostat, pstat e vmstat . Instalação e utilização.
Ferramentas para o Linux :dstat, ifstat (para Kernel 2.6), systat (sar, iostat e mpstat). Instalação e utilização.
10 - Utilização de ferramentas - técnicas de invasão.
*** www.informabr.com.br/tecnicas.htm www.invasao.com.br
11 - Sistemas para IDS (Intrusion Detect System)
São sistemas e ferramentas para a detecção de intrusão, invasão e comprometimento de um servidor. Detecta pacotes que podem estar trafegando na rede e causando danos.
*** O que é e como funciona uma ferramenta IDS:www.clm.com.br/snort/comofuncionaids.asp
Understanding IDS for Linux: www.linuxjournal.com/article/5616
Sistemas de Detecção de Intrusão: www.lockabit.coppe.ufrj.br/downloads/academicos/IDS.pdf
Sistemas de Detecção de Intrusão e Aspectos Legais: www.absoluta.org/seguranca/seg_ids.htm
Introdução a Sistemas de Detecção de Intrusão: www.gta.ufrj.br/grad/03_1/sdi/
SNORT: www.snort.org
Manual do SNORT: www.bsbnet.com/snort/
Utilização do SNORT em IDS: www.linuxjournal.com/article/4668
*** Snort Brasil:www.clm.com.br/snort/snort.asp
*** Utilização do SNORT com MySQL: www.pop-pr.rnp.br/tiki-index.php?page=IDS+Snort
1 - Instalar os programas socket, netcat e dfstat e verificar suas funcionalidades.
2 - Utilizar o comando socket para criar uma conexão e verificar através do nmap ou nmapfe a situação das portas TCP. Verificar também com o comando lsof.
3 - Utilizar o comando netcat para trabalhar como cliente e servidor. Verificar com um port scanner a presença do netcat.
4 - Utilizar o comando dfstat para verificar a situação do servidor Linux.
5 - Utilizar os comandos do pacote netdiag para fazer os diagnósticos na rede, nas conexões TCP, situação da rede, tráfego de dados, etc.
6 - Utilizar os comandos nmap e lsof para verificar as conexões TCP, portas em utilização e arquivos que estão sendo usados por determinados processos.
7 - Utilizar o software chkrootkit para examinar as conexões de rede, rootkits suspeitos, possíveis programas infectados por rootkits, etc.
8 - Como detectar um Sniffer na rede ?
9 - O que significa uma placa de rede trabalhando em modo Promíscuo ? Como fazer para que ela saia do modo Promíscuo ?
10 - Qual a função básica de um Firewall ? Como ele pode ser utilizado ?
11 - Instalar o SSH DropBear e o FTP server VSFTPD.
12 - Proteger as configurações dos dois serviços acima.
13 - Fazer varredura de portas com o NMAP e o STROBE (componente do netdiag) na própria máquina e em mais uma máquina.
14 - Desabilitar o TELNET e instalar o TELNETS (Telnet com SSL).
15 - Verificar as portas abertas e protegê-las. Usar os programas lsof, netstat, sockstat e nmap.
16 - Usar o /etc/inetd.conf e /etc/init.d/ para ver a lista de Daemons que podem ser inicializados. Fazer adaptações de modo a se colocar novos serviços.
17 - Usar o comando lsof para verificar serviços de rede/processos e arquivos usados por cada processo, etc.
18 - Verificar os arquivos de log od Servidor Web Apache e procurar por suspeitas de ataques CGI, execução de programas executáveis, etc. Usar o programa NESSUS para verificação mais detalhada e diversificada das vulnerabilidades existentes.
19 - Elabore um esquema de bloqueio de conexões ao seu servidor Debian Linux. Deve-se aceitar conexões SSH e FTP de poucos usuários e endereços IP.
20 - Um servidor Linux foi considerado HACKEADO e está comprometido. Os dados dos usuários devem ser preservados e o HACKER deve ser identificado.
Qual o procedimento que você adotaria considerando a seguinte situação:
21 - Na verificação de certos pacotes e serviços instalados num Unix, o que deve ser considerado em relação a possíveis vulnerabilidades dos serviços disponibilizados ? Como manter o servidor em funcionamento próximo do ideal ?
22 - Como estabelecer limites para os usuários dum S.O. Unix ? Quais tipos de limites julga necessários ?
23 - Como fazer para verificar constantemente a integridade dos arquivos e diretórios do Unix ?
24 - Como proteger o Kernel de um S.O. Unix, evitar a instalaçao de Rootkits ? Elabore um esquema de proteção.
25 - Como fazer um teste das possíveis vulnerabilidades que um S.O. Unix pode apresentar ? Quais ferramentas e metodologia você utilizaria ? Justifique.
*** Apostilas Treinamento UNICAMP: www.ccuec.unicamp.br/treinamentos/index_html
Livros Unix / Linux: WWW.LINORG.CIRP.USP.BR/livros.html
Qual Unix usar ? Como escolher ?
Sistema Operacional FreeBSD