DTIのserversmanが死にかけてた・・・^^;OSの変更したいなあ・・・

3ヶ月ぶりの投稿になってしまいました 汗汗

久しぶりにDTIのServersManがどうなってるかログインしてみようとしたら、どうやってもSSHが繋がりません。

FTPもつながらない。。。

WordPressはめっちゃ時間がかかり、2回に1回ぐらいはタイム・アウトしちゃう・・・

頼みの綱のWebminもつながらない・・・(これはポート番号を変更してあったのを忘れていたせいでした・・だからちゃんとポート番号指定したらつながったかも。)

対処法は

・・・再起動・・・!

いろいろ悩んだ挙げ句・・・再起動することにしました。

DTIのServersmanはコントロールパネルから簡単に再起動することができます。
ただ、あまりにもほったらかしにしてて、なにか壊れててもう起動しないかもしれない・・・。
OSもCENTOSの5.5の32ビットで、そもそもリカバリ用OSからもなくなってる。

でも、悩んでも全く使えない状態で仕方ないので、再起動を行うことにしました。

唯一なくなるとショックなのはラジコの録音・・・。

大丈夫でした

あとからインストールしたアプリケーションがうまく起動しないとかいう理由で
OS自体が起動できなくなるなんてことはよくあることです。
とにかくいろいろインストールしているので、もしSSHが起動するところまで行かないとしたらお手上げです。
なんとかFTPだけでも動いてくれればファイルを抜き出して再構築できますが・・・

ところがこんな悩みもムダで、普通に再起動できました。

一つ問題としては、1回目はオフにしたのに、シャットダウンしませんでした。
シャットダウンを受け付けないほどおかしくなっているのかと不安になりましたが、
もう一度押したら、シャットダウンすることができました。

恐る恐る起動を押したら、あっさりSSHがつながるようになり、ホッとしました。

サクサクと動作するようになり、今回については再起動は正解でした。

ところが、環境構築中以外は再起動はやはり最終手段とすべきです。

早く再構築したい

再構築したいってことでこのブログにも記事を書いていたんですけど、
いろいろ他にもやらなきゃならないことができたりして先送りになっていました。

そのときにいろいろ調べてあったんですけど、、、ちゃんとメモしておけばよかった。いろいろ忘れています。

やりたいことメモ

ファイルの抜き出し

主にラジコのデータですね。
それ以外は、設定ファイルの一応の保管ですね。
apache、mysql、crontabくらい??こんどはNGINXにするつもりだけど。

あと、あまりにも海外からの不正アクセスに困っていたので、国内からしかつながらないようにしたんですよねえ。。。あの設定はどのファイルだったか・・・。allow.denyだったかなあ。

 

debian7→8へのアップグレード

バージョン7だとPHP7が入らないようなので、8にしたいです。
8にしたという実績はあるのですが、そのままだとうまくいかないんだとか・・・

https://teratail.com/questions/99042

これは私の質問ですが、答えてくれた人がいたので、これを試します。

一度失敗覚悟でそのままアップグレードしてみるってのもありかもしれないです。

 

ラジコの環境再構築

ま、これは、せっかくなのでね。
いまはラズパイで安定して録音できているのですけど、やっぱりバックアップ環境がほしいですね。よく失敗するので。

WordPressの構築

このサーバーにも500円が月にかかっているので、500円稼いでくれればいい感じがします。
で、このブログはラズパイでやっているのですが、アクセスも増えてきたことですし(デイリー100切るけど・・・)このブログをServersmanに移行させようかなあ、と思っています。

こんなもんか?

あれーこんなもん?
もうラジコの録音だけ抜き出してサクッと削除してしまってもいいかもしれないと思い始めています。

Debian8(jessie)でiptablesの設定

CentOSのときは、

/etc/sysconfig/iptables

を編集して、

/etc/init.d/iptables start

で再起動することで、iptablesを設定することが出来ましたが、
どうやらDebianは勝手が違う用です。

まずはiptables-persistentをインストール

$ sudo aptitude -y install iptables-persistent

ダイアログが2回出るので、両方共YESです。

