sambaサーバのテスト方法)
http://www.samba.gr.jp/project/translation/Samba3-HOWTO/install.html にまとめがある。
http://www.ne.jp/asahi/hishidama/home/tech/unix/samba.html#smb.conf
にも設定とテストのやり方のメモがある。
http://d.hatena.ne.jp/language_and_engineering/20110820/p1 にも、まとめがある。
後者を利用してデバッグした。
smbclient -L //192.168.1.65 でマウント名一覧を表示しようとして、passwordをいれると、
Server requested LANMAN password (share-level security) but 'client lanman auth' is disabled
というエラーになる。
/etc/samba/smb.confを修正して
[global] sectionに
client lanman auth = Yes
を書き込めば治ったが、その前に以下の3つをやった。これにより、local server上でも、Macからでも、passwordに対して Control-D ないしはそのままreturnでも、機能する。すなわちpasswordなしでも動くらしいことを確認。
1. smbclientを実行すると、ログインユーザで実行されるので、
pdbedit -a hoge で、ログインユーザを作成した。-U <ユーザ名> でユーザ名を指定してもよいが。。また、guestというuserも作成した。pdbeditでは、パスワードもログインユーザと同じものをつけた。
2. そのユーザのドメインがsmb.confにかかれているドメイン HOMEと食い違うので、以下のコマンドで合わせた。
pdbedit -u hoge --domain=HOME
ルータのfirewallは開けてないので、MiniDNSのドメインからはアクセスできない。
3. /etc/samba/smb.confの下の方に、以下のsecurty文があったので、コメントアウトした。
# ----------------------- Standalone Server Options --------------
#
# Scurity can be set to user, share(deprecated) or server(deprecated)
(コメント略)
; security = user
; passdb backend = tdbsam
Mac側でのテスト)
Mac OS-Xにはsmbclientがないので、mount_smbfsを使う。以下に説明がある。
http://apple.stackexchange.com/questions/697/how-can-i-mount-an-smb-share-from-the-command-line
これを使って、ipアドレスでマウントするとpasswordなしでmountできた。
つまり/mntを作って、
mount_smbfs //HOME\;guest@192.168.1.65/home /mnt
/shareなら以下のようになる
mount_smbfs //HOME\;guest@192.168.1.65/share /mnt
でマウントできた。当然ながらリモートでのシンボリックリンクの先は見えない。これらコマンドは、ユーザ権限で実行できる。
マウントできると他のNAS同様に、desktopにアイコンが表示される。
http://centossrv.com/samba.shtml のやりかたで、smb.confを設定し、名前解決をするnmbを起動。
ないしは、Marveriks等では https://support.apple.com/ja-jp/HT5884 のやり方で接続できる、FinderのGo(移動) > Connect to Server (サーバへの接続) から、smb://< ホスト名 or IP address >でよい。
Marveriksからは、SMB2, AFPの順になり、SMBは使わないので、接続元がOS--X 以外の場合には問題がでることもあるらしい。http://news.mynavi.jp/column/osxhack/110/ にある
あとは、
http://useyourloaf.com/blog/2011/01/24/using-the-mac-os-x-automounter.html
にしたがい、MacのAutomounterを設定すれば、/Volumesにmountされるのか。。
ないしは、smbがbroadcastしていないのだろうか。。
sambaの名前解決?)
http://bit.ly/1fxzvXO をみて対策した。
1. smb.confの[global] sectionで、name resolve orderにhostsを追加し、wins proxyとdns proxyの設定をyesに変えた。が、まだMacはautomountしない。
<
name resolve order = wins lmhosts hosts bcast
---
>
name resolve order = wins lmhosts bcast
85,86c82
<
wins proxy = yes
<
dns proxy = yes
---
>
dns proxy = no
2. linuxの名前解決 上記1でlmhostsがあるし、/etc/resolv.confに、DNSとしてBBrouter 192.168.1.254が指定してあるので、sambaも名前解決できるはずである。
Macやlocal マシンから dig [マシンの’IPアドレス] をいれてみたが、逆引きできていない。大丈夫なのだろうか。。
3. /etc/samba/lmhosts に、以下を追加してsmbをリスタートしてみたが変わらない。
192.168.1.65 linux02
4. 少なくともMacからでもLinuxからでも、以下のようにnslookupで自マシン名が見つかるし、Macのファインダでremote desktop接続が表示されssh/tftpも動くので、Linuxとしての名前解決は問題はなそうである。
$ nslookup linux02
Server: 192.168.1.254
Address: 192.168.1.254#53
Name: linux02.gateway.2wire.net
Address: 192.168.1.65
MacのFinderで設定して上手くいった)
https://engineering.purdue.edu/ECN/Support/KB/Docs/MacOSXConnectingToSMB
に従い以下の手順で行った。
- FinerのMenuバーにある、Go->Connect to Serverから、smb://linux02 を指定する。
- 2つあるマウントポイントのうちhomeを指定
- user指定かguestか聞いてくるのでguestにしてpasswordなし
- すると、Sharedとして、linux02のsambaが表示されるようになった。Macをrebootしたらどうなるのかは知らないが。。
Wins側の設定)
とりあえずこちらもやってみた。
1. smb.confの[global] sectionにwins serverのIPとしてBBrouterを設定。
wins server = 192.165.1.254
2. 以下では名前解決しない。ひょっとして、自マシンがwins serverかとも思い、以下のように -U 192.168.1.65に変えてもダメ。smb.confの該当行を変えてもダメ。
$ nmblookup -U 192.164.1.65 -R 'linux02'
(略)
querying linux02 on 192.164.1.65
name_query failed to find name linux02
3. うまくいかないので、smb.confにある、以下の行をコメントアウトした。
; wins server = 192.165.1.254 # BBrouter
; wins server = 192.165.1.65
; wins support = yes
; wins proxy = yes
(目次に戻る)
Grubの再インストール)
停電でいきなり電源が落ちると、Linuxが立ち上がらなくなる。これは、以下の理由であった。
- 以下写真(BIOSのブートデバイス選択メニュー)のように、/bootがあるSSDがCh3 Masterであり、BIOSはCh2 Slaveを先に立ち上げようとして、MBR (Master Boot Record)が見つからず、CD ROMから立ち上げるよう、プロンプトを出していた。この状態でも、電源投入時にESCを打ち込んで、BIOSのブートデバイス選択メニューからCh3 Mを選択すれば起動する。
- 上記1をMBRが壊れたと勘違いし、Grubを設定し、逆にMBRを壊してしまった。その修正法は後述する。
 |
