CTIC:Servidores

De MediaWiki do Campus São José
Revisão de 20h16min de 29 de novembro de 2011 por Etorresini (discussão | contribs) (→‎Sistema)
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

  1. Partição primária para a raiz (/), com 15GB.
    1. Área de troca (swap) como arquivo regular (/swap com permissões 0400), com tamanho de 2GB (ou RAM + swap = 4GB).
  2. 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/ debian/stable 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

Bash

  • ~/.bash_logout
clear
  • ~/.bashrc
export PS1='\h:\w\$ '
umask 077
alias ls='ls --color=auto'
alias l='ls $LS_OPTIONS -l'
alias ll='ls $LS_OPTIONS -la'
alias rm='rm -ri'
alias cp='cp -ri'
alias mv='mv -i'
alias grep='grep --color=auto'
export PATH="/root/scripts:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
. /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

VIm

  • ~/.vimrc
set ic
set noai
set ts=3
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.

  • Instalação da aplicação e criação do repositório no diretório /etc:
aptitude install git
cd /etc
git init
  • Configuração para o usuário root no arquivo /root/.gitconfig:
[user]
    name = Administrador do Sistema
    email = coinf.sj@ifsc.edu.br

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
vi passwd
vi shadow
git add passwd
git ass 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
cd /etc
git commit -a -m "Instalação dos pacotes snmpd e ssh com configuração padrão."

SNMPd

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):
#!/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, em /etc/snmp/snmpd.conf
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".

SSHd

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:

# 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
#
# Subsistema
Subsystem sftp /usr/lib/openssh/sftp-server
#
# Autorização
UsePAM yes

Por 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 AAAAB3NzaC1yc2EAAAABIwAAAgEArgRS9p4JBq6CGuugYkf8PW7lejJpcJzDdjntND8wKhGUibkZRXcrx
I40ClDEp7xLPzIzx6YSyV77AA16ers6AZs83FVSQY/sVOqTXReyjHKJ1UhB3NQWsMI6XO+mcHFef50WLJ4rHd6b3A
8swwF4XK4UtF8K6cDtJnJ1w4DmGwf3uAec0dUWF7UF4nP9VkTbH4bWETHPO7VXy5AcXx3rkzFF6+krtvrUHvC6Qlz
cUT0ofqb3mLBbWstaznE/lqXRFqHVwkkSLTy476qYM5286+UOTfTcwjsVCiohpoihPGWp4UE8ROKSmP8wLdYGHEJr
B9k5FJGkZ5RjLhQ9ZIW9DncgqFjOpvICe+26Zc7qaKTDp9vTCVkrZ94RV1e8gWlwbWcdNavuvpKcIxaNVmsxZ3RUi
I5yewdGR3PCEbRkBiKq49E9cmitgbYWnn1jTQz9XXFSXL2MxRA4df6khmPZtKukvdjljt4jfbR40CZ5Q6VtJLO4yN
7oYUWE+z3+YJtalT2VYO+L12phVAwjLlwn7JXijzXckBt6mCtTmQFCLBekY3EGdYpKnGLCfwvenpebxUOrhZFX8RJ
iHH8RQqUVv9LYtCdt88RdzAG15FlHufYQQHC+t2nZDrtW+XHpLBPgLFmbfDf03OIfIg/hxPwCDSPKqWgnpWJukdmu
Vze8= root@monitoramento

Nota: o arquivo acima está dividido por questões de legibilidade, porém contém apenas uma única linha.

  • Por fim, reinício dos serviços e registro das modificações:
service snmpd restart
service ssh restart
cd /etc
git commit -a -m "Configurados os serviços SNMPd e SSH de acordo com a política do campus."

Descrição Específica por Máquina

Monitoramento

  • 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, resultando em 250GB de espaço disponível em disco.

BIOS

  • Configuração na BIOS para iniciar o sistema via CD-ROM ou RAID 1.
  • 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[1] (LAG) combinada a interfaces virtuais para acesso às VLANs via porta do switch em modo trunking:

Instalação dos pacotes necessários:

aptitude install ifenslave vlan

E o arquivo /etc/network/interfaces fica assim:

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 bond0
iface bond0 inet manual
    bond-slaves eth0 eth1 eth2
    bond-mode 0
    bond-miimon 100

auto bond0.1
iface bond0.1 inet static
    address 10.0.1.1
    netmask 255.255.255.0

auto bond0.110
iface bond0.110 inet static
    address 10.0.110.1
    netmask 255.255.255.0
    gateway 10.0.110.254

Referências



Voltar para Rede