10月, 2012 からの更新 コメントスレッドの表示切替 | キーボードショートカット

  • 太田 和宏 11:08 AM | 2012年10月24日 パーマリンク |  

    セキュリティ設定 

    ~ntsysvを利用する~
    ”*”がついているデーモンがOS起動時に起動される
    「スペース」で設定

     

    NetworkManager...状況に応じて
    ホスト機 の NIC 全般の設定を担う他、無線LANなどの複数の NIC を搭載しているとき、無線LANの暗号化キーなどの管理を行い、利用状況に応じてNICの自動切換えを行うデーモンです。

    これを停止すると、デスクトップ環境からのネットワーク設定操作や、ネットワーク関係の設定ファイルの自動設定が行われなくなります  。

    複雑なネットワークを設定しないのであればそのまま稼働させておいたほうが面倒がありませんが、自動設定に頼らず、  のすべてのパラメータを手作業で設定したい場合は停止しておくと良いでしょう。

    abrt-ccpp abrt-oops abrtd...稼働
    ホスト機の動作を監視し、スクリプトエラーなどをログファイルに記録するデーモンです。
    稼働しておきます。

    acpid...停止
    ホスト機の動作と電源を管理し、省電力のための休止状態をサポートするデーモンです。
    これはクライアント用途としての機能で、常時稼動が前提のサーバー用途では不要です。

    atd...稼動 
    一回きりの録画予約みたいな機能をサポートします。  単発的にスケジュール化した コマンド を実行させるデーモンです。

    auditd...停止
    カーネル の持つ監査システムの一部を補助し、適切なログデータを出力するためのデーモンです。
    LinuxOSの先進的な セキュリティ 機能の一端を担いますが、自宅サーバーでは不要です。

    autofs...稼動
    フロッピーディスク や CD-ROM 、 DVD-ROM などのリムーバブル ストレージ や、 NFS などを自動的に接続、 マウント したり、マウントを解除したりするデーモンです。お世話になることがあるかもしれません。

    avahi-daemon...停止
    ローカルネットワーク上のIPネットワーク機器を、 DNSサーバー などの所在地情報サーバーに頼らずに検知し、自動的に動作させる仕組みを与えるデーモンです。
    クライアント用途では LAN 内で時折お世話になることがありますが、自宅に設置するサーバーではまず利用することはありません。

    bluetooth...停止
    ホスト機と周辺機器を無線でつなぎ、データのやりとりを行う Bluetooth 機能を有効にするデーモンです。
    ノートパソコンと携帯電話の連携などで利用されることはありますが、サーバー用途で利用することはまずないでしょう。
     
     certmonger...停止
    公開鍵と証明書に関するデーモンです。自宅運用のサーバーには不要です。

    cgrconfig cgred...停止
    ハードウェアサブセットを階層、グループ管理するためのデーモンです。小規模サーバーでは不要です。

    cpuspeed...停止
    使用するホスト機の CPU が省電力機能(SpeedStep機能)に対応している場合に、動作負荷に応じてCPUの速度を変化させるデーモンです。これにより幾分の省電力効果が期待できます。
    ただしその省電力効果は劇的なものではなく、あくまで ノートパソコンのバッテリー動作時間を少し延ばす ことが目的ですから、常にAC電源を接続して使用するサーバー機には不要なデーモンです。

    crond ...稼動
    コマンドや アプリケーション をスケジュール化して実行させるデーモンです。 単発で利用する atd と違い、一定時間ごとあるいは一定期間ごと、永続的にスケジュール化して実行させます。稼動は必須です。

    cups ...目的に応じて
    現在のUNIX系OS標準のプリンタデーモンです。CentOS6で直接プリンタサーバーとして使用する場合は必須です。「絶対にプリンタサーバーとしては使わない。」と断言できる方は停止してかまいません。

    dnsmasq...停止
    DHCPサーバーと連携して DNSキャッシュサーバー として動作し、 、DHCPクライアントに高速な 名前解決 環境を与えるデーモンです
    通常は ルーター が同じ機能を担うことができますから、強いて稼動させる必要はないでしょう。停止しておきます。

    dovecot...とりあえず停止
    CentOS6標準の POP3IMAP4サーバーのデーモンです。
    メールサーバーに適切な設定を行ってから稼動させます。

    firstboot...停止
    CentOS6のインストール後の最初の起動時の設定 を実行します。
    このデーモンは一度実行されると「初回起動時設定完了」が記録された “/etc/sysconfig/firstboot”を作成しますが、このファイルを削除しない限りfirstbootは再び実行されることはありません。
    そのままにしておいても構いませんが、停止しておきましょう。

    haldaemon...稼働(デスクトップを使わないなら停止)
    比較的新しい ディストリビューション に採用されているデスクトップ間アプリケーション通信のプロトコル D-BUSをサポートをサポートするデーモンです。
    一般的なサーバー用途では不要のはずですので、デスクトップ画面を使わないのであれば停止しておきましょう。

    httpd ...とりあえず停止
    Webサーバー Apache のデーモンです。公開サーバーの顔ともいうべきものですが、基本的な設定ができるまでは停止しておきます。

    ip6tables...停止
    IPv6でパケットフィルタリングを行うデーモンです。
    IPv6は利用しませんので停止して構いません。

    iptables...稼動
    IPv4でパケットフィルタリングを行うデーモンです。ファイヤーウォールを設定しない場合  でも、これが稼動していなければ動作しないアプリケーションもありますので稼動しておきます。

    irqbalance...環境に応じて(普通は停止)
    マルチ CPU の ホスト機 を使用するとき、効率よく処理を分散させるデーモンです。該当するホスト機を使用している場合は稼動させてください。

    kdump...停止
    CentOS6のインストール時のステップで無効化したKdump  のデーモンです。もちろん稼動させる必要はありません。

    lvm2-monitor...停止
    LinuxOSに柔軟なディスク管理とバックアップのための有用な仕組みを与える 論理ボリュームマネージャー(LVM) 利用時の障害監視のためのデーモンです。
    LVMは上手に使いこなせば非常に利用価値のある仕組みですが、初心者にはハードルが高いのでこのコンテンツでは扱いません。停止しておきます。

    matahari-broker matahari-host matahari-network matahari-service matahari-sysconfig...停止

    ホストやネットワーク、サービスなどを監視、制御するシステム “Matahari” のデーモンです。 比較的新しいシステムでまだ情報が少ないため、稼働させないほうが良いでしょう。

    mdmonitor...環境に応じて
    ホスト機の ハードディスク を、CentOS6の ソフトウェア RAID で使用する場合の監視デーモンです。RAIDに障害が起こったときに管理者宛にメールでレポートする機能を担います。
    ソフトウェアRAIDを使用しているとき  は必ず稼動させますが、使用していないときは停止してかまいません。

    memcached...停止(環境に応じて)
    LAMP システムなどを構築して動的なWebサービスを公開するとき、 データベース の応答を キャッシュ するサービスです。これによりサーバーの動作負荷の軽減とリクエストに対する応答を良くすることが可能となります。
    しかしながらこのサービスは大量のリクエストをこなさなければならないポータルサイト向けのもので、自宅サーバーで提供する程度のサービスではまず恩恵は受けられないでしょう。
    通常は メインメモリ とプロセスの節約のために停止しておき、レスポンスの低下が懸念されるようになったときに稼働させれば良いでしょう。
     
     messagebus...稼働(デスクトップを使わないなら停止)
    CentOS6システムのデスクトップ上で相互にメッセージを送るためのデーモンです。 D-BUS で利用します。サーバー用途には不要ですので停止してかまいません。

    microcode_ctl...稼動
    ホスト機のCPUのマイクロコード(CPUへの命令を効率よく行うためのコード)をアップデートできるようにするためのデーモンです。CPUの処理速度の改善が期待できますから、稼動させておくほうが良いようです(CPUの種類によってはインストールされません)。

    mysqld...とりあえず停止
    データベース サーバー アプリケーション である、 MySQL のデーモンです。基本的な設定ができるまでは停止しておきます。

    named ...とりあえず停止
    DNSサーバー アプリケーション 、 BIND のデーモンです。基本的な設定ができるまでは停止しておきます。

    netconsole...停止
    CentOS6のカーネルが不具合を起こしたとき、ネットワーク接続されたほかのホスト機にダンプ(メインメモリ上のデータ)を保存するためのデーモンです。CentOS6は余程のことがなければ不具合は起こしませんし、多分保存されたダンプを見てもチンプンカンプンのはずです。そもそも他の LinuxOS のシステムを持っていなければ意味がありません。停止しておきます。

    netfs...とりあえず停止
    NFSクライアントデーモンです。NFSサーバーに接続してファイル共有するために必要になります。これを稼動させていなければ、 autofs デーモンが稼動していてもファイル共有できません。他にUNIX系のシステムを持っていなければ稼動させても意味がありませんが、場合によっては MacOSX や、NFSサーバーを実装した WindowsOS とファイル共有をすることがあるかもしれません。それまではとりあえず停止しておきましょう。

    network...稼動
    ネットワークシステムのデーモンです。これが稼動していないとネットワークは一切使用できません。必ず稼動させておきます。

    nfs...とりあえず停止
    NFSサーバーのデーモンです。いつか使われる日がくるかもしれませんが、とりあえず停止しておきます。

    nfslock...とりあえず停止(nfsと一緒に)
    NFSサーバーのデータを保護するための「ファイルロック機構」を提供するデーモンです。稼動しておいても邪魔にはなりませんが、NFSサーバーが稼動していなければ意味を持ちません。

    nmb...とりあえず停止(smbdと一緒に稼働)
    WindowsOS ファイル共有の プロトコル である NetBIOS over TCP/IP の利用時に、名前解決のサービスを担うデーモンです。 Samba を利用するときに、Sambaのデーモンである smbd と一緒に稼働させます。

    ntpd ...とりあえず停止
    NTP で上位のNTPサーバー  を参照して時刻を調整し、同時にサーバーとして時刻を配信するデーモンです。設定を行ってから稼動させます。

    ntpdate...停止
    ntpdを補助し、完結的にシステムクロックの補正を精密に実施するデーモンです。
    自宅サーバー運用では、ntpdだけで充分ですので停止します。

    oddjobd...停止
    D-BUS を制御するデーモンです。不要です。

    portreserve...稼動
    システムの各サービスが利用する TCP の ポート番号 をプールしておき、特定のサービスに特定のポート番号が占拠されてしまうのを防止します。
    稼働させておきます。

    postgresql...とりあえず停止
    データベース サーバー アプリケーション である、 PostgreSQLのデーモンです。基本的な設定ができるまでは停止しておきます。

    psacct...停止
    システム上でユーザーが使用したコマンドやそのコマンドによる負荷などを統計するデーモンです。利用する機会はないでしょう。

    qpidd...停止
    異なるプラットフォーム間、異なるアプリケーション間であってもメッセージのやり取りを一元化しスムーズに行うことを目的とした AMQP プロトコル を Apache に実装させるためのデーモンです。
    複雑化して管理が難しくなりつつあるミドルウェア間のメッセージの一元化を目的として実装が進んでいますが、構成の簡単な自宅サーバーでは、現時点ではお世話になることはないでしょう。

    quota_nld...停止
    ディスクの使用量制限を設けるシステム”quota”を動作させる際、使用超過をD-BUS等に通知するデーモンです。使用しません。

    rdisc...停止
    CentOS6を ルーター として動作させるときの経路管理を行うデーモンです。
    今回は市販のルーターでネットワークを構築しますので動作は不要です。

    restorecond...停止
    SELinuxと連動して、ファイルの作成などを監視して適当なラベルを付与する役目を担います。

    rngd...停止
    ハードウェア を元に乱数を発生させるためのデーモンです。乱数を使った認証の仕組みを頻繁に扱う、大量のユーザーを抱えた認証サーバーなどで使用するべきデーモンです。自宅サーバーレベルでは不要です。

    rpsbind rpcgssd rpcidmapd rpcsvcgssd...とりあえず停止
    いずれも NFS を利用するときに利用する セキュリティ 関係のユーティリティです。
    NFSを利用しない場合は不要です。

    rsyslog...稼動
    ログファイル を書き出すのデーモンです。多くのアプリケーションがログを残すために利用します。ログファイルの解析はサーバー運用の定石ですので、必ず稼動させておきます。

    saslauthd...とりあえず停止
    SASL という認証のメカニズムを提供するデーモンです。MTAと組み合わせて SMTP AUTH の構築に使用します。必要なときに稼動させます。

    sendmail...とりあえず停止
    UNIX系OSの伝統的な メールサーバー “sendmail”のデーモンです。設定を行ってから稼動します。
     
     smartd...とりあえず停止
    ハードディスクの内蔵の自己診断機能(S.M.A.R.T.)を利用し、異常が発生したときにレポートするデーモンです。設定してから稼動します。

    smb...とりあえず停止
    CentOS6上でWindowsOSのファイルサーバーを稼動させるアプリケーション sambaのデーモンです。設定してから稼動します。

    snmpd snmptrapd...とりあえず停止
    通信機器をネットワーク経由で監視する SNMP“Simple Network Management Protocol “のサーバーデーモンです。設定してから稼動します。

    spamassassin...とりあえず停止
    スパムメール判別プログラムのデーモンです。設定してから稼動します。

    spice-vgagentd...とりあえず停止
    仮想サーバー運用の際にリモート操作環境を提供するシステムの一つです。VNCに変わる手段として注目されていますが、仮想サーバーを使用しない場合は不要です。

    squid ...とりあえず停止
    Proxyサーバーのデーモンです。設定してから稼動します。

    sshd ...稼動

    サーバーをパソコンなどからリモート操作するために必要なSSHサーバーのデーモンです。

    このコンテンツではパソコンからSSHでサーバーを操作することを基本に解説していますので、必ず稼動させておいてください。

    sssd...停止
    ユーザーアカウント やホスト名などを統合的に管理するディレクトリサービス”LDAP”のセキュアな認証を担うデーモンです。
    使用しません。

    sysstat...停止(興味があれば稼働)
    サーバーシステムの稼働状態を監視し、コマンド操作によりレポートを返すためのデーモンです。
    本コンテンツでは触れませんが、CPU、メモリ、プロセス、割込み、ネットワーク、接続ホストの状態などを詳しく調べることができますので、興味のある方はご利用ください。

    tomcat6...停止(必要であれば稼働)
    Webサーバーに、Javaサーブレット、JSPによる処理を行わせるためのアプリケーションサーバーです。
    該当するWebサービスを構築するときは稼働させます。

    udev-post...稼働
    ホスト機に接続されたハードウェアの自動認識を行います。稼働させておきます。

    vsftpd...とりあえず停止
    現在の標準的なFTPサーバーデーモンです。設定を行ってから稼動します。

    wdaemon...とりあえず停止
    ワコム社製のタブレットを自動認識させるためのデーモンです。サーバではデザイン用のタブレットを使うことはまずないでしょう。停止します。

    wpa_supplicant...停止
    無線LANの暗号化及び認証の規格であるWPA(Wi-Fi Protected Access)をサポートします。利用しませんので停止します。

    ypbind...停止
    UNIX系のOSで利用される、 NIS と呼ばれるユーザー情報の共有システムに参加するためのデーモンです。数台以上のUNIX系OSのホスト機を運用するのでなければ不要です。

    以上です。

    これらのデーモンは、CentOS6インストール時のパッケージの選択  によって異なりますし、アップデート時の依存関係によって自動的に追加されたり、後から自分でパッケージをインストールしたりすると新たに追加されることがあります。

    デーモンは数が多いうえに内容がわかりにくいものが多いので、自分の望む稼動/停止の組み合わせができたら、その状態を記録しておくことをお勧めします。

     
  • 太田 和宏 10:53 AM | 2012年10月24日 パーマリンク |  

    セキュリティ設定 

    企業によっては SSH のポート番号を 22 しか許さない場合もあるだろうし、Firewall で SSH へのアクセスが制限されることもあるだろうから、これはオプション。ただ、ポート番号を変更すれば攻撃を受ける頻度が減る。

    設定の前に、必ず iptables に変更後のポート番号でアクセスできるように設定しておくこと。そうしないとログインできなくなってしまう。

    SSH の設定ファイルを編集。

    # vim /etc/ssh/sshd_config

    SSH のポート番号はデフォルトで 22 だが、WELL KNOWN PORT NUMBERS(0~1023番)以外のポート番号であれば何でもよい。ここでは区切りよく 10000 としてみる。

    sshd_config の以下の行がコメントアウトされているので、コメントを外しポート番号を 10000 に変更して保存。

    Port 10000

    SSH のサービスを再起動。

    # /etc/init.d/sshd restart

     
  • 太田 和宏 8:04 AM | 2012年10月24日 パーマリンク |  

    セキュリティ設定 

    iptables によってソフトウェア的に Firewall を実現できる。不要なポートは開けないことが重要。下記コマンドで iptables の設定を確認。

    # /sbin/iptables -L

    ssh 以外のサービスは外部からの通信が止められていることを確認。

    Chain INPUT (policy ACCEPT)       

    num target prot opt source destination        

    1 ACCEPT all — anywhere anywhere state RELATED,ESTABLISHED        

    2 ACCEPT icmp — anywhere anywhere        

    3 ACCEPT all — anywhere anywhere        

    4 ACCEPT tcp — anywhere anywhere state NEW tcp dpt:ssh        

    5 REJECT all — anywhere anywhere reject-with icmp-host-prohibited

    Chain FORWARD (policy ACCEPT)       

    num target prot opt source destination        

    1 REJECT all — anywhere anywhere reject-with icmp-host-prohibited

    Chain OUTPUT (policy ACCEPT)       

    num target prot opt source destination

    ここでは、HTTP と HTTPS の通信を許可。

    # /sbin/iptables -I INPUT 5 -p tcp –dport http -j ACCEPT #HTTP

    1. /sbin/iptables -I INPUT 5 -p tcp –dport https -j ACCEPT #HTTPS
  • 設定内容を確認。

    # /sbin/iptables -L

     

    Chain INPUT (policy ACCEPT)       

    num target prot opt source destination        

    1 ACCEPT all — anywhere anywhere state RELATED,ESTABLISHED        

    2 ACCEPT icmp — anywhere anywhere        

    3 ACCEPT all — anywhere anywhere        

    4 ACCEPT tcp — anywhere anywhere state NEW tcp dpt:ssh        

    5 ACCEPT tcp — anywhere anywhere tcp dpt:https        

    6 ACCEPT tcp — anywhere anywhere tcp dpt:http        

    7 REJECT all — anywhere anywhere reject-with icmp-host-prohibited

    Chain FORWARD (policy ACCEPT)       

    num target prot opt source destination        

    1 REJECT all — anywhere anywhere reject-with icmp-host-prohibited

    Chain OUTPUT (policy ACCEPT)       

    num target prot opt source destination

    設定を保存。

    # /sbin/service iptables save

    設定が保存できたか確認。

    # cat /etc/sysconfig/iptables

     

    # Generated by iptables-save v1.4.7 on Sun Mar 18 19:09:59 2012        *filter        

    :INPUT ACCEPT [0:0]        

    :FORWARD ACCEPT [0:0]        

    :OUTPUT ACCEPT [51:5844]        

    -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT        

    -A INPUT -p icmp -j ACCEPT        

    -A INPUT -i lo -j ACCEPT        

    -A INPUT -p tcp -m state –state NEW -m tcp –dport 22 -j ACCEPT        

    -A INPUT -p tcp -m tcp –dport 443 -j ACCEPT        

    -A INPUT -p tcp -m tcp –dport 80 -j ACCEPT        

    -A INPUT -j REJECT –reject-with icmp-host-prohibited        

    -A FORWARD -j REJECT –reject-with icmp-host-prohibited        

    COMMIT        

    # Completed on Sun Mar 18 19:09:59 2012

 
  • 太田 和宏 7:58 AM | 2012年10月24日 パーマリンク |  

    セキュリティ設定 

    リモートからメンテナンスできるユーザーを追加して、wheel グループに追加。

    # useradd hogehoge

    1. passwd hoghoge
    1. usermod –G wheel hogehoge
  • wheel グループのメンバーのみ root になれるように設定。

    # vim /etc/pam.d/su

    以下の行のコメントを外して保存。

    auth            required        pam_wheel.so use_uid

    su コマンドで、wheel グループのみ root になれるように設定。

    # vim /etc/login.defs

    以下の設定を追加して保存。

    SU_WHEEL_ONLY yes

     

    wheel グループのユーザーのみ sudo コマンドを実行できるように設定。visudo は /etc/sudoers を安全に編集するためのコマンドで、vi と同じように使用できる。

    # visudo

    以下の行のコメントを外して保存。

    %wheel  ALL=(ALL)       ALL

    sudo 実行時にパスワード入力を求められないようにするには、以下の行のコメントを外して保存。設定時には本当にその運用でよいか要検討。

    %wheel  ALL=(ALL)       NOPASSWD: ALL

     

    root での ssh ログインを禁止するように設定。

    # vim /etc/ssh/sshd_config

    PermitRootLogin を以下のように設定して保存。

    PermitRootLogin no

    sshd を再起動して設定を有効にする。

    #  /etc/init.d/sshd restart

     
  • 太田 和宏 7:56 AM | 2012年10月24日 パーマリンク |  

    セキュリティ設定 

    • リモートからの root ログインを無効にする
    • 公開鍵暗号方式を使用した SSH ログイン設定
    • iptables 設定
    • SSH ポート番号の変更
    • 不要なサービスを停止
    • ログ監視設定
    • ファイル改ざん検知ツール設定
    • ウィルス対策ソフト設定
    • Apache の設定
    • 全パッケージのアップデート
     
  • 太田 和宏 12:27 AM | 2012年10月24日 パーマリンク |  

    とりあえず・・・ 

    コピーを・・・修正は後で(*^-^)/

     
  • 太田 和宏 12:26 AM | 2012年10月24日 パーマリンク |  

    ネットワークを設定しよう!! 

    設定ファイルの書き換えを行ったら、変更された内容をシステムに反映させる必要があります。

    一番はっきりした方法は、 reboot コマンド でシステムごと再起動してしまうことです。しかし、この方法はお勧めしません。
    なぜなら再起動には少なくとも数十秒はかかりますから、設定に間違いがあって、何度も再起動していると結構イライラするからです。

    というわけで、システムのネットワーク機能だけを再起動する方法をお勧めします。
    具体的には、 “/etc/init.d/network” というネットワーク制御用 スクリプト ファイルを “restart” オプションで実行します。
    [poweredge@web1 ~]$ su -Enter Password: ”root”のパスワードを入力します。 <Enter> [root@web1 ~]# /etc/init.d/network restart<Enter>
    . . . 中略(メッセージが表示されます) . . .
    [root@web1 ~]#
    この方法であれば、ものの数秒で設定が反映されますから、試行錯誤でネットワーク設定を行う場合でもイライラすることはありません。
    スクリプトが上のように正常に実行できたら、動作確認をしましょう。
    単純なネットワークの動作確認であれば ping コマンドで充分です。任意の ユーザーアカウント で ログイン して、 プロンプト から、次の IPアドレス に ping を実行してください。
    1.”127.0.0.1″ ... ループバックアドレス の確認
    2.”192.168.100.11″ ...自ホストのNICへの接続確認
    3.”192.168.100.1″ ...ルーターへの接続確認
    4.” ISP の DNSサーバー ” ... WAN 空間への接続確認
    “/etc/sysconfig/network-scripts/ifcfg-eth0” と “/etc/sysconfig/network” が正しく記述されていれば、どれも問題なく パケット が返ってくるはずです。返ってこないときは、これらの設定ファイルの内容をもう一度見直してください。
    更に、次の ホスト名 に ping を実行してください。
    5.”localhost.localdomain” ...ループバックアドレスの名前解決の確認
    6.”localhost” ...ループバックアドレスの名前解決の確認
    どちらも “127.0.0.1” からパケットが返ってくることを確認してください。 “unknown host [ホスト名]” と表示されてコマンドが実行されないときは、 “/etc/host.conf” の設定か、 “/etc/hosts” のループバックアドレスの記述に間違いがあります。
    7.”web1.obenri.com” ...自ホストの名前解決の確認
    8.”web1″ ...自ホストの名前解決の確認
    どちらも “192.168.100.11” からパケットが返ってくることを確認してください。 “unknown host [ホスト名]” と表示されてコマンドが実行されないときは、 “/etc/host.conf” の設定か、 “/etc/hosts” の “192.168.100.11” の部分の記述に間違いがあります。
    9.”www.yahoo.co.jp” ...WAN空間での名前解決の確認
    “/etc/resolv.conf” に記述されている DNSサーバー のIPアドレスの記述に誤りがあるか、そのDNSサーバーが動作していません。記述に誤りがない場合は、 ISP の都合でDNSサーバーが変更になっているかもしれませんので、ISPに確認してみてください。

    以上の確認ができたら、ネットワークの設定は完了です。

     
  • 太田 和宏 12:22 AM | 2012年10月24日 パーマリンク |  

    ネットワークを設定しよう!! 

    構築中のLinuxサーバー が、 名前解決 を行うために参照するシステムの優先順位を決定するための設定です。
    “/etc/nsswitch.conf”
    を編集します。

    このファイルには多くのキーワードがありますが、 名前解決 の順序に関する設定は、
    38行目の “hosts:” で始まる一行です。
    キーワードは他にもありますが、とりあえずは不要ですので説明は割愛します。
    “#” で始まる行はコメント行です。

    設定行の、
    hosts:   files dns
    は、 “/etc/hosts” の記述を示す “files” と、 DNSサーバー の記述である “/etc/resolv.conf” を示す “dns” を、スペースで区切って優先する順番に記述してあります。
    つまり 構築中のLinuxサーバー は、
    1.まず、自分自身をプライベートIPアドレスに名前解決するために、WAN空間のDNSサーバーを利用せずに”/etc/hosts”を使う。
    2.次に自分自身以外(インターネット空間)の ホスト を名前解決するために、WAN空間のDNSサーバーを利用する。
    という順序で名前解決を行いますからそのままの記述でOKということになります。

     
  • 太田 和宏 12:20 AM | 2012年10月24日 パーマリンク |  

    ネットワークを設定しよう!! 

    構築中のLinuxサーバー が、 名前解決 を行うために参照するシステムの優先順位を決定するための設定です。
    “/etc/host.conf”
    を編集します。

    “;” で始まる行はコメント行です。
    “multi on” は、 構築中のLinuxサーバー が “/etc/hosts” を参照して名前解決を要求したとき、ホスト名が複数の IPアドレス を返すような場合に、全部の名前解決の結果を返すという設定です。
    この設定がシステム動作に何らかの影響を与えることは稀ですのでそのままでも構いませんが、一般には “/etc/hosts” の記述順で一つのIPアドレスのみを返す振る舞いのほうがサーバー運用ではトラブルも少なく、発生した問題を解決しやすいといえます。
    従ってここは設定行を削除するか、明示的に “multi off” と修正して、単独のIPアドレスを返すように設定することをお勧めします。

    ところで、以前のバージョンのCentOSまでは、二行目に名前解決の仕組みの優先順の設定として、
    “order 先に参照するシステム,後に参照するシステム”
    というキーワードの記述がありましたが、CentOS6.2からはこの値を参照する標準パッケージがなくなり、後述する “/etc/nsswitch.conf” を参照する仕様になっているため、この記述は廃止されました。

    しかしながら標準パッケージ以外のアプリケーションを利用する場合は、依然としてこの “/etc/host.conf” が参照される可能性もあるため、一応記述しておくことをお勧めします。
    キーワード order とパラメータはスペースまたはTABで区切って、一行で記述します。
    “参照するシステム” は、 “/etc/hosts” の記述を示す “hosts” と、 DNSサーバー の記述である “/etc/resolv.conf” を示す “bind” を、 “,” で区切って優先する順番に記述します。
    このホスト機の FQDN である “web1.○○○.com” が、 WAN 空間からアクセスを受けるときは、同じくWAN空間に設置されたDNSサーバーで名前解決されますから、 それから ルーター の ポートフォワーディング 機能で “211.183.111.34→ 192.168.100.11” に変換され、このホスト機はアクセスを受けるわけです。 “web1.○○○.com→211.183.111.34”
    のように、 グローバルIPアドレス を所在地情報としてアクセスを受けます。
    しかし、このホスト機自身が 「自分自身の名前解決」 を行う場合には、WAN空間に設置されたDNSサーバーを参照するわけにはいきません。
    なぜならこのホスト機は、 サブネット 内では “192.168.100.11” という プライベートIPアドレス を所在地情報として動作しますから、 “211.183.111.34” のようなグローバルIPアドレスを持ってこられても処理のしようがないからです。
    つまり 構築中のLinuxサーバー は、
    1.まず、自分自身をプライベートIPアドレスに名前解決するために、WAN空間のDNSサーバーを利用せずに”/etc/hosts”を使う。
    2.次に自分自身以外(インターネット空間)の ホスト を名前解決するために、WAN空間のDNSサーバーを利用する。
    という順序で名前解決を行う必要があるわけです。従って、 “/etc/host.conf” は、
    multi off
    order hosts,bind
    と設定しておきます。
    キーワードは他にもありますが、とりあえずは不要ですので説明は割愛します。

    ただし先に説明したとおり、CentOS6で名前解決を必要とするアプリケーションの大部分は、この “/etc/host.conf” ではなく、以下に説明する “/etc/nsswitch.conf” を参照しますから、 “/etc/host.conf” を修正するだけではなく “/etc/nsswitch.conf” の設定も確認し、必要に応じて同じように設定しなければならない点に注意してください。

     
  • 太田 和宏 12:18 AM | 2012年10月24日 パーマリンク |  

    ネットワークを設定しよう!! 

    構築中のLinuxサーバー が、固定的に 名前解決 を行う hostsファイル として、
    “/etc/hosts”
    を編集します。

    【書式】
    ” IPアドレス   ホスト名 ”
    行の先頭から最初のスペースまたはTABまでが IPアドレス と解釈されます。 左側のパラメータである「IPアドレス」と、右側のパラメータである「ホスト名」はスペースまたはTABで区切って、一行で記述します。ホスト名はスペースまたはTABで区切って複数指定することが可能です。
    キーワードは複数設定可能で、上の行から順に参照されます。 “#” で始まる行はコメント行です。
    一行目と二行目はそれぞれ IPv4、IPv6のループバックアドレスに対する名前解決の設定です。
    これらの設定は、ユーザーが行う設定とは無関係にシステムが決めるものですから、修正せずにそのまま残しておきます。
    構築中のLinuxサーバー をパソコンと同じように一般的なクライアント機として使用するのであれば、 “/etc/hosts”
    の設定はこれだけで構いません。
    しかしながらサーバーとして運用を行う場合はこれだけでは不十分で、先に  で設定した “web1.○○○.com” というホスト名が、自分自身に割り当てられたされたIPアドレス “192.168.100.11” を指し示すことを、
    192.168.100.11 web1.○○○.com web1
    と追記し、 構築中のLinuxサーバー 自身が、
    web1.○○○.com → 192.168.100.11
    及び、
    web1 → 192.168.100.11
    と自分自身で名前解決できるようにする必要があります。
    以前のバージョンのCentOSでは、これに関する設定は自動的に “/etc/hosts” に記述されていたのですが、CentOS6.2では手作業で記述する必要があります。
    また例えば 構築中のLinuxサーバー に別の ホスト名 “www.○○○.com” を追加設定し、DNSサーバーに頼らずに自分自身でこの “/etc/hosts” を使って名前解決を行いたい場合は、
    “192.168.100.11 http://www.○○○.com www”
    のように追加記述することになります。
    ところで、 WAN 、すなわちインターネット空間では、普通このような名前解決の仕事は DNSサーバー が担うようにシステム化されています  。
    だとすれば、この “/etc/hosts” というファイルの設定はなぜ必要なのでしょうか。名前解決の一切を ISP 指定のDNSサーバーに任せるわけにはいかないのでしょうか。
    ここでもう一度、現在構築中のネットワーク構成を思い出してください  。
    このネットワークは、 ルーター の NAT + IPマスカレード 機能を使って、 WAN 空間と LAN 空間を切り分けた形になっています  。
    というわけですから、WAN空間に設置されているISPのDNSサーバーが名前解決できるのは、あくまでWAN空間に ノード を持つルーターや ホスト であって、WAN空間から切り離されたLANの内部のホストに対しては、名前解決を行うことができないわけです。
    従って、こういうネットワーク構成では、なんらかの方法でLAN内部の名前解決をしなけければならないことになります。
    このLAN内部に設置するDNSサーバーについては、  で構築の解説をします。 もちろん、LANの中で名前解決を行うためのDNSサーバーを設置するのも一つの選択肢ですが、LANに接続しているホストの台数が限られていれば、それぞれのホスト機に 「固定的な情報としての名前解決の対照表」 を持たせるほうが簡単です。
    その対照表が “/etc/hosts” というわけです。
    ちなみに、この設定ファイルのループバックアドレスに対する名前解決の設定は、こういう記述になっています。 2行目の “::1” で始まる行は IPv6  に関する記述ですので説明は割愛します。  127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
    これらはいうまでもなく ループバックアドレス に対するホスト名の記述です。 この “localhost” や “web1” のように、 FQDN 形式ではないホスト名は、本来 UNIX 系 OS が使ってきたもので、現在は WindowsOS や MacintoshOS でも利用しますから、そういうホスト名を参照するアプリケーション動作のために必ず記述しておきましょう。  “localhost” と “localhost.localdomain” というホスト名は、ループバックアドレスに対する「お約束のホスト名」です。 “localhost4” と “localhost4.localdomain4” はIPv6と混在する環境で明示的にIPv4のループバックアドレスを指し示さなければならない場合に予約されているホスト名と解釈してください。
    しかしながら自分自身のホスト名である “web1.○○○.com” 及び “web1” も、当然のことながら自分自身を表すループバックアドレス “127.0.0.1” を指し示していても問題はありませんから、特にCentOS5以前の解説書ではIPv4の部分は、
    127.0.0.1 web1.○○○.com web1 localhost.localdomain localhost
    と記述するように解説しているケースがあります。
    ただ実用上、意図的に設定するホスト名については強いてループバックアドレスへの名前解決を行う必要はなく、
    192.168.100.11 web1.○○○.com web1
    という記述のみで充分です。
    余分な設定が多いと、後から ドメイン名 や サブドメイン を追加するときに書き換えなければならない部分が増えて設定ミスを犯しやすくなり、 アプリケーション によっては不都合が出る場合がありますので、ループバックの設定の部分は可能な限りデフォルトのままにしておくことをお勧めします。

     
  • c
    新規投稿作成
    j
    次の投稿 / 次のコメント
    k
    過去の投稿 / コメント
    r
    返信
    e
    編集
    o
    コメント表示 / 非表示
    t
    トップへ移動
    l
    ログインへ
    h
    ヘルプを表示 / 非表示
    Shift + ESC
    取り消し