Enviado por Do utilizador2625

servidores 0.7 2

Propaganda
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
Administração redes cliente–servidor
Gnu/Linux
Luís Machado 2013
Pag. 1
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
Mudar as cores da consola em INIT3
Depois do arranque do sistema pode-se mudar as cores da consola de duas formas. Podem lembrarse os códigos ANSI depois de se fazer o respectivo “echo”, ou pode usar-se o comando setterm para
fazer essas alterações. Para se colocar fundo branco e fonte preta tem de usar-se o código seguinte:
setterm -background white -foreground white -store
A “man page” do setterm contém informações completas sobre as várias opções e os valores válidos
de cor. Pode executar-se este comando a partir de um script de inicialização, os caminhos dos
ficheiros sãodependentes da distribuição, mas /etc/rc.local é muitas vezes um bom ponto de partida.
Se se pretender mudar as cores desde o início, é necessário editar o código fonte do kernel para
alterar as cores padrão e recompilar posteriormente o kernel. O arquivo a ser editado é
drivers/char/vt.c (era drivers/char/console.c com kernels mais antigos); encontrar as linhas que
começam com
vc->vc_def_color
= 0x07; /* white */
Esta é a linha 2739 no código fonte do kernel 2.6.22. Os dois dígitos hexadecimais representam o
fundo e o primeiro plano, então 0x07 é o padrão branco no preto, enquanto que 0x70 seria o cenário
inverso, ou seja preto no branco. Alteram-se os valores para as cores desejadas e recompila-se o
kernel da maneira habitual. Os números para as várias cores são:
0 ................black
1 ................blue
2 ...............green
3 ...............cyan
4 ...............red
5 ...............purple
6 ...............brown/yellow
7 ...............white
Adicionar o algarismo 8 a estes números para obter as versões "brilhantes", mas o “rendering” de
cores “brilhantes” é dependente do hardware e pode piscar em alguns sistemas.
Luís Machado 2013
Pag. 2
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
Para alterar a resolução da consola e consequentemente a resolução da fonte (maior ou menor)
introduzir no grub.conf a opção vga=*** no kernel. O grub.conf está em:
/boot/grub/grub.conf
e a entrada do kernel deverá ser como no exemplo seguinte:
kernel vmlinuz-2.6.32-358.e16.x86_64 ro root=/dev/mapper/vg_formacao-l vga=****
A tabela seguinte mostra os modos de vídeo que se podem utilizar (poderão variar ligeiramente com
as especificações) do hardware.
Colour depth
640x480
800x600
1024x768
1280x1024
8 (256)
769
771
773
775
15 (32K)
784
787
790
793
16 (65K)
785
788
791
794
24 (16M)
786
789
792
795
1400x1050
1600x1200
834
884
Alterar a fonte na consola em INIT3
Existem vária formas de alterar a fonte da consola como se pode comprovar pela documentação
digital ou tradicional (em papel).
Uma das formas é usar o comando setfont. A sintaxe do comando é a seguinte:
setfont /caminho _para_consolefonts/nome_da_fonte
Um exemplo para o CentOS é:
setfont /lib/kbd/consolefonts/lat2a-16.psfu.gz
Esta forma de mudança de fonte não é permanente para todos os utilizadores, apenas para o
utilizador corrente.
Luís Machado 2013
Pag. 3
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
Para se modificar permanentemente a fonte da consola deve alterar-se o ficheiro em:
/etc/sysconfig/i18n
No ficheiro i18n deve-se procurar a entrada “SYSFONT” e alterá-la de acordo com a fonte
desejada. O seguinte exemplo mostra como deve ficar esta entrada com uma fonte diferente da que
é chamada por defeito.
…
SYSFONT=”iso06.14″
…
Vizualização da data e sua alteração
A visualização da data é feita com o comando “date”.
form@form:~$ date
Sun Apr 28 22:41:48 WEST 2013
Para se alterar a data basta usar as opções do comando como nos exemplo descritos a seguir:
$date -d mm/dd/yy
$date -s hh:mm:ss
Visualização do calendário
O comando “cal” permite a visualização do calendário do mês corrente. Para se visualizar o
calendário de um ano basta acrescentar o ano.
Visualização do espaço ou tamanho das directorias e discos
Para visualizar o tamanho de directórios utiliza-se o comando “du”.
Exemplo:
du -h ~/downloads
Luís Machado 2013
Pag. 4
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
Para visualizar o tamanho de discos utiliza-se o comando “df”.
Exemplo:
df -h /dev/sda1
Runlevels (ou níveis de execução)
Em Gnu/Linux os “runlevels” são estados de configuração do sistema operativo nos quais apenas
determinados processos ou serviços estão activos.
Os “runlevels” permitem definir diversos estados de funcionamento do servidor, tendo cada estado
o seu conjunto específico de serviços e processos activos.
No arranque do sistema operativo o administrador definiu previamente o “runlevel” que deseja para
o servidor (ou desktop) definindo também os respectivos serviços a iniciar.
A tabela seguinte identifica os “runlevels” disponíveis assim como o propósito da utilização.
Runlevels
Propósito de utilização
0
Paragem “halt” do sistema
1
Modo “single user”
2
Modo reservado
3
Modo multi-utilizador (consola em modo de texto)
4
Modo reservado
5
Modo multi-utilizador (modo gráfico e consola em modo de texto)
6
“Reboot” do sistema
Os servidores arrancam normalmente em “init3” ou “init5”. Com o arranque em “init5” tem-se à
disposição o modo gráfico. Na generalidade os servidores são acedidos remotamente, quer estejam
em bastidores ou mesmo noutra localização mesmo que remota (outra cidade, outro edifício, etc).
No caso de estarem nesta situação os servidores não necessitam de ter o modo gráfico activo pelo
que o “runlevel 3” é o mais aconselhado já que poupa recursos. Os serviços disponibilizados são os
mesmos para os dois “runlevels” com excepção, claro está, da consola gráfica.
Os modos de execução (runlevels) 2 e 4 estão reservados para que o utilizador possa configurá-los à
sua medida. Somente em casos especiais é que se recorre a esta configuração já que com os
Luís Machado 2013
Pag. 5
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
“runlevels” 3 e 5 se podem activar e definir quais os serviços que estarão disponíveis no arranque
do sistema.
O “runlevel 0” corresponde à paragem do sistema com a terminação de todos os serviços, ou seja
desligar o servidor.
O “runlevel 6” corresponde ao “reboot” do sistema.
O “runlevel 1” corresponde ao modo “single-user” e é utilizado para realizar operações de
manutenção. Neste estado os serviços de rede não são activados pelo que comunicação com o
“exterior” está vedada. As operações críticas como a recuperação de cópias de segurança ou
recuperação do sistema após uma mal sucedida actualização do sistema devem ser feitas desta
forma. Claro está que estas operações de manutenção têm de ser feitas localmente.
O administrador pode entrar no modo “init1” através do GRUB. Esta situação é importante caso o
administrador se esqueça da palavra passe. O GRUB tem uma “shell” em que o administrador pode,
através de alguns comandos carregar o kernel e definiruma nova password através do comando
“password”.
O processo “init” é o primeiro a ser activado quando o sistema operativo arranca. Este vai carregar
o “runlevel” definido para o arranque.
O runlevel inicial é configurado no ficheiro /etc/inittab. Este ficheiro tem uma directiva de
configuração como o nome de initdefault que define o runlevel pretendido para o servidor.
#/etc/inittab – vista parcial do ficheiro
id:3:initdefault
Neste exemplo o “runlevel” de arranque será o 3.
O sistema operativo disponibiliza alguns comandos para monitorizar e controlar os runlevels.
A tabela seguinte mostra alguns destes comandos e a sua utilização ou funcionamento.
Comando
Funcionamento
Init [0...6]
Altera o nível de execução actual do sistema
runlevel
Determina os níveis de execução actual e anterior do sistema
halt
Pára o sistema (mesmo que init 0)
reboot
Reinicializa o sistema (mesmo que init 6)
poweroff
Pára o sistema e desliga o computador
shutdown
Pára o sistema de forma segura
Como se pode verificar alguns destes comandos realizam na prática a mesma função que a
utilização dos init. O comando reboot tem a mesma função que init 6.
Luís Machado 2013
Pag. 6
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
Como já foi referido anteriormente o nível de execução ou runlevel tem como objectivo activar o
sistema operativo com os serviços necessários para aquela função específica. Os serviços a serem
activados estão presentes no ficheiro /etc/services. Neste ficheiro estão os serviços conhecidos pelo
sistema operativo identificados pelo nome, porto e protocolo(s) utilizado(s).
No arranque do sistema o init vai ler o conteúdo do ficheiro services e os ficheiros configurados no
respectivo runlevel são activados.
Os serviços podem ser reinicializados através de um sinal enviado ao init como por exemplo:
$service smbd restart
Os serviços podem ter dois modos de funcionamento: o modo standalone e o modo xinetd.
No modo standalone, que são a maioria dos serviços de um servidor, os serviços são suportados
por daemons (processos). Os serviços são controlados por scripts próprios que se encontram no
directório /etc/rc.d/init.d. Este directório é no CentOS o responsável por albergar estes mesmos
scripts mas noutras distribuições podem ter um directório diferente, mas sempre dentro de /etc.
Os serviços podem ser como foi dito anteriormente controlados pelo comando service no entanto
pode controlar-se através do caminho para /etc/rc.d/init.d/serviço função.
$/etc/rc.d/init.d/smbd restart
Para se conhecer todas as opções de funções de um serviço basta invocar esse mesmo serviço:
$service smbd
Usage: /etc/init.d/smbd {start|stop|restart|reload|condrestart|status}
Os serviços activos para um determinado runlevel estão referenciados por links simbólicos nos
directórios correspondentes de cada runlevel em /etc/rc(runlevel).d. Por exemplo para o runlevel 5
o directório correspondente será /etc/rc5.d. Os serviços que começam com o nome “S” são para
activar (start) e os que começam por “K” são para desactivar (kill).
O número que aparece após estas letras serve para indicar o número de ordem para activação ou
desactivação dos serviços. É necessário ter em conta este número de ordem já que alguns serviços
dependem de outros para funcionarem correctamente. O serviço de email só poderá ser activado
após o serviço de rede (placa de rede) estar activo. Estes links simbólicos apontam para o directório
/etc/rc.d/init.d.
A criação destes links simbólicos torna-se mais fácil utilizando os comandos chkconfig ou setup.
Luís Machado 2013
Pag. 7
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
$chkconfig --list
…
networking
0:nao 1:nao 2:nao 3:sim 4:nao 5:sim 6:nao
…
Neste caso o comando lista todos os serviços e aqui mostra-se o serviço “networking” como activo
nos runlevels 3 e 5 o desactivado para os restantes.
Os exemplos seguintes mostram como activar ou desactivar serviços para runlevels.
$chkconfig --level 35 httpd on
$chkconfig --level 35 nfs off
No modo XINETD são controlados serviços que apenas pontualmente precisam de ser chamados.
Como não estão permanentemente activos ou a serem necessários pelo sistema são controlados pelo
xinetd sendo ele próprio um serviço standalone.
Este mecanismo serve essencialmente para poupar recursos de memória e processamento.
O ficheiro de configuração principal do xinetd é o /etc/xinetd.conf. Neste ficheiro de configuração
estão definidas algumas opções globais assim como as configuração específicas dos serviços
disponibilizados via xinetd. Estas últimas configurações estão armazenadas no directório
/etc/xinetd.d.
A sintaxe e os parâmetros de configuração do ficheiro xinetd.conf e dos ficheiros individuais em
/etc/xinetd.d, são as mesmas.
Algumas das configurações do ficheiro xinetd.conf incluem a forma como os logs são tratados.
Uma opção possível tem a ver com o parâmetro log_type= syslog daemon info, que especifica que
os logs são efectuados recorrendo ao serviço syslog através do daemon e nível info. A opção
log_on_failure=HOST configura o xinetd para registar nos logs o IP das máquinas clientes cujas
ligações falharam ou foram recusadas. A opção log_on_success=PID HOST DURATION EXIT
permite registar as ligações com sucesso com o PID e o IP do cliente que pediu o acesso, a duração
e quando saiu.
Os ficheiros de configuração dos serviços do xinetd em /etc/xinetd.d são incluídos na sua
configuração através da inclusão da directiva includedir /etc/xinetd.d. Já foi referido que estes
ficheiros permitem o controlo dos serviços por parte do xinetd e cada um tem o seu ficheiro
individual com o seu nome.
Por exemplo o serviço telnet terá o seu ficheiro e poderá ser como o exemplo seguinte:
Luís Machado 2013
Pag. 8
IEFP – Centro Formação Profissional Braga
$more /etc/xinetd.d/telnet
#default: on
service telnet
flags
socket_type
wait
user
server
log_on_failure
disable
Técn. Inst. Gestão de Redes Informáticas
=REUSE
=stream
=no
=root
=/usr/sbin/in.telnetd
=USERID
=no
A informação detalhada pode encontrar-se no manual do xinetd.conf (man xinetd.conf) de como
configurar estes ficheiros.
Sempre que se façam alterações ao xinetd.conf ou aos ficheiros de configuração individuais em
xinetd.d deve-se fazer o reload do serviço xinetd.
$service xinetd reload
Relembra-se que assim deve ser já que o xinetd é um serviço standalone.
TCP Wrappers
Os TCPWrappers são serviços “invisíveis” que servem para adicionar segurança na comunicação do
cliente com os serviços requisitados ao servidor. Os tcpwrappers podem funcionar paralelamente
com outros serviços de segurança como firewalls.
Neste contexto, os tcpwrappers fornecem mais uma camada de protecção para acesso aos serviços
no servidor por parte dos clientes.
No pacote “tcp_wrappers” a libraria libwrap.a é chamada pelos serviços requisitados para fazer o
controlo de acesso aos serviços.
Quando um cliente tenta ligar-se a um serviço controlado com tcpwrapper os ficheiros
/etc/hosts.allow e /etc/hosts.deny são lidos. O primeiro a ser lido é o hosts.allow e só depois de
não ser encontrada nenhuma regra é que passa a ler o hosts.deny.
As mensagens de entre clientes e servidor são guardadas em /var/log/secure e /var/log/messages.
Após a aceitação da comunicação entre o cliente e o serviço o TCPWrapper não volta a ter
interferência na comunicação entre eles.
Alguns dos serviços/servidores têm ligação directa (link) com a libraria libwrap.a permitindo uma
administração mais eficiente por parte dos administradores.
Luís Machado 2013
Pag. 9
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
Uma forma de verificar se o serviço está ligado ao tcpwrapper é através do comando:
ldd <nome_serviço> | grep libwrap
Se o serviço não está ligado ao tcpwrapper ocomando não irá dar nenhum resultado e a consola
volta para o “prompt”. Caso contrário o resultado será com o do exemplo seguinte.
[root@formacao ~]# ldd /usr/sbin/sshd | grep libwrap
libwrap.so.0 => /usr/lib/libwrap.so.0 (0x00655000)
[root@formacao ~]#
A sintaxe de configuração dos ficheiros hosts.allow e hosts.deny é da forma:
lista de daemons: lista de clientes [: opção: opção: ...]
A lista de daemons pode ser mesmo um conjunto de daemons ou apenas um mas deve colocar-se o
nome do daemon e não o nome do serviço (sshd e não ssh). Para vários daemons devem separar-se
por virgulas.
A lista de clientes pode pode ser um cliente, um host ou um domínio. A forma da configuração é
semelhante à da lista de daemons.
Na opção vai colocar-se se é allow ou é deny, autoriza ou nega a ligação ao serviço. Outras opções
são também aceites.
Nos exemplos seguintes mostra-se como se podem configurar os dois ficheiros de configuração.
vsftpd : .example.com
Se for no ficheiro hosts.allow, todos os computadores do domínio example.com serão autorizados,
se for a configuração do ficheiro hosts.deny o acesso será negado.
sshd : .example.com \ : spawn /bin/echo `/bin/date` access denied>>/var/log/sshd.log \ : deny
Neste exemplo os clientes de exemple.com quando tentam ligar ao serviço ssh, um “echo” é
executado com a mensagem de tentativa de acesso a ser colocada em sshd.log e o acesso é negado.
ALL : .example.com
Neste exemplo todos ao serviços são aceites para todos os hosts do domínio exemple.com.
Luís Machado 2013
Pag. 10
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
ALL : 192.168.
Neste exemplo todos os serviços são aceites por parte de hosts da gama de IP 192.168.X.X.
in.telnetd : /etc/telnet.hosts
Neste exemplo o telnet vai aceitar apenas os hosts que estão no ficheiro telnet.hosts.
ALL EXCEPT vsftpd: 192.168.0.
Neste exemplo são aceites todos os pedidos de serviços excepto o ftp e por parte dos IP da gama
192.168.0.X.
Outros serviços de rede
O(s) protocolo(s) de rede mais utilizado(s) nos dias que correm é o TCP/IP. As classes de rede, a
respectiva máscara e gama de IP's admissíveis por cada classe é conhecida.
Em Linux e nomeadamente no CentOS existem no entanto alguns ficheiros que são muito
importantes para a configuração de serviços de rede para que esta funcione sem problemas.
A tabela seguinte refere estes ficheiros e a sua utilização.
Ficheiro de configuração
Propósito de utilização do ficheiro
/etc/host.conf
Ordem pela qual são efectuadas as resoluções de DNS
/etc/hosts
Registo de nomes e endereços locais
/etc/resolv.conf
Endereços de servidores DNS na rede local
/etc/sysconfig/network
Nome da máquina e endereço do router (default gateway)
/etc/sysconfig/network-scripts Directório para os scripts de configuração das interfaces de rede
A visualização do ficheiro host.conf permite verificar como é feita a procura das resoluções de DNS
da máquina.
A configuração mais corrente neste ficheiro é da forma:
#Conteúdo do ficheiro /etc/host.conf
order hosts,bind
Significa isto que a procura de nomes vai ser feita pela ordem que está configurada no ficheiro hosts
Luís Machado 2013
Pag. 11
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
e que o serviço de DNS vais ser activado.
No caso do CentOs 6.4 vem com a configuração por defeito:
#Conteúdo do ficheiro /etc/host.conf
multi on
Nesta configuração o serviço de DNS vais fazer a procura do nome em todos os hosts do ficheiro
/etc/hosts e não apenas pela ordem que eles têm no dito ficheiro.
Outras opções de configuração podem facilmente ser consultadas no manual do ficheiro (man
host.conf).
O ficheiro /etc/hosts é utilizado para fazer a correspondência entre nomes de servidores e
respectivos IP's apenas no servidor local. Normalmente este ficheiro apenas serve para associar o
nome da máquina ao seu endereço de loopback que é o 127.0.0.0.
Este ficheiro é, no entanto, essencial para o funcionamento de serviços e programas que requeiram a
comunicação por TCP/IP. Assim estes serviços e programas comunicam desta forma dentro da
própria máquina. O formato deste ficheiro é IP (source); Domínio (domain); Nomes_da_máquina
(hostnames).
Um ficheiro que é também muito importante na configuração do serviço de rede já que contem os
parâmetros do cliente de DNS do sistema. O resolver é o programa ou componente do sistema
operativo que implementa a funcionalidade de cliente de DNS. Assim recorre a este ficheiro para
fazer a procura dos nomes dos hosts que necessita.
Um exemplo de configuração deste ficheiro é a que se mostra a seguir.
#Conteúdo do ficheiro hosts
search
domínio1 domínio2 …
domain
domínio_da_máquina
nameserver
10.0.0.1
nameserver
10.0.0.2
Como se pode ver pelo exemplo a directiva “search” permite procurar um nome em vários
domínios. A directiva “domain” indica o domínio em que a máquina se encontra. As directivas
“nameserver” têm a indicação dos servidores primário e secundário, de DNS, que devem ser
consultados. O servidor que aparece em primeiro lugar será o servidor primário.
O ficheiro /etc/sysconfig/network permite fazer uma configuração mais geral da rede em que está
Luís Machado 2013
Pag. 12
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
inserida a máquina. Pode aqui activar-se a rede, definir o gateway assim como o nome da máquina
na rede. O exemplo seguinte mostra isso mesmo.
#Conteúdo do ficheiro /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=formacao.dom
GATEWAY=192.168.0.1
Para que se possam configurar individualmente as interfaces de rede o directório
/etc/sysconfig/network_scripts contem um ficheiro individual para cada um dessas interfaces. Os
ficheiros têm o nome de ifcfg-nome_da_interface. No caso da primeira interface activada no
sistema ter-se-há o nome ifcfg_eth0, para a segunda ifcfg_eth1, para uma interface wireless
ifcfg_wlan0, etc.
Um exemplo da configuração destas interfaces é o seguinte:
#Configuração de ifcfg_eth0
DEVICE=eth0
HWADDR=00:0C:29:E4:EA:CD
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=dhcp
DHCP_HOSTNAME=dns_formacao.dom
Neste exemplo as configurações de comunicação de rede são obtidas por dhcp. Para o caso de se ter
IP's estáticos, a configuração seria como o exemplo seguinte:
#Configuração de ifcfg_eth0
DEVICE=eth0
HWADDR=00:0C:29:E4:EA:CD
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
Luís Machado 2013
Pag. 13
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
IPADDR=192.168.0.200
NETMASK=255.255.255.0
As interfaces de rede em Linux podem ter uma funcionalidade interessante que é a possibilidade de
terem endereços de rede alternativos. Estes IP's alternativos são designados por alias (diferentes dos
alias de comandos de consola). Os ficheiros dos alias têm o nome da forma ifcfg-interface:alias.
Assim para um alias de eth0 ficaria o seu ficheiro de configuração com o nome ifcfg-eth0:0. Esta
funcionalidade é importante quando se quer várias interfaces de rede virtuais e apenas se tem um
física. Uma firewall ou um router é um exemplo de aplicação, com limitações de tráfego mas
funcional.
Um exemplo de como se deve configurar apresenta-se de seguida. A configuração é idêntica à
anteriormente apresentada para eth0.
#Configuração de ifcfg_eth0
DEVICE=eth0:0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.210
NETMASK=255.255.255.0
BROADCAST=192.168.0.255
As interfaces de rede e os serviços de rede são configurados pelos seus respectivos ficheiros mas
para que esses serviços possam ser monitorizados e controlados de forma expedita o administrador
tem ao seu dispor comandos de consola para esse mesmo fim.
O comando ifconfig é um comando que permite verificar as configurações das interfaces (ou
placas) de rede. O comando ifconfig pode ser utilizado como “configurador” da interface
fornecendo-lhe IP e mascara de rede.
ifconfig eth0 10.0.2.2 netmask 255.255.255.0
O comando ifconfig permite também activar ou desactivar as interfaces de rede.
ifconfig eth1 up
ifconfig eth2 down
Luís Machado 2013
Pag. 14
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
O comando route é também bastante importante já que permite a monitorização e gestão das tabelas
encaminhamentos de rede (routing tables). De forma análoga que o ifconfig podem verificar-se as
rotas da tabela de encaminhamentos estão correctas, adicionar rotas ou suprimi-las.
A tabela de encaminhamentos é criada no arranque é criada pelos scripts de arranque do sistema
operativo após a activação das interfaces de rede.
Seguidamente mostram-se alguns exemplos da aplicação prática deste comando.
form@formacao ~$route -n
Kernel IP routing table
Destination
Gateway
Genmask
Flags Metric Ref
Use
Iface
192.168.75.0 0.0.0.0
255.255.255.0
U
0
0
0
eth0
192.168.204.0 0.0.0.0
255.255.255.0
U
0
0
0
eth1
Neste exemplo verificou-se quais as rotas presentes na tabela de encaminhamentos.
No exemplo seguinte adiciona-se o gateway, e mais duas rotas que têm o mesmo gateway definido
anteriormente.
form@formacao~$ route add default gw 192.161.100.1
form@formacao~$ route add -net 192.168.100.12/24 gw 192.161.100.1
form@formacao~$ route add -net 193.136.121.95/26 gw 192.161.100.1
Para se apagar uma rota faz-se o comando seguinte:
form@formacao~$ route del -net 192.168.100.12/24 gw 192.161.100.1
Fazendo a verificação à tabela de encaminhamentos previamente a ser aplicado o comando anterior,
obtém-se o seguinte:
form@formacao ~$route -n
Kernel IP routing table
Luís Machado 2013
Pag. 15
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
Destination
Gateway
Genmask
Flags Metric Ref
Use
Iface
192.168.75.0
0.0.0.0
255.255.255.0
U
0
0
0
eth0
192.168.204.0
0.0.0.0
255.255.255.0
U
0
0
0
eth1
192.168.100.12
192.168.100.1 255.255.255.0
UG
0
0
0
eth0
193.136.121.95
192.168.100.1 255.255.255.192
UG
0
0
0
eth0
0.0.0.0
192.168.100.1
UG
0
0
0
eth0
0.0.0.0
Nestes exemplos as “FLAGS” U e G significam que a rota está activa e que a rota é efectuada por
gateways, respectivamente.
Na última linha indica-se que todos os pacotes que não estejam referenciados por qualquer das rotas
anteriores anteriores sejam direccionados para o default gateway.
Um dos programas mais utilizados para monotorizar as ligações de rede é o netstat. Com este
software pode-se saber quais os portos activos, nos respectivos sockets assim como serviços e PID,
etc. A sua utilização é muito vasta pelo que para se ter um conhecimento mais profundo deve
consultar-se “man netstat”.
Como exemplos podem referir-se as opções netstat -i que mostra uma estatística das comunicações
das interfaces de rede. A opção netstat -l lista os sockets activos e preparados para receberem
comunicações. A opção netstat -s mostra estatísticas sobre a utilização dos vários protocolos de
rede.
Outro pequeno software que pode ser útil para analisar o tráfego da rede é o tcpdump. O tcpdump
não é mais do que um “sniffer” clássico que captura os pacotes de comunicação na rede ou numa
determinada máquina.
$tcpdump host 10.0.1.2
…..
$tcpdump -i eth0 tcp
…..
No primeiro exemplo a captura de todos os pacotes é feita no servidor 10.0.1.2. No segundo
exemplo os pacotes tcp são capturados na interface de rede eth0. As opções deste comando são
Luís Machado 2013
Pag. 16
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
imensas e por essa razão a leitura de “man tcpdump” é imprescindível.
Caso se queira uma análise mais completa e respectiva reconstrução das comunicações feitas pelos
protocolos nas interfaces de rede pode utilizar-se o programa wireshark. O wireshark pode utilizarse em modo consola que é muito útil para ligações remotas ou em modo gráfico com o wiresharkgnome.
$tshark -i eth0
…....
Com este comando os pacotes são capturados em eth0. Este comando permite que os pacotes sejam
capturados mesmo aqueles que não se destinam ou não têm como origem a máquina local.
Backups
Os “backups” ou cópias de segurança em português são um aspecto muito importante dos sistemas
informáticos e de redes. Os backups têm algumas soluções disponíveis e que devem ter em conta
não só o tipo de informação mas também o suporte em que a informação é guardada.
Relativamente à informação a salvaguardar poder-se-há dividir em 3 grupos: o sistema operativo, os
restantes programas e os ficheiros dos utilizadores.
O sistema operativo e os seus ficheiros de configuração podem ser salvaguardados totalmente,
criando uma imagem da partição ou apenas parcialmente. Em sistemas como servidores de DHCP,
DNS ou outros apenas poderá ser necessário fazer o backup dos ficheiros de configuração já que
por vezes é mais rápido instalar o sistema operativo dos que repor a imagem do sistema operativo.
Relativamente aos programas e seus ficheiros de configuração pode ter-se duas opções: ou ter um
backup apenas com conteúdos (bases de dados ou páginas WWW) ou backup com todo o pacote do
programa, ficheiros de configuração e conteúdos dos programas. Esta última opção pode ser
considerada acertada quando a instalação do software, seus programas acessórios e configuração
forem complicados e muito morosos.
Os ficheiros dos dados dos utilizadores são muitas vezes os dados mais importantes a ter em conta
na altura de fazer backups. Para muitas instituições esta informação é mais vital do que o sistema
operativo ou os ficheiros de configuração. Os backups dos dados dos utilizadores deverão ser
efectuados mais frequentemente e de forma completa, na maioria dos casos.
Deve-se analizar agora o tipo de backups que se podem fazer. Dito assim pode podem fazer-se
Luís Machado 2013
Pag. 17
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
backups completos, incrementais e diferenciais.
Os backups completos envolvem o armazenamento dos dados de todos os ficheiros de uma partição
ou de um directório. Necessariamente a quantidade de dados a armazenar será muito grande e
envolve grandes espaços no dispositivo de armazenamento. Estes backups são realizados com
menor frequência.
Os backups incrementais fazem uma verificação para cada ficheiro se este foi alterado desde o
último backup. Desta forma um backup incremental apenas adiciona os ficheiros alterados desde o
último backup tornando o processo mais rápido e com um tamanho menor do que fazendo backups
completos. Uma desvantagem tem a ver com o facto de quando se quer encontrar um determinado
ficheiro ter de procurar em mais que um ficheiro incremental e por vezes em diferentes unidades de
suporte (por exemplo unidades de fita magnética).
Quando se fizer a reposição total de um backup tem de se ter em conta que deve em primeiro lugar
repor-se o backup total mais recente e depois ir repondo os incrementais pela ordem que foram
efectuados.
Os backups diferenciais são semelhantes aos incrementais uma vez que só os ficheiros modificados
são adicionados. A diferença está no facto de que uma vez que um ficheiro é adicionado a um
backup será sempre incluído em todos os backups diferenciais que se fizerem até ao próximo
backup completo.
Assim sendo, quando se repõe um backup apenas será necessário repor o último backup completo e
o último backup diferencial para o sistema ficar actualizado.
Dispositivos de backup
Os dispositivos de backups podem ser variados e vão desde as simples “pendrives”, passando pelo
cd's e dvd's, pelas tape's (fitas magnéticas), HDD ou discos rígidos e servidores de backups com os
seus discos rígidos em RAID.
As tapes podem ser do tipo DDS (Digital Data Storage), DAT (Digital Audio Storage), DLT (Digital
Line Tape) e LTO (Linear Tape-Open). Relativamente às DDS têm uma tecnologia semelhante às
DAT. O formato DDS-4 suporta 20Gb ou 40 Gb com compressão. O formato DAT 72 suporta 36Gb
e 72Gb em formato comprimido. O DAT 160 suporta 80 Gb e 160 em modo comprimido.
Os backups que não necessitem de espaço muito extenso podem ser arquivados em cd's ou dvd's.
Um exemplo poderá ser o backup dos ficheiros de configuração dos servidores de DNS.
Os servidores de backups podem ser utilizados para armazenarem os dados dos utilizadores visto
Luís Machado 2013
Pag. 18
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
que a sua capacidade vai depender da quantidade e tamanho dos discos rigídos utilizados. Estes
servidores podem ser utilizados como servidores intermédios. Os dados são arquivados, via rede,
em horas de baixo tráfego (de noite, por exemplo) e posteriormente podem ser copiados para tape
ficando assim um backup redundante para uma segurança de dados mais apertada.
Comandos de backup
Os backups vão ser realizados através de comandos na consola de forma manual ou podem ser
realizados através de software que os tornam automáticos.
Os comandos mais conhecidos e utilizados em ambiente texto são o tar, o cpio, o dump, o restore e
o mt.
O comando tar Tape Archive já foi abordado noutras alturas por isso não vais ser abordado neste
momento.
O comando cpio faz a gestão dos arquivos com a mesma extensão (.cpio). Este comando funciona
de forma bem diferente do tar. O cpio recebe os ficheiros para arquivar através de um comando
auxiliar para que o resultado deste comando seja a entrada do cpio. O comando find é muitas vezes
utilizado para este fim.
# find /home | cpio -o > /backup/home-backup.cpio
# find /home -atime 60 | cpio -o >> \ /backup/home-backup.cpio
No primeiro caso os ficheiros e directórios de /home são utilizados para a criação do ficheiro de
backup home-backup.cpio.
No segundo caso o ficheiro home-backup.cpio vai ser criado com os ficheiros que foram acedidos
nos últimos 60 dias.
O comando dump permite realizar a cópia integral dos dados de uma partição para o dispositivo de
backup. O comando dump permite realizar backups incrementais assim como os completos.
O comando restore tem a função de fazer a reposição de uma partição ou conjunto de ficheiros
criados a partir do comando dump.
#dump 0auf /dev/nst0 /
Neste exemplo o backup é completo (nível 0) e a partição da root / é armazenada na tape associada
a /dev/nst0
Luís Machado 2013
Pag. 19
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
#restore -f /dev/nst0 -i
Neste exemplo vão ser recuperados os ficheiros desejados pelo administrador através do modo
interactivo. Este modo permite fazer a escolha entre os ficheiros contidos no backup.
#restore -if backup.dump
Neste exemplo vão ser recuperados os ficheiros desejados pelo administrador através do modo
interactivo. Os ficheiros desejados estão armazenados no ficheiro backup.dump.
O comando mt é utilizado para controlar as unidades de fita magnética. Este comando permite
rebobinar e colocar na posição desejada a tape que se está a utilizar para fazer os backups.
#mt -f /dev/st0 rewind
#mt -f /dev/st0 fsf 1
#mt -f /dev/st0 bsf 1
No primeiro exemplo a tape irá ser rebobinada. No segundo exemplo a tape será posicionada no
primeiro bloco do arquivo seguinte (fsf – forward space count files). No terceiro exemplo a tape
será posicionada no último bloco do arquivo anterior (bsf – backward space count files). Os valores
de fsf e bsf podem ser diferentes de 1 mediante a posição que o administrador deseje.
Backups centralizados
Os backups centralizados podem ser importantes na política de criação de backups de uma
instituição. Os backups são centralizados num servidor especificamente destinado para o efeito.
Estes backups podem ser realizados através dos comandos referidos anteriormente ou através de
software desenhado para o efeito. Um exemplo para este caso é o AMANDA (Advanced Maryland
Automatic Network Disk Archiver).
Podem agendar-se também as tarefas de backup através dos mecanismos de programação de tarefas
como é o caso do cron.
O cron é o serviço utilizado para programar a execução de tarefas de forma repetitiva em
Gnu/Linux. As tarefas são configuradas para serem executadas repetitivamente e na data e hora
desejadas.
Luís Machado 2013
Pag. 20
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
Este é um serviço essencial para o sistema por isso deve funcionar no modo standalone e estar
activado no runlevel em que vai funcionar o sistema. Uma característica interessante do serviço é
que não é necessário reinicializar o serviço após a alteração do ficheiro de configuração já que ele
verifica a cada minuto as tarefas que deve realizar.
O cron suporta tarefas de utilizador ou de sistema. O administrador, ou root, pode ele próprio
programar tarefas como utilizador.
Os ficheiros de configuração do cron são denominados de crontab e encontram-se em directórios
distintos quer se trate de ficheiros de utilizadores ou de sistema. Os ficheiros de utilizadores estão
armazenados do directório /var/spool/cron. Neste directório cada utilizador tem o seu próprio
crontab. Os crontab de sistema podem ser encontrados em /etc/contrab (ficheiro genérico de
configuração), /etc/cron.d (ficheiros mais específicos de tarefas), /etc/cron.hourly, /etc/cron.daily,
/etc/cron.weekly e /etc/cron.monthly. Além deste ficheiros e directorias são importantes os ficheiros
/etc/cron.allow e /etc/cron.deny que especificam quem pode realizar agendamento de tarefas ou
quem é interdito de usar o cron.
A sintaxe de configuração dos ficheiros crontab é como se apresenta de seguida:
#configuração genérica do crontab para utilizadores
SHELL=/bin/bash
MAILTO=form
#configuração da tarefa
Min H D M DS tarefa_ou_comando_a_executar
A configuração confere a possibilidade de agendar a tarefa para Min=minutos, H=hora, D=dia,
M=mês e DS=dia da semana. Para este último parâmetro consideramos de 0 (domingo) a 7
(sábado). Além das variáveis SHELL e MAILTO podem-se configurar a variável LOGNAME (é o
nome do utilizadorque é dono do crontab em execução) e HOME (directório de trabalho para
execução dos comandos do crontab). A variável MAILTO define o endereço de email para onde é
reportado o resultado da tarefa após conclusão.
Estas variáveis podem não constar no ficheiro do crontab, sendo assim o sistema adopta as varíaveis
por defeito.
Seguidamente exemplificam-se algumas tarefas no crontab:
5 0 * * * /local/bin/daily.job >> /tmp/out 2>&1
0 */2 * * * /local/bin/daily.job
Luís Machado 2013
Pag. 21
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
0 1-23/2 * * * /local/bin/daily.job
15 14 1 * * /local/bin/monthly
0 9,14 * * 1-5 mail -s “Aviso” mrelvas%Ola, %%vai trabalhar malandro!!!%
No primeiro exemplo 5 minutos depois da meia noite é executado o script daily.job e o resultado é
(stdout) enviado para o ficheiro /tmp/out, assim como os erros resultantes (stderr). O dispositivo 2
(stderr) é redireccionado para 1 (stdout).
No segundo exemplo o script daily.job é executado de duas em duas horas, diariamente, apartir das
00 horas.
O terceiro exemplo é semelhante ao anterior mas com a execução a começar à 1H e continuando de
2 em em 2 horas.
O quarto exemplo indica que o começo da tarefa é ás 14:15H do dia 1 de cada mês.
No último exemplo um email é emviado ao utilizador mrelvas com um conteúdo especificado. Este
email é enviado todos os dias úteis (1-5) ás 9H e ás 14H.
Deve notar-se que as tarefas são executadas sempre que estiver definido o parâmetro respectivo.
Assim se o contab estiver definido para '30 2 1,10 * 5', ás 2:30 dos dias 1 e 10 de cada mês e ás
sextas-feiras será executada a tarefa.
Já foi referido que para os utilizadores terem permissão para utilizar o cron têm de estar sinalizados
no ficheiro /etc/cron.allow ou em /etc/cron.deny para o caso de serem excluidos. O root tem sempre
acesso ao cron independentemente destes ficheiros existirem ou não. No CentOS apenas o
ficheiro /etc/cron.deny existe e está vazio, o que significa que todos estão autorizados a utilizar o
cron por defeito.
As tarefas de sistema têm diferenças relativamente ás tarefas de utilizadores, já que é necessário
indicar o utilizador da tarefa a seguir à data da mesma.
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
Luís Machado 2013
Pag. 22
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user
command
17 * * * *
root
cd / && run-parts --report /etc/cron.hourly
25 6 * * *
root
test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7
root
test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * *
root
test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
O exemplo anterior de um /etc/crontab exemplifica que o sistema realiza tarefas de verificação
todos os dias, todas as semanas, todos os meses.
Caso existam tarefas que não se enquadrem nos directórios existentes no /etc/crontab podem criarse ficheiros de”crontab” mas com o formato de sistema (com um username) no directório
/etc/cron.d.
AMANDA
Este software permite a criação de um servidor centralizado de backups. Assim sendo necessitamos
de dois programas, um para o servidor e outro para os clientes.
O Amanda utiliza os mesmos comandos que já vimos anteriormente como o dump e o tar para a
compressão dos ficheiros de backup.
O suporte de armazenamento pode ser tape ou discos rígidos que são “transformados” em tapes
virtuais.
A configuração do Amanda é um pouco trabalhosa e requer bastante atenção.
O exemplo seguinte mostra alguns dos parâmetros necessários para configurar o Amanda.
org "ServerNetBackup"
# Organization name for reports
mailto "[email protected]"
netusage 10000 Kbps
dumpcycle 1 week
runspercycle 7
tapecycle 15 tapes
Luís Machado 2013
# Email address to receive reports
# Bandwidth limit, 10M
# Backup cycle is 7 days
# Run 7 times every 7 days
# Dump to 15 different tapes during the cycle
Pag. 23
IEFP – Centro Formação Profissional Braga
tpchanger "chg-disk"
Técn. Inst. Gestão de Redes Informáticas
# The tape-changer glue script
changerfile "/etc/amanda/ServerNetBackup/changer"
# The tape-changer file
tapedev "file://central_backup/ServerNetBackup/slots" # The no-rewind tape device to be used
tapetype HARDDISK
# Define the type of tape
infofile "/etc/amanda/ServerNetBackup/curinfo"
logdir "/etc/amanda/ServerNetBackup/logs"
# Log directory
indexdir "/etc/amanda/ServerNetBackup/index"
define tapetype HARDDISK {
length 100000 mbytes
# Database directory
# Index directory
# Define our tape behaviour
# Every tape is 100GB in size
}
amrecover_changer "changer"
# Changer for amrecover
Pode ver-se que tem o nome do servidor ou organização, o email para onde enviar as comunicações
de estado dos processos. Configura-se também a periodicidade dos backups assim como a largura
de banda da rede a usar e a capacidade dos discos rígidos, etc.
Relativamente ao cliente a configuração é mais básica necessitando apenas de configurar o ficheiro
/var/lib/amanda/.amandahosts:
#ficheiro de configuração /var/lib/amanda/.amandahosts
formacao.dom amandabackup amdump
localhost amandabackup amdump
localhost.localdomain amandabackup amdump
Não se deve de esquecer de configurar devidamente o xinetd ou o ficheiro correspondente em
/etc/xinetd.d para aceitar os pedidos do Amanda.
O “KERNEL”
O kernel é como se sabe “o coração” do sistema operativo das distribuições GNU/Linux.
As próprias distribuições fazem actualizações automáticas do kernel quer para corrigir “bugs”,
quer para adicionar funcionalidades quer para actualizar para novas versões de hardware suportado.
Luís Machado 2013
Pag. 24
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
Existem duas grandes correntes na criação de kernels: o kernel monolítico e kernel modular.
O kernel modular é o mais simples possível e encarrega-se de coordenar a troca de mensagens e
dados entre os diferentes componentes (drivers). Os componentes são compilados como módulos
que são carregados e descarregados dinamicamente à medida que vão sendo necessários.
No kernel monolítico todas as funções importantes do kernel fazem parte de um único processo em
que todos os elementos partilham o mesmo espaço de endereçamento de memória, poupando
recursos.
O kernel do Linux incorporou algumas características de um kernel modular, o que o torna
atualmente uma espécie de kernel "semi-monolítico". Todo o kernel, incluindo os drivers de
dispositivos e outros componentes ainda formam um único bloco de código (gigantesco, mais de 30
MB compactado) mas agora podem ser compilados separadamente na forma de módulos. Estes
módulos podem ser carregados e descarregados a qualquer altura, como seria possível num kernel
modular, porém sem a perda de desempenho ou aumento da complexidade que existiria ao utilizar
um kernel realmente modular.
A desvantagem é que os módulos compilados para uma determinada versão do kernel não podem
ser usados noutras máquinas com versões diferentes do kernel ou após haver uma actualização do
mesmo. Os módulos têm assim que ser novamente compilados.
Porquê personalizar a compilação do kernel? Ora bem, acima de tudo com uma compilação
personalisada para cada máquina conseguem-se ganhos de performance. Com uma personalisação
do kernel apenas se activam as funcionalidades pretendidas assim que os módulos compilados
apenas serão aqueles que efectivamente a máquina possui. Alguns estudos revelaram que este ganho
nem sempre é relevante e por vezes não compensa o tempo perdido para se ganhar 0.5% de
performance.
Para se realizar a actualização do kernel existem duas formas de o fazer. Como já foi referido pode
fazer-se uma compilação do kernel mais recente através do código fonte. O kernel pode ser
actualizado através do sistema de actualizações (updates) da distribuição.
#yum update kernel
O kernel será assim actualizado para a versão mais recente que a distribuição fornecer nos seus
repositórios de pacotes. Atenção que, dependendo da distribuição, a versão de kernel pode ser mais
ou menos recente. No CentOs (como no RHLE) previligia-se a estabilidade pelo que utilizam uma
versão menos recente mas mais testada a nível de estabilidade e “bugs”.
Luís Machado 2013
Pag. 25
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
A numeração das versões do kernel segue um padrão em que o segundo algarismo reflete se o
kernel é estável ou de teste. Assim quando terminar em par significa uma versão estável (3.4) se
terminar em ímpar significa uma versão com componentes em teste (3.9).
No caso de se querer fazer a actualização do kernel através do código fonte o primeiro passo é fazer
o download da versão que se pretende do site kernel.org.
Após o download efectuado copia-se ou move-se o ficheiro para /usr/src.
#mv linux-X.X.X.tar.gz /usr/src
No caso de já existir aqui um directório chamado “linux” devemos fazer alterá-lo para outro nome.
#mv linux linux_antigo
Faz-se a extracção do conteúdo do ficheiro tar
#tar zxvf linux-X.X.X.tar.gz
De seguinda altera-se o nome de linux-X.X.X para linux:
#mv linux-X.X.X linux
Dentro do directório linux vai-se aplicar o comando:
#make menuconfig
A partir daqui tem que se verificar todos os menus e submenus para escolher os componentes que se
adequam ao sistema. Após se ter feito a configuração, não se pode esquecer de guardar (save).
Com o comando anterior as configurações são feitas de raíz. Para se poder ter acesso ás
configurações actuais do kernel que está a ser usado pelo servidor pode-se usar o comando:
#make oldconfig
Assim pode poupar-se muito tempo em configurações já que a configuração anterior é carregada.
Pode depois alterar-se como desejar essa mesma configuração.
A partir daqui o computador vai fazer a compilação do kernel.
#make bzImage
A compilação pode demorar algumas horas no caso de configurações mais complexas.
De seguida vai-se compilar e instalar os módulos previamente seleccionados no processo de
Luís Machado 2013
Pag. 26
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
configuração do kernel.
#make modules
Mais uma vez tem que se esperar um pouco.
Após a compilação instalam-se os módulos:
#make modules-install
O comando acima indicado instala os módulos no directório /lib/modules/versão_do_kernel
(/lib/modules/3.9.4) para que possam ser chamados sempre que o mesmo os necessite.
Resta agora instalar o kernel compilado:
#make bzImage install
Com o comando anterior a instalação do kernel é feita colocando a imagem em /boot. Os ficheiros
que devem ser gerados são System.map-versão; vmlinuz-versão e initramfs-versão.img.
Após a verificação se os ficheiros estão no seu devido lugar verifica-se se a entrada no
/boot/grub.conf do novo kernel já está configurada. Caso contrário terá de se fazer manualmente.
DHCP
O Dynamic Host Configuration Protocol – DHCP é uma ferramenta de redes importante quando se
trata da configuração das mesmas. Como se sabe, o DHCP, permite que equipamentos que usam a
rede e o TCP/IP obtenham automaticamente as configurações à qual estão ligados. As vantagens e
desvantagens são já conhecidas.
O processo de obtenção de parâmetros de rede por DHCP baseia-se no seguinte: o equipamento que
se liga à rede emite um broadcast à rede e um DHCP Discover. Seguidamente o servidor, ou
servidores, de DHCP enviam como resposta um DHCP Offer. O equipamento escolhe o servidor (e
as configurações respectivas) e envia-lhe um pedido – DHCP Request (em broadcast). Assim avisa
todos os servidores qual o IP que vai ter. Os servidores que tinham reservados IP para aquela
máquina vão libertar estes IP para outros equipamentos. Por fim o servidor “escolhido” envia um
DHCP Acknowledge em que confirma o IP e autoriza completamente a ligação. O equipamento fica
então ligado à rede com o IP até à finalização do tempo de lease.
Luís Machado 2013
Pag. 27
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
Em Gnu/Linux o DHCP tem a sua configuração em vários ficheiros. O cliente de DHCP é
denominado de dhclient. Este cliente é activado quando a placa de rede, ou melhor, a configuração
da placa de rede tem a opção BOOTPROTO=dhcp. Esta opção faz parte do ficheiro
/etc/sysconfig/network-scripts/ifcfg-eth0 (por exemplo). Quando a placa de rede é activada, o
cliente de DHCP é activado também e obtém os parâmetros necessários para a configuração.
No caso de o cliente e o servidor estarem em redes físicas diferentes um router ou um relay agent
fazem a ligação entre os dois. O relay agent está na maioria dos casos integrados no router. O relay
agent limita-se a copiar as mensagens com os pedidos entre os clientes e os servidores.
O dhclient tem um ficheiro em /var/lib/dhclient no sentido de guardar as configurações acerca da
lease que lhe foi atribuída. Com este ficheiro garante-se que, mesmo depois da reinicialização da
máquina, esta mantém o IP até ao final da lease.
O servidor de DHCP é o daemon dhcpd. O seu ficheiro de configuração é /etc/dhcpd.conf. O
ficheiro de exemplo de configuração pode ser encontrado em:
/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample.
O exemplo seguinte mostra como se compõe o ficheiro dhcpd.conf.
#Exemplo de configuração de dhcpd.conf
ddns-update-style interim;
#Dynamic DNS deve sempre conter esta directiva
ignore client-updates;
#Ignora os updates da linha anterior
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.128 192.168.0.254;
option subnet-mask
255.255.255.0;
option broadcast-address
192.168.0.255;
option routers
192.168.0.1;
option domain-name
option domain-name-servers
#
#
option netbios-name-servers
"formacao.dom";
192.168.0.16, 192.168.0.17;
192.168.1.100;
option ipforwarding off;
default-lease-time 21600;
max-lease-time 43200;
#
option time-offset
-18000;
host ns2 {
Luís Machado 2013
Pag. 28
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
option host-name “ns2.formacao.dom”
next-server ns2.formacao.dom;
hardware ethernet 00:02:c3:d0:e5:83;
fixed-address 192.168.0.16;
}
host laser-printer-laser1 {
hardware ethernet 08:00:2b:4c:a3:82;
fixed-address 192.168.0.120;
}
}
As directivas relacionadas com o DDNS têm de estar sempre presentes no dhcpd.conf. A razão é
que quando se quer compatibilidades com o Active Directory do MSWindows esta configuração
tem de estar presente.
A directiva subnet configura a rede com os parâmetros necessários: gama de IP (range), a máscara
de rede os IP do router, dos servidores de DNS, o nome do domínio, os tempos de leases, etc..
Na segunda parte do ficheiro definem-se dois IP's fixos para duas máquinas: um para o servidor
primário de DNS e outro para uma impressora. Sempre que haja necessidade de atribuir IP's fixos a
servidores ou máquinas individuais deve colocar-se o MAC address da respectiva interface de rede
e o seu IP.
No caso de se terem várias subnets dentro da mesma rede física pode configurar-se do seguinte
modo:
shared-network name {
option domain-name
"formacao.dom";
option domain-name-servers
ns1.formacao.dom, ns2.formacao.dom ;
option routers
192.168.0.254;
subnet 192.168.0.0 netmask 255.255.252.0 {
parameters for subnet
range 192.168.0.1 192.168.0.254;
}
Luís Machado 2013
Pag. 29
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
subnet 192.168.2.0 netmask 255.255.252.0 {
parameters for subnet
range 192.168.2.180 192.168.2.254;
}
}
Pode verificar-se que para cada uma das subnets a gama de IP vai se necessariamente diferente.
Este ficheiro de configuração tem a possibilidade de se poderem agrupar subnets, shared-networks,
hosts ou mesmo outros grupos na mesma configuração base.
O exemplo seguinte ilustra esta situação.
#Exemplo de configuração de group
group {
option routers
192.168.1.254;
option subnet-mask
255.255.255.0;
option domain-name
"formacao.dom
option domain-name-servers 192.168.1.1;
option time-offset
-18000;
# Eastern Standard Time
host nabo {
option host-name "nabo.formacao.dom";
hardware ethernet 00:A0:78:8E:9E:AA;
fixed-address 192.168.0.4;
}
host mamute {
option host-name "mamute.formacao.dom";
hardware ethernet 00:A1:DD:74:C3:F2;
fixed-address 192.168.0.6;
}
}
As leases atribuídas pelo dhcpd são armazenada no ficheiro /var/lib/dhcpd/dhcpd.leases. Não é
Luís Machado 2013
Pag. 30
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
aconselhavel que o administrador modifique este ficheiro uma vez que pode originar conflitos na
rede. O administrador deve guardar um cópia no caso de ser necessário repor este ficheiro.
DNS (Domain Name Server)
O serviço de DNS é um dos mais importantes nas redes actuais. Basta ver que na Internet tudo
passa por este serviço e a menos que se saibam qual os IP's das páginas que se querem visualizar, o
DNS é o que permite obter o contacto com os servidores que as alojam.
Como se deve saber o serviço DNS faz a tradução de um nome num IP seja esse nome de uma
máquina da rede local ou de um servidor da Internet.
O servidor utilizado no CentOS é o BIND (Berkeley Internet Name Domain) e o daemon
respectivo é o named.
No CentOS o serviço de DNS utiliza para os protocolos de comunicação TCP e UDP o porto 53. o
DNS é identificado no /etc/services por domain.
Um servidor de DNS pode funcionar da forma representada na tabela seguinte:
Modo de Funcionamento
Descrição geral do funcionamento
master
Armazena a informação das zonas DNS para as quais tem autoridade
slave
Copia a informação das zonas DNS a partir de servidores master
caching-only
Resolve endereços e armazena em cache os resultados
forwarding
Recorre a outros endereços para efectuar a resolução de endereços
O modo master (ou servidor primário) é o responsável pela configuração das zonas pelas quais tem
autoridade. Sempre que há necessidade de alterar os ficheiros com registo de nomes e endereços das
diversas zonas, este trabalho é feito no master e depois é copiado para o slave.
O modo slave (ou servidor secundário) funciona como backup do servidor primário ou master. Os
ficheiros de registo dos nomes e IP são copiados para este servidor a partir do master e de forma
automática.
O modo caching-only permite que se façam operações de resolução e manutenção em cache dos
resultados. Não é necessário ser master ou slave para isso. A cache é sempre mantida e se algum
domínio ou nome desaparecer, a sua informação estará no servidor mas depois não há destino a
atingir. Este é o seu inconveniente.
O modo forwarding faz o pedido a outros servidores DNS. Ele não faz a resolução de nomes,
Luís Machado 2013
Pag. 31
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
apenas faz o pedido a outros servidores pelo nome. Uma utilização deste modo é em redes privadas
em que os servidores não têm ligação directa à Internet.
Os nomes dos servidores devem ser sempre representados no formato FQDN (Fully Qualified
Domain Name). O endereço www.formacao.pt. (o ponto no final faz parte) indica que o servidor
www faz parte do domínio formacao.pt. Os DNS têm uma hierarquia e esta hierarquia permite que
cada domínio seja administrado de forma independente. Para que um domínio seja visível para
todos este deve ser delegado, ou seja, deve ser registado nos servidores de domínio imediatamente
superiores na hierarquia.
As zonas que constam no DNS podem ser várias mas terão que ser sempre pelo menos duas. Uma
zona de mapeamento directo e outra de mapeamento inverso. O mapeamento directo consiste em
resolver o nome obtendo o IP. O mapeamento inverso consiste em obter o nome a partir do IP.
As zonas de mapeamento directo terão o nome próprio do domínio (formacao.dom). As zonas de
mapeamento inverso será identificada usando os dígitos do IP invertidos com o sufixo in-addr.arpa.
O nome do mapeamento inverso ficaria, por exemplo: 111.0.168.in-addr.arpa. (atenção ao ponto no
final). Já se sabe que os browsers assumem o ponto no final do endereço e por isso não se põe
quando se digita o mesmo na barra de endereços.
Os ficheiros de zonas da configuração dos DNS contêm resource records que indicam entradas
para os nomes dos servidores ou para directivas de configuração.
A tabela seguinte mostra os resource records utilizados na configuração dos DNS.
Resource records
Nome
Propósito de utilização
SOA
Start of authority
Identificação do cabeçalho de zonas
NS
Name server
Definição de servidores de DNS (master ou slave)
PTR
Pointer to Name
Associação de um endereço a um nome (mapeamento
inverso)
MX
Mail exchanger
Definição de servidores de correio electrónico
A
Adress
Associação de um nome a um endereço (mapeamento
directo)
CNAME
Canonical name
Definição de nomes alternativos para servidores
TXT
Text information
Definição de informação textual sobre o domínio
HINFO
Host information
Definição de informação sobre um servidor.
No CentOS para se instalar o bind deve considerar-se instalar também os pacotes bind-utils e
caching-nameserver porque proporcionam ferramentas e ficheiros de configuração por defeito
Luís Machado 2013
Pag. 32
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
(default). Estes ficheiros podem ser uma boa base de partida para a configuração dos serviços.
O modo de caching-only permite fazer uma procura recursiva de nomes armazenando-os em cache.
Já se referiram anteriormente as características deste modo.
O exemplo seguinte é retirado do ficheiro caching-nameserver.conf. Este é o ficheiro default mas
que exemplifica a sintaxe de configuração do BIND.
#Exemplo de /etc/caching-nameserver.conf
options{
listen-on port 53 { 127.0.0.1; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
query-source port 53;
query-source-v6 port 53;
allow-query { localhost; };
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view localhost_resolver {
match-clients { localhost; };
match-destinations { localhost; };
recursion yes;
include "/etc/named.rfc1912.zones";
};
Neste ficheiro deve referir-se que no grupo “options” estão definidas os portos de comunicação, e o
directório raiz de ficheiros de configuração do named (daemon do bind).
O grupo “logging” define a forma como se vai fazer o trabalho de logs do named.
O grupo “view” permite configurar as vistas do bind, ou seja, o grupo de máquinas que poderão
efectuar pedidos de resolução de nomes.
O ficheiro referido como named.rfc1912.zones define requisitos operacionais de como o servidor
de DNS deve funcionar nomeadamente com o localhost e com o Top Level Domain (TLD –
domínio de topo).
# Exemplo de /etc/named.rfc1912.zones
zone "." IN {
type hint;
Luís Machado 2013
Pag. 33
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
file "named.ca";
};
zone "localdomain" IN {
type master;
file "localdomain.zone";
allow-update { none; };
};
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};
...
Neste ficheiro a zona “.” tem a referência do ficheiro named.ca que identifica os servidores de topo
da hierarquia da internet.
#Ficheiro /var/named/named.ca
A.ROOT-SERVERS.NET.
3600000
IN
A
198.41.0.4
A.ROOT-SERVERS.NET.
3600000
NS
AAAA
2001:503:ba3e::2:30
B.ROOT-SERVERS.NET.
3600000
IN
A
128.9.0.107
C.ROOT-SERVERS.NET.
3600000
IN
A
192.33.4.12
D.ROOT-SERVERS.NET.
3600000
IN
A
128.8.10.90
E.ROOT-SERVERS.NET.
3600000
IN
A
192.203.230.10
F.ROOT-SERVERS.NET.
3600000
IN
A
192.5.5.241
G.ROOT-SERVERS.NET.
3600000
IN
A
192.112.36.4
H.ROOT-SERVERS.NET.
3600000
IN
A
128.63.2.53
I.ROOT-SERVERS.NET.
3600000
IN
A
192.36.148.17
Os seguintes ficheiros representam a forma como as zonas são configuradas no bind. Há algumas
diferenças entre os dois nomeadamente a seguir ao “resource record” SOA (start of authority), em
que no named.local se inscreve o hostname (localhost) e o email do responsável pelo serviço
Luís Machado 2013
Pag. 34
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
(root.localhost = root@localhost).
#Ficheiro /var/named/localhost.zone
$TTL
@
86400
IN
SOA @
root (
2002022401 ; serial
3H ; refresh
15M ; retry
1w ; expire
1D ) ; minimum
IN
NS
@
IN
A
127.0.0.1
IN
A
:1
#Ficheiro /var/named/named.local
$TTL
86400
@
IN
1
SOA
localhost.
root.localhost. (
2013060100
; Serial
28800
; Refresh
14400
; Retry
3600000
; Expire
86400 )
;Minimum
IN
NS
localhost.
IN
PTR
localhost.
De notar que o serial é o número de série do ficheiro. Este nº de série serve para que o servidor
secundário possa verificar se houve alterações na configuração do DNS. Ao questionar o servidor
primário vai verificar este nº de série e caso ele tenha variado o ficheiro é copiado para o
secundário.
É uma prática corrente colocar-se a data com o nº sequencial como o nº de série (2013061101, por
exemplo).
Após a configuração estar efectuada vai iniciar-se o serviço com o comando já conhecido:
#service named start
Luís Machado 2013
Pag. 35
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
Após o início do serviço deve verificar-se se as zonas estão configuradas correctamente. Para isso
basta aceder aos logs gerados pelo named.
#tail -f /var/log/messages
Para configurar os clientes de DNS, o processo já é conhecido, bastando para isso aceder e alterar,
de acordo com o pretendido, os ficheiros /etc/resolv.conf, /etc/hosts e /etc/host.conf.
Seguidamente apresenta-se um exemplo prático da configuração de servidores DNS. A rede tem
acesso a um servidor WWW pelo exterior e no interior. Os clientes da WWW não poderão ver os
servidores dos domínios internos nem as máquinas da rede interna pelo que se criaram duas vistas
(views): uma de nome “trusted” para os internos e outra para os externos “external”.
#Ficheiro de /etc/named.conf
//Recebe pedidos na interface de ligação ao DMZ
options{
listen-on port 53 { 193.136.212.65;127.0.0.1; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
query-source port 53;
query-source-v6 port 53;
// Qualquer máquina pode contactar o servidor
allow-query { any; };
// Por omissão não autoriza transferências completas de zonas
allow-transfer { none; };
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
// Vista trusted aplica-se a todos os IP internos com excepção do router e do servidor DNS
// secundário
view “trusted” {
// Os IP 193.136.212.66 e 193.136.212.126 são excluídos (sinal !)
match-clients { 10.60.0.0/24; !193.136.212.66; !193.136.212.126;
193.136.212.64/26; 10.50.0.0/24; 127.0.0.1; };
Luís Machado 2013
Pag. 36
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
recursion yes;
//Zona fca.pt da rede interna
zone "fca.pt" {
type master;
file "internal/fca.pt.db";
};
//Zona mapeamento inverso da DMZ do interior
zone "212.136.193.in-addr.arpa." {
type master;
file "internal/193.136.212.rev";
};
//Zona mapeamento inverso dos servidores internos, do interior
zone "0.50.10.in-addr.arpa." {
type master;
file "internal/10.50.0.rev";
};
//Zona mapeamento inverso dos utilizadores, do interior
zone "0.60.10.in-addr.arpa." {
type master;
file "internal/10.60.0.rev";
};
//Autorização para o secundário transferir as zonas definidas na vista
allow-transfer { 193.136.212.125; };
};
// Vista external para pedidos feitos fora da rede interna (Internet)
view “external” {
match-clients { “any”; };
recursion no;
//Zona fca.pt da rede interna
zone "fca.pt" {
type master;
file "external/fca.pt.db";
};
//Zona mapeamento inverso da DMZ do interior
zone "212.136.193.in-addr.arpa." {
type master;
file "external/193.136.212.rev";
};
//Autorização para o secundário transferir as zonas definidas na vista
allow-transfer { 193.136.212.66; };
};
As directorias /var/named/internal e /var/named/external devem ser criadas para a se colocarem os
ficheiros que a seguir se descrevem. Como recurso ao ficheiro named.local criam-se os ficheiros das
zonas assinaladas anteriormente.
#Ficheiro /var/named/internal/fca.pt.bd
Luís Machado 2013
Pag. 37
IEFP – Centro Formação Profissional Braga
$TTL
86400
@
IN
SOA
Técn. Inst. Gestão de Redes Informáticas
dns.fca.pt.
root.fca.pt. (
2013060101
; Serial
28800
; Refresh
14400
; Retry
3600000
; Expire
86400 )
;Minimum
IN
NS
dns.fca.pt.
IN
NS
dns2.fca.pt.
; Informação textual do domínio
IN
TXT
“Domínio Rede FCA”
; Servidores de email do domínio
IN
MX
100
users.fca.pt
; Redes do domínio
net-DMZ
IN
A
193.136.212.64
net-servers
IN
A
10.50.0.0
net-users
IN
A
10.60.0.0
; servidores DMZ
dns
IN
A
193.136.212.65
dns2
IN
A
193.136.212.66
smtp
IN
A
193.136.212.67
smtp2
IN
A
193.136.212.68
www
IN
A
193.136.212.69
webmail
IN
CNAME
www
gw-vpn
IN
A
193.136.212.70
; servidores internos
helpdesk
IN
A
10.50.0.1
auths
IN
A
10.50.0.2
users
IN
A
10.50.0.3
backups
IN
A
10.50.0.4
; clientes dhcp dos utilizadores
dhcp01
Luís Machado 2013
IN
A
10.60.0.1
Pag. 38
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
...
dhcp10
IN
A
10.60.0.10
; router e ligações internas
gw
IN
A
193.136.203.247
gw-dmz
IN
A
193.136.212.126
gw-servidores
IN
A
10.50.0.254
gw-utilizadores
IN
A
10.60.0.254
O ficheiro 193.136.212.rev ficará configurado do seguinte modo:
#Ficheiro /var/named/internal/193.136.212.rev
$TTL
86400
@
IN
SOA
dns.fca.pt.
root.fca.pt. (
2013060101
; Serial
28800
; Refresh
14400
; Retry
3600000
; Expire
86400 )
;Minimum
IN
NS
dns.fca.pt.
IN
NS
dns2.fca.pt.
; Informação textual do domínio
IN
TXT
“Domínio Rede FCA”
; registos inversos para servidores DMZ
65
IN
PTR
dns.fca.pt
66
IN
PTR
dns2.fca.pt
67
IN
PTR
smtp.fca.pt
68
IN
PTR
smtp2.fca.pt
69
IN
PTR
www.fca.pt
70
IN
PTR
gw-vpn.fca.pt
126
IN
PTR
gw-dmz.fca.pt
A construção dos ficheiros /var/named/internal/10.60.0.rev e /var/named/internal/10.50.0.rev é
análoga ao anterior. Não esquecer de colocar o gateway dos respectivos routers.
Luís Machado 2013
Pag. 39
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
Relativamente ao external o fca.pt.db é mais pequeno porque diz respeito apenas aos pedidos
externos. Assim o ficheiro ficará:
#Ficheiro /var/named/external/fca.pt.bd
$TTL
86400
@
IN
SOA
dns.fca.pt.
root.fca.pt. (
2013060101
; Serial
28800
; Refresh
14400
; Retry
3600000
; Expire
86400 )
;Minimum
IN
NS
dns.fca.pt.
IN
NS
dns2.fca.pt.
; Informação textual do domínio
IN
TXT
“Domínio Rede FCA”
; Servidores de email do domínio
IN
MX
100
smtp.fca.pt
IN
MX
100
smtp2.fca.pt
; servidores DMZ
dns
IN
A
193.136.212.65
dns2
IN
A
193.136.212.66
smtp
IN
A
193.136.212.67
smtp2
IN
A
193.136.212.68
www
IN
A
193.136.212.69
webmail
IN
CNAME
www
gw-vpn
IN
A
193.136.212.70
; router e ligações a DMZ
gw
IN
A
193.136.203.247
gw-dmz
IN
A
193.136.212.126
O ficheiro external/193.136.212.rev ficará configurado do seguinte modo:
#Ficheiro /var/named/external/193.136.212.rev
$TTL
86400
Luís Machado 2013
Pag. 40
IEFP – Centro Formação Profissional Braga
@
IN
SOA
Técn. Inst. Gestão de Redes Informáticas
dns.fca.pt.
root.fca.pt. (
2013060101
; Serial
28800
; Refresh
14400
; Retry
3600000
; Expire
86400 )
;Minimum
IN
NS
dns.fca.pt.
IN
NS
dns2.fca.pt.
; Informação textual do domínio
IN
TXT
“Domínio Rede FCA”
; registos inversos para servidores DMZ
65
IN
PTR
dns.fca.pt
66
IN
PTR
dns2.fca.pt
67
IN
PTR
smtp.fca.pt
68
IN
PTR
smtp2.fca.pt
69
IN
PTR
www.fca.pt
70
IN
PTR
gw-vpn.fca.pt
126
IN
PTR
gw-dmz.fca.pt
Os ficheiros que se configuraram anteriormente têm de pertencer ao “user named” para poderem
funcionar correctamente no bind, por isso faz-se a mudança de “dono”:
#chown named:named /etc/named.conf
#chown -R named:named /var/named/internal
#chown -R named:named /var/named/external
Depois de se inicializar o serviço deve verificar-se as zonas foram carregadas como anteriormente
foi descrito.
O servidor secundário é configurado com o ficheiro /etc/named.conf com as alterações necessárias.
O ficheiro é copiado para o servidor secundário e alterado. Pode usar-se o comando scp (secure
copy) caso assim se considere.
#scp 193.136.212.65:/etc/named.conf /etc/named.conf
Luís Machado 2013
Pag. 41
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
O resultado das alterações é o seguinte:
#Ficheiro de /etc/named.conf do secundário
//deve associar-se aos IP
options{
listen-on port 53 { 193.136.212.66; 193.136.212.125; 127.0.0.1; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
query-source port 53;
query-source-v6 port 53;
// Qualquer máquina pode contactar o servidor
allow-query { any; };
// Por omissão não autoriza transferências completas de zonas
allow-transfer { none; };
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
// Vista trusted aplica-se a todos os IP internos com excepção do router e do servidor DNS
// secundário
view “trusted” {
// Os IP 193.136.212.66 e 193.136.212.126 são excluídos (sinal !)
match-clients { 10.60.0.0/24; !193.136.212.66; !193.136.212.126;
193.136.212.64/26; 10.50.0.0/24; 127.0.0.1; };
recursion yes;
//Zona fca.pt da rede interna
zone "fca.pt" {
type slave;
masters { 193.136.212.65; }
file "internal/fca.pt.db";
};
//Zona mapeamento inverso da DMZ do interior
zone "212.136.193.in-addr.arpa." {
type slave;
masters { 193.136.212.65; }
file "internal/193.136.212.rev";
};
//Zona mapeamento inverso dos servidores internos, do interior
zone "0.50.10.in-addr.arpa." {
type slave;
masters { 193.136.212.65; }
file "internal/10.50.0.rev";
Luís Machado 2013
Pag. 42
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
};
//Zona mapeamento inverso dos utilizadores, do interior
zone "0.60.10.in-addr.arpa." {
type slave;
masters { 193.136.212.65; }
file "internal/10.60.0.rev";
};
};
// Vista external para pedidos feitos fora da rede interna (Internet)
view “external” {
match-clients { “any”; };
recursion no;
//Zona fca.pt da rede interna
zone "fca.pt" {
type slave;
masters { 193.136.212.65; }
file "external/fca.pt.db";
};
//Zona mapeamento inverso da DMZ do interior
zone "212.136.193.in-addr.arpa." {
type slave;
masters { 193.136.212.65; }
file "external/193.136.212.rev";
};
};
Deve ter-se em atenção que a criação dos ficheiros /var/named/internal e external e a respectiva
mudança de “dono” para o “user named”.
Para testar o funcionamento dos dns podem usar-se os comando nslookup e dig:
#nslookup
>nabo.formacao.dom
#dig @192.168.0.111 formacao.dom AXFR
LOGS do sistema
O sistema operativo guarda as mensagens que os diversos serviços e programas emitem quando
estão a realizar as suas tarefas através do serviço de LOGS. Este serviço é um serviço standalone e
tem o nome de sysklogd. O sysklogd controla 2 serviços: o syslogd e o klogd. O primeiro serviço
controla os logs ao nível do sistema, locais e remotos e é o responsável de interpretar o ficheiro
Luís Machado 2013
Pag. 43
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
/etc/syslog.conf. O klog é o responsável dos logs produzidos pelo kernel. O klog é cliente do
syslogd e por isso, na prática, é configurado no mesmo ficheiro.
O CentOS 6 tem instalado como sistema de logs o rsyslog. Este serviço tem no rsyslogd o seu
daemon e os ficheiros de configuração semelhantes ao syslog. O seu funcionamento é idêntico e
melhorado no que diz respeito ao envio de logs para um servidor remoto. No entanto aborda-se aqui
o syslog por ser ainda utilizado por outras distribuições mais antigas e que ainda estão em
actividade. O principio de configuração é idêntico.
O syslog, como serviço integrado permite armazenar os ficheiros de logs localmente ou
remotamente num servidor de recolha de logs. Esta solução é importante quando se está na presença
de muitos servidores e muitos deles afastados espacialmente do administrador.
O funcionamento do syslog está normalizado pelo RFC 3164 do IETF (Internet Engineering Task
Force).
O processo de funcionamento do syslog é bastante simples em termos de princípio. As aplicações,
serviços ou o kernel têm uma implementação para enviar as mensagens para o syslog. Estas
mensagens estão configuradas de acordo com o seu tipo e a sua prioridade (facility, priority). O
klogd e o syslogd tratam as mensagens de acordo com o requisito e importância da mensagem e
enviam-na para um ficheiro local, para o email de um utilizador ou para um “servidor de logs”
(gestão centralizada de logs).
O envio de um log para um ficheiro “local” pode não ser um ficheiro de texto simples mas pode ser
um device file, ou seja, uma consola (tty*), uma impressora, ou qualquer outro dispositivo com
acesso a um device file.
A configuração do syslog.conf tem em atenção a sintaxe do tipo facility.priority → action. As
facilities especificam o tipo de log, as priorities a sua prioridade e a action o local onde guardar os
logs.
Código de facility
Subsistema da origem das mensagens de LOGS
auth
Segurança e autenticações
authpriv
Segurança e autenticações (privadas)
cron
Serviço escalonamento tarefas
daemon
Daemons do sistema
lpq
Aplicações do sistema de impressão
mail
Aplicações do sistema de emails
news
Sistema de network news (USENET)
syslog
Do próprio Syslog
Luís Machado 2013
Pag. 44
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
user
Aplicações do utilizador
uucp
Subsistema UUCP (usado para comunicação por modem não adsl)
ftp
Pelo ftp
Local0 a local7
Reservado para utilização futura
A tabela anterior mostra o tipo de serviços que pode ser configurado e a seguinte exemplifica o tipo
de prioridades.
Código de priority
Propósito de utilização
debug
Mensagem a nível de debug (para resolução de problemas)
info
Nível informativo, correspondentes a processamentos normais
notice
Mensagens de condições normais mas muito importantes
warning
Avisos de potenciais problemas
err
Avisos de erros
crit
Condições consideradas criticas
alert
Condições que requerem intervenção imediata
emerg
Condições em que o sistema é considerado inutilizável
A prioridade dos logs vai aumentando à medida que avançamos na tabela. Assim o debug é o menos
importante e o emerg é o mais importante.
Podem ainda considerar-se os caracteres * (para todas as facilities e priorities), none (para nenhuma
priority), = (considerar apenas uma priority mas nenhuma das superiores) e ! (ignora as priorities).
#Exemplo de /etc/syslog.conf
…
*.info; mail.none;news.none; authpriv.none;cron.none
/var/log/messges
#Acesso do authpriv
authpriv.*
/var/log/secure
#Acesso de email
mail.none
/var/log/maillog
#Cron
cron.*
/var/log/cron
#Emergência
*.emerg
*
#News e uucp
Luís Machado 2013
Pag. 45
IEFP – Centro Formação Profissional Braga
uucp, news.crit
Técn. Inst. Gestão de Redes Informáticas
/var/log/spooler
#Mensagens de boot
local7.*
/var/log/boot.log
#News
news.=crit
/var/log/news/news.crit
news.=err
/var/log/news/news.err
news.notice
/var/log/news/news.notice
De salientar que no caso da priority de emerg que o * pode ser substituído por usernames de
utilizadores do sistema separados por virgulas.
Quando se pretende ter um sistema centralizado de logs o ficheiro anterior tem de ter as entradas
para o destino do log, um IP ou um nome do servidor.
#Exemplo de /etc/syslog.conf com recurso a sistema remoto de logs
…
mail.*
/var/log/maillog
mail.*
@formacao
#Cron
cron.*
/var/log/cron
cron.*
@192.168.0.111
#Emergência
*.emerg
root, form
O servidor de logs tem de ser configurado para poder receber os logs remotos e para isso tem de se
alterar o ficheiro /etc/sysconfig/syslogd. Neste ficheiro vai-se alterar a variável:
SYSLOGD_OPTIONS=”-m 0 -r”
A opção -r permite receber remotamente os logs de outras máquinas. Por defeito está configurada
sem o -r.
O sistema de logs pode trazer alguns problemas com o tamanho dos ficheiros. Alguns dos ficheiros
Luís Machado 2013
Pag. 46
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
mais utilizados poderiam alcançar tamanhos desmesurados. Para evitar esse problema existe a
rotação de logs que não é mais do que a criação de backups dos ficheiros de logs. Com este sistema
pode-se fazer uma melhor gestão dos logs já que se pode fazer a rotação em termos de calendário
(diário, semanal, etc.) ou por tamanho do ficheiro. A aplicação responsávelpor esta implementação é
o logrotate.
A configuração do /etc/logrotate.conf pode ser a seguinte:
#Exemplo do /etc/logrotate.conf
#Periodo de rotação
weekly
#Período de duração dos backup em semanas
rotate 4
#Criar novos ficheiros depois da rotação dos antigos
create
#Comprimir os ficheiros de backup
#compress
#Ficheiros específicos de cada aplicação para os logs
include /etc/logrotate.d
#Aplicação sem responsável pelo seu log
/var/log/wtmp {
monthly
minsize 1M
create 0664 root utmp
rotate 1
}
De referir que a a directiva include /etc/logrotate.d permite que as aplicações quando instaladas
possam ter ficheiros específicos com a forma como fazem os seus logs.
No caso do rsyslog uma configuração possível (do computador cliente) de /etc/rsyslog.conf será:
#Exemplo /etc/rsyslog.conf do cliente
...
$WorkDirectory
/var/lib/rsyslog
$ActionQueueFileName
fwdRule1
$ActionQueueMaxDiskSpace
2g
$ActionQueueSaveOnShutdown
on
$ActionQueueType
LinkedList
$ActionResumeRetryCount
-1
*.* @@192.168.0.105:514
Luís Machado 2013
Pag. 47
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
No caso do server a configuração será a alteração ao /etc/rsyslog.conf:
#Exemplo /etc/rsyslog.conf do servidor
...
$ModLoad
imtcp
$InputTCPServerRun
514
:FROMHOST-IP, isequal, "192.168.0.101" /var/log/cliente.log
&~
Por último adicionar uma entrada ao IPTABLES para permitir a comunicação
-A INPUT -m state --state NEW -m tcp -p tcp --dport 514 -j ACCEPT
Não se pode esquecer que a cada alteração dos ficheiros se deve reiniciar o serviço.
NIS (Network Information Service)
O NIS é um serviço que proporciona a partilha de ficheiro de configuração de sistemas por vários
computadores. Um NIS permite a autenticação dos vários clientes de uma rede concentrando num
só servidor os ficheiros de configuração como o /etc/passwd, o /etc/shadow, etc.. Pode ainda servir
para partilhar outros ficheiros de configuração do sistema e de utilização comum a outras máquinas
como o /etc/services, por exemplo.
O NIS permite então que numa determinada rede os utilizadores utilizem qualquer computador para
se autenticarem e começarem a trabalhar. Este sistema tem a vantagem de possibilitar que, os
utilizadores que não estejam sempre no mesmo posto de trabalho, possam utilizar as plataformas de
rede e os seus ficheiros sem problemas. Neste caso o NIS utiliza-se em conjunto com o NSF
(Network File System).
O NIS é o percursor do LDAP ( Lightweight Directory Access Protocol) ou do Active Directory da
Microsoft no Windows Server.
O NIS é muito pouco utilizado presentemente devido à sua falta de segurança, uma vez que um
utilizador registado no domínio poderia ter acesso às bases de dados que o compõem sem ter
privilégios de administrador. O outro senão do NIS é o facto da comunicação do servidor com o
cliente, em cada login, não encriptar o username e a password.
Luís Machado 2013
Pag. 48
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
A sua utilização deve, por estes motivos de segurança, ser restringida a redes seguras que não
possam ser acedidas do exterior.
O NIS foi desenvolvido pela Sun Microsystems e foi referência durante muito tempo em sistemas
Unix. No início era conhecido por “yellow pages” mas o nome foi alterado devido ao mesmo nome
da publicação com o mesmo nome por parte da companhia dos telefones britânica.
O daemon que controla o servidor tem o nome de ypserv.
O NIS necessita outros daemons para funcionar perfeitamente. A tabela seguinte evidencia estes
quais os daemons necessários:
Nome do daemon
Fucionalidade
portmap
O daemon RPC sobreo qual o NIS funciona.
yppasswdd
Permite aos utilizadores alterarem a password a partir de clientes de NIS
ypserv
Servidor NIS
ypbind
Cliente NIS
ypxfrd
Utilizado para acelerar a transferência de grandes mapas de NIS
O ficheiro principal de configuração é /etc/yp.conf. Além deste ficheiro têm que se configurar os
seguintes ficheiros: /etc/sysconfig/network, /etc/nsswitch.conf, /var/yp/securenets e por vezes o
/etc/ypserv.conf.
Para configurar um NIS deve-se introduzir o domínio no ficheiro /etc/sysconfig/network:
# Introdução do domínio NIS em /etc/sysconfig/network
…
NETWORKING=yes
HOSTNAME=formacao
NISDOMAIN=nis_formacao
...
O servidor vai ser configurado para poder ele próprio se cliente do serviço através do ficheiro
/etc/yp.conf:
#Ficheiro /etc/yp.conf no servidor
domain nis_formacao server 127.0.0.1
#ou em alternativa
ypserver 127.0.0.1
Luís Machado 2013
Pag. 49
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
Para fazer a activação do NIS é necessário que os serviços portmap, ypserv, yppasswdd e ypbind
estejam a correr e estejam configurados no runlevel para serem activados no arranque do sistema
para que assim o NIS arranque automaticamente.
Assim e para relembrar:
#activação dos serviços
service portmap start (ypserv start, etc)
# no runlevel
chkconfig portmap on (ypserv on, etc)
No sentido de verificar se os serviços estão a funcionar correctamente pode fazer-se o seguinte
comando:
#rpcinfo -p localhost
program
vers
proto
port
100000
2
tcp
111
portmapper
100000
2
udp
111
portmapper
100009
1
udp
681
yppasswdd
100004
2
udp
698
ypserv
100004
1
udp
698
ypserv
100004
2
tcp
701
ypserv
100004
1
tcp
701
ypserv
Os daemons ypbind e ypxfrd só podem ser iniciados após a configuração do domínio. Far-se-há
depois das próximas instruções de configuração.
Para inicializar o domínio NIS é então necessário correr o comando e fornecer o respectivo nome
quando é inquirido ao administrador.
# Inicialização do domínio NIS
#/usr/lib/yp/ypinit -m
At this point, we have to construct a list of the hosts which will run NIS servers. nis_formacao is in
the list of NIS server hosts. Please continue to add the names for the other hosts, one per line. When
you are done with the list, type a <control D>.
Luís Machado 2013
Pag. 50
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
next host to add: nis_formacao
next host to add:
The current list of NIS servers looks like this:
nis_formacao
Is this correct? [y/n: y] y
We need a few minutes to build the databases...
Building /var/yp/formacao/ypservers...
Running /var/yp/Makefile...
gmake[1]: Entering directory `/var/yp/formacao'
Updating passwd.byname...
Updating passwd.byuid...
Updating group.byname...
Updating group.bygid...
Updating hosts.byname...
Updating hosts.byaddr...
Updating rpc.byname...
Updating rpc.bynumber...
Updating services.byname...
Updating services.byservicename...
Updating netid.byname...
Updating protocols.bynumber...
Updating protocols.byname...
Updating mail.aliases...
gmake[1]: Leaving directory `/var/yp/formacao'
nis_formacao has been set up as a NIS master server.
Now you can run ypinit -s nis_formacao on all slave server.
Neste momento já se podem activar os serviços ypbind e ypxfrd da forma que se conhece. Não
esquecer de os activar para o runlevel de funcionamento da máquina.
O servidor já está inicializado e agora resta adicionar utilizadores as sistema e à base de dados do
NIS.
O processo de adição dos utilizadores é o mesmo de sempre. Para que a base de dados do NIS fique
actualizada deve fazer-se sempre, que se adiciona um utilizador, um make no directório /var/yp/.
#useradd -g users nisuser
#passwd nisuser
Changing password for user nisuser.
New password:
Retype new password:
Luís Machado 2013
Pag. 51
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
passwd: all authentication tokens updated successfully.
# cd /var/yp
[root@formacao yp]# make
gmake[1]: Entering directory `/var/yp/nis_formacao'
Updating passwd.byname...
Updating passwd.byuid...
Updating netid.byname...
gmake[1]: Leaving directory `/var/yp/nis_formacao'
Para verificar se o utilizador está devidamente criado pode utilizar-se o seguinte comando:
[root@formacao yp]# ypmatch nisuser passwd
nisuser:$1$d6E2i79Q$wp3Eo0Qw9nFD/::504:100::/home/nisuser:/bin/bash
Ou então o getent:
[root@formacao yp]# getent passwd nisuser
nisuser:x:504:100::/home/nisuser:/bin/bash
No primeiro caso, com o ypmatch, pode-se verificar a password completa (hexadecimal). Já no
segundo não fornece essa informação.
Configuração do Cliente
A configuração dos clientes vai ser feita seguidamente tendo em consideração que deve conter o
nome do domínio NIS no ficheiro /etc/sysconfig/network como foi referido anteriormente.
Para a configuração dos clientes pode utilizar-se o comando authconfig-tui e fornecer a password de
root assim como o nome do domínio e o ip ou nome do servidor NIS. Os ficheiros de configuração
serão criados no cliente.
[root@cliente1 ]#authconfig-tui
No cliente é necessário colocar no /yp.conf a informação do domínio NIS.
# /etc/yp.conf - configuração do ypbind
domain nis_formacao server 192.168.0.100
Luís Machado 2013
Pag. 52
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
O ficheiro /etc/nsswitch.conf é actualizado pelo authconfig-tui e deve conter as seguintes entradas:
#/etc/nsswitch.conf
passwd:
files nis
shadow:
files nis
group:
files nis
O cliente deve ser então iniciado pelos serviços já conhecidos (ypbind e portmap) e colocados
runlevel desejado.
Para se verificar se o NIS está a funcionar pode fazer-se o ypmatch, getent ou ypcat como já foi
referido anteriormente.
[root@cliente1 tmp]# ypcat passwd
nisuser:$1$Cs2GMe6r$1hohkyG7ALrDLjH1:505:100::/home/nisuser:/bin/bash
quotauser:!!:503:100::/home/quotauser:/bin/bash
ftpinstall:$1$8WjAVtes$SnRh9S1w07sYkFNJwpRKa.:502:100::/:/bin/bash
www:$1$DDCi/OPI$hwiTQ.L0XqYJUk09Bw.pJ/:504:100::/home/www:/bin/bash
smallfry:$1$qHni9dnR$iKDs7gfyt..BS9Lry3DAq.:501:100::/:/bin/bash
Configuração de SLAVES
Os Slaves ou secundários são normalmente utilizados para fazer a comunicação entre várias subnets. Podem ser utilizados na mesma subnet como servidores redundantes no caso do Master ter
algum problema e não possa ser acedido.
A sua configuração no que diz respeito ao yp.conf é igual ao que já foi feito anteriormente para o
Master.
Pode haver necessidade de colocar no ficheiro /etc/hosts do Master e dos Slaves as entradas
respectivas.
#etc/hosts (nis_formacao)
192.168.1.254
nis_slave
#/etc/hosts (nis_slave)
192.168.1.100
Luís Machado 2013
nis_formacao
Pag. 53
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
Não se pode esquecer de actualizar o ficheiro /etc/sysconfig/network com o domínio NIS.
Os serviços já referidos anteriormente (portmap, ypbind e o ypxfrd) devem ser configurados para
arrancar no runlevel desejado.
O ypxfrd deve também ser activado no master para permitir a sincronização optimizada das bases
de dados do Master.
Após estes passos faz-se um pedido ao Master para verificar as bases de dados disponíveis:
[root@nis_slave tmp]# ypwhich -m
mail.aliases nis_formacao
group.bygid nis_formacao
passwd.byuid nis_formacao
rpc.bynumber nis_formacao
...
...
[root@nis_slave tmp]#
(-m de Master)
Seguidamente faz-se um primeiro download das bases de dados do Master:
root@nisslave tmp]# /usr/lib/yp/ypinit -s nis_formacao
We will need a few minutes to copy the data from nis_formacao.
Transferring services.byservicename...
Trying ypxfrd ... success
(-s de Slave)
Transferring group.byname...
Trying ypxfrd ... success
...
...
Após este passo estar concluído iniciar o ypsev no Slave utilizando os comandos habituais.
No Master é necessário alterar o ficheiro /var/yp/ypservers adicionando o Slave:
#Ficheiro no Master /var/yp/ypservers
nis_formacao
nis_slave
O Master deve estar preparado para sincronizar com o Slave e assim faz-se uma cópia de segurança
do ficheiro /var/yp/Makefile e no mesmo alterara-se:
#Ficheiro no Master /var/yp/Makefile
#Allow the master to do database pushes to the slave
NOPUSH=false
Luís Machado 2013
Pag. 54
IEFP – Centro Formação Profissional Braga
Técn. Inst. Gestão de Redes Informáticas
Na mesma directoria valta a fazer-se o make para actualizar a base de dados:
[root@formacao yp]# make
gmake[1]: Entering directory `/var/yp/nis_formacao'
Updating ypservers...
YPPUSH: gethostbyname(): Success
YPPUSH: using not FQDN name
gmake[1]: Leaving directory `/var/yp/nis_formacao'
gmake[1]: Entering directory `/var/yp/nis_formacao'
Updating netid.byname...
YPPUSH: gethostbyname(): Success
YPPUSH: using not FQDN name
gmake[1]: Leaving directory `/var/yp/nis_formacao'
Resta configurar o Slave para fazer a sincronização com o Master das bases de dados utilizando o
crond:
# Ficheiro em Slave /etc/cron.d/nis_sync
20 * * * *
/usr/lib/yp/ypxfr_1perhour
40 6 * * *
/usr/lib/yp/ypxfr_1perday
55 6,18 * * * /usr/lib/yp/ypxfr_2perday
Após esta última configuração o sistema poderá ser utilizado.
Luís Machado 2013
Pag. 55
Download