This is an old revision of the document!
1st little steps
This is a beginners step-by-step guide on how can you enhance your DNS-323 box with fun_plug tweaking.
This guide supposes you use Unix/Linux desktop (altough, with very small effort it is usable for windows users as well, if using putty ssh/telnet application) with IP address 10.10.10.150.
It is assumed that your NAS device is plugged into home network 10.10.10.0/24, having DHCP server turned on.
It is assumed that your NAS device has gotten the 10.10.10.1 IP address from DHCP server (later this address will be changed to 10.10.10.123, or whatever by your choice).
Don't forget to substitute all IP addresses and passwords mentioned below to your environment.
Step 0.(optional) Clean from previous fun_plug
- Attach shared root folder, and delete files ffp.log, fun_plug and folder ffp.
- Alternatively you can telnet or ssh to nas, if you can.
# cd /mnt/HD_a2 # rm -r ffp # rm ffp.log # rm fun_plug # reboot
Step 1. HW reset
- Turn the device on and wait for leds constantly glowing. Then push thin wire to reset hole, hold for at least 10s, and release the wire.
- Wait for leds constantly glowing again.
- Check what IP address is assigned to DNS-323 (read it from your DHCP server, or try ping through DHCP range).
- Put the DHCP assigned IP address into browser (assumed http://10.10.10.1)
Step 2. The very first init
- Login (user:'admin', pwd:'')
- Menu Setup/Wizard/, [Run Wizard]
- [Next]
- Enter admin password: 'adminpwd', [Next]
- Enter timezone +1, [Next]
- Switch to Static IP and fill with '10.10.10.123' address, [Next]
- Name 'joesnas', [Next]
- [Completed]
- Wait 1-2 minutes, until browser reloads with new IP address to login window.
Step 3. Prepare Ftp server for FunPlug
- Login to browser page
http://10.10.10.123, user:'admin', password:'adminpwd' - Menu Advanced/UserGroups:
User Name: 'joe'
password: 'joepwd'
[Add] - Menu Advanced/FTP Server:
User: 'joe'
Folder: 'Root' checked
Permission: 'R/W Read/Write'
[Add], - Client language: (choose what best fits to your country; in doubts use Unicode),
[Apply] - [Start FTP Server]
Step 4. Install FunPlug with Telnet enabled
See details at http://wiki.dns323.info/howto:fun_plug (chapter Transfer using FTP)
- In your linux desktop, make folder fp and cd to fp
$ mkdir fp; cd fp
- Download http://www.inreto.de/dns323/fun-plug/0.5/fun_plug, http://www.inreto.de/dns323/fun-plug/0.5/fun_plug.tgz
$ wget http://www.inreto.de/dns323/fun-plug/0.5/fun_plug ; chmod 777 fun_plug $ wget http://www.inreto.de/dns323/fun-plug/0.5/fun_plug.tgz ; chmod 777 fun_plug.tgz
- In fp folder, use FTP and put files into root folder
$ ftp 10.10.10.123 Name (10.10.10.123): joe 331 User joe OK. Password required Password: joepwd ftp> cd Volume_1 ftp> bin ftp> mput fun* mput fun_plug? y mput fun_plug.tgz? y ftp> chmod 777 fun_plug ftp> bye
- Login to browser page
http://10.10.10.123, user:'admin', password:'adminpwd' - Menu Tools/System, button [Restart]
- Wait about 1-2 minutes after leds are constantly glowing again (time taken by fun_plug first installing)
Step 5. Enable SSH, disable Telnet
See details at http://nas-tweaks.net/CH3SNAS:Tutorials/fun_plug
- Telnet to 10.10.10.123
- Prepare root login
/ # pwconv / # passwd (enter 'adminpwd' as mentioned before) / # usermod -s /ffp/bin/sh root / # store-passwd.sh
- Activate ssh
/ # chmod a+x /ffp/start/sshd.sh / # sh /ffp/start/sshd.sh start
- Use ssh to connect from your machine (Linux assumed, but putty is possible also for Windows)
$ ssh -l root 10.10.10.123 root@10.10.10.123's password: 'adminpwd' root@joes_nas:~#
- Deactivate telnet
root@joes_nas:~# /ffp/start/telnetd.sh stop root@joes_nas:~# chmod -x /ffp/start/telnetd.sh
Step 6. Install repository for local use
See at http://nas-tweaks.net/CH3SNAS:Tutorials/ffp-packages See at http://ffp.wolf-u.li/additional/
$ ssh -l root 10.10.10.123 cd /ffp/ mkdir pkg ; cd pkg ; rsync -av --delete inreto.de::dns323/fun-plug/0.5/packages . rsync -av --delete wolf-u.li::ffp/additional . rsync -av --delete inreto.de::dns323/fun-plug/0.5/extra-packages .
Step 7. Install MidnightCommander
# funpkg -i /mnt/HD_a2/ffp/pkg/additional/app-misc/mc-*.tgz
Step 8. Install NTP Time synchronisation
See a complete Tutorial at http://nas-tweaks.net/CH3SNAS:Tutorials/ntp See at http://wiki.dns323.info/howto:ffp (chapter NTP Network Time Protocol)
# cd /ffp/etc # cp examples/ntp.conf . # chmod a+x /ffp/start/ntpd.sh # sh /ffp/start/ntpd.sh start # ntpq -p
Fix: HDD stand by issue
It is recommended to change drift file path in /ffp/start/ntpd.sh file to /tmp/ntp.drift. Otherwise drive won't go to stand by anymore. @yozik04
Step 9. Install Lighttpd web server
See a complete Tutorial at http://nas-tweaks.net/CH3SNAS:Tutorials/lighttpd See at http://wiki.dns323.info/howto:lighttpd_php (chapter Easy Ways )
See at http://wiki.dns323.info/howto:ffp (chapter Lighttpd Web Server)
- Prepare www store
# cd /mnt/HD_a2 # mkdir -p www/logs www/pages # echo "<html> <head><title></title></head>" > /mnt/HD_a2/www/pages/index.html # echo "<body> Lighttpd is OK and running </body> </html>" >> /mnt/HD_a2/www/pages/index.html
- Prepare server
# cd /ffp/etc # cp examples/lighttpd.conf /ffp/etc/lighttpd.conf # chmod a+x /ffp/start/lighttpd.sh
- Change the user and group the daemon will run as (optional, more secure)
# groupadd www-data # useradd -g www-data www-data # sed -i s/#server.username.*/'server.username = "www-data"'/ /ffp/etc/lighttpd.conf # sed -i s/#server.groupname.*/'server.groupname = "www-data"'/ /ffp/etc/lighttpd.conf # chown root:www-data /mnt/HD_a2/www/logs/ # chmod 774 /mnt/HD_a2/www/logs/
- Start webserver
# sh /ffp/start/lighttpd.sh start
- Test webserver
Navigate browser to http://10.10.10.123:8080 and read the page
Step 10. Add PHP packages into to Lighttpd
See a complete Tutorial at http://nas-tweaks.net/CH3SNAS:Tutorials/php See at http://forum.dsmg600.info/viewtopic.php?id=3466
- Install PHP
# funpkg -i /ffp/pkg/additional/dev-lang/php-*.tgz # funpkg -i /ffp/pkg/additional/net-misc/curl-*.tgz
- Prepare webserver for PHP
# cp /ffp/etc/examples/lighttpd.conf-with-php /ffp/etc/lighttpd.conf # sed -i s/#server.username.*/'server.username = "www-data"'/ /ffp/etc/lighttpd.conf # sed -i s/#server.groupname.*/'server.groupname = "www-data"'/ /ffp/etc/lighttpd.conf # cp /ffp/etc/examples/php.ini-dist /ffp/etc/php.ini # echo "<? phpinfo(); ?>" > /mnt/HD_a2/www/pages/a.php # sh /ffp/start/lighttpd.sh restart
- Test PHP in webserver
Navigate browser to http://10.10.10.123:8080/a.php and read the page
Step 11. Add MySQL packages into to Lighttpd
See a complete Tutorial at http://nas-tweaks.net/CH3SNAS:Tutorials/Mysql See at http://forum.dsmg600.info/viewtopic.php?id=3466
- Install MySql
# cd /mnt/HD_a2/ffp/pkg # wget http://81.216.140.39/dns-323/mysql_and_php/mysql-5.1.28-rc-1.tgz # funpkg -i mysql-5.1.28-rc-1.tgz
- Prepare PHP for MySQL
# echo extension=mysql.so >> /ffp/etc/php.ini # echo extension=pdo.so >> /ffp/etc/php.ini # echo extension=pdo_mysql.so >> /ffp/etc/php.ini # vi /ffp/etc/php.ini
comment extension dir line
;extension_dir = "./"
and below that, add extension dir with path /ffp/lib/php/extensions/no-debug-non-zts-20060613/
extension_dir = "/ffp/lib/php/extensions/no-debug-non-zts-20060613/"
- Prepare MySQL. Be careful, initial password setting is possible only at the first time
# cp /ffp/etc/examples/my.cnf /ffp/etc/. # sh /ffp/start/mysqld.sh start # mysql_secure_installation # mysql_install_db
- Test MySQL local connection
# /ffp/bin/mysql -uroot -ptoor mysql> show databases; mysql> use mysql; mysql> show tables; mysql> select host, user, password from user;
- Test MySQL presence in lighttpd server
# sh /ffp/start/lighttpd.sh restart
Navigate browser to http://10.10.10.123:8080/a.php and see mysql section at the page
Step 12. Allow remote connection to MySql
See http://nas-tweaks.net/96/installation-and-configuration-of-mysql-on-fonz-fun_plug/#Allowing_external_access
See http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html
See http://forums.mysql.com/read.php?108,62926,199511
- Allow user 'root' to connect remotely, for instance to administrate MySQL with graphical tools (SQLYog mysqladmin)
# /ffp/bin/mysql -uroot -ptoor mysql> GRANT ALL ON *.* TO root@'10.10.10.150'IDENTIFIED BY 'toor' ; mysql> FLUSH PRIVILEGES;
- Add new user with strictly defined rights
# /ffp/bin/mysql -uroot -ptoor mysql> INSERT INTO mysql.user ( HOST, USER, PASSWORD, select_priv, insert_priv, update_priv, delete_priv, create_priv, drop_priv, reload_priv, shutdown_priv, process_priv, file_priv, grant_priv, references_priv, index_priv, alter_priv, show_db_priv, super_priv, create_tmp_table_priv, lock_tables_priv, execute_priv, repl_slave_priv, repl_client_priv, create_view_priv, show_view_priv, create_routine_priv, alter_routine_priv, create_user_priv, event_priv, trigger_priv ) VALUES ( '%', 'john', PASSWORD('johnpwd'), 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y' ); mysql> FLUSH PRIVILEGES;
Command allows user 'John' to login with password 'johnpwd' from any IP ('%'), and do defined activities (e.g. all, in this case).
This command is just an example, DO NOT USE IT IN PRODUCTION ENVIRONMENT - IT IS TOO VULNERABLE !!! First, let 'Y' only with parameters you really need.
Or better, forget about it, and connect DB with SqlYog software, where is better command understanding in its GUI.