Há muito tempo que desejo “tocar as mãos” nos serviços da Internet, configurando um servidor web do zero e lançando-o na Internet. Neste artigo, quero compartilhar minha experiência na transformação de um roteador doméstico de um dispositivo altamente funcional em um servidor quase completo.
Tudo começou com o fato de que o roteador TP-Link TL-WR1043ND, que tinha servido fielmente, não atendia mais as necessidades de uma rede doméstica; eu queria uma banda de 5 GHz e acesso rápido aos arquivos em um dispositivo de armazenamento conectado ao roteador . Depois de consultar fóruns especializados (4pda, ixbt), sites com avaliações e consultar o sortimento de lojas locais, resolvi adquirir o Keenetic Ultra.
Boas críticas dos proprietários funcionaram a favor deste dispositivo específico:
sem problemas de superaquecimento (aqui tivemos que abandonar os produtos Asus);
fácil de configurar (tive medo de não aguentar e risquei o Microtik).
Eu tive que aceitar as desvantagens:
sem WiFi6, queria levar equipamentos com reserva para o futuro;
4 portas LAN, eu queria mais, mas essa não é mais uma categoria doméstica.
Como resultado, obtivemos este “servidor”:
à esquerda está o terminal óptico da Rostelecom;
à direita está nosso roteador experimental;
um SSD m.2 de 128 GB, colocado em uma caixa USB3 do Aliexpress, está conectado ao roteador com um fio, agora está cuidadosamente montado na parede;
em primeiro plano está um cabo de extensão com tomadas desconectadas de forma independente, o fio dele vai para um no-break barato;
ao fundo há um monte de cabos de par trançado - na fase de reforma do apartamento, planejei imediatamente tomadas RJ45 nos locais onde o equipamento deveria estar localizado, para não depender do WiFi estar cheio.
Então, já temos o equipamento, precisamos configurá-lo:
A configuração inicial do roteador leva cerca de 2 minutos, indicamos os parâmetros de conexão ao provedor (meu terminal óptico está em modo bridge, a conexão PPPoE levanta o roteador), o nome da rede WiFi e a senha - basicamente é isso , o roteador inicializa e funciona.
Definimos o encaminhamento de portas externas para as portas do próprio roteador na seção “Regras de rede - Encaminhamento”:
Agora podemos passar para a parte “avançada”, o que eu queria do roteador:
funcionalidade de um pequeno NAS para uma rede doméstica;
executar funções de servidor web para diversas páginas privadas;
funcionalidade de nuvem pessoal para acessar dados pessoais de qualquer lugar do mundo.
O primeiro é implementado por meio de ferramentas integradas, sem exigir muito esforço:
Pegamos um drive destinado a esta função (pen drive, cartão de memória em leitor de cartão, disco rígido ou SSD em caixa externa e formatamos para Ext4 usando MiniTool Partition Wizard Edição Gratuita (Não tenho um computador com Linux em mãos, é possível com ferramentas integradas). Pelo que entendi, durante a operação o sistema grava apenas logs na unidade flash, portanto, se você limitá-los após configurar o sistema, também poderá usar cartões de memória se planeja gravar muito e com frequência na unidade - um SSD ou O disco rígido é melhor.
Depois disso, conectamos o drive ao roteador e observamos na tela do monitor do sistema
Clique em “Unidades USB e Impressoras” na seção “Aplicativos” e configure o compartilhamento na seção “Rede Windows”:
E temos um recurso de rede que pode ser usado em computadores Windows, conectando-se como um disco se necessário: net use y:\192.168.1.1SSD /persistent:yes
A velocidade de um NAS improvisado é suficiente para uso doméstico: por fio ele usa todo o gigabit, por WiFi a velocidade é de cerca de 400-500 megabits.
Configurar o armazenamento é uma das etapas necessárias para configurar o servidor, então precisamos:
- compre um domínio e um endereço IP estático (você pode passar sem isso usando DNS dinâmico, mas eu já tinha um IP estático, então acabou sendo mais fácil de usar serviços Yandex gratuitos - delegando o domínio lá, recebemos hospedagem DNS e correio em nosso domínio);
Demora várias horas para que as configurações de domínio e delegação de DNS entrem em vigor, por isso estamos configurando o roteador simultaneamente.
Primeiro precisamos instalar o repositório Entware, a partir do qual podemos instalar os pacotes necessários no roteador. Aproveitei esta instrução, apenas não carregou o pacote de instalação via FTP, mas criou uma pasta diretamente na unidade de rede conectada anteriormente e copiou o arquivo lá da maneira usual.
Tendo obtido acesso via SSH, altere a senha com o comando passwd e instale todos os pacotes necessários com o comando opkg install [nomes dos pacotes]:
Durante a configuração, os seguintes pacotes foram instalados no roteador (a saída do comando opkg list-installed):
Talvez houvesse algo supérfluo aqui, mas havia muito espaço na unidade, então não me preocupei em investigar.
Depois de instalar os pacotes, configuramos o nginx, tentei com dois domínios - o segundo está configurado com https, e por enquanto existe um stub. As portas internas 81 e 433 são usadas em vez de 80 e 443, pois o painel de administração do roteador trava nas portas normais.
Para que o site funcionasse via https, utilizei o conhecido script desidratado, instalando-o usando esta instrução. Este processo não causou nenhuma dificuldade, apenas me deparei com o fato de que no texto do script para trabalhar no meu roteador você precisa comentar a linha no arquivo /opt/etc/ssl/openssl.cnf:
[openssl_conf]
#engines=engines
E observo que gerar dhparams.pem com o comando “openssl dhparam -out dhparams.pem 2048” no meu roteador leva mais de 2 horas, se não fosse pelo indicador de progresso, eu teria perdido a paciência e reiniciado.
Após receber os certificados, reinicie o nginx com o comando “/opt/etc/init.d/S80nginx restart”. Em princípio, a configuração está completa, mas ainda não existe um site - se colocarmos o arquivo index.html no diretório /share/nginx/html, veremos um esboço.
Para colocar as informações de maneira bonita, é mais fácil para um não profissional como eu usar modelos prontos; depois de uma longa pesquisa em vários catálogos, descobri templatemo.com — há uma boa seleção de modelos gratuitos que não requerem atribuição (o que é raro na Internet; a maioria dos modelos na licença exige que você salve um link para o recurso do qual foram obtidos).
Selecionamos um modelo adequado - existem alguns para vários casos, baixe o arquivo e descompacte-o no diretório /share/nginx/html, você pode fazer isso em seu computador e depois editar o modelo (aqui você precisará de conhecimento mínimo do HTML para não quebrar a estrutura) e substitua os gráficos conforme mostrado na figura abaixo.
Resumo: o roteador é bastante adequado para hospedar um site leve nele, em princípio - se não for esperada uma carga grande, você pode instalar e phpe experimente projetos mais complexos (eu olho para nextcloud/owncloud, parece haver instalações bem-sucedidas nesse tipo de hardware). A capacidade de instalar pacotes aumenta sua utilidade - por exemplo, quando foi necessário proteger a porta RDP de um PC em uma rede local, instalei o knockd no roteador - e o encaminhamento de porta para o PC foi aberto somente após a porta bater.
Por que um roteador e não um PC normal? Um roteador é uma das poucas peças de hardware de computador que funciona XNUMX horas por dia em muitos apartamentos; um roteador doméstico geralmente é absolutamente silencioso e um local leve com menos de cem visitas por dia não o incomodará em nada.