ラベル セキュリティ の投稿を表示しています。 すべての投稿を表示
ラベル セキュリティ の投稿を表示しています。 すべての投稿を表示

2014年6月11日水曜日

OpenSSL に発見されたChange Cipher Specの脆弱性を修正する。

脆弱性に関する概要と状況の確認

まず始めにこちら。 IPA「OpenSSL」における Change Cipher Spec メッセージ処理の脆弱性対策について


現在、インストールされているバージョンを確認します。

環境は、CentOS6.4となります。

[root@hostname ~]# openssl version
OpenSSL 1.0.1g 7 Apr 2014

前回のHeart Bleed脆弱性問題に対応したので、バージョンがOpenSSL 1.0.1gであることが確認できます。
今回は、このOpenSSL 1.0.1gにも脆弱性が確認されたとの事です。


( ´ー`)フゥー...

yumでパッチ適用済みのアップデートを利用する

既にパッチ適用済みのアップデートが、yumのアップデートで利用出来るようなので、こちらを利用させて頂きました。
【参考】 RedHat Important: openssl security update

[root@hostname ~]# yum check-update openssl
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: www.ftp.ne.jp
 * extras: www.ftp.ne.jp
 * updates: www.ftp.ne.jp

openssl.x86_64                     1.0.1e-16.el6_5.14                                              updates

脆弱性に対応済みの1.0.1e-16.el6_5.14となっていますね。
このままアップデートを実行します。

[root@hostname ~]# yum update openssl
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: www.ftp.ne.jp
 * epel: ftp.jaist.ac.jp
 * extras: www.ftp.ne.jp
 * updates: www.ftp.ne.jp
Setting up Update Process
Resolving Dependencies

  ~中略~

Updated:
  openssl.x86_64 0:1.0.1e-16.el6_5.14

Dependency Updated:
  openssl-devel.x86_64 0:1.0.1e-16.el6_5.14

Complete!

アップデートが完了したら、更新されたバージョンを確認して下さい。

[root@hostname ~]# openssl version
OpenSSL 1.0.1e-fips 11 Feb 2013

[root@tnxnet ~]# rpm -qa openssl*
openssl-1.0.1e-16.el6_5.14.x86_64
openssl-devel-1.0.1e-16.el6_5.14.x86_64


最後に、必ずOpenSSLを利用しているサービス またはサーバーを再起動して下さい。
お疲れ様でした。 ⊂⌒(。・ω・)っ お役に立てたら嬉しいです。

2014年4月8日火曜日

OpenSSLの脆弱性 への緊急対応 (1.0.1gへのアップデート : CentOS6.5)

OpenSSLの重大バグが発覚。インターネットの大部分に影響の可能性

以下、引用
セキュリティー研究者らが “Heartbleed“と呼ぶそのバグを悪用すると、
過去2年以内のあらゆるバージョンのOpenSSLが走るシステムで、システムメモリー上にある大量のデータを暴露することが可能だ。

問題のバグは、OpenSSLの “heartbeat” という機能の実装に存在する。そこから “Heartbleed” と名付けられた。

このバグは、OpenSSLに2年以上存在していたが(2011年12月以来、OpenSSL 1.0.1~1.0.1f)、今日初めて発見され公表された。
さらに悪いことには、このバグを悪用してもその痕跡はログに残らないようだ。
つまり、システム管理者は自分のサーバーが侵入されたかどうかを知る術がない。されたと仮定するほかはない。

元記事
IPA OpenSSL の脆弱性対策について(CVE-2014-0160)
IT media OpenSSLに脆弱性、クライアントやサーバにメモリ露呈の恐れ


これは大変ですね。

Can attacker access only 64k of the memory?

There is no total of 64 kilobytes limitation to the attack, that limit applies only to a single heartbeat.
Attacker can either keep reconnecting or during an active TLS connection keep requesting arbitrary
number of 64 kilobyte chunks of memory content until enough secrets are revealed.

1回あたりは64KBのデータしか取れないようですが、繰り返し続けることでデータも盗り続けられるとの事です。

影響範囲は、(Affected 1.0.1f, 1.0.1e, 1.0.1d, 1.0.1c, 1.0.1b, 1.0.1a, 1.0.1) 1.0.2-beta, 1.0.2-beta1

公式Fixed in OpenSSL 1.0.1gが既に公開済みとなっています。
というか、Heartbleedとか名前かっこいい……。中二心がくすぐったい。

以下、CentOS6.5で対応したログです。


openssl-1.0.1gのインストール

現在のバージョン確認

# openssl
OpenSSL> version
OpenSSL 1.0.1e-fips 11 Feb 2013

最新版のインストール

# cd /usr/local/src/

# wget https://www.openssl.org/source/openssl-1.0.1g.tar.gz

# tar -xzf openssl-1.0.1g.tar.gz

# cd ./openssl-1.0.1g

# ./config --prefix=/usr --openssldir=/etc/ssl --libdir=lib shared zlib-dynamic

# make

# make install 

最新版インストール後のバージョン確認

# openssl
OpenSSL> version
OpenSSL 1.0.1g 7 Apr 2014

あとは、リポジトリのファイルが最新になるのを待ちましょう。(・ω・´)


脆弱性のチェックツール

チェックツールのインストールと使用方法について。

インストール

# wget http://gobuild.io/github.com/titanous/heartbleeder/master/linux/386 -O output.zip

# unzip output.zip

# ls
heartbleeder LICENSE README.md

使い方

# ./heartbleeder www.fu*itv.co.jp
INSECURE - www.fu*itv.co.jp:443 has the heartbeat extension enabled and is vulnerable

あああああ。 フ○テレビさん ><;

(現在は修正済みです。[does not have the heartbeat extension enabled])

2013年12月20日金曜日

絵付きで解説! - SSH公開鍵認証 「TeraTermとPagentの連携」

Tera TermでPagent(+PuTTYgen)を使う

部室にあるサーバーのSSH認証方式を、公開鍵認証に変更しました。
これで都度のパスワード入力から開放されます。( ´∀`)エヘヘ セキュリティ強化もあり万々歳ですね。
メインとして使っているSSHクライアントはTeraTermなので、今回はこれにPagentを連携させてやります。
Windows 7で作業しました。

  Login As...

