Archive for the ‘Servidores’ Category

Ldap – Usuários, maquinas, tudo num lugar só!

Olá pessoas, depois de um tempinho sem postar, venho aqui para poder dar um tutorial de como usar o maravilhoso OpenLDAP para colocar seus usuários tudo num lugar só, integrando SAMBA e outras coisitas mais. Vou fazer o post por partes, primeiro como instalar e configurar o LDAP, depois disso, como iremos integrar, ferramenta-por-ferramenta, no final das contas, o meu projeto estara concluido :D

As ferramentas a serem integradas são essas:

  • SQUID
  • SAMBA
  • DNS
  • Autenticação PAM
  • Autenticação para scripts PHP
  • Asterisk
  • RADIUS com PPPOE

E que tudo comece!

LDAP é um protocolo maravilhoso, como um banco de dados é uma maravilha, um só banco de dados, com todas as informações necessárias para a autenticação dos mais diversos tipos de sistemas.

Imagine você, que com uma só ferramenta, você insere usuários no banco de dados e eles já podem logar em qualquer canto do seu sistema :D Isso é ótimo!

Mas chega de papo-furado, vamos ao caso!

Não vou ensinar como instalar o LDAP aqui, até pq a Internet esta cheia de tutoriais para isso! Usem o Let me google that for you e achem os tutoriais :P

Ao configurar o LDAP, façam a criação da base de dados, com os seguintes códigos:

dn: dc=kinuxlinux,dc=org
dc: kinuxlinux
objectclass: top
objectclass: domain

dn: ou=Usuarios,dc=kinuxlinux,dc=org
ou: Usuarios
objectclass: top
objectclass: organizationalUnit

dn: ou=Grupos,dc=kinuxlinux,dc=org
ou: Grupos
objectclass: top
objectclass: organizationalUnit

dn: ou=Computadores,dc=kinuxlinux,dc=org
ou: Computadores
objectclass: top
objectclass: organizationalUnit

Vejam o que é cada coisa, as primeiras 4 linhas definem o dominio, o kinuxlinux.org, ou para o LDAP, dc=kinuxlinux,dc=org ;D

Dizemos que ele é um objeto do tipo top, e que é do tipo domain

Após isso, começamos a definir os “bancos de dados”, os Usuários, Computadores e Grupos, ou como são chamados, OrganizationalUnit, Unidade Organizacional :P

Bom, mais pra frente veremos como integrar o PAM :D

Links:

  • http://www.vivaolinux.com.br/artigo/Samba3-+-LDAP-no-ArchLinux
  • http://www.spack.org/wiki/LdapClient

Abraços!

Posted by Otávio Souza on Novembro 21st, 2008 No Comments

Construindo um firewall básico com Iptables

Decidi fazer o artigo sobre Firewall com Iptables, mas como sempre, tenho muita sorte, mas muita sorte mesmo com o Google e decidi procurar antes algo sobre o assunto, pra ver em que pé estava a Internet, não deu outra, “Construindo um firewall básico com Iptables” no Google me retornou alguns sites, e um deles foi o VivaOLinux, com esse artigo aqui, ótimo por sinal, bem completo, ele fala tudo e mais um pouco, no artigo tem um link para outro, que explica a estrutura do Iptables.

Espero que aproveitem os artigos, eu recomendo ;)

Abraços

Posted by Otávio Souza on Agosto 9th, 2008 No Comments

Uma abordagem do SSH

Olá pessoas, depois de um bom tempo sem postar nada, estava falando com um amigo no mensageiro, e ele me perguntou quando eu ia postar algo, disse que quando tivesse assunto pra postar eu fazia isso, bom, sairam três assuntos da conversa :P

  1. Autenticação SQUID com OpenLDAP
  2. Uma abordagem do SSH
  3. Construindo um firewall básico com Iptables

Bem, escolhi por fazer o segundo artigo primeiro, depois, assim que reuinir as informações, crio os outros artigos :)

Vamos começar

O SSH (Secure Shell) é um protocolo/programa para poder acessar computadores remotamente, a conexão com a maquina é criptografada, permitindo assim um controle tranquilo.

O uso básico do SSH é “ssh nomedousuário@maquina”, com isso ele vai pedir a sua senha e vai executar o comando que está no servidor, ex: “/bin/bash”.

O servidor pode dar para você um shell completo (é claro, com as limitações do seu usuário), como pode dar um micro-shell, somente para que você execute alguns comandos.

Quando você muda a porta do servidor SSH (garantindo assim a segurança do mesmo), você deve usar o switch “-P porta”, ficando então com o comando desse jeito “ssh usuário@host -P porta”.

Certo, com isso você já pode ter um uso básico do SSH.

Mas, o SSH tem outras opções, chamadas Tunelamento e Proxy Reverso, com o Tunelamento você pode dar a saida dos dados por outro servidor.

Ex:

Servidor da Escola com Proxy bloqueando site xxx

Escola ->                        Servidor SSH externo                    -> Site XXX

No caso o que aconteceu foi, você se conectou com o site XXX pelo servidor SSH externo ao servidor da escola, passando por uma conexão criptografada, ao invés de passar pelo proxy.

Atenção, usem isso com cuidado, se a sua escola/instituição/empresa proibe é porque eles devem ter motivos para isso.

Mas afinal, como é que eu vou fazer os programas, como o Firefox, acessar a Web pelo SSH? Simples! Você usa um switch no SSH para poder criar um proxy Socks na sua maquina, assim é só configurar os navegadores para usarem esse proxy Socks

Comando: “ssh usuário@maquina -P porta -D portanamaquinalocal”

Depois é só configurar o navegador para usar proxy socks para aquela porta ;)

Vamos ao proxy reverso!

Situação:

Você esta querendo acessar o computador da sua casa, que está atrás de um router, que por azar do destino, não está routeado :( , e agora? Quem poderá nos salvar? Não, não é o chapolin colorado, é o Proxy Reverso mesmo!

Você faz o seguinte, com alguém na sua casa, você abre um servidor SSH nessa sua maquina que pode ser acessada pela Internet, e manda a pessoa em sua casa se conectar nela, usando o seguinte comando:

“ssh -LPortaDoSshNesseComputador:ComputadorExterno:PortaQueVocêQuerNoComputadorExterno root@ComputadorExterno”

Atenção: Só é possivel fazer isso como usuário root! Ou seja, a pessoa em sua casa tem que saber a senha do root no seu computador ;)

Depois de feito isso, é só você acessar no seu computador assim:

“ssh UsuárioDoComputadorDeCasa@127.0.0.1 -P PortaQueVocêDisse”

Nisso, para terminar a conexão, disconecte no seu computador e mande a pessoa em casa disconectar do seu computador.

Com isso, sejam felizes! O SSh é muito lindo!

Posted by Otávio Souza on Agosto 6th, 2008 6 Comments

Minha opinião de servidor seguro

Olá pessoas, na falta de tutoriais, decidi fazer esse =)

Como vocês sabem, tenho um home-server, desligado no momento, mas não deixo de ter :P e penei um pouco para poder configura-lo deixando nos conformes e com o máximo de segurança possível, isso tirando é claro o firewall, porque server que é server não tem firewall! (Brincando ;) )

Vamos começar a com as configurações da maquina

  • Processador: Celeron D de 2.13GHz
  • Memória atual (Queimada) : 256MB
  • HD: 20GB
  • 2 placas de rede, uma para o Velox e outra para a rede interna =)
  • e etc. etc. etc.

Serviços que rodam nele

  • Apache+PHP+Python
  • PostgreSQL
  • SQUID-cache
  • SSH
  • Bind (Named) (DNS)

Coisas simples, como podem ver ;)

Agora vem o pequeno detalhe! A distribuição escolhida! Slack sempreeeee!!!

Vamos deixar de lorota e começar a mostrar as configurações

Vamos começar pelo SSH, coisa que acho importantíssimo, afinal não tenho teclado, nem mouse na maquina!

Primeira coisa a se modificar no sshd_config (normalmente /etc/ssh/sshd_config – Configuração do servidor SSH)

PermitRootLogin no (Isso ajuda a não quebrarem logo a senha de root, não se esqueça também de tirar o pacote sudo e/ou desconfigura-lo todo)

PermitLogin no (Porquê isso? Simples! Isso tira o login via senha digitavel, substitua esse tipo de login por login via chaves, é bem melhor!)

Port 22 -> Muda a porta para outra, 256, 897, qualquer número, só para não termos um exploit logo de cara =)

Com isso o servidor SSH já está seguro, dai você se pergunta e como posso logar como root? Orás, “su -”, utiliza um usuário normal para se logar e digita su -, só isso!

Vamos passar para o SQUID, uma coisa que tu tem que pensar, vai permitir o acesso ao SQUID via rede externa?

  • Vai: Então coloca uma ACL para que peça requisição de nome de usuário e senha, isso para que pessoas indesejadas não usem seu SQUID
  • Não: Então só bloqueia tudo mesmo!

Squid é coisa simples mesmo, então deixa ele ai, ele já é chato com o acesso mesmo =P

DNS, edita o /etc/hosts.allow e permite somente o acesso do DNS na rede interna, isso garante que não se exploitem o servidor de DNS!

Apache, se você quer que seu Apache seja só na Intranet, modifica ele e manda fazer Listen para o seu hostname, só isso, caso contrário, faz o cadastro no DynDNS, No-ip, qualquer coisa e manda ele fazer listen para esses hostnames =)

PostgreSQL, libera só o acesso na rede local, se for o caso somente no servidor mesmo, é melhor

PHP: Deixa em safe_mode, usa a opção do safe_mode para liberar o acesso aos arquivos do mesmo grupo, caso contrário, só o mesmo dono pode fazer isso, o que é chato em certos ambientes ¬¬’

Se tu vai usar o servidor de e-mails interno, recomendo deixar o acesso somente na rede local, não exponha tudo a Internet =)

Resumindo: Com um pouquinho de trabalho você pode configurar um servidor até que seguro facilmente :)

Abraços!

Posted by Otávio Souza on Maio 31st, 2008 No Comments