UTILIZE A PESQUISA!

Komba (linux enxergando Windows na rede)

O Samba também inclui um módulo cliente, o smbclient que pode ser usado para fazer inverso, ou seja, acessar compartilhamentos de máquinas Windows apartir do Linux.

Assim como o cdrecord usado pelo xcdroast e tantos outros exemplos, o smbclient é um programa base, que pode ser tanto usando diretamente (via texto) ou então usado com a ajuda de um utilitário gráfico que torne a coisa mais palatável e prática.

Komba

O melhor exemplo de front-end gráfico para o smbclient é o Komba, que simula o ambiente de rede do windows, mostrando todos os grupos de trabalho, PCs e compartilhamentos da rede e permitindo você monte e desmonte-os conforme necessário:

Para facilitar, o Komba monta os compartilhamentos por default dentro da pasta "komba", dentro do seu diretório de usuário. Facilita as coisas no início, principalmente se você for utiliza-lo numa rede onde os usuários não estão muito familiarizados com o conceito de montagem e desmontagem.

É possível inclusive configurar o komba para montar os compartilhamentos automaticamente ao ser aberto e fecha-los ao ser finalizado. Para isto, basta marcar as opções "Unmount all connections on exit" e "remount all on next start" em Configurações > Configurar > Scan/Mount.

Clicando sobre um compartilhamento você pode inserir seu login e senha de usuário, que será usado para acessar o compartilhamento. É possível definir um login e senha diferentes para cada compartilhamento, para cada PC ou mesmo usar o mesmo login para todos os compartilhamentos da rede. Você pode ainda configura-lo para pedir a senha ao acessar cada compartilhamento, caso precise de mais segurança.


A dupla Samba/Komba funciona melhor, sempre conseguindo exibir todos os compartilhamentos disponíveis na rede corretamente, enquanto o Windows se perde muito fácil: demora para exibir micros que acabaram de ser ligados, trava durante um tempinho ao tentar acessar um micro que foi desligado, mas que continua aparecendo no ambiente de rede e assim por diante.

O Komba foi incluído no Mandrake 9.0, Red Hat 8.0 entre outras distribuições . Se ele já estiver instalado, basta chama-lo usando o comando "komba2"

Para instalar em distribuições derivadas do Debian (como o Ubuntu, por exemplo) basta digitar no konsole: apt-get install komba2.

esse tutorial foi adaptado e retiradodo site: www.guiadohardware.net

Samba com LDAP

1 - Instalando Samba com LDAP

  • O objetivo deste artigo é explicar o processo de instalação do servidor Samba atuando como PDC e utilizando o OpenLdap como backend (banco de dados).

2 - Contexto da instalação:

Este é o contexto utilizado neste documento.

  • Debian 5.0 - Lenny
  • Linguagem: pt_br
  • Endereço do servidor remoto: 10.1.0.17
  • Principais pacotes a serem instalados:
    • slapd
    • ldap-utils
    • phpldapadmin
    • samba
    • smbldap-tools
    • libnss-ldap

3 - Configurar o debconf

A instalação inicial do debconf é necessária para que as mesmas perguntas destes documento sejam feitas quando a instalação for realizada.

# dpkg-reconfigure debconf

Escolher prioridade de perguntas "baixa".

4 - Servidor LDAP

Instalação do pacote do servidor LDAP:

# aptitude install slapd ldap-utils
  • Omitir a configuração do servidor LDAP? Não
  • Nome do domínio DNS: debian-go.org
  • Nome da organização: debian-go
  • Senha do admin: segredo
  • "Backend" de base de dados a ser usado: BDB
  • Você deseja que sua base de dados seja removida quando o slapd for expurgado? Não
  • Mover base de dados antiga? Sim
  • Permitir Protocolo LDAP v2? Não

Confira se as configurações respondidas via debconf estão de acordo com o arquivo de configuração:

# vi /etc/ldap/slapd.conf

Reinicialize o servidor:

