CTIC:Servidores

De MediaWiki do Campus São José
Revisão de 13h01min de 26 de março de 2012 por Humbertos (discussão | contribs) (→‎Serviços)
Ir para navegação Ir para pesquisar

Padrões e Normas

Início (boot)

  • Seja por hardware particular ou ambiente virtualizado, todo servidor deve iniciar após falha de energia. No ambiente virtualizado, deve-se estabelecer uma sequência de início (boot) dos servidores baseada na precedência dos serviços em rede:
<graphviz>

digraph Boot {

 "Sistemas de arquivos" [shape=Mrecord]
 "Diretórios e autenticação" [shape=Mrecord]
 "Compartilhamento e publicação de arquivos" [shape=Mrecord]
 "Comunicação por texto, voz e vídeo" [shape=Mrecord]
 "Sistemas de arquivos" ->
 "Diretórios e autenticação" ->
 "Compartilhamento e publicação de arquivos" ->
 "Comunicação por texto, voz e vídeo"

}

</graphviz>

Backup

A política adotada é de backup do sistema operacional com periodicidade mensal e arquivos pessoas com periodicidade diária, com prazo máximo de recuperação de 28 dias. Haverá cópias em mídia local e remota.

Pré-Instalação

  • Configuração de hardware: ajustes de periféricos.
  • Atualização de firmware para todo o hardware, quando disponível.

Instalação

Particionamento

  • Partição primária para a raiz (/), com 15GB.
    • Área de troca (swap) como arquivo regular (/swap com permissões 0400), com tamanho de 2GB (ou RAM + swap = 4GB).
touch /swap
chown root:root /swap
chmod 400 /swap
dd if=/dev/zero of=/swap count=1 bs=2048M
mkswap /swap
echo "/swap none swap sw 0 0" >> /etc/fstab
swapon /swap
  • Partição primária para LVM, com adequação para cada necessidade/cenário.

Pós-Instalação

Como os discos de instalação do sistema podem estar desatualizados em relação aos pacotes que o compõem, o primeiro passo após a instalação é atualizar o sistema.

  • Configuração do arquivo /etc/apt/sources.list:
deb http://debian.pop-sc.rnp.br/debian stable main contrib non-free
deb http://security.debian.org/ stable/updates main contrib non-free
  • Atualização do sistema:
aptitude update
aptitude safe-upgrade
aptitude full-upgrade

Ambiente do usuário Root

Aplicativos

  • Programas para CLI:
aptitude install less vim bash-completion git keychain

Bash

  • /root/.bash_logout
clear
  • /root/.bashrc
export PS1='\h:\w\$ '
umask 077
alias ls='ls --color=auto'
alias l='ls -l'
alias ll='l -a'
alias rm='rm -ri'
alias cp='cp -ri'
alias mv='mv -i'
alias grep='grep --color=auto'
export PATH='/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin'
. /etc/bash_completion
if [ -x /usr/bin/keychain ]
then
    keychain id_rsa
    [ -z "$HOSTNAME" ] && HOSTNAME=‘uname -n‘
    [ -f $HOME/.keychain/$HOSTNAME-sh ] && . $HOME/.keychain/$HOSTNAME-sh
    [ -f $HOME/.keychain/$HOSTNAME-sh-gpg ] && . $HOME/.keychain/$HOSTNAME-sh-gpg
fi

Git

  • Configuração para o usuário root no arquivo /root/.gitconfig:
[user]
    name = Administrador do Sistema
    email = coinf.sj@ifsc.edu.br

VIm

  • /root/.vimrc
set ic
set noai
set ts=4
set magic
syntax on
set hlsearch

Sistema

Uma vez que o sistema já está atualizado e o usuário root tem um ambiente de trabalho mais rico em funcionalidades, pode-se partir para a configuração do sistema de fato. Antes disso, é importante marcar um ponto de partida dos arquivos: uma primeira versão. Foi adotada a ferramenta Git para controle de versão e como política somente os arquivos modificados por um administrador humano serão controlados (sob demanda).

  • Criação do repositório no diretório /etc para controle da configuração do sistema:
cd /etc
git init
chmod 700 .git

Após isso, pode-se iniciar o "versionamento" do diretório de configuração do sistema, o diretório /etc/. Porém, antes, é boa prática manter o relógio do sistema alinhado com a hora legal:

