No último dia 31/08/09 o hacker conhecido como Kingcope, divulgou no site milw0rm um exploit 0day que explora vulnerabilidades no serviço IIS FTP do windows server. De acordo com a Microsoft as versões afetadas vão desde windows 2000 até 2008, passando por XP e Vista. Até o presente momento não existe correção para esta falha, porém a microsoft "recomenda" alguns "workarounds"(vulgo GATO): 1º Tire o serviço do ar se não utiliza-lo x); 2º Remova a permissão de escrita no diretório do FTP para usuários anônimos; 3º Não permita acesso de usuários anônimos (detalhe, por default o serviço permite); 4º Modifique as permissões do drive NTFS para não permitir a criação de diretórios;
Nos próximos posts, irei descrever como uma técnica(Single Packet Authorization) pode ser útil para que o ataque por um exploit 0day não tenha sucesso!!! =D
* VERSÃO → corresponde a versão do CentOS (4.4, 5, 5.2,…) * os → corresponde ao diretório para onde serão copiados todos os CDs/DVDs da versão correspondente (diretório base) * updates → corresponde ao diretório para onde serão sincronizados todas as atualizações do CentOS * i386 → arquitetura 32 bits * x86_64 → arquitetura 64 bits
O repositório base, localizado dentro do diretório “os”, é o local onde serão copiados os CDs/DVDs da versão correspondente. Por exemplo, na versão 5:
* cp -R /CDROM /var/www/html/centos/5/os/i386/
Após a criação do repositório base, devemos executar o comando createrepo que cria informações de repositório para oferecer suporte a novas versões do yum (e possivelmente para repositórios de outros programas clientes). O comando createrepo armazena estes dados numa pasta chamada repodata.
* createrepo /var/www/html/centos/5/os/i386/
- Sincronizando o Repositório
A sincronização do repositório, deve ser feita com algum Mirror oficial do CentOS, garantindo assim uma fonte confiável. Os mirrors disponíveis podem ser localizados neste link:
Obs1: Este passo, quando feito pela 1º vez tende a demorar bastante, visto que o rsync vai sincronizar seu servidor atual (vazio) com a base atualizada, tendo que fazer o download de todos os pacotes. Da 2º vez em diante, o rsync faz a adição/remoção apenas das diferenças, o que tende a ser muito mais rápido
Obs2: É recomendável colocar o comando descrito acima no crontab, para que em um intervalo de tempo programável ele seja executado.
Obs3: Certifique-se que a porta 22, que é utilizada pelo rsync, está aberta no firewall. Caso contrário a sincronização irá falhar.
Após este passo, o seu servidor de repositório CentOS já está em funcionamento. Configurando o Cliente
A configuração do cliente se dá através da edição de um arquivo. Edite o arquivo CentOS-Base.repo e coloque apenas o conteúdo abaixo:
Este foi um dos temas que estava na minha lista de possíveis temas para a monografia da pós em segurança da informação. Apesar de não ter sido escolhido, devido a falta de documentação, vale a pena um post no blog sobre o futuro da criptografia e de toda a computação. A criptografia clássica, baseada na matemática, utiliza a fatoração de números primos para a construção dos seus problemas. Sabe-se que todo e qualquer problema baseado na criptografia clássica é vulnerável a um tipo de ataque, a força bruta. No entanto, pode acontecer o seguinte: os recursos gastos para a resolução de um problema, podem ser maiores do que a informação ali contida. Isto acontece devido ao poder computacional atual, que não consegue em tempo hábil resolver tais problemas. Com o advento da computação quântica, os sistemas criptográficos baseados na criptografia clássica estão prestes a se tornarem obsoletos. Isto deve-se ao altissímo poder computacional dos computadores quânticos, que conseguirão resolver problemas matemáticos em um intervalo de tempo muito curto. Além disso, uma linha de pesquisa conhecida como criptografia quântica, está sendo considerada como a criptografia inquebrável, até mesmo pelos computadores quânticos. A criptografia quântica, que tem seus princípios básicos na mecânica quântica, é uma linha de estudo que visa aperfeiçoar a criptografia clássica atual, utilizando a natureza quântica dos fótons para a distribuição segura de chaves em um meio inseguro (Internet).
Indiscutivelmente o melhor evento de Software Livre do Brasil. O FISL (Fórum Internacional de Software Livre) esse ano esteve na sua 10º edição, e essa foi minha segunda participação. Pra quem nunca foi, fica o convite para o próximo ano =D
Este post serve para aqueles que estão utilizando o VMWare ESXi, e necessitam que suas máquinas virtuais tenham acesso a storages externos(Sun, HP, FreeNAS,...) e compartilhados. Antes de configurar o acesso é necessário configurar toda a estrutura necessária para que o hipervisor tenha acesso ao storage, como por exemplo: - instalar a interface HBA no Hipervisor - Conectar a Fibra na interface HBA e no Storage - Criar e configurar o acesso dessa HBA as LUNs no storage Feito isso, podemos partir para a configuração nas máquinas virtuais. Depois de quebrar muito a cabeça, pude verificar que o processo é muito simples. Nas configurações da máquina virtual que terá acesso ao storage, você deve adicionar um novo controlador SCSI e marcá-lo como físico, como a imagem abaixo. Feito isso, crie um novo disco, setando a LUN do storage que você deseja, e coloque como controlador SCSI o criado no passo anterior.
Faz um tempo que estou com este post guardado, e agora resolvi colocar aqui pra esclarecer melhor as dúvidas sobre a integração do Samba com o LDAP. Não porque seja difícil e trabalhoso, mas sim por falta de organização da minha parte =D.
Um dos principais problemas que os administradores de rede (Linux) enfretam, é ter que gerenciar todas as informações (login e password) relativas a usuários de uma maneira descentralizada, por exemplo: um novo usuário chega na sua empresa e então começa a peregrinação dos admininstradores, tendo que percorrer todos os serviços(mail, proxy, domínio,...) que serão alocados para este usuário e criar contas separadamente para cada serviço.
Derivando do X.500, o LDAP (Lightweight Directory Access Protocol) surge como uma alternativa para o problema citado no exemplo acima. Existem diversas aplicações para o LDAP, dentre as mais conhecidas estão o OpenLDAP e o Active Directory.
Criei um cenário, que está exemplificado na figura abaixo:
Neste cenário utilizei um servidor Debian lenny, com o OpenLDAP instalado, além do phpLDAPadmin, que é uma interface WEB de gerenciamento para a base LDAP. No lado cliente utilizei um Windows 2000 professional, que irá acessar os compartilhamentos concedidos pelo Samba.
Os pacotes instalados (via apt-get) no servidor foram:
slapd
lpad-util
libdb4.3
libdb4.3-dev
libdb4.3-util
phpldapadmin
samba
smbldap-tools
smbclient
smbfs
Após a instalação, edite o arquivo /etc/ldap/slapd.confda sequinte maneira:
#Arquivos Schema
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/samba.schema #obtido junto ao tarball do samba
#Parâmetros de log
loglevel 0
pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args
# Where the dynamically loaded modules are stored
modulepath /usr/lib/ldap
moduleload back_bdb
#Parâmetros do Banco de Dados
database bdb
sizelimit 500
tool-threads 1
backend bdb
checkpoint 512 30
#Raiz da Arvore
suffix "dc=empresa,dc=com"
#Administrador do domínio
rootdn "cn=administrador,dc=empresa,dc=com"
rootpw "senha123"
Após a configuração do slapd.conf vamos criar os arquivos ldifs, que é um modelo de arquivo para a inserção de dados na árvore de diretório. Neste exemplo iremos criar 3 arquivos:
Domínio
Equipes
Usuários
- dominio.ldif:
dn: dc=empresa,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
dc: empresa
o: empresa
- equipe.ldif:
dn: ou=atendimento,dc=empresa,dc=com
objectClass: top
objectClass: organizationalunit
objectClass: dcObject
dc: empresa
ou: atendimento
dn: ou=redes,dc=empresa,dc=com
objectClass: top
objectClass: organizationalunit
objectClass: dcObject
dc: empresa
ou: redes
dn: ou=seguranca,dc=empresa,dc=empresa
objectClass: top
objectClass: organizationalunit
objectClass: dcObject
dc: empresa
ou: seguranca
dn: ou=bd,dc=empresa,dc=com
objectClass: top
objectClass: organizationalunit
objectClass: dcObject
dc: empresa
ou: bd
- usuarios.ldif:
dn: uid=joao,ou=atendimento,dc=empresa,dc=com
objectClass: top
objectClass: person
objectClass: inetorgperson
cn: joao
sn: Carneiro
mail: joao@empresa.com
telephonenumber: 3157-4403
uid: joao
userPassword: senha123
dn: uid=andre,ou=redes,dc=empresa,dc=com
objectClass: top
objectClass: person
objectClass: inetorgperson
cn: andre
sn: Silva
mail: andre@empresa.com
telephonenumber: 3467-9251
uid: andre
userPassword: senha123
dn: uid=maria,ou=seguranca,dc=empresa,dc=com
objectClass: top
objectClass: person
objectClass: inetorgperson
cn: maria
sn: Villas
mail: maria@empresa.com
telephonenumber: 3512-0245
uid: maria
userPassword: senha123
dn: uid=marcos,ou=bd,dc=empresa,dc=com
objectClass: top
objectClass: person
objectClass: inetorgperson
cn: marcos
sn: Nobrega
mail: marcos@empresa.com
telephonenumber: 3234-7640
uid: marcos
userPassword: senha123
Após criar os arquivos, o próximo passo é adicionar a base LDAP. Adicione os arquivos com os seguintes comandos: