Az ASUS routerek nem csupán a megbízhatóságukról és nagy teljesítményükről híresek, de mindemellett számos olyan modell is elérhető, mely a gyári alapfunkciókhoz képest sokkal többre is használható, gyakorlatilag egy önálló szerverként is funkcionálhat.
Ebben az útmutatónkban most egy olyan routert rakunk össze, amely végeredményben nem tér el nagy mértékben a gyári firmware-től, így többek között az oda-vissza átjárhatóság is megmarad a hivatalos és az egyedi megoldás között, viszont számos olyan funkció válik elérhetővé, mely megkönnyítheti az életünket, ráadásul sokkal több választási lehetőségünk lesz, a fokozott biztonsági megoldásokról nem is beszélve.
Az alapokat az Asuswrt-Merlin firmware adja, amelyen az Entware csomagkezelő gondoskodik a megfelelő csomagok elérhetőségéről, a Merlinben elérhető amtm szkripttel lehet számos megoldást egy az egyben úgy telepíteni, hogy a webes felhasználói felületen is azonnal elérhetők lesznek az egyes beállítások, illetve néhány saját szkripttel beállítunk majd kényelmi funkciókat, valamint a műveletek végén telepítjük a Nextcloudot, amely egy nyílt forráskódú, elsődlegesen fájlmegosztásra és együttműködésre kitalált magánfelhős platform rengeteg bővítési lehetőséggel.
Mindezek mellett megerősítjük majd a biztonsági beállításokat is, például jelszavas bejelentkezés helyett kulcsalapú hitelesítést állítunk be a router SSH-elérésénél, a lighttpd-vel saját webhelyeket tehetünk elérhetővé a routerünkön PHP-futtatási lehetőség mellett, illetve a netdata telepítésével részletes, élő statisztikát jeleníthetünk meg a router erőforrásairól és az egyes szolgáltatások aktuális állapotáról.
Tartalomjegyzék
Az ASUS routerrel kapcsolatos előfeltételek és rendszerkövetelmények
Elsőként is rendelkeznünk kell egy támogatott routerrel. Az aktuális, naprakész lista elérhető ezen a címen. Az útmutató megírásának időpontjában az alábbi ASUS routerek tartoznak a támogatott eszközök körébe:
- RT-AC66U_B1 (RT-AC68U firmware)
- RT-AC68U, RT-AC68P, RT-AC68UF
- RT-AC2900 (RT-AC86U firmware)
- RT-AC1900 & RT-AC1900P (RT-AC68U firmware)
- RT-AC3200
- RT-AC86U
- RT-AC88U
- RT-AC3100
- RT-AC5300
- RT-AX88U
- RT-AX56U
- RT-AX58U
- RT-AX3000 (RT-AX58U firmware)
- RT-AX86U
- GT-AC2900
Továbbá a rendszer telepítéséhez (tehát nem a firmware-hez, hanem a további alkalmazások és szolgáltatások elérhetővé tételéhez) és a saját csomagok üzembe helyezéséhez csatlakoztatnunk kell egy tárhelyet a routerhez. Ez lehet egy pendrive vagy egy külső HDD/SSD is. Ami a fontos, hogy több USB-port használata esetén még a rendszerünk üzembe helyezése előtt válasszuk ki azt a portot, amelyiket használni fogjuk, és csatlakoztassunk minden eszközt a telepítés előtt. Erre azért van szükség, mert ha a rendszerünk telepítése után változtatunk a csatlakoztatott eszközökön, vagy megcseréljük a portokat, akkor a külső tárolóeszközök elnevezése (pl. /dev/sda, /dev/sdb stb.) megváltozik, és több helyen kell majd módosításokat eszközölnünk ahhoz, hogy minden megfelelően működjön.
Ha rendelkezünk a megfelelően felkészített ASUS routerrel, nincs más hátra, mint belekezdeni az otthoni szuperrouterünk kialakításába!
Az Asuswrt-Merlin telepítése
Ahogy korábban is említettük, az átdolgozott firmware nem fog óriási változásokat hozni az életünkbe, csupán növeli a lehetőségeink körét és fokozza a biztonságot, ráadásul könnyedén telepíthető (ugyanúgy feltölthető, mint a hivatalos firmware), és ha meggondoltuk magunkat, bármikor vissza is térhetünk az eredetihez.
Van azonban egy fontos előkészítési lépés, amelyre szeretnénk felhívni a figyelmet. Az új firmware feltöltése előtt gondoskodjunk arról, hogy az ASUS router a legújabb gyári firmware-t használja! Kizárólag akkor ütközhetünk problémákba, ha egy sokkal régebbi gyári verziót próbálunk frissíteni az Asuswrt-Merlinre.
Elsőként tehát keressük fel a routerünk webes adminfelületét, amely alapértelmezés szerint a router.asus.com
címen érhető el. Itt a belépés után a „Firmware Version” után található számra kattintva érhetjük el a firmware frissítéséhez szükséges oldalt.
![firmware-update-asus-router](https://g6.hu/wp-content/uploads/2021/01/firmware-update-asus-router.png)
Az itt megnyíló oldalon kattintsunk a „Check” gombra, és ha elérhető frissítés, telepítsük.
Ha ez megtörtént, vagy már alapból is a legújabb verziót használtuk, akkor nincs más hátra, mint letölteni a routerünknek megfelelő Merlin-firmware-t. A fájlok innen érhetők el: https://sourceforge.net/projects/asuswrt-merlin/files/
(A ZIP-fájlt természetesen a letöltése után ki kell csomagolni.)
Mielőtt belevágnánk a frissítésbe, érdemes biztonsági mentést készíteni a beállításainkról. Ezt a router Advanced Settings -> Adminstration -> Restore/Save/Upload Setting -> Save Setting menüpontja alatt lehet elvégezni.
Ha készen állunk a frissítésre, keressük fel a firmware frissítéséhez szükséges oldalt (lásd fent), és a „Manual Firmware Update” melletti „Upload” hivatkozásra kattintva töltsük fel az imént letöltött fájlt, és indítsuk el a frissítési folyamatot.
MEGJEGYZÉS: A művelet gyakorlatilag semmilyen kockázattal nem jár (kivéve azt a szerencsétlen esetet, ha pont a firmware-frissítés ideje alatt megy el az áram). Ha nem jó firmware-fájlt töltöttünk fel, azt is elég könnyen lehet orvosolni, illetve ha meggondoltuk magunkat, akkor a gyári firmware letöltésével visszaállhatunk a korábbi állapotra (lásd: https://www.asus.com/support/Download-Center/).
Ha mégis használhatatlan állapotba került volna a router a frissítés során, akkor sem kell pánikba esnünk, csak kövessük ennek a cikknek a lépéseit a helyreállítási módban végzett helyreállításhoz: https://www.asus.com/me-en/support/FAQ/1030652
Ha befejeződött a folyamat, máris bejelentkezhetünk a kicsit módosult adminfelületre. Ha sikeres volt a frissítés, akkor a fejlécben látni fogjuk Merlin süvegét:
![asuswrt-merlin-logo-admin](https://g6.hu/wp-content/uploads/2021/01/asuswrt-merlin-logo-admin.png)
A swap aktiválása
Mint minden tisztességes Linux-rendszer esetén, itt is szükségünk lesz egy swapra, azaz gyorsítótárfájlra ahhoz, hogy a telepített alkalmazásaink működhessenek. A firmware által biztosított rendszer ezt alapértelmezés szerint azért nem állítja be, mert a használata csak a csatlakoztatott USB-eszközzel együtt lehetséges, viszont magát a firmware-t telepíthetnénk csatlakoztatott tárhely nélkül is, ha csak a fokozott biztonsági funkciókra, a bővített lehetőségekre és a nagyobb sebességre és teljesítményre lenne szükségünk.
Éppen ezért a swap aktiválásához nekünk kell néhány lépést elvégeznünk.
MEGJEGYZÉS: A swap mérete ugyan a későbbiekben módosítható, ám érdemes előre gondolkozni, és a legtöbb internetes útmutató által javasolt 256 MB-os méret helyett kellő méretet megadni már a létrehozásakor. A legtöbb szolgáltatás ugyan megelégszik 512 MB-tal, néhány 1 vagy 2 GB-os méretűt igényel. Általánosságban véve elmondható, hogy érdemes 2 GB méretű swapot használni, ez ugyanis már a MariaDB telepítéséhez is elegendő, amennyiben teljes értékű, adatbázist is használó webszerverként szeretnénk használni a routerünket.
Lépjünk be a routerünkre SSH-val (alapértelmezés szerint a router.asus.com
címet és a 22-es portot kell használnunk), majd először is nézzük meg, milyen elnevezést kapott az általunk használt háttértár:
ls -l /tmp/mnt
Amennyiben több eszköz is csatlakoztatva van, válasszuk ki az általunk használni kívánt tárhelyet. Az alábbiakban a /dev/sda1 eszközt fogjuk használni, és egy 2 GB-os méretű swapfájlt hozunk létre.
dd if=/dev/zero of=/tmp/mnt/sda1/myswap.swp bs=1k count=2097152
mkswap /tmp/mnt/sda1/myswap.swp
swapon /tmp/mnt/sda1/myswap.swp
A fentiek elvégzése után a top
vagy a free
parancs kiadásával ellenőrizhetjük, hogy sikerült-e aktiválnunk a swapot. Ezzel még nem vagyunk teljesen készen, ugyanis a jelenlegi munkamenet során lehet, hogy van már swap, viszont a router újraindítása után ismét visszaáll a swapmentes környezet. Éppen ezért módosítanunk vagy létre kell hoznunk egy szkriptet, amely minden egyes indításkor beizzítja a gyorsítótárunkat.
nano /jffs/scripts/post-mount
Ha már létezik a fájl, akkor az alábbiak közül csak a második sort, ha nem létezik még a fájl, akkor mindkét sort bele kell másolnunk:
#!/bin/sh
swapon /tmp/mnt/sda1/myswap.swp
A módosításokat a CTRL + X billentyűparanccsal menthetjük, majd ki is léphetünk a szerkesztőből.
MEGJEGYZÉS: Ügyeljünk arra, hogy csak olyan eszközt használjunk a swaphoz, amely magától nem kapcsol ki egy bizonyos inaktivitási időköz után (pl. energiatakarékossági okokból).
Az amtm szkript használata
Az Asuswrt-Merlin egyik nagy előnye, hogy az alapvető felhasználói felület felturbózása, a teljesítmény és a biztonsági szint fokozása mellett egy teljesen új csomagkezelőt is elérhetővé tesz, amely az Entware névre hallgat. Ennek segítségével számos olyan csomagot telepíthetünk, amelyekkel Linux-rendszereken is találkozhatunk. A kényelmi funkciók közé tartozik azonban az amtm elnevezésű szkript is, amely számos olyan szolgáltatást tesz elérhetővé a routerünkön, amelyeket a telepítésüket követően a webes felhasználói felületen is konfigurálni tudunk. Ezek az alapvető szolgáltatások a következők:
- Diversion – a segítségével teljeskörűen letilthatjuk a reklámokat a hálózatunkon használt eszközökön
- Skynet – igen komoly biztonsági intézkedésekkel fokozza a tűzfal hatékonyságát, az IP-címek tiltásától kezdve az egyéni szabályok létrehozásáig
- FlexQoS – rugalmax QoS-szabályok
- FreshJR Adaptive QOS – (elavult)
- YazFi – továbbfejlesztett Wi-Fi-vendéghálózatok
- scribe – syslog-ng és logrotate
- x3mRouting – egyéni útválasztási szabályok
- unbound Manager – unbound DNS-kiszolgáló
- connmon – internetkapcsolat figyelése
- ntpMerlin – NTP-kiszolgáló
- scMerlin – szolgáltatások és szkriptek kezelése a webes felületről
- spdMerlin – speedtest
- uiDivStats – a Diversion által blokkolt domainek webes megjelenítése
- uiScribe – a scribe által létrehozott logok megjelenítése a webes felületen
- Stubby DNS – titkosított DNS-kérések (elavult)
- DNSCrypt – titkosított DNS-proxy
- Entware – csomagkezelő
- Pixelserv-tls – minimális HTTP-kiszolgáló a Diversionhöz
- USB disk check at boot – csatlakoztatott USB-eszközök ellenőrzése rendszerindításkor
- Format disk – lemezek formázása
További funkciók
- A router LED-jeinek vezérlése, illetve a LED-ek aktiválásának és inaktiválásának ütemezése
- Ütemezett újraindítás cron-feladattal
- Swapfájl létrehozása és kezelése
- amtm themes – amtm-témák
A használata a parancssoron keresztül történik, az amtm
parancs kiadásával. Ezt követően betűk és számok beírásával telepíthetjük, konfigurálhatjuk és távolíthatjuk el az egyes szolgáltatásokat és szkripteket.
![amtm-merlin](https://g6.hu/wp-content/uploads/2021/01/amtm-merlin.png)
Az NVRAM kiürítése
Ha elkezdünk számos alkalmazást, szolgáltatást és szkriptet telepíteni és futtatni, előbb vagy utóbb belefutunk az NVRAM méretkorlátaiba. Aggodalomra azonban semmi ok, ugyanis ebben a memóriában a konfigurációs paraméterek találhatók, és ezek közül számos olyan van, amely teljesen feleslegesen foglalja a helyet, mivel csak egy üres bejegyzés.
Mivel az NVRAM véges, ha pedig betelik, a szolgáltatások működése során hibákat tapasztalhatunk, érdemes már a rendszerindításkor eltávolítani belőle a felesleges elemeket.
Éppen ezért a már korábban is említett post-mount szkriptet fogjuk szerkeszteni, amelybe beírunk egy plusz sort.
nano /jffs/scripts/post-mount
Szúrjuk be a fájl végére a következő sort:
for line in `nvram show | grep =$ `; do var=${line%*=}; nvram unset $var; done;
A CTRL + X billentyűparanccsal mentsük, majd zárjuk be a fájlt. Ezt követően vagy indítsuk újra a routert a beállítás életbe léptetéséhez, vagy ez egyszer futtassuk manuálisan a fenti parancsot.
E-mailes értesítés firmware-frissítések elérhetővé válásakor
Az eredeti firmware egyik legbosszantóbb hiányossága, hogy csak akkor értesülünk az új firmware elérhetővé válásáról, ha bejelentkezünk az adminfelületre. Az Asuswrt-Merlin alapértelmezés szerint ugyanígy működik, azonban lehetőséget biztosít arra, hogy egy saját szkriptet futtassunk akkor, ha az automatikus firmware-ellenőrzés újabb verzió megjelenését észleli. Mi pedig ezt a lehetőséget arra használjuk fel, hogy e-mailes üzenetet küldjünk magunknak.
Az alábbi szkriptet használjuk ehhez, amelyben értelemszerűen a Gmailhez tartozó levelezőszerver adatait bármilyen SMTP-kiszolgálóra cserélhetjük, vagy éppen pushbullet-/pushover-üzenetet is küldhetünk magunknak. Gmail használata esetén mindenképpen alkalmazásjelszót használjunk!
nano /jffs/scripts/update-notification
#!/bin/sh
use_email="enabled" # enabled / disabled (default: disabled)
use_pushbullet="disabled" # enabled / disabled (default: disabled)
use_pushover="disabled" # enabled / disabled (default: disabled)
#Pushbullet/Pushover settings
pushbullet_token="" # Your access token here (https://docs.pushbullet.com/)
pushover_token="" # Your access token here (https://pushover.net/api)
pushover_username="" # Pushover User ID (the user/group key (not e-mail address often referred to as USER_KEY)
# email settings
SMTP="smtp.gmail.com"
PORT="465"
USERNAME=""
PASSWORD=""
# Mail Enveloppe
FROM_NAME="ASUS Router"
FROM_ADDRESS=""
TO_NAME=""
TO_ADDRESS=""
### Do not change below
# Retrieve version
TMPVERS=$(nvram get webs_state_info)
echo "$TMPVERS"
if [ $? -ne 0 ]; then
VERS=${TMPVERS:5:3}.${TMPVERS:8:10}
else
VERS=$TMPVERS
fi
ROUTER_IP=$(nvram get lan_ipaddr)
email_message () {
echo "From: \"$FROM_NAME\" <$FROM_ADDRESS>" > /tmp/mail.txt
echo "To: \"$TO_NAME\" <$TO_ADDRESS>" >> /tmp/mail.txt
echo "Subject: New router firmware notification" >> /tmp/mail.txt
echo "" >> /tmp/mail.txt
echo "New firmware version $VERS is now available for your router at $ROUTER_IP." >> /tmp/mail.txt
curl --url smtps://$SMTP:$PORT \
--mail-from "$FROM_ADDRESS" --mail-rcpt "$TO_ADDRESS" \
--upload-file /tmp/mail.txt \
--ssl-reqd \
--user "$USERNAME:$PASSWORD" --insecure
rm /tmp/mail.txt
}
pushover_message () {
curl -s \
--form-string "token=$pushover_token" \
--form-string "user=$pushover_username" \
--form-string "message=New firmware version $VERS is now available for your router at $ROUTER_IP." \
https://api.pushover.net/1/messages.json
}
pushbullet_message () {
text="New firmware version $VERS is now available for your router at $ROUTER_IP."
title="$USER@$HOSTNAME"
curl -s -u $pushbullet_token: -X POST https://api.pushbullet.com/v2/pushes --header 'Content-Type: application/json' --data-binary '{"type": "note", "title": "'"$title"'", "body": "'"$text"'"}' >/dev/null 2>&1
}
if [ $use_pushbullet = "enabled" ]; then
pushbullet_message
fi
if [ $use_pushover = "enabled" ]; then
pushover_message
fi
if [ $use_email = "enabled" ]; then
email_message
fi
A CTRL + X billentyűparanccsal mentsük, majd zárjuk be a fájlt. Ha ellenőrizni szeretnénk a működését, futtassuk manuálisan. Egyéb esetben pedig minden egyes új firmware megjelenésekor automatikusan aktiválódik majd.
Az Entware telepítése
Ahhoz, hogy bármilyen csomagot könnyedén telepíteni tudjunk a routeren, első körben az Entware csomagkezelőt kell elérhetővé tennünk. Ezt kétféleképpen tehetjük meg: vagy telepítjük az Entware-t az amtm-ből, vagy ugyaninnen telepítjük a Diversiont (ha szükségünk van a reklámok blokkolására).
A parancssorban adjuk ki a szkript parancsát:
amtm
Majd a telepítési lehetőségek közül válasszuk ki vagy az Entware-t, vagy a Diversiont.
![amtm-install-options](https://g6.hu/wp-content/uploads/2021/01/amtm-install-options.png)
A netdata telepítése
Ha már elérhető az Entware, a netdata telepítése gyerekjáték lesz, ugyanis nagyjából ugyanolyan játszi könnyedséggel lehet bármilyen démont elérhetővé tenni, mint bármilyen linuxos környezetben.
Elsőként is telepítsük a megfelelő csomagot:
opkg install netdata
Ezután pedig indítsuk el a szolgáltatást:
/opt/etc/init.d/S60netdata restart
Végül pedig nyissuk meg a webes felületet az élő monitorozás megkezédéshez a router.asus.com:19999 cím egy böngészőben történő felkeresésével.
![netdata-asus-router-19999](https://g6.hu/wp-content/uploads/2021/01/netdata-asus-router-19999.png)
A lighttpd telepítése
Következő lépésként telepítünk egy webszervert a routerre, amely PHP futtatására is alkalmas. Ha szeretnénk kívülről, az internet felől is elérhetővé tenni az oldalainkat, akkor a következő lépésben erre is sort kerítünk.
Elsőként is telepítsük a webszervert:
opkg install lighttpd
Majd állítsuk be a 81-es porton történő működést (a 80-as már a router saját webes adminfelülete által le van foglalva), és adjuk meg a megfelelő feltöltési mappát, ami eltér a szokványos linuxos elérési úttól:
sed -i 's/#server.port = 81/server.port = 81/g' "/opt/etc/lighttpd/lighttpd.conf"
sed -i „/server.upload-dirs*/cserver.upload-dirs = ( \”/opt/tmp\” )” „/opt/etc/lighttpd/lighttpd.conf”
Végül pedig indítsuk újra a szolgáltatást:
/opt/etc/init.d/S80lighttpd restart
Most már telepíthetjük a PHP-t is:
opkg install lighttpd-mod-fastcgi php7-fastcgi
Az engedélyezéséhez pedig az alábbi sorokat kell megadnunk a konfigurációjában:
cat >> /opt/etc/lighttpd/conf.d/30-fastcgi.conf << EOF
server.modules += ( "mod_fastcgi" )
fastcgi.server = ( ".php" =>
( "localhost" =>
( "socket" => "/tmp/php-fcgi.sock",
"bin-path" => "/opt/bin/php-fcgi",
"max-procs" => 1,
"bin-environment" =>
( "PHP_FCGI_CHILDREN" => "2",
"PHP_FCGI_MAX_REQUESTS" => "1000" )
)
)
)
EOF
Ha mindezt beírtuk, akkor egy ENTER billentyűt kell még nyomnunk az utolsó sornál. És jöhet még egy újraindítás:
/opt/etc/init.d/S80lighttpd restart
Mostantól a router.asus.com:81 címen bármilyen olyan weboldalt elérhetővé tehetünk, amit az /opt/share/www/ alatt tárolunk.
Weboldalak elérhetővé tétele az interneten
Routerünk most már konfigurálva van a webes szolgáltatás futtatására, azonban ezek az oldalak jelenleg csak a belső hálózaton érhetők el. Ahhoz, hogy az internetről is elérhetővé tegyük őket, először is a router DDNS (azaz dinamikus DNS) szolgáltatását kell bekapcsolnunk.
Ezt az Advanced Settings -> WAN -> DDNS alatt tehetjük meg. Az ASUS egy saját szolgáltatást is nyújt erre a célra .asuscomm.com végződéssel, amit bátran használhatunk, de a legördülő menüben másik szolgáltatót is kiválaszthatunk.
![asus-router-ddns-settings](https://g6.hu/wp-content/uploads/2021/01/asus-router-ddns-settings.png)
MEGJEGYZÉS: Amennyiben a Diversiont és a pixelserv-tls csomagot is telepíttetük, a 443-as port már foglalt lesz a routeren. Éppen ezért használjuk helyette a 444-es (vagy egy tetszőleges, általunk választott) portot. A kívülről jövő kérések mind a 443-as portot fogják lekérni, mi pedig a porttovábbítás során (lásd egy kicsit lejjebb) gondoskodunk majd arról, hogy a megfelelő belső portra legyenek átirányítva.
Ehhez létre kell hoznunk egy szkriptet a routeren, amely az iptables használatával először is megnyitja a fenti portokat.
nano /jffs/scripts/firewall-start
#!/bin/sh
iptables -I INPUT -p tcp --destination-port 81 -j ACCEPT
iptables -I INPUT -p tcp --destination-port 443 -j ACCEPT
A CTRL + X billentyűkombinációval mentsük a fájlt, majd tegyük futtathatóvá, és indítsuk is el:
chmod a+rx /jffs/scripts/firewall-start
/jffs/scripts/firewall-start
Most már csak a router webes adminfelületén kell beállítanunk a megfelelő porttovábbítást annak érdekében, hogy a kívülről érkező kérések eljussanak a webszerverünkhöz.
Ehhez az Advanced Settings -> WAN -> Virtual Server / Port Forwarding oldalt kell felkeresnünk, és az alábbi két szabályt létrehoznunk a routerünk IP-címével:
![asus-router-port-forwarding](https://g6.hu/wp-content/uploads/2021/01/asus-router-port-forwarding.png)
Ahhoz, hogy a 443-as porton tudjunk titkosított forgalmat bonyolítani, be kell szereznünk a HTTPS-hez szükséges tanúsítványt. Elméletileg meg lehetne oldani a Let’s Encrypt-tanúsítványok automatikus igénylését és megújítását is, viszont a routeren nem érhető el a certbot, így saját szkriptet kellene ehhez írnunk.
Szerencsére létezik másik szolgáltató is, amelyiknél ingyenesen, a webes varázslót követve pillanatok alatt beszerezhetünk egy tanúsítványt: https://app.zerossl.com/signup
Ha beszereztük a ZIP-fájlt a tanúsítványunkkal, a következő lépéseket követve helyezhetjük üzembe a lighttpd alatt.
- Először is le kell töltenünk a kapott ZIP-fájlt, majd egy új fájlt létrehozva össze kell másolnunk a privát kulcsot és a tanúsítványt. A végeredmény az alábbihoz hasonló lesz:
-----BEGIN RSA PRIVATE KEY----- [...] -----END RSA PRIVATE KEY----- -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE-----
- Ezt követően vagy feltöltjük a routerre az így létrejött fájlt és a ca_bundle.crt fájlt, vagy létre is hozhatjuk ezeket a fájlokat az /opt/etc/lighttpd alatt, és belemásolhatjuk a szükséges tartalmat.
mkdir certs cd certs nano router.pem
Másoljuk bele az előbb létrehozott fájl tartalmát (privát kulcs + tanúsítvány), majd CTRL + X.
nano ca_bundle.crt
Másoljuk bele az azonos nevű fájl tartalmát, majd CTRL + X.
- Utána pedig módosítsuk a lighttpd konfigurációját az /opt/etc/lighttpd/lighttpd.conf fájlban, és adjuk hozzá az alábbi sorokat, a saját DDNS-nevünk behelyettesítésével:
$SERVER["socket"] == ":443" { ssl.engine = "enable" ssl.pemfile = "/tmp/opt/etc/lighttpd/certs/router.pem" ssl.ca-file = "/tmp/opt/etc/lighttpd/certs/ca_bundle.crt" server.name = "DDNS-név.asuscomm.com" # enforce strong cypher ssl.use-sslv2 = "disable" ssl.cipher-list = "TLSv1+HIGH !SSLv2 RC4+MEDIUM !aNULL !eNULL !3DES @STRENG> }
Végül már csak egyetlen dolgot kell megtennünk a helyes működéshez, az összes HTTP-forgalmat át kell irányítanunk HTTPS-re. Ehhez a lighttpd konfigurációjához az alábbi sorokat kell hozzáadnunk:
$HTTP["scheme"] == "http" {
url.redirect = ("" => "https://${url.authority}${url.path}${qsa}")
}
A fájl mentése (CTRL + X) után még újra kell indítanunk a szolgáltatást:
/opt/etc/init.d/S80lighttpd restart
A Nextcloud telepítése
Első lépésként néhány csomagot kell feltelepítenünk:
opkg install bzip2 coreutils-stat lighttpd-mod-access lighttpd-mod-expire lighttpd-mod-setenv \
php7-cgi php7-cli php7-mod-ctype php7-mod-curl php7-mod-dom php7-mod-fileinfo \
php7-mod-filter php7-mod-gd php7-mod-iconv php7-mod-intl php7-mod-json \
php7-mod-mbstring php7-mod-mysqli php7-mod-openssl php7-mod-pcntl php7-mod-pdo \
php7-mod-pdo-mysql php7-mod-pdo-sqlite php7-mod-session php7-mod-simplexml \
php7-mod-sqlite3 php7-mod-xml php7-mod-xmlreader php7-mod-xmlwriter \
php7-mod-zip openssl-util lighttpd-mod-redirect php7-mod-opcache
Ezt követi a Nextcloud legújabb verziójának beszerzése és telepítése (az útmutató írásának pillanatában ez a 20.0.4-es verzió, de az aktuális verziót érdemes ellenőrizni a https://nextcloud.com/install/#instructions-server címen):
cd /opt/share/www
wget https://download.nextcloud.com/server/releases/nextcloud-20.0.4.tar.bz2 --no-check-certificate
bzip2 -cd nextcloud-20.0.4.tar.bz2 | tar -xv
rm ./nextcloud-20.0.4.tar.bz2
chown admin:root /opt/share/www/nextcloud/apps/*
Adjuk meg a Nextcloud elérhetőségét a lighttpd konfigurációs fájljában:
cat >> /opt/etc/lighttpd/lighttpd.conf << 'EOF'
$HTTP["url"] =~ "^/nextcloud/data/" {
url.access-deny = ("")
}
$HTTP["url"] =~ "^/nextcloud($|/)" {
dir-listing.activate = "disable"
}
url.redirect += ( "^/.well-known/caldav" => "/nextcloud/remote.php/dav" )
url.redirect += ( "^/.well-known/carddav" => "/nextcloud/remote.php/dav" )
EOF
A végén nyomjunk egy ENTER billentyűt. Majd növeljük meg a feltöltési és memóriahasználati korlátokat:
sed -i "/upload_max_filesize =*/cupload_max_filesize = 5G" "/opt/etc/php.ini"
sed -i "/post_max_size =*/cpost_max_size = 5G" "/opt/etc/php.ini"
sed -i "/memory_limit =*/cmemory_limit = 512M" "/opt/etc/php.ini"
És indítsuk újra a webes kiszolgálót:
/opt/etc/init.d/S80lighttpd restart
Most már elérhetjük az adminfelületet a router.asus.com:81/nextcloud címen, vagy akár a korábban konfigurált dinamikus DNS-címen keresztül is. Állítsunk be egy adminfelhasználót, és fejezzük be a telepítést.
A Nextcloud által alapértelmezés szerint elérhetővé tett képességeket itt lehet áttekinteni: https://docs.nextcloud.com/
Az elérhető bővítmények (appok) listája pedig itt található: https://apps.nextcloud.com/
Ahhoz, hogy biztonságossá tegyük a bejelentkezést, elengedhetetlenül fontos a kéttényezős hitelesítés engedélyezése. Több szolgáltató közül is választhatunk, de a leggyakoribb választás talán a Google Hitelesítő lehet. Ehhez egy 2FA TOTP-t kell engedélyeznünk az Apps -> Security menüpont alatt:
![2fa-provider-totp-nextcloud](https://g6.hu/wp-content/uploads/2021/01/2fa-provider-totp-nextcloud.png)
A kéttényezős hitelesítés beállításának lépéseit itt lehet megtekinteni: https://docs.nextcloud.com/server/15/user_manual/user_2fa.html
SSH-bejelentkezés felhasználónév és jelszó megadása nélkül (Windows)
Amennyiben az SSH-elérést szeretnénk interneten keresztül is elérhetővé tenni, illetve egyszerűen csak nem szeretnénk minden egyes csatlakozáskor felhasználónevet és jelszót megadni, érdemes áttérni a kulcsalapú hitelesítésre.
Először is be kell szereznünk a PuTTY és a PuTTYgen nevezetű alkalmazást (Windows rendszer használata esetén): https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
Majd létre kell hoznunk egy nyilvános/privát kulcspárt az Actions -> Generate kiválasztásával. (RSA, 2048 bit beállítás mellett.)
Ezt követően be kell lépnünk a router adminfelületére, és az Advanced Settings -> Administration -> System -> Service alatt az alábbi beállításokat kell megadnunk, illetve az Authorized Keys mezőjébe be kell másolnunk a nyilvános kulcs tartalmát:
![asuswrt-merlin-ssh-key-login](https://g6.hu/wp-content/uploads/2021/01/asuswrt-merlin-ssh-key-login.png)
MEGJEGYZÉS: Ha az internet felé is elérhetővé tesszük az SSH-bejelentkezést, akkor érdemes módosítani a 22-es portot is, mondjuk például 44-es portra.
Ezután mentenünk kell a privát kulcsot a PuTTYgenben (Save private key), jelszó (passphrase) nélkül. Létrejön egy .ppk fájl, ezt kell mentenünk valahová, majd importálni a PuTTY-ba. Indítsuk is el az utóbbi alkalmazást.
Az első menüben (Session) adjuk meg a router címét (router.asus.com), illetve a portot, ha az nem a 22-es.
A bal oldali listában válasszuk ki a Connection -> SSH -> Auth menüpontot. A Private key file for authentication alatt adjuk meg a fentiekben mentett .ppk fájlt.
A Connection -> Data menüpont Auto-login username mezőjébe írjuk be az admin felhasználói nevét. (Ugyanaz, amit SSH-s bejelentkezéskor megadunk.)
A Session menüponthoz visszatérve adjunk egy nevet a munkamenetnek, majd a Save parancsra kattintva mentsük. Ekkor meg kell jelennie az alatta lévő listában. Innentől kezdve erre az elemre duplán kattintva máris automatikusan bejelentkezünk a routerünkre SSH-n keresztül.
![putty-ssh-sessions](https://g6.hu/wp-content/uploads/2021/01/putty-ssh-sessions.png)
Amennyiben nem a PuTTY használatával szeretnénk bejelentkezni, hanem például androidos telefonunkról, akkor keresnünk kell először is egy kompatibilis appot. Ilyen például a JuiceSSH.
A PuTTYgen ablakában a betöltött .ppk mellett a Conversions -> Export OpenSSH key parancs kiválasztása után kapjuk meg a más alkalmazásokkal kompatibilis kulcsot, amelyet használhatunk a jelszó nélküli SSH-bejelentkezéshez.
![Chilly](https://g6.hu/wp-content/uploads/2020/08/chilly-profile.png)
Chilly 1997 óta foglalkozik webhelyek üzemeltetésével és programozással, valamint különböző kütyük kipróbálásával, és azóta folyamatosan nyomon követi a technikai újításokat. Elsődlegesen Linux-rendszerekkel dolgozik, de az évek során rengeteg tapasztalatra tett szert a Windows-gépek üzemeltetése terén is, hobbiszinten pedig az utóbbi időben egyre több időt tölt a Raspberry Pi módosítgatásával.
Mesterfokon beszél angolul, és műszaki szakfordítói vizsgával rendelkezik. Korábban sokáig újságíróként dolgozott nyomtatott és online magazinoknál.
Legutóbbi hozzászólások