# /etc/init.d/slapd restart

Verifique os dados iniciais disponíveis no servidor LDAP através do comando slapcat:

# slapcat
dn: dc=debian-go,dc=org
objectClass: top
objectClass: dcObject
objectClass: organization
o: debian-go
dc: debian-go
structuralObjectClass: organization
entryUUID: ab548b92-0361-102d-9ca7-a5cb93af3e92
creatorsName:
modifiersName:
createTimestamp: 20080821001304Z
modifyTimestamp: 20080821001304Z
entryCSN: 20080821001304Z#000000#00#000000

dn: cn=admin,dc=debian-go,dc=org
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword:: e2NyeXB0fUU1UXFQZ09zZFQ0YmM=
structuralObjectClass: organizationalRole
entryUUID: ab555aea-0361-102d-9ca8-a5cb93af3e92
creatorsName:
modifiersName:
createTimestamp: 20080821001304Z
modifyTimestamp: 20080821001304Z
entryCSN: 20080821001304Z#000001#00#000000

5 - Frontend PHPLdapadmin

O Phpldapadmin é um frontend que permite gerenciar o servidor LDAP através de uma interface Web.

6 - Instalação do PHPldapadmin

# aptitude install phpldapadmin apache2
  • tipo de autenticação: session
  • servidores web com quais será configurado automaticamente: apache2 (pelo menos)
  • reiniciar o servidor web: sim

7 - Conferindo a instalação do phpldapadmin

Utilizando um navegador web, aponte para o endereço:

http://10.1.0.17/phpldapadmin

E efetue o logon utilizando o usuário:

cn=admin,cn=debian-go,cn=org

Utilize a senha fornecida na instalação do servidor LDAP: "segredo".

8 - Instalação do servidor SAMBA

# aptitude install samba

  • Domínio: debian-go.org
  • Usar senhas criptografadas? Sim
  • Modificar smb.conf para usar configurações WINS fornecidas via DHCP? Não
  • Como você deseja que o Samba seja executado? daemons
  • Gerar a base de dados para senhas /var/lib/samba/samba.tdb? Não

9 - Configurando o LDAP para dar suporte ao Samba

# aptitude install samba-doc

# cd /usr/share/doc/samba-doc/examples/LDAP/
# cp samba.schema.gz /etc/ldap/schema/
# cd /etc/ldap/schema

# gunzip samba.schema.gz

# vi /etc/ldap/slapd.conf

...

include /etc/ldap/schema/samba.schema
...

access to attrs=userPassword,shadowLastChange,sambaNTPassword,
sambaLMPassword by dn="cn=admin,dc=debian-go,dc=org" write

As últimas linhas fazem com que o LDAP tenha suporte ao schema dos objetos LDAP do Samba e o usuário admin ter acesso a escrita aos atributos userPassword, shadowLastChange, sambaNTPassword e sambaLMPassword.

/etc/init.d/slapd restart

10 - Configurando o Samba

# vi /etc/samba/smb.conf
security = user
domain logons = yes
# passdb backend = tdbsam
# invalid users = root

...

# nao utilizar as restrições impostas pelo PAM

obey pam restrictions = no


# Na linha abaixo especifique o IP do servidor Slapd
passdb backend = ldapsam:ldap://127.0.0.1
ldap passwd sync = yes
ldap delete dn = Yes
# Especifique o seu domínio
ldap admin dn = cn=admin,dc=debian-go,dc=org
ldap suffix = dc=debian-go,dc=org
ldap machine suffix = ou=Computadores
ldap user suffix = ou=Usuarios
ldap group suffix = ou=Grupos
ldap idmap suffix = ou=Idmap
# Novamente o IP do servidor Slapd
idmap backend = ldap:ldap://127.0.0.1
idmap uid = 10000-20000
idmap gid = 10000-20000
#Nas linhas abaixo é necessário especificar corretamente a
#path dos utilitários para gerenciamento de usuários e grupos
#para samba+ldap estes utilitários são do pacote smbldap-tools
add user script = /usr/sbin/smbldap-useradd -m "%u"
delete user script = /usr/sbin/smbldap-userdel "%u"
add group script = /usr/sbin/smbldap-groupadd -p "%g"
delete group script = /usr/sbin/smbldap-groupdel "%g"
add user to group script = /usr/sbin/smbldap-groupmod -m "%u"
"%g"
delete user from group script = /usr/sbin/smbldap-groupmod -x
"%u" "%g"
set primary group script = /usr/sbin/smbldap-usermod -g "%g"
"%u"
add machine script = /usr/sbin/smbldap-useradd -w "%u"