[tanaka@centos5.8 ~]$ echo "文字による表現が下手なので今回は絵付きで解説"

鍵生成ダイアログの表示

まずは、公開鍵と秘密鍵をTeraTermで作成します。
TeraTermを起動したら、「設定」から「SSH鍵生成(N)」をクリックして、鍵生成のダイアログを開いて下さい。
鍵生成ダイアログの表示


鍵生成の準備

ダイアログが表示されたら、ダイアログの右上にある「生成(G)」というキャプションのボタンを押します。
ダイアログ下部にある「公開鍵の保存(C)」と「秘密鍵の保存(P)」のボタンが有効になったことを確認して下さい。
鍵生成の準備


公開鍵の生成と保存

ボタンが有効になったら「公開鍵の保存(C)」のボタンを、鍵のパスフレーズを未入力のまま押します。
id_rsa.pubというファイル名で保存して下さい。(・ω・´)
公開鍵の生成と保存
(今回はC:\Users\Owner\SSH鍵というディレクトリを作成して保存しました)


秘密鍵の生成と保存

最後に秘密鍵を作成します。
先ほど押したボタンの右にある「秘密鍵の保存(P)」のボタンを、今度は鍵のパスフレーズを入力してから押します。
ここで入力したパスワードを忘れないで下さい。
このパスワードは、いつも使っているアカウントのログインパスワードとは別でOKです。
秘密鍵の生成と保存
(今回はC:\Users\Owner\SSH鍵というディレクトリを作成して保存しました)


秘密鍵の変換 (PuTTYgen)

Pagent読み込めるようにするために、先ほど作成した秘密鍵をPuTTYgenで変換します。
PuTTYgenを起動して秘密鍵を読み込んで下さい。 秘密鍵の生成と保存 1
秘密鍵を読み込むと、作成した秘密鍵のパスワードを入力するダイアログが表示されます。
作成時のパスワードを入力してOKOK秘密鍵の生成と保存 2
最後に変換された秘密鍵を保存して終了です。
保存する鍵の名前はid_rsa.ppkにしました。
秘密鍵の生成と保存 3


公開鍵の転送 (サーバーへの送信)

