プラグイン集

無料ブログはココログ
2021年10月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

サンプルJS

  • ユーロバカ一代の締切
    ・・・初期化中・・・

« 第7回マインクラフトサーバーを構築する(ファイアウォール(暫定)編) | トップページ | 第9回マインクラフトサーバーを構築する(webサーバー編) »

2014年3月14日 (金)

第8回マインクラフトサーバーを構築する(マインクラフトサーバー編)

注意事項は第1回へ。
前回は第7回へ。

ーーーーーーやること一覧ーーーーーー

  • セキュリティで最低限やること一覧

1.Yumは確実にアップデートする
2.iptablesで確実に不要なポートをふさぐ
3.SSHのパスワード認証を切る→RSA認証
3.1.rootログインさせない
3.2.ポートを変える
3.3.しつこい奴はDenyHost
3.4.そもそも、SSH可能なユーザーを絞る
3.5.同時SSH可能な数を絞る
4.rootになれるユーザーを絞る
5.ウイルス対策ソフト
6.ファイル改ざん検知
7.rootkit検知
8.不要なサービス停止

9.攻撃検知・防御・排除(バッファーオーバーフローとかDOSとか)
10.ログ監視と調査
11.鯖情報の非表示(Apachやphpのレスポンスを返さないように設定)
12.ApachのSSL化
13.ポートスキャンを遮断
14.DDNSサーバーへの変更通知
15.バックアップ

  • サーバーの設定と起動

1.NTPサーバー
2.マインクラフトサーバー
3.(SQLサーバー)
4.webサーバー
5.webサーバーのSSL化
6.SNMP+MRTG
7.(アクセス解析サーバー)
8.メールサーバー(送信)
9.メールサーバー(受信)
10.メーリングリストサーバー

赤字は作業終了を示す。

ーーーーーーここからが作業ーーーーーー

3本柱のうちの一本、主幹となるマインクラフトサーバー立てちゃいましょう。
とりあえず、which java を実行して、javaのパスが通っていれば、JAVAが使える。
インストールしたのに、javaのパスが表示されないなら、探して、環境変数に加える。
updatedb;locate;でも、findでも好きなコマンド使ってくれ。

無かったら、Oracleにアクセスして、 Java Runtime Environment (JRE) を落としてきて、インストール。makeでもrpmでもご自由に。MOD製作を考えている人は、JAVA SEでもOK。
まぁ、普通の人はJREでいい。SEは開発者向けだ。(実行環境に差は無いけど、コンパイラとかがついてくる分、SEの方が容量有る。)

which javaでjavaが表示され、javaの実行環境が揃ったら、マインクラフトのサイト行って、サーバーのjarファイルをダウンロードする。
あらかじめ、SELinux設定済みの専用ディレクトリにダウンロードする。ユーザーのhome以下の専用ディレクトリならまだしも、home直下とかrootとかに作る奴は間違えなく管理者失格。自分のデータがネットでさらされてm9(^Д^)プギャーされるだけです。/rootとか入れたら、俺rootかよ、超(^Д^)メシウマってマシンがスナイポの手下のゾンビにされます。

公式に、java -Xmx1024M -Xms1024M -jar minecraft_server.jar nogui で動かせって書いてあるから、その通りに、シェルスクリプト作成。毎回入力するぜって人は、作らなくても問題ない。

noguiオプションを外すと、ウインドウが表示される。X Window 立てっぱなしなら、外しても問題ない。
個人的には、スレッドの負荷のバーとか、メモリの状況が見られておもしろいが。リソース節約するなら、やはり、noguiで起動。

(Windows Serverだったら、exeダウンロードして、ダブルクリックで終了。実に簡単っすなぁ。)

シェルスクリプトに実行権限与えて、実行。終わったらSTOPで停止する。
初回は、ファイルが作られる。
2回目は、ワールドが作られる。
3回目で、データが出揃って、遊べるようになる。

@wikiに作られてるMinecraft Japan wikiのマルチプレイ項目、サーバーの設定を参考に自分の思い通りに設定する。
この辺の設定は、Windowsと共通だから、ググれば多量にでてくる。
screenコマンドでデタッチして、再接続方法が主流だけど、多大なるセキュリティリスクを背負って、rconを使用する。

enable-rcon=true
rcon.password=(」・ω・)」うー!(/・ω・)/にゃーLet's\(・ω・)/にゃー!
rcon.port=25575