aptitude install ntp

Em seguida, faz-se um registro do original para, depois, atribuir como servidor (server) o do NIC.br: pool.ntp.br.

cd /etc
git add ntp.conf
git commit -a -m "Configuração original do serviço NTP."
vi /etc/ntp.conf
service ntp restart
git commit -a -m "NTP configurado para sincronizar com relógio do NIC.br: pool.ntp.br."

Com a primeira versão catalogada, pode-se iniciar a configuração do sistema. Por questão de proteção, o usuário root deve ser o único usuário local com senha e interpretador de comandos (shell) válidos. Demais com interpretador /bin/false (sistema) ou /usr/sbin/nologin (regulares, como LDAP). Depois de modificado o arquivo, é essencial registrar a modificação:

cd /etc
git add passwd
git add shadow
git commit -a -m "Configuração original da lista de usuários e senhas."
vi passwd
vi shadow
git commit -a -m "Somente usuário root com shell válido."

Serviços

Após o sistema, parte-se para a instalação, via pacotes, dos serviços:

aptitude install snmp snmpd ssh

SNMP

No caso do SNMP, será utilizada a versão 2c sem autenticação - considerando que esse serviço poderá ser aproveitado em disciplinas de Telecomunicações, como por exemplo Gerência de Redes.

  • Serão monitoradas as conexões TCP dos serviços usando script próprio (/usr/local/sbin/conexoes_tcp).
touch /usr/local/sbin/conexoes_tcp
chmod 755 /usr/local/sbin/conexoes_tcp
vi /usr/local/sbin/conexoes_tcp

Com o conteúdo:

#!/bin/sh
if [ "${1}" -gt 0 -a "${1}" -lt 65536 ]
then
	/bin/netstat -ant|grep ":${1} "| grep STAB | wc -l
else
	echo "Use: ${0} (porta)"
	exit 255
fi
exit 0
  • Esse script comporá a configuração do serviço. Antes, o registro do original, modificação para a política do campus e reinício do serviço:
cd /etc/
git add snmp/snmpd.conf
git commit -a -m "Configuração original do serviço SNMP."
vi snmp/snmpd.conf

com o conteúdo:

rocommunity ifsc
sysLocation <sala>
sysContact coinf.sj@ifsc.edu.br
sysServices 72
exec conn_ssh /usr/local/sbin/conexoes_tcp 22
exec conn_http /usr/local/sbin/conexoes_tcp 80

onde <sala> identifica a localização física do equipamento, como por exemplo "RNP" ou "Laboratorio de Desenvolvimento".

Finalizando o processo:

service snmpd restart
git commit -a -m "SNMP somente leitura: versão 2, comunidade ifsc."

SSH

Em relação ao servidor SSH (/etc/ssh/sshd_config), será permitida apenas a conexão utilizando par de chaves pública/privada. Além disso, estará desativado o subsistema SFTP.

cd /etc
git add ssh/sshd_config
git commit -a -m "Configuração original do serviço SSH."
vi ssh/sshd_config

com o seguinte conteúdo:

# Rede
Port 22
Protocol 2
#
# Certificados do servidor
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
#
# Segurança interprocesso
UsePrivilegeSeparation yes
StrictModes yes
#
# Sessão
KeyRegenerationInterval 3600
ServerKeyBits 768
AcceptEnv LANG LC_*
PrintLastLog yes
#
# Manutenção da sessão
TCPKeepAlive yes
ClientAliveInterval 30
ClientAliveCountMax 4
#
# Log
SyslogFacility AUTH
LogLevel INFO
#
# Autenticação
LoginGraceTime 120
PermitRootLogin yes
Allowusers root
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile   %h/.ssh/authorized_keys
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
PasswordAuthentication no
#
# Autorização
UsePAM yes

Por fim, o registro do novo arquivo e reinício do serviço:

service ssh restart
git commit -a -m "Serviço SSH apenas com autenticação via certificado."