先ほど作成した公開鍵を、TeraTermを使って対象のサーバーへ送信します!
対象のサーバーに公開鍵認証をさせたいユーザーでログインしてください。 (`・ω・´)

サーバーにログインをしたら、TeraTermのメニューバー項目「ファイル」にある「SSH SCP」をクリックします。
すると、ファイルを送信できるダイアログが出てくるので、ダイアログ上側に表示されているファイル選択(参照)ボタンの「...」を押して、今回の公開鍵を選択。
選択したら、右にある「send」ボタンを押せばOKです。
公開鍵の転送 (サーバーへの送信)




公開鍵の設置

クライアントで作成した公開鍵をサーバーに設置します。
.sshというディレクトリを、ユーザーのホームディレクトリ直下にパーミッション700で作成します。
  (既に.sshディレクトリが存在する場合はこの作業は不要です。)
そして、公開鍵のデータをauthorized_keysというファイルに追記して下さい。
authorized_keysファイルのパーミッションは600です。
ファイルやディレクトリのパーミッションに気をつけて下さい。

今回、わたしはtanakaユーザーで作業しました。

.sshディレクトリをユーザーのホームディレクトリにパーミッション700で作成 (ディレクトリが存在しない場合)
[tanaka@centos5.8 ~]$ mkdir -m 700 .ssh

さきほどクライアントPCからTeraTermで送信した公開鍵を.sshディレクトリに移動
[tanaka@centos5.8 ~]$ mv id_rsa.pub ./.ssh/

公開鍵をauthorized_keysに追記 (ファイルが存在しない場合は作られます)
[tanaka@centos5.8 ~]$ cat ./.ssh/id_rsa.pub | tee -a ./.ssh/authorized_keys
ssh-rsa AAXXXXXXXyc2EAAAABIwAAAQEAotQXRRRRRbGPEoKkzigYxaX7jBYE2qvZEAAEEEEEMyLV5NvpHL+qcPHftBP3j1emHHHHH
EiCCCC3NmTViP2wFEEEEEh95BIK+BAfcTmiDMzhX1ouSNHg3e0WUvTJ/TxAJn6pHzHLVY6NtmBknskpSqFL1vUVi5/7uqa2dakphrwe
YKKwVqFDdj/HIE2pIbc3haZG9sBtnfYKn8X0d8qq1J28DuGFUWbxMjgVNSoUvfyRgzIzhzt4duEUof+cbQDt3u+geUU0EAbOoAhbziQ
Sl0Q== clientname

authorized_keysのパーミッションが600でない場合は600に変更
[tanaka@centos5.8 ~]$ chmod 600 ./.ssh/authorized_keys

不要になった公開鍵を削除
[tanaka@centos5.8 ~]$ rm -i ./.ssh/id_rsa.pub
rm: remove 通常ファイル `./.ssh/id_rsa.pub'? y


sshd_configの編集

sshd_configに設定された次の3つの項目(値)を確認して下さい。
noになっていたり、未指定だった場合は設定してあげて下さい。

[tanaka@centos5.8 ~]$ sudo vi /etc/ssh/sshd_config
~中略~
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

パスワード認証を禁止する場合は次のように設定!

PasswordAuthentication no

sshd_configの編集が終わったら、sshdを再起動です。
サーバー側の準備が出来たらログアウト!

いよいよパスワード無しでの接続。
クライアント側でPagentを起動します。(起動するとタスクトレイに入っていると思います。)
起動したら鍵の読み込みボタンを押してダイアログを開きます。
先ほどPuTTyGenで変換した秘密鍵(ppkファイル)を指定して下さい。
(この時も秘密鍵作成時のパスワードを入力する必要があります)
Pagentの起動と秘密鍵の指定
セットが完了したら、あとはログインを実行してみるだけ。c(・ω・`c⌒っ
TeraTermを起動したらPagentを使うというラジオボタンにチェックを入れて、OKボタンを押すだけです。
TeraTermでPagentを使う


Last login: Thu Dec 31 23:59:59 2013 from 192.168.1.105
[tanaka@centos5.8 ~]$

無事にログイン出来ました!!!ヽ(´▽`*)ノ

今回お世話になったサイト


2013年12月16日月曜日

CentOS 5.8 に最新のopenssh-6.4p1をインストールする。

rpmbuildでCentOSのopensshを最新版(openssh-6.4p1)にバージョンアップしました。

今回の作業環境は、CentOS5.8(i386)でした。

CentOS5.xは、yumから取得可能なopensshのバージョンが4.3p2-72.el5と非常に古いです。
そこで今回は、最新版のopenssh(現時点での最新はバージョンopenssh-6.4p1)をインストールしてみました。

参考にさせて頂いたサイトです。
最新版のダウンロードはこちらから。

それでは、幾つかのパートに分けて作業の進行を紹介しています。

rpmパッケージの作成

作業を行うディレクトリへ移動します。
[root@localhost ~]# cd /usr/local/src/

最新版のopensshをダウンロードします。
[root@localhost src]# wget http://ftp.jaist.ac.jp/pub/OpenBSD/OpenSSH/portable/openssh-6.4p1.tar.gz
~中略~
100%[=============================================================================>] 1,201,402   1.88M/s 時間 0.6s

2013-12-31 23:59:59 (1.88 MB/s) - `openssh-6.4p1.tar.gz' へ保存完了 [1201402/1201402]

ダウンロードしたopensshを伸張します。
[root@localhost src]# tar xvzf openssh-6.4p1.tar.gz

不要となったアーカイブを削除。
[root@localhost src]# rm -f openssh-6.4p1.tar.gz

openssh.specファイルを編集します。(参考元のままです)
[root@localhost src]# vi openssh-6.4p1/contrib/redhat/openssh.spec
# Do we want to disable building of x11-askpass? (1=yes 0=no)
%define no_x11_askpass 1

# Do we want to disable building of gnome-askpass? (1=yes 0=no)
%define no_gnome_askpass 1

~

# インストールされているzlibのバージョンが1.2.3以上であれば記述不要のようです。
%configure \
        --without-zlib-version-check \
        --sysconfdir=%{_sysconfdir}/ssh \

不要なディレクトリを削除します。
[root@localhost src]# rm -rf openssh-6.4p1/contrib/aix/
[root@localhost src]# rm -rf openssh-6.4p1/contrib/caldera/
[root@localhost src]# rm -rf openssh-6.4p1/contrib/cygwin/
[root@localhost src]# rm -rf openssh-6.4p1/contrib/hpux/
[root@localhost src]# rm -rf openssh-6.4p1/contrib/solaris/
[root@localhost src]# rm -rf openssh-6.4p1/contrib/suse/

圧縮してタ~ボールに戻します。
[root@localhost src]# tar cvzf openssh-6.4p1.tar.gz openssh-6.4p1/

圧縮して不要となった元フォルダを削除。
[root@localhost src]# rm -rf openssh-6.4p1

タ~ボールをビルドしてRPMパッケージを作成します。
[root@localhost src]# rpmbuild -tb --clean openssh-6.4p1.tar.gz

作成されたRPMパッケージを確認。
[root@localhost src]# ls /usr/src/redhat/RPMS/i386/
openssh-6.4p1-1.i386.rpm    openssh-clients-6.4p1-1.i386.rpm    openssh-server-6.4p1-1.i386.rpm

これでパッケージの作成までは完了です。
次はいよいよ(`・ω・) インストール。 (その前に旧バージョンの削除)


