Servidor remoto feito por suas próprias mãos

Servidor remoto feito por suas próprias mãos
N. Levitsky
Gêneros: Programação, Administração de Sistemas
Ano de publicação: 2021
Ano de leitura: 2025
Minha avaliação: Máxima
Número de leituras: 1
Total de páginas: 402
Resumo (páginas): 41
Idioma original da publicação: Russo
Traduções para outros idiomas: Nenhuma tradução para outros idiomas encontrada

Instalação e configuração do Linux no servidor

O livro começa suavemente com a instalação do sistema operacional e vai se tornando gradualmente mais complexo de capítulo em capítulo. O primeiro capítulo é dedicado à instalação do Linux. Este é um tema tão recorrente e uma operação que já realizei muitas vezes que não adicionei nada deste capítulo ao meu resumo. A instalação é abordada com exemplos do Astra e do Ubuntu.

Depois, há alguns capítulos dedicados à familiarização com o Linux através do processo de login no sistema. Há um foco menor nas interfaces gráficas, no tema escuro e em outros aspectos visuais. Aliás, há bastante atenção à personalização da aparência do sistema operacional para se assemelhar ao estilo do macOS: instalação de protetores de tela, alteração da aparência dos botões, ícones, cursores, menus e outros elementos. Também são mencionadas as diferenças entre os modos de hibernação e suspensão, desligamento e reinicialização via terminal, além do agendamento de desligamento. O autor demonstra como instalar codecs de áudio e vídeo, gerenciar pacotes e atualizar o sistema.