設定変更

ファイルは /etc/iptables/rules.v4 またはrules.v6 になります。
まずは/etc/iptables/rules.v4の内容を削除して、書き換えてしまいます。

*filter

# ループバックは許可する。
# ループバック以外の127.0.0.0/8への接続は拒否する。
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT

# 確立済の外部から内部への接続を許可する
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# 内部から外部への接続はすべて許可する
-A OUTPUT -j ACCEPT

# 外部から内部へのHTTP(80)とHTTPS(443)の接続を許可する
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
# こんな風に追加します。これはWEBMINのポートです。
-A INPUT -p tcp --dport 10000 -j ACCEPT

# 外部から内部へのSSHの接続を許可する
# ポート番号は、/etc/ssh/sshd_config で設定したものと同じにする
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT

# 外部から内部へのpingの接続を許可する
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

# log iptables denied calls (access via 'dmesg' command)
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

# その他の接続を拒否する
-A INPUT -j REJECT
-A FORWARD -j REJECT

COMMIT

v6の方は使わないので、塞いでおきます。

/etc/iptables/rules.v6

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
COMMIT

再起動・設定変更反映

$ sudo netfilter-persistent reload

これで設定が有効になります。

svnやftpのポートも同じように開けておきます。

 

Debian8(jessie)での自動起動とsvnの起動スクリプト

debianの自動起動にはいつのまにかinsservというのを使うことになっています。

$ sudo insserv -s

こんな感じに表示されます。

K:01:0 1 6:nginx
S:17:2 3 4 5:nginx

ランレベルが2 3 4 5 では起動し、0 1 6では起動しない、ということになります。

サービスへの追加と停止はこうする。

# 追加
$ sudo insserv -d nginx
# 削除
$ sudo insserv -r nginx

insserv に追加されないサービスの時

実はsvnは追加されなかった。
ので、ちょうどよいので、自前で起動スクリプトを作って登録する方法を書いておこう。

通常は/etc/init.dの下に起動スクリプトが生成されます。

svnのは作られなかったので・・・作ってみました。

svnserve というファイル名で/etc/init.dの下に配置しました。

#!/bin/bash
### BEGIN INIT INFO
# Provides:          svnserve
# Required-Start:    $local_fs
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: svnserve
### END INIT INFO

prog=svnserve
pidfile=/var/run/svnserve.pid
#svnserve=/usr/local/subversion/current/bin/svnserve
svnserve=/usr/bin/svnserve
RETVAL=0
ROOT=/var/svn
PORT=3691

start() {
        [ ! -f $pidfile ] || exit 1
        echo -n $"Starting $prog: "
        start-stop-daemon --start --quiet --pidfile $pidfile --make-pidfile --exec $svnserve -- -d -r $ROOT --listen-port $PORT
        RETVAL=$?
        echo start svnserve
        return $RETVAL
}

stop() {
        [ -f $pidfile ] || exit 1
        echo -n $"Stopping $prog: "
        start-stop-daemon --stop --exec $svnserve
        rm -f $pidfile
        RETVAL=$?
        echo stop svnserve
        return $RETVAL
}

# See how we were called.
case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    status)
        status $svnserve
        RETVAL=$?
        ;;
    restart)
        stop
        start
        ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart}"
        RETVAL=1
esac

BEGIN INIT INFO という節がはじめに必要です。
起動させたいランレベルを書いておきます。通常は丸々コピーで良いでしょう。
また
ROOT=/var/svn
PORT=3691

と言う変数を用意して、ルートパスとポート番号を指定できるようにしました。
apacheをいれないつもりなのでhttp経由での接続は不可であるため、デフォルトの3690番は使わないほうがいいだろうとおもいます。

登録は簡単です。

$ sudo insserv?svnserve

削除はこうです。

$ sudo insserv?-r svnserve

確認はこう

$ sudo find /etc |grep svnserve
/etc/rc3.d/S01svnserve
/etc/rc4.d/S01svnserve
/etc/rc1.d/K01svnserve
/etc/rc2.d/S01svnserve
/etc/rc5.d/S01svnserve
/etc/rc6.d/K01svnserve
/etc/rc0.d/K01svnserve

 

