Mengehos tapak web pada penghala rumah anda

Saya telah lama ingin "menyentuh tangan saya" pada perkhidmatan Internet dengan menyediakan pelayan web dari awal dan melepaskannya ke Internet. Dalam artikel ini saya ingin berkongsi pengalaman saya dalam mengubah penghala rumah daripada peranti yang sangat berfungsi kepada pelayan yang hampir lengkap.

Semuanya bermula dengan hakikat bahawa penghala TP-Link TL-WR1043ND, yang telah berkhidmat dengan setia, tidak lagi memenuhi keperluan rangkaian rumah; Saya mahukan jalur 5 GHz dan akses pantas kepada fail pada peranti storan yang disambungkan ke penghala . Selepas melihat melalui forum khusus (4pda, ixbt), tapak dengan ulasan dan melihat pelbagai jenis kedai tempatan, saya memutuskan untuk membeli Keenetic Ultra.

Ulasan yang baik daripada pemilik berfungsi memihak kepada peranti khusus ini:

  • tiada masalah dengan terlalu panas (di sini kami terpaksa meninggalkan produk Asus);
  • kebolehpercayaan operasi (di sini saya memotong TP-Link);
  • mudah untuk disediakan (saya takut saya tidak dapat mengendalikannya dan memotong Microtik).

Saya terpaksa menerima keburukan:

  • tiada WiFi6, saya ingin mengambil peralatan dengan rizab untuk masa depan;
  • 4 port LAN, saya mahukan lebih banyak, tetapi ini bukan lagi kategori rumah.

Akibatnya, kami mendapat "pelayan" ini:

Mengehos tapak web pada penghala rumah anda

  • di sebelah kiri ialah terminal optik Rostelecom;
  • di sebelah kanan ialah penghala percubaan kami;
  • SSD 2 GB m.128 terletak di sekeliling, diletakkan di dalam kotak USB3 dari Aliexpress, disambungkan ke penghala dengan wayar, kini ia dipasang dengan kemas di dinding;
  • di latar depan adalah kord sambungan dengan soket terputus secara bebas, wayar daripadanya pergi ke UPS yang murah;
  • di latar belakang terdapat sekumpulan kabel pasangan terpintal - pada peringkat pengubahsuaian apartmen, saya segera merancang soket RJ45 di tempat-tempat di mana peralatan sepatutnya ditempatkan, supaya tidak bergantung pada WiFi yang bersepah.

Jadi, kami mempunyai peralatan, kami perlu mengkonfigurasinya:

Mengehos tapak web pada penghala rumah anda

  • Persediaan awal penghala mengambil masa kira-kira 2 minit, kami menunjukkan parameter sambungan kepada pembekal (terminal optik saya ditukar kepada mod jambatan, sambungan PPPoE mengangkat penghala), nama rangkaian WiFi dan kata laluan - pada dasarnya itu sahaja , penghala dimulakan dan berfungsi.

Mengehos tapak web pada penghala rumah anda

Kami menetapkan pemajuan port luaran ke port penghala itu sendiri dalam bahagian "Peraturan rangkaian - Pemajuan":

Mengehos tapak web pada penghala rumah anda

Mengehos tapak web pada penghala rumah anda

Sekarang kita boleh beralih ke bahagian "maju", apa yang saya mahu dari penghala:

  1. kefungsian NAS kecil untuk rangkaian rumah;
  2. melaksanakan fungsi pelayan web untuk beberapa halaman peribadi;
  3. fungsi awan peribadi untuk mengakses data peribadi dari mana-mana sahaja di dunia.

