1. Introduction
cat /proc/cpuinfo
///
Processor : Marvell PJ4Bv7 Processor rev 1 (v7l)
///
2. DNS server
2.1. screenshots
2.2. config files
cat /volume1/@appstore/DNSServer/named/etc/named.conf
// This is the primary configuration file for the BIND DNS server named.
//
// Please read /usr/share/doc/bind9/README.Debian.gz for information on the
// structure of BIND configuration files in Debian, *BEFORE* you customize
// this configuration file.
//
// If you are just adding zones, please do that in /etc/zone/zone.load.conf
//include "/etc/default/named.default-zones.conf";
include "/etc/conf/named.options.conf";
include "/etc/conf/named.log.conf";
include "/etc/conf/named.rndc.conf";
include "/etc/conf/named.key.conf";
include "/etc/zone/zone.load.conf";
include "rndc.key";
vi /volume1/@appstore/DNSServer/named/etc/zone/zone.load.conf
include "/etc/zone/data/d01.net";
include "/etc/zone/data/1.2.10.in-addr.arpa";
vi /volume1/@appstore/DNSServer/named/etc/zone/data/d01.net
zone "d01.net" {
type master;
file "/etc/zone/master/d01.net";
allow-transfer {any;};
allow-query {any;};
vi /volume1/@appstore/DNSServer/named/etc/zone/master/d01.net
$ORIGIN .
$TTL 38400 ; 10 hours 40 minutes
d01.net. IN SOA localhost. admin.d01.net. (
1356562241
10800
3600
604800
38400
)
d01.net. NS localhost.
$ORIGIN d01.net.
nas CNAME nas010
router CNAME rtr001
acp031 A 10.2.1.31
acp032 A 10.2.1.32
cam161 A 10.2.1.161
cam162 A 10.2.1.162
cam163 A 10.2.1.163
cam164 A 10.2.1.164
cam165 A 10.2.1.165
cam166 A 10.2.1.166
cam167 A 10.2.1.167
cam168 A 10.2.1.168
cam169 A 10.2.1.169
cam170 A 10.2.1.170
mmc141 A 10.2.1.141
mmc142 A 10.2.1.142
mmc143 A 10.2.1.143
nas010 A 10.2.1.10
nas199 A 10.2.1.199
prt002 A 10.2.10.2
prt069 A 10.2.1.69
rtr001 A 10.2.1.1
son091 A 10.2.1.91
son092 A 10.2.1.92
son093 A 10.2.1.93
son094 A 10.2.1.94
son095 A 10.2.1.95
son096 A 10.2.1.96
son097 A 10.2.1.97
srv012 A 10.2.1.12
vi /volume1/@appstore/DNSServer/named/etc/zone/data/1.2.10.in-addr.arpa
zone "1.2.10.in-addr.arpa" {
type master;
file "/etc/zone/master/1.2.10.in-addr.arpa";
allow-transfer {any;};
allow-query {any;};
vi /volume1/@appstore/DNSServer/named/etc/zone/master/1.2.10.in-addr.arpa
$ORIGIN .
$TTL 86400
1.2.10.in-addr.arpa. IN SOA localhost. admin.d01.net. (
5
43200
180
1209600
10800
)
$ORIGIN 1.2.10.in-addr.arpa.
NS localhost.
32.1.2.10.in-addr.arpa. PTR acp032.d01.net.
31.1.2.10.in-addr.arpa. PTR acp031.d01.net.
cat /volume1/@appstore/DNSServer/named/etc/conf/named.options.resolution.conf
allow-recursion {any;};
forwarders {8.8.8.8;};
forward first;
2.3. usefull programs
/volume1/@appstore/DNSServer/bin/dig
/volume1/@appstore/DNSServer/bin/nsupdate
2.4. startup script
/volume1/@appstore/DNSServer/script/reload.sh
3. DHCP server
The build-in DHCP server is based on dnsmasq. Nothing wrong with dnsmasq, but it could not do what i want:
disable all unknown macaddresses and allow only the ones i have defined in a so called whitelist.
3.1. disable dnsmasq
cp /etc/rc.network /etc/rc.network-org
sed -i s~"dnsmasq --user=root"~"dnsmasq --version --user=root"~ /etc/rc.network
3.2. install package
ipkg install dhcp
3.3. config files
mkdir /volume1/etc/dhcp
vi /volume1/etc/dhcp/dhcpd.conf
#
ddns-update-style ad-hoc;
default-lease-time 86400;
#log-facility local7;
option domain-name "d01.net";
option domain-name-servers 10.2.1.10;
#option netbios-name-servers 10.2.1.10;
filename "pxelinux.0";
shared-network "zone-10.2"
{
subnet 10.2.1.0 netmask 255.255.255.0
{
option routers 10.2.1.1;
next-server 10.2.1.102;
pool {
range 10.2.1.101 10.2.1.199;
allow known-clients;
deny unknown-clients;
}
}
subnet 13.2.1.0 netmask 255.255.255.0
{
next-server 13.2.1.102;
option domain-name-servers 127.0.0.1;
option routers 127.0.0.1;
pool {
range 13.2.1.101 13.2.1.199;
allow unknown-clients;
deny known-clients;
}
}
}
include "/volume1/etc/dhcp/dhcpd-hosts.conf";
cat /volume1/etc/dhcp/dhcpd-hosts.conf
# tab acer android-f75721246a5c6e2d
host tab081 {
option host-name tab081;
hardware ethernet d0:e7:82:14:37:e1;
}
# buro
host acp031 {
option host-name acp031;
hardware ethernet 64:70:02:3C:B2:96;
fixed-address 10.2.1.31;
}
vi /volume1/etc/dhcp/white.mac
# dhcp pool
tab081 ; dhcp ; d0:e7:82:14:37:e1 ; tab acer android-f75721246a5c6e2d
# acp
acp031 ; 10.2.1.31 ; 64:70:02:3C:B2:96 ; buro
mkdir /volume1/bin
vi /volume1/bin/make-dhcpd-hosts
#!/bin/sh
# 20may2014: initial version
set -e
tmpfile="/tmp/$(basename $0).tmp"
inpfile="/volume1/etc/dhcp/white.mac"
outfile="/volume1/etc/dhcp/dhcpd-hosts.conf"
> ${outfile}
cat ${inpfile} | grep -v '#' | awk 'NF' > ${tmpfile}
while read lline
do {
# echo ${lline}
pwsname="$(echo ${lline} | awk -F';' '{print $1}' | sed 's/ *$//' | sed 's/^ *//')"
ipaddr="$(echo ${lline} | awk -F';' '{print $2}' | sed 's/ *$//' | sed 's/^ *//')"
macaddr="$(echo ${lline} | awk -F';' '{print $3}' | sed 's/ *$//' | sed 's/^ *//')"
comment="$(echo ${lline} | awk -F';' '{print $4}' | sed 's/ *$//' | sed 's/^ *//')"
echo "# ${comment}" >> ${outfile}
echo "host ${pwsname} {" >> ${outfile}
echo " option host-name ${pwsname};" >> ${outfile}
echo " hardware ethernet ${macaddr};" >> ${outfile}
if test "${ipaddr}" = "dhcp"
then :
else echo " fixed-address ${ipaddr};" >> ${outfile}
fi
echo "}" >> ${outfile}
}
done < ${tmpfile}
# cleanup
rm ${tmpfile}
exit 0
3.4. lease file
cat /opt/etc/dhcpd.leases
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-4.1-ESV-R2
lease 10.2.1.101 {
starts 2 2014/05/20 22:05:34;
ends 3 2014/05/21 22:05:34;
tstp 3 2014/05/21 22:05:34;
cltt 2 2014/05/20 22:05:34;
binding state free;
hardware ethernet 08:00:27:00:02:08;
uid "\001\010\000'\000\002\010";
}
lease 10.2.1.183 {
starts 6 2014/05/24 11:02:29;
ends 6 2014/05/24 11:54:08;
tstp 6 2014/05/24 11:54:08;
cltt 6 2014/05/24 11:02:29;
binding state free;
hardware ethernet 00:1e:65:7e:63:02;
uid "\001\000\036e~c\002";
}
lease 10.2.1.184 {
starts 6 2014/05/24 09:48:13;
ends 0 2014/05/25 09:48:13;
tstp 0 2014/05/25 09:48:13;
cltt 6 2014/05/24 09:48:13;
binding state active;
next binding state free;
hardware ethernet 68:a8:6d:22:7a:92;
uid "\001h\250m\"z\222";
client-hostname "Jans-MBP";
}
lease 10.2.1.140 {
starts 6 2014/05/24 15:24:22;
ends 0 2014/05/25 15:24:22;
cltt 6 2014/05/24 15:24:22;
binding state active;
next binding state free;
hardware ethernet 78:d6:f0:b0:0b:c8;
uid "\001x\326\360\260\013\310";
client-hostname "android-f5432812de86aab7";
}
lease 10.2.1.178 {
starts 6 2014/05/24 18:56:56;
ends 0 2014/05/25 18:56:56;
cltt 6 2014/05/24 18:56:56;
binding state active;
next binding state free;
hardware ethernet d0:e7:82:14:37:e1;
client-hostname "android-f75721246a5c6e2d";
}
lease 10.2.1.182 {
starts 6 2014/05/24 20:48:10;
ends 0 2014/05/25 20:48:10;
cltt 6 2014/05/24 20:48:10;
binding state active;
next binding state free;
hardware ethernet 8c:77:12:5f:5e:96;
uid "\001\214w\022_^\226";
client-hostname "android-4a23c26bd8599e86";
}
lease 13.2.1.101 {
starts 2 2014/05/20 21:57:06;
ends 2 2014/05/20 22:02:00;
tstp 2 2014/05/20 22:02:00;
cltt 2 2014/05/20 21:57:06;
binding state free;
hardware ethernet 08:00:27:00:01:20;
uid "\001\010\000'\000\001 ";
}
lease 13.2.1.102 {
starts 2 2014/05/20 22:04:02;
ends 2 2014/05/20 22:04:58;
tstp 2 2014/05/20 22:04:58;
cltt 2 2014/05/20 22:04:02;
binding state free;
hardware ethernet 08:00:27:00:02:08;
}
lease 13.2.1.104 {
starts 3 2014/05/21 17:58:05;
ends 3 2014/05/21 17:59:27;
tstp 3 2014/05/21 17:59:27;
cltt 3 2014/05/21 17:58:05;
binding state free;
hardware ethernet 00:1e:65:7e:63:02;
uid "\001\000\036e~c\002";
}
lease 13.2.1.105 {
starts 3 2014/05/21 18:01:25;
ends 3 2014/05/21 18:02:28;
tstp 3 2014/05/21 18:02:28;
cltt 3 2014/05/21 18:01:25;
binding state free;
hardware ethernet 68:a8:6d:22:7a:92;
uid "\001h\250m\"z\222";
}
lease 13.2.1.107 {
starts 3 2014/05/21 22:09:03;
ends 3 2014/05/21 22:10:48;
tstp 3 2014/05/21 22:10:48;
cltt 3 2014/05/21 22:09:03;
binding state free;
hardware ethernet 00:1e:37:f4:17:40;
}
lease 13.2.1.108 {
starts 4 2014/05/22 12:09:53;
ends 5 2014/05/23 12:09:53;
tstp 5 2014/05/23 12:09:53;
cltt 4 2014/05/22 12:09:53;
binding state free;
hardware ethernet 08:00:27:00:01:29;
}
lease 13.2.1.106 {
starts 6 2014/05/24 06:31:16;
ends 0 2014/05/25 06:31:16;
tstp 0 2014/05/25 06:31:16;
cltt 6 2014/05/24 06:31:16;
binding state active;
next binding state free;
hardware ethernet 5c:f8:a1:b9:99:84;
uid "\001\\\370\241\271\231\204";
client-hostname "android-65c8c4adfaac1f08";
}
lease 13.2.1.103 {
starts 6 2014/05/24 08:43:05;
ends 0 2014/05/25 08:43:05;
tstp 0 2014/05/25 08:43:05;
cltt 6 2014/05/24 08:43:05;
binding state active;
next binding state free;
hardware ethernet 80:1f:02:e4:55:0b;
uid "\001\200\037\002\344U\013";
}
server-duid "\000\001\000\001\033\016\214\004\000\0212-'\235";
4. HTTP server
4.1. change default background of the main page
/usr/syno/synoman/webman/resources/images/default_wallpaper/01.jpg
4.2. document root
/var/services/web/ -> /volume1/web/
4.3. aliases
vi /etc/httpd/sites-enabled-user/httpd-vhost.conf-user
Alias /music /volume1/music
<Directory "/volume1/music">
Options Indexes MultiViews FollowSymlinks
AllowOverride none
Order allow,deny
Allow from all
</Directory>
4.4. service restart
/usr/syno/sbin/synoservicecfg --restart httpd-user
5. MYSQL server
mysqlrootpasswd="Passw0rd"
mysqladmin -u"root" password "${mysqlrootpasswd}" >/dev/null 2>&1 || true
mysql -u"root" -p"${mysqlrootpasswd}" -e"grant all privileges on *.* to 'root'@'%' identified by '${mysqlrootpasswd}';"
mysql -u"root" -p"${mysqlrootpasswd}" -e"grant all privileges on *.* to 'root'@'127.0.0.1' identified by '${mysqlrootpasswd}';"
mysql -u"root" -p"${mysqlrootpasswd}" -e"grant all privileges on *.* to 'root'@'localhost' identified by '${mysqlrootpasswd}';"
mysql -u"root" -p"${mysqlrootpasswd}" -e"select user, host, password from mysql.user;"
+------+-----------+-------------------------------------------+
| user | host | password |
+------+-----------+-------------------------------------------+
| root | % | *DDFB542AA0BD1D251995D81AEBEB96DEEAD1132F |
| root | localhost | *DDFB542AA0BD1D251995D81AEBEB96DEEAD1132F |
| | localhost | |
| | nas010 | |
| root | 127.0.0.1 | *DDFB542AA0BD1D251995D81AEBEB96DEEAD1132F |
+------+-----------+-------------------------------------------+
6. RSYNC
6.1. activating rsync
Start your Synology DiskStation Manager.
Go to Backup - Network Backup Service and check the box "Enable network backup service".
Click OK
6.2. config files
-
original /etc/rsyncd.conf
#motd file = /etc/rsyncd.motd
#log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
use chroot = no
[NetBackup]
path = /var/services/NetBackup
comment = Network Backup Share
uid = root
gid = root
read only = no
list = yes
charset = utf-8
auth users = root
secrets file = /etc/rsyncd.secrets
-
new /etc/rsyncd.conf
#motd file = /etc/rsyncd.motd
#log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
use chroot = yes
uid = root
gid = root
read only = no
list = yes
charset = utf-8
secrets file = /etc/rsyncd.secrets
strict modes = false
[NetBackup]
path = /var/services/NetBackup
comment = Network Backup Share
auth users = root
[volume1]
path = /volume1
comment = volume1 share
auth users = cidusr
echo "cidusr:Passw0rd" >> /etc/rsyncd.secrets
6.3. testing from another workstation/server
rsync 'nas.d01.net::'
NetBackup Network Backup Share
volume1 volume1 Share
export RSYNC_PASSWORD=Passw0rd
rsync -auv --delete --progress /data1/tmp/ rsync://cidusr@nas.d01.net/volume1/tmp/
6.4. results
7. ipkg
7.1. google is your friend
7.2. installation
mkdir /volume1/@optware
mkdir /opt
mount -o bind /volume1/@optware /opt
ipk_name="ipkg-opt_0.99.163-10_arm.ipk"
url="http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable"
wget -N ${url}/${ipk_name}
tar xzvf ${ipk_name} ./data.tar.gz -C /
mkdir -pv /opt/etc/ipkg
echo "src cross ${url}" > /opt/etc/ipkg/feeds.conf
vi /etc/rc.local
#!/bin/sh
# Optware setup
mount -o bind /volume1/@optware /opt
vi /root/.profile
///
PATH=$PATH:/volume1/bin:/opt/bin:/opt/sbin
///
7.3. checks
ipkg update
ipkg upgrade
ipkg list
ipkg install mc
7.4. available packages
8. rexx
or following link
tar xzPvf rexx.armv7h1.tgz -C /
mkdir /volume1/bin
touch /volume1/bin/rexx
chmod +x /volume1/bin/rexx
ln -s /volume1/bin/rexx /usr/bin/
vi /volume1/bin/rexx
#!/bin/sh
export PATH=$PATH:/opt/rexx/
export LD_LIBRARY_PATH=/opt/rexx/
/opt/rexx/rexx $@
![]() |
since the DSM upgrade to version 6 on 27/03/2016, the rexx output was messed up: |
root@nas010:~# rexx
/opt/rexx/rexx: /lib/libstdc++.so.6: no version information available (required by /opt/rexx/librexx.so.4)
/opt/rexx/rexx: /lib/libstdc++.so.6: no version information available (required by /opt/rexx/librexx.so.4)
/opt/rexx/rexx: /lib/libstdc++.so.6: no version information available (required by /opt/rexx/librexx.so.4)
/opt/rexx/rexx: /lib/libstdc++.so.6: no version information available (required by /opt/rexx/librexxapi.so.4)
/opt/rexx/rexx: /lib/libstdc++.so.6: no version information available (required by /opt/rexx/librexxapi.so.4)
/opt/rexx/rexx: /lib/libstdc++.so.6: no version information available (required by /opt/rexx/librexxapi.so.4)
/opt/rexx/rexx: /lib/libstdc++.so.6: no version information available (required by /opt/rexx/librexxapi.so.4)
Syntax is "rexx filename [arguments]"
or "rexx -e program_string [arguments]"
or "rexx -v".
9. SAMBA
9.1. config file
less /usr/syno/etc/smb.conf
9.2. check
smbstatus
3388 1399572962 ac 10.2.1.145(10.2.1.145) video
Locked files:
Pid Uid DenyMode Access R/W Oplock SharePath Name Time
--------------------------------------------------------------------------------------------------
3388 1026 DENY_NONE 0x120089 RDONLY NONE /volume1/video
/// #/3.Days.to.Kill.2014.EXTENDED.1080p.BluRay.x264-SPARKS [PublicHD]/3.days.to.kill.2014.extended.1080p.bluray.x264-sparks.mkv
/// Thu May 8 20:16:14 2014
10. services
/usr/syno/etc/rc.d/
11. extra repositories
mdevries - http://synology.mdevries.org/spkrepo/packages
PCLoadLetter - http://pcloadletter.comlu.com
Mertymade - http://packages.mertymade.com
Synology-Forum.de - http://update.10trum.de/packageupdate/getpackages.php
Missilehugger - http://packages.missilehugger.com/
Synocommunity - http://packages.synocommunity.com
Zebulon’s SPK – http://synopkg.superzebulon.org/spk/repo/packages
Unzureichende – http://spk.unzureichende.info/
Q14six – http://spk.q14six.de/
Christoph Papke’s – http://christoph-papke.de/spk/repo/spkrepo/packages
E-Remonty – http://e-remonty.info/spkrepo/packages
CPHup – http://www.cphup.net/index.php/getpackages.php
Quadrat4 – http://packages.quadrat4.de
Synobox – http://cbo.netau.net/synopackages/
Need-Soft – http://need-soft.com/packages/index.php/spkrepo/packages
Cytec – http://cytec.us/spk
SubtitlesSH – http://subtitlessh.no-ip.biz/repo_spk
Hoel – http://packages.hoel.dk
Sysco – http://synology.sysco.ch
Synozwave – http://repo.synozwave.com/
Page81 – http://packages.page81.net/
Syno Packages – http://packages.synology.me/spkrepo/spkrepo/packages
cat /usr/syno/etc/packages/feeds
[
{"feed":"http://synology.mdevries.org/spkrepo/packages","name":"mdevries"},
{"feed":"http://pcloadletter.comlu.com","name":"pcloadletter"},
{"feed":"http://packages.mertymade.com","name":"mertymade"},
{"feed":"http://update.10trum.de/packageupdate/getpackages.php","name":"10trum"},
{"feed":"http://packages.missilehugger.com/","name":"missilehugger"},
{"feed":"http://packages.synocommunity.com","name":"synocommunity"},
{"feed":"http://synopkg.superzebulon.org/spk/repo/packages","name":"superzebulon"},
{"feed":"http://spk.unzureichende.info/","name":"unzureichende"},
{"feed":"http://spk.q14six.de/","name":"q14six.de"},
{"feed":"http://christoph-papke.de/spk/repo/spkrepo/packages","name":"christoph-papke"},
{"feed":"http://e-remonty.info/spkrepo/packages","name":"e-remonty"},
{"feed":"http://www.cphup.net/index.php/getpackages.php","name":"cphup"},
{"feed":"http://packages.quadrat4.de","name":"quadrat4"},
{"feed":"http://cbo.netau.net/synopackages/","name":"netau"},
{"feed":"http://need-soft.com/packages/index.php/spkrepo/packages","name":"need-soft"},
{"feed":"http://cytec.us/spk","name":"cytec.us"},
{"feed":"http://subtitlessh.no-ip.biz/repo_spk","name":"subtitlessh.no"},
{"feed":"http://packages.hoel.dk","name":"hoel.dk"},
{"feed":"http://synology.sysco.ch","name":"sysco.ch"},
{"feed":"http://repo.synozwave.com/","name":"synzwave"},
{"feed":"http://packages.page81.net/","name":"page81"},
{"feed":"http://packages.synology.me/spkrepo/spkrepo/packages","name":"spkrepo"}
]
12. notifications
vi /usr/syno/synoman/webman/texts/enu/mails
////
[iplDone]
Category: System,Important
Title: IPL done
Subject: IPL done on %HOSTNAME%
Dear user,
IPL done on %HOSTNAME%.
salut,
synonotify iplDone
12.1. debugging
syno_hibernate_debug_tool --enable 10
syno_hibernate_debug_tool --disable
13. aftercares after a system upgrade
13.1. /opt
mkdir -p /opt
mount -o bind /volume1/@optware /opt/
13.2. links
ln -fs ./volume1/ /data1
ln -fs ./volume1/music/ /
ln -fs ./volume1/photo/ /
ln -fs ./volume1/video/ /
13.3. profile
vi /root/.profile
///
PATH="$PATH:/opt/bin:/opt/sbin:/volume1/bin"
export PATH
alias ml="tail -f /var/log/messages"
alias m="mcedit -b"
alias mc="mc -b"
alias dl="tail -f /var/log/dhcpd.log"
13.4. rexx
ln -fs /volume1/bin/rexx /usr/bin/
13.5. dhcp
sed -i s~"dnsmasq --user=root"~"dnsmasq --version --user=root"~ /etc/rc.network
13.6. http
rm /etc/httpd/sites-enabled-user/httpd-vhost.conf-user
ln -s /volume1/etc/httpd/sites-enabled-user/httpd-vhost.conf-user /etc/httpd/sites-enabled-user/
/usr/syno/sbin/synoservicecfg --restart httpd-user
13.7. syslog
vi /etc/syslog-ng/syslog-ng.conf
filter f_daemon { facility(daemon); };
filter f_dhcpd { match("dhcpd"); };
destination dhcpmessages { file("/var/log/dhcpd.log"); };
log { source(src); filter(f_daemon); filter(f_dhcpd); destination(dhcpmessages); };
kill -HUP $(pgrep syslog)