CentOS 5 , CentOS 6 編は、こちらへ
評判のさくらのVPSを使うときに最初にやっておきたいこと(CentOS編) の CentOS 7 編です。
Debian(Wheezly 7)で MySQLからMariaDB へ移行してみる でも書きましたが、CentOS 7 からは、MySQL→MariaDB へ変更となりました。
また、デーモンの起動方法なども旧バージョンから変更がありましたので、ここでは、記事を別にしました。
では、早速、簡単に解説してみます。
※お試し期間中は、OP25B設定、データ転送帯域に制約がありますから注意してください。
- 目次
- 履歴
2015年6月4日 firewallのssh削除の記述誤り、restartの追記
2014年8月4日 初版
さくらのVPSのCentOSで最初にやっておきたいこと
さくらのVPSを申し込んで、さくらのVPSのコントロールパネルからサーバーを起動すれば、CentOS 6 が立ち上がります。(2014.8現在)
CentOS 7 は、カスタムOSインストールにて、自分でインストールする必要があります。(さくらのVPSでカスタムOSのインストールを行うには? 参照)
ここでは、既にCentOS 7 がインストールされ、起動されているものとして、以降、解説します。
さくらのVPSの場合、自宅サーバーと違って、既に外部に直接つながった状態ですから、まず、セキュリティ面の強化とサーバー設定をする必要があります。
ここでは、CentOSの初期状態から、各サーバー系をインストールする手前までにやることを記述してみます。
ユーザを追加する。
ここでは、SSHでroot以外のユーザでのみログインできるようにしたいので、
その際のユーザを少なくとも1つ(ここでは hoge)ユーザを追加しておきます。
|
useraddで、hogeというユーザを追加しています。
passwordで、hogeのパスワードを設定しています。
usermodで、hogeをwheelのユーザグループに追加しています。
wheelは、管理者グループになります。
SELinuxをoffにする。
SELinuxは、非常に強力なセキュリティツールです。
ただ、設定が非常に面倒なので、ここでは、一旦、解除しておきます。
その際、以降で出てくるfirewallの設定は、厳密に行うようにしてください。不用意にポートを開かないようにしましょう。
ここでは、SELINUX=enforcing を SELINUX=disabled とし、無効にします。
|
上記で、SELinuxは無効になったはずです。
また、リブート時も無効になるように、以下の設定も行います。
|
SSHのポートを変更する。
まずは、SSHのポートを変更して、簡単にアタックされないようにしておきます。指定するポート番号は、10000以降の適当なポート番号を割り当てましょう。
また、rootでログインできないようにし、先に作成したユーザ(ここではhoge)でのみSSHログインを可能とします。
|
ここでは、ポート番号、SSHプロトコル、rootでのログイン不可、ログイン可能なユーザ名を指定しています。
また、ログインするIPアドレスが決まっているなら、許可するIPアドレスも指定した方がより良いです。
(詳しくは、TeraTermで 公開鍵認証(鍵交換)を使ってSSH 接続してみる を参照してください。)
|
ファイアウォール(firewall)の設定を行う。
CentOS 6までは、ファイアウォールとして iptables を使ってきましたが、
CentOS 7からは、ファイアウォールとして firewalld を使います。
firewalld は、、文字通り ファイアウォール デーモンです。
設定を行うには、firewall-cmd コマンドを使用します。
ここでは、単純に使っていないポートを firewall-cmd を使って 外部に非公開とするようにします。
|
ここでは、10022(SSH),80(HTTP)の2つのポートのみを公開し、それ以外を基本的にすべて非公開にしています。
指定できるサービス名は、以下のコマンドで確認できます。
|
|
不要なサービス(デーモン)を停止する。
最後に、無駄に動作しているプロセスを停止するようにします。
CentOS 6までは、サービス(デーモン)の制御として service(or /etc/init.d/…) , chkconfigコマンド を使ってきましたが、
CentOS 7からは、サービス(デーモン)の制御は、systemctl コマンドを使います。
CentOS 7 をMinimam インストールした時点で動作しているデーモンは以下のとおりです。
サービス | 概要 | 現行 | 変更 |
---|---|---|---|
auditd | システム監査結果のログ保存 | ON | – |
avahi-daemon | LAN内でのネットワーク自動構成 | ON | – |
chronyd | NTP(時間管理)デーモン Client/Server (ntpdからのデフォルトリプレース) | ON | – |
crond | cronデーモン | ON | – |
irqbalance | マルチCPU環境でセカンドCPU以降も割り込み処理を行える | OFF | – |
kdump | システム異常時にダンプ出力する | ON | – |
NetworkManager | 有線/無線(コネクション)に必要に応じて自動接続してくれるサービス | ON | – |
postfix | postfix(smtpサーバー) | ON | – |
rsyslog | Rシスログデーモン | ON | – |
sshd | SSHデーモン | ON | – |
tuned | システムコンポーネントの使用を監視し、その監視情報を基にして動的にシステム設定をチューニングするデーモン | ON | – |
この中で、不要?と思われるものは、kdumpぐらいです。
ただ、このkdumpも、先の概要のように異常時のログ情報ですから、本来は、起動しておいた方が良いです。
しかし、さくらのVPSの最安プラン 1GBメモリは、CentOS 7 の最低メモリ要件ですから、kdumpを動作させるには、少々厳しいかもしれません。
そういう意味で、不要?かもしれないという意味ですので、メモリに余裕がある方は、そのまま起動されていてください。
さくらのVPSの最安プラン 1GBメモリでは、kdumpの状態がfailedとなって、起動していないはずなので、ここでは、削除してみます。
|
また、chronydは、CentOS 6まで ntpd が提供されていた ntpデーモンになります。これもデフォルトのパッケージがリプレースされています。
ntpは、起動してくべきか議論がありますが、KVMにおいて ホストとゲストの時間管理はNTPを用いるべきか? でも解説しているように起動しておいた方がベストなので、ここでは起動しておきます。
chronydの設定は、そのままでOKです。変更するとしたら ntpサーバーを日本のサーバーに変更するぐらいです。デフォルトでは、ntpサーバーとして動作しないようになっていますから、それほど、負荷もかからないと思います。
そこで、以下のようにすると、全systemctl 制御配下のサービスがすべて出力されます。
|
|
また、その他に getty.targetなどが含まれており、本来、ユーザがコントロールすべきサービスのみとは言い切れないところがあります。
そう考えると、単純に以下が、ほぼ求めたいサービス一覧になるのかもしれません。
|
|
日本語に対応にする。
CentOSのロケールの設定を日本に設定します。
|
vimをインストールする。
標準のviエディタでも良いのですが、多言語に対応したvimの方が、使い勝手は間違いなく良いですから、インストールしておきましょう。
|
これだけで、自動的にインストールできます。
ログイン環境を編集する。
vimを標準のエディタとして使うために、vi のaliasとして登録しておきます。
また、/sbin へのパスも設定しておくと便利です。パスをとおしておくと、いちいち/sbinを先頭にタイプしなくて良くなりますからね。
|
|
13行目で、/sbinと/usr/sbinへのパスと追加しています。
16行目で、vimの別名をviとしています。
|
ここに書いているのは、あくまで必要最小限としての記載ですので、ユーザによっては、もっと、セキュリティ面で強化を図ることもできると思います。
CentOS 6 から CentOS 7 へは、かなり、設定における変更がありますね。
ただ、やるべきことは、そうれほど変更がありませんから、一つ一つ対応する設定方法を確認していけばできるはずです。 まずは、上記の設定を参考に、よりセキュアな環境設定を行っていただければうれしく思います。
さくらインターネットのVPS ( さくらのVPS )を試してみたい方は、http://vps.sakura.ad.jp/からどうぞ。無料お試し期間は14日です。
※お試し期間中は、OP25B設定、データ転送帯域に制約がありますから注意してください。
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない、検索ができないことがあります。
コメントを投稿 :