Montando Servidor Ubuntu - Server


Instalar distribuição Ubuntu Server

Passos Básicos:
Baixe os arquivos necessários em: http://www.ubuntu.com/server/get-ubuntu/download
Escolha corretamente a arquitetura 32bits ou 64bits e o tipo de distribuição Server ou Desktop.
Instruções detalhadas para criar CD de instalação no link: https://help.ubuntu.com/community/BurningIsoHowto
Insira o CD de instalação e siga os passos para instalar o servidor UBUNTU na sua máquina.

No meu caso as seleções realizadas foram:
  • Linguagem Português Brasileiro
  • Teclado Generic Internacional 105 teclas
  • Rede com DHCP na interface eth1 sem proxy
  • Formatação de dois discos com uma partição RAID de 75Gb e uma Swap de 5Gb em cada disco
  • Montagem de RAID tipo 1 com duas partições (sda1 e sdb1) e nenhuma partição reserva.
  • Escolha de nome para usuário e senha
  • Escolha de instalação automática de: server, dns-server, lamp-server, openssh-server, mail-server, print-server, samba-server.
  • Escolha uma senha para o root do MySQL
  • Escolha uma opção para o SMTP (por exemplo INTERNET) com dominio "casa.lan"

Verificação Basica da instalaçao realizada

Verifique se a rede foi instalada como DHCP e atualize os pacotes apt-get:
sudo nano /etc/network/interfaces

auto lo
iface lo inet loopback

#auto eth0
#iface eth0 inet dhcp 

auto eth1
iface eth1 inet dhcp 

sudo /etc/init.d/networking restart
sudo apt-get update

Verifique se a instalação automática foi realizada com sucesso pelo comando:
tasksel --list-task

Instale os pacotes não instalados com o comando de exemplo abaixo (https://help.ubuntu.com/community/Tasksel): 
sudo tasksel install server
sudo tasksel install dns-server
sudo tasksel install lamp-server
sudo tasksel install openssh-server
sudo tasksel install mail-server
sudo tasksel install print-server 
sudo tasksel install samba-server

Tive que atualizar o kernel com o comando:
sudo apt-get install linux-server

Instalando mais modulos do kernel:
sudo apt-get install linux-backports-modules-alsa-maverick-generic linux-backports-modules-headers-maverick-generic linux-backports-modules-net-maverick-generic linux-backports-modules-wireless-maverick-generic

Definindo senha para o root

Não é obrigatório mas para realizar estas configurações as vezes é mais rápido acessar o servidor como root, para isso o usuário root precisa ter uma senha com o comando:
sudo passwd root

Acesso Remoto via SSH

Para ter acesso remoto no seu servidor via SSH certifique-se da instalação do OpenSSH abaixo:
sudo apt-get install openssh-server

Acesse o servidor pelo windows com o programa WinSCP (http://winscp.net/eng/index.php) ou via Linux com o Putty:
sudo apt-get install putty

Também pode-se utilizar do terminal do linux com o comando:
ssh root@192.168.0.2
Mantenha seu servidor SSH seguro com as dicas em: https://help.ubuntu.com/community/AdvancedOpenSSH

Transferir arquivo pode ser com o comando:
scp usefulcommands.txt root@192.168.0.2:/root/

Voce pode também instalar os programas abaixo para se conectar ao servidor:
sudo aptitude install xrdp # allow any windows rdp client connect to your linux
sudo aptitude install x11vnc

Definindo um endereço IP estático (fixo)

Para facilitar o acesso remoto precisamos de um endereço estático no servidor, para tanto altere a configuração de rede novamente para:
sudo cp /etc/network/interfaces /etc/network/interfaces.old 
sudo nano /etc/network/interfaces

auto lo
iface lo inet loopback

#auto eth0
#iface eth0 inet static
#    address 192.168.1.3
#    netmask 255.255.255.0
#    gateway 192.168.1.1 

auto eth1
iface eth1 inet static
    address 192.168.0.2
    netmask 255.255.255.0
    gateway 192.168.0.1 

sudo /etc/init.d/networking restart

Verifique se esta tudo certo com o comando:
ifconfig

Utilizando as duas placas com Bridge

Instale os aplicativos necessários:
sudo apt-get install bridge-utils

Configure com os comandos:
sudo cp /etc/network/interfaces /etc/network/interfaces.old
sudo nano /etc/network/interfaces

auto wlan0
iface wlan0 inet manual
wpa-bridge br0
wpa-key-mgmt WPA-PSK
wpa-proto WPA
wpa-group TKIP
wpa-ssid my-ssid
wpa-psk "my-secret-password"

auto br0

iface br0 inet dhcp
bridge-ports all wlan0

PS: Desativei esta opção, pois não se mostrou muito estável com o uso.

Instalação de Interface Gráfica

Pode ser completa com o comando abaixo:
sudo tasksel install ubuntu-desktop

Pode-se tentar instalar interfaces gráficas mais leves com o minimo necessário como listado neste link: http://ubuntuforums.org/showthread.php?t=1155961
sudo apt-get -y install gnome-core gdm network-manager-gnome fast-user-switch-applet human-theme x11-xserver-utils tangerine-icon-theme gnome-themes-ubuntu ubuntu-artwork jockey-gtk gnome-screensaver gnome-utils gcalctool tsclient

Uma boa alternativa é o xubuntu e o lubuntu. Este ultimo é instalado da seguinte forma:

sudo add-apt-repository ppa:lubuntu-desktop/ppa
sudo apt-get update
sudo apt-get install --no-install-recommends lubuntu-desktop
sudo update-alternatives --config x-session-manager
sudo update-alternatives --config x-window-manager
sudo apt-get install xorg lxde
sudo mkdir /usr/share/backgrounds

Se já instalou o ubuntu e quer instalar outro desktop veja o site: http://psychocats.net/ubuntu/purexfce

Adicionando Novos Usuários

Para incluir usuários utilize o comando abaixo:
adduser <username> 

Inclua o usuário ao grupo users (por exemplo):
addgroup <username> users

Opcionalmente utilize os seguintes comandos para incluir o usuário a grupos e torná-lo administrador:
adduser <username> <group> 
visudo --para modificar lista de sudoers ou simplesmente adicione o usuário ao grupo admin 
groups <username> --lista os grupos do usuário

Veja uma lista completa de opções no link: http://www.yolinux.com/TUTORIALS/LinuxTutorialManagingGroups.html

Atualizando todo o sistema

Para atualizar o sistema com as ultimas versões de software disponiveis utilize o comando:
sudo apt-get update
sudo apt-get upgrade

Listar discos do Servidor

Para listar todas partições por UUID:
ls /dev/disk/by-uuid -alh

Por ID:
ls /dev/disk/by-id -lah

Por Label do volume:
ls /dev/disk/by-label -lah

Listar partições com fdisk:
sudo fdisk -l

Utilizar um FakeRAID

Link para fakeRAID: http://newyork.ubuntuforums.org/showpost.php?p=9897793&postcount=4

Se tem algum fakeraid no servidor visualize os mesmos com o dmraid. Instale-o com o comando:
sudo apt-get install dmraid

Depois liste as unidades com um dos comandos abaixo:
dmraid -l
ls -l /dev/mapper/

Ou simplesmente:
cd /dev/mapper/

ls


Verifique se o modulo sudo modprobe dm-raid45 esta disponivel:
sudo modprobe dm-raid45

Para utilizar o fakeraid acrescente o modulo dm-raid45 na inicialização:
sudo nano /etc/modules

loop
lp
dm-raid45

Primeiro sobre o fakeraid, vamos verificar se esta funcionando com o comando:
sudo dmraid -ay
RAID set "via_cihafjdhih" already active
RAID set "via_cihafjdhih1" already active


Depois, apague a partição e crie uma nova com o comando abaixo (troque para o nome de seu raid):
sudo fdisk /dev/mapper/via_cihafjdhih

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u').

Command (m for help): p

Disk via_cihafjdhih: 500.1 GB, 500107861504 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0007758e

         Device Boot      Start         End      Blocks   Id  System
via_cihafjdhih1   *           1       60801   488384001   fd  Linux raid autodetect

Command (m for help): d
Selected partition 1

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-60801, default 1): 1
Last cylinder, +cylinders or +size{K,M,G} (1-60801, default 60801):
Using default value 60801

Command (m for help): a
Partition number (1-4): 1

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Utilize o comando abaixo para ler novamente a configuração do RAID sem necessidade de REBOOT:
sudo dmraid -r

Depois formate a partição:
mkfs -t ext3 /dev/mapper/via_cihafjdhih1

link: https://help.ubuntu.com/community/FakeRaidHowto

Criação de RAID1

Pode-se alternativamente criar um RAID1 do LInux.

Instale os programas necessários:
sudo apt-get install mdadm 

Para verificar o estado dos RAIDs do sistema utilize o comando:
cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid1 sdb1[1] sda1[0]
73239488 blocks [2/2] [UU]
unused devices: <none>

Para informações detalhadas o comando é:
sudo mdadm --query --detail /dev/md0
/dev/md0:
Version : 00.90
Creation Time : Sat Nov 13 08:02:28 2010
Raid Level : raid1
Array Size : 73239488 (69.85 GiB 75.00 GB)
Used Dev Size : 73239488 (69.85 GiB 75.00 GB)
Raid Devices : 2
Total Devices : 2
Preferred Minor : 0
Persistence : Superblock is persistent

Update Time : Thu Nov 18 19:43:24 2010
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0

UUID : 322eaef1:ed3cddb4:75f852c1:87959206
Events : 0.26

Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 8 17 1 active sync /dev/sdb1

Pode-se observar que o servidor já tem um RAID md0 funcionando, vamos agora criar o RAID md1.

Primeiro vamos criar as partições para LInux RAID nos discos /dev/sdc e /dev/sdd com o comando:
sudo fdisk /dev/sdc
Maiores detalhes em: http://manpages.ubuntu.com/manpages/lucid/en/man8/fdisk.8.html
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').

Command (m for help): p

Disk /dev/sdc: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0007758e

Device Boot Start End Blocks Id System
/dev/sdc1 * 1 60801 488384001 83 Linux

Command (m for help): d
Selected partition 1

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-60801, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-60801, default 60801): 
Using default value 60801

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): l

