プラグイン集

無料ブログはココログ
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

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

« 第4回マインクラフトサーバーを構築する(OS設定編) | トップページ | 第6回マインクラフトサーバーを構築する(セキュアシェル(SSH)編) »

2014年3月14日 (金)

第5回マインクラフトサーバーを構築する(NTP&セキュリティ編)

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

これも過去の(ry

前回までで、普通に使える状態にCentOSを持っていったので、いよいよサーバーや保安中枢(セキュリティコア)の設定です。

コマンドは一例。他にもやり方が有る。好きなやり方を使えばいい。
登山と一緒だったけ?山頂と言う目的地は一緒だが、登山道入り口や途中のルート・山小屋は複数有る。

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

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

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.メーリングリストサーバー

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

1.NTPデーモンを立てる

セキュリティ設定してからと言ってましたが、予定変更。
ログの日時が正しくないと困る。

特に難しいことはない。(と思う。)
とりあえず、 ntpdate ntp.nict.jp やって、システムの時刻を同期する。
その後、 /etc/ntp.conf をエディタで開き、

server ntp.nict.jp
server ntp.jst.mfeed.ad.jp

のserver ~ を好きな所に書き換える。ただし、福岡大学は止めてあげて。サーバー過負荷で、時刻がズレまくってるらしい。
nictと自分のISPしておけば問題無し。うちのISPはNTP提供していないので、ST2のmfeedを指定してる。

書き換えたら保存して、 service ntpd start で起動。service ntpd status で(プロセスの)状態が表示できる。
chkconfig ntpd on を実行すれば、システム起動時に自動的にNTPデーモンが起動する。
windowsで言えば、スタートアップかサービスに登録するのと同じ。

ファイアウォールがブロックしているならば、/etc/sysconfig/iptables を編集、
-A OUTPUT -p tcp -m state --state NEW -m tcp --dport 123 -j ACCEPT
-A OUTPUT -p udp -m state --state NEW -m udp --dport 123 -j ACCEPT
を追記して、service iptables restart 。NTPのポートが開放される。
※ファイアウォールの設定がインストール時のままだと、PC→ネットへの通信は駄々漏れだから、大体通信できる。

NTPが機能しているかどうか知りたい場合は、 ntpq -p で指定したサーバーとの時刻調整の状態が確認できる。

これで、正確な時刻が手に入るようになった。

2.パッケージの自動アップデート

yum-cronパッケージを使うもよし、yum -y update コマンドをcrontabに登録してもいい。
私は、 /ect/cron.daily/yum_auto_update.sh を作り、毎日アップデートさせるようにしている。

中身
#!/bin/bash
/usr/bin/yum -y update > /dev/null 2>&1
まんまですね。

3.不要なサービス停止

chkconfig --list | grep :on でシステム起動時に起動するデーモンの一覧が取得できる。
ONの奴をググりながら、要るか要らないか決める。
chkconfig サービス名 off で次回から自動起動しない。今すぐ止めたいならservice サービス名 stop
分からなかったら、触らない。触らぬ神に祟りなし。

windowsでもそうだけど、余計なサービス・スタートアップ・常駐を起動させないようにすると、起動速くなる。メモリの空きも増えて自分が使いたいソフトにメモリ使える。ハイバネーション移行時に、メモリ使用量が減っている分書き込み量が減ってハイバネーション移行も速くなるとか結構いいこと多い。
速いSSDのおかげで、スタートアップ気にならなくなってきたけど、必要最小限に整理すると、只でさえ速いSSDが更に爆速化する。

Linuxもメモリと起動時間短縮になるし、クラッカーの的を減らすことができるのでおいしい。

4.rootになれるユーザーを絞る

rootは神様だから、通常作業は一般人で行う。
いきなり、神様でサーバーに入ることも出来るけど、神様の証たるパスワード奪われたらどうなるか分かるな。利用可能な人でも、神様権限必要なのは、まぁ、自分と「どうしても」の時に頼む、信頼の置ける人だけでしょう。自分とそのユーザーだけに神様になれる設定を施す。

Linuxはwheelという、神様になれるグループが存在している。 /etc/group を開いて、wheel:rootの後ろに、カンマ区切りで、ユーザー名を書いていく
wheel:x:10:root,nyaruko,nozomi
こんな要領。ニャル子と希を追加した。保存したら、 /etc/login.defs にSU_WHEEL_ONLY yes を追記。
/etc/pam.d/su を開いて、auth        required    pam_wheel.so use_uidを有効化(頭の#を取る)

suコマンドが規制されたので、sudoを規制する。suは神になるコマンドで、sudoは1回神様の権限を借りるコマンド。
visudo 実行して、/etc/sudoersを開く。※エディタで直接/etc/sudoers開いちゃダメ。visudoは文法チェックがついてる。

さっき、せっかく神様になっていい人をwheelグループに登録したので、%wheel  ALL=(ALL)   ALLを有効化。(頭の#を消す。)
文末が、NOPASSWD: ALLの物が有るけど、放置。ちなみにこっち有効化すると、パスワード聞かれずに神様になれる。いいじゃん、便利じゃんと思った人は、管理者の資格無し。権限与えた友達のなりすましが、パスワード無しで、神になるんだぜ?手下のゾンビにするに決まってるじゃん。
ってことで、NOPASSWDの付いて無い方を有効化する。
保険かけて、 /etc/pam.d/sudo にも auth       required     pam_wheel.so use_uid これ書いておく。/etc/sudoersで規制してるから、多分要らないけど。

5.ウイルス対策・ファイル改竄・rootkit検知・ログ監視など

参考サイトに書いた、外部サイトの力を借りましょう。

5.ウイルス対策ソフト{Clam AV}
6.ファイル改ざん検知{Tripwire}
7.rootkit検知{chkrootkit}
9.攻撃検知・防御・排除(バッファーオーバーフロー){exec-shield}※DOSは別の対策が必要
10.ログ監視と調査{logwatch}
13.ポートスキャンを遮断{portsentry}
14.DDNSサーバーへの変更通知{Dice}

この辺の設定が、一気に可能。
11.鯖情報の非表示(Apachやphpのレスポンスを返さないように設定)は、待った。
webサーバーが正しく構築できてからじゃないと、原因特定が難しくなる。

上のソフト入れる過程でサードパーティのリポジトリを使う。
サードパーティのリポジトリは、無効化しておいた方がいい。
コンフリクト起こして、公式のyum updateが通らなくなる。
/etc/yum.repos.d/内の追加したレポジトリのファイルを開きEnable=0にしておく。
必要になったら、yum --enablerepo=レポジトリ名 を追加して、インストールする。
yum priorityプラグインを使って、レポジトリに優先度を付けることができる。
/etc/yum.repos.d/の各ファイルのセクションの最後にpriority=数字 を書くことで、適応される。小さい数字ほど優先される。公式を1、追加したレポジトリ順に5刻みで増やしていけば、公式を最優先にして、古参レポジトリを優先する仕組みを作れる。

6.バックアップ
いつぞやに書いたrsyncを使って、バックアップする。
うちのサーバーはSSD+HDDの構成になっているので、HDDにバックアップする。

インストール時のパーティション設定で、HDDのマウントポイントを/soukoとか適当に指定して、フォーマットしなければ、データを残したまま参照できる。(FAT32領域とか)
フォーマットすれば、真っ新な状態でディスクを使える。

やってない場合は、mount -t ファイルシステムの種類 /dev/デバイス名 /media/マウントディレクトリ名 でマウントする。
内蔵メディアや、取り外す気のない外部メディアなら、/etc/fstabに書いておいて、起動時に自動マウントされると楽。
※NTFSは、サードパーティレポジトリからパッケージ取ってきて頑張る。書き込んでWindowsのファイルが破損しても泣かない。
Windowsからext2fsdとかでドライブ認識かけて書き込むのは、比較的トラブル無い。流石オープンソース。

シェルスクリプト作って、バックアップしたい周期のcronに放りこんでおけばいいんじゃないかな。
#!/bin/bash
#minecraft backup
rsync -avzrH --progress /minecraft/ /souko/backup/minecraft/ > /dev/null 2>&1
#web page backup
rsync -avzrH --progress /var/www/html/ /souko/backup/web/ > /dev/null 2>&1
文末のリダイレクトは、コンソール出力しないようにするため。
rsyncのオプションに-u と --delete を指定すると同期になる。
今のコマンドのままだと、もとディレクトリから消したデータもバックアップ先は保持している。
同期にすると、元のディレクトリからデータ消したら、バックアップ先も消してくれる。

うちはやってないけど、rsyncは別のコンピュータにSSH経由コピーも可能。


まとめ
NTPデーモンを開始して、システムの時計を正確にした。
パッケージを自動アップデートするようにして、セキュリティホールを迅速に塞ぐようにした。
不要なサービスを止めて、システムを軽くした。
ルートになれるユーザーを絞った。
外部サイトを利用して、ウイルス対策・ファイル改竄・rootkit検知・ログ監視などの設定を行った。
rsyncを使って、HDDにバックアップを取るようにした。

« 第4回マインクラフトサーバーを構築する(OS設定編) | トップページ | 第6回マインクラフトサーバーを構築する(セキュアシェル(SSH)編) »

Linux」カテゴリの記事

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

コメント

コメントを書く

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

トラックバック


この記事へのトラックバック一覧です: 第5回マインクラフトサーバーを構築する(NTP&セキュリティ編):

« 第4回マインクラフトサーバーを構築する(OS設定編) | トップページ | 第6回マインクラフトサーバーを構築する(セキュアシェル(SSH)編) »