quinta-feira, setembro 23, 2010
Simples Programa de Backup de MySQL
terça-feira, julho 13, 2010
Capítulo 3 - OSPF
Revisão do OSPF
Estrutura da Rede OSPF
- minimiza o número de rotas/registros na tabela de roteamento.
- reduz o flooding de LSAs dentro de uma área.
- minimiza os impactos de mudanças na topologia.
- reforça a necessidade de um design hierárquico nas redes.
- Roteador Interno: possui todas as suas interfaces em uma área.
- Roteador Backbone: possui pelo menos uma interface configurada na área zero.
- ABR: possui interfaces em duas ou mais áreas.
- ASBR: possui interfaces dentro e fora do domínio de roteamento OSPF.
segunda-feira, julho 05, 2010
Aula 1 - Gestão de Segurança da Informação
Segurança da Informação
- Segurança da Informação
- Segurança de TI (Tecnologia da Informação)
- tempo de retenção da informação
- modalidades/classes de acesso da informação
Necessidade da Auditoria
Integração com os usuários
- Treinamento: habilidades técnicas
- Concientização: visão da importância e do valor
Plano de Contingência
Determinação da Realidade de Segurança da Informação
- Entendimento do Negócio
- Análise de Aderência: esta análise é baseada na ISO 27002.
- Análise de Risco
Caso de Controle de Segurança da Informação - Gerência de Usuários Centralizada
- Controle de acesso através de Single Signon
- Enquadramento do RH junto com o NTI
- Controle e configuração de usuários centralizado, jamais usuários locais. Para isso existe um usuário administrador local único.
Comunicação de Incidentes
Propriedades dos Serviços de Segurança
- Confidencialidade
- Autenticidade
- Integridade
- Não repúdio
- Conformidade
- Controle de Acesso
- Disponibilidade
Histórico de Incidentes
Análise e Avaliação de Riscos
Descrição de Normas de Gestão de Segurança da Informação
Questões para Discussão
- Como é gerenciado os incidentes de segurança na minha instituição ?
- O que é considerado confidencial na minha instituição ?
- Como deve ser conformado o Comitê Gestor de Segurança da Informação na minha instituição ?
sábado, junho 26, 2010
Polêmica: NAT e a Segurança
Contexto
O que é o NAT ?
O NAT e a Segurança de Redes
- Técnicamente falando, NAT não é uma técnica de firewalling, apenas mapeamento de endereços de rede por um outro tipo de endereço.
- Na prática, todo roteador com funcionalidades de NAT já possui funcionalidades de firewalling ou acls que acompanham o uso do NAT.
- As máquinas de dentro da rede privada podem enviar pacotes para fora e estabelecer conexões.
- As máquinas na rede pública não podem realizar conexões com as máquinas da rede interna, a menos que seja estabelecido explicitamente um tunel ou redirecionamento pelo administrador do NAT.
sexta-feira, junho 18, 2010
Instalação da Firewall APF no CentOS
Introdução
A firewall APF é uma ótima escolha para servidores conhecidos como BASTION HOST, isto é, servidores em uma rede pública aberta e sem maiores filtros (exemplo, uma DMZ).
Os recursos do APF passam desde a clássica configuração de regras INBOUND e OUTBOUND até recursos avançados de blacklists dinâmicas, testes de integridade de pacotes e muito mais.
A página oficial do projeto é:
http://www.rfxn.com/projects/advanced-policy-firewall/
Instalação
O pacote pode ser instalado de duas formas:
- Utilizando o pacote com instalador do site do projeto.
- Utilizando o repositório rpmforge.
Utilizando o pacote com instalador do site do projeto
O pacote com instalador disponibilizado pelo site do projeto é moldado especificamente para a distribuição CentOS. Já ativa os scripts de inicialização e de manutenção do logrotate.
O pacote está disponível em:
http://www.rfxn.com/downloads/apf-current.tar.gz
| [root@baco ~]# wget http://www.rfxn.com/downloads/apf-current.tar.gz --2010-06-14 10:57:10-- http://www.rfxn.com/downloads/apf-current.tar.gz Resolving www.rfxn.com... 208.76.83.136 Connecting to www.rfxn.com|208.76.83.136|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 106373 (104K) [application/x-gzip] Saving to: `apf-current.tar.gz' 100%[=================================>] 106,373 98.1K/s in 1.1s 2010-06-14 10:57:12 (98.1 KB/s) - `apf-current.tar.gz' saved [106373/106373] [root@baco ~]# gunzip apf-current.tar.gz [root@baco ~]# tar -xvf apf-current.tar [root@baco ~]# cd apf-9.7-1/ [root@baco apf-9.7-1]# ls apf.init CHANGELOG COPYING.GPL cron.daily files importconf install.sh logrotate.d.apf README.apf [root@baco apf-9.7-1]# ./install.sh Installing APF 9.7-1: Completed. Installation Details: Install path: /etc/apf/ Config path: /etc/apf/conf.apf Executable path: /usr/local/sbin/apf Other Details: Listening TCP ports: 8080 Listening UDP ports: 47592 Note: These ports are not auto-configured; they are simply presented for information purposes. You must manually configure all port options. |
Utilizando o repositório rpmforge
O repositório RPMFORGE disponibiliza um pacote RPM para a firewall APF.
Para adicionar o repositório RPMFORGE consultar o site:
http://rpmrepo.org/RPMforge/Using
Baixar o pacote correspondente a versão do CentOS procurada:
http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i386.rpm
| [root@baco ~]# rpm -Uvh rpmforge-release-0.5.1-1.el5.rf.i386.rpm [root@baco ~]# rpm --import /etc/pki/rpm-gpg/* [root@baco ~]# yum install apf |
Utilizando o comando NETCAT (nc) no GNU/Linux
Principais opções do comando
[root@omicron ~]# nc -h usage: nc [-46DdhklnrStUuvzC] [-i interval] [-p source_port] [-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_version] [-x proxy_address[:port]] [hostname] [port[s]] Command Summary: -4 Use IPv4 -6 Use IPv6 -D Enable the debug socket option -d Detach from stdin -h This help text -i secs Delay interval for lines sent, ports scanned -k Keep inbound sockets open for multiple connects -l Listen mode, for inbound connects -n Suppress name/port resolutions -p port Specify local port for remote connects -r Randomize remote ports -s addr Local source address -T ToS Set IP Type of Service -C Send CRLF as line-ending -t Answer TELNET negotiation -U Use UNIX domain socket -u UDP mode -v Verbose -w secs Timeout for connects and final net reads -X proto Proxy protocol: "4", "5" (SOCKS) or "connect" -x addr[:port] Specify proxy address and port -z Zero-I/O mode [used for scanning] Port numbers can be individual or ranges: lo-hi [inclusive] |
Abrindo no servidor omicron a porta TCP 1111 e colocando ela no modo LISTEN (-l)
[root@omicron ~]# nc -4 -l 172.16.1.125 1111 |
Abrindo no servidor marte uma conexão cliente e realizando uma digitação de texto para verificar
[root@marte:/home/klaus]# nc 172.16.1.125 1111 Teste da marte oi aqui é da marte |
Logo aparecerá o mesmo texto digitado no servidor omicron.
Os testes com o protocolo UDP possuem algumas considerações para fazer.
[root@omicron nc-1.84]# nc -l -u 172.16.1.125 2525 |
No cliente marte foi executado o seguinte comando:
[root@marte:/home/klaus]# echo "teste UDP" | nc -w 1 -u 172.16.1.125 2525 |
quinta-feira, junho 03, 2010
Resumo das Características Básicas do IPv6
- 128 bits de espaço de endereçamento;
- arquitetura de endereçamento melhor estruturada;
- suporte para "datagramas jumbo" (o IPv4 suporta somente 64 Kbytes no tamanho do pacote);
- mobilidade;
- configuração plug-and-play (stateless address config);
- mecanismos de segurança, incluindo encriptação e autenticação;
- suporte para multicasting e anycasting;
- suporte a aplicações multimídia em tempo real.
domingo, maio 23, 2010
Revisão Básica de IPv6 - CCNA
Introdução
Motivação para o Surgimento do IPv6
- Esgotamento do espaço de endereçamento do IPv4. Na teoria o IPv4 possui um espaço de endereçamento aproximado de 232 = 4 bilhões.
- Problemas causados pelo NAT. A tecnologia do NAT surgiu para enfrentar o problema de falta de espaço de endereçamento do IPv4. Porém trouxe outras consequências como a quebra do paradigma ponto-a-ponto na comunicação pela Internet.
- Necessidade de incorporar dentro do datagrama IPv6 atributos de QoS.
- Necessidade de recursos de mobilidade (usuários de celular com conectividade na Internet).
- Novas funcionalidades de segurança e fragmentação, assim como a possibilidade de adicionar novos campos AD-HOC (sob demanda).
Novas Funcionalidades do IPv6
- Maior espaço de endereçamento.
- Auto-configuração: o próprio protocolo possui recursos para "stateless autoconfiguration", isto é, configura um endereço sem a necessidade de um servidor DHCPDv6.
- Novo cabeçalho, com possibilidades de adicionar novos campos AD-HOC (sob demanda).
- Suporte a QoS (classes de serviço).
- Suporte de segurança por criptografia IPSEC.
Novo Cabeçalho IPv6
- Tamanho de 40 bytes.
- Novos campos: Traffic Class e Next Header.
Endereçamento IPv6
- prefixo de rede.
- sufixo de host.
- zeros a esquerda podem ser suprimidos.
- blocos de zeros encadeados (apenas um bloco pode ser encadeado).
- Endereço original - 0FFE:6A88:0000:0000:00A3:0000:0000:0721
- supressão de zeros a esquerda - FFE:6A88:0000:0000:A3:0:0:721
- blocos de zeros encadeados - FFE:6A88::A3:0:0:721
Estrutra do Endereço IPv6
- Global Routing Prefix: 48 bits
- Subnet Prefix: 16 bits
- Interface ID: 64 bits
Tipos de Endereço IPv6
- UNICAST: pacotes de dados são enviados a um único destinatário.
- Global Unicast: endereço público roteável.
- Link Local: endereços privados não roteáveis.
- Unique Local: não roteáveis na Internet porém são únicos.
- MULTICAST: pacotes de dados são enviados a todos os participantes do grupo.
- ANYCAST: pacotes de dados são enviados ao mais próximo participante do grupo.
Transição de IPv4 para IPv6
- Dual Stacking: ambas versões do protocolo rodam em routers e estações.
- Tunelamento 6to4: encapsulamento do IPv6 com um cabeçalho IPv4.
- Mapeamento: endereços IPv4 são reescritos como endereços IPv6 (::200.18.67.24)
Reconhecendo Endereços IPv6
| Descrição | Endereço |
| Loopback | ::1 |
| Intervalo Global Unicast | 2000::/3 |
| Intervalo Unique Local | FC00::/7 |
| Intervalo Link Local | FE80::/10 |
| Intervalo Multicast | FF00::/8 |
| Intervalo Modo 6to4 (para tunelamento) | 2002::/16 |
domingo, dezembro 27, 2009
Configuração Avançada do YUM
[root@hermes ~]# cd /etc/yum.repos.d/ [root@hermes yum.repos.d]# ls CentOS-Base.repo CentOS-Media.repo Citrix.repo epel.repo epel-testing.repo mirrors-rpmforge remi.repo rpmforge.repo |
[root@hermes yum.repos.d]# cd /etc/yum/ [root@hermes yum]# ls pluginconf.d [root@hermes yum]# cd pluginconf.d/ [root@hermes pluginconf.d]# ls fastestmirror.conf security.conf |
[root@hermes ~]# cat /etc/yum.conf [main] cachedir=/var/cache/yum keepcache=0 debuglevel=2 logfile=/var/log/yum.log distroverpkg=redhat-release tolerant=1 exactarch=1 obsoletes=1 gpgcheck=1 plugins=1 # Set to ‘1’ if you wish to show any duplicate packages from any repository, from package listings like the info or list commands showdupesfromrepos=1 # Note: yum-RHN-plugin doesn't honor this. metadata_expire=1h installonly_limit = 5 # PUT YOUR REPOS HERE OR IN separate files named file.repo # in /etc/yum.repos.d [root@hermes ~]# man yum.conf [root@hermes ~]# cat yum.conf cat: yum.conf: No such file or directory [root@hermes ~]# cat /etc/yum.conf [main] cachedir=/var/cache/yum keepcache=0 debuglevel=2 logfile=/var/log/yum.log distroverpkg=redhat-release tolerant=1 exactarch=1 obsoletes=1 gpgcheck=1 plugins=1 showdupesfromrepos=1 # Note: yum-RHN-plugin doesn't honor this. metadata_expire=1h installonly_limit = 5 # PUT YOUR REPOS HERE OR IN separate files named file.repo # in /etc/yum.repos.d |
- RedHat advisory
- RedHat Bugzilla database
- CVE number from MITRE's Common Vulnerabilities and Exposures directory
- yum list-sec: lista os pacotes utilizando o RedHat Advisory ID e a classificação de cada update conforme os tipos enhancement, bugfix ou security.
- yum list-sec cves: lista os pacotes substituindo o RedHat Advisory ID pelo CVE ID.
- yum list-sec bzs: lista os pacotes utilizando o RedHat Bugzilla ID
quinta-feira, maio 21, 2009
Problemas com RBLs
Minha atual configuração de RBLs no Postfix
reject_rbl_client zen.spamhaus.org,
reject_rbl_client dul.dnsbl.sorbs.net,
reject_rbl_client list.dsbl.org,
reject_rbl_client cbl.abuseat.org,
reject_rbl_client bl.spamcop.net,
reject_rbl_client ix.dnsbl.manitu.net,
reject_rbl_client combined.rbl.msrbl.net,
reject_rbl_client l2.apews.org,
Porém depois de aplicar o seguinte comando:
[root@prometeu log]# cat maillog | grep 'RBL lookup error' | wc -l
19875
É possível observar uma taxa muito alta de erros.
A documentação não é muito clara no sentido. A zen.spamhaus.org comunica que se o número de consultas for superior a um limite estabelecido então a conexão será cortada a não ser que seja feito um contrato profissional.
Revisando cada RBL conforme os comandos abaixo:
[root@prometeu log]# cat maillog | grep 'RBL lookup error' | grep 'zen.spamhaus.org' | wc -l
73
[root@prometeu log]# cat maillog | grep 'RBL lookup error' | grep 'dul.dnsbl.sorbs.net' | wc -l
0
[root@prometeu log]# cat maillog | grep 'RBL lookup error' | grep 'list.dsbl.org' | wc -l
9557
[root@prometeu log]# cat maillog | grep 'RBL lookup error' | grep 'cbl.abuseat.org' | wc -l
1
[root@prometeu log]# cat maillog | grep 'RBL lookup error' | grep 'bl.spamcop.net' | wc -l
3
[root@prometeu log]# cat maillog | grep 'RBL lookup error' | grep 'ix.dnsbl.manitu.net' | wc -l
3
[root@prometeu log]# cat maillog | grep 'RBL lookup error' | grep 'combined.rbl.msrbl.net' | wc -l
0
[root@prometeu log]# cat maillog | grep 'RBL lookup error' | grep 'l2.apews.org' | wc -l
0
[root@prometeu log]# cat maillog | grep 'RBL lookup error' | grep 'sbl-xbl.spamhaus.org' | wc -l
10241
RBLs que atualmente estão funcionando:
reject_rbl_client dnsbl.njabl.org,
reject_rbl_client dul.dnsbl.sorbs.net,
reject_rbl_client cbl.abuseat.org,
reject_rbl_client bl.spamcop.net,
reject_rbl_client ix.dnsbl.manitu.net,
reject_rbl_client combined.rbl.msrbl.net,
A RBL l2.apews.org foi retirada por ser restritiva demais e gerar um alto número de falsos positivos.
quinta-feira, maio 14, 2009
Tópicos para Programar C em Linux
Tópicos para Programar C em Linux
Os seguintes exemplos abaixo permitem iniciar a programação em C com o Linux. Foram retirados do Site VIVAOLINUX.
1) Para compilar um programa em C a partir do linux.
$ gcc pessoal1.c -o pessoal1
2) Exemplo de programa C em Linux.
#include <stdio.h>
int main()
{
printf("oi, pessoal! \n");
while(!getchar());
return 0;
}
Executando:
$ ./hello
O programa de exemplo:
#include
int main (){
printf ("Hello, world!\n");
while(!getchar());
return 0;
}