Yang pertama dilaksanakan menggunakan alat terbina dalam, tanpa memerlukan banyak usaha:

  • Kami mengambil pemacu yang dimaksudkan untuk peranan ini (pemacu denyar, kad memori dalam pembaca kad, cakera keras atau SSD dalam kotak luaran dan memformatkannya ke Ext4 menggunakan Edisi Percuma Wizard MiniTool Partition (Saya tidak mempunyai komputer dengan Linux di tangan, ia mungkin dengan alat terbina dalam). Seperti yang saya faham, semasa operasi sistem hanya menulis log ke pemacu kilat, jadi jika anda mengehadkannya selepas menyediakan sistem, anda juga boleh menggunakan kad memori jika anda bercadang untuk menulis banyak dan sering ke pemacu - SSD atau HDD lebih baik.

Mengehos tapak web pada penghala rumah anda

Selepas ini, kami menyambungkan pemacu ke penghala dan memerhatikannya pada skrin monitor sistem

Mengehos tapak web pada penghala rumah anda

Klik pada "pemacu dan pencetak USB" ke bahagian "Aplikasi" dan konfigurasikan bahagian dalam bahagian "Rangkaian Windows":

Mengehos tapak web pada penghala rumah anda

Dan kami mempunyai sumber rangkaian yang boleh digunakan daripada komputer Windows, menyambung sebagai cakera jika perlu: ​​penggunaan bersih y: \192.168.1.1SSD /persistent:yes

Kelajuan NAS improvisasi sedemikian cukup memadai untuk kegunaan rumah; melalui wayar ia menggunakan keseluruhan gigabit, melalui WiFi kelajuannya adalah kira-kira 400-500 megabit.

Mengehos tapak web pada penghala rumah anda

Menyediakan storan ialah salah satu langkah yang perlu untuk mengkonfigurasi pelayan, maka kami memerlukan:
- beli domain dan alamat IP statik (anda boleh melakukannya tanpa ini dengan menggunakan DNS Dinamik, tetapi saya sudah mempunyai IP statik, jadi ia ternyata lebih mudah digunakan perkhidmatan Yandex percuma - dengan mewakilkan domain di sana, kami menerima pengehosan dan mel DNS pada domain kami);

Mengehos tapak web pada penghala rumah anda

- mengkonfigurasi pelayan DNS dan tambah rekod A yang menunjuk ke IP anda:

Mengehos tapak web pada penghala rumah anda

Ia mengambil masa beberapa jam untuk tetapan delegasi domain dan DNS berkuat kuasa, jadi kami menyediakan penghala secara serentak.

Pertama, kita perlu memasang repositori Entware, dari mana kita boleh memasang pakej yang diperlukan pada penghala. Saya mengambil kesempatan arahan ini, hanya tidak memuat naik pakej pemasangan melalui FTP, tetapi mencipta folder terus pada pemacu rangkaian yang disambungkan sebelum ini dan menyalin fail di sana dengan cara biasa.

Setelah mendapat akses melalui SSH, tukar kata laluan dengan arahan passwd dan pasang semua pakej yang diperlukan dengan perintah opkg install [nama pakej]:

Mengehos tapak web pada penghala rumah anda

Semasa persediaan, pakej berikut telah dipasang pada penghala (output perintah yang dipasang senarai opkg):

Senarai pakej
bash - 5.0-3
busybox - 1.31.1-1
ca-bundle - 20190110-2
sijil-ca - 20190110-2
coreutils - 8.31-1
coreutils-mktemp - 8.31-1
cron - 4.1-3
keriting - 7.69.0-1
diffutils - 3.7-2
dropbear - 2019.78-3
keluaran entware - 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-penuh - 1.11.1-4
libintl-penuh - 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
libuid - 2.35.1-1
libxml2 - 2.9.10-1
tempatan - 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
kotak miskin - 1.31.1-2
terminfo - 6.2-1
zlib - 1.2.11-3
zoneinfo-asia - 2019c-1
zoninfo-europe - 2019c-1

Mungkin ada sesuatu yang berlebihan di sini, tetapi terdapat banyak ruang pada pemacu, jadi saya tidak ambil pusing melihatnya.

Selepas memasang pakej, kami mengkonfigurasi nginx, saya mencubanya dengan dua domain - yang kedua dikonfigurasikan dengan https, dan buat masa ini terdapat stub. Port dalaman 81 dan 433 digunakan dan bukannya 80 dan 443, kerana panel pentadbir penghala digantung pada port biasa.

dll/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;
            }
        }
}
</spoiler>
<spoiler title="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;

Agar tapak berfungsi melalui https, saya menggunakan skrip dehidrasi yang terkenal, memasangnya menggunakan arahan ini. Proses ini tidak menyebabkan sebarang kesulitan, saya hanya tersandung pada fakta bahawa dalam teks skrip untuk bekerja pada penghala saya anda perlu mengulas baris dalam fail /opt/etc/ssl/openssl.cnf:

[openssl_conf]
#engines=engines

Dan saya perhatikan bahawa menjana dhparams.pem dengan arahan "openssl dhparam -out dhparams.pem 2048" pada penghala saya mengambil masa lebih daripada 2 jam, jika tidak kerana penunjuk kemajuan, saya akan kehilangan kesabaran dan but semula.

Selepas menerima sijil, mulakan semula nginx dengan arahan "/opt/etc/init.d/S80nginx restart". Pada dasarnya, persediaan telah selesai, tetapi belum ada laman web - jika kita meletakkan fail index.html dalam direktori /share/nginx/html, kita akan melihat stub.

index.html

<!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>

Untuk meletakkan maklumat dengan cantik, lebih mudah bagi bukan profesional seperti saya untuk menggunakan templat siap sedia; selepas mencari lama melalui pelbagai katalog, saya dapati templatemo.com - terdapat pilihan templat percuma yang baik yang tidak memerlukan atribusi (yang jarang berlaku di Internet; kebanyakan templat dalam lesen memerlukan anda menyimpan pautan ke sumber dari mana ia diperoleh).

Kami memilih templat yang sesuai - ada yang untuk pelbagai kes, muat turun arkib dan bongkarkannya ke dalam direktori /share/nginx/html, anda boleh melakukannya dari komputer anda, kemudian edit templat (di sini anda memerlukan pengetahuan minimum HTML supaya tidak memecahkan struktur) dan menggantikan grafik seperti yang ditunjukkan dalam rajah di bawah.

Mengehos tapak web pada penghala rumah anda

Ringkasan: penghala agak sesuai untuk mengehoskan laman web ringan di atasnya, pada dasarnya - jika beban besar tidak dijangka, anda boleh pasang dan php, dan bereksperimen dengan projek yang lebih kompleks (saya melihat nextcloud/owncloud, nampaknya terdapat pemasangan yang berjaya pada perkakasan tersebut). Keupayaan untuk memasang pakej meningkatkan kegunaannya - sebagai contoh, apabila perlu untuk melindungi port RDP PC pada rangkaian tempatan, saya memasang knocked pada penghala - dan port forwarding ke PC dibuka hanya selepas port mengetuk.

Mengapa penghala dan bukan PC biasa? Penghala ialah salah satu daripada beberapa perkakasan komputer yang berfungsi sepanjang masa di banyak pangsapuri; penghala rumah biasanya benar-benar senyap dan tapak ringan dengan kurang daripada seratus lawatan sehari tidak akan mengganggunya sama sekali.

Sumber: www.habr.com

Tambah komen