CentOS 6.2 初期設定


Table of Contents

↑

はじめに

CentOS の初期設定を行います。設定はセキュリティ関連が中心になります。
CentOS 6.2 のインストールについては下記を参照して下さい。

↑

初回起動時の設定

初回起動時の設定を行います。

↑

ライセンス情報

CentOS6.2_32.JPG
  • ライセンス内容を確認して同意します。

↑

ユーザーの作成

CentOS6.2_33.JPG
  • hogeユーザを作成します。

↑

日付と時刻

CentOS6.2_34.JPG
  • ntpを設定します。

↑

Kdump

CentOS6.2_35.JPG
  • Kdumpを設定します。(メモリが少ない場合は利用できません)

↑

vimの設定

  • viコマンドでvimを起動するようにエイリアスを追加します。
    # vi /etc/bashrc# ファイルの最後に下記1行を追加します。alias vi='vim'
  • vimの全体設定を変更して利用しやすくします。
    # vi /etc/vimrc# ファイルの最後に下記3行を追加します。set ts=4set nuautocmd FileType * set formatoptions-=ro
  • 「set ts=4」 :タブの幅をスペース4つ分に設定する
  • 「set nu」  :行番号を表示する
  • 「autocmd…」:改行時に自動でコメントを挿入しない
↑

SELinuxの設定

SELinuxはデフォルトのEnforcing(有効)のまま利用するのでこの設定は不要です。あくまで無効にする場合の参考です。

↑

SELinuxの各種操作について

  • 現在の設定を確認する。
    # getenforceEnforcing
    • Enforcing: SELinuxによるアクセス制限を行う
    • permissive:SElinuxによるアクセス制限を行なわないがログを出力する
    • disabled:SElinuxによるアクセス制限を行なわない
  • SELinuxを一時的に無効にする
    # setenforce 0
  • SELinuxを一時的に有効にする
    # setenforce 1
↑

SELinuxを無効にする

  • SELinuxを再起動後も無効にする場合
    # vi /etc/selinux/configSELINUX=disabled
↑

SSHの設定

  • 設定ファイル「/etc/ssh/sshd_config」を以下のように変更します。
    # vi /etc/ssh/sshd_config# 42行目:rootでのログインを禁止するPermitRootLogin no# 65行目:パスワード無しのログインを禁止するPermitEmptyPasswords no# 最終行に追加:ユーザhogeのみ接続許可をする(不特定多数にSSHを利用させない)AllowUsers hoge 

  • 設定変更を有効にするためサービスを再起動します
    # /etc/init.d/sshd restart
↑

ファイアウォールの設定

  • 下記ポリシーに沿ってファイアウォールの設定を行います。
    • 入力パケットは全て破棄
    • 転送パケットは全て破棄
    • 出力パケットは全て許可
    • LAN(192.168.11.0/24)からのアクセスは全て許可
    • 上記ポリシーにマッチしない通信は「/var/log/messages」に記録する

  • ポリシーに従い「/etc/sysconfig/iptables」を以下のように設定します。
    # vi /etc/sysconfig/iptables*filter:INPUT DROP [0:0]:FORWARD DROP [0:0]:OUTPUT ACCEPT [0:0]-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT-A INPUT -p icmp -j ACCEPT-A INPUT -i lo -j ACCEPT##LANの許可-A INPUT -s 192.168.11.0/24 -j ACCEPT##ログ記録-A INPUT -j LOG --log-level info --log-prefix "[iptables] "-A INPUT -j REJECT --reject-with icmp-host-prohibitedCOMMIT
・-j LOG --log-level info --log-prefix "[iptables] "
 プライオリティをinfoとしてログを記録する。記録の際、[iptables] を付加する
・-m state --state NEW -s 192.168.11.0/24 -j ACCEPT
 送信元が192.168.11.0/24のパケットは許可する
・-j REJECT --reject-with icmp-host-prohibited
 すべての入力パケットを拒絶
  • 設定を有効にするためサービスを再起動します
    # /etc/init.d/iptables restart
↑

ipv6の無効化

  • ipv6は利用しないため無効にします。「disable_ipv6.conf」は新規で作成します。
    ファイル名は任意です。
    # vi /etc/modprobe.d/disable_ipv6.confalias net-pf-10 offoptions ipv6 disable=1

  • 設定は再起動後に有効となるため再起動します。
    # shutdown -r now

  • ifconfigコマンドでipv6のIPアドレスが表示されなければ、問題ありません。
    # ifconfig |grep "inet6 addr"(何も表示されない)
↑

