ゲームする際の、ハードウェアの重要性の話

これが現在のバンドリガールズバンドパーティ(通称ガルパ)の状態です。

プレイしてて思ったのが、iPad mini3(16GB)からiPad Pro 11インチ(64GB)にハードを変更してからフルコンボ楽曲が増えました。

特に、天下トーイツAtoZやThis gameをフルコンできたのは大きいです。

レベル27の曲をフルコンできたのです。

まず、画面が大きくなったため、ノードの大きさも大きくなった。

そして、画面キャプチャしながらのプレイでもカクカクしない。(ストレージ容量が大きくなったというのも関係して居るかも。)

さらに、プレイ中に画面が遅延する通称「ゾーン」と呼ばれる現象が起きなくなりました。

格段に快適にプレイできるようになりました。

やっぱりハードってゲームのプレイに影響するんだなぁ。

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でできるはずなんだけど、

なぜかできないので、スクリプトを作って、再起動する度に設定を行うようにする。(めんどくせー)

これでファイアーウォールの設定できました!