試しに再起動してみて、ちゃんと起動しているか確かめます。

起動ユーザーはrootになりますよ。

Debian8(jessie)でsubversion(svn)をセットアップ

svnも移行しなきゃならないです。
本当はapacheでhttp接続できるようにしたいところですが、nginxでは無理そうなので、
svn://?
でつなぐ方向で諦めることにしました。

インストール

$ sudo apt-get install subversion

これだけです。

設定

リポジトリを作ってその中の設定ファイルを編集していきます。
/var/svn にtestという名前のリポジトリを作ります。

$ sudo mkdir /var/svn
$ cd /var/svn
$ sudo svnadmin create test

権限はデーモンを起動させたユーザーにすればいいようです。

$ sudo chown -R svn:svn test

コミットする時のユーザーとパスワードを設定します。
このユーザーはシステムに存在する必要はないようです。迷う部分ですね。

$ sudo vi /var/svn/conf/passwd
[users]
test = test

書式は
ユーザー名 = パスワード
です。

$ sudo vi /var/svn/conf/svnserve.conf

以下の3行をコメントを外して生かします。

anon-access = read
auth-access = write
password-db = passwd

サービスを起動

デーモンとして起動させます。
上にも書きましたが、起動させたユーザーの書き込み権限でリポジトリにアクセスしますので注意です。

$ svnserve -d

リポジトリのURLはこうなります。
この場合はパスはルートから書きます。

 

リポジトリのルートを指定したり、ポートを変更するにはこうします。

svnserve -d -r /var/svn --listen-port 3691

リポジトリURLは以下のようになります。ポート番号を:でつければいいです。

さらに、複数リポジトリを設定したい場合は複数のリポジトリを置くだけです。

svn://192.168.26.149:3691/test1
svn://192.168.26.149:3691/test2
svn://192.168.26.149:3691/test3

こんな感じで。

新しく起動させるにはkillしてプロセスを停止させないと2重3重起動になってしまいます。
起動スクリプトを使うべきですが、通常/etc/init.dにインストールされるはずの起動スクリプトはインストールされませんでした。

リポジトリの移行

バックアップ、リストア、と言う専用のコマンドがあるのですが、
試しにごっそりコピーしてみた所普通に移行が可能でした。
自分だけでしか使ってないという場合には、tarで固めて持っていくだけで良さそうです。

 

Debian7(wheezy)をDebian8(jessie)にアップグレード。ついでにPHP7もインストール

本来はDebian8(jessie)を新規でインストールした方がいいに決まっているのですが、DTIの方で提供されていないのですから仕方ありません。

こちら

を参考にさせていただきました。
ただし、この方法では駄目みたいですよ。

ここ

にありますようにSystemdが邪魔して起動しなくなってしまうようです。
この件はまたあとで書くとして、まずはVMWareにて実験をしてみました。

 

まずはsudoとsshの設定

インストールしたてはまずはsudoとsshの設定ですね。

sudo

ルートになって作業します。

# vi /etc/sudoers
user ALL=(ALL:ALL) ALL

これでuserでsudoが使えるようになります。

ssh

$ sudo apt-get install ssh

$ sudo vi /etc/ssh/sshd_config

PermitRootLogin yes
↓
PermitRootLogin no

Port 22
↓(任意の番号に変更)
Port 9999

$ sudo service ssh restart

Debian7(wheezy)をDebian8(jessie)にアップグレード

1./etc/apt/sources.listを編集

もとにあったのはコメントにしてこれを追加します。

deb http://ftp.riken.jp/Linux/debian/debian/ jessie main
deb-src http://ftp.riken.jp/Linux/debian/debian/ jessie main

deb http://security.debian.org/ jessie/updates main
deb-src http://security.debian.org/ jessie/updates main

# jessie-updates, previously known as ‘volatile’
deb http://ftp.riken.jp/Linux/debian/debian/ jessie-updates main
deb-src http://ftp.riken.jp/Linux/debian/debian/ jessie-updates main
# PHP 7
deb http://packages.dotdeb.org jessie all

