「LS-XL 初期設定」の編集履歴(バックアップ)一覧に戻る

LS-XL 初期設定 - (2015/04/14 (火) 09:42:05) のソース

**時刻設定
> # 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 root.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 root.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