FTP-server
FTP støttes også av den offisielle firmware frå Asus og kan også med Oleg sin FirmWare settast enkelt opp via web-grensesnittet. Her kjem litt meir beskrivelse av FTP-programvaren og korleis ein kan gjere meir avansert konfigurering av denne. For å få tilgong til FTP frå internett må ein åpne port 20 og 21 og NATe desse til Asus-ruteren sin lokale IP.
Programvaren inkluderer programmet stupid-ftpd som gjer det mulig å aksessere ein tilkobla USB-disk vha. FTP. Dette kan settast opp via det tradisjonelle web-grensesnittet mot ruteren. Avhengig av rettigheter får då brukerane tilgong til katalogane ftp_pub og ftp_priv på disken. Dersom ein vil gjere litt meir avanserte ting kan dette gjerast via Telnet mot ruteren. Konfigurasjon til stupid-ftpd er definert av fila /tmp/stupid-ftpd.conf. Problemet er at denne blir automatisk oppretta når stupid-ftpd blir starta. Det er difor ikkje nok å berre lagre ei egendefinert stupid-ftpd.conf-fil her, då den vil bli overskrevet neste gong stupid-ftpd blir starta. Ei løysning her er å lagre ei eiga stupid-ftpd.conf-fil ein annan stad, f.eks. under /usr/local/etc/stupid-ftpd, og erstatte /tmp/stupid-ftpd.conf-fila så snart denne vert oppretta. Dersom ein skal starte FTP-deamon automatisk i oppstarten av ruteren må ein legge inn kode i skriptet kalla post-boot.
Fyrst og fremst bør ein "enable" FTP i web-grensesnittet. I utgangspunktet skal all konfigurering av brukerar og liknande gjerast "manuelt", men for sikkerhets skyld bør ein absolutt "disable" tilgong for anonym brukar via web-grensesnittet! Det kan også vere greit å disable tilgong for admin-brukar og elles ikkje opprette nokon brukerar. På denne måten står ikkje FTP-serveren vidopen sjølv om kopieringa av vår egendefinerte stupid-ftpd.conf skulle feile.
Ein er så klar til å legge inn kommandoar i post-boot som kopierer den egendefinerte stupid-ftpd.conf til /tmp/ og som restartar stupid-ftpd. Eit problem er at det i oppstarten tek litt tid før USB-disken blir montert og før stupid-ftpd blir starta. Kopierer ein si eiga stupid-ftpd.conf til /tmp for tidlig risikerer ein at denne blir overskriven likevel. Ein må difor legge inn ein forsinkelse i post-boot. Ein kan vente til fila /tmp/stupid-ftpd.conf finnes, og då kan ein kopiere si egendefinerte conf-fil til /tmp og restarte stupid-ftpd. Følgande kode kan leggast til post-boot skriptet, dette ventar i opp til 30 sekund:
Code:
i=0
running=0
while [ $i -le 30 ]; do
if [ -e /tmp/stupid-ftpd.conf ] ; then
killall stupid-ftpd
cp /usr/local/etc/stupid-ftpd/stupid-ftpd.conf.aon /tmp/stupid-ftpd.conf
stupid-ftpd
break
fi
sleep 1
: $((i = $i + 1 ))
done
Eksempel på ei stupid-ftpd.conf fil vises nedenfor. Viktige ting her er "serverroot" som definerer rotkatalogen for ftp-serveren. Set ein denne til "/" vil ein faktisk kunne få tilgang til heile ruteren sitt filsystem via FTP! Det neste viktige er "user". Under er det definert ein brukar med brukernavn "boller" og passord "brus". Denne skal få tilgang til katalogen Musikk (denne katalogen er relativt "serverroot" som under er definert som rotkatalogen til USB-disken). Talet 3 definerer at denne brukaren kan logge seg på 3 samtidige sesjonar (sjå for øvrig "maxusers" som definerer det totale talet på samtidige brukerar på FTP-serveren). DM definerer rettighetene
Code:
mode=daemon
serverroot=/tmp/harddisk
changeroottype=real
motd=/tmp/stupid-ftpd.motd
byemsg=/tmp/stupid-ftpd.bye
banmsg=You have no permission
log=/tmp/stupid-ftpd.log
port=21
maxusers=3
login-timeout=120
timeout=240
user=boller brus /Musikk/ 3 DM
Brukarane defineres på følgande format: "user=brukernavn passord rotkatalog-relativt-severroot max-login rettigheter". Dei mulige rettigheterene er: A (admin / Read&Write&Erase), - (View), DM (Read Only) og DUM (Read&Write). Nokre eksempel er:
Anonym bruker : user=anonymous * // 0 A
Admin bruker : user=admin _DITT_ADMIN_PASSORD_ // 0 A
Privat bruker : user=god jul /ftp_pvt/privateuser/ 7 A
Vise bruker : user=god jul /ftp_pub/ 8 -
Lese bruker : user=god jul /ftp_pub/ 9 DM
Les/skriv-bruker : user=god jul /ftp_pub/ 10 DUM
Les/skriv/slett-bruker : user=god jul /ftp_pub/ 11 A
Samba
Samba (www.samba.org)gir mulighet for å koble USB-disk til ruteren og aksessere den frå ein lokal PC som ein nettverksdisk. Enkel støtte for Samba er inkludert i den siste firmware (1.8.1.7-3) men det står at: "the samba is totally unsupported, use on your own risk!" Eg har ikkje prøvd funksjonen så lenge, men foreløbig ser det ut til å virke greit. For å få til Samba-støtte må ein gjere dette:
- Definer et "host name" ved å velge menyen IP-config i webgrensesnittet til ruteren.
- Legg til dette namnet til fila /etc/hosts og sørg for at den er med i /usr/local/.files
Code:
echo /etc/hosts >> /usr/local/.files
- Samba konfigureres med fila etc/smb.conf
Code:
[global]
workgroup = WORKGROUP
guest account = nobody
security = share
browseable = yes
guest ok = yes
guest only = yes
log level = 1
max log size = 100
encrypt passwords = no
dns proxy = no
[share]
path = /tmp/harddisk/
[share$]
path = /tmp/harddisk/
writable = yes
force user = root
browseable = no
Det som er vist ovanfor er at det opprettes to nettverkskatalogar, ein med namn "share" med kun lesetilgong og ein skjult med namn "share$" som ein også kan skrive på. Begge peiker på rota av USB-disken og tilhøyrer arbeidsgruppa "WORKGROUP" (bør endres slik at den er det same som PC-en).
- Sørg for at smb.conf tas med i flash, dvs er med i fila /usr/local/.files:
Code:
echo /etc/smb.conf >> /usr/local/.files
- legg til /usr/sbin/smbd -D og /usr/sbin/nmbd -D i fila /usr/local/sbin/post-boot for å starte Samba med NetBIOS (for å kunne aksessere via namn - det definerte "host name") når ruteren startar. Dette kan gjerast slik:
Code:
echo "/usr/sbin/smbd -D" >> /usr/local/sbin/post-boot
echo "/usr/sbin/nmbd -D" >> /usr/local/sbin/post-boot
Web-server
Ruteren inkluderer ein webserver som kjører administrasjonssidene. I tillegg kan ein bruke busybox_httpd til å starte ein eigen webserver. Ei utfordring då er at port 80 allerede er brukt opp. Dersom ruteren står bak ein annan ruter/brannmur, f.eks. Nextgentel ADSL ruter, kan ein bruke denne til å rute frå port 80 til ein annan port som ein då kan bruke internt. Slik oppsettet blir beskrevet nedanfor blir ein web-server starta på Asus-ruteren som tek i mot forespørslar på port 8080. Netopia-ruteren frå Nextgentel blir satt opp til å rute alle forespørsler frå internett på port 80 til Asus-ruteren sin port 8080. Frå utsida av brannmuren kan ein då aksessere den nye webserveren uten å tenke på portnummer (f.eks. http://per.dyndns.org). Innafor brannmuren kjem ein til administrasjonssidene dersom ein berre bruker ruteren si lokale ipadresse (f.eks. http://10.0.0.3). For å få tilgang til mine websider innafrå må ein spesifisere port 8080 (f.eks. http://10.0.0.3:8080), eller ein kan sjølvsagt bruke den eksterne IP-adressa (kan finnast på sida http://www.whatismyip.com) slik at forespørselen går ut forbi brannmuren før den kjem inn igjen til Asus-ruteren.
For å få til aksess på navn, slik som "http://kongeside.homeip.net", i staden for IP-adresse kan ein opprette såkalt "dynamic DNS". Meir om dette i neste kapittel.
For små websider kan ein lagre dei direkte i ruteren, men pass på at størrelsen på flash-fila ikkje overstig 65536 byte!
- Opprett ein katalog under /usr/local der html-filene skal ligge, f.eks. /usr/local/etc/httpd/wwwroot.
- Filene kan leggast inn her ved å lagre dei på ein USB-disk, koble den til ruteren og kopiere dei frå /tmp/harddisk. Husk sjølvsagt flashfs save og flashfs commit til slutt.
- I tillegg må ein konfigurere aksessen til websidene vha. ei conf-fil. Denne kan sjå slik ut:
Code:
A:* # Allow from all IP
/adm:god:jul # Require user god, pwd jul on urls starting with /adm/
Ei slik fil tillet alle klientar å koble seg opp, men for å få tilgang til filene under katalog adm krevst brukernavn og passord. Konfigurasjonsfila kan lagrast som /usr/local/etc/httpd/min_httpd.conf. Sidan den er under /usr/local blir den lagra når ein nå kaller flashfs save og commit igjen.
- Til slutt må ein sørge for at busybox_httpd blir starta ved oppstart ved å legge inn følgande tekst som ei linje i fila /usr/local/sbin/post-boot:
Code:
busybox_httpd -p 8080 -r "Logg inn" -c /usr/local/etc/httpd/min_httpd.conf -h /usr/local/etc/httpd/wwwroot
Argument "-p" brukes for å definere portnummer. Argument -r brukes for å sette ein tekst for brukernavn-skjemaet ved begrensa tilgang. Argument -h brukes for å sette "home" eller rotkatalogen til webserveren.
For å få tilgong på port 80 og ikkje port 8080 utanfrå må følgande typisk gjerast i Netopia ADSL-ruteren, forutsatt at Asus-ruteren får IP-adresse 10.0.0.3:
- Input filter:
- Destination IP: 10.0.0.3
- Destination Port: 80
- NAT Server:
- External Service: www-http 80
- Server private adress: 10.0.0.3
- Protocol: TCP
- Internal Port Start: 8080
For store websider bør ein i staden lagre desse på USB-disken. Kommandoen som må lagrast i fila /usr/local/sbin/post-boot er ganske lik, berre at home-argumentet nå peikar på USB-disken som blir montert på /tmp/harddisk.
Code:
busybox_httpd -p 8080 -r "Logg inn" -c /usr/local/etc/httpd/min_httpd.conf -h /tmp/harddisk/wwwroot