インストール済みのopensshの削除

参考にさせて頂いたページの様に、「rpm -Uvh (パッケージ名)」でアップデートが出来なかった(相互依存のエラーが出た)ので、一度削除しました。
あと、リモート環境で作業を行う場合は十分に気をつけて下さい。 
切断されると大変です(・_・;)

sshdの停止。
[root@localhost ~]# /etc/init.d/sshd stop

opensshの削除。(git, perl-Gitも削除されてしまいます!)
[root@localhost ~]# yum remove openssh
===================================================================================================================================
 Package                           Arch                   Version                                Repository                   Size
===================================================================================================================================
Removing:
 openssh                           i386                   4.3p2-72.el5                           installed                   727 k
Removing for dependencies:
 git                               i386                   1.7.11.1-1.el5.rf                      installed                    17 M
 openssh-clients                   i386                   4.3p2-72.el5                           installed                   850 k
 openssh-server                    i386                   4.3p2-72.el5                           installed                   480 k
 perl-Git                          i386                   1.7.11.1-1.el5.rf                      installed                   116 k

Transaction Summary
===================================================================================================================================
Remove        5 Package(s)
Reinstall     0 Package(s)
Downgrade     0 Package(s)


作成した最新版opensshのインストール

インストールされていた旧opensshを削除したら、作成したRPMパッケージをインストールします。