不要サービスの停止

  • 不要なサービスを起動する事は、無駄なリソース消費およびセキュリティホールになるためサービスを停止させます。
    ntsysvコマンドを利用して不要なサービスの自動起動を停止します。
    # ntsysv --level 345   [ ] NetworkManager   [*] abrt-ccpp    [*] abrt-oops      [*] abrtd   [ ] acpid               [ ] atd                 [*] auditd              [ ] avahi-daemon    [ ] cpuspeed            [*] crond               [ ] cups           [ ] dnsmasq     [ ] firstboot    [*] haldaemon           [ ] ip6tables           [*] iptables            [*] irqbalance          [ ] kdump               [*] lvm2-monitor        [*] mdmonitor           [*] messagebus          [ ] netconsole          [ ] netfs               [*] network             [*] ntpd    [ ] ntpdate     [ ] portreserve     [*] postfix             [ ] psacct              [ ] quota_nld              [ ] rdisc               [ ] restorecond         [*] rsyslog             [ ] saslauthd           [*] smartd   [*] spice-vdagentd              [*] sshd                [*] sysstat              [ ] udev-post       [ ] wdaemon   [ ] wpa_supplicant
  • 今回は以下の通り設定しました。
    起動 サービス名 説明
    NetworkManager 有線や無線のネットワーク設定がGUIで可能にするサービス。クライアント向け。
    ○ abrt-ccpp 自動バグ報告ツール
    ○ abrt-oops 不具合をoopsトラッカーへ送信するサービス
    ○ abrtd 自動バグ報告ツール
    acpid 電源管理(Advanced Configuration and Power Interface)ノートPC以外は不要
    atd 任意コマンドを指定時間に1回実行するサービス。一連の動作完了後にメール送信が可能。
    ○ auditd 監査ログを出力するデーモン
    avahi-daemon DNSを使わずにIPマルチキャストで名前やアドレスを参照するサービス
    cpuspeed CPUの省電力機能。負荷に応じてCPUのクロック数を変更する。 ノートPC向け機能。
    ○ crond 任意コマンドを指定時間に繰り返し実行するサービス
    cups 印刷サービス
    dnsmasq DNS(フォワーダ)とDHCPのサービスを提供する。 軽量だが小規模ネットワーク向け。
    firstboot インストール直後の初期セットアップを起動する
    ○ haldaemon ハードウェア情報を収集するサービス
    ip6tables IPv6用のファイアウォール(パケットフィルタ)
    ○ iptables IPv4用のファイアウォール(パケットフィルタ)
    ○ irqbalance マルチCPU環境での分散処理を可能にする
    kdump Kernelクラッシュ時にKernelダンプを保存する
    ○ lvm2-monitor LVM関連サービス
    ○ mdmonitor ソフトRAIDを監視するサービス
    ○ messagebus メッセージバスと呼ばれるアプリケーション間でやりとりを可能にするサービス
    netconsole Kernelクラッシュ時にKernelダンプをネットワーク経由で保存する
    netfs NFSクライアント
    ○ network ネットワーク接続に関するデーモン
    ○ ntpd NTPサービス
    ntpdate Redhat EL6 移行ガイドでは、下記の場合に限り起動すべきとの記載があるため、停止する。
      ・/etc/sysconfig/ntpd で-x オプションを指定した場合。
      (NTP起動前にntpdateを実行しなくなるため)
      ・他のサービスが起動前に正確な時刻を必要とする場合
    ○ postfix メール(SMTP)サービス
    psacct アカウントの利用統計を取得するサービス
    quota_nld クォータ値超過が発生した旨のカーネルメッセージを D-BUS に転送する
    rdisc ネットワークルータディスカバリーデーモン。ルータとして動作させないのであれば不要。
    restorecond SELinux関連のデーモン。inotify(ファイルの作成や更新を監視)を利用してファイルのラベルを自動更新する。SELinuxを使わないなら不要。
    ○ rsyslog システムログデーモン
    saslauthd sasl認証サービス
    ○ smartd HDD故障の予兆を検知するサービス
    ○ spice-vdagentd デスクトップ仮想化デーモン
    ○ sshd 暗号化通信でサーバへのリモートログインを提供する
    ○ sysstat システム情報取得ツール。システムの状態を把握するために必要。
    udev-post ハードウェア自動認識を行うデーモン
    wdaemon ハードウェア自動認識を行うデーモン
    wpa_supplicant 無線LANクライアントとしてWPAで暗号化する場合に必要なサービス


  • 自動起動の設定変更後に再起動します。これで不要サービスが停止した状態になります。
    # shutdown -r now

  • 最終的なデーモンを確認します。デーモンはSSH、postfix(ローカル配送限定)、ntpになります。
    # netstat -lntupActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program nametcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1299/sshdtcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1391/masterudp        0      0 0.0.0.0:45774               0.0.0.0:*                               1789/localudp        0      0 192.168.11.200:123          0.0.0.0:*                               1309/ntpdudp        0      0 127.0.0.1:123               0.0.0.0:*                               1309/ntpdudp        0      0 0.0.0.0:123                 0.0.0.0:*                               1309/ntpd