ついでにPHP7をインストールするためのリポジトリも追加しておきます。

 

2.apt-get update

警告が出た場合

apt-get install debian-archive-keyring

を実行します。VMWareでは警告が出ませんでした。

3.apt-get dist-upgrade

 

で、結構時間がかかりますが、アップグレードされます。
serversman@vps錠では関係ありませんが、結構UIも変わりますね。

バージョンを確認するにはこうします。

$ cat /etc/issue
Debian GNU/Linux 8 \n \l

 

PHP7をインストール

Debian8(jessie)に無事アップグレードできたらPHP7をインストールします。

 

1.dotdebのリポジトリの鍵情報をダウンロードして追加

$ wget https://www.dotdeb.org/dotdeb.gpg
$ sudo apt-key add dotdeb.gpg

 

2.インストール確認

$ sudo apt-get update

-sオプションを使って、php7がインストールできるようになったか確認します。

$ sudo apt-get -s install php
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが新たにインストールされます:
php
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
Inst php (1:7.0+42-1~dotdeb+8.1 packages.dotdeb.org:jessie [all])
Conf php (1:7.0+42-1~dotdeb+8.1 packages.dotdeb.org:jessie [all])

 

3.インストール

php7を単独でインストールしようとするとapache2も入ってしまうそうです。
なので、こうします。ついでに、あとでwordpressをインストールするためのモジュールもいれてしまいましょう。

$ sudo apt-get install php7.0 php7.0-fpm php7.0-mysql php7.0-mbstring php7.0-xml php7.0-gd php7.0-curl

 

4.バージョン確認

バージョン確認して、おしまい!

$ php -v
PHP 7.0.25-1~dotdeb+8.1 (cli) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.25-1~dotdeb+8.1, Copyright (c) 1999-2017, by Zend Technologies

DTIのServersMan@VPSのDebian7ではPHP7がはいらないみたい

色々迷ってDebianだーときめて、とりあえずVMwareにインストールしてみたのだけど、
Debianってすでにバージョン9になっているのに、
提供されているのは7までなんですよね。

試しにVMWareに、Debian7(wheezy)をインストールしてみると、すぐに困ったことが起きました。
PHP7が上手くインストールできない!のです。

“Debian php7″のように検索するとDebian8(jessie)の情報が出てきてしまいます。

Debian8(jessie)のphp7のインストール方法を試す

以下を参考に・・・

ざっと以下の手順です。

1./etc/apt/sources.list に http://packages.dotdeb.org を追加

# PHP 7
deb http://packages.dotdeb.org jessie all

2. 鍵情報をダウンロードして追加

$ sudo wget https://www.dotdeb.org/dotdeb.gpg
$ sudo apt-key add dotdeb.gpg

3.?apt-get update

4.?apt-get install php

残念ながら、Debian7(wheezy)で行ってもinstallでエラーになってしまいます。
sources.listがjessieになっているのが問題かと思い、wheezyに変えてみましたが、そういう問題では無いようでNGでした。

Debian7(wheezy)をDebian8(jessie)にアップグレードしてしまえば?

どうやら、DTIのServersman@vpsをDebianで使っている方はDebian8(jessie)にアップグレードして使っている方が多いようです。ちなみに最新は9なのですが、サーバー構成に問題があるようでアップグレードは不可能なようです。

というわけで、まずはVMWareでDebian7(wheezy)をDebian8(jessie)にアップグレードの実験を行いました。

DTIのServersMan@VPS(Entryプラン)のOSをどうするか

昔はCentOS5の32bitしか選択肢はありませんでした。

今はこ?んなに選べるようになっています。

今まで通りCentOSにして最新版の7にしたいところですが、実はPHP7が上手くはいらないらしいです。
だとしたらUbuntuかDebianかなあ。

GUIで使うのならUbuntuも良いと思ったのですが、CUIでしか使いません(つかえない?)のでDebianが無駄がなさそうですね。

Debian7の64Bitで決まりかなあ?

 

CentOS