[root@localhost ~]# rpm -ivh /usr/src/redhat/RPMS/i386/openssh-6.4p1-1.i386.rpm
準備中...                ########################################### [100%]
   1:openssh                ########################################### [100%]
[root@localhost ~]# rpm -ivh /usr/src/redhat/RPMS/i386/openssh-clients-6.4p1-1.i386.rpm
準備中...                ########################################### [100%]
   1:openssh-clients        ########################################### [100%]
[root@localhost ~]# rpm -ivh /usr/src/redhat/RPMS/i386/openssh-server-6.4p1-1.i386.rpm
準備中...                ########################################### [100%]
   1:openssh-server         ########################################### [100%]

あっという間に完了(・д・)=3
これでMatch(version 4.4以降の機能)を思う存分使えます!

[root@localhost ~]# cat /etc/ssh/sshd_config
~中略~
Match User username
       PasswordAuthentication yes

Matchに指定出来る条件

Addressアクセス元のIPアドレス
Hostアクセス元のホスト名
Userログインするユーザーのユーザ名
Groupログインするユーザーのグループ名

Matchに指定出来る項目

AcceptEnv AllowAgentForwarding AllowGroups AllowTcpForwarding
AllowUsers AuthenticationMethods AuthorizedKeysCommand AuthorizedKeysCommandUser
AuthorizedKeysFile AuthorizedPrincipalsFile Banner ChrootDirectory
DenyGroups DenyUsers ForceCommand GatewayPorts
GSSAPIAuthentication HostbasedAuthentication HostbasedUsesNameFromPacketOnly KbdInteractiveAuthentication
KerberosAuthentication MaxAuthTries MaxSessions PasswordAuthentication
PermitEmptyPasswords PermitOpen PermitRootLogin PermitTTY
PermitTunnel PubkeyAuthentication RekeyLimit RhostsRSAAuthentication
RSAAuthentication X11DisplayOffset X11Forwarding X11UseLocalHost

詳しくはOpenSSH-6.4p1 日本語マニュアルページ




番外編:rpmbuildでエラーが発生

わたしの場合、rpmbuildでエラーが発生しちゃいました。
内容は「依存パッケージがない~」というものでしたのでyumでちゃちゃっと入れました。

pam-develが足りない場合

configure: error: PAM headers not found
エラー: /var/tmp/rpm-tmp.18521 の不正な終了ステータス (%build)


RPM ビルドエラー:
    /var/tmp/rpm-tmp.18521 の不正な終了ステータス (%build)


[root@localhost ~]# yum install pam-devel
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile

~中略~

Running Transaction
  Updating       : pam                                                                                                         1/3
  Installing     : pam-devel                                                                                                   2/3
  Cleanup        : pam                                                                                                         3/3

Installed:
  pam-devel.i386 0:0.99.6.2-12.el5

Dependency Updated:
  pam.i386 0:0.99.6.2-12.el5

Complete!

gccが無い場合

configure: error: C compiler cannot create ...略


[root@localhost ~]# yum install gcc
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile

~中略~

Running Transaction
  Updating       : libgcc                                                                                                     1/12
  Updating       : libstdc++                                                                                                  2/12
  Updating       : cpp                                                                                                        3/12
  Updating       : gcc                                                                                                        4/12
  Updating       : libstdc++-devel                                                                                            5/12
  Updating       : gcc-c++                                                                                                    6/12
  Cleanup        : libstdc++                                                                                                  7/12
  Cleanup        : gcc                                                                                                        8/12
  Cleanup        : gcc-c++                                                                                                    9/12
  Cleanup        : libstdc++-devel                                                                                           10/12
  Cleanup        : cpp                                                                                                       11/12
  Cleanup        : libgcc                                                                                                    12/12

Updated:
  gcc.i386 0:4.1.2-54.el5

