「LS-XL 初期設定」の編集履歴(バックアップ)一覧はこちら
「LS-XL 初期設定」(2015/05/25 (月) 13:18:10) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
**時刻設定
> # 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
>
> # 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のできあがり。
**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が使えるようにカーネルがビルドされていないのが原因か…
[[iptablesが使えるようにカーネル再構成>LS-XLでセルフコンパイル]]でカーネルを入れ替えて再起動
リトライ
> # 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のログだけ出てなかったので苦肉の策でここで再起動した。
・logrotateで失敗しているのを発見
/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
**時刻設定
> # 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が使えるようにカーネルがビルドされていないのが原因か…
[[iptablesが使えるようにカーネル再構成>LS-XLでセルフコンパイル]]でカーネルを入れ替えて再起動
リトライ
> # 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のログだけ出てなかったので苦肉の策でここで再起動した。
・logrotateで失敗しているのを発見
/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