Inhaltsverzeichnis

HowTo: TP-Link MR3020 als FTP-Server

Durch den Artikel „Frickel-Router“ in der c't, Ausgabe 6/2012, Seite 74 bin ich auf den wirklich sehr kleien Embedded Rechner MR3020 der Firma TP-Link aufmerksam geworden.

Man nehme:

Die OpenWRT Projektseite zum Umbau des TP-Link MR3020 findet sich hier.
Alle hier dokumentierten Veränderugen und Anpassungen des MR3020 basieren auf der sehr guten OpenWRT Dokumentation und dem nicht minder guten OpenWRT Wiki.

Austausch der Firmware

Netzwerkkonfiguration

Installation weiterer Pakete

FTP-Speichermedium Einbinden und Auswerfen

FTP-Server Konfiguration

Benutzer anlegen

add_ftp_user.sh
#!/bin/sh
 
#set -e
#set -x
 
[ $# -ne 1 ] && { echo "$0 user"; exit 1; }
 
P_FILE="/etc/passwd"
G_FILE="/etc/group"
USER="$1"
#GROUP="$2"
#GROUP="pureftp"
 
echo "Add user \"$USER\""
echo -n "Check if user or usergroup already exsist ..."
 grep -q -e "^$USER:" $G_FILE && echo "UserGroup already exsists!" && exit 1
 grep -q -e "^$USER:" $P_FILE && echo "User already exists!" && exit 1
echo "OK"
 
# look for next free UID ...
for UID in $(seq 500 1000)
  do
    grep -q -e "$UID" $P_FILE || break
  done
[ $GID -eq 1000 ] && exit 1
echo "New GID for user \"$USER\" is: \"$GID\""
 
echo "$USER:x:$GID:xxxxxxxxx,xxxxxx" >> $G_FILE
echo "$USER:!:$UID:$GID:$USER:/home/$USER:/bin/ash" >> $P_FILE
 
echo -n "add new user \"$USER\" to pure-ftp user group ... "
  TMP=`grep -i "pureftp" $G_FILE`
  LINE="$TMP,$USER"
  echo "Line: $LINE"
  sed '/pureftp/d' $G_FILE > tmp.txt
  echo "$LINE" >> tmp.txt
  mv tmp.txt $G_FILE
echo "done"
 
echo -n "create \"$USER\" home directory ..."
 mkdir -p "/home/$USER"
 chown $USER:$USER "/home/$USER"
 chmod 755 "/home/$USER"
echo "done"
 
echo -n "create \"$USER\" ftp directory ..."
 mkdir -p /ftp/$USER
 chown $USER:$USER "/ftp/$USER"
 chmod 770 "/ftp/$USER"
echo "done"
 
#echo "Give system user password for user: \"$USER\"..." 
#passwd $USER
 
echo "Give pure-ftp password for user \"$USER\" to pure-ftpd db"
pure-pw useradd $USER -u $USER -D /ftp 
echo "make db..."
pure-pw mkdb

Debug Konsole

Sollte einmal etwas bei der Konfiguration schief gegangen sein bietet der MR3020 noch die Möglichkeit über eine serielle Konsole direkten Kontakt zum System aufzunehmen. Da mein Notebook über keine klassische RS232 Schnittstelle mehr verfügt habe ich auf ein TTL-232R-3V3 USB-Serial Konverter Kabel mit FTDI FT232R Chip z.B. von Watterott für ca. 18 EUR zurückgegriffen. Mit diesem lässt sich sehr einfach eine Verbindung über die Debug-Schnittstelle zwischen PC und MR3020 herstellen. Die Pinbelegung findet man in der OpenWRT Dokumentation bzw. im OpenWRT Wiki. Bei dem o.a. Adapterkabel ist keine weitere Beschaltung durch Pull-up/down Widerstände o.ä. notwendig. Es funktionert „out of the box“
Die folgenden Bilder zeigen Besonderheiten die beim Öffnen des Gehäuses zu beachten sind ;-)
Die 4-polige Stiftleiste habe ich eingelöte - sie gehört nicht zum Lieferumfang.

Gehäuse mit Markierungen für die Positionen der Kunststoffhaken geöffnetes Gehäuse mit Markierungen für die Positionen der Verklebung