Originally Posted by
zwenny
Bevor ihr meine Lösung allerdings in die Tat umsetzt, sollte sich einer das Ganze mal kritisch ansehen und vor allem Tipps geben
wie man die Sache sicherer gestalten kann. Der angelegte Benutzer ist ja ein vollwertiger Benutzer!
Nun, vorerst einmal Danke für deine Mühe - ich habe mir das Ganze einmal wie gewünscht etwas kritisch angesehen.
1.) Es gibt keinen wie auch immer gearteten Grund, nicht den eingebauten vsftpd-Server zu verwenden.
Im Gegenteil: Der Vsftpd im IPKG-Repo ist die Version 2.3.4-1
Seit FW r2624 im d-Branch (Kernel 2.4) wird auch die Version 2.3.4 verwendet.
Im RTN-Branch wird sogar die neuere Version 2.3.5 seit FW r3719 verwendet.
2.) Natürlich kann xinetd den vsftpd der FW genau gleich starten, lediglich der Pfad zum Server ist anders. Darüber hinaus bin ich von xinetd nicht überzeugt, Dienste können nur bei Bedarf gestartet, aber nicht mehr beendet werden. Wo soll dann der Vorteil liegen-unter normalen Umständen läuft ein Server nur wenn er auch wirklich gebraucht wird, also läuft letztendlich lediglich ein Dienst mehr als notwendig. Werden alle Dienste von xinetd gestartet, verbrauche ich mit xinetd nur mehr Speicher als vorher. Das macht höchstens Sinn, wenn man zwar viele Services haben will, aber nur sehr selten braucht. Dann erhebt sich die Frage, ob man nicht gleich mit WinSCP zugreift, dann brauche ich nur Dropbear. Das geht zwar etwas langsamer, aber wenn man es sowieso sehr selten braucht......
Als Linux-Spielerei ist es jedoch in Ordnung.
3.) Die Datei vsftpd.conf kann überall liegen, so z.Bspl. auch auf /opt/etc
Nachstehend das von mir verwendetet Startfile S06vsftpd in /opt/etc/init.d als Bspl.:
Code:
#! /bin/sh
#
# startfile for built in vsftpd, by newbiefan @ wl500g.info
# For Olegs & Ily's FW for Asus Routers
# store this script in /opt/etc/init.d if you've installed optware
# Prgmname=/full_path/Prgmname
prgmname="/usr/sbin/vsftpd"
shortname="vsftpd"
#configfile=/full_path/configfile
configfile="/opt/etc/vsftpd.conf"
#location of pid-file, if any, configure stop function of this script
#pidfile="/var/lock/vsftpd.pid"
###########################End of Script configuration###################
start() {
# Code here to start the program
${prgmname} ${configfile} &
logger -t $shortname "$prgmname started with config from $configfile"
return 0
}
stop() {
# Code here to stop the program and check it's dead
if [ -n "`pidof $shortname`" ]; then
killall $shortname
logger -t $shortname "$prgmname stopped"
fi
return 0
}
##########################start here##########################
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
logger -t $shortname "Restart of $prgmname, executed from $(whoami)"
stop
sleep 2
start
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
esac
sleep 1
exit
(whoami hat nicht jeder installiert...kann man weg lassen)
4.) Als Verbesserung für die vsftpd.conf folgende Zeilen hinzu fügen:
Code:
delay_failed_login=15
max_login_fails=2
Wenn jemand einen falschen Loginversuch durchführt, muss er 15 Sekunden warten. Das geht nur 2 x, dann antwortet ihm der Server nicht mehr.
Diese 2 Zeilen verderben Script-Kiddies und Hacker schnell den Spass. Natürlich sollte man den ganzen Server sowieso mit Iptables noch absichern (ip_recent).
5.) Ich habe mit der Verwendung der Standard-Passwd Datei erhebliche Sicherheitsbedenken-deshalb verwende ich eine eigene Password-Datei für vsftpd.
6.) Dein HowTo hat Fehler: So kann zwar ein Benutzer angelegt werden, aber nach einem Reboot sind die Benutzer wieder weg. Dazu musst du noch deine Passwd-Datei in die .files eintragen und danach ein flashfs save, flashfs commit, flashfs enable und ein reboot durchführen. Leider musst du das bei jeder Änderung eines Benutzers durchführen. Falls du die passwd-Datei auf z.Bspl. /opt/etc für vsftpd legst, kannst du eine Änderung viel leichter durchführen, dann brauchst du nicht immer die Änderungen in den Flash-Speicher schreiben.
LG
Newbiefan
P.S.: Es wäre schön, wenn du uns mitteilen würdest woran du bei der ursprünglichen Version gescheitert bist. Was genau ging nicht? War der Server überhaupt jemals in Betrieb?