VPSでiptableの設定しましたが、
これだけでは再起動すると設定が消えてしまいます。
これを解決します。
# apt-get install iptables-persistent
これをインストールすると設定が保存できます。
保存には、
# iptables-save
と撃ち込めばOK。
これをやっておけば、再起動してもiptableの設定が復元します。
VPSでiptableの設定しましたが、
これだけでは再起動すると設定が消えてしまいます。
これを解決します。
# apt-get install iptables-persistent
これをインストールすると設定が保存できます。
保存には、
# iptables-save
と撃ち込めばOK。
これをやっておけば、再起動してもiptableの設定が復元します。
今回はVPSにファイアーウォールを設定します。
使用するのはiptablesです。
これを設定しないと、全ポートが解放されている状態となり、
仮に、サーバに悪意のあるソフトが仕込まれ、ポートをlistenしている状態になっていると、
攻撃者はそのポートにアクセスするだけで簡単にサーバを書き換えることができてしまいます。
しかし、iptableを設定することで、外からの許可されたポート以外は全てiptablesでブロックしてくれます。
まずは、現状を確認
# iptables -nL
たぶん全ポート開放状態です。
データを持たないパケットを破棄
# iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
SYNflood攻撃と思われる接続を破棄
# iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
ステルススキャンと思われる接続を破棄
# iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
localhostからの通信とpingを許可
# iptables -A INPUT -i lo -j ACCEPT
httpによるアクセスを許可
# iptables -A INPUT -p tcp -m tcp –dport 80 -j ACCEPT
# iptables -A INPUT -p tcp -m tcp –dport 443 -j ACCEPT
その他、使用しているサービスのポートを許可する
# iptables -A INPUT -p tcp -m tcp –dport [ポート番号] -j ACCEPT
確立済みの通信を許可に設定
# iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
許可した通信以外のサーバに受信するパケットを拒否し、サーバから送信するパケットを許可
# iptables -P INPUT DROP
# iptables -P OUTPUT ACCEPT
この状態で、使用しているサーバアクセスが一通りできることを確認する。
できなければ、そのポートを開放する。
で、この設定を保存するんだけど、通常ならservice iptables saveでできるはずなんだけど、
なぜかできないので、スクリプトを作って、再起動する度に設定を行うようにする。(めんどくせー)
これでファイアーウォールの設定できました!
最初はVPSにメールサーバを立てようかと思ったけど、
いろいろ設定がめんどくさいのと、
セキュリティ的に怖いので、やめた。
ソフトはpostfixとDovecotを使用するんだけど、
まず、DNSの設定を変えなくちゃ行けない。
MXレコードとTXTレコードね。
あと、問題はスパムメール。
これを防げる自信は無い。
みんながいつも受け取っているメールの量の二倍ぐらいはスパムメール飛び交っているんだぞ。
で、お名前.comの共用メールサーバを借りることにした。
特に難しい設定はいらない。
ただ、ドメインの正引きが変わるので、メールサーバのDNS設定を忘れないこと。
設定はお名前.comの設定と同じ。
うん、簡単。
通常、コマンドプロンプトは、
[ユーザ名]@[ホスト名]:[カレントディレクトリ] $
となっている。
このホスト名の部分を変更する。
$ sudo hostname [ホスト名]
これだけ。
VPSにMySQLを入れます。
$ sudo apt-get install mysql-server
rootのパスワードを聞かれるので、パスワードを入力。
これだけ。
動作確認
$ mysql -u root -p
先ほど入れたパスワードを入力して、mysqlのプロンプトに変わればOK!
前回はVPSにnginxを入れました。
今回はPHPを入れて、nginxと連携させます。
まずはインストール
$ sudo apt-get install php php-fpm php-mysql
PHPプラグインを有効化
$sudo vi /etc/php/7.4/fpm/php.ini
cgi.fix_pathinfo=0
phpプラグインを再起動
$ sudo systemctl restart php7.4-fpm
nginxの設定
$ sudo vi /etc/nginx/sites-available/default
serverの項を書き換えます
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
server_name [ドメイン名];
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
設定を読み込む
$ sudo systemctl reload nginx
お次はPHPが動いていることの確認
$ vi /var/www/html/info.php
以下のコードを書く。
これはPHPの情報を一覧に表示するコード
<?php
phpinfo();
?>
保存したらブラウザでinfo.phpにアクセスしてみる。
PHPの情報が表示されればOK!
お次はHTTPサーバを立ち上げます。
今回はnginxを使用します。
Apatchも良かったのですが、全部コミコミでフル実装できる分、余り使わない機能も動いているので、少々重い。
しかし、nginxは必要な機能を別途組み込む必要がありますが、その分軽量です。
スペック的に非力なサーバならnginxを使用する方が良いと思ったわけです。
早速インストール。
$ sudo apt-get install nginx
インストールが終われば、
# service nginx start
ブラウザで
http://[ドメイン名]/
にアクセスして、
Welcome to nginx!
と表示されればOKです。
wwwのルートは
/var/www/html/
です。
VPSにサーバを立ち上げましたが、
サーバにアクセスするのにかっこ悪いホスト名が付けられています。
このままでは使いづらいので、ちゃんとしたドメインを付けてあげましょう。
お名前ドットコムなら.clubが30円で取得できます。
でも安いから競争率は高いです。
ドメインの獲得は早い者勝ちなので、VPS立ち上げたら、すぐに購入した方が良いでしょう。
運良くドメインが取れたら、すぐにドメインとIPアドレスを関連付けます。
VPSのIPアドレスをお名前ドットコムに登録する。
DNS関連設定からAレコードに、
[ドメイン名]とwww.[ドメイン名]の2つ、IPアドレスを設定します。
設定が完了して、登録すれば、最長72時間後に設定完了のメールが届きます。
(なので、ドメイン取ったらすぐに設定しましょう!)
お次はconoha側の設定です。
コントロールの逆引きホスト名の欄に、お名前ドットコムで取得したドメイン名を設定します。
これで設定完了。
sshからホスト名で接続してみましょう。
接続できれば設定完了です。
Alexaで音楽を聴こうと思っても、実は自前で持っている音楽は聴くことができないのです。
ではどうするかというと、他の音楽配信サービスを介して、こちらが要求した音楽をAlexaが探してくれる、という形になります。
対応している音楽配信サービスは、
のみ。
Spotifyはプレミアム登録者じゃないと利用できないのが地雷です。
まぁ、Amazon musicも有料サービスなので、どちらにしてもお金がかかるのですが。
でも幸い、オイラはAmazon Prime登録者なので、いまのままでも100万曲の音楽再生はできるのですが、でも、せっかくAlexaさんがいるんですもの、もっと音楽を楽しみたいじゃないですか。
そこで調べてみると、こんな物を見つけました。

