Você pode colocar o sistema operacional no servidor a partir de sua imagem ou usar a imagem pronta no painel de controle.
Vamos supor que instalamos o Debian 10 e o servidor web Nginx, que vem no repositório padrão (
apt install nginx). Vamos ver quais utilitários e comandos úteis o ajudarão a gerenciar seu servidor Linux. Vamos considerar o Nginx separadamente e o próprio servidor VDS como um todo.
Conteúdo
Em primeiro lugar, é aconselhável compreender o próprio servidor web. O Nginx inicia quando a instalação é concluída. Nós verificamos este fato:
systemctl status nginx
Emissão:
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2020-08-17 08:52:54 UTC; 4min 23s ago
Docs: man:nginx(8)
Main PID: 3942 (nginx)
Tasks: 3 (limit: 4719)
Memory: 6.1M
CGroup: /system.slice/nginx.service
├─3942 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
├─3943 nginx: worker process
└─3944 nginx: worker process
Ou apenas digite o endereço IP do servidor no navegador:
http://your_server_ip
Se ainda não copiamos os arquivos do nosso site para o servidor, a página de cabeçalho padrão do Nginx será exibida.
Comandos básicos para gerenciar o Nginx
Nota. Se o usuário não tiver privilégios de root, então para cada comando a ser executado, ele deve obter privilégios de root usando o comando
sudo.
Parando o servidor da web:
sudo systemctl stop nginx
Se executado como root, o comando é:
systemctl stop nginx
Começar após parar:
systemctl start nginx
Pare e reinicie (reinicie):
systemctl restart nginx
Se você acabou de fazer algumas alterações na configuração, o Nginx pode reiniciar sem perder as conexões atuais. Isso é feito com o seguinte comando:
systemctl reload nginx
Por padrão, o Nginx é configurado para iniciar automaticamente quando o servidor for inicializado. Esse comportamento pode ser alterado com o seguinte comando:
systemctl disable nginx
Reative a inicialização automática do Nginx na inicialização do servidor:
systemctl enable nginx
Por padrão, o Nginx tem um conjunto de regras de bloqueio de servidor configuradas para um domínio. Presume-se que você hospede apenas um site em seu servidor. Por padrão, ele deve estar localizado no diretório
/var/www/html.
Suponha que você queira criar vários conjuntos de blocos de servidor para vários sites no Nginx ou mover os arquivos do site atual para um diretório diferente
/var/www/your_domain.
Isso é feito com os seguintes comandos.
Primeiro, criamos o diretório necessário no servidor.
mkdir -p /var/www/your_domain/html
Em seguida, atribuímos o proprietário deste diretório usando uma variável
$USERque deve corresponder ao usuário atual:
chown -R $USER:$USER /var/www/your_domain/html
Colocamos a página principal no diretório especificado
index.html.
Em seguida, você precisa criar um conjunto apropriado de regras para o Nginx. Em qualquer editor de texto, crie um arquivo
/etc/nginx/sites-available/your_domaine copie a configuração do arquivo padrão lá, apenas com o endereço e domínio alterados:
server {
listen 80;
listen [::]:80;
root /var/www/your_domain/html;
index index.html index.htm index.nginx-debian.html;
server_name your_domain www.your_domain;
location / {
try_files $uri $uri/ =404;
}
}
Por fim, ativamos essa configuração escrevendo um link simbólico para o novo arquivo de configuração no diretório
sites-enabledque o Nginx lê na inicialização:
ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/
Após a reinicialização, o Nginx exibirá a página apropriada para solicitações
your_domaine www.your_domain.
Gerenciamento de servidor
Quais são as perguntas dos usuários com mais frequência ao gerenciar um servidor Linux? Quais ferramentas você pode recomendar, mesmo para administradores inexperientes?
Instalando um supervisor
Supervisor é um sistema cliente / servidor por meio do qual o administrador controla os processos no servidor. A ferramenta cria processos como subprocessos em seu próprio nome.
Instalar supervisord no Debian ou Ubuntu é extremamente simples:
apt-get install supervisor
Depois disso, o daemon do supervisor já está em execução e será iniciado a cada inicialização do sistema.
Novos programas são passados para o supervisor por meio de arquivos de configuração no diretório
/etc/supervisor/conf.d. Por exemplo, para um script, o long.sharquivo de configuração pode ter a seguinte aparência:
[program:long_script]
command=/usr/local/bin/long.sh
autostart=true
autorestart=true
stderr_logfile=/var/log/long.err.log
stdout_logfile=/var/log/long.out.log
Da mesma forma, o script será executado automaticamente a cada inicialização do sistema e reiniciado automaticamente se for encerrado. Este valor pode ser 'falso' (não reiniciado) ou 'inesperado' (reiniciado apenas se sair com um código de erro inesperado, por padrão, qualquer código diferente de 0 ou 2).
As duas últimas linhas são os endereços das revistas. Este é o modelo de configuração mínimo para um programa de supervisor.
Depois de criar um arquivo de configuração para um programa específico, executamos dois comandos para que o supervisor releia e aplique as novas configurações:
supervisorctl reread
supervisorctl update
Nesta fase, nosso programa ou script já deve estar em execução, o que pode ser verificado por logs.
O utilitário
supervisorctlpossui um modo interativo no qual é executado sem argumentos:
$ supervisorctl
long_script RUNNING pid 12614, uptime 1:49:37
supervisor>
Nesse modo, o supervisorctl exibe inicialmente o status e o tempo de execução de todos os programas sob a supervisão do supervisor e, em seguida, sua linha de comando. Lá você pode entrar
help- e ver uma lista de comandos disponíveis:
supervisor> help
default commands (type help ):
=====================================
add clear fg open quit remove restart start stop update
avail exit maintail pid reload reread shutdown status tail version
Como você pode ver, você pode iniciar, parar e reiniciar programas a partir da linha de comando usando os comandos iniciar, parar e reiniciar.
Para sair do supervisor, use Ctrl-C ou o comando quit:
supervisor> quit
Análise de espaço livre em disco
O utilitário padrão para visualizar informações sobre partições montadas é
df. Ele exibe uma lista de dispositivos conectados e informações sobre o espaço ocupado.
df
A opção -h ativa a saída legível por humanos (ou seja, em megabytes ou gigabytes):
$ df -h
% C
devtmpfs 925M 0 925M 0% /dev
tmpfs 936M 56K 936M 1% /dev/shm
tmpfs 936M 1,9M 934M 1% /run
tmpfs 936M 0 936M 0% /sys/fs/cgroup
/dev/sda3 15G 11G 4,2G 71% /
tmpfs 936M 192K 936M 1% /tmp
/dev/sdb4 133G 126G 974M 100% /home
tmpfs 188M 20K 188M 1% /run/user/42
tmpfs 188M 7,1M 181M 4% /run/user/1000
Informações sobre um diretório específico (por exemplo, / home):
df -h /home
Informações sobre partições com um determinado sistema de arquivos:
df -h -t ext4
Procure arquivos com o comando find
Pesquise por nome de arquivo:
find -name "query"
Pesquisa por nome que não diferencia maiúsculas de minúsculas:
find -iname "query"
Pesquisa "reversa" de arquivos que não correspondem ao padrão especificado:
find -not -name "query_to_avoid"
ou
find \! -name "query_to_avoid"
Pesquise por tipo de arquivo
find -type _
Alguns dos descritores comuns são:
- f - arquivo normal
- d - diretório
- l - link simbólico
- c - arquivos de dispositivos de E / S de caracteres
- b - bloquear arquivos de dispositivo de I / O
Por exemplo, o comando a seguir listará todos os dispositivos de E / S de caracteres instalados no sistema:
find / -type c
/dev/parport0
/dev/snd/seq
/dev/snd/timer
/dev/autofs
/dev/cpu/microcode
/dev/vcsa7
/dev/vcs7
/dev/vcsa6
/dev/vcs6
/dev/vcsa5
/dev/vcs5
/dev/vcsa4
. . .
Existe um filtro por tamanho e tempo de acesso / mudança. Por exemplo, aqui está um comando para localizar todos os arquivos com menos de 50 bytes:
find / -size -50c
Pesquise todos os arquivos com mais de 700 megabytes:
find / -size +700M
Para pesquisar por tempo de acesso, modificação ou alteração da meta informação do arquivo, os parâmetros '-atime', '-mtime' e '-ctime' são usados com os símbolos mais e menos para indicar um intervalo maior e menor do que o especificado, respectivamente.
Pesquise por arquivos que foram modificados há menos de um dia:
find / -mtime -1
Arquivos com tempo de acesso há mais de três dias:
find / -atime +3
Arquivos que foram alterados no último minuto:
find / -mmin -1
Arquivos mais recentes que o arquivo especificado:
find / -newer myfile
Pesquisa por proprietário ('-usuário', '-grupo') e arquivos com permissões específicas ('-perm') está disponível. Em todos os arquivos encontrados, você pode executar imediatamente alguma ação ('-exec').
Teste de conexões TCP e UDP
O Linux vem com um grande número de utilitários úteis. Alguns administradores de sistema são capazes de realizar a maioria das tarefas usando apenas as ferramentas integradas, sem instalar software adicional. O verdadeiro canivete das ferramentas Linux embarcadas é o utilitário de rede
netcat. Sintaxe geral:
netcat [options] host port
Este comando inicia uma conexão TCP com o host especificado na porta especificada. Se, em vez de TCP, você precisar testar uma conexão UDP, especifique a opção
-u:
netcat -u host port
Faixa de portas:
netcat host startport-endport
Na maioria dos sistemas, você pode escrever
netcate nc.
Varredura de porta
Um dos usos típicos do netcat é o escaneamento de portas, uma opção
-zsignifica escanear em vez de estabelecer uma conexão. Nós o usamos junto com a opção -vde exibir informações mais detalhadas ao digitalizar portas de 1 a 1000:
netcat -z -v domain.com 1-1000
A saída será semelhante a esta:
nc: conexão com domain.com porta 1 (tcp) falhou: conexão recusada nc: falha na conexão com a porta 2 do domínio.com (tcp): conexão recusada nc: conectar a domain.com porta 3 (tcp) falhou: conexão recusada nc: conectar a domain.com porta 4 (tcp) falhou: conexão recusada nc: conectar a domain.com porta 5 (tcp) falhou: conexão recusada nc: conectar a domain.com porta 6 (tcp) falhou: conexão recusada nc: conectar a domain.com porta 7 (tcp) falhou: conexão recusada ... ... ... A conexão com a porta 22 do domínio.com [tcp / ssh] foi bem-sucedida! ... ... ...
No entanto, existe um programa mais avançado e especializado para essa tarefa
nmap. Instale-o:
apt-get update
apt-get install nmap
Este utilitário fornece informações mais detalhadas sobre as portas. O cadastro de portas conhecidas
/usr/share/nmap/nmap-servicescontém mais de 20 mil linhas, incluindo campos adicionais, como a frequência média de abertura de uma determinada porta em servidores da Internet (terceira coluna):
... ... ... tcpmux 1 / tcp 0,001995 # TCP Port Service Multiplexer [rfc-1078] tcpmux 1 / udp 0,001236 # TCP Port Service Multiplexer compressnet 2 / tcp 0,000013 # Utilitário de gerenciamento compressnet 2 / udp 0,001845 # Utilitário de gerenciamento compressnet 3 / tcp 0,001242 # Processo de compressão compressnet 3 / udp 0,001532 # Processo de compressão desconhecido 4 / tcp 0,000477 rje 5 / udp 0,000593 # Entrada de trabalho remoto desconhecido 6 / tcp 0,000502 echo 7 / tcp 0,004855 echo 7 / udp 0,024679 echo 7 / sctp 0,000000 ... ... ...
Não é recomendado executar varreduras de portas em um servidor externo, pois o administrador do sistema pode confundir tais ações com hostis. O Nmap é projetado para explorar seu próprio servidor e você pode experimentar em um servidor dedicado para fins de teste
scanme.nmap.org.
Alguns comandos demoram muito para serem executados.
Verificando o sistema operacional no host:
nmap -O
Analise o intervalo de host de xxx.xxx.xxx.xxx a yyy.yyy.yyy.yyy:
nmap -PN xxx.xxx.xxx.xxx-yyy.yyy.yyy.yyy
Verificando o alcance da rede em busca de serviços disponíveis:
nmap -sP _
Verificando uma porta específica:
nmap -p _
Verificando todas as portas TCP e UDP abertas:
nmap -n -PN -sT -sU -p-
Estudo de versões de software em execução no host:
nmap -PN -p _
Existem muitos outros comandos, parâmetros e casos de uso para o nmap. A varredura das portas do seu servidor VDS permite que você identifique os vetores de ataque e vulnerabilidades potenciais, já que um invasor começará suas ações com a varredura.
Encaminhando mensagens e arquivos
Usando a chave,
-lvocê pode escutar em uma porta específica no servidor:
netcat -l 5438
Em outra máquina, especificamos a conexão com a máquina nesta porta:
netcat domain.com 5438
Um canal de comunicação agora foi estabelecido entre os dois sistemas. Ele pode ser usado para enviar mensagens de texto.
Você pode até transferir um arquivo dessa maneira. Para fazer isso, envie o comando de escuta diretamente para o arquivo:
netcat -l 5438 > _
Em outro computador, em vez de uma mensagem de texto, enviamos o arquivo original para a entrada:
netcat domain.com 5438 < _
Da mesma forma, você pode transferir todos os tipos de coisas, por exemplo, o conteúdo de diretórios, compactados em tempo real para
tarball:
tar -czf - * | netcat domain.com 4444
Da mesma forma, você pode criar uma imagem de disco em um lado (
dd), enviá-la para a porta especificada através da conexão TCP criada - e recebê-la no outro sistema.
Adicionar e remover usuários
Para adicionar, remover usuários e conceder-lhes privilégios,
sudovocê deve primeiro se conectar ao servidor como root:
ssh root@ip__
Depois disso, adicione o usuário:
adduser newuser
Inicialmente, ele não tem privilégios. Mas se este for o usuário principal do sistema, então podemos atribuir a ele privilégios administrativos para que ele possa realizar as tarefas rotineiras de manutenção e manutenção do servidor.
Para atribuir privilégios administrativos, você precisa adicionar o usuário ao grupo sudo. Os usuários neste grupo têm permissão para executar o comando
sudocom seus privilégios elevados a administrativos.
usermod -aG sudo user1
Em vez disso,
user1indicamos o nome do usuário que foi adicionado anteriormente. Agora ele poderá executar qualquer comando por meio de sudo:
sudo
Com esses direitos, este usuário pode excluir outros usuários:
sudo deluser --remove-home username
Essa opção
--remove-hometambém remove o diretório pessoal do usuário.
O próprio Root tem o direito de executar o comando
delusersem sudo.
Claro, esta não é uma lista completa de ferramentas úteis para gerenciar um servidor VDS. Mas essas perguntas costumam surgir para administradores de sistema novatos que configuram seu primeiro servidor, instalam um sistema operacional e começam a entender o mundo da administração Linux.