こんな感じに設定して、マインクラフト海外フォーラムからrconユーティリティを落としてきて、接続すればよし。SSHでログインしなくても、マインクラフトサーバーにコマンドが送れる。
screenのデタッチに失敗するの私だけか?結構高頻度でデタッチ失敗して、kill -KILLせざる得なくなる。長時間タスクやらせてログアウトする時は、nohup コマンド < /dev/null で実行してた。screenのデタッチ失敗するから。

あとは、入らせたくないユーザーやIPは、banned~.txtに、管理者はops.txtに、許可者リストを使うなら、white-list.txtに必要事項を記述。

設定終わって、3度の起動が終わったら、遊べ流状態になる。
「さぁ、設定終わった。さっそく友達呼ぶぞ!」と思った人は、今すぐ全データ消してサーバー構築止めるべき。致命的に知識が足りてない。あれ?と思った人は、まだ資格有り、続行しよう。ファイアウォールとルーターのNAPTの設定がまだですね。

前回設定したiptables の設定を変える。/etc/sysconfig/iptables に直書きなら、
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25565 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25575 -j ACCEPT
の要領でファイアウォールに穴開ける。そして、iptables を再起動。
スクリプトなら、
/sbin/iptables -A INPUT -p tcp -m state --state NEW --dport 25565 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m state --state NEW --dport 25575 -m hashlimit --hashlimit-name t_mc --hashlimit 3/m --hashlimit-burst 15 --hashlimit-mode srcip --hashlimit-htable-expire 300000 -j ACCEPT
と言った感じでで記述して、スクリプト実行。

CentOSのファイアウォールを通過できるようになった。最後の砦、ルーターの設定を変更する。ルーターの設定変更を明確に打ち出すのは、マインクラフトサーバーシリーズで多分初の言及だと思う。
ルーターのNAPTの設定を行えば、外部→ルーター→サーバーが一直線に繋がる。
DDNSの反映が済んでいれば、マインクラフトのクライアントから、アドレス入力で、サーバーに繋がる。
「やったー」と思った人、明日は君が裁判所から出頭要請が出る。すぐに、構築作業を止め、マシーンの電源を切り、通信回線を引っこ抜こう。
スナイポからすれば、ルーターの先、プライベートエリアまで案内してもらえる事になる。
NAPTにより防げていた不正パケットの通過を許してしまう。怖いとは思わないか?

ん~、例えるなら山奥の静かな山村に立派なトンネルが出来た(NAPT越えで外部からマインクラフトサーバーに入れるようになった。)。
観光客(クラフター)が来るのは歓迎。だが、ゴミの不法投棄の輩が来たり(DOS攻撃など)、村の中で良しなにしてきた土地が、いつの間にか第3者に取得され元居た人が追い出されたり(クラッキング)、山の作物を根こそぎ持っていかれたり(データ流出)などなど・・・。
トンネルさえ無ければ、峠越えをする者もほとんどいない平和な状況だったのにと嘆いても遅い。

それでも、マインクラフトのサーバーは立ったんだ、おめでとうと言っておくか。
webによる情報共有や、メールによる同報装置がいらなければ、これで、サーバー構築は終わり。
ここまででやった対策は最低限も最低限だ、ブランチマイニングしてる暇が有ったら、セキュリティの勉強して秒進分歩(日進月歩では遅すぎる)のペースで、セキュリティを見直し、絶えずアップデートすることをお勧めするけどねぇ。立てて終わりじゃない、これから運用という長い長いプロセスが始まる。


まとめ
マインクラフトのサーバーを立てた。
ルーターのNAPTの設定を変更し、外部からのアクセスが可能になるようにした。
DDNSで名前解決が出来るようになってるので、IPアドレスでなく、文字列のアドレスでアクセスが可能になったので、みんなでマインクラフト出来る環境が揃った。
長い管理者生活が始まった。サーバーの状態をしっかり把握し、スナイポされないように、防衛する日々が続く。
クラフトよりも、セキュリティを勉強する時間の方が長くなっていく。

私は、サーバーなら某所の経験でごく僅かな事ならわかる。
しかしながら、マインクラフト参加者のコミュニティ運営については分からない。
なので、コミュニティ運営技術は、別途自分の頭にインストールしてください!!
(お絵描きソフトの絵心は別売となっております見たいなものだねw)

« 第7回マインクラフトサーバーを構築する(ファイアウォール(暫定)編) | トップページ | 第9回マインクラフトサーバーを構築する(webサーバー編) »

Linux」カテゴリの記事

マインクラフト」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

« 第7回マインクラフトサーバーを構築する(ファイアウォール(暫定)編) | トップページ | 第9回マインクラフトサーバーを構築する(webサーバー編) »