CentOSのダウンロードはこの辺から。

フル版でisoが4GB以上あるようです。

Debian

Debianのダウンロードはこの辺から。

最新の9.2.1しかダウンロードできないのかな・・・?

ちょっと調べているのだけど、古いバージョンが見つからない・・・。なんでかな??

Debian7発見。ここから

Debian6はここから

6を選ぶメリットはないかな?使うなら7の64ビットかなあ。
でも、ちょっと見てみたら、結構容量が大きいのですね・・・!ダントツかも。
DVDメディアでも3枚とかです。UbuntuはDVD1枚だったような気がしますが・・・。

ネットインストールというのなら小さいですけど、時間がかかりそうですね。
ちょっとおもしろそうなので、VMWareで試しインストールしてみようかな・・・?

 

DebianはMacOSみたいにコードネームがついているようですね。

Debian 9 (stretch)
Debian 8 (jessie)
Debian 7 (wheezy)
Debian 6.0 (squeeze)

8や9はまだServersMan@VPSではまだ選べないようですね。

Ubuntu

ダウンロード

ここが一番まとまってる印象。
実際には16.04が最新のようですけど、選択できるのは12と14です。

Ubuntu 12.04.1 – 2017年4月までサポートとなっていますので、今選ぶなら14かな??

 

とりあえず?

とりあえずまずはDebian7で行こうとおもいます。そのために1回ネットインストールを試してみようかと思っています。すんなり行くかな・・・?

 

DTIのServersMan@VPS(Entryプラン)をそろそろリストアしたい

DTIのServersMan@VPS(Entryプラン)を長年使っているのだけど、
HDDはラジコの録音でいっぱいだし、録音失敗するし、サポート切れのCentOS5(32ビット)だし、PHP7いれられないし、、、で、リストアしたいけどなかなかできずにいました。

でも死蔵していた3TBのHDDをPCにやっと接続したので、一旦データを吸い上げることが可能になった。というわけで、リストアを考えたいです。

ラジコデータの吸い上げ

一番必要なのはラジコの録音データ。もう聞かない(聞けない・・・)ほど溜まってしまっているが、やはり念のため・・・。

設定のバックアップ

いろいろな設定をしたけど全然覚えてない。いまつかっているCentOS5(32ビット)に戻すことはもう不可能になるので、設定そのものが今後使えるのかどうかわからない。と言うかいらないソフト入れないようにしたいけど。

Webmin

事あるごとにこれがはいっていたことによって助かった。SSHがログイン不能になってもこれは大丈夫だったんだよね。メールサーバーが襲われて応答不能になったりしたときも、WEBサーバーは強いんだね。Webminから怪しいプロセスをkillしまくることで何度となく復活したのです。というわけで、これは外せない。インストールは簡単だけど。

1.560を最後で以降に日本語化ができなくなっています。

日本語化可能最終バージョン
http://sourceforge.net/projects/webadmin/files/webmin/1.560/webmin-1.560-1.noarch.rpm/download

 

subversion(SVN)のリポジトリ

Git全盛だけど、どうせ自分ひとりでしか使わないのでSVNをそのまま使っています。
バージョン管理が簡単にできてほんとうに便利。ただ、以前からサーバー移転のときってどうするのか疑問だった。
設定ファイルはこのあたり
/etc/httpd/conf.d/subversion.conf

WordPress

まだあまり運用していないけど、いくつか設定済みなので移行しようと思う。

apache関連

Nginxに変更しようと思ってる。
けど、どんな設定してたかは保存しておこうと思う。

 

iptables、hosts.allow、hosts.deny

一時期あまりにも海外からの不正アクセスが多くて海外アクセスを遮断した。
/etc/sysconfig/iptables
設定コマンドもあるけど、このファイルを編集してしまったほうがわかりやすくて好み。

sshはアクセス元を厳しくしてる。
/etc/hosts.allow

ALL:*.eo.eaccess.ne.jp
ALL:*.sakura.ne.jp

な感じにして、
/etc/hosts.deny

ALL:ALL
でallow以外をすべて拒否してる。