Dependency Updated:
  cpp.i386 0:4.1.2-54.el5               gcc-c++.i386 0:4.1.2-54.el5   libgcc.i386 0:4.1.2-54.el5   libstdc++.i386 0:4.1.2-54.el5
  libstdc++-devel.i386 0:4.1.2-54.el5

Complete!

2013年11月30日土曜日

CentOS 6.x Nmapをyumではなくrpmでインストールする

nmapをyumではなくrpmでインストールする場合。

多機能スキャナ(セキュリティスキャナ)のnmapを、yumコマンドではなくrpmコマンドでインストールします。

下の例では、5.51のバージョンのNmapを使用しました。

[root@centos6 ~]# cd /src/
[root@centos6 src]# wget ftp://rpmfind.net/linux/centos/6.4/os/i386/Packages/nmap-5.51-2.el6.i686.rpm
--2013-12-31 23:59:59--  ftp://rpmfind.net/linux/centos/6.4/os/i386/Packages/nmap-5.51-2.el6.i686.rpm
           => `nmap-5.51-2.el6.i686.rpm.1'
rpmfind.net をDNSに問いあわせています... 195.220.108.108
rpmfind.net|195.220.108.108|:21 に接続しています... 接続しました。
anonymous としてログインしています... ログインしました!
==> SYST ... 完了しました。    ==> PWD ... 完了しました。
==> TYPE I ... 完了しました。  ==> CWD (1) /linux/centos/6.4/os/i386/Packages ... 完了しました。
==> SIZE nmap-5.51-2.el6.i686.rpm ... 2871012
==> PASV ... 完了しました。    ==> RETR nmap-5.51-2.el6.i686.rpm ... 完了しました。
長さ: 2871012 (2.7M) (確証はありません)

100%[===============================================================================>] 2,871,012    658K/s 時間 4.3s

2013-12-31 23:59:59 (658 KB/s) - `nmap-5.51-2.el6.i686.rpm.1' へ保存終了 [2871012]
[root@centos6 src]# rpm -K ./nmap-5.51-2.el6.i686.rpm
./nmap-5.51-2.el6.i686.rpm: rsa sha1 (md5) pgp md5 OK
[root@centos6 src]# rpm -ihv ./nmap-5.51-2.el6.i686.rpm
エラー: 依存性の欠如:
        libpcap.so.1 は nmap-2:5.51-2.el6.i686 に必要とされています

rpmパッケージをダウンロードし、Kオプションで電子署名を確認後、インストールを実行。