O Capítulo 4 é dedicado ao terminal e a comandos básicos, como: visualização do conteúdo de arquivos, redirecionamento de saída, criação, cópia e movimentação de arquivos e diretórios, pesquisa de arquivos, comparação, substituição e formatação. Há muitos comandos, alguns dos quais eu não conhecia e não memorizei. Na maioria das vezes, eles são apenas listados sem explicações detalhadas, então é melhor procurar outras fontes para mais detalhes. O autor mencionou interfaces gráficas no capítulo anterior, mas não falou sobre os diferentes tipos de shells de linha de comando. Como em qualquer livro sobre Linux, este capítulo aborda a diferença entre usuários comuns e o superusuário, além dos símbolos de hash (#) e dólar ($). Uma pequena parte do capítulo também é dedicada a editores gráficos — tanto os integrados quanto os que precisam ser instalados separadamente.

O Capítulo 5 aborda a configuração de interfaces de rede. Aqui, o foco está principalmente na configuração física: adaptadores, switches, cabos de par trançado, conectores RJ-45. O autor também menciona a ferramenta de crimpagem de cabos de par trançado e inclui um esquema de crimpagem. Na parte teórica, há algumas palavras sobre o comando ifconfig e o servidor DHCP, que será discutido mais adiante.

Configuração básica do servidor

O Capítulo 6 trata do roteamento e da configuração do firewall. Admito que as tabelas de roteamento, os comandos para configurá-las e o gerenciamento de pacotes não ficaram muito claros para mim. Talvez porque eu não seja administrador de sistemas e, no desenvolvimento backend ou frontend, raramente lido com isso diretamente. O firewall é abordado com exemplos do iptables e do ufw.

O Capítulo 7 é dedicado ao protocolo SSH. O autor menciona os algoritmos suportados pelo OpenSSH (usado no Linux): Blowfish, 3DES (Data Encryption Standard), IDEA (International Data Encryption Algorithm) e RSA (Rivest-Shamir-Adleman algorithm). Em seguida, há uma análise do arquivo de configuração do SSH com comentários explicativos. É difícil memorizar todos os parâmetros, e talvez nem seja necessário. O capítulo termina com exemplos de cópia de arquivos via SSH, além de otimização e melhorias de desempenho.

O Capítulo 8 aborda questões gerais da administração de servidores web. Aqui, o autor faz uma pausa nos aspectos técnicos e apresenta um pouco de teoria, que considero importante e interessante. Ele explica em detalhes a diferença entre servidores físicos, virtuais e dedicados, e quando cada um é mais apropriado. Spoiler: você provavelmente não precisa de um servidor físico. São apresentados os prós e contras de cada tipo. Por exemplo, um servidor físico exige uma segunda linha de internet, ventilação do ambiente e segurança. A segunda parte do capítulo aborda os critérios para a escolha de um servidor. Aqui estão alguns pontos da lista:

  • Nível de certificação Tier
  • Presença de licenças FSTEC
  • Localização física dos servidores (conformidade com a Lei 152-FZ)
  • Velocidade básica do canal de internet
  • Velocidade do sistema de armazenamento
  • Tarifação e pagamentos
  • O que é um núcleo virtual

O Capítulo 9 trata do trabalho com FTP. Antes de instalar um servidor FTP, é necessário escolher uma opção adequada. O autor sugere: wu-ftpd (antigo, mas confiável), vsftpd (leve), pure-ftpd (compacto), proftpd (flexível e versátil). Em seguida, ele aborda a instalação do proftpd e suas configurações. No final, há algumas palavras sobre otimização e aceleração do servidor FTP.

O Capítulo 10 explica como funciona o DNS. Depois, o autor configura um servidor DNS de cache usando BIND9 e unbound, analisando os arquivos de configuração com comentários.

O Capítulo 11 discute em mais detalhes o servidor DHCP, sua finalidade e áreas de aplicação.

O Capítulo 12 trata da integração do Linux em uma infraestrutura Windows. Eu não trabalho com isso, então quase não adicionei nada ao meu resumo.

O Capítulo 13 trata do backup. Pontos interessantes: o autor descreve claramente o que precisa ser feito backup e em quais casos. Ele menciona sistemas automatizados (Amanda, Bacula), mas sugere um script próprio que cria um backup e o envia via SSH.

O Capítulo 14 é dedicado à segurança do servidor. Aqui são abordados: segurança local (lacres, proteção da BIOS), proteção contra ataques de rede, segurança de serviços (exemplo: fail2ban), criptografia de dados (exemplo: eCryptfs). Também são listados tipos de ataques DDoS (Smurf, ICMP-flood, UDP-flood) com um breve histórico de seu surgimento.

Servidor Web Dedicado baseado em Linux

Capítulo 15 é dedicado à configuração do servidor web. Aqui, o nginx não é abordado, mas o Apache sim. Além do Apache, também são apresentadas as configurações do banco de dados MySQL, do PHP (com todas as bibliotecas principais) e, como exemplo, o autor ainda instala o CMS Magento. Em seguida, vem a parte mais interessante: o autor classifica as diretivas do Apache em grupos (ao todo, 11 grupos) e descreve brevemente sua finalidade. Aqui estão alguns exemplos:

  • Diretivas de registro de logs: ErrorLog, TransferLog, HostnameLookups.
  • Diretivas de restrição de acesso: AllowOverride, Options, Limit.
  • Diretivas de gerenciamento de desempenho: StartServers, MaxSpareServers, MinSpareServers, além da diretiva CacheNegotiatedDocs.
  • Diretivas para manter a conexão com o cliente: Timeout, KeepAlive, KeepAliveTimeout.

Por fim, há uma pequena subseção sobre a segurança do servidor Apache. O trecho é breve, e poucas informações foram incluídas no resumo.

Capítulo 16 trata dos certificados SSL. Um ponto interessante são os diferentes tipos de certificados SSL, algo em que eu não havia pensado muito antes: DV (Domain Validation), OV (Organization Validation), EV (Extended Validation). Depois, há informações sobre o que esses certificados representam, em quais formatos são armazenados (PEM, DER, PKCS #7 / P7B, entre outros) e como convertê-los de um formato para outro. Além disso, este capítulo aborda o Let's Encrypt como a forma mais simples de criar um certificado.

Capítulo 17 é dedicado à escolha e instalação de um painel de controle para o servidor. São analisados tanto os painéis pagos e populares (cPanel, DirectAdmin, ISPManager, Plesk) quanto os gratuitos (Webmin, VestaCP, ISPConfig, Ajenti). O Webmin é examinado com mais detalhes.

Capítulo 18 trata do aumento do desempenho do servidor. Há uma checklist clara, incluindo os seguintes pontos (os principais fatores a serem considerados em caso de problemas de desempenho):

  • Número de clientes e configuração do servidor
  • Configurações do Apache
  • Versão do PHP
  • Diretiva memory_limit
  • Diretiva max_execution_time
  • Configuração de compressão e cache
  • Habilitação de cache no lado do servidor (uso do Memcached)
  • Configuração do CMS

Cada um desses pontos, é claro, é analisado em mais detalhes.

Capítulo 19 aborda a configuração de e-mail no servidor web. O autor instala o pacote ssmtp, registra um e-mail no Gmail e configura o servidor SMTP.

Capítulo 20 trata da solução de problemas comuns. Primeiro, o autor recomenda instalar o Zabbix ou pelo menos o Yandex.Metrica para monitoramento de estatísticas. Em seguida, ele analisa os erros mais comuns, incluindo:

  • Espaço em disco ou inodes livres esgotados.
  • Falta de outros recursos (memória, processador, etc.).
  • Configuração incorreta do servidor.

Este capítulo também menciona logs e apresenta uma lista de utilitários para monitoramento de diversos indicadores do servidor – desde htop e atop até apachetop e jnettop.

Nos dois últimos capítulos, além dos cálculos financeiros do autor e reflexões filosóficas sobre o que é mais vantajoso – um servidor virtual ou físico –, destaca-se a criação de uma alternativa ao Zoom (instalação e configuração do aplicativo BigBlueButton para realização de conferências online).

Conclusão

Comentário geral: o livro, sem dúvida, foi muito apreciado. Ele é bem estruturado e de fácil leitura. Contém muitas imagens, comentários e explicações. É adequado tanto para desenvolvedores back-end quanto front-end que desejam se aprofundar na administração de sistemas, acompanhando o autor desde a instalação do sistema operacional até a configuração do servidor web e dos softwares associados. A única desvantagem é a grande quantidade de informações, que, sem prática, pode ser difícil de memorizar completamente de imediato.

Вверх