0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris 
1 FAT12 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-
2 XENIX root 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 41 PPC PReP Boot 85 Linux extended c7 Syrinx 
5 Extended 42 SFS 86 NTFS volume set da Non-FS data 
6 FAT16 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / .
7 HPFS/NTFS 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility 
8 AIX 4f QNX4.x 3rd part 8e Linux LVM df BootIt 
9 AIX bootable 50 OnTrack DM 93 Amoeba e1 DOS access 
a OS/2 Boot Manag 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O 
b W95 FAT32 52 CP/M 9f BSD/OS e4 SpeedStor 
c W95 FAT32 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs 
e W95 FAT16 (LBA) 54 OnTrackDM6 a5 FreeBSD ee GPT 
f W95 Ext'd (LBA) 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b
11 Hidden FAT12 5c Priam Edisk a8 Darwin UFS f1 SpeedStor 
12 Compaq diagnost 61 SpeedStor a9 NetBSD f4 SpeedStor 
14 Hidden FAT16 <3 63 GNU HURD or Sys ab Darwin boot f2 DOS secondary 
16 Hidden FAT16 64 Novell Netware af HFS / HFS+ fb VMware VMFS 
17 Hidden HPFS/NTF 65 Novell Netware b7 BSDI fs fc VMware VMKCORE 
18 AST SmartSleep 70 DiskSecure Mult b8 BSDI swap fd Linux raid auto
1b Hidden W95 FAT3 75 PC/IX bb Boot Wizard hid fe LANstep 
1c Hidden W95 FAT3 80 Old Minix be Solaris boot ff BBT 
1e Hidden W95 FAT1
Hex code (type L to list codes): fd
Changed system type of partition 1 to fd (Linux raid autodetect)

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Para o pŕoximo disco você pode copiar as partições do primeiro disco:
sfdisk -d /dev/sdc | sfdisk /dev/cat /proc/mdstatsdd

Monte o RAID1 com o comando:
sudo mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdc1 /dev/sdd1
sudo mdadm --assemble /dev/md1 /dev/sdc1 /dev/sdd1
sudo mdadm --assemble --scan

