時刻設定
# apt-get install ntp
ホスト名
# vi /etc/hostname
LS-XLE9A
# vi /etc/hosts
127.0.0.1 localhost LS-XLE9A
bootlogd
# apt-get install bootlogd
ブート完了後にLED点滅を消す
これでブート完了後に青いLEDが点滅から点灯に変わるようになる
# vi /etc/rc.local
echo off > /proc/buffalo/gpio/led/power_blink
exit 0
シャットダウン対応
素の状態だとshutdown -h nowでも再び起動してしまうため対応が必要
シャットダウンするようになるので、起動する際には電源再投入する。
# vi /etc/init.d/halt
echo off > /proc/buffalo/gpio/led/power
echo off > /proc/buffalo/gpio/power_control/hdd0
sleep 300
halt -d -f $netdown $poweroff $hddown
NAS化
# vi /etc/fstab
/dev/sda4 /mnt/disk1 ext3 defaults 1 1
# mkdir /mnt/disk1
# mount /dev/sda4 /mnt/disk1
# mkdir /mnt/disk1/share
# chmod 777 /mnt/disk1/share
# apt-get install samba
# mv /etc/samba/smb.conf /etc/samba/smb.conf.org
# vi /etc/samba/smb.conf
#
# smb.conf
#
[global]
# Default Settings
workgroup = WORKGROUP
server string = %h server
dns proxy = no
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d
encrypt passwords = true
passdb backend = tdbsam
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
map to guest = bad user
printing = bsd
load printers = no
printcap name = /dev/null
# Custom Settings
unix charset = UTF-8
dos charset = CP932
netbios name = KUROBOX-PRO
guest account = nobody
null passwords = yes
#[printers]
# # Default Settings
# comment = All Printers
# browseable = no
# path = /var/spool/samba
# printable = yes
# guest ok = no
# read only = yes
# create mask = 0700
#
#[print$]
# # Default Settings
# comment = Printer Drivers
# path = /var/lib/samba/printers
# browseable = yes
# read only = yes
# guest ok = no
#
[homes]
# Default Settings
comment = Home Directories
browseable = no
read only = yes
create mask = 0700
directory mask = 0700
valid users = %S
[share]
comment = KURO-BOX Local Drive.
path = /mnt/disk1/share
guest ok = yes
writable = yes
# /etc/init.d/samba restart
これで超基本的なNASのできあがり。
Printer関連のエラーログが出ていたので一部設定変更を加えている。
fail2ban
/var/log/auth.logに大量の不正アクセスがあるためfail2banを導入、不正アクセスは12時間DROPさせる。
# apt-get install fail2ban
# vi /etc/fail2ban/jail.conf
ignoreip = 127.0.0.1/8 192.168.0.0/24
bantime = 43200
backend = gamin
# /etc/init.d/fail2ban restart
# iptables -L
libkmod: ERROR ../libkmod/libkmod.c:554 kmod_search_moddep: could not open moddep file '/lib/modules/3.3.4-88f6281/modules.dep.bin'
iptables v1.4.14: can't initialize iptables table `filter': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
fail2ban-ssh tcp -- anywhere anywhere multiport dports ssh
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain fail2ban-ssh (1 references)
target prot opt source destination
DROP all -- 115.230.126.149 anywhere
RETURN all -- anywhere anywhere
できた
それでも結構Ban、Unbanが繰り返されログがふくれるので、恒久的にBanするようにブラックリスト対応する。
ブラックリストの追加
# vi /etc/fail2ban/action.d/iptables-multiport.conf
actionstart = iptables -N fail2ban-<name>
iptables -A fail2ban-<name> -j RETURN
iptables -I <chain> -p <protocol> -m multiport --dports <port> -j fail2ban-<name>
+ cat /etc/fail2ban/ip.blacklist | while read IP; do iptables -I fail2ban-<name> 1 -s $IP -j DROP; done
# vi /etc/fail2ban/ip.blacklist
115.0.0.0/8
223.0.0.0/8
:
# service fail2ban restart
exim ipv6無効化
# vi /etc/exim4/update-exim4.conf.conf
dc_local_interfaces='127.0.0.1 ; ::1'
↓
dc_local_interfaces='127.0.0.1'
ログ出力先を/dev/ram1に変更する
# mv /var/log /var/log.bk
# mkdir /var/log
# vi /etc/fstab
/dev/ram1 /var/log tmpfs defaults 0 0
不要なログを出力しないように編集
# vi /etc/rsyslog.conf
#daemon.* -/var/log/daemon.log
#kern.* -/var/log/kern.log
#lpr.* -/var/log/lpr.log
#mail.* -/var/log/mail.log
#user.* -/var/log/user.log
#mail.info -/var/log/mail.info
#mail.warn -/var/log/mail.warn
#mail.err /var/log/mail.err
#news.crit /var/log/news/news.crit
#news.err /var/log/news/news.err
#news.notice -/var/log/news/news.notice
#*.=debug;\
# auth,authpriv.none;\
# news.none;mail.none -/var/log/debug
始動時に必要なディレクトリとファイルを作成する
# vi /etc/rc.local
mkdir -p /var/log/apt
mkdir -p /var/log/exim4
mkdir -p /var/log/fsck
mkdir -p /var/log/ntpstats
mkdir -p /var/log/samba
mkdir -p /tmp/ntp
mkdir -p /tmp/sanba
chown root.Debian-exim /var/log/exim4
chown root.ntp /var/log/ntpstats
chown root.adm /var/log/samba
touch /var/log/lastlog
touch /var/log/wtmp
touch /var/log/btmp
chown root.utmp /var/log/lastlog
chown root.utmp /var/log/wtmp
chown root.utmp /var/log/btmp
service samba restart
# reboot
sambaのログだけ出てなかったので苦肉の策でここで再起動した。
/etc/logrotate.d/aptitude
/etc/logrotate.d/dpkg
/etc/logrotate.d/fail2ban
/etc/logrotate.d/rsyslog
これらにsu root admを追加
/etc/logrotate.conf
にsu root utmpを追加
【例】
/var/log/btmp {
missingok
monthly
create 0660 root utmp
rotate 1
+ su root utmp
}
未使用時HDDスピンダウン
# apt-get install hdparm
# hdparm -S 120 /dev/sda
# vi /etc/rc.local
:
hdparm -S 120 /dev/sda
:
これで10分アクセスがないとスピンダウンする。
LS-XLはもともとファンレスなのでHDDが止まれば無音状態になる。
configファイルに定義してrebootしても動いていない様子だったがコマンド入力したらいつの間にか止まっていたので、とりあえずrc.localに入れておくことにした。
なにが問題だったのかは別の機会に検証する。
メモ
1日以内に更新されたファイルを検索する。(/sys, /proc, /devを除く)
cd /
find . -path "./sys" -prune -o -path "./proc" -prune -o -path "./dev" -prune -o -mtime -1 -ls
tmpfsがマウントされているところも除くと
find . -path "./sys" -prune -o -path "./proc" -prune -o -path "./dev" -prune -o -path "./tmp" -prune -o -path "./run" -prune -o -path "./var/log" -prune -o -path "./var/lib/ntp" -prune -o -path "./var/cache/samba" -prune -o -mtime -1 -ls
随時書き出しされるファイルはtmpfsにマウントされている/tmp以下に移動する
cd /var/lib
mv ntp /tmp/ntp
ln -s /tmp/ntp ntp
cd /var/cache
mv samba /tmp/samba
ln -s /tmp/samba samba
ディスク書き出し抑止のため色々調整した結果のrc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
mkdir -p /var/log/apt
mkdir -p /var/log/exim4
mkdir -p /var/log/fsck
mkdir -p /var/log/ntpstats
mkdir -p /var/log/samba
mkdir -p /tmp/ntp
mkdir -p /tmp/samba
mkdir -p /tmp/man
mkdir -p /tmp/logrotate
chown root.Debian-exim /var/log/exim4
chown root.ntp /var/log/ntpstats
chown root.adm /var/log/samba
chown root.adm /tmp/samba
chown man.root /tmp/man
chown ntp.ntp /tmp/ntp
chmod +s /tmp/man
touch /var/log/lastlog
touch /var/log/wtmp
touch /var/log/btmp
touch /var/lib/ntp/ntp.drift
echo 0 > /var/lib/ntp/ntp.drift
echo "logrotate state -- version 2" > /tmp/logrotate/status
/usr/sbin/logrotate /etc/logrotate.conf
chown root.utmp /var/log/lastlog
chown root.utmp /var/log/wtmp
chown root.utmp /var/log/btmp
chown ntp.ntp /var/lib/ntp/ntp.drift
chmod 660 /var/log/btmp
chmod 664 /var/log/wtmp
service samba restart
service exim4 stop
hdparm -S 120 /dev/sda
echo off > /proc/buffalo/gpio/led/power_blink
exit 0
最終更新:2015年05月25日 13:18