Para isso, deve-se ter o arquivo da chave pública para o acesso remoto - arquivo /root/.ssh/authorized_keys com permissões mínimas (0400):

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDxhJ4O/n9OEr9bRdIEqp1z2ocGFZrnG6nKBMF4MvMC14rM1R+Ge988dfhe8zylx2+37SYk4+tFia2YJLL5jq5N0nOnoorZq7Tfh+bcwe9x0V0rbGM/nzlVqgBusFzdNWZUQx7y3/dFGmM+Faiwum1c89NzeLjhZFJeXUadJnXSmodiRpjlyKD6StvJ96KefKJIqHf6S/+gch50AFph5MlOakTbylo/4aMRnSvM8kXCugret24Ny/3ELfSP51xmAJSqYYArCfPJmrtFlziv2CRTzPlwF4uK7g6iEkuPmPG4BAmAt/k4bz657oyMrS12pbQlG7HrukrwtLkgmFmIlYYQCwyunNnwjTottqXnYHQB7yaVU6L4sRi658lAqZTbn8/g0PtTsl1ROhEAaTd1ZzhLdycCJme0bHDrXEVFHCEISRIc2WyIf+qGcgM/t+JupyA5OlB3N4kJ2C731wzczhrpdwp83RlO92vofAuHkYskVlBVyUW1EmvcqmlmeWGg0mj5+9I3ST/Ikn0TMilVlLhaK+NEyOL5bxxZn5GAJi3XAbui5yZh6sX6V2l8Bt0sss2Qe1N6IuiASXCq0IZGqhW7eZopFuBfQoYS+RoOYbjB2C7xm0WDl/o72NB4BUMz/OGtlFb8S8DdQAdtO+eqKNb/oUC0aD26m+eHzz1tbfsdsw== root@asimov

Descrição Específica por Máquina

Asimov

  • Fabricante: IBM
  • Modelo: x3200 M2, 4368

Hardware

  • Inserida a interface dual-port Intel Pro-1000T PCI-Express.

Firmware

  • Atualizado o firmware de acordo com o pacote UpdateXpress System Pack obtido no site do fabricante.

Disco

  • Configuração de RAID 1 (IM Volume) usando 2 discos SATA hot-swap de 250GB:
Monitoramento-RAID.jpg

Resultando em 250GB de espaço disponível em disco:

Monitoramento-RAID-final.jpg

BIOS

  • Configuração na BIOS para iniciar o sistema via CD-ROM ou RAID 1:
Monitoramento-BIOS-boot.jpg
  • Configuração para sempre (re)iniciar o sistema após recuperação de energia:
Monitoramento-BIOS-power.jpg

Rede

  • Todas as interfaces de rede em uma única agregação de enlace[1] (LAG) combinada a interfaces virtuais para acesso às VLANs via porta do switch em modo trunking com LACP[2].

Instalação dos pacotes necessários:

aptitude install ifenslave vlan
cd /etc
git add network/interfaces
git commit -a -m "Configuração original das interfaces de rede."
vi network/interfaces

E configuração de VLAN sobre interface trunking:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual

auto eth1
iface eth1 inet manual

auto eth2
iface eth2 inet manual

auto bond3
iface bond3 inet manual
    bond-slaves eth0 eth1 eth2
    bond_mode 4
    bond_miimon 100
    bond_lacp_rate 1

auto vlan1
iface vlan1 inet static
    address 172.18.1.1
    netmask 255.255.255.0
    vlan-raw-device bond3

auto vlan110
iface vlan110 inet static
    address 172.18.110.1
    netmask 255.255.255.0
    vlan-raw-device bond3

auto vlan120
iface vlan120 inet static
    address 172.18.120.1
    netmask 255.255.255.0
    vlan-raw-device bond3

auto vlan200
iface vlan200 inet static
    address 172.18.200.1
    netmask 255.255.255.0
    vlan-raw-device bond3

e finalizando:

service networking restart
git commit -a -m "Interfaces Ethernet em LAG 1 e VLANs: 001 (default), 110 (lan_admin), 120 (lan_educ) e 200 (lan_midia)."

Serviços

Clarke

  • Fabricante: HP
  • Modelo: Proliant DL360 G6

Firmware

  • Atualizado o firmware de acordo com o pacote Smart Update Firmware DVD obtido no site do fabricante.

BIOS

  • Desativado o início (boot) pelas interfaces de rede:
  • Configuração para sempre (re)iniciar o sistema após recuperação de energia:

Rede

  • Todas as interfaces de rede em uma única agregação de enlace (LAG) combinada a interfaces virtuais para acesso às VLANs via porta do switch em modo trunking com LACP.

Referências



Voltar para Rede