-
Notifications
You must be signed in to change notification settings - Fork 1
Linux Server Best Practices
Cyber edited this page Jul 27, 2015
·
12 revisions
- assim que criar um servidor, crie uma conta de usuário não-root (CentOS6 o comando é useradd [options] LOGIN)
- nunca acesse como root
- não tenha uma senha de root de fácil memorização
- utilize o sudo somente quando estritamente necessário
- Edite o arquivo trocando:
/etc/sysconfig/clock
ZONE="UTC" - por:
ZONE="Brazil/East"
Swap
Se o servidor não possuir swap, essa é uma receita de bolo para criar um arquivo de swap de 1Gb na pasta raíz:
sudo fallocate -l 2G /swapfile1
sudo mkswap /swapfile1
sudo chown root:root /swapfile1
sudo chmod 0600 /swapfile1
sudo swapon /swapfile1
echo "/swapfile1 none swap sw 0 0" | sudo tee -a /etc/fstab
sudo fallocate -l 2G /swapfile1
sudo mkswap /swapfile1
sudo chown root:root /swapfile1
sudo chmod 0600 /swapfile1
sudo swapon /swapfile1
echo "/swapfile1 none swap sw 0 0" | sudo tee -a /etc/fstab- Este guia pode ajudar
- crie um par de chaves para seu computador:
ssh-keygen
- copie sua chave pública:
scp ~/.ssh/id_rsa.pub alias:/tmpssh alias "mkdir .ssh; cat /tmp/id_rsa.pub >> .ssh/authorized_keys"
- ajuste as permissões:
chmod 600 ~/.ssh/authorized_keyschmod 711 ~/.ssh
- para a conexão SSH parar de ‘travar’:
- edite o arquivo /etc/ssh/sshd_config
- descomente estas linhas, altere o valor de ClientAliveInterval e reinicie o serviço:
TCPKeepAlive yesClientAliveInterval 30service sshd restart
- descomente estas linhas, altere o valor de ClientAliveInterval e reinicie o serviço:
- edite o arquivo /etc/ssh/sshd_config
- para criar aliases para suas máquinas:
- adicione uma entrada para cada máquina no arquivo ~/.ssh/config no seguinte formato:
Host <<nome_curto_para_seu_servidor 1>> HostName <<ip_do_seu_servidor 1>> User <<login_do_seu_servidor 1>> Host <<nome_curto_para_seu_servidor 2>> HostName <<ip_do_seu_servidor 2>> User <<login_do_seu_servidor 2>> - para acessar seu servidor utilize o alias criado acima:
- acessando o terminal remoto:
ssh alias - copiando um arquivo local para o remoto:
scp /tmp/arquivo.txt alias:/var/www - copiando um arquivo remoto para o local:
scp alias:/home/user/.bashrc /tmp - bônus: no Mac, alguns programas entendem estes aliases, não sendo necessário digitar login/senha! (ex.: Coda, Transmit, …)
- bônus 2: caso esteja usando cloudflare, não utilize o nome do seu domínio diretamente, utilize “direct.seudominio.com.br”
- acessando o terminal remoto:
- adicione uma entrada para cada máquina no arquivo ~/.ssh/config no seguinte formato:
- virtual domains (sub-domínios e domínios diferentes)
- rails (mod-passenger)
- fazendo deploy com git
- não deixe seu apache escutando na porta 80, essa é uma tarefa para o varnish!
- instale no CentOS:
sudo yum install screen -
CTRL = ^
-
mostra o help
^A ? -
troca o nome da sessão
^A A -
cria uma nova sessão
^A c -
lista todas as sessões
^A " -
vai pra sessão seguinte
^A espaço -
sai do screen, mantendo as sessões ativas. Troque de computador e dê: screen -r e voilá, sua sessão está é restaurada!
^A d -
scroll pelo histórico da janela. Enter marca o início, Enter marca o fim e copia.
^A [ -
cola o que foi copiado acima
^A ]
-
- utilize o pacote ‘php-eaccelerator’ do repositório REMI:
php-eaccelerator-0.9.6.1-10.el6.remi.×86_64 - para entender como funciona o eaccelerator, leia este link
- tire proveito dos seus 12 meses de uso ‘gratuito’ e espalhe-se para entender o comportamento do seu serviço: “o BD tá sobrecarregado? o web server tá usando muita memória?”. Utilize um serviço por servidor, depois migre os serviços para máquinas compartilhadas antes de começar a doer no bolso ;)
- depois que entender e otimizar, aí você junta os serviços de forma coerente
- recomendo instalar a versão 6 do CentOS
- siga as recomendações gerais acima!
- instale o pacote de ‘extras’ (Link para o KB da Rackspace):
sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm - instale o repositório ‘remi’, para versões mais novas de php, varnish, etc:
sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm - habilite o repositório ‘remi’, editando o arquivo ‘/etc/yum.repos.d/remi.repo’ e trocando “enabled=0” por “enabled=1” na sessão [remi]
- atualize seu servidor:
sudo yum -y update
- instale o pacote de ‘extras’ (Link para o KB da Rackspace):
- abra portas (por ex, 80) no firewall. Adicione esta linha no arquivo /etc/sysconfig/iptables abaixo da linha que abre a porta 22 (ssh) a ordem é importante!, e em seguida reinicie o serviço iptables. Para quem usa SSL, é necessário abrir a porta 443 também.
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPTservice iptables restart
- sempre utilize o IP interno entre as máquinas, por exemplo para acessar seu BD ou um message queue. Lembre-se: o tráfego entre IP’s internos é gratuito.