【1.初めに】
要望がありましたので、今回はLinux(実際はRedhat系Linux)でそこそこ安全かつ楽にサーバを立てる際の手順を記してみます。
※一応注意:今回は、試しにサーバを立てる程度であればこのくらいで十分ではないかと思うレベルを想定しています。サービスに投入するサーバでは私はもっと細かいところまで手を入れています。
【2.そこそこ安全かつ楽にサーバを立てる手順】
さて、いよいよ本題です。サーバを立てる際は、不必要なものを全て取り除いてから必要なものを追加していくというのが基本になります。以下の手順1~5では不要なものの除去、手順6~7で必要なものを追加し確認しています。それを踏まえまして。
■手順1. OSをインストールします。(私はLinuxであればCentOSを入れることが多いです。その際私はインストールの種類をカスタムにしパッケージグループの選択では開発ツール以外全部チェックを外すことが多いです)
■手順2. OSにrootでログインしたら、「yum update」で全てのパッケージをupdateします。
■手順3. 「chkconfig --list」で各サービスのrunlevelを確認し、不要なサービスを例えば「chkconfig gpm off」の要領で止めていきます。ちなみに私の場合だと以下のサービスだけ残してあとは全て止めてしまっています。
・syslog
・network
・iptables
・anacron
・smartd
・sshd
・crond
・xinetd
・ntpd
■手順4. 「netstat -ln」(もしくは「netstat -l」)で現在開いているポート番号を確認し、不要なネットワークサービスを止めていきます。
ただnetstat -lnだけだとどのプログラムからポート番号を開けているのかわからないので、それを確認するために「lsof -i」を実行します。
ここで例えばcupsd(631番ポート)が不要だと思えば「chkconfig cupsd off」で、vsftpd(21番ポート)が不要だと思えば「chkconfig vsftpd off」でそれを止めればいいわけです。
■手順5. リブートします。リブートが完了したら、試しに「netstat -an」や「ps -ef」を実行してみてください。最初と比べて不要なものがほとんどなくなりとてもすっきり感じるはずです。
■手順6. 必要なサービスを追加します。例えばhttpdであれば「yum install httpd」といった感じです。もちろん言うまでもなくソースコードを入手してコンパイルしてインストールする方法もあります。
■手順7. 最終確認です。「dmesg」「more /var/log/messages」「more /var/log/secure」「ps -ef」「netstat -an」などの出力結果を一通り眺めてみて特に変なところがなければ終わりです。もし少しでも変だと感じる点があったら是非徹底的に調べてみましょう。
さて、こうして構築されたサーバですが、最後に気をつけたいことが1つあります。それはポートを開いているプログラムにセキュリティホールがないかどうかです。例えば現在TCP22番ポートはopensshが、TCP80番ポートはapache2が開けているとします。外部からアクセスできるこの2つのポートにセキュリティホールがあったら問題なので、セキュリティホールのないバージョン(原則最新バージョン)であることを常に意識することが重要になります。
【3.最後に】
今回ご要望をいただいた方曰く「OSのインストール自体は何度もやったことがあるけど、サーバを立てるとなるといまいちどうやっていいかわからない」とのことです。この件繰り返しになりますが、サーバを立てる際は不必要なものを全て取り除いてから必要なものを追加していくというのが基本になります。その基本を踏まえて今回具体的な手順を記してみました。参考になりましたら幸いです。
Recent Comments