11 - Geração da senha de acesso do samba ao LDAP

   # rm /var/lib/samba/secrets.tdb
# smbpasswd -w segredo
# net getlocalsid

SID for domain LAB11 is: S-1-5-21-739826692-572011436-1394361479

O primeiro comando remove o arquivo secrets.tdb, que contém informações de senha. A remoção deste é necessária para um nova instalação do Samba integrado ao LDAP. O segundo comando insere a senha do usuário admin do ldap no arquivo /var/lib/samba/secrets.tdb. O último comando fornece um identificador para a rede Windows, este será necessário para o próximo passo.

12 - Configuração do smbldap-tools

# aptitude install smbldap-tools
# vi /etc/smbldap-tools/smbldap_bind.conf

slaveDN="cn=admin,dc=debian-go,dc=org"
slavePw="segredo"
masterDN="cn=admin,dc=debian-go,dc=org"
masterPw="segredo"


# vi /etc/smbldap-tools/smbldap.conf

# Esta primeira linha você deve especificar o SID da rede,
#para isso use o comando: net getlocalsid
SID="S-1-5-21-739826692-572011436-1394361479"
# Especifique o workgroup do samba
sambaDomain="debian-go.org"
# Ip do servidor Slapd
slaveLDAP="127.0.0.1"
slavePort="389"
# Ip do servidor Slapd
masterLDAP="127.0.0.1"
masterPort="389"
ldapTLS="0"
verify=""
cafile=""
clientcert=""
clientkey=""
suffix="dc=debian-go,dc=org"
usersdn="ou=Usuarios,${suffix}"
computersdn="ou=Computadores,${suffix}"
groupsdn="ou=Grupos,${suffix}"
idmapdn="ou=Idmap,${suffix}"
sambaUnixIdPooldn="cn=NextFreeUnixId,${suffix}"
scope="sub"
hash_encrypt="SSHA"
crypt_salt_format=""
userLoginShell="/bin/bash"
userHome="/home/%U"
userHomeDirectoryMode="700"
userGecos="System User"
defaultUserGid="513"
defaultComputerGid="515"
skeletonDir="/etc/skel"
defaultMaxPasswordAge="45"
userSmbHome="\lab17\%U"
userProfile="\lab17\%U"
userHomeDrive="H:"
with_smbpasswd="0"
smbpasswd="/usr/bin/smbpasswd"
with_slappasswd="0"
slappasswd="/usr/sbin/slappasswd"

13 - Popular o LDAP

#smbldap-populate

Este comando acima irá popular a base de dados ldap com objetos necessários para a administração do smbldap-tools. Verifique no phpldapadmin os objetos ldap criados, especialmente note os grupos e usuários criados.

14 - Instalação do libnss-ldap

#  aptitude install libnss-ldap

  • Identificador Uniforme de Recursos do servidor LDAP: ldap://127.0.0.1
  • Nome distitnto da base de pesquisa: dc=debian-go,dc=org
  • Versão LDAP a usar: 3
  • A base de dados LDAP requer login: Sim
  • Privlegios especiais LDAP para o root? Sim
  • Permitir a leitura/escrita no ficheiro de configuração apenas para o dono? Não
  • Conta LDAP para o root: cn=admin,dc=debian-go,dc=org
  • Password da conta root do LDAP: segredo
  • Utilizador sem privilegios da base de dados: cn=admin,dc=debian-go,dc=org
  • Password da conta para fazer login na base de dados: segredo

