FC2ブログ

下流ネットワークエンジニアの生活

上流工程を夢見る下流工程のネットワークエンジニアがネットワーク技術や資格、身の回りのことを情報発信! Juniper Cisco YAMAHA DELL D-Link AlaxalA F5 CCNA CCNP CCIE ネットワークスペシャリスト

最低限はやっておきたいCentOSのセキュリティ設定

2013.11.17 (Sun)
最低限はやっておきたいCentOSセキュリティ設定


外部にWebサービスを公開するにあたり、
無防備の状態では危険です。

必要最低限セキュリティ設定を説明します。









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

OSのインストール時の初期段階では、
パッケージが古く、脆弱です。
アップデートしましょう。

・管理者権限に移行

[user@CentOS ~]$ su
パスワード:rootパスワード

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

[root@CentOS6 user]# yum -y update




②ファイヤーウォールの設定

iptablesを使用する

・現状の設定確認

[root@CentOS6 user]# iptables --list


iptablesを変更用のシェルを作成

[root@CentOS6 user]# vi iptables.sh

公開したいサービスのみ解放し、それ以外は拒否。



以下は例
・条件
 - インターネットからのHTTPを許可
 - 管理セグメントからのSSHを許可
 - サーバから外部へのアクセスを許可
 - それ以外は閉じる


-----------ここから-----------

#! /bin/sh

#パラメータ(ご自身の環境に合わせてください))

trusthost='192.168.1.2'
myhost='192.168.2.2'
any='0.0.0.0/0'

#設定初期化
iptables -F
iptables -X

#デフォルトポリシー
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP


#LoopBackインタフェースの許可
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT


#サーバから外部へのTCP接続を許可
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


#管理セグメントからのSSHを許可
iptables -A INPUT -p tcp -s $trusthost -d $myhost --dport 22 -m state --state NEW -j ACCEPT

#インターネットからのHTTPを許可
iptables -A INPUT -p tcp -s $any -d $myhost --dport 80 -m state --state NEW -j ACCEPT


#ログ設定
iptables -N LOGGING
iptables -A LOGGING -j LOG --log-level warning --log-prefix "DROP:" -m limit
iptables -A LOGGING -j DROP
iptables -A INPUT -j LOGGING
iptables -A OUTPUT -j LOGGING

#保存&反映
/etc/init.d/iptables save
/etc/init.d/iptables restart


-----------ここまで-----------




・シェルを実行して設定変更を実施。

[root@CentOS6 user]# sh iptables.sh

・設定が反映されているか確認

[root@CentOS6 user]# iptables --list





③不要なサービスの停止


・有効になっているサービスを確認
各ランレベルごとに有効だと"on"、無効だと"off"と表示されます。

 [root@CentOS6 user]# chkconfig --list
abrt-ccpp 0:off 1:off 2:off 3:on 4:off 5:on 6:off
abrtd 0:off 1:off 2:off 3:on 4:off 5:on 6:off
acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off
atd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
auditd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
autofs 0:off 1:off 2:off 3:on 4:on 5:on 6:off
nfs 0:off 1:off 2:on 3:on 4:on 5:on 6:off
postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off


・不要のサービスを停止する。
※例ではnfsを停止します。

 [root@CentOS6 user]# /etc/init.d/nfs stop
nfs デーモンを停止中: [ OK ]
 [root@CentOS6 user]# chkconfig nfs off


必要なサービス

atd atコマンドで指定された処理を行う
autofs automount処理を行うサービス
crond ジョブ(スクリプト)を自動実行する
haldaemon リアルタイムハードウェア情報収集
iptables ファイヤーウォール(IPv4)
kudzu 起動時のハードウェア自動認識を行う
lvm2-monitor LVMモニター
messagebus アプリケーション間のメッセージ交換
microcode_ctl Intel IA32 プロセッサのマイクロコードUtility
network ネットワークインターフェース関連
readahead_early システムやサービスに必要なファイルを読み込み
sendmail メール配信(MTA)
smartd HDDの障害予測
sshd SSH
syslog ログ管理


・IPv6の停止

[root@CentOS6 user]# vi /etc/modprobe.d/disable-ipv6.conf

options ipv6 disable=1 #これを追加する。

[root@CentOS6 user]# shutdown -r now ※再起動する


④SSH接続の設定

・rootログインを禁止する

 [root@CentOS6 user]# vi /etc/ssh/sshd_config

PermitRootLogin no #yesをnoに変更します。

[root@CentOS6 user]# /etc/init.d/sshd restart


・SSHのポート番号を変更する

 [root@CentOS6 user]# vi /etc/ssh/sshd_config
  
  Port 10022 #22を任意の番号に変更する(1024-65535の範囲で)

[root@CentOS6 user]# /etc/init.d/sshd restart


⑤ログの監視設定

ログの内容を編集して root宛てに通知される。

logwatchインストール

[root@CentOS6 user]# yum -y install logwatch


※インストールされたか確認する。

[root@CentOS6 user]# /usr/sbin/logwatch --print




⑥Webサーバ(Apache)の設定


・Apacheのセキュリティ対策

[root@CentOS6 user]# vi /etc/httpd/conf/httpd.conf

  以下の項目を変更する
------
ServerTokens ProductOnly #レスポンスヘッダを最低限

ServerSignature Off #エラーページにApacheの情報を外す

TraceEnable Off #Trace メソッドを無効にする


Options FollowSymLinks #Indexesを削除する

------


[root@CentOS6 user]# /etc/init.d/httpd restart









よろしければクリックをお願いします。
にほんブログ村 IT技術ブログ ネットワーク・SEへブログ王ランキングに参加中!

関連記事
スポンサーサイト



コメント


管理者のみに表示

トラックバック