Linux - Host Security



 ◆ ログイン制御

 Linuxシステムをrootユーザーだけが使用したい場合は、Linuxシステムに空の
/etc/nologinファイルを
 作成します。これによりrootユーザー以外のユーザーはログインできなくなります。

 
◆ 実行例 : /etc/nologinファイルの作成
 # touch /etc/nologin


 また、メールサーバやFTPサーバなどではユーザーアカウントは必要ですが、ユーザーがログインして
 シェルを実行することは好ましくないため、ユーザーのログインシェルを
/sbin/nologinに変更する事で
 一般ユーザーのLinuxシステムへのログインを禁止することもできます。

 ◆ 設定例 : ユーザー「mike」のログインの禁止
 # usermod -s /sbin/nologin mike




 ◆ スーパーサーバ

 以前のLinuxシステムは、ネットワーク通信をする各プログラムを起動してメモリ上に常駐させていました。
 この状態では、多くのCPUやメモリを消費することになりリソースの無駄使いとなってしまいます。そこで
 この問題を解決するために、サーバプログラムを管理する「
スーパーサーバ」というものが開発されました。

 スーパーサーバは、他のサーバプログラムに変わってサービス要求を監視して、接続確立時に本来のサーバ
 プログラムに要求を引き渡します。このように必要時に個々のサーバプログラムを起動することでリソース
 を効率的に使用できます。また、TCPラッパーと組み合わせることで、アクセス制御を集中管理できます。
 ただし、応答が遅れるというデメリットもあるので、Webサーバやメールサーバなどには適していません。
 FTPやsshサーバなどの接続頻度の高くないサーバは、スーパーサーバ経由の接続が適します。


    


 スーパーサーバには
inetdxinetdがあり、多くのディストリビューションではxinetdが採用されています。


 ◆ inetdの設定

 inetdは、xinetdが登場するまで一般的に使用されていたスーパーサーバのデーモンです。inetdの設定は
 /etc/inetd.conf ファイルに記述されています。詳細な設定については、/etc/inetd.d ディレクトリに
 格納されています。inetdはセキュリティ問題や柔軟性のなさから、現在はほとんど使用されていません。



 ◆ xinetdの設定

 xinetdは、inetdを拡張したスーパーサーバのデーモンです。xinetdの設定は、
/etc/xinetd.confファイル
 に記述(主なパラメータは以下の通り)されています。全体的な設定は/etc/xinetd.confファイルで設定
 を行いますが、各サービスごとの設定ファイルは、
/etc/xinetd.dディレクトリ以下にあります。

 ◆ /etc/xined.conf ファイルの設定例

 defaults
 {

   instances        = 60
   log_type         = SYSLOG authpriv
   log_on_success   = HOST PID
   log_on_failure      = HOST
   cps              = 25 30

 }

 includedir /etc/xinetd.d


 ◆ /etc/xinetd.confファイルの主なパラメータ
パラメータ 説明
 instances  各サービスにおける最大デーモン数
 log_type  ログの出力方法
 log_on_success  接続許可時にログに記録する内容
 log_on_failure  接続拒否時にログに記録する内容
 cps  1秒間に接続可能な最大コネクション数 ・ 限度に達した時のサービス休止の秒数
 includedir  各サービスごとの設定ファイルを格納するディレクトリ


 /etc/xinetd.dディレクトリ配下にある設定ファイルは、サービス名がファイル名になっています。
 /etc/xinetd.dディレクトリ配下にある設定ファイルで使用される主なパラメータは以下のとおりです。

パラメータ 説明
 disable  サービスの有効(no) / 無効(yes)
 socket_type  通信のタイプの指定。TCP(stream) / UDP(dgram)
 wait  ウェイトタイム
 user  サービスを実行するユーザー名
 server  サーバプログラムへのフルパス
 server_args  サーバプログラムに渡す引数
 log_on_failure  接続拒否時にログに記録する内容
 nice  実行優先度
 only_from  接続を許可する接続元
 no_access  接続を拒否する接続元
 access_time  アクセスを許可する時間帯


 ◆ 設定例 : サービスの有効、無効の変更後は、xinetdの再起動が必要
 # /etc/init.d/xinetd restart


 ◆ TCP Wrapper (TCPラッパー)

 Linuxには、
TCP Wrapperと呼ばれるセキュリティソフトウェアがあります。TCPラッパーは通信で使用
 するTCPポートを把握していて、アクセス制御を行ったり、通信ログを保存することができます。この機能
 を使うことによって外部からアクセスしてくるポートの細かい制限を行うことができます。TCPラッパーの
 設定は、
/etc/hosts.allowファイル/etc/hosts.denyファイルを使用します。

設定ファイル 説明
/etc/hosts.allow  アクセス制御の許可設定を行うファイル
/etc/hosts.deny  アクセス制御の拒否設定を行うファイル


 ◆ 書式 : デーモン名 : ホスト名またはIPアドレス

 ◆ /etc/hosts.allowファイルの設定例 : 192.168.100.0/24のネットワークからのFTP接続を許可
 in.ftpd: 192.168.100.


 ◆ /etc/hosts.allowファイルの設定例 : 192.168.100.0/24のネットワークからのSSH接続を許可
 sshd: 192.168.100.


 ◆ /etc/hosts.denyファイルの設定例 : 全てのホストからの全サービスへの接続を拒否
 ALL: ALL



 TCP Wappperでは、最初に/etc/hosts.allowファイルをチェックして、次に、/etc/hosts.denyファイルを
 チェックします。/etc/hosts.allowファイルに合致する内容があれば/etc/hosts.denyファイルは参照しません。
 /etc/hosts.allowファイルと/etc/hosts.denyファイルの両方に合致しない場合は、許可されることになります。


     



Linux 技術入門

Copyright(C) 2002-2024 ネットワークエンジニアとして All Rights Reserved