15 - Configuração do libnss

# vi /etc/nsswitch.conf
#passwd: compat
passwd: files ldap
#group: compat
group: files ldap

16 - Inclusão de usuário para testes

# vi /etc/nextuid.ldif
dn: cn=NextFreeUnixId,dc=debian-go,dc=org
objectClass: inetOrgPerson
objectClass: sambaUnixIdPool
uidNumber: 10000
gidNumber: 10000
cn: NextFreeUnixId
sn: NextFreeUnixId
# ldapadd -x -D cn=admin,dc=debian-go,dc=org -W -f nextuid.ldif
# smbldap-useradd teste

# smbldap-usershow teste
# smbldap-passwd teste

# smbpasswd -a teste
# smbldap-usershow teste

# mkdir /home/teste

Note a diferença entre os dois comandos smbldap-usershow acima.

17 - Inclusão do usuário root

# smbldap-useradd root

# smbldap-usershow root
# smbldap-passwd root


# smbpasswd -a root

# smbldap-usershow root

18 - Teste com cliente Windows

  • Entrar no Windows como administrador
  • Mouse botão-direito no Meu Computador
  • Aba "Nome do computador"
  • Clicar em mudar
  • Botão renomear o computador
  • Selecionar a opção domínio;
  • Alterar o domínio desejado (debian-go.org)

19 - Referências:

LDAP

Uma autenticação centralizada faz parte do processo de adequação do ambiente as boas práticas de segurança. Esta solução provê recursos que atendem aos principios de autenticidade e não-repúdio. Usando a criptografia juntamente com esta solução pode-se previnir ataques de hijacking, spoofing e man in the middle.
O LDAP (Lightweight Directory Access Protocol) é um protocolo cliente-servidor, utilizado para acessar um serviço de Diretório. Ele foi inicialmente usado como uma interface para o X.500, mas também pode ser usado com autonomia e com outros tipos de servidores de Diretório. Atualmente vem se tornando um padrão, diversos programas já têm suporte a LDAP. Livros de endereços, autenticação, armazenamento de certificados digitais (S/MIME) e de chaves públicas (PGP), são alguns dos exemplos onde o LDAP já é amplamente utilizado.
O Openldap é a solução livre para a implementação do LDAP. Diferentemente das soluções proprietárias ( e.g. Active Directory (tm) ), ele implementa de forma fidedigna as especificações das RFCs deste protocolo.

Uma das principais vantagens do LDAP é a facilidade em localizar informações e arquivos disponibilizados. Pesquisando pelo sobrenome de um funcionário é possível localizar dados sobre ele, como telefone, departamento onde trabalha, projetos em que está envolvido e outras informações incluídas no sistema, além de arquivos criados por ele ou que lhe façam referência. Cada funcionário pode ter uma conta de acesso no servidor LDAP, para que possa cadastrar informações sobre sí e compartilhar arquivos.

O LDAP oferece uma grande escalabilidade. É possível replicar servidores (para backup ou balanceamento de carga) e incluir novos servidores de uma forma hierárquica, interligando departamentos e filiais de uma grande multinacional por exemplo. A organização dos servidores neste caso é similar ao DNS: é especificado um servidor raiz e a partir daí é possível ter vários níveis de sub-servidores, além de mirrors do servidor principal.

Tela do LDAP, um dos passos para se criar um usuário:

Portscanner - Nessus

Um port scanner (scanner de porta) é um aplicativo com o objetivo de testar as portas lógicas de determinado host remoto. Neste teste ele identifica o status das portas, se estão fechadas, escutando ou abertas.

