いつでも建設の安全性の問題について、企業のITシステムは、ITシステムのビジネス·ニーズとITシステムのライフサイクル全体の初めに自分のビジネスを構築するために、時代遅れの話題になっていない、システムの安全な操作は非常に重要ですこれは、システムのセキュリティ、個人的に安定した動作を確保するために、システムの運用·保守要員として大きな責任を働きます。
だからこのブログは、保守担当者にホストのために、Linuxシステムのセキュリティ強化のスクリプトとベースライン検査基準の具体的な実装を提供し、研究を参照してください。
次のスクリプトの主な機能の一つは、次のとおりです。
*統合項目が含まれます:パスワードの長さ、セッションタイムアウトは、rootユーザーの直接のtelnetやrloginを制限する、未使用のアカウントとグループを削除し、SSHを
*非必須の場合には、グループは777にディレクトリのアクセス権を含むべきではない、システムパスのrootユーザーは、親ディレクトリに含まれていないことを保証するために、0に加えて、ユーザのルートUIDをチェックします
*、オペレーティングシステムのLinuxユーザのumask設定を確認して重要なディレクトリをチェックして、ファイルのアクセス権は、任意のディレクトリを探して根系以外のsu操作からユーザーを防ぐためには、書き込み権限を持ちます
*システムは、ファイルの所有者ではない、隠れたシステムファイルを見つけ、それはログと監査コンプライアンスのかどうかが決定されると、ログインタイムアウト設定、不要なサービスを無効にして下さい
RedHatのに適した* Linuxのセキュリティ強化、6.2 centos5.8
詳細は、以下のように、システムレベルの強化のために彼らのビジネスニーズを組み合わせてください、次のとおりです。
#1、———————————————– ———————-
エコー “未使用のアカウントおよびグループを削除します。」
「未使用のユーザーとgrupsを削除 “エコー
LP同期シャットダウン停止ニュースUUCPオペレータゲームリスでiについて
行います
エコー “ユーザの$ Iが削除されます”
でuserdelの$ I
「私が削除したユーザーの$ “エコー
終わりました
LP同期シャットダウン停止ニュースUUCPオペレータゲームリスでiについて
行います
「グループの$ Iが削除されます “エコー
groupdelする$ I
「私が削除したグループの$ “エコー
終わりました
日付= 日付+%F
#2、———————————————–
#1節パスワードが8より大きいパスワードの長さが必要ですが、パスワードは90日に/etc/login.defsを満了します
#———————————————–
#————————————————- ——————–
「/etc/login.defs.bak_%dateするのcpに/etc/login.defsを「エコー
「#————————————- “エコー
CPに/etc/login.defs /etc/login.defs.bak_$date
#echo「設定パスワードを確認してください」
「ユーザーのパスワードのための構成を確認してください。 “エコー
「#————————————- “エコー
PASS_MAX_DAYS PASS_MIN_LEN PASS_MIN_DAYS PASS_WARN_AGEでiについて
行います
のgrep $ I | |はgrep -v \#猫に/etc/login.defs
終わりました
長さ8分の#setパスワード
「#————————————- “エコー
“長さ分を設定し、ユーザーのパスワードが8で”エコー
SED -i ‘/ PASS_MIN_LEN / S / 5/8 / G’に/etc/login.defs
「#————————————- “エコー
の#setパスワード最大90日
#echo “に設定されたパスワードは、90日の有効期限が切れ”
#sed -i ‘/ PASS_MAX_DAYS / S / 90分の99999 / G’に/etc/login.defs
#3、———————————————– ———————-
「空のパスワードがある場合、#チェックを “エコー
「パスワードなしのユーザーが持っているかどうかを確認してください! “エコー
「#————————————- “エコー
awkの-F:は/ etc / shadowの ‘($ 2 == “”){$ 1印刷}’
#4、———————————————–
#2章では、rootユーザーの直接のtelnetやrlogin、無効にsshを制限します
######推奨設定は/ etc / securettyにファイルで:CONSOLE =は/ dev / tty01
#————————————————- ——————–
#ユーザー名とパスワードは – そこにいる場合、ルートUIDを除いてチェック0ユーザー
#echo「他のユーザID 0がある場合、#チェック」
「システムが他のユーザーのIDが0である持っているかどうかを確認し、「エコー
「#————————————- “エコー
MESG = awkの-F: '(3ドル== 0){$ 1印刷}' / etc / passwdファイル| grepの-v root
[-z $ MESG]の場合
その後
エコー「他のユーザのuidが持っていない= 0 ”
ほかに
エコー
エコー “!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!」
エコー “$のMESGのUID = 0”
エコー “!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!」
Fiの
#5、———————————————– ———————-
「#その根系のパスが親ディレクトリに含まれていないことを確認し、非必須の場合には、ディレクトリ内の777にグループ権限を含めることはできません “エコー
「ルートのパスが父ディレクトリと777の権限を持っていけないことを確認し、ルートに設定されたパスを確認し、「エコー
「#————————————- “エコー
エコーの$ PATH | egrepの ‘(^ | :)(\ | :. | $)’
‘:’ ” -type d個の\(-perm -002 -o -perm -020 \)-ls TR |
ますecho $ PATHを検索
#6、———————————————– ———————-
エコー “#オペレーティングシステムLinuxのリモート接続を確認してください」
「システムがリモート接続SETINGを持っているかどうかを確認し、「エコー
「#————————————- “エコー
/ -name .netrcの発見
/ -name .rhostsファイルを検索
エコー「オペレーティングシステムのLinuxユーザのumaskの設定を確認してください」
「システムユーザーのumask設定を確認してください “エコー
「#————————————- “エコー
のI / etc / profileをは/etc/csh.login /etc/csh.cshrcの/ etc / bashrcにするため
行います
grepの-Hのumask $ I |はgrep -v “#”
終わりました
################### 027にumaskを設定します
#7、———————————————– ———————-
#echo「重要なディレクトリとファイルを確認するための許可番号」
##エコーは「重要なファイルやディレクトリの権限を確認してください」
「#————————————- “エコー
私にある/ etc /etc/rc.d/init.dの/ tmpに/etc/inetd.confファイル/ etc / passwdファイルは/ etc / shadowを/ etc / groupのは/ etc /セキュリティ/ etc / servicesの/etc/rc*.d用
行います
LSは$ Iを-ld
終わりました
「出力がOK yesまたはno :?あるかどうかを確認してください “-nエコー
私は読んで
場合には$ I
Y |はい)
ブレーク
;;
N |なし)
「出力を再確認してください! “エコー
「エコー!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! ”
続けます
;;
*)
エコー「はい入力を喜ばまたは全くありません」
;;
ESAC
#8 ———————————————– ———————-
「#設定のrc.dのスクリプトの権限の下で」#echo
「右のrc.dディレクトリ内(750)のスクリプトを構成する “エコー
「#————————————- “エコー
はchmod -R 750 /etc/rc.d/init.d/*
chmodの755 / binに/ suがSU、他のユーザが正常にビットSUよできない唯一のルートのあとに変更しました
chmodの664は/ var / log / wtmpファイル
#chattr + Aの/ var / log / messagesに
#9 ———————————————– ———————-
エコー “#検索システムは、SUIDとSGIDプログラムが存在します」
「ファイルがSUIDまたはSGIDを持って探す」エコー
「#————————————- “エコー
パートの grepの-v ^#/ etcにある/ fstabファイル| awkの(!=" 0 "6ドル){$ 2印刷} '
;やります
見つける$ PART \(-perm -04000 -o -perm -02000 \)型F -xdev -print | xargsのLSを-ld
終わりました
「出力がOK yesまたはno :?あるかどうかを確認してください “-nエコー
私は読んで
場合には$ I
Y |はい)
ブレーク
;;
N |なし)
「出力を再確認してください! “エコー
「エコー!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! ”
続けます
;;
*)
エコー「はい入力を喜ばまたは全くありません」
;;
ESAC
#10、———————————————– ———————-
「#検索システムの誰もがディレクトリに書き込み権限を持っている “エコー
エコー “ディレクトリの誰もが書き込み権限を持っていて下さい」
「#————————————- “エコー
awkの(|| 3ドル==" ext3の "3ドル==「EXT2」)に参加するための\
{$ 2印刷};ん
'の/ etc / fstab
$ PART -xdev型D \(!-perm -0002 -a -perm -1000 \)-print見つける| xargsのLSを-ld
終わりました
「出力がOK yesまたはno :?あるかどうかを確認してください “-nエコー
私は読んで
場合には$ I
Y |はい)
ブレーク
;;
N |なし)
「出力を再確認してください! “エコー
「エコー!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! ”
続けます
;;
*)
エコー「はい入力を喜ばまたは全くありません」
;;
ESAC
#11、———————————————– ———————-
#echo「#検索システムは、任意のファイルへの書き込み権限を持っています」
「誰もが右の書き込みしたファイルの検索」エコー
「#————————————- “エコー
パートの grepの-v ^#/ etcにある/ fstabファイル| awkの(!=" 0 "6ドル){$ 2印刷} '
;やります
$ PART -xdev型F \(!-perm -0002 -a -perm -1000 \)-print見つける| xargsのLSを-ld
終わりました
「出力がOK yesまたはno :?あるかどうかを確認してください “-nエコー
私は読んで
場合には$ I
Y |はい)
ブレーク
;;
N |なし)
「出力を再確認してください! “エコー
「エコー!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! ”
続けます
;;
*)
エコー「はい入力を喜ばまたは全くありません」
;;
ESAC
#12、———————————————– ———————-
エコー “#システムは、ファイルの所有者ではありません検索します。」
エコー “システム内に所有者またはグループなしのファイルを探します」
「#————————————- “エコー
grepの-vスワップ| | grepの-v ^#の/ etc / fstabにPARTのためのawk '(=" 0 "6ドル!){$ 2印刷}'
;やります
$部分を見つける-nouser -o -nogroup |はgrep -vの「VMware」|はgrep -v “DEV” | xargsのLSを-ld
終わりました
「出力がOK yesまたはno :?あるかどうかを確認してください “-nエコー
私は読んで
場合には$ I
Y |はい)
ブレーク
;;
N |なし)
「出力を再確認してください! “エコー
「エコー!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! ”
続けます
;;
*)
エコー「はい入力を喜ばまたは全くありません」
;;
ESAC
#13、———————————————– ———————-
###エコー “#検索システム隠しファイル」
##エコー」は、システム内の隠れファイルを探します」
##エコー “#————————————-”
### Linux実行エラー\除外するファイル/ dev “ディレクトリ
####の検索/ -name \( “.. *” -o “… *” -o “.xx” -o “.mail” \)-print -xdev
## #find / -name “… *” -print -xdev |猫-v
##の検索/ \(-name “。*” -o -name “… *” -o -name “.xx” -o -name “.mail” \)-xdev
##エコー-n “あなたは正しいyesまたはno :?場合は、すべての出力ファイルを確認している場合」
##私の記事を読みます
##ケースで$ I
## Y |はい)
##ブレイク
## ;;
## N |なし)
##エコー」は、出力を再確認してください! ”
##エコー “!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!」
##続行
## ;;
## *)
##エコー」を入力してください[はい]または[いいえ」
## ;;
## ESAC
##
#14、———————————————– ———————-
「#監査ログとコンプライアンスかどうかを決定します。 “エコー
エコー「裁判官の場合のルールに従っている場合のsyslogオーディション」
「#————————————- “エコー
autmesg = 猫の/etc/syslog.conf | egrepの^ authpriv
[!-n “$のautmesg”]の場合
その後
「は/etc/syslog.confでAUTHPRIVセットがありません “エコー
「エコー!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! ”
エコー-n “あなたはこのYまたはNを知っていますか?”
私は読んで
場合には$ I
Y |はい)
ブレーク
;;
N |なし)
「は/etc/syslog.confでAUTHPRIVセットがありません “エコー
「エコー!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! ”
続けます
;;
*)
エコー「はい入力を喜ばまたは全くありません」
;;
ESAC
ほかに
#エコー “ログと監査コンプライアンス」
「syslogのオーディションは、ルールに従う」エコー
Fiの
#15、———————————————– ———————-
「#クローズLinuxのコアダンプ」エコー
「システム·コア·ダンプをオフにする “エコー
「#————————————- “エコー
mesg1 = grepの" *ソフトコア0の「/ etc /セキュリティ/ limits.conf
mesg2 = grepの" *ハードコア0の「/ etc /セキュリティ/ limits.conf
[!-n “$のmesg1” -o!-n “$のmesg2”]の場合
その後
CP /etc/security/limits.confを/etc/security/limits.conf_$date
[!-n “$のmesg1”]の場合
その後
エコー “*ソフトコア0” >> /etc/security/limits.confを
Fiの
[!-n “$のmesg2”]の場合
その後
エコー “*ハードコア0” >> /etc/security/limits.confを
Fiの
Fiの
制限の制限が有効になるように、#loginファイルを変更します
CP /etc/pam.d/login /etc/pam.d/login_$date
エコー “セッション必要/lib/security/pam_limits.so」>> /etc/pam.d/login
#16、———————————————– ———————-
#ログインタイムアウト設定
#チェックファイルが=関連の設定を拒否/lib/security/pam_tally.so必要/etc/pam.d/system-authのアカウントを存在します
#は、認証に必要なpam_tally.so ONERR =失敗拒否= 6 unlock_time = 300を設定することをお勧め
#17、———————————————– ———————-
セットを制限する#suコマンド、suコマンド
#チェック/etc/pam.d/suファイルの設定
#ファイルが含まれています
#auth十分/lib/security/pam_rootok.soデバッグ
グループ= ISD /lib/security/pam_wheel.so必要#auth
#20、———————————————– ———————-
エコー “#ログインタイムアウトは自動的に終了します」
「アウトセッション時間を設定し、端末 “エコー
「#————————————- “エコー
tmoutを= はgrep -i TMOUTの/ etc / profile
[!-n “$ tmoutの”]の場合
その後
エコー
-nエコー “あなたは300Sにログインタイムアウトを設定しますか[はい]:?”
私は読んで
場合には$ I
Y |はい)
CPは/ etc / profileに/ etc / profile_の$日
エコー “輸出TMOUT = 300” >> / etc / profileを
。/ etc / profileを
;;
N |なし)
ブレーク
;;
*)
エコー「はい入力を喜ばまたは全くありません」
;;
ESAC
ほかに
MESGは= エコー$ tmoutの| awkの-F" = "'{$ 2印刷}'
[300 -ne “$のMESG”]の場合
その後
「ログインセッションのタイムアウトはMESGは現在300秒に変更されます$で “エコー
CPは/ etc / profileに/ etc / profile_の$日
エコー “輸出TMOUT = 300” >> / etc / profileを
。/ etc / profileを
Fiの
Fiの
sedの-iの/ HISTSIZE = 1000 / HISTSIZE = 100 / G ‘/ etc / profileを
#21、———————————————– ———————-
エコー “#Telnetを無効にすると、SSHを有効」
「Telnetを停止し、SSHDを起動 “エコー
「#————————————- “エコー
mesg1 = lsofを-i:23
mesg2 = lsofを-i:22
[!-n “$のmesg2”]の場合
その後
サービス開始SSHD
chkconfigのは、上のsshd
mesg2 = lsofを-i:22
Fiの
場合[!-n “$のmesg1” -a!-n “$のmesg2」]
その後
エコー
「Telnetの非アクティブう」エコー
オフのchkconfigのkrb5-telnetの
オフのchkconfigはekrb5-のtelnet
Fiの
#22、———————————————– ———————-
#echo「#は端末のタイムアウトを設定し、システムが自動的に非アクティブシェル10分を終了します」
#echo「#————————————- ”
#MESG = grepの"輸出TMOUT = 600の「/ etc / profile
[-z $ MESG]の#if
#then
#echo「輸出TMOUT = 600 “>> / etc / profileを
#。/ etc / profileを
#fi
#23、———————————————– ———————-
エコー “#は、不要なサービスを無効にします。」
「停止unuseingサービス「エコー
「#————————————- “エコー
リスト= “のavahi-daemonはブルートゥースカップにfirstboot HPLIP ip6tablesをiptablesのiscsiのとiscsid ISDNクズpcscdするrhnsd rhsmcertd rpcgssd rpcidmapdのsendmailてsmartdのyum-updatesd netfsポートマップのautofs nfslock NFS」
$リスト内のiについて
行います
chkconfigを$ Iオフ
サービス$ iが停止します
終わりました
「安全なネットワークのためのカーネル·パラメータを変更するには、「エコー
CPに/etc/sysctl.conf /etc/sysctl.conf.$date
#echo「net.ipv4.icmp_echo_ignore_all = 1 “>>の/ etc / sysctl.confの
sysctlの-a | grepのarp_filter | sedの-eの/ \ = \ 0 / \ = \ 1 / G ‘>>の/ etc / sysctl.confの
sysctlの-a | grepのaccept_redirects | sedの-eの/ \ = \ 1 / \ = \ 0 / G ‘>>の/ etc / sysctl.confの
sysctlの-a | grepのsend_redirects | sedの-eの/ \ = \ 1 / \ = \ 0 / G ‘>>の/ etc / sysctl.confの
sysctlの-a | grepのlog_martians | sedの-eの/ \ = \ 0 / \ = \ 1 / G ‘>>の/ etc / sysctl.confの
sysctlを-p
#24、———————————————– ———————-
エコー「ホットキー」
#Ctrl + Alt + Del
場合[-dは/ etc / initを]
その後
sedの-iの/ ^ [^#] /#&/ G ‘/etc/control-alt-delete.conf
ほかに
sedの-iの/ ^ CA :: /#&/ G ‘の/ etc / inittabファイル
Fiの
#25、———————————————– ———————-
エコー “デモ:ルートにユーザーdb2inst1 SUに加えて禁止」
USERMOD -Gホイールはdb2inst1
SED -i ‘/pam_wheel.so use_uid / S / ^#// G’ /etc/pam.d/su
エコー “SU_WHEEL_ONLYはい」>>は/ etc / login.defs
Leave a Reply