Todo comenzĂł con el hecho de que el enrutador TP-Link TL-WR1043ND, que sirviĂł fielmente, dejĂł de satisfacer las necesidades de la red domĂ©stica, querĂa una banda de 5 GHz y acceso rápido a los archivos en una unidad conectada al enrutador. DespuĂ©s de mirar a travĂ©s de los foros especializados (w3bsit3-dns.com, ixbt), sitios con reseñas y mirar la variedad de tiendas locales, decidĂ comprar Keenetic Ultra.
A favor de este dispositivo en particular, las buenas crĂticas de los propietarios funcionaron:
- sin problemas con el sobrecalentamiento (aquĂ tuvimos que abandonar los productos Asus);
- fiabilidad en el trabajo (aquà taché TP-Link);
- facilidad de configuraciĂłn (tenĂa miedo de no hacer frente y tachĂ© a MikroTik).
Tuve que aceptar los contras:
- sin WiFi6, querĂa llevar equipos con un margen para el futuro;
- 4 puertos LAN, querĂa más, pero esto ya no es una categorĂa domĂ©stica.
Como resultado, tenemos este "servidor":
- a la izquierda está el terminal óptico de Rostelecom;
- a la derecha está nuestro enrutador experimental;
- un cable al enrutador está conectado a la SSD m.2 alrededor de 128 GB, colocada en una caja USB3 de aliexpress, ahora está perfectamente fijada en la pared;
- en primer plano hay un cable de extensiĂłn con desconexiĂłn independiente de los enchufes, el cable va a un UPS econĂłmico;
- en el fondo hay un paquete de par trenzado: en la etapa de renovaciĂłn del apartamento, inmediatamente planeĂ© los enchufes RJ45 en los lugares donde se suponĂa que se ubicarĂa el equipo, para no depender del desorden WiFi.
Entonces, tenemos el equipo, necesitamos configurarlo:
- la configuración inicial del enrutador dura aproximadamente 2 minutos, especificamos los parámetros para conectarme al proveedor (mi terminal óptico se cambia al modo puente, el enrutador levanta la conexión PPPoE), el nombre de la red WiFi y la contraseña; en principio, todo, el enrutador se inicia y funciona.
Colocamos el reenvĂo de puertos externos a los puertos del enrutador en la secciĂłn "Reglas de red - ReenvĂo":
ahora puede ir a la parte "avanzada", que es lo que querĂa del enrutador:
- funcionalidad de un pequeño NAS para una red doméstica;
- actuando como un servidor web para varias páginas privadas;
- funcionalidad de nube personal para acceder a datos personales desde cualquier parte del mundo.
El primero se implementa en herramientas integradas, que requieren poco esfuerzo:
- (, , SSD Ext4 MiniTool Partition Wizard Free Edition ( linux , ). , , , — , — SSD HDD.
Después de eso, conectamos la unidad al enrutador y la observamos en la pantalla del monitor del sistema.
Haga clic en "Discos e impresoras USB" en la secciĂłn "Aplicaciones" y configuremos
un recurso compartido en la secciĂłn "Red de Windows": Y tenemos un recurso de red que puede usarse con computadoras bajo Windows, conectando si es necesario como un disco: uso neto y: \\ 192.168.1.1 \ SSD / persistente: sĂ
La velocidad de un NAS tan improvisado es suficiente para uso doméstico, usa todos los gigabits a través del cable, a través de WiFi la velocidad es de aproximadamente 400-500 megabits
Configurar el almacenamiento es uno de los pasos necesarios para configurar el servidor, luego debemos:
- comprar un dominioy una direcciĂłn IP estática (puede prescindir de esto utilizando DNS dinámico, pero ya tenĂa una IP estática, por lo que resultĂł ser más fácil usar servicios Yandex gratuitos : al delegar un dominio allĂ , obtenemos alojamiento y correo DNS en nuestro dominio);
- configure los servidores DNS y agregue registros A que apunten a su IP:
el dominio y la configuración de delegación de DNS tardan varias horas, por lo que estamos configurando simultáneamente el enrutador.
Primero, debe instalar el repositorio de Entware, desde el cual podemos instalar los paquetes necesarios en el enrutador. Seguà estas instrucciones, solo no cargó el paquete de instalación a través de FTP, sino que creó una carpeta directamente en la unidad de red conectada anteriormente y copió el archivo allà de la manera habitual.
Después de obtener acceso a través de SSH, cambiamos la contraseña con el comando passwd e instalamos todos los paquetes necesarios con el comando opkg install [nombres de paquete]:
durante la configuraciĂłn, se instalaron los siguientes paquetes en el enrutador (la salida del comando opkg list-installe):
Lista de paquetes
bash — 5.0-3
busybox — 1.31.1-1
ca-bundle — 20190110-2
ca-certificates — 20190110-2
coreutils — 8.31-1
coreutils-mktemp — 8.31-1
cron — 4.1-3
curl — 7.69.0-1
diffutils — 3.7-2
dropbear — 2019.78-3
entware-release — 1.0-2
findutils — 4.7.0-1
glib2 — 2.58.3-5
grep — 3.4-1
ldconfig — 2.27-9
libattr — 2.4.48-2
libblkid — 2.35.1-1
libc — 2.27-9
libcurl — 7.69.0-1
libffi — 3.2.1-4
libgcc — 8.3.0-9
libiconv-full — 1.11.1-4
libintl-full — 0.19.8.1-2
liblua — 5.1.5-7
libmbedtls — 2.16.5-1
libmount — 2.35.1-1
libncurses — 6.2-1
libncursesw — 6.2-1
libndm — 1.1.10-1a
libopenssl — 1.1.1d-2
libopenssl-conf — 1.1.1d-2
libpcap — 1.9.1-2
libpcre — 8.43-2
libpcre2 — 10.34-1
libpthread — 2.27-9
libreadline — 8.0-1a
librt — 2.27-9
libslang2 — 2.3.2-4
libssh2 — 1.9.0-2
libssp — 8.3.0-9
libstdcpp — 8.3.0-9
libuuid — 2.35.1-1
libxml2 — 2.9.10-1
locales — 2.27-9
mc — 4.8.23-2
ndmq — 1.0.2-5a
nginx — 1.17.8-1
openssl-util — 1.1.1d-2
opkg — 2019-06-14-dcbc142e-2
opt-ndmsv2 — 1.0-12
php7 — 7.4.3-1
php7-mod-openssl — 7.4.3-1
poorbox — 1.31.1-2
terminfo — 6.2-1
zlib — 1.2.11-3
zoneinfo-asia — 2019c-1
zoneinfo-europe — 2019c-1
busybox — 1.31.1-1
ca-bundle — 20190110-2
ca-certificates — 20190110-2
coreutils — 8.31-1
coreutils-mktemp — 8.31-1
cron — 4.1-3
curl — 7.69.0-1
diffutils — 3.7-2
dropbear — 2019.78-3
entware-release — 1.0-2
findutils — 4.7.0-1
glib2 — 2.58.3-5
grep — 3.4-1
ldconfig — 2.27-9
libattr — 2.4.48-2
libblkid — 2.35.1-1
libc — 2.27-9
libcurl — 7.69.0-1
libffi — 3.2.1-4
libgcc — 8.3.0-9
libiconv-full — 1.11.1-4
libintl-full — 0.19.8.1-2
liblua — 5.1.5-7
libmbedtls — 2.16.5-1
libmount — 2.35.1-1
libncurses — 6.2-1
libncursesw — 6.2-1
libndm — 1.1.10-1a
libopenssl — 1.1.1d-2
libopenssl-conf — 1.1.1d-2
libpcap — 1.9.1-2
libpcre — 8.43-2
libpcre2 — 10.34-1
libpthread — 2.27-9
libreadline — 8.0-1a
librt — 2.27-9
libslang2 — 2.3.2-4
libssh2 — 1.9.0-2
libssp — 8.3.0-9
libstdcpp — 8.3.0-9
libuuid — 2.35.1-1
libxml2 — 2.9.10-1
locales — 2.27-9
mc — 4.8.23-2
ndmq — 1.0.2-5a
nginx — 1.17.8-1
openssl-util — 1.1.1d-2
opkg — 2019-06-14-dcbc142e-2
opt-ndmsv2 — 1.0-12
php7 — 7.4.3-1
php7-mod-openssl — 7.4.3-1
poorbox — 1.31.1-2
terminfo — 6.2-1
zlib — 1.2.11-3
zoneinfo-asia — 2019c-1
zoneinfo-europe — 2019c-1
Quizás haya algo superfluo aquĂ, pero hay mucho espacio en el disco, asĂ que no lo descubrĂ.
Después de instalar los paquetes, configuramos nginx, probé con dos dominios: el segundo está configurado con https y mientras el código auxiliar se cuelga. Se utilizan 81 y 433 puertos internos en lugar de 80 y 443, ya que los paneles de administración del enrutador cuelgan de los puertos normales.
etc / nginx / nginx.conf
user nobody;
worker_processes 1;
#error_log /opt/var/log/nginx/error.log;
#error_log /opt/var/log/nginx/error.log notice;
#error_log /opt/var/log/nginx/error.log info;
#pid /opt/var/run/nginx.pid;
events {
worker_connections 64;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log /opt/var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 81;
server_name milkov.su www.milkov.su;
return 301 https://milkov.su$request_uri;
}
server {
listen 433 ssl;
server_name milkov.su;
#SSL support
include ssl.conf;
location / {
root /opt/share/nginx/html;
index index.html index.htm;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
etc / nginx / ssl.conf
ssl_certificate /opt/etc/nginx/certs/milkov.su/fullchain.pem;
ssl_certificate_key /opt/etc/nginx/certs/milkov.su/privkey.pem;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
ssl_prefer_server_ciphers on;
ssl_dhparam /opt/etc/nginx/dhparams.pem;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;
ssl_stapling on;
Para que el sitio funcione en https, utilicĂ© el conocido script deshidratado, instalándolo de acuerdo con estas instrucciones . Este proceso no causĂł ninguna dificultad, me topĂ© solo con el hecho de que en el texto del script para trabajar en mi enrutador, debe comentar la lĂnea en el archivo /opt/etc/ssl/openssl.cnf:
[openssl_conf]
#engines=engines
Y noto que la generaciĂłn de dhparams.pem con el comando "openssl dhparam -out dhparams.pem 2048" en mi enrutador lleva más de 2 horas, si no fuera por el indicador de progreso, habrĂa perdido la paciencia y reiniciado.
Después de recibir los certificados, reinicie nginx con el comando "/opt/etc/init.d/S80nginx restart". En principio, esto completa la configuración, pero el sitio aún no existe; si colocamos el archivo index.html en el directorio / share / nginx / html, veremos un trozo.
<!DOCTYPE html>
<html>
<head>
<title> !</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1> !</h1>
<p> , .</p>
</body>
</html>
Para colocar la informaciĂłn maravillosamente, es más fácil para un no profesional como yo usar plantillas ya preparadas, despuĂ©s de una larga bĂşsqueda en varios directorios encontrĂ© templatemo.com : hay una buena selecciĂłn de plantillas gratuitas que no requieren una atribuciĂłn obligatoria (lo cual es raro en Internet, la mayorĂa de las plantillas en la licencia requieren que mantenga un enlace al recurso de donde se obtuvieron).
Seleccionamos la plantilla adecuada: existe para una variedad de casos, descargamos el archivo y lo desempaquetamos en el directorio / share / nginx / html, puede hacerlo desde su computadora, luego edite la plantilla (aquĂ necesita un conocimiento mĂnimo de HTML para no romper la estructura) y reemplace los gráficos como se muestra en la imagen a continuaciĂłn.
Resumen: el enrutador es bastante adecuado para alojar un sitio ligero en Ă©l, en principio; si no se espera una carga pesada, puede instalar php y experimentar con proyectos más complejos (miro nextcloud / owncloud, parece que hay instalaciones exitosas en dicho hardware). La capacidad de instalar paquetes aumenta su utilidad, por ejemplo, cuando era necesario proteger el puerto RDP de la PC en la red local, poner el knockd en el enrutador, y el reenvĂo de puertos a la PC se abriĂł solo despuĂ©s de la interrupciĂłn del puerto.
ÂżPor quĂ© un enrutador y no una PC normal? Un enrutador es uno de los pocos equipos informáticos que funciona las 24 horas en muchos apartamentos, un enrutador domĂ©stico suele ser absolutamente silencioso y un sitio iluminado con menos de cien visitas por dĂa no lo estresará en absoluto.