O Nessus é um programa de verificação de falhas/vulnerabilidades de segurança (portas, vulnerabilidades, exploits). Ele é composto por um cliente e servidor, sendo que o scan propriamente dito é feito pelo servidor. O nessusd (servidor Nessus) faz um port scan ao computador alvo, depois disso vários scripts (escritos em NASL, Nessus Attack Scripting Language) ligam-se a cada porta aberta para verificar problemas de segurança. O Nessus ajuda a identificar e resolver alguns problemas de vulnerabilidades. A parte Servidor executa os testes enquanto a parte cliente permite a configuração e emissão de relatórios.

IPSec VPN

IPSec não é o mecanismo de encriptação ou autenticação, mas sim o que vem gerenciar estes. Em poucas palavras, é um framework (um conjunto de diversas ferramentas, compondo um sistema) de padrões abertos que visa a garantir uma comunicação segura em redes IP. Baseado em padrões desenvolvidos pela IETF (Internet Engineering Task Force, organização que desenvolve os padrões da Internet), o IPSec busca garantir confidencialidade, integridade e autenticidade nas comunicações de dados em uma rede IP pública.

Encriptação e autenticação podem ser implementadas tanto na camada de rede, quanto na de enlace ou aplicação. Antes do IPSec, as redes adotavam soluções parciais, que resolviam apenas parte dos problemas. Por exemplo, a utilização de SSL (Secure Sockets Layer, que simulam túneis seguros entre aplicativos) fornece encriptação no nível de aplicação, muito usado em navegadores de Internet, por exemplo, para acesso à serviços bancários. Uma das deficiências da encriptação no nível de aplicação é que ela protege somente os dados enviados pela aplicação que a está usando, mas não de todas as outras. Cada sistema ou aplicativo deve estar adaptado a SSL, para que uma segurança geral possa ser garantida. Atualmente, a maior parte dos aplicativos não utiliza SSL.

Já em instituições militares, o que vem sendo usado há anos é a encriptação no nível do enlace de dados. Neste esquema, todas as comunicações estarão protegidas por dispositivos de encriptação colocados em cada fim do enlace. Apesar de oferecer excelente cobertura, este tipo de encriptação necessita de um par de dispositivos de encriptação a cada enlace, o que pode ser inviável; também não é adequado para a Internet, já que apenas os enlaces dentro de um sistema autônomo estarão ao alcance das empresas/instituições.

O IPSec implementa encriptação e autenticação na camada de rede, fornecendo uma solução de segurança fim-a-fim, ao contrário da anterior (enlace), que é ponto-a-ponto. O IPSec pode ser implementado nos roteadores ou no sistema operacional dos terminais, assim os aplicativos não precisam de alterações para poder utilizar comunicações seguras. Como os pacotes encriptados têm o mesmo formato de pacotes IP comuns, eles podem ser roteados sem problemas em qualquer rede IP, e sem qualquer alteração nos equipamentos de rede intermediários. Os únicos dispositivos de rede que precisam ser alterados são os do início e fim das comunicações IPSec, reduzindo assim os custos de implementação e gerenciamento.

A figura abaixo mostra onde a encriptação atua nas diferentes camadas:


Encriptação na camada de enlace, na de rede e na aplicação.

Fonte: http://www.gta.ufrj.br/~rezende/cursos/eel879/trabalhos/vpn/ipsec.html#mozTocId786656

Shorewall

Shorewall (mais apropriadamente como Shoreline Firewall) é uma ferramenta de firewall Linux de código aberto, que se baseia no Netfilter (iptables / ipchains) sistema embutido no kernel do Linux, possibilita uma configuração mais organizada e rápida do seu firewall, tornando mais fácil para gerenciar sistemas de configuração mais complexa.

Usando uma analogia compreensível para programadores: Shorewall é iptables, o C é a linguagem assembly. Ele fornece um nível maior de abstração para descrever regras de uso de arquivos de texto.

Abaixo temos o link para o tutorial passo a passo de como instalar e configurar o Shorewall no Debian: http://www.megaupload.com/?d=OYQZ7PI8