依存性エラー「libpcap.so.1 は nmap-2:5.51-2.el6.i686 に必要とされています
と表示されました。 (´・ω・`)
(libpcapが無いはずがないのですが……。)


取り敢えず確認してみましたが、しっかり存在されていますね。

[root@centos6 src]# rpm -qa 'libpcap'
libpcap-1.0.0-6.20091201git117cb5.el6.i686
[root@centos6 src]# ls -l /usr/lib/libpcap.so.1*
lrwxrwxrwx.  1 root root      16 11月 10 20:33 2013 libpcap.so.1 -> libpcap.so.1.0.0
-rwxr-xr-x.  1 root root  218484 11月 12 04:46 2010 libpcap.so.1.0.0

libpcapを再インストールすることで解決させます。

[root@centos6 src]# wget ftp://rpmfind.net/linux/centos/6.4/os/i386/Packages/libpcap-1.0.0-6.20091201git117cb5.el6.i686.rpm
--2013-12-31 23:59:59--  ftp://rpmfind.net/linux/centos/6.4/os/i386/Packages/libpcap-1.0.0-6.20091201git117cb5.el6.i686.rpm
           => `libpcap-1.0.0-6.20091201git117cb5.el6.i686.rpm'
rpmfind.net をDNSに問いあわせています... 195.220.108.108
rpmfind.net|195.220.108.108|:21 に接続しています... 接続しました。
anonymous としてログインしています... ログインしました!
==> SYST ... 完了しました。    ==> PWD ... 完了しました。
==> TYPE I ... 完了しました。  ==> CWD (1) /linux/centos/6.4/os/i386/Packages ... 完了しました。
==> SIZE libpcap-1.0.0-6.20091201git117cb5.el6.i686.rpm ... 127496
==> PASV ... 完了しました。    ==> RETR libpcap-1.0.0-6.20091201git117cb5.el6.i686.rpm ... 完了しました。
長さ: 127496 (125K) (確証はありません)

100%[===============================================================================>] 127,496      130K/s 時間 1.0s

2013-12-31 23:59:59 (130 KB/s) - `libpcap-1.0.0-6.20091201git117cb5.el6.i686.rpm' へ保存終了 [127496]

[root@centos6 src]# rpm -K ./libpcap-1.0.0-6.20091201git117cb5.el6.i686.rpm
./libpcap-1.0.0-6.20091201git117cb5.el6.i686.rpm: rsa sha1 (md5) pgp md5 OK
[root@centos6 src]# rpm -ihv --force ./libpcap-1.0.0-6.20091201git117cb5.el6.i686.rpm
準備中...                ########################################### [100%]
   1:libpcap                ########################################### [100%]
[root@centos6 src]# rpm -ihv ./nmap-5.51-2.el6.i686.rpm
準備中...                ########################################### [100%]
   1:nmap                   ########################################### [100%]
[root@centos6 src]# yum list installed | grep 'nmap'
nmap.i686               2:5.51-2.el6      installed

無事にインストール出来ました。

最後に、簡単なポートスキャンを行うことで動作確認とし、終了とします。

[root@centos6 src]# nmap -sS -p 1-500 xxx.xxx.xxx.xxx

Starting Nmap 5.51 ( http://nmap.org ) at 2013-12-31 23:59 JST
Nmap scan report for xxx.xxx.xxx.xxx
Host is up (0.0021s latency).
Not shown: 496 closed ports
PORT   STATE SERVICE
21/tcp open  ftp
22/tcp open  ssh
25/tcp open  smtp
80/tcp open  http

Nmap done: 1 IP address (1 host up) scanned in 0.20 seconds



余談ですが……。

anonymous としてログインしています... ログインしました!

「!」というのが、元気な感じですね……。

2013年11月29日金曜日

historyコマンドに日時(時刻)を表示させる。

historyコマンドで表示されるコマンド実行履歴に、実行時のタイムスタンプ情報を付加する。

historyコマンドは、デフォルトでコマンドの実行日時情報が記録されません。

[root@1803-zm05 ~]# history
    1  13/12/31 23:59:56  cd ~
    2  ls -la
    3  du -h /home
    4  fdisk -l

これにコマンドの実行日時情報を付加する場合は、HISTTIMEFORMAT環境変数を設定します。

[root@1803-zm05 ~]# touch /etc/profile.d/history.sh
[root@1803-zm05 ~]# cat <<EOF >> /etc/profile.d/history.sh
> HISTSIZE=10000
> HISTFILESIZE=10000
> HISTTIMEFORMAT='%y/%m/%d %H:%M:%S  '
> HISTIGNORE=history
> EOF

例では/etc/profile.d/ディレクトリにhistory.shファイルを作成しました。
設定した環境変数は以下

HISTSIZE
記録される実行コマンドの最大値
HISTFILESIZE
記録される実行コマンドの最大値(基本的にHISTSIZEと同値を指定します)
HISTTIMEFORMAT
今回の題材でもある実行日時の書式設定
HISTIGNORE
履歴から除外するコマンド(例では、history。複数指定の場合は:で区切り指定します。 =history:whoami)

他にもHISTCONTROLなどを設定可能です。


上記の設定通りの場合は、/etc/profile.d/history.shファイルは以下のように設定されているはずです。

[root@1803-zm05 ~]# cat /etc/profile.d/history.sh
HISTSIZE=10000
HISTFILESIZE=10000
HISTTIMEFORMAT='%y/%m/%d %H:%M:%S  '
HISTIGNORE=ls:history

HISTTIMEFORMATの値の末尾に半角スペースで間を設けているのは、historyの履歴追記時に実行コマンドと実行日時がくっついてしまわないようとの調整です。(*≧∀≦*)



上記の設定以降のhistory表示フォーマットは次のように表示されます。

[user@1803-zm05 ~]# history
    1  14/01/01 23:59:56  cd ~
    2  14/01/01 23:59:57  ls -la
    3  14/01/01 23:59:58  du -h /home
    4  14/01/01 23:59:59  fdisk -l