| BIOSのブートデバイス選択メニュー |
Grubの使い方)
- DVD-Rか上記のboot menuからlinuxを修復コマンドで立ち上げる。
DVD-Rから立ち上げた場合には、http://wiki.centos.org/TipsAndTricks/ReinstallGRUB
に解説があるように、chrootが必要
- /boot/grub/grub.conf に、/boot/vmlinuxの場所が正しく記載されているか確認する。通常は壊れていないはず。
- こわれていて書き直すときには、/bootはroマウントされているので、mount コマンドでデバイス名を調べ、mount -o remount,rw /dev/sdb1 等のようにrwマウントし直す。
- http://d.hatena.ne.jp/silenvx/20120725/1343169224 にあるように、grubをインタラクティブで立ち上げて、find /boot/grub/grub.conf を実行。すると、(hd1,0)にこれがあることがわかる。ここは、/dev/sdb に相当するSSD (ch3 Master)。以後以下のようにコマンドを実行する。
- grub> find /grub/grub.conf
(hd1,0)
- grub> root (hd1,0)
- grub> setup (hd1)
- grub> reboot ... これは上手くいかないので、shに戻って、sync;sync; init
(目次に戻る)
iptables(firewall)の設定
参考リンク)
設定結果)
[root@Linux01 ~]# vi /etc/sysconfig/iptables
[root@Linux01 ~]# service smb restartSMB サービスを停止中: [ OK ] SMB サービスを起動中: [ OK ][root@Linux01 ~]# service iptables restart
iptables: ファイアウォールルールを消去中: [ OK ]
iptables: チェインをポリシー ACCEPT へ設定中filter [ OK ]
iptables: モジュールを取り外し中: [ OK ]
iptables: ファイアウォールルールを適用中: [ OK ]
iptables: 追加のモジュールを読み込み中:nf_conntrack_ftp nf_conntrack_netbios_ns nf_conntrack_tftp [ OK ]
[root@Linux01 ~]#
(目次に戻る)
sshdの設定、port番号を変更してport scan 対策
ping, tracerouteはSPAMやwormや踏み台になり危険なのでoffにした。
ssh:
http://www.obenri.com/_ntp_sshserver/sshdconfig501.html
http://d.hatena.ne.jp/midori_kasugano/20100125/1264426486
などに解説がある。
設定して、 service sshd restart でdaemonを起動。
デフォルトのポート22だと、怪しいサイトが激しくポートスキャンしてくる。
たとえば、119.6.245.66 というipアドレス、いろいろなuser名でloginを試みている。その数、1時間の間に444回。
このipアドレスをブラウザでアクセスしてみると、「网络视频监控系统 Network Surveillance System」という中国の会社。
Surveillanceといいつつ、不正ログインを試みている。相変わらず中国のやることは、けしからん。。
こういう輩がいるので、BBrouterのポートを空けるときには慎重に。。
不正アクセスはファイアウォール iptables がはき出す、/var/log/secureを見れば分かる。
対策として、
- 分かりにくいパスワードにする
- PGP鍵ペアを用いた認証にする。(つまりPGPの秘密鍵のあるマシンからしかloginできない)
- 標準のポート番号22を、違う番号に変える。
上記1, 2でも安全性は十分だろうが、ポートスキャン(login)を試みられると、余計なネットワーク負荷とCPUパワーを食われるので、上記3の対策をした。同時に冒頭に書いたように不要なポートは閉じた。
sshdで、ポート番号を変更する方法は、
loginする側でのsshの使い方は、ssh --helpで出るが、代表的なものは以下である。
- -p port : ポート番号の指定
- -v : verbose : デバッグ情報等を表示
- -l login_name : 指定したuser名でlogin
X11のforward)
XプロトコルのSSH転送をするためにはあらかじめsshdに以下の設定をしておく必要がある。
/etc/ssh/sshd_config を編集し以下を入れる。最初、このX11DisplayOffsetが入っていなくて動かなかった。を10にすると、DISPLAY変数がlocalhost:10.0 から先に設定される。
X11Forwarding yes
X11DisplayOffset
Linux側の/etc/sysconfig/iptables に以下の行を入れておかないと、起動したXのアプリへの入力がX11 Client (linux) 側に送られない。
-A INPUT -i eth1 -m state --state NEW,ESTABLISHED -p tcp --dport 6000:6005 -j ACCEPT
ssh -Y -p <ポート> <ホスト名>
注意)sshd_config とssh_config を間違えて編集して、ssh clientが動かなくなった。
(目次に戻る)
ftpの有効化
関連リンク:
http://centossrv.com/vsftpd.shtml
設定法:
http://www.aconus.com/~oyaji/ftp/vsftpd_rpm.htm (ユーザ限定、passiveなしで)
設定法にしたがって証明書をmakeしておくこと。
再起動:
http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-rg-ja-4/s1-ftp-vsftpd-start.html
passiveだとlsが利かないが、passiveにしなくても普通に動いた。入力のcompletionも利く。
vsftp.confとuser_list をbackupしておく。
外部からのアクセスに成功(以下)
ftp> get foo.pdf
local: foo.pdf remote: foo.pdf
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for foo.pdf (1642685 bytes).
100% |****************************| 1604 KiB 179.41 KiB/s 00:00 ETA
226 Transfer complete.
1642685 bytes received in 00:08 (178.86 KiB/s)
ftp> quit
221 Goodbye.
(目次に戻る)
miniDNSとDiCEを用いたDDNS化
Dynamic DNS (以下DDNS) を用いて、プロバイダからDHCPで提供され動的に変化するIPアドレスにたいして、ドメイン名を与えて、固定ドメイン名でアクセスできるようにする。
DDNSには無料のminiDNS
http://www.minidns.net/index.php を利用した。が、2013年末時点では、ここは新規受付を終了し、従来サービスもそのうち終了とのことである。理由は、迷惑メイル業者の踏み台にされるから(以下スクリーンショット)とのことであり、スパムにも困ったものである。
CentOSへのDiCEの登録法はココに出ている: http://centos.server-manual.com/centos5_dice.html
ここにあるsetarchコマンドの意味は、
http://ufuso.seesaa.net/article/139985477.html に出ている。
http://www.iwate-oss.net/modules/pico/index.php?content_id=35 を参考にinit.dを作った。
/etc/init.d/diced start で起動する。コードは以下のとおり。exec-shieldが効かないようにして起動するということらしい。
#!/bin/sh
#
#chkconfig: 35 99 99 # description: DiCE
#
# diced: /usr/local/bin/DiCE/diced
diced="/usr/local/DiCE/diced"
[ -f "$diced" ] || exit 0
case "$1" in
start)
# Start daemons.
if [ ! -f /var/lock/diced ] ; then
echo "Starting DiCE."
setarch `uname -m` "$diced" -d -l > /dev/null
touch /var/lock/diced
else
echo "DiCE is Already Started."
fi
;;
stop)
# Stop daemons.
echo "Shutting down DiCE."
PID=`/bin/ps -aefw | grep "$diced" | awk '{print $2}'`
if [ ! -z "$PID" ] ; then
/bin/kill ${PID} 1> /dev/null 2>&1
fi
rm -f /var/lock/diced
;;
*)
echo "Usage: /etc/init.d/diced {start|stop}"
exit 1
esac
exit 0
ところが) 2015/9/17に、突全リモートアクセスできなくなった。(顛末は次節にまとめる) 調べたところ、プロバイダのWANアドレスが変わったが、DDNS(Dynamic DNSのminiDNS) に登録されていなかった。まずrebootを試し、dicedも走っていた。dicedをstopしてstartしても登録は変わらなかった。このコードではだめな模様。初期登録はできていたのになにかおかしい。。
DiCEへの登録法を見た。自動登録では上手くいかないので外部スクリプト利用に変え、http://checkip.dyndns.org/ でテストするようにした。これで、IPアドレス取得実験も成功。
手動でわざと変えておいたminiDNSのアドレスが更新されることを確認した。
ただし、
http://centos.server-manual.com/centos5_dice.html の例のように、「IPアドレスが変更されたときのみ or 7日ごと」では、IPアドレスが変わったときにminiDNSに登録に失敗すると、7日はアドレスが登録されなくなる。そこで、:add コマンドでルール2を追加。6時間毎に起動して登録するものもactiveにし、手動で狂わせておいたminiDNSへの登録が6時間後には正しくなっており、remote loginできることを確認した。(2015/9/20 追記)
顛末) 変化したWANアドレスがDDNSに登録されていないと、ブラウザでのアクセスどころか、sshによるremote loginもできない。そこで、skypeを使って家族に頼み、remoteからデバッグすることになる。この流れが、実はさらに話を複雑にした模様。
- DMZ(BBrouterの穴)の設定がおかしくなったかも知れないので、BBrouter系を再起動。→ やはりwebにもsshでもアクセスできず。
- サーバの電源ボタンを押して、linuxをシャットダウンしてもらい。再起動。→ 変化なし
- 再びBBrouter系を再起動
- serverにloginしてもらい、browserからWANアドレスを確認してもらおうとした。が、そもそもbrowserから外のwebが見えない。
- LANケーブルを確認。どうも、Server->LAN Switchを経由したあと、wallにはいるコネクタが緩んでいた模様。これは、コネクタの上にケーブルが重なり、次第に緩んできたと推測された。→ 修正したが、外からはwebにもsshもできず。
- WANアドレスが変わったと思われ、米国の自宅serverのhomepageを使ってWANアドレスを調べようとしたがアクセス不能。BBrouterに入ろうとしてもダメ。調べてみると、米国サーバをproxyにしていた。これを直して解決。
http://checkip.dyndns.org/ にアクセスすれば、米国サーバがproxyになっていたことは一発で分かったはず。
- WANアドレスがとれたので、webにもsshにもアクセスできるようになった。あとは、sshして不正だった日本のサーバのDiCE設定を修正し、ついでに米国サーバのDiCEも設定変更して、動作確認して終了。
その他解説)
http://fedora.eek.jp/fed3dice2.htm もDiCEコマンドのオプションの紹介がある。
今後)
DDNSはスパムの踏み台になるので、今後サポートされなくなる方向だと思う。かといって、CableやADSLでは、IPv4が枯渇しているので、Static IPのサービスはなくDHCPが主流。対応法をいろいろ考えた。今後詳細に解説する。
- お名前.com を利用する方法:
調べたところ)最安で、登録時は割引、1年目には1000円程度、2年目の更新には2000円程度、... 最後には5000円から1万円と年ごとに更新料が上がる仕組みらしい。ないしはレンタルサーバと併用して値下げしてもらうか... これを使うと、毎年、ドメイン名(サーバのDNS登録)を変えて、費用削減する必要がありそう。他にも格安ドメインサービスはある。
が、ドメイン名を取っても、肝心のWANのIPアドレスが、固定でなければ、DDNS等を用いて紐付けをしないとならない。ドメイン名提供元がDDNSを提供していないのであれば、固定IPアドレスサービス(実はこれが割と高い)を提供しているプロバイダを使う必要がある。だったら、次にあるレンタルサーバを使って、自分でDDNSサービスを作る手もありそう。
- サクラなどのレンタルサーバ。それも一番安いものを利用する方法
- IPv6では、基本的にNATとローカルアドレスへの変換ではなく、全機器にglobl IPアドレスを割り当てるらしいので、DHCPという概念ではなく、全てStatic IPアドレスでの運用になるのかもしれない。
(目次に戻る)
mdadmを用いたsoftware RAID化(RAID1)
RAIDパーティションの作り方 (うろ覚え))
ツールでRAIDを作成: http://itneko.blogspot.com/2012/08/centos6-raid1.html
スペアパーティションとは http://www.obenri.com/_raid_create/repair_mdadm.html
2.5Tを共有するので今回は使わない。
http://www.obenri.com/_raid_create/create_mdadm.html のやり方で作る。
cat /proc/partitions で確認。
-l1 : Raid1
-n2: partition 2
パーティションを並べる
mdadm -C /dev/md0 -l1 -n2 /dev/
コマンドは直ぐに終わるがディスクユーティリティでみて再構築中になっているように、RAID1の再構築になる。
cat /proc/mdstat を見て状況を判断する。4TBのHDD 2個では、7%終わったところで、あと463分かかると言われているので、トータルで498分=8.3時間かかる。。
2015/3/23記載)
Seagateの1.5TB HDDが壊れていて縮退運転になっていた。そこで、4TBのWDのHDDを2つ(一つはRed、一つはGreenにして同時故障を避けた.. MTBFがかなり違うはずだしロットも違うはず)。
壊れていないHDDをDVD-Rにつなぎ、新たなHDDを入れてbootすると/dev/sdbと/dev/sddに4TBのドライブができた。GRUBにすると性能が落ちると言われるので、partition無しにして双方をext4でformat。
mdadm -C /dev/md1 -l1 -n2 /dev/sdb /dev/sdd で、software RAIDが/dev/md1にできる。従来は/dev/md0が消えて、md127になっているが、一応md1にしておく。
resyncが終わったら、
http://www.obenri.com/_raid_create/mount_raid.html でext4のfsを作って、fstabを変更してmount
fs作るのにちょっと待つ。慌てていじくり回すと壊れる。
fstabの設定法: http://unixlife.jp/unixlife/linux/sys-fstab.jsp
それでsmb mountできるようにする。
RAIDの復旧)
記憶デバイスの状況)
Boot Drive : SSD Corsair Force 3 SSD 60GB /dev/sdb Ext4 (ver1.0)
/dev/sdb1 LVM2
RAID用
1. ST31500341AS 1.5TB /dev/sda1
2. WD25EZRX-00AZ680 2.5TB /dev/sdc1
アプリケーション-> システムツール-> ディスクユーティリティでみると、以下のようなエラーが出ている。
RAIDの設定法は後日書く。
設定後の状態は、
RAID Array: 1.5TB RAID1 /dev/mdl27
同上のディスクユーティリティで見ると以下のようになっている。
上記メニューからファイルシステムをチェックでfsckを掛ける。エラー無し。
マウント)
suして、rootになり /etc/fstab を編集。
もともとRAIDのdevice名は/dev/md0だったが、なぜかcrashで/dev/md127になったので、以下の行を追加。
/dev/md127 /share/md0 ext4 defaults 1 2
mount -a を実行してmountで見ると、
/dev/md127 on /share/md0 type ext4 (rw)
となっており、cd /share/md0; ls でファイルが見えた。
/share は、sambaでnas の名前でmountできるようにしてあるので、NASとして利用可能である。
また、sambaでは、他のマシンをmountしたマウント・ポイントをshareとして見せている。(名前が混乱しやすいので、そのうち修正する予定)
(目次に戻る)
apacheによるwebサーバ化
参考リンク)
http://dev.halhal.info/archives/11 この通りにやって完了
上記リンクがなくなった
http://centossrv.com/apache.shtml にしたがう。
つまり、以下あたりをやって、directory設定に合わせておかないとservice httpd restartが失敗する。
[root@centos ~]# vi /etc/httpd/conf/httpd.conf ← httpd設定ファイル編集
#ServerName www.example.com:80
↓
ServerName centossrv.com:80 ← サーバー名を指定
servernameは、miniDNSのドメイン名(fooとしておく)を用いて、
www.foo.miniDNS.net と設定しておく。ポートを標準の80番似しておけば、webからはfoo.miniDNS.net でアクセスできる。iptablesとBBrouterには最初に穴を空けておいた。
# /etc/rc.d/init.d/httpd start で起動し、
# chkconfig httpd on で、boot時起動に設定。
/var/www/html/index.html を書き換えてアクセスできることを確認したあと、
sambaにマウントしているRAID1のパーティションにコピーして、ln -s from to でシンボリックリンクしておいた。
.htaccessの設定法:
http://coliss.com/articles/build-websites/operation/work/htaccess-for-all-by-sitepoint.html
パスワードをつけるためのcgi:
一覧: http://www.cgi-search.info/search/category120.html
シンプルなもの:
http://www.kent-web.com/pwd/login.html
ApacheでのCGIの設定)
http://www5.plala.or.jp/vaio0630/apache/apache_cgi.htm
logは、httpd.confのServerRoot で指定したdirectoryからの相対位置に作られる。
CGIが動かない。
-
HDDが壊れmdadmを作りなおした結果、/share/md0/wwwが/share/md1/wwwになった、このため、/etc/httpd/からのwwwへのsymlinkを貼り直し、/etc/httpd/conf/httpd.confの DocumentRoot "/share/md0/www/html" をmd1に書きなおす必要があった。これによりservice httpd restartに成功。
Document rootは、/share/md1/www/html である。
ビデオ配信サーバ化
html埋め込み型の HTMLストリーミング)
.m3u8 拡張子のファイルを使ったビデオストリーミングサーバも設定したが動かない。
参考URL)
データ作成) このファイルは、Appleのfinal cut Proでも生成できる。ただし、スマホ・タブレット・PCのそれぞれに対応するのでファイルサイズは大きい。
配信サーバ)
Apacheをインストールすると、m3u8の拡張子設定がすでに設定されている。
これを本節冒頭参考URLにあげた「設定法」のリンクに従い、以下のように修正。
(/etc/mime.typesに追加)
application/x-mpegURL m3u8
video/MP2T ts |
(/etc/httpd/conf/httpd.confに追加)
AddType application/x-mpegURL .m3u8
AddType video/MP2T .ts |
Apacheを再起動
| /etc/init.d/httpd restart |
x-mpegURL) x-mpegURL というサポートライブラリは、CentOS6.3にはすでに搭載済で、「CentOS x-mpegurl」でググッて見つけたRPMをダウンロードして rpm install でインストールしようとしてコンフリクトでabortした。
Webの記述) htmlは以下の様な記述を入れると、Safariで再生できる。Chromeでは、再生ボタンが押せない。Firefoxでも「この形式はサポートしていない」とエラーメッセージがでる。
どうも、このビデオストリーミングは、Appleの独自仕様らしい。後日、他のやり方を考えたい。
< video
src="http://hogehoge.minidns.net/data/TestVideo.m3u8"
controls autoplay width="640" height="480">
また、mp4などのファイルに比べると、Final Cut Pro X等で生成する時間もかかるし、ファイルサイズも大きい。
パスワード認証)
- CGIによるもの
- .htaccessによるもの
1は、拾ってきたファイルがDOS用でS-JISだったので、これをUTF-8にして、charsetの記述も書き換えたら動いた。
2は、デフォルトでは、httpd.confで、.htaccessのoverlayを許可していないので動かなかった。設定し直して、Apacheをリスタートしたら動いた。ただし、上記の videoタグにあるように、ビデオデータm3u8へのアクセスはフルパスになる。したがって、このディレクトリにあるリンクへのアクセスを禁止することができない。つまり、パスがわかると、パスワードチェックをスルーしてしまう。
htaccessの設定方法とpassword cryptのためのスクリプトは以下:
http://www.quick-s.net/htaccess.html
この他のhtaccessの使い方は:
http://www.quick-s.net/htaccess2.html
こういう問題があるので、videoタグを使った手法は、廃止することにする。
hrefにmp4ファイルを直接書く方法)
こちらは、Google Chromeではアクセス可能。スライドバーや音量、フル画面なども出る。
自宅サーバからのアップリンクが飽和しないよう、レート制御が多分必要。
https://httpd.apache.org/docs/trunk/mod/mod_ratelimit.html とかをinstallすれば良さそう。レートをいくつぐらいにするかは今後調べる。
しかし、Safariでは逆にファイル全部をダウンロードしようとしてしまうらしく、"loading"が表示されたまま固まってしまう。
(目次に戻る)
squidによるproxyサーバ化
sendmailのインストールと障害情報メイルの転送
(目次に戻る)
Netに繋がらなくなった
システムが落ちなくなったので、強制シャットダウンしたところ、linuxの中からも、外からもネットワークにつながらなくなった。オンボードのeth0のネットワークカードが壊れたらしく、PCIeのネットワークカードを追加したら直った。
が、壊れているeth0があると邪魔であるし、iptables, smb.conf等のeth0の記述をeth1に書き換えないとならなくて面倒なので、eth0をoffにして、追加したデバイスをeth0とすることにした。
これは、BIOSからonboardのEthernetインターフェースを無効化すれば完了。iptablesの設定は、eth0に対してやられているので、これで変更は不要。
一応、centOSのシステムツールのnetworkの設定で使わないeth1のドライバを外したが、これが有効だったのかは不明。(これが入っていると、LAN cableが繋がっているときにbootが途中でハングっていた可能性もある。LANケーブルを抜かないとbootしなかった。)
DMZ( 【 DeMilitarized Zone 】 非武装地帯 / 非武装セグメント
http://e-words.jp/w/DMZ.html ) を設定してSambaを有効化する方法)
- BBrouterのリース期限(デフォルト24時間)を1時間にする
- host名を新しくする:DHCP Client設定: http://red.ht/1n4PL6e や
http://d.hatena.ne.jp/WhatAmILookingFor/20110828/1314542775 参照
- Linuxを落とす
- しばらくして立ち上げると、BBrouterのDHCPが、新しいHost名でIPアドレスを割り付けているので、これを固定割り付けにする
- BBrouterのDMZの設定に行き、古いマシンに割り付けたDMZを開放する。(1つのポートは、一つのマシンにしかDMZは割り付けられない)
- 新しいホスト名に、DMZのポートを設定していく。
- /etc/samba/smb.confはipアドレスが直に指定されているので、これを、BBrouterが新たに割り付けたipアドレスに直す。
- BBrouterのリース期間をデフォルトに戻す。
- pdbedit -a samba でuser sambaを再設定
- service smb restart する。これでsambaも復活
以上で、httpd, samba, squidが完全に復活した。
以下は上手くいかなかったやり方)
eth1でなくeth0にする方法)
http://yamavar.wordpress.com/2011/10/11/ude/ に説明がある。/etc/sysconficg/network-scripts/ifcfg-eth0 とifcfg-eth1 と言うファイルを作成。壊れていたeth0をeth1に移し、ついでにonbootをoffにした。
さらに、/etc/udev/rules.d/70-persistent-net.rules を何か別な名前にrenameしてrebootすれば良いようである。
IPアドレス固定割り付けで問題)
自宅外から、Linuxサーバに繋ぐためのDMZの設定は、ホスト名(ipアドレス)で行われる。また、Sambaの設定もipアドレスに対して行われる。。
ipアドレスの割り付けはBBrouter (自宅の場合はAT&T UverseのBBrouter)のDHCPが行う。
ところが、このDHCPは、Macアドレスに対してipアドレスを固定割り付けしており、このMacアドレスをつけかえる機能がない。。。
一方で、違うMacアドレスのデバイスが、同じホスト名で接続要求をするので、DHCPリストの表示も狂っている。いろいろやり方が考えられるが、ホスト名をつけかえて、新たなipアドレスで設定しなおすのが良さそうである。他の方法は、
- BBrouterをfactory resetして、Linuxサーバだけを繋ぎ、空いている今までのipアドレスに対して固定割り付けにする。この場合にも、DMZの再設定は必要。
- AT&Tのカスタマーサポートに連絡する(話が通じず、無駄手間になる可能性が極めて高い)
Sambaは復活)
古いipアドレスのDHCP固定割り付けをoffにして、しばらくしたら、新しいMac Addressのほうに古いホスト名が割り着いた。このIPアドレスを smb.confに設定し、linuxをrebootしたら、sambaで繋がるようになった。
また、miniDNSへもマシンのglobal ipアドレスは正しく伝わっている。
だが、依然、次の2つがおかしい。。
DHCPが固定割り付けでも自動割り付けでもなく、Static割り付けになっている。
DMZは相変わらず剥こう。
やはり内部的には、古いMacアドレスで認識しており、なんらかの不具合がおきている模様。AT&Tのルータであるし、米国ではどうせ聞いても詳しい人などいないので、対策は、多分、ひとつしかない。
linuxのホスト名をつけ替えて、設定を全部やりなおすのだろう。。今後試す。
(目次に戻る)
yumの修正とCentOS 6.6へ
6.
yumの有効化 で参照した、
http://ftp.riken.jp/Linux/caos/centos/ が
http://ftp.riken.jp/Linux/centos/ に変わっていて、ここにRPM-GPG-KEY-CentOS-6がある。
# rpm --import http:://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
エラー: http:://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6: インポート読み込みに失敗しました(2)。
となるので、
# wget http://ftp.riken.jp/Linux/centos/RPM-GPG-KEY-CentOS-6
2015-03-23 15:58:26 (267 MB/s) - `RPM-GPG-KEY-CentOS-6' へ保存完了 [1706/1706]
と成功して、
# rpm --import ./RPM-GPG-KEY-CentOS-6
が成功するが、yum updateはepelのためにエラーになる..(以下)
# yum update
読み込んだプラグイン:fastestmirror, refresh-packagekit, security
更新処理の設定をしています
Loading mirror speeds from cached hostfile
エラー: Cannot retrieve metalink for repository: epel. Please verify its path and try again
#
https://community.hpcloud.com/article/centos-63-instance-giving-cannot-retrieve-metalink-repository-epel-error のやり方で直った。
すなわち、
/etc/yum.repos.d/epel.repo の httpsを全てhttpに書き直せば良い。
# yum -y update読み込んだプラグイン:fastestmirror, refresh-packagekit, security更新処理の設定をしていますLoading mirror speeds from cached hostfileepel/metalink | 15 kB 00:00 * epel: linux.mirrors.es.net * ius: mirror.symnds.com * remi: mirror.cedia.org.echttp://linux.dropbox.com/fedora/6/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"他のミラーを試します。エラー: Cannot retrieve repository metadata (repomd.xml) for repository: Dropbox. Please verify its path and try again#
となり、dropboxのrepoがエラー。
とりあえず、/etc/yum.repos.d/dropbox.repo
を他の場所に移動させ、yum -y update を実行。
google-chrome/filelists | 1.7 kB 00:00http://dl.google.com/linux/chrome/rpm/stable/x86_64/repodata/filelists.xml.gz: [Errno -1] Metadata file does not match checksum他のミラーを試します。エラー: failure: repodata/filelists.xml.gz from google-chrome: [Errno 256] No more mirrors to try.#
と、今度はchromeのupdateで失敗するので、/etc/yum.repos.d/google-chrome.repo も移動..
するとyumは1GBのダウンロードまで行きそこでエラー。
トランザクションの要約
================================================================================
インストール 55 パッケージ
アップグレード 856 パッケージ
総ダウンロード容量: 1.0 G
パッケージをダウンロードしています:
http://mirror.centos.org/centos/6/os/x86_64/Packages/gnutls-devel-2.8.5-14.el6_5.x86_64.rpm: [Errno 12] Timeout on http://mirror.centos.org/centos/6/os/x86_64/Packages/gnutls-devel-2.8.5-14.el6_5.x86_64.rpm: (28, 'Operation too slow. Less than 1 bytes/sec transfered the last 30 seconds')
他のミラーを試します。
パッケージのダウンロードでエラー:
gnutls-devel-2.8.5-14.el6_5.x86_64: failure: Packages/gnutls-devel-2.8.5-14.el6_5.x86_64.rpm from base: [Errno 256] No more mirrors to try.
http://mirror.centos.org/centos/6/os/x86_64/Packages/ をブラウザでアクセスすると、gnutls-devel-2.8.5-14.el6_5.x86_64.rpm は存在する。mirrorないしはnet (videoをみていたし...) 側が重たかったようで、しばらく経ってから試したら、成功した。1773個のパッケージが更新された。
Verifying : plymouth-theme-rings-0.8.3-24.el6.cento 1771/1773
Verifying : openssh-server-5.3p1-81.el6_3.x86_64 1772/1773
Verifying : ricci-0.16.2-55.el6.x86_64 1773/1773
<中略>
libreoffice-presenter-screen.x86_64 1:3.4.5.2-16.1.el6_3
openchange.x86_64 0:0.9-7.el6
samba4-libs.x86_64 0:4.0.0-23.alpha11.el6
完了しました!
rebootすると、CentOS 6.3から、CentOS6.6に上がっていて無事rebootできた。
CentOS6.6 : Linux 2.6.32_504.12.2_el6.x86_64
(目次に戻る)
rsyncとcronを用いた自動バックアップ
/root/scriptsに、nasbackup.sh, bkup_cron.shという2つのコマンドを作った。/etc/crontabを修正してbkup_cron.shを定期的に呼ぶことで、nasbackup.shから呼ばれるrsyncコマンドが、重要なファイルだけをnasないしはRAIDパーティションにバックアップをする。
crontabの書き方, cronの使い方:
http://www.server-memo.net/tips/crontab.html
#crontab -l
30 3 * * 2 /root/scripts/bkup_cron.sh
nasbackup.sh
#! /bin/sh -f
echo
echo '----------------'
echo "-=-=-=-=- backup to NAS on `date` -=-=-=-=-"
HOME=/root
OPT="-auLptHv --delete $@"
# OPT="-avn --delete" # for debugging -- dry run. --> -n option with this scripts force dry
run.
EXCL=--exclude-from=$HOME/scripts/rsync_exclude.list
SRCF=$HOME/scripts/rsync_backup.list
TARG=/home/backup/Linux02/root
echo once chd to $TARG # in order to mount NAS with automounter
pushd $TARG
popd
while read f; do
tdir=${TARG}`dirname $f`
cmd="mkdir -p $tdir"
echo Running : $cmd
$cmd
cmd="rsync $OPT $EXCL $f $tdir"
echo Running : $cmd
$cmd
done < $SRCF
bkup_cron.sh
#! /bin/sh -f
HOME=/root
LOG=$HOME/scripts/nasbackup.log
LOGSV=${LOG}.old
CMD=$HOME/scripts/nasbackup.sh
MVSIZ=20000000
if [ -f $LOG ]
then
fsize=`wc -c $LOG | awk '{print $1}'`
# echo $fsize
if [ $fsize -gt $MVSIZ ]
then
mv -f $LOG $LOGSV
echo "$LOG is bigger than $MVSIZ. Now moved to $LOGSV" > $LOG
fi
# echo "$CMD >> $LOG"
$CMD >> $LOG
fi
(目次に戻る)
Dropboxの更新
CentOS 6.5以降ではdropboxが動かない。ホームにある .dropbox等のファイルを消去しても動かない。futexをとろうとしてエラーになっている。
http://bit.ly/1BiwiGA
にあるやり方をしたら、dropboxをダウンロードし始めた。rootのパスワードを聞いてきたあと、メニューバーに一旦dropboxのアイコンが出たところで止まったが、一度、アイコン右クリックからdropboxを落として、再度立ち上げたら同期が始まり、正しく動いている模様。
It is possible to stop the autoupdate by installing Dropbox in a non-user directory where only root has access, e.g. /opt/dropbox. Move the content of the (not updated) ~/.dropbox-dist/versionnumber/ to /opt/dropbox, create a symlink from /opt/dropbox/dropboxd to /usr/bin/dropboxd by # ln -s /opt/dropbox/dropboxd /usr/bin/ in order to start dropbox normaly by the dropboxd command.Be sure /opt/dropbox is owned by root. Now you have a dropbox installation out of your userdirectory, but that is not enough. You have to be sure, dropbox is not written again in ~/.dropbox-dist.You can do this by rm -rf ~/.dropbox-distinstall -dm0 ~/.dropbox-distThat way, nothing can be written in the ~/.dropbox-dist directory.
いつまでたっても同期が終わらないファイルがあり、~/Dropbox のdirectoryに、いつまで経っても、同期中のマークが消えない。これは、所有者がrootで、自分が書き込み権限がなかったため。ownerを自分に変えたら、同期が完了した。
変更は、chown -R user:group dir1 dir2 のようにして、所定のdirectoryの下に対して、userとgroupの変更を一気にできる。
参考: chownの使い方:
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230729/
こういう症状はLinuxならでは....
(目次に戻る)