対応
yumつかってるなら
yum update bashで9月26日にだされた修正パッチをあてればよい
実際どのような箇所が問題なのか詳しく説明してくれているサイト様、すごいよくわかる・・!
http://moro-archive.hatenablog.com/entry/2014/09/27/200553
root@xxxxxx]# env x='() { :;}; echo vulnerable' bash -c "echo
this is a test"
vulnerable ←コイツがでるとアウト
this is a test
上記のようになると脆弱性ありありなので
yum update bashを実行
その後
[root@xxxxxx]# env x='() { :;}; echo vulnerable' bash -c "echo
this is a test"
this is a test
デナクナッター
---- 仕事にて古いredhatの対応もせねばならなくなりそうなので色々まとめ ------
■redhat or centosなら下記コマンドを実行してOSversionを確認する
cat /etc/redhat-release
■通常のredhat4は既にサポート切れ(2012/02/29)だが、延長契約をしてれば2015/02/29までredhatのレポジトリから
bashのアップデートで対応が可能。延長契約しているのかどうかをユーザ様に確認
#RHEL4 ELSは、2005年に出荷開始された「Red Hat Enterprise Linux 4」の7年間の標準サポートに加え、3年間の延長サポートを提供するもの。これにより、2012年2月29日までの標準サポートを最大2015年2月末まで延長が可能となる。
■現状脆弱性確認
[root@xxxxxx]# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable ←下記のthis is a test以外が表示された場合脆弱性あり
this is a test ←この文字列のみ表示された場合脆弱性なし
■バッシュ対応確認チェックスクリプト
https://github.com/hannob/bashcheck
[root@dti-vps-srv741 ~]# sh bashcheck
Testing /bin/bash ...
Bash version 4.1.2(1)-release
Variable function parser pre/suffixed [(), redhat], bugs not exploitable
Not vulnerable to CVE-2014-6271 (original shellshock)
Not vulnerable to CVE-2014-7169 (taviso bug)
Not vulnerable to CVE-2014-7186 (redir_stack bug)
Test for CVE-2014-7187 not reliable without address sanitizer
Found non-exploitable CVE-2014-6277 (lcamtuf bug #1)
Not vulnerable to CVE-2014-6278 (lcamtuf bug #2)
上記のように表示されていれば対応完了済
対応できていないwarningやらerrorなどの文字列が含まれた結果が表示されるかと
■update対応
☆redhat 5~などなら
yum update bash-*
のみで対応できる。
☆redhat 4は延長サポートをうけていれば
up2date -u bash-*
で対応可能
☆redhat 4は延長サポートをうけていない場合
1・オラクルからでてる修正パッチをwgetで入手
wget https://oss.oracle.com/el4/SRPMS-updates/bash-3.0-27.0.2.el4.src.rpm
2・リビルド
rpmbuild -rebuild bash-3.0-27.0.2.el4.src.rpm
(rpmbuildコマンドが使えない場合使えるようインストールしておくこと)
3・インストール
rpm -Uvh bash-3.0-27.0.3.i386.rpm
■現状脆弱性確認
[root@xxxxxx]# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
this is a test
上記結果となっていればインストール対応完了
バッシュversion確認
rpm -qa | egrep '^bash'
2014年9月30日火曜日
2014年9月29日月曜日
postfix メモ
■動いてるかもしれないデフォルトのsendmailを止める
/etc/rc.d/init.d/sendmail stop
■postfixインストール
yum -y install postfix
■postfix起動
[root@dti-vps-srv741 trunk]# service postfix restart
Shutting down postfix: [FAILED]
Starting postfix: [ OK ]
■MTA変更前の設定確認
[root@dti-vps-srv741 trunk]# alternatives --display mta
mta - status is manual.
link currently points to /usr/sbin/sendmail.sendmail ←デフォルトはsendmail
■MTAの切り替え
[root@xxxxx trunk]# alternatives --config mta
There are 2 programs which provide 'mta'.
Selection Command
-----------------------------------------------
*+ 1 /usr/sbin/sendmail.sendmail ・・・デフォルトはsendmailになってる
2 /usr/sbin/sendmail.postfix
Enter to keep the current selection[+], or type selection number: 2 ・・postfixは2なので2を入力しエンター
■MTA変更後の設定確認
[root@xxxxx trunk]# alternatives --display mta
mta - status is manual.
link currently points to /usr/sbin/sendmail.postfix ←postfixになったことを確認
■メール送信テスト
[[root@xxxxx trunk]# /usr/sbin/sendmail -f <送信元メアド> <送信先メアド> <<EOM
From: <送信元メアド>
To: <送信先メアド>
Subject:テストです
Content-Type:text/plain;charset=UTF-8;
テストでメールを送ってみました。
EOM
送信先メアドで上記の送信テストのメールを受信できたかを確認
/etc/rc.d/init.d/sendmail stop
■postfixインストール
yum -y install postfix
■postfix起動
[root@dti-vps-srv741 trunk]# service postfix restart
Shutting down postfix: [FAILED]
Starting postfix: [ OK ]
■MTA変更前の設定確認
[root@dti-vps-srv741 trunk]# alternatives --display mta
mta - status is manual.
link currently points to /usr/sbin/sendmail.sendmail ←デフォルトはsendmail
■MTAの切り替え
[root@xxxxx trunk]# alternatives --config mta
There are 2 programs which provide 'mta'.
Selection Command
-----------------------------------------------
*+ 1 /usr/sbin/sendmail.sendmail ・・・デフォルトはsendmailになってる
2 /usr/sbin/sendmail.postfix
Enter to keep the current selection[+], or type selection number: 2 ・・postfixは2なので2を入力しエンター
■MTA変更後の設定確認
[root@xxxxx trunk]# alternatives --display mta
mta - status is manual.
link currently points to /usr/sbin/sendmail.postfix ←postfixになったことを確認
■メール送信テスト
[[root@xxxxx trunk]# /usr/sbin/sendmail -f <送信元メアド> <送信先メアド> <<EOM
From: <送信元メアド>
To: <送信先メアド>
Subject:テストです
Content-Type:text/plain;charset=UTF-8;
テストでメールを送ってみました。
EOM
送信先メアドで上記の送信テストのメールを受信できたかを確認
2014年9月19日金曜日
linux 権限系コマンドメモ
■現在のディレクトリ配下のroot権限になっているものを探す
find ./ -user root
■現在のディレクトリ配下のroot権限になっているものに対して一括でchown userA.groupAを実行する
find ./ -user root | xargs -i -r chown userA.groupA {}
■SVNの状態を確認する
svn st -u
■ファイルを更新する(SVN)
svn up -r HEAD
※リビジョンはリリースするときにどれを適用するのか決める
find ./ -user root
■現在のディレクトリ配下のroot権限になっているものに対して一括でchown userA.groupAを実行する
find ./ -user root | xargs -i -r chown userA.groupA {}
■SVNの状態を確認する
svn st -u
■ファイルを更新する(SVN)
svn up -r HEAD
※リビジョンはリリースするときにどれを適用するのか決める
2014年9月10日水曜日
手動とcron実行・及び違うサーバで同じシェルスクリプト叩いて実行結果が違った時の確認
実行するときの環境変数の差を疑うべし
実行ユーザでprintenvした環境変数と
cronで実行したprintenvを比べてLANG設定とかちゃんと同じか確認する
# vi /etc/crontab
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
*/1 * * * * root printenv > /root/printenv.txt
SHELL=/bin/bash
USER=root
PATH=/sbin:/bin:/usr/sbin:/usr/bin
PWD=/
LANG=ja_JP.UTF-8
SHLVL=1
HOME=/
LOGNAME=root
_=/usr/bin/printenv
検証環境と本番環境で違っていたので上記の方法で確認して本番環境に
LANG設定がされてなかったのを確認
実行ユーザでprintenvした環境変数と
cronで実行したprintenvを比べてLANG設定とかちゃんと同じか確認する
# vi /etc/crontab
------------------------------------------------------------------------
SHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
---------------------------------------------------------------
# less /root/printenv.txt
----------------------------------------
MAILTO=rootSHELL=/bin/bash
USER=root
PATH=/sbin:/bin:/usr/sbin:/usr/bin
PWD=/
LANG=ja_JP.UTF-8
SHLVL=1
HOME=/
LOGNAME=root
_=/usr/bin/printenv
----------------------------------------
LANG設定がされてなかったのを確認
登録:
投稿 (Atom)