Este memorial descreve a instalação e configuração de serviços de rede em um ambiente virtualizado, incluindo BIND9 para DNS, SAMBA para compartilhamento de arquivos, PostgreSQL e PHPPgAdmin para banco de dados, Apache e PHP para hospedagem de sites, e um script para compartilhar a conexão de internet entre os servidores.
1. MEMORIAL DESCRITIVO
Carlos Eduardo Correia dos Santos
Paulo José da Costa
A contingência do memorial
Este memorial tem como objetivo apresentar instalação dos serviços de rede: BIND9,
SAMBA, POSTGRESQL, PHPPGADMIN, APACHE2, PHP5 e suas respectivas
configurações: permissões de acesso, compartilhamento, criação de contas de usuários e
grupos, zona direta e reversa, acesso ao banco e etc.
I. IDENTIFICAÇÃO
1.1 Nome: Carlos Eduardo Correia dos Santos.
1.2 Nome: Gilberto
1.3 Nome: Paulo José da Costa.
1.4 Formação atual:Pós-graduando em Redes de computadores e telecomunicações –
ESTÁCIO DE SÁ | FATERN
1.5 Nome do Projeto: DATACENTER FATERN - Atividade Não-Presencial
II. PRÉ-REQUISITOS
Foi utilizado para desenvolvimento do projeto o software de virtualização ORACLE VM
VirtualBox, versão: 4.1.8;
Imagem do S.O LINUX - Ubuntu Server 11.10;
Imagem do S.O WINDOWS 7 – Últimate;
Atualização do sourcelist e repositórios de instalação (apt-get update);
Acesso a Internet.
III. INSTALAÇÕES E CONFIGURAÇÕES DE PACOTES
1. DNS
# apt-get install bind9
Arquivo de configuração DNS:
// prime the server with knowledge of the root servers
zone "." {
type hint;
file "/etc/bind/db.root";
};
// be authoritative for the localhost forward and reverse zones, and for
// broadcast zones as per RFC 1912
zone "localhost" {
type master;
file "/etc/bind/db.local";
};
2. zone "127.in-addr.arpa" {
type master;
file "/etc/bind/db.127";
};
zone "0.in-addr.arpa" {
type master;
file "/etc/bind/db.0"; Configuração de Zona Direta:
}; fatern.edu.br
zone "255.in-addr.arpa" {
type master;
file "/etc/bind/db.255"; Configuração de Zona
}; Reversa:
0.0.10.in-addr.arpa.zone
zone "fatern.edu.br." {
type master; Obs.: Endereço de rede das
file "/etc/bind/fatern.edu.br.local"; estações: 10.0.0.x/24
};
zone "0.0.10.in-addr.arpa." IN {
type master;
file "/etc/bind/0.0.10.in-addr.arpa.zone";
};
Arquivo de configuração de zona fatern.edu.br.local: Hosts adicionados:
$TTL 604800 dns-master;
@ IN SOA dns-master.fatern.edu.br. root.fatern.edu.br. (
2012021501 ; Serial www -> responsável por resolver
604800 ; Refresh o endereço www.fatern.edu.br
86400 ; Retry
no domínio;
2419200 ; Expire
604800 ) ; Negative Cache TTL www.posredes -> responsável
;
por resolver o endereço
@ IN NS localhost.
@ IN A 10.0.0.1 www.posredes.fatern.edu.br no
@ IN AAAA ::1 domínio.
dns-master IN A 10.0.0.1
www IN A 10.0.0.2
www.posredes IN A 10.0.0.3
3. Arquivo de configuração de zona 0.0.10.in-addr.arpa:
$TTL 604800
@ IN SOA dns-master.fatern.edu.br. root.fatern.edu.br. (
2012021502 ; Serial
604800 ; Refresh - Zona responsável por resolver
86400 ; Retry endereçamento IP em nomes;
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS 10.0.0.1.
1 IN PTR dns-master.fatern.edu.br
2 IN PTR www.fatern.edu.br
3 IN PTR www.posredes.fatern.edu.br
Reinicia o serviço DNS:
# invoke-rc.d bind9 restart
2. SAMBA
# apt-get install samba samba-doc
Arquivo de configuração smb.conf:
[global]
workgroup = fatern.edu.br
server string = %h server (Samba, Ubuntu) servidor de rede
; wins server = w.x.y.z
dns proxy = no
; name resolve order = lmhosts host wins bcast
; interfaces = 127.0.0.0/8 eth0
; bind interfaces only = yes - Nesta configuração o samba
log file = /var/log/samba/log.%m também é controlador de
max log size = 1000 domínio: FATERN.EDU.BR;
syslog = 0
panic action = /usr/share/samba/panic-action %d - Segurança por usuário;
security = user
encrypt passwords = true
passdb backend = tdbsam
obey pam restrictions = no
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Entersnews*spassword:* %nn
*Retypesnews*spassword:* %nn *passwordsupdatedssuccessfully* .
4. Adicionado script que cria a conta do computador no controlador de domínio, no momento de
ingresso da estação
pam password change = yes
domain logons = yes
; logon path = %Nprofiles%U
; logon drive = H:
logon script = %G.cmd
add user script = /usr/sbin/adduser --quiet --disabled-password --gecos ""
%u
add machine script = /usr/sbin/useradd -g machines -c "%u machine
account" -d /var/lib/samba -s /bin/false %u
add group script = /usr/sbin/addgroup --force-badname %g
; printing = bsd
; printcap name = /etc/printcap
; printing = cups
; printcap name = cups
; include = /home/samba/etc/smb.conf.%m
; message command = /bin/sh -c '/usr/bin/linpopup "%f" "%m" %s; rm %s' &
; idmap uid = 10000-20000
; idmap gid = 10000-20000 - Descontentado a linha de
; template shell = /bin/bash logonscript, e adicionado o
; winbind enum groups = yes
parâmetro %G.cmd que verifica
; winbind enum users = yes
; usershare max shares = 100 no momento de logon do
; usershare allow guests = yes usuário, a que grupo ele
[homes] pertence e executa o batch file
comment = Home Directories em netlogon com o nome do
browseable = no grupo.
read only = no
; create mask = 0700 Procedimento utilizado para
; directory mask = 0700
resolver a questão de
valid users = %S
[netlogon] mapeamento via script da pasta
comment = Network Logon Service do grupo do usuário.
path = /home/samba/netlogon
guest ok = yes
read only = yes - Mapeado compartilhamento
;[profiles] do diretório pessoal do usuário
; comment = Users profiles no logon.
; path = /home/samba/profiles
; guest ok = no - Descomentado a linha:
; browseable = no [homes] com permissão leitura,
; create mask = 0600
escrita e gravação. Permissão de
; directory mask = 0700
[administrativos] acesso somente pelo próprio
comment = Compartilhamento grupo administrativos dono da pasta home %S.
path = /media/administrativos
guest ok = no - Compartilhamento para grupo
browseable = yes administrativos (Com acesso
create mask = 444 somente pelos membros);
valid users = @administrativos
[docentes] - Compartilhamento para grupo
comment = Compartilhamento grupo docentes docentes (Com acesso somente
path = /media/docentes pelos membros);
5. guest ok = no
browseable = yes
create mask = 444
valid users = @docentes
; write list = root, @lpadmin
;[cdrom]
; comment = Samba server's CD-ROM
; read only = yes
; locking = no
; path = /cdrom
; guest ok = yes
; preexec = /bin/mount /cdrom
; postexec = /bin/umount /cdrom
- Adicionar usuário do Linux ao samba:
# smbpasswd –a usuário
- Adicionar usuário no Linux
# adduser usuário
- Adicionar usuário ao grupo criado
usermod –G grupo usuario
- Script para adicionar novos usuário no Linux e samba:
#! /bin/bash
echo Digite o login:
read login
echo Digite a senha
read senha
echo Criando conta no Linux
useradd $login
echo Configurando a senha para usuario $login
usermod $login -p $senha
echo Adicionando usuario no samba
(echo $senha; echo $senha) | smbpasswd -s -a $login
echo Criado com sucesso!
7. 3. POSTGRESQL e PHPPGADMIN:
# apt-get install postgresql phppgadmin
No diretório /var/lib/postgresql/8.4/main foi alterado o arquivo postgresql.conf:
Listen_addresses=’10.0.0.13’ #IP do servidor
No arquivo pg_hba.conf foi foi liberado o IP do servidor de banco:
host all all 10.0.0.13
No diretório /etc/phppgadmin (criado após a instalação) foi alterado o arquivo apache.conf e
adicionado a linha que dá acesso somente o servidor2 acessar via pgadmin:
Alias /phpadmin /usr/share/phpadmin/
<Directory /usr/share/phppgadmin/>
DirectoryIndex index.php
Options +FollowSymLinks
AllowOverride None - Adicionada essa linha que
permite acesso ao phppgadmin
order deny,allow somente pelo servdor 2 e
deny from all negado para todos em deny
allow from 10.0.0.2/255.255.255.0 from all.
allow from 127.0.0.0/255.0.0.0 ::1/128
<IfModule mod_php5.c>
php_flag magic_quotes_gpc off
php_flag track_vars On
php_value include_path .
</IfModule>
</Directory>
8. 4. Apache, PHP5
#apt-get install apache2 php5
Configuração do Apache para public_html
Ativar o módulo:
a2enmod userdir
restart serviço:
apachectl restart
Obs.: Criar no diretório /etc/skel a pasta public_html responsável por hosperar as páginas
do usuário. Assim, após a criação das contas, automaticamente é criado também o diretório
public_html na home do usuário.
5. Script em BASH para compartilhar conexão de internet com os servidores:
#! /bin/bash
#Limpa todas as regras
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
#Ativa roteamento
echo 1 > /proc/sys/net/ipv4/ip_forward
#Compartilha internet
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth1 -j MASQUERADE
Altera a permissão do arquivo:
# chmod +x arquivo.sh
Executa:
# ./arquivo.sh