CTIC:Servidores: mudanças entre as edições
Linha 314: | Linha 314: | ||
address 172.18.1.1 | address 172.18.1.1 | ||
netmask 255.255.255.0 | netmask 255.255.255.0 | ||
vlan-raw-device | vlan-raw-device bond3 | ||
auto vlan110 | auto vlan110 | ||
Linha 321: | Linha 321: | ||
netmask 255.255.255.0 | netmask 255.255.255.0 | ||
gateway 172.18.110.254 | gateway 172.18.110.254 | ||
vlan-raw-device | vlan-raw-device bond3 | ||
auto vlan120 | auto vlan120 | ||
Linha 327: | Linha 327: | ||
address 172.18.120.1 | address 172.18.120.1 | ||
netmask 255.255.255.0 | netmask 255.255.255.0 | ||
vlan-raw-device | vlan-raw-device bond3 | ||
auto vlan200 | auto vlan200 | ||
Linha 333: | Linha 333: | ||
address 172.18.200.1 | address 172.18.200.1 | ||
netmask 255.255.255.0 | netmask 255.255.255.0 | ||
vlan-raw-device | vlan-raw-device bond3 | ||
e finalizando: | e finalizando: | ||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> |
Edição das 18h55min de 20 de março de 2012
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:
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
- Sistema adotado: Debian stable para instalação em rede, preferencialmente a versão 64 bits.
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:

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
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 # LACP Group ID = 3 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 gateway 172.18.110.254 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)."
Referências