taki のすべての投稿

VPSのFTPポートを変更する

これはえらい人からの指示で調べた。

まずは、vsftpsにポート設定を書き足す。

$ sudo vi /etc/vsftpd.conf

listen_port=制御用ポート番号
pasv_enable=YES
pasv_min_port=データ通信用ポート番号(下限)
pasv_max_port=データ通信用ポート番号(上限)

まぁ、この設定を書き込むには、FTPの仕組みを理解しなければいけないわけで。

FTPは制御用ポートとデータ用ポートの2つを使用します。

デフォルトでは制御用ポートが20、データ用ポートが21です。

なので、iptablesの設定も、両方のポートを開ける必要がありました。

FTPのポート番号を変える場合はパッシブモードにする必要があります。

パッシブモードにした場合、データ用ポートはサーバ側でランダムに決定されます。

でも、本当にランダムだと、ファイアーウォールの設定が面倒なので、

そのポート番号の範囲を決めてあげる必要があります。

その下限をpasv_min_portで、上限をpasv_max_portで設定します。

つまり、ここでポートを指定してあげれば、ファイアーウォールはその部分だけ開ければ良いことになります。

まぁ、今回はめんどうなので、上限も下限も同じ値にして、データ用ポート番号も固定にしました。

FTPサーバを再起動

$ sudo /etc/init.d/vsftpd restart

iptableのポートを開けます

$ sudo iptables -I INPUT  -p tcp –dport 制御用ポート番号 -j ACCEPT

$ sudo iptables -I INPUT  -p tcp –dport データ用ポート番号(下限):データ用ポート番号(上限) -j ACCEPT

この時点で、新しいポート番号でデータ転送ができることを確認。

変更前のポート番号を閉じる

まずは、iptableの設定一覧を表示

$ sudo iptables -nL –line-number

一覧の中から削除する設定番号を指定する。

$ sudo iptables -D INPUT 設定番号

iptableの設定を保存

$ sudo iptables-save

これで完了です!

iptableの設定を保存する

VPSでiptableの設定しましたが、

これだけでは再起動すると設定が消えてしまいます。

これを解決します。

# apt-get install iptables-persistent

これをインストールすると設定が保存できます。

保存には、

# iptables-save

と撃ち込めばOK。

これをやっておけば、再起動してもiptableの設定が復元します。

VPSにファイアーウォールを設定する

今回は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の設定と同じ。

うん、簡単。

VPSにPHPを入れる

前回は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!

VPSにHTTPサーバを立ち上げる

お次はHTTPサーバを立ち上げます。

今回はnginxを使用します。

Apatchも良かったのですが、全部コミコミでフル実装できる分、余り使わない機能も動いているので、少々重い。

しかし、nginxは必要な機能を別途組み込む必要がありますが、その分軽量です。

スペック的に非力なサーバならnginxを使用する方が良いと思ったわけです。

早速インストール。

$ sudo apt-get install nginx

インストールが終われば、

# service nginx start

ブラウザで

http://[ドメイン名]/

にアクセスして、

Welcome to nginx!

と表示されればOKです。

wwwのルートは

/var/www/html/

です。

VPSサーバにドメインを関連付ける

VPSにサーバを立ち上げましたが、

サーバにアクセスするのにかっこ悪いホスト名が付けられています。

このままでは使いづらいので、ちゃんとしたドメインを付けてあげましょう。

お名前ドットコムなら.clubが30円で取得できます。

でも安いから競争率は高いです。

ドメインの獲得は早い者勝ちなので、VPS立ち上げたら、すぐに購入した方が良いでしょう。

運良くドメインが取れたら、すぐにドメインとIPアドレスを関連付けます。

VPSのIPアドレスをお名前ドットコムに登録する。

DNS関連設定からAレコードに、

[ドメイン名]とwww.[ドメイン名]の2つ、IPアドレスを設定します。

設定が完了して、登録すれば、最長72時間後に設定完了のメールが届きます。

(なので、ドメイン取ったらすぐに設定しましょう!)

お次はconoha側の設定です。

コントロールの逆引きホスト名の欄に、お名前ドットコムで取得したドメイン名を設定します。

これで設定完了。

sshからホスト名で接続してみましょう。

接続できれば設定完了です。

Alexaさんで遊ぼう2 音楽を聴くには?

Alexaで音楽を聴こうと思っても、実は自前で持っている音楽は聴くことができないのです。

ではどうするかというと、他の音楽配信サービスを介して、こちらが要求した音楽をAlexaが探してくれる、という形になります。

対応している音楽配信サービスは、

  • Amazon music
  • Spotifyプレミアム
  • Tuneln

のみ。

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 にはあることが多かったです。

ただし、あくまでも個人的な見解です。好みは人それぞれですから。

無料期間を利用して比較するのが一番だと思います。