サーバーを借りるところからminecraftサーバーを立てるところまで
前書き
みなさんこんにちは
理系が恋に落ちたので証明してみたのアニメを見て白衣着たことねぇなぁって思っているなゆたです.
このブログはLOCAL学生部総大会企画ブログリレーの記事となります.
とりあえずサーバーを借りるところから
総大会が始まってすぐさくらのVPSを借りてドメインを取得.さっそく1万2千円ほどお金を使う.
そして設定
サーバーの設定まとめ
- OSインストール(ubuntu18.04)
- 一般ユーザーの追加
- 公開鍵認証の設定(sshdを再起動しないと反映されない)
- パケットフィルタ(ssh:22 minecraft:25565)
- DNSの設定
- minecraftサーバーのインストール
- minecraftワールドのバックアップ
OSインストール
さくらのVPSのコンソールからサーバーを選択し,各種設定からOSをインストールします.
今回はubuntu18.04 LTSをインストールしました.
理由は特にないですが,単純に使い慣れているからです.
一般ユーザーの追加
OSをインストールしたら早速sshでログインします. ですがこの状態だとrootユーザーで簡単にログインできてしまうのでセキュリティがガバガバです. なのでminecraftを触る前に先に最低限のセキュリティをかけていきます.
$ sudo adduser USER_NAME
これでUSER_NAMEというなのユーザーを追加することができますのでUSER_NAMEを適宜置き換えてユーザーを作ります. そして管理者権限で実行するためのsudoを使えるようにします.
$sudo gpasswd -a USER_NAME sudo
これでUSER_NAMEというユーザーはsudoを使うことができるようになりました. 今のうちにユーザーを切り替えておきましょう.
$su USER_NAME
これで一般ユーザーに切り替わりました.
公開鍵認証の導入
これで一般ユーザーを作ることができましたが,セキュリティは何も解決していないのでここから認証を導入していきます. 今回は公開鍵認証を使います. まず自分のPCで
$ cd ~/.ssh $ ssh-keygen -t ed25519 -f id_ed25519
します.
そうするとsshの鍵が作られますので
$scp id_ed25519.pub USER_NAME@XXX.XXX.XXX.XX:~/.ssh
します(XXX.XXX.XXX.XXにはサーバーのIPアドレスを入力してください) そうするとサーバーの方に公開鍵がコピーされますので,
$ssh USER_NAME@XXX.XXX.XXX.XX
してリモートサーバーにログインします. その後
$cd .ssh $cat id_ed25519 >> authorized_keys $chmod 600 .ssh/authorized_keys
します. これで公開鍵認証ができます.
その後,パスワード認証と管理者アカウントでのログインを禁止します.
設定ファイルが
このファイルを操作するには管理者権限が必要なので
$sudo vi /etc/ssh/sshd_config
でviを使って操作します.
操作する箇所は
#PermitRootLogin yes
を
PermitRootLogin no
に,
PasswordAuthentication yes
を
PasswordAuthentication no
に変更してください.
これで設定は完了したので,
$sudo /etc/init.d/ssh restart
でsshを再起動してください
パケットフィルタの設定
パケットフィルタの設定はVPSのコンソールで行います.
サーバーを設定した後パケットフィルタの欄から開きます.
その後,パケットフィルタ設定へというボタンを押し設定します.
今回はマイクラのサーバーとsshすることにしか使わないので,
ssh用のportの22番とminecraft用のportの25565番を解放し,ほかは使わないです.
sshの欄にチェックした後,カスタム接続許可port設定から25565番をTCPで設定します.
これでパケットフィルタの設定は完了です.ほかに使いたいportがあればここで許可してください.
DNS設定
これもさくらのDNSを使わせていただいたのでDNSのコンソールでゾーン設定から行えます.
dockerとdocker-composeのインストール
今回はminecraftのサーバーをdockerで立てようと思っています.
よってdockerをインストールします.
インストールは参考資料にある公式ドキュメントに従ってください.
minecraftサーバーのインストール
dockerを使って立てるのでDockerfileを書きます.
今回はk2wankoさんのminecraftサーバーを使うことにします.
まずminecraft関連のデータを入れるディレクトリを作りそこに移動します.
$mkdir minecraft $cd minecraft $vi minecraft
Dockerfile
FROM k2wanko/minecraft:forge-1.7.10
このファイルを作ったら
$docker build -t k2wanko/minecraft .
これでビルドが始まります. しばらく待ってビルドが終わったら,
$docker run -it -p 25565:25565 -e "EULA=true" k2wanko/minecraft
これでminecraftのサーバーが起動しますので設定したドメインにminecraftでアクセスすれば入れるはずです.
参考文献