Amazon music Unlimitedに登録すると、6500万曲から音楽を再生できます。
しかし、 Amazon music Unlimitedに普通に登録すると、さらに月額780円かかります。
ところが、一番右、Echoプランというのがあり、これを使用すれば 月額380円で Amazon music Unlimitedの曲数がEchoで再生できるのです。
Echoでしか再生しないのであれば絶対このプランの方がお得。
登録方法はAlexaに
「Alexa、 Amazon music Unlimitedに登録して」
と言えば登録完了。
実際に使ってみた。
が、
滑舌が悪いせいか、Alexaさんが正しくアーティスト名や曲名を認識してくれません。
こういうときは、アプリからリストを選択して、再生指示を出すこともできます。
PCなどでストア内を検索し、あらかじめリストに登録することで、Alexaアプリから再生する曲を指示することができます。
特定の曲を聴きたいときは、こちらの方が都合が良いかもしれません。
ちなみに、ストアで検索して見ましたが、自分好みの曲は、Amazon music Unlimitedが一番揃ってるという感じでした。
これはSpotify、YouTubeミュージックと比較して感じたことなので、間違いないです。
ここにはない曲が Amazon music Unlimited にはあることが多かったです。
ただし、あくまでも個人的な見解です。好みは人それぞれですから。
無料期間を利用して比較するのが一番だと思います。
VPSとはクラウド上にサーバを立ち上げることができます。
レンタルサーバと違うのは、レンタルサーバは機能が制限されている代わりに、
いろいろな機能が簡単に使用することができます。
VPSになると、クラウド上に自分専用の仮想サーバを設置することができ、自由に設定できます。
自由になる分、機能を使用するには自分でサーバの設定を作らなければならず、高度な知識が要求されます。
でも今の連辣サーバでは物足りないと感じたため、VPSでサーバを立ち上げることにしました!
オイラが選択したのはConoha VPSです。
お手頃価格でそれなりのサーバを運用できます。
個人で使用するには十分ではないでしょうか。
OSはUbuntu16.04LTSを選択しました。
自宅で使用しているOSなので、使用しやすいでしょう。
と思ったんですが。
いろいろ勝手が違うもので。
いろいろメモしておきます。
まずはSSHでrootログイン。
キーを作った場合はダウンロードして保存しておく。
そのキーファイルを使用してログインする。
rootで使用し続けるのは危険なので、管理者ユーザーを作成。
# adduser [ユーザー名]
パスワード設定
# passwd [ユーザー名]
ユーザー作成を確認
# su [ユーザー名]
一度抜ける
$ exit
管理者ユーザーにsudo実行権を設定する。
# vi /etc/sudoers
%[ユーザー名] ALL=(ALL:ALL) ALL
の行を追加。
(%はグループを表す。ユーザーの所属グループはユーザー名と同じ)
# su taki
sudoが使用できることを確認
$ sudo echo “aaaa”
SSHでログインする設定を行う
作成したユーザーのホームへ移動
$ cd ~
./.sshディレクトリ作成
$ mkdir .ssh
実行権の設定
$ chmod 700 .ssh
./.sshディレクトリへ移動
$ cd .ssh
ここで認証キーの作成を行う。
teratermでキーを作成し、秘密鍵、公開鍵を作成
公開鍵を/home/[ユーザー名]/.ssh/にauthorized_keysとして保存
一旦rootに戻る。
$ exit
公開鍵を使用したログインに設定変更
# vi /etc/ssh/sshd_config
AuthorizedKeysFile %h/.ssh/authorized_keys
の先頭の#を消して保存
SSHを再起動
# service sshd restart
authorized_keysの実行権を変更
# su [ユーザー名]
$ sudo chown -R taki authorized_keys
これで、管理者ユーザーでsshログインできるはず。
秘密鍵を使ってログインできることを確認する。
rootでのsshログインを禁止する。
PermitRootLogin no
に変更。
SSHを再起動
$ exit
# service sshd restart
rootでsshログインできないことを確認。
sshのポート番号を変える
$ sudo vi /etc/ssh/sshd_config
Port [ポート番号]
22から大きな値(空いている番号)を書き込み保存
SSHを再起動
# service sshd restart
新しいポート番号でsshログインできることを確認
ポート番号22でログインできないことを確認
以上。