↑

パッケージのアップデート

  • パッケージを最新版にアップデートします。
    # yum update

    yumコマンドを初めて実行する場合、 GPGキーのインポートが必要になるため以下のような警告が表示されます。
    警告: rpmts_HdrFromFdno: ヘッダ V3 RSA/SHA1 Signature, key ID c105b9de: NOKEYRetrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6Importing GPG key 0xC105B9DE: Userid : CentOS-6 Key (CentOS 6 Official Signing Key) <> Package: centos-release-6-2.el6.centos.7.x86_64 (@anaconda-CentOS-201112091719.x86_64/6.2) From   : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

GPGキーはRPMパッケージの正当性チェックに利用されますが、インストール直後はGPGキーがインポートされておらず、パッケージのチェックができないため警告が表示されます。

  • kernelのアップデートは再起動後に有効となるため再起動します。
    # shutdown -r now
↑

yumの設定

  • cronで毎日5時にアップデートを実施します。アップデートログは/var/log/yum.logに記録されます。
    システムの運用ポリシーに従って設定して下さい(自宅サーバ以外は不要だと思います)
    # crontab -e0 5 * * *  /usr/bin/yum -y update
  • パッケージを切り戻す場合
    yum --allow-downgrade install <パッケージ名>
↑

システム統計情報の取得(sysstat)

システムの正常/異常を切り分けるため、sysstatでシステム統計情報を取得しておきます。

↑

sysstatのインストール

  • sysstatが導入されていない場合はインストールします。
    # yum install sysstat
  • 主なインストールファイルは下記の通りです。
    ファイル名 説明 備考
    /etc/init.d/sysstat 起動スクリプト
    /etc/sysconfig/sysstat システム統計情報の保存期間、圧縮に関する設定ファイル
    /etc/cron.d/sysstat システム統計情報の取得間隔に関する設定ファイル
    /var/log/sa/sa[日付] システム統計情報(バイナリ形式)
    /var/log/sa/sar[日付] システム統計情報(テキスト形式)
↑

sysstatの設定

  • システム統計情報の取得頻度を5分間隔に変更します。
    # vi /etc/cron.d/sysstat# システム統計情報の取得間隔(デフォルトの10分間隔から5分間隔へ変更)*/5 * * * * root /usr/lib/sa/sa1 -S DISK 1 1# システム統計情報のテキスト化# 1日の最後にシステム情報をテキスト化して保存します。(デフォルトの23:53)53 23 * * * root /usr/lib/sa/sa2 -A

  • cronを再起動します
    # /etc/init.d/crond restart

  • システム統計情報の保存期間を15日に設定します(デフォルト 7日)
    # vi /etc/sysconfig/sysstatHISTORY=15
↑

sysstatの起動設定

  • sysstatを起動します。
    # /etc/init.d/sysstat startCalling the system activity data collector (sadc):

  • 自動起動の設定を行います。
    # chkconfig --add sysstat# chkconfig --list sysstatsysstat         0:off   1:off   2:on    3:on    4:off   5:on    6:off
↑

システム統計情報の確認

  • CPUに関する統計情報
    # sar -u -f /var/log/sa/sa[日付]
  • メモリに関する統計情報
    # sar -r -f /var/log/sa/sa[日付]
  • ページングに関する統計情報を確認
    # sar -B -f /var/log/sa/sa[日付]
  • スワップに関する統計情報
    # sar -W -f /var/log/sa/sa[日付]
  • ディスクに関する統計情報
    # sar -b -f /var/log/sa/sa[日付]
  • 送受信パケットに関する統計情報
    # sar -n DEV -f /var/log/sa/sa[日付]
  • 送受信エラーパケットに関する統計情報
    # sar -n EDEV -f /var/log/sa/sa[日付]
↑

ログ確認

  • ログにエラーが出ていない事を確認します。
    # vi /var/log/messages

以上で設定は完了です。

↑

追記

  • 2012/6/14
    • 不要サービスでhaldeamonをonにするよう修正しました(offするとマウスが効かなるケースがあるため)
このエントリーをはてなブックマークに追加
Last-modified: 2012-02-12 (日) 09:34:34   最終更新のRSS