sudo mdadm --query --detail /dev/md1
/dev/md1:
Version : 00.90
Creation Time : Thu Nov 18 19:50:30 2010
Raid Level : raid1
Array Size : 488383936 (465.76 GiB 500.11 GB)
Used Dev Size : 488383936 (465.76 GiB 500.11 GB)
Raid Devices : 2
Total Devices : 2
Preferred Minor : 1
Persistence : Superblock is persistent

Update Time : Thu Nov 18 19:50:30 2010
State : clean, resyncing
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0

Rebuild Status : 0% complete

UUID : 370ce30c:892b7c16:01f9e43d:ac30fbff (local to host server)
Events : 0.1

Number Major Minor RaidDevice State
0 8 33 0 active sync /dev/sdc1
1 8 49 1 active sync /dev/sdd1

Retire a partição extra do RAID1:
sudo mdadm /dev/md1 --stop
sudo mdadm /dev/md1 --fail /dev/sdd1
sudo mdadm /dev/md1 -r /dev/sdd1
sudo mdadm --zero-superblock /dev/sdd1

Para não ter que tirar a partição bastava ter criado o RAID com o comando abaixo:
mdadm --create /dev/md1 --level 1 --raid-devices=2 missing /dev/sdc1

Mais informações em: http://www.ducea.com/2009/03/08/mdadm-cheat-sheet/

Formate a partição com o comando:
sudo mkfs.ext3 /dev/md1

Coloque a partição que retiramos anteriormente no RAID1:
sudo mdadm /dev/md1 -a /dev/sdd1

Veja se esta tudo ocorrendo bem com o comando abaixo (com o watch):
watch -n1 cat /proc/mdstat
Para parar digite control+c.

A configuração esta disponivel em:
nano /etc/mdadm/mdadm.conf
# mdadm.conf
# Please refer to mdadm.conf(5) for information about this file.

# by default, scan all partitions (/proc/partitions) for MD superblocks.
# alternatively, specify devices to scan, using wildcards if desired.
DEVICE partitions

# auto-create devices with Debian standard permissions
CREATE owner=root group=disk mode=0660 auto=yes

# automatically tag new arrays as belonging to the local system
HOMEHOST <system>

# instruct the monitoring daemon where to send mail alerts
MAILADDR root

# definitions of existing MD arrays
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=322eaef1:ed3cddb4:75f852c1:87959206

# This file was auto-generated on Sat, 13 Nov 2010 08:08:20 -0200
# by mkconf $Id$

A configuração acima pode ser atualizada com o comando:
/usr/share/mdadm/mkconf

Adicionando mais repositórios no sources.list

Para adicionar os repositórios Partner, Universe e Multiverse (https://help.ubuntu.com/community/Repositories/CommandLine#what)
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
sudo nano /etc/apt/sources.list
deb http://br.archive.ubuntu.com/ubuntu/ maverick main restricted
deb-src http://br.archive.ubuntu.com/ubuntu/ maverick main restricted
deb http://br.archive.ubuntu.com/ubuntu/ maverick-updates main restricted
deb-src http://br.archive.ubuntu.com/ubuntu/ maverick-updates main restricted
deb http://security.ubuntu.com/ubuntu maverick-security main restricted
deb-src http://security.ubuntu.com/ubuntu maverick-security main restricted

deb http://br.archive.ubuntu.com/ubuntu/ maverick universe
deb-src http://br.archive.ubuntu.com/ubuntu/ maverick universe
deb http://br.archive.ubuntu.com/ubuntu/ maverick-updates universe
deb-src http://br.archive.ubuntu.com/ubuntu/ maverick-updates universe
deb http://br.archive.ubuntu.com/ubuntu/ maverick universe
deb-src http://br.archive.ubuntu.com/ubuntu/ maverick universe
deb http://br.archive.ubuntu.com/ubuntu/ maverick-updates universe
deb-src http://br.archive.ubuntu.com/ubuntu/ maverick-updates universe
deb http://archive.canonical.com/ubuntu maverick partner
deb-src http://archive.canonical.com/ubuntu maverick partner
deb http://security.ubuntu.com/ubuntu maverick-security universe
deb-src http://security.ubuntu.com/ubuntu maverick-security universe
deb http://security.ubuntu.com/ubuntu maverick-security multiverse
deb-src http://security.ubuntu.com/ubuntu maverick-security multiverse

Ajustar opções do Grub2

link: http://ubuntuforums.org/showthread.php?t=1195275
Altere algumas opções com o comando:
sudo nano /etc/default/grub
#GRUB_HIDDEN_TIMEOUT=5
GRUB_HIDDEN_TIMEOUT_QUIET=false
GRUB_TIMEOUT=10

Comando para atualizar:
sudo update-grub

Adicionando mais discos e o novo fakeRAID

No meu caso adicionei mais discos no servidor para serem utilizados nas pastas:
  • Ajuste no Swap duplo
  • /home = disco PATA de 320Gb = /dev/sde1
  • /srv = fakeRAID do tipo RAID1 com dois discos SATA de 500Gb = /dev/sdc e /dev/sdd

Ajustando o Swap para duas partições

Para verificar a utlização do swap digite:
swapon -s
Filename                Type        Size    Used    Priority
/dev/sda2             partition    4910076    0    -1
/dev/sdb2             partition    4910076    0    -2

O ideal é deixar todos os swaps com o mesmo pri = 1.
link: http://tldp.org/HOWTO/Software-RAID-HOWTO-2.html

Altere o arquivo fstab com o comando:
sudo nano /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid -o value -s UUID' to print the universally unique identifier
# for a device; this may be used with UUID= as a more robust way to name
# devices that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc nodev,noexec,nosuid 0 0

# / was on /dev/md0 during installation
UUID=ac7a66ab-aa79-4687-8488-d7bbd0385569 / ext3 errors=remount-ro 0 1

# swap was on /dev/sda2 during installation
UUID=89fbd29d-c847-4088-a84e-32733a7c06c9 none swap pri=1,defaults 0 0
# swap was on /dev/sdb2 during installation
UUID=9d169ddc-30a5-4747-856a-dff3b2a676ae none swap pri=1,defaults 0 0

/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0
Atualize o sistema com o comando:

swapoff -a
swapon -a
swapon -s
Filename Type Size Used Priority
/dev/sda2 partition 4910076 0 1
/dev/sdb2 partition 4910076 0 1

Transferir /home para outro disco

Primeiro crie um diretório temporário:
sudo mkdir /mnt/home

Depois monte o disco neste diretório:
sudo mount /dev/sde1 /mnt/home

Transfira os arquivos com rsync:
sudo rsync -avxz /home/ /mnt/home

Ou da seguinte forma:
cd /home/
find . -depth -print0 | cpio --null --sparse -pvd /mnt/home/
find . -depth -print0 | cpio -–null -–sparse –-preserve-modification-time -pvd /mnt/home

Depois desmonte a partição:
sudo umount /mnt/home

Renomeie a /home atual:
sudo mv /home /old_home

Crie um novo /home:
sudo mkdir /home

Monte a nova home:
sudo mount /dev/sde1 /home

Se quiser apagar a home antiga digite:
sudo rm -r /old_home

Liste as partições do sistema:
ls /dev/disk/by-uuid -alh
total 0
drwxr-xr-x 2 root root 140 2011-02-27 19:09 .
drwxr-xr-x 6 root root 120 2011-02-27 19:09 ..
lrwxrwxrwx 1 root root 10 2011-02-27 19:10 5546bf5a-adf6-4d1f-b64c-9303a759a10b -> ../../sde1
lrwxrwxrwx 1 root root 10 2011-02-27 19:10 89fbd29d-c847-4088-a84e-32733a7c06c9 -> ../../sda2
lrwxrwxrwx 1 root root 10 2011-02-27 19:10 9d169ddc-30a5-4747-856a-dff3b2a676ae -> ../../sdb2
lrwxrwxrwx 1 root root 9 2011-02-27 19:10 ac7a66ab-aa79-4687-8488-d7bbd0385569 -> ../../md0

Altere o arquivo fstab com o comando:
sudo nano /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid -o value -s UUID' to print the universally unique identifier
# for a device; this may be used with UUID= as a more robust way to name
# devices that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc nodev,noexec,nosuid 0 0

# / was on /dev/md0 during installation
UUID=ac7a66ab-aa79-4687-8488-d7bbd0385569 / ext3 errors=remount-ro 0 1

# swap was on /dev/sda2 during installation
UUID=89fbd29d-c847-4088-a84e-32733a7c06c9 none swap pri=1,defaults 0 0
# swap was on /dev/sdb2 during installation
UUID=9d169ddc-30a5-4747-856a-dff3b2a676ae none swap pri=1,defaults 0 0

# home partition on /dev/sde1
UUID=5546bf5a-adf6-4d1f-b64c-9303a759a10b /home     ext3     relatime,errors=remount-ro 0 1


/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0

Atualize tudo com o comando:
mount -a

E depois visualize o espaço em disco com o comando:
df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/md0               69G  3,3G   62G   6% /
none                  812M  260K  811M   1% /dev
none                  817M  228K  817M   1% /dev/shm
none                  817M  452K  817M   1% /var/run
none                  817M     0  817M   0% /var/lock
none                   69G  3,3G   62G   6% /var/lib/ureadahead/debugfs
/dev/sde1             294G  191M  279G   1% /home

Transferir /srv para o fakeRAID

Mesmo procedimento realizado com o diretório /home, só que desta vez o disco é um fakeRAID

Primeiro crie um diretório temporário:
sudo mkdir /mnt/srv

Depois monte o disco neste diretório:
sudo mount /dev/mapper/via_cihafjdhih1 /mnt/srv

Transfira os arquivos com rsync:
sudo rsync -avxz /srv/ /mnt/srv

Ou da seguinte forma:
cd /srv/
find . -depth -print0 | cpio --null --sparse -pvd /mnt/srv/
find . -depth -print0 | cpio -–null -–sparse –-preserve-modification-time -pvd /mnt/srv

Depois desmonte a partição:
sudo umount /mnt/srv

Renomeie a /home atual:
sudo mv /srv /old_srv

Crie um novo /home:
sudo mkdir /srv

Monte a nova home:
sudo mount /dev/mapper/via_cihafjdhih1 /srv

Se quiser apagar a home antiga digite:
sudo rm -r /old_srv

Liste as partições do sistema:
ls /dev/disk/by-uuid -alh
total 0
drwxr-xr-x 2 root root 140 2011-02-27 19:09 .
drwxr-xr-x 6 root root 120 2011-02-27 19:09 ..
lrwxrwxrwx 1 root root 10 2011-02-27 19:10 5546bf5a-adf6-4d1f-b64c-9303a759a10b -> ../../sde1
lrwxrwxrwx 1 root root 10 2011-02-27 19:10 89fbd29d-c847-4088-a84e-32733a7c06c9 -> ../../sda2
lrwxrwxrwx 1 root root 10 2011-02-27 19:10 9ca2ca6d-774d-42ff-83dd-41c4fd908d98 -> ../../dm-1
lrwxrwxrwx 1 root root 10 2011-02-27 19:10 9d169ddc-30a5-4747-856a-dff3b2a676ae -> ../../sdb2
lrwxrwxrwx 1 root root 9 2011-02-27 19:10 ac7a66ab-aa79-4687-8488-d7bbd0385569 -> ../../md0

Altere o arquivo fstab com o comando:
sudo nano /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid -o value -s UUID' to print the universally unique identifier
# for a device; this may be used with UUID= as a more robust way to name
# devices that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc nodev,noexec,nosuid 0 0

# / was on /dev/md0 during installation
UUID=ac7a66ab-aa79-4687-8488-d7bbd0385569 / ext3 errors=remount-ro 0 1

# swap was on /dev/sda2 during installation
UUID=89fbd29d-c847-4088-a84e-32733a7c06c9 none swap pri=1,defaults 0 0
# swap was on /dev/sdb2 during installation
UUID=9d169ddc-30a5-4747-856a-dff3b2a676ae none swap pri=1,defaults 0 0

# home partition on /dev/sde1
UUID=5546bf5a-adf6-4d1f-b64c-9303a759a10b /home    ext3     relatime,errors=remount-ro 0 1

# home partition on /dev/mapper/via_cihafjdhih1
UUID=9ca2ca6d-774d-42ff-83dd-41c4fd908d98 /srv     ext3     relatime,errors=remount-ro 0 1


/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0

Atualize tudo com o comando:
mount -a

E depois visualize o espaço em disco com o comando:
df -h
Filesystem                   Size  Used Avail Use% Mounted on
/dev/md0                      69G  3,3G   62G   6% /
none                         812M  260K  811M   1% /dev
none                         817M  228K  817M   1% /dev/shm
none                         817M  452K  817M   1% /var/run
none                         817M     0  817M   0% /var/lock
none                          69G  3,3G   62G   6% /var/lib/ureadahead/debugfs
/dev/mapper/via_cihafjdhih1  459G  199M  435G   1% /srv
/dev/sde1                    294G  191M  279G   1% /home

Modificar Sistema para autenticação LDAP

Instalando o servidor OpenLDPA

Outro link (muito bom): http://www.nomis52.net/?section=docs&page=samldap

Instale os programas necessários para o OPENLDAP server:
sudo apt-get install slapd ldap-utils
O Fully Qualified Domain Name (FQDN) que escolhemos para utilizar é casa.lan que resulta no root node: dc=casa,dc=lan. 

Para primeiro configurar o OpenLdap existem três métodos divulgados. Veja qual deles funciona com a sua configuração de servidor.

Inicialização Método 1

Comece com os comandos:
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif
Como o setup inicial esta criando um database podemos simplesmente modificá-la para nossa necessidade conforme comandos abaixo:
sudo tee /etc/ldap/schema/backend_mod.casa.lan.ldif <<EOF
# Database settings
dn: olcDatabase={1}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=casa,dc=lan
-
replace: olcRootDN
olcRootDN: cn=admin,dc=casa,dc=lan
-
replace: olcRootPW
olcRootPW: {SSHA}Aa6EcVNjQl6LUh5EiBI2U9FKe1ldMAEf
-
replace: olcAccess
olcAccess: to attrs=userPassword by dn="cn=admin,dc=casa,dc=lan" write by anonymous auth by self write by * none
-
add: olcAccess
olcAccess: to attrs=shadowLastChange by self write by * read
-
add: olcAccess
olcAccess: to dn.base="" by * read
-
add: olcAccess
olcAccess: to * by dn="cn=admin,dc=casa,dc=lan" write by * read
-
EOF
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/backend_mod.casa.lan.ldif

Troque a senha da linha olcRootPW para algo de sua preferência. Use o comando abaixo para gerar uma senha encriptografada (utilizada a palavra senha):
slappasswd

New password: 
Re-enter new password: 
{SSHA}xy1HnM19IJcigNFXDzmfwRu5e9NArkw9

Inicialização Método 2

Referência: https://help.ubuntu.com/11.04/serverguide/C/openldap-server.html
Comece com os comandos:
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif
TODO: ACRESCENTAR samba3 - link - https://help.ubuntu.com/11.04/serverguide/C/samba-ldap.html
Crie o arquivo "backend.casa.lan.ldif" com o seguinte conteúdo:
sudo gedit /etc/ldap/schema/backend.casa.lan.ldif
ou então desta forma:

sudo tee /etc/ldap/schema/backend.casa.lan.ldif <<EOF
# Load dynamic backend modules
dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulepath: /usr/lib/ldap
olcModuleload: back_hdb.la

# Database settings
dn: olcDatabase=hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {1}hdb
olcSuffix: dc=casa,dc=lan
olcDbDirectory: /var/lib/ldap
olcRootDN: cn=admin,dc=casa,dc=lan
olcRootPW: {SSHA}Aa6EcVNjQl6LUh5EiBI2U9FKe1ldMAEf
olcDbConfig: set_cachesize 0 2097152 0
olcDbConfig: set_lk_max_objects 1500
olcDbConfig: set_lk_max_locks 1500
olcDbConfig: set_lk_max_lockers 1500
olcDbIndex: objectClass eq
olcLastMod: TRUE
olcDbCheckpoint: 512 30
olcAccess: to attrs=userPassword by dn="cn=admin,dc=casa,dc=lan" write by anonymous auth by self write by * none
olcAccess: to attrs=shadowLastChange by self write by * read
olcAccess: to dn.base="" by * read
olcAccess: to * by dn="cn=admin,dc=casa,dc=lan" write by * read EOF

Troque a senha da linha olcRootPW para algo de sua preferência.
link: https://help.ubuntu.com/community/OpenLDAPServer
Use o comando abaixo para gerar uma senha encriptografada (utilizada a palavra senha):
slappasswd

New password: 
Re-enter new password: 
{SSHA}xy1HnM19IJcigNFXDzmfwRu5e9NArkw9

Adicione ao servidor LDAP com o comando:
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/backend.casa.lan.ldif


Inicialização Método 3

Referência: https://help.ubuntu.com/community/OpenLDAPServer
Configure um arquivo de configuração.

sudo gedit /etc/ldap/slapd.conf
# Make sure you edit or add these directives after the first 'database' directive.
suffix          "dc=casa,dc=lan"
directory       "/var/lib/ldap"
rootdn          "cn=admin,dc=casa,dc=lan"
rootpw          {SSHA}Aa6EcVNjQl6LUh5EiBI2U9FKe1ldMAEf

Lembre-se de criar uma senha criptografada com o comando abaixo (utilizada a palavra senha):

slappasswd

New password: 
Re-enter new password: 
{SSHA}xy1HnM19IJcigNFXDzmfwRu5e9NArkw9
Agora modifique o arquivo de configuração abaixo:
sudo gedit /etc/ldap/ldap.conf

#
# LDAP Defaults
#
# See ldap.conf(5) for details
# This file should be world readable but not world writable.

BASE dc=casa,dc=lan
#URI ldap://ldap.example.com ldap://ldap-master.example.com:666

#SIZELIMIT 12
#TIMELIMIT 15
#DEREF never

Reinicialize o OpenLDAP com o comando abaixo:
sudo /etc/init.d/slapd restart

Populando o Banco de Dados

Crie o arquivo "frontend.casa.lan.ldif" com o seguinte conteúdo:

sudo gedit /etc/ldap/schema/frontend.casa.lan.ldif
ou então desta forma:
sudo tee /etc/ldap/schema/frontend.casa.lan.ldif <<EOF
# Create top-level object in domain
dn: dc=casa,dc=lan
objectClass: top
objectClass: dcObject
objectclass: organization
o: Organização casa.lan
dc: Casa
description: Organização LDAP casa.lan

# Admin user.
dn: cn=admin,dc=casa,dc=lan
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword: {SSHA}xy1HnM19IJcigNFXDzmfwRu5e9NArkw9

dn: ou=people,dc=casa,dc=lan
objectClass: organizationalUnit
ou: people

dn: ou=groups,dc=casa,dc=lan
objectClass: organizationalUnit
ou: groups

dn: uid=aarvati,ou=people,dc=casa,dc=lan
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount objectClass: account uid: aarvati
sn: Arvati
givenName: Ademar
cn: Ademar Arvati Filho
displayName: Ademar Arvati Filho
uidNumber: 1001
gidNumber: 1001
userPassword: {SSHA}xy1HnM19IJcigNFXDzmfwRu5e9NArkw9
gecos: Ademar Arvati Filho
loginShell: /bin/bash
homeDirectory: /home/aarvati
shadowExpire: -1
shadowFlag: 0
shadowWarning: 7
shadowMin: 8
shadowMax: 999999
shadowLastChange: 10877
mail: aarvati@casa.lan
postalCode: 01333-030
l: São Paulo
o: Organização Casa.lan
mobile: +55 (0)6 xx xx xx xx
homePhone: +55 (0)5 xx xx xx xx
title: System Administrator
postalAddress:
initials: AAF

dn: cn=users,ou=groups,dc=casa,dc=lan
objectClass: posixGroup
cn: users
gidNumber: 100
memberuid: aarvati

dn: cn=aarvati,ou=groups,dc=casa,dc=lan
objectClass: posixGroup
cn: aarvati
gidNumber: 1001 memberuid: aarvati
EOF

Link com dicas para criar usuário POSIX: http://techhelplist.com/index.php/tech-tutorials/34-openldap/48-user-management-in-openldap
Com este arquivo estamos criando uma estrutura de diretório, um usuário (com um grupo próprio) e um grupo.
Para adicionar ao servidor o comando é:

sudo ldapadd -x -D cn=admin,dc=casa,dc=lan -W -f /etc/ldap/schema/frontend.casa.lan.ldif
Teste com o comando:
ldapsearch -xLLL -b "dc=casa,dc=lan" uid=aarvati sn givenName cn
dn: uid=aarvati,ou=people,dc=casa,dc=lan
cn: Ademar Arvati Filho
sn: Arvati
givenName: Ademar

Para saber mais sobre os atributos das classes utilizados consulte: http://www.zytrax.com/books/ldap/ape/
Se quisermos adicionar o usuário aarvati no grupo aarvati criados acima podemos alterar o banco de dados assim:
sudo gedit add.ldif

sudo tee add.ldif <<EOF
dn: cn=aarvati,ou=groups,dc=casa,dc=lan
changetype: modify
add: memberuid
memberuid: aarvati EOF
Modifique com o comando abaixo:
sudo ldapmodify -x -D cn=admin,dc=casa,dc=lan -W -f add.ldif
Pode-se checar a configuração geral com o comando:
sudo ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b cn=config dn
SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 dn: cn=config dn: cn=module{0},cn=config dn: cn=module{1},cn=config dn: cn=schema,cn=config dn: cn={0}core,cn=schema,cn=config dn: cn={1}cosine,cn=schema,cn=config dn: cn={2}nis,cn=schema,cn=config dn: cn={3}inetorgperson,cn=schema,cn=config dn: olcBackend={0}hdb,cn=config dn: olcDatabase={-1}frontend,cn=config dn: olcDatabase={0}config,cn=config dn: olcDatabase={1}hdb,cn=config dn: olcDatabase={2}hdb,cn=config

Apagar conteúdo e começar de novo

Execute os comandos:
sudo service slapd stop
apt-get --purge remove slapd ldap-utils
sudo rm -rf /var/lib/ldap/*
sudo rm -R /etc/ldap/schema

Replicação do LDAP

Configuração do master (provider)

Configuração do slave (consumer)

TODO: link - https://help.ubuntu.com/11.04/serverguide/C/openldap-server.html

Configurando ACL, TLS, SSL e TLS Replication

TODO: link - https://help.ubuntu.com/11.04/serverguide/C/openldap-server.html

Algumas checagens:

sudo ldapsearch -c -Y EXTERNAL -H ldapi:///  -LLL -b cn=config olcDatabase=config olcAccess
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: olcDatabase={0}config,cn=config
olcAccess: {0}to * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth manage by * break

sudo ldapsearch -c -Y EXTERNAL -H ldapi:///  -LLL -b cn=config olcDatabase={1}hdb olcAccess
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: olcDatabase={1}hdb,cn=config
olcAccess: {0}to attrs=userPassword,shadowLastChange by self write by anonymous auth by dn="cn=admin,dc=nodomain" write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by self write by dn="cn=admin,dc=nodomain" write by * read
dn: olcDatabase={2}hdb,cn=config
olcAccess: {0}to attrs=userPassword by dn="cn=admin,dc=casa,dc=lan" write by anonymous auth by self write by * none
olcAccess: {1}to attrs=shadowLastChange by self write by * read
olcAccess: {2}to dn.base="" by * read
olcAccess: {3}to * by dn="cn=admin,dc=casa,dc=lan" write by * read

Finalmente: Autenticação LDAP

TODO: link - https://help.ubuntu.com/11.04/serverguide/C/openldap-server.html
Referência adicional: http://wiki.freaks-unidos.net/linux%20ldap%20howto

Instale e configure os programas abaixo:

sudo apt-get install libnss-ldap 

Responda:
  • ldap://127.0.0.1/
  • dc=casa,dc=lan
  • version = 3
  • cn=admin,dc=casa,dc=lan
  • Senha do root
  • none
  • cn=proxyuser,dc=casa,dc=lan
  • Senha do proxy
  • md5

Se errar reconfigure com o comando:
sudo dpkg-reconfigure ldap-auth-config

Veja o resultado em:
sudo cat /etc/ldap.conf

Habilite a autenticação LDAP com o comando:
sudo auth-client-config -t nss -p lac_ldap

E configure para utilizá-lo:
sudo pam-auth-update
Escolha uma ou mais opções abaixo:
  • Unix authentication 
  • Winbind NT/Active Directory authentication
  • LDAP Authentication
  • SMB password synchronization
  • eCryptfs Key/Mount Management
Leitura adicional:

Configure Samba com Ldap


Instale os programas abaixo:
sudo apt-get install samba samba-doc smbldap-tools

Habilite o schema no Ldap:
sudo cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz /etc/ldap/schema/ 
sudo gzip -d /etc/ldap/schema/samba.schema.gz

Adicione ao servidor Ldap:
sudo tee schema_convert.conf <<EOF
include /etc/ldap/schema/core.schema 
include /etc/ldap/schema/collective.schema 
include /etc/ldap/schema/corba.schema 
include /etc/ldap/schema/cosine.schema 
include /etc/ldap/schema/duaconf.schema 
include /etc/ldap/schema/dyngroup.schema 
include /etc/ldap/schema/inetorgperson.schema 
include /etc/ldap/schema/java.schema 
include /etc/ldap/schema/misc.schema 
include /etc/ldap/schema/nis.schema 
include /etc/ldap/schema/openldap.schema 
include /etc/ldap/schema/ppolicy.schema
include /etc/ldap/schema/samba.schema
EOF
mkdir /tmp/ldif_output
slapcat -f schema_convert.conf -F /tmp/ldif_output -n0 -s "cn={12}samba,cn=schema,cn=config" > /tmp/cn=samba.ldif

Altere o arquivo gerado da seguinte forma:
sudo gedit /tmp/cn\=samba.ldif

Retire a instrução {XX} deixando o começo do arquivo da seguinte forma:
dn: cn=samba,cn=schema,cn=config 
... 
cn: samba
Apague as seguintes linhas do final:
structuralObjectClass: olcSchemaConfig
entryUUID: 9eedb454-51bb-1030-9643-8fced7ec9b31
creatorsName: cn=config
createTimestamp: 20110803012822Z
entryCSN: 20110803012822.405041Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20110803012822Z

E por fim:
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /tmp/cn\=samba.ldif

Crie o arquivo abaixo:
sudo tee /etc/ldap/schema/samba_indexes.ldif <<EOF
dn: olcDatabase={1}hdb,cn=config
changetype: modify
add: olcDbIndex
olcDbIndex: uidNumber eq
olcDbIndex: gidNumber eq
olcDbIndex: loginShell eq
olcDbIndex: uid eq,pres,sub
olcDbIndex: memberUid eq,pres,sub
olcDbIndex: uniqueMember eq,pres
olcDbIndex: sambaSID eq
olcDbIndex: sambaPrimaryGroupSID eq
olcDbIndex: sambaGroupType eq
olcDbIndex: sambaSIDList eq
olcDbIndex: sambaDomainName eq
olcDbIndex: default sub
EOF

Finalmente:
sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/samba_indexes.ldif

Resultado:
sudo ldapsearch -c -Y EXTERNAL -H ldapi:///  -LLL -b cn=config olcDatabase={1}hdb
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: olcDatabase={1}hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {1}hdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=nodomain
olcAccess: {0}to attrs=userPassword,shadowLastChange by self write by anonymou
 s auth by dn="cn=admin,dc=nodomain" write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by self write by dn="cn=admin,dc=nodomain" write by * read
olcLastMod: TRUE
olcRootDN: cn=admin,dc=nodomain
olcRootPW: {SSHA}NN73ooVJ5J1RATafqmZdSRofg22haX8A
olcDbCheckpoint: 512 30
olcDbConfig: {0}set_cachesize 0 2097152 0
olcDbConfig: {1}set_lk_max_objects 1500
olcDbConfig: {2}set_lk_max_locks 1500
olcDbConfig: {3}set_lk_max_lockers 1500
olcDbIndex: objectClass eq
olcDbIndex: uidNumber eq
olcDbIndex: gidNumber eq
olcDbIndex: loginShell eq
olcDbIndex: uid eq,pres,sub
olcDbIndex: memberUid eq,pres,sub
olcDbIndex: uniqueMember eq,pres
olcDbIndex: sambaSID eq
olcDbIndex: sambaPrimaryGroupSID eq
olcDbIndex: sambaGroupType eq
olcDbIndex: sambaSIDList eq
olcDbIndex: sambaDomainName eq
olcDbIndex: default sub

dn: olcDatabase={2}hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {2}hdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=casa,dc=lan
olcAccess: {0}to attrs=userPassword by dn="cn=admin,dc=casa,dc=lan" write by a
 nonymous auth by self write by * none
olcAccess: {1}to attrs=shadowLastChange by self write by * read
olcAccess: {2}to dn.base="" by * read
olcAccess: {3}to * by dn="cn=admin,dc=casa,dc=lan" write by * read
olcLastMod: TRUE
olcRootDN: cn=admin,dc=casa,dc=lan
olcRootPW: {SSHA}Aa6EcVNjQl6LUh5EiBI2U9FKe1ldMAEf
olcDbCheckpoint: 512 30
olcDbConfig: {0}set_cachesize 0 2097152 0
olcDbConfig: {1}set_lk_max_objects 1500
olcDbConfig: {2}set_lk_max_locks 1500
olcDbConfig: {3}set_lk_max_lockers 1500
olcDbIndex: objectClass eq

Configurar smbldap-tools

sudo gzip -d /usr/share/doc/smbldap-tools/configure.pl.gz
sudo perl /usr/share/doc/smbldap-tools/configure.pl

Respostas:
  • /etc/samba/smb.conf
  • /etc/smbldap-tools/
  • CASA
  • SERVER
  • H:
  • \\SERVER\%U
  • \\SERVER\profiles\%U
  • /home/%U
  • 770
  • logon.cmd
  • 45
  • dc=casa,dc=lan
  • ou=groups
  • ou=people
  • ou=computers
  • ou=Idmap
  • sambaDomainName=CASA
  • 127.0.0.1
  • 389
  • cn=admin,dc=casa,dc=lan
  • senha
  • 127.0.0.1
  • 389
  • cn=admin,dc=casa,dc=lan
  • senha
  • 0
  • S-1-5-21-2081339334-595048851-1977420297
  • SSHA
  • 513
  • 515
  • /bin/bash
  • /etc/skel
  • casa.lan
Faça um backup de tudo:
sudo slapcat -l backup.ldif

Se quiser verificar o que vai ocorrer...
sudo smbldap-populate -e samba.ldif
cat samba.ldif

E rode o comando (informe a senha desejada do root):
sudo smbldap-populate

Altere as configurações do servidor SAMBA:
sudo gedit /etc/samba/smb.conf

workgroup = CASA
wins support = yes
# passdb backend = tdbsam

# LDAP Settings
passdb backend = ldapsam:ldap://hostname
ldap suffix = dc=example,dc=com
ldap user suffix = ou=people
ldap group suffix = ou=groups
ldap machine suffix = ou=computers
ldap idmap suffix = ou=Idmap
ldap admin dn = cn=admin,dc=casa,dc=lan
ldap ssl = start tls
ldap passwd sync = yes
...
add machine script = sudo /usr/sbin/smbldap-useradd -t 0 -w "%u"

Reinicie o servidor
sudo restart smbd 
sudo restart nmbd

Informe a senha do servidor LDAP para o samba com o comando (troque secret pela sua senha):
sudo smbpasswd -w secret

Usuários existentes deverão ter uma configuração adicional (informe a senha do usuário):
sudo smbpasswd -a username

Adicione usuários com o comando:
sudo smbldap-useradd -a -P username

Apague usuários com o comando:
sudo smbldap-userdel -r username

Adicione grupos com o comando:
sudo smbldap-groupadd -a groupname

Adicionar usuário ao grupo:
sudo smbldap-groupmod -m username groupname

Adicionar máquinas como comando:
sudo smbldap-useradd -t 0 -w computername

Veja o manual do smbldap-tools para maiores detalhes.

Gerenciamento de Usuários com ldapscripts

Instale com o comando:
sudo apt-get install ldapscripts

Edite o arquivo abaixo:
sudo gedit /etc/ldapscripts/ldapscripts.conf
Altere as seguintes linhas:
SERVER="ldap://localhost"
BINDDN="cn=admin,dc=casa,dc=lan"
BINDPWDFILE="/etc/ldapscripts/ldapscripts.passwd"
SUFFIX="dc=casa,dc=lan" # Global suffix
GSUFFIX="ou=groups"        # Groups ou (just under $SUFFIX)
USUFFIX="ou=people"         # Users ou (just under $SUFFIX)
#MSUFFIX="ou=computers"      # Machines ou (just under $SUFFIX)
GIDSTART="1001" # Group ID
UIDSTART="1001" # User ID
MIDSTART="10000" # Machine ID

USHELL="/bin/bash"
UHOMES="/home/%u"     # You may use %u for username here
CREATEHOMES="yes"      # Create home directories and set rights ?
HOMESKEL="/etc/skel"  # Directory where the skeleton files are located. Ignored$
HOMEPERMS="755"       # Default permissions for home directories



Crie um arquivo de senha:
sudo sh -c "echo -n 'secret' > /etc/ldapscripts/ldapscripts.passwd"
sudo chmod 400 /etc/ldapscripts/ldapscripts.passwd

Troque secret por sua senha do usuário admin do servidor LDAP.
TODO: link - https://help.ubuntu.com/11.04/serverguide/C/openldap-server.html

Veja também o link abaixo pois explica a criação de arquivos LDIF para gerenciar usuários (criar, deletar, alterar):
http://techhelplist.com/index.php/tech-tutorials/34-openldap/48-user-management-in-openldap

Interface Gráfica para o OpenLDAP

Apache Directory Studio (plugin do eclipse): http://directory.apache.org/studio/installation-in-eclipse.html
Luma ( sudo apt-get install luma ): http://luma.sourceforge.net/
LDAP Administration Tool ( sudo apt-get install lat )
phpLDAPadmin ( sudo apt-get install phpLDAPadmin )

Configurando o phpLDAPadmin

Instale com o comando:
sudo apt-get install phpLDAPadmin

Modifique o arquivo de configuração em:
sudo gedit /etc/phpldapadmin/config.php

Configurações principais:
$servers->setValue('server','name','Casa.lan LDAP Server'); // The name to display
$servers->setValue('server','host','localhost'); // Address of the LDAP server
$servers->setValue('server','port',389); // Port number
$servers->setValue('server','base',array('dc=casa,dc=lan')); // Base dn
$servers->setValue('login','bind_id','cn=admin,dc=casa,dc=lan');
$servers->setValue('login','auth_type','session');

Acesse pelo endereço: http://localhost/phpldapadmin/ ou http://192.168.1.3/phpldapadmin

Mais links:

Máquinas Virtuais

Servidor de Virtual Machines

Para instalar um servidor de virtualização pode-se utilizar do VirtualBox com o comando:
sudo apt-get install virtualbox-ose

Ou então utilize o qemu com uma instalação assim:
sudo apt-get install qemu kvm-pxe


Para criar uma máquina virtual qemu siga os passos abaixo.

Crie um disco virtual:
mkdir /srv/Machines
cd /srv/Machines
qemu-img create -f qcow windows.img 50G

scp WindowsXP-SP3.iso root@192.168.1.3:/srv/Machines/
chown -vhR root:users /srv/Machines
chmod -cR 770 /srv/Machines

Instale o Sistema Operacional GUEST
qemu -localtime -cdrom /srv/Machines/WindowsXP-SP3.iso -m 384 -boot d -hda /srv/Machines/windows.img

Rede de usuário do Qemu tem os seguintes endereços:
  • 10.0.2.2 = DHCP Server e Firewall
  • 10.0.2.3 = DNS Server
  • 10.0.2.4 = Samba Server
No Windows XP execute o comando abaixo e inclua o endereço do servidor samba:
notepad \windows\system32\drivers\etc\hosts
10.0.2.4 smbserver

Acesse o diretório $HOME com o endereço:
\smbserver\qemu

Para rodar a máquina virtual virtual voce pode opter para utilizar os seguintes parâmetros:
qemu -runas $USER -net user,smb=$HOME -net nic -redir tcp:3389::3389 -no-kvm -daemonize -localtime -m 640 -hda /srv/Machines/windows.img

Para acessar o qemu monitor digite as teclas CTRL+ALT+2 para voltar ao normal digite CTRL+ALT+1. 
Nele você pode utilizar alguns comandos como incluir uma imagem de CD:
change ide1-cd0 /srv/Machines/WindowsXP-SP3.iso

Integração entre o Ubuntu e a Máquina Virtual

Execute um aplicativo de dentro da máquina virtual como um aplicativo do ubuntu com janela própria.

Simulação de dois desktops (1 com WXP): http://www.linux.com/archive/feature/124908?theme=print


Comments