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])

HP Proliant RAIDを監視する

RAIDステータスの取得(監視)

環境説明

最近、部室に設置したHP製のサーバー。ML350p Gen8

(画像はwww8-hp.comから)

ハードウェア(サーバー) HP Proliant ML350p Gen8
ハードウェア(RAIDカード) HP Smartアレイ P420
オペレーションシステム CentOS 6.5 (2.6.32-431.el6.x86_64)

ソフトウェアのダウンロード

HPサポートセンターから、P420(別のRAIDカードの場合は、その製品名)で検索。
検索結果から「この製品に対応するすべてのドライバー、ソフトウェア、ファームウェアを表示してダウンロードします。 」のリンクを押下。
対象となるオペレーションシステムを選択し、必要なソフトウェアをダウンロードします。
または、ProLiant Support Pack(PSP) v9.10から、Proliant Support Packをダウンロードして下さい。
今回は、こちらのパック(psp-9.10.rhel6.x86_64.en.tar.gz)を取得しました。

psp-9.10.rhel6.x86_64.en.tar.gzを解凍すると、カレントディレクトリにワサッっと大量のファイルが展開されてしまうので注意。
解凍後、必要なファイルを選んで直接インストールしました。

hpacucli

インストール

hpacucliコマンドを使う為、hpacucli-9.40-12.0.x86_64.rpmをインストールします。

# rpm -ivh ./hpacucli-9.40-12.0.x86_64.rpm

使い方

hpacucliコマンドを使って、現在のRAIDの状態を表示・確認することが出来ます。 (対話型でも可能)

// ディスクの確認
# hpacucli  ctrl all show config

Dynamic Smart Array B120i RAID in Slot 0 (Embedded)



Smart Array P420 in Slot 2                (sn: XXXXXXXXXXXXXXX)

   array A (SATA, Unused Space: 0  MB)


      logicaldrive 1 (1.8 TB, RAID 1+0, OK)

      physicaldrive 1I:0:1 (port 1I:box 0:bay 1, SATA, 1 TB, OK)
      physicaldrive 1I:0:2 (port 1I:box 0:bay 2, SATA, 1 TB, OK)
      physicaldrive 1I:0:3 (port 1I:box 0:bay 3, SATA, 1 TB, OK)
      physicaldrive 1I:0:4 (port 1I:box 0:bay 4, SATA, 1 TB, OK)

   SEP (Vendor ID PMCSXXXX, Model SRCXXXX) 380 (WWID: XXXXXXXXXXXXXXX)



// バッテリーの確認
# hpacucli controller all show status

Dynamic Smart Array B120i RAID in Slot 0 (Embedded)
   Controller Status: OK

Smart Array P420 in Slot 2
   Controller Status: OK
   Cache Status: OK
   Battery/Capacitor Status: OK


cciss_vol_status

インストール

cciss_vol_statusを使用するためには、kmod-hpahcisr-1.2.6-13.rhel6u1.x86_64.rpmをインストールする必要があります。
(こっち[2]もあったので入れておきました。kmod-hpahcisr-1.2.6-13.rhel6u2.x86_64.rpm)

# rpm -ivh kmod-hpahcisr-1.2.6-13.rhel6u1.x86_64.rpm

# rpm -ivh kmod-hpahcisr-1.2.6-13.rhel6u2.x86_64.rpm

使い方

# cciss_vol_status -V /dev/sg0
Controller: Smart Array P420
  Board ID: 0x9999999c
  Logical drives: 1
  Running firmware: 5.22
  ROM firmware: 5.22
/dev/sda: (Smart Array P420) RAID 1 Volume 0 status: OK.
  Physical drives: 4
         connector 1I box 0 bay 1          ATA     XXX XXXXXXXX-00L           XX-XXXXXXXXXXXX 01.01A01 OK
         connector 1I box 0 bay 2          ATA     XXX XXXXXXXX-00L           XX-XXXXXXXXXXXX 01.01A01 OK
         connector 1I box 0 bay 3          ATA     XXX XXXXXXXX-00L           XX-XXXXXXXXXXXX 01.01A01 OK
         connector 1I box 0 bay 4          ATA     XXX XXXXXXXX-00L           XX-XXXXXXXXXXXX 01.01A01 OK

こんな感じです。 cciss_vol_statusの方より、hpacucliの方が使い勝手良さそう。

SNMPエージェントもインストールして試してみたいですね!!(・ω・`)


関連する記事

mdadmを使ったソフトウェアRAID1+0の実装

2014年4月3日木曜日

日本語形態素解析(mecab + php)

日本語形態素解析の導入方法

日本語の形態素解析には、いくつかの方法があると思います。
今回は、PHPで作成された掲示板に実装されているNGワード判定処理への苦情が多く寄せられた為、急遽対応しました。


mecabのインストール

# cd /usr/local/src/

# wget http://mecab.googlecode.com/files/mecab-0.996.tar.gz
# tar xzf mecab-0.996.tar.gz
# cd mecab-0.996
# ./configure --with-charset=utf8
# make
# make install

mecabライブラリ(IPA)のインストール

# wget http://mecab.googlecode.com/files/mecab-ipadic-2.7.0-20070801.tar.gz
# tar xzf ./mecab-ipadic-2.7.0-20070801.tar.gz
# cd ./mecab-ipadic-2.7.0-20070801
# ./configure --with-charset=utf8
# make
# make install

PHP用ライブラリのインストール

# pear channel-discover pecl.opendogs.org
# pear remote-list -c opendogs
# pear install opendogs/mecab-beta
specify pathname to mecab-config [no] : /etc/mecab/mecab-config
...
You should add "extension=mecab.so" to php.ini

php.iniの設定

# locate mecab.so
/usr/lib64/php/modules/mecab.so

# vi /etc/php.d/mecab.ini
extension=mecab.so


使用例・結果

ばか えろ の単語を含む文字列を指定してみました。

<?php
$mecab = new MeCab_Tagger();
var_dump($mecab->parse("君ばかりがバグを出している。環境を考えろと言われても困ります。"));
?≶

君ばかりがバグを出している。環境を整えろと言われても困ります。
君      名詞,代名詞,一般,*,*,*,君,キミ,キミ
ばかり  助詞,副助詞,*,*,*,*,ばかり,バカリ,バカリ
が      助詞,格助詞,一般,*,*,*,が,ガ,ガ
バグ    名詞,一般,*,*,*,*,バグ,バグ,バグ
を      助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
出し    動詞,自立,*,*,五段・サ行,連用形,出す,ダシ,ダシ
て      助詞,接続助詞,*,*,*,*,て,テ,テ
いる    動詞,非自立,*,*,一段,基本形,いる,イル,イル
。      記号,句点,*,*,*,*,。,。,。
環境    名詞,一般,*,*,*,*,環境,カンキョウ,カンキョー
を      助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
整えろ  動詞,自立,*,*,一段,命令ro,整える,トトノエロ,トトノエロ
と      助詞,格助詞,引用,*,*,*,と,ト,ト
言わ    動詞,自立,*,*,五段・ワ行促音便,未然形,言う,イワ,イワ
れ      動詞,接尾,*,*,一段,連用形,れる,レ,レ
て      助詞,接続助詞,*,*,*,*,て,テ,テ
も      助詞,係助詞,*,*,*,*,も,モ,モ
困り    動詞,自立,*,*,五段・ラ行,連用形,困る,コマリ,コマリ
ます    助動詞,*,*,*,特殊・マス,基本形,ます,マス,マス
。      記号,句点,*,*,*,*,。,。,。

2014年3月31日月曜日

MySQL5.6でのレプリケーション設定 (複数のデータベース)

今回は、MySQL5.6がインストールされた環境で、複数のデータベースを指定したレプリケーション設定を行いました。
構成はマスター&スレーブの2台となります。
MySQL5.6からリリースされたGTID機能を試してみたかったのですが、今回は都合により通常のレプリケーション設定になりました。
通常のレプリケーション設定なので今更感がハンパないですが、一応ブログに残しました。

サーバーにインストールされているOSは、Centos5.8(x86_64)となります。
ここでは、マスター側のサーバーIPアドレスを192.168.1.40とし、スレーブ側のサーバIPアドレスを192.168.1.50としています。
(レプリケーション設定を行う際は、対象のMySQLサーバーでの作業は全て停止してください。)



マスター側の設定 (192.168.1.40)

マスター側のMySQL設定ファイル(/etc/my.cnf)の[mysqld]項目に設定を追加しました。
log_bin設定:バイナリログの出力先を指定します。
server-id設定:サーバーを識別するための一意な値を指定します。
    (ここでは、IPアドレスのホスト部をserver-idとして指定しました)

[root@192.168.1.40 ~]# vi /etc/my.cnf

[mysqld]

~中略~

# バイナリログの出力先設定
log_bin = /var/lib/mysql/mysql-bin

# レプリケーションサーバーIDの指定
server-id = 40


マスター側の設定が完了したらMySQLを再起動。

[root@192.168.1.40 ~]# /etc/init.d/mysqld restart


続いて、mysqldumpを使って現在のDBのスナップショットを作成。
(スレーブ側に作成したスナップショットのファイルを転送しておいて下さい)

[root@192.168.1.40 ~]# mkdir /home/tanaka/mysqldump/

[root@192.168.1.40 ~]# mysqldump -u root -p --lock-all-tables target_database_name_1 > /home/tanaka/mysqldump/target_database_name_1.sql

[root@192.168.1.40 ~]# mysqldump -u root -p --lock-all-tables target_database_name_2 > /home/tanaka/mysqldump/target_database_name_2.sql

スレーブ側からアクセスするためのユーザーを作成します。
(障害に備え、スレーブ側にも同様のユーザーを作成しています)
ユーザー名はrepl。 パスワードはpasswordに設定しました。
また、アクセスを許可するネットワークも192.168.1.0/24(192.168.1.%)で指定しています。

[root@192.168.1.40 ~]# mysql -u root -p -e "GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO repl@192.168.1.% IDENTIFIED BY 'password';"


重要:最後に、SHOW MASTER STATUSを実行し、ファイル名と現在のポジションを取得しておきます。

mysql> SHOW MASTER STATUS \G
*************************** 1. row ***************************
             File: mysql-bin.000001
         Position: 1234
     Binlog_Do_DB:
 Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.00 sec)


[PR] MySQL関連書籍の紹介


スレーブ側の設定 (192.168.1.50)

スレーブ側のMySQL設定ファイル(/etc/my.cnf)の[mysqld]項目に設定を追加しました。
log_bin設定:バイナリログの出力先を指定します。
server-id設定:サーバーを識別するための一意な値を指定します。
    (ここでは、IPアドレスのホスト部をserver-idとして指定しました) ・relay-log設定:リレーログの出力先設定。名称を固定にするため、指定しておきます。
・他、log_slave_updates, read_only, replicate-do-db, replicate-ignore-db

[root@192.168.1.50 ~]# vi /etc/my.cnf

[mysqld]

~中略~

# バイナリログの出力先設定
log_bin = /var/lib/mysql/mysql-bin

# レプリケーションサーバーIDの指定
server-id = 50

# リレーログの出力先設定
relay-log=/var/lib/mysql/mysql-relay-bin

# レプリケーションサーバをチェーン状に構成する
#log_slave_updates=1

# レプリケーション スレーブ サーバで、この値を ON に設定すると、サーバが SUPER 権限を持つユーザ以外からの更新が出来ません。
# スレーブサーバは、マスタ サーバからの更新だけを許可し、クライアントからの更新を拒否します。
# この動作は TEMPORARY テーブルには使えません。 
#read_only=1

# レプリケーション対象データベース
replicate-do-db='target_database_name_1'
# レプリケーション対象データベース
replicate-do-db='target_database_name_2'
# レプリケーション対象外データベース
replicate-ignore-db='target_database_name_3'


read_only値については、(テンポラリ)テーブルを作成するようなアプリケーションでは使用出来ないとの事。
セキュリティ的にはONにしたい値ですが、今回のアプリケーションではテーブル作成処理も発生するので未指定にします。(´・ω・`)


設定ファイルの準備が出来たら、スレーブ側のMySQLサーバーにレプリケーション対象となるデータベースを作成して下さい。
先程、マスター側で生成したmysqldumpのファイルを流し込みます。
(マスター側で生成したファイルをスレーブ側に転送しておいて下さい)

[root@192.168.1.50 ~]# mysql -u root -p

mysql> CREATE DATABASE `target_database_name_1`;

mysql> CREATE DATABASE `target_database_name_2`;


mysql> exit

[root@192.168.1.50 ~]# mysql -u root -p target_database_name_1 < /home/tanaka/mysqldump/target_database_name_1.sql

[root@192.168.1.50 ~]# mysql -u root -p target_database_name_2 < /home/tanaka/mysqldump/target_database_name_2.sql


スレーブ側の設定が完了したら、こちらもMySQLを再起動。

[root@192.168.1.50 ~]# /etc/init.d/mysqld restart


障害時に、このスレーブがマスターに昇格した際、新たなスレーブ側からアクセスされるためのユーザーを作成しておきます。

[root@192.168.1.50 ~]# mysql -u root -p -e "GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO repl@192.168.1.% IDENTIFIED BY 'password';"


準備が出来たら、レプリケーション設定を完了させます。
スレーブ側のMySQLにログインをし、次の項目を指定しました。
MASTER_HOST 接続先(マスター)サーバーのIPアドレス(またはホスト名)
MASTER_PORT 接続先(マスター)サーバーの接続ポート番号
MASTER_USER, MASTER_PASSWORD マスター側に作成したアクセス用ユーザーの名前とパスワード
MASTER_LOG_FILE 接続先(マスター)サーバーで生成されたバイナリファイルのファイル名を指定します。
MASTER_LOG_POSには、マスター側でSHOW MASTER STATUSを実行した際に確認したポジション値を入力します。(ここでは1234としています)

設定が完了したら、START SLAVEを実行してレプリケーションを開始させて下さい。

[root@192.168.1.50 ~]# mysql -u root -p
mysql> CHANGE MASTER TO
  MASTER_HOST='192.168.1.40',
  MASTER_PORT=3306,
  MASTER_USER='repl',
  MASTER_PASSWORD='password',
  MASTER_LOG_FILE='mysql-bin.000001',
  MASTER_LOG_POS=1234;


mysql> START SLAVE;



レプリケーション動作の確認

レプリケーションが正常に動作しているかは、マスター側のデータを更新することで確認出来ます。
(SHOW MASTER STATUSSHOW SLAVE STATUSを実行することによって得られるポジションの同期が取られているかなど)


お役に立てましたら幸いです c(・ω・´c⌒っ


Master

mysql> SHOW MASTER STATUS \G
*************************** 1. row ***************************
             File: mysql-bin.000001
         Position: 35854
     Binlog_Do_DB:
 Binlog_Ignore_DB:
Executed_Gtid_Set:



mysql> SHOW PROCESSLIST \G
*************************** 1. row ***************************
     Id: 3
   User: repl
   Host: 192.168.1.40:36811
     db: NULL
Command: Binlog Dump
   Time: 1277
  State: Master has sent all binlog to slave; waiting for binlog to be updated
   Info: NULL


Slave

mysql> SHOW SLAVE STATUS \G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.1.40
                  Master_User: repl
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 35854
               Relay_Log_File: mysql-relay-bin.000001
                Relay_Log_Pos: 36017
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: target_database_name_1,target_database_name_2
          Replicate_Ignore_DB: target_database_name_3

~略~


mysql> SHOW PROCESSLIST \G
*************************** 1. row ***************************
     Id: 1
   User: system user
   Host:
     db: NULL
Command: Connect
   Time: 1327
  State: Waiting for master to send event
   Info: NULL
*************************** 2. row ***************************
     Id: 2
   User: system user
   Host:
     db: NULL
Command: Connect
   Time: 41
  State: Slave has read all relay log; waiting for the slave I/O thread to update it
   Info: NULL


2014年3月13日木曜日

OpenVPN+Sambaによる拠点間通信(ルーティングモード)でのファイル共有 - その1

OpenVPNを使った拠点間接続を実現する

拠点間VPN接続を用いた別ネットワークとの接続。
今回は、オープンソースソフトウェア(Open Source Software)であるOpenVPNを使用して、環境の構築に挑戦しました。
この記事はシリーズ記事となります。

[Section1] 要件概要と簡単な構成予定のネットワーク図

ネットワーク1(システム開発部)とネットワーク2(ゲーム開発研究部)とのネットワークをVPN接続させ、ネットワーク2内のクライアント(Windows-PC)からもネットワーク1に設置されたファイル共有サーバーを利用可能にします。

ネットワーク1をホスト(固定のグローバルIP)。 ネットワーク2をリモートとしてネットワークを構築します。

192.168.0.0/24
(ネットワーク1)
VPNサーバー
(ホスト)
CentOS 6.4 (x86_64)
192.168.0.10
openvpn 2.3.2-1
共有サーバー CentOS 5.8 (x86_64)
192.168.0.20
samba 3.0

192.168.5.0/24
(ネットワーク2)
VPNサーバー
(クライアント)
CentOS 6.4 (x86_64)
192.168.5.10
openvpn 2.3.2-1

下図では
192.168.0.0/24のネットワークを、ネットワーク1(システム開発部)
192.168.5.0/24のネットワークを、ネットワーク2(ゲーム開発研究部)
として説明しています。

次回は、ネットワーク1のVPNサーバー(ホスト)の設定を行います。

2014年2月5日水曜日

Postfix2.10以降で発生するリレー接続エラー (454:Relay access denied)

554ではないRelay access denied

Postfixを2.9以前のバージョンから2.10以降のバージョンへ更新すると、 次のようなエラーが発生してリレー接続が出来なくなってしまう場合があるようです。
軽くハマったので残しておきます。(・ω・`)

said: 454 4.7.1 <xxxxxxx@xxxxxxxx.xxx>: Relay access denied (in reply to RCPT TO command)

どうやら2.10以降では、パラメータとデフォルト値などに少し変更があったようです。
以下はpostfix.orgのマニュアルから抜粋。

smtpd_relay_restrictions (default: permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination)

Access restrictions for mail relay control that the Postfix SMTP server applies in the context of the RCPT TO command, before smtpd_recipient_restrictions.

This feature is available in Postix 2.10 and later.

smtpd_relay_restrictions (RCPT TOコマンドの場面で適用するメールリレー用のアクセス制限設定)
2.9以前はsmtpd_recipient_restrictionsパラメータで設定されていたものが、このパラメータで設定するようになったとの事です。

取り敢えず、2.9以前のsmtpd_recipient_restrictionsパラメータのデフォルト値を確認してみました。

[root@localhost ~]# postconf smtpd_recipient_restrictions
smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination

2.10以降ではsmtpd_relay_restrictions パラメータのデフォルト値は以下。
(下位互換の確保として、smtpd_recipient_restrictionsのパラメータ自体も使えはするみたいですが、でも値は空になっています。)

[root@localhost ~]# postconf smtpd_relay_restrictions 
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination 

[root@localhost ~]# postconf smtpd_recipient_restrictions
smtpd_recipient_restrictions =  

今回の場合では、アップデートによってpermit_sasl_authenticated値が追加された事で、SMTP:454の応答が返却されていたんですね。

2014年1月29日水曜日

Subversion - Could not open the requested SVN filesystem

svn checkoutが出来ない場合

試験用に突貫構築した環境で、svnリポジトリからチェックアウトを行った際、次のようなエラーに遭遇しました。

[Wed Jan 1 00:00:00 2014] [error] [client 192.168.13.125] Could not open the requested SVN filesystem  [500, #2]



[root@localhost ~]# getenforce
Enforcing

SELinuxが有効のままでした(゚ω゚;)


SELinuxを無効にする ①

現在のSELinux設定を無効にする方法。その1。

[root@localhost ~]# setenforce 0


SELinuxを無効にする ②

現在のSELinux設定を無効にする方法。その2

[root@localhost ~]# echo 0 > /selinux/enforce


起動時のSELinuxを無効に設定する

起動時のSELinux設定を無効に設定します。
以下の作業を行うことで設定可能です。

[root@localhost ~]# vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#       enforcing - SELinux security policy is enforced.
#       permissive - SELinux prints warnings instead of enforcing.
#       disabled - SELinux is fully disabled.
#SELINUX=enforcing  ← コメントアウト
SELINUX=disabled  ← 追記した行
# SELINUXTYPE= type of policy in use. Possible values are:
#       targeted - Only targeted network daemons are protected.
#       strict - Full SELinux protection.
SELINUXTYPE=targeted



結果の確認 (再起動前)

[root@localhost ~]# getenforce
Permissive

[root@localhost ~]# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   permissive
Mode from config file:          disabled
Policy version:                 21
Policy from config file:        targeted


結果の確認 (再起動後)

[root@localhost ~]# getenforce
Disabled  

[root@localhost ~]# sestatus
SELinux status:                 disabled

2014年1月23日木曜日

【活動議事録4】 報道しない自由

明かされる真実

昨年末から更新が滞っているじょしかい!!
その理由(わけ)が今、明かされる!?

じょしかい!!トーク【活動議事録】シリーズ 第四弾です。
>第三弾はこちら


鈴木 和音

「どうしたんですか? 今日もやけにドヤ顔で」

田中 雪菜

「ンフー! 見るのだ和音!!

    2014年1月17日(金)に行われた裁判で、言論・表現の自由を保障する合衆国憲法修正第1条に関して
    ブロガーはジャーナリストと見なされる、という判決が下されました。
    この判決によると、例え正式な報道機関に属していない人でも、憲法上はジャーナリストと同じ権
    利が保障され、例えば家に帰って趣味でブログを書いている人でも法律上はジャーナリストとして
    扱われることになります。

  じょしかい!! ジャーナリズム宣言!

鈴木 和音

「また意味の分からない斜め上な発言ですね。
  ただそれを言いたかっただけですよね。 先輩
  というか、ここは日本ですよ」

田中 雪菜

「え。 じゃあ、『じょしかい!!』も言える事、少なくなるね……」

鈴木 和音

「じゃなくて、そもそもこの判決は憲法上はジャーナリストと同じ権利が保障されるって事ですよね。

  それに、言えることが少なくなるも何も、最近は『言いたいこと』も無いんじゃないですか?
  ブログもずっと更新してないですし」

田中 雪菜

「……。
  ………。
  過ぎた言論や表現の自由は炎上につながるからね! 更新は慎重に♪(・ω<)」

鈴木 和音

言い訳かよ!




話題元

GIGAZINE ブロガーはジャーナリストとして権利が保障されるという判決が下される



  

2013年12月27日金曜日

【活動議事録3】 覗かれるプライバシー

スパイウェアの境界線

スパイウェアによって知らない内に送信されてしまうプライバシーデータ。
覗かれて困る情報とは?
スパイウェア化した雪菜を前に、千夏の悲鳴がこだまする!
じょしかい!!トーク【活動議事録】シリーズ 第三弾です。
>第二弾はこちら


鈴木 和音

「突然ですけど、浮気ってドコから浮気だと思います?
  手を繋いだら~とか、キスしたら~とかあるじゃないですかー」

佐藤 千夏

「んんー……。 そうね。 一般的かもしれないけれど、やっぱり本人に疚(やま)しい気持ちが生まれたらかな」

鈴木 和音

「でもでも、それだと『相手に悪いな』って思わない人だったら『全然ッOK』って感じになっちゃいません?
  男A 『ごめん。 でも俺、決してお前を裏切るような疚(やま)しい気持ちとか無かったんだ』 
  とか。
  これって、何かヤバくないですか? 」

田中 雪菜

「あ"ー。 チャラいチャラい!!!」

佐藤 千夏

「そもそも、そういう方とはお付き合いしたいと思わないんじゃないかな……」

田中 雪菜

「もしわたしが誰かと付き合うとしたら『ナイショで他の女の子と2人きりの食事』はNGになるかも。
  それを知ったら、夜中一人で『あああああああああああ』ってなっちゃいそ」

鈴木 和音

「雪菜先輩って性格はざっくりしてる感じですけど、実は束縛超凄そうな感じですよね」

田中 雪菜

「!?……え。」

佐藤 千夏

「お付き合いしている相手の方を、こっそり監視してしまうような感じね」

田中 雪菜

いやいや……

鈴木 和音

「サーバーみたいに、問題があればアラートを飛ばすとかして24時間監視してそうです」

田中 雪菜

 ナィナィ 

佐藤 千夏

 あ る あ る ♪

鈴木 和音

 あ る あ る ♪

 

佐藤 千夏

「そう言えば、数年前に彼氏の行動を監視するスマートフォンのアプリが公開されて、少し騒動になったわよね」

田中 雪菜

カレログだっけ?」

鈴木 和音

「ありました!
  確か、現在位置や通話履歴だけじゃなく、インストールされてるアプリの一覧とかも送信するんですよね。 
  それって、何か超ヤバくないですか?」

田中 雪菜

「それ、完全にスパイウェアだよね」

佐藤 千夏

「確か、一部のセキュリティベンダーには、スパイウェアとして登録されたんじゃなかったかしら」

鈴木 和音

「浮気の監視とかを関係無しで考えるなら、位置情報や通話記録よりもインストールしてあるIMEの変換履歴を送信される方が、恥ずかしさ的にも超絶ヤバいですよね」

田中 雪菜

「なるほど。確かに……。 
  じゃあ、恥ずかしさの度合いの確認も含めて……
  部室にあるパソコンでもチェックしてみよっか♪

佐藤 千夏

「え、何で!? ちょ、ちょっと待って!」

田中 雪菜

「どれどれ♪♪」

(カチャカチャ)

佐藤 千夏

「いやあああああぁぁぁぁぁぁ」

鈴木 和音

「千夏先輩!?




関連記事

バイドゥ(Buido)、IMEユーザーの情報を無断で外部送信 (「クラウド入力OFF」でも)

Buido IME インストールされている方はご一読。

恋愛支援アプリ『カレログ』が『カレログ2』としてリニューアル

サービス終了のお知らせ

Cerberus

盗難防止用アプリ?
・位置情報、通話履歴の記録送信
・遠隔操作(端末ロック、カメラ撮影、音声録音、警告表示、データの削除)
インストールされたCerberusの隠蔽




[宣伝]

スマートフォン用セキュリティソフトや書籍の紹介です。

2013年12月25日水曜日

Postfix 先頭がハイフンのメールアドレスにメールを送信出来ない

allow_min_userの値を変更する

デフォルトでpostfixは先頭がハイフン(-)のメールアドレス(RFC準拠)にメールを送信出来ないなんて知らず……。
先頭にハイフン文字を使ったドコモ宛のメールが大量に詰まってました。 (・ω・`)

invalid recipient syntax: \"-*******@docomo.ne.jp\"
(/var/log/maillog)

main.cfallow_min_user値を設定(デフォルト未設定)して、先頭がハイフン(-)のメールアドレスにもメールが送信されるようにしました。

# allow_min_user (デフォルト: no)
# 受信者アドレスが最初の文字として '-' を持つことを許可します。
# コマンドラインでEメールアドレスを渡すソフトウェアでの事故を避けるため、デフォルトではこれを認めません。
allow_min_user = yes

どういう事かと言うと、例えば「-*******@******.**.**」という先頭ハイフンなメールアドレスへ、コンソール上からmailコマンドを使って送信しようとした場合。

[root@localhost ~]# mail -s 'user unknown' -*******@******.**.**
mail: invalid option -- *
Usage: mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] to-addr ...
            [-- sendmail-options ...]
       mail [-iInNv] -f [name]
       mail [-iInNv] [-u user]

となっちゃうんです。

わたしの場合は規制する必要がないので制限を解除しました。 ヽ(´▽`*)ノ


bounce_queue_lifetimeの値を変更する

標準の設定では、maximal_backoff_timeに設定した時間の間隔で5日間(bounce_queue_lifetime)も再送し続けてしまうので、ついでにこの値も変更しておきました。
・変更前 5日
・変更後 3時間 (180分)

# bounce_queue_lifetime (デフォルト: 5d)
# 配送できないと見なすまでに、バウンスメッセージがキューに入っている最大の時間。
# デフォルトでは、通常のメールに対するキューの寿命と同じです。
# 時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。 デフォルトの時間単位は d (日) です。
# メール配送の試行を1回だけにするには 0 を指定します。
# この機能は Postfix 2.1 以降で使えます。
bounce_queue_lifetime = 180m

詳しくは、Postfix設定パラメータを読んで下さい。



[宣伝] Postfixの参考書です。

わたしも読みました!!

気になっている1冊です。

2013年12月24日火曜日

CentOS 5.8に、MySQL 5.6をインストールする。

MySQL 5.6 をrpmでインストールする

MySQLの公式からMySQL 5.6rpmのパッケージファイルをダウンロードしてきました。
(MySQL 5.6をインストールする前に、古いMySQLは削除してあります)

[root@centos5 ~]# ls -l MySQL-*
-rw-r--r-- 1 root root 23090275  9月 11 12:24 MySQL-client-5.6.14-1.rhel5.x86_64.rpm
-rw-r--r-- 1 root root  4563085  9月 11 12:24 MySQL-devel-5.6.14-1.rhel5.x86_64.rpm
-rw-r--r-- 1 root root 89839312  9月 11 12:26 MySQL-server-5.6.14-1.rhel5.x86_64.rpm
-rw-r--r-- 1 root root  5106177  9月 11 12:26 MySQL-shared-compat-5.6.14-1.rhel5.x86_64.rpm

[root@centos5 ~]# rpm -ivh ./MySQL-*
準備中...                ########################################### [100%]
   1:MySQL-shared-compat    ########################################### [ 25%]
   2:MySQL-client           ########################################### [ 50%]
   3:MySQL-devel            ########################################### [ 75%]
   4:MySQL-server           ########################################### [100%]

すんなりインストールも終わったので、早速起動してみました。

[root@centos5 ~]# /etc/init.d/mysqld start
2013-12-24 23:59:59 5770 [ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!

rootで起動するなー!って言われてる……。
mysqlユーザーで起動します。

[root@centos5 ~]# su - mysql
-bash-3.2$ /etc/init.d/mysqld start
...
2013-12-24 23:59:59 5728 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.

という謎エラーを吐いて死んでしまった。 (・_・;)
...
そもそも、mysql-serverを起動出来ていないのにmysql_upgradeとか実行出来ない。

その後も試行錯誤を続けるも謎エラーの嵐に嵌められて……

30分後

サクッと諦めました (´・ω・`)

[root@centos5 ~]# rpm -qa | grep 'MySQL' | xargs rpm --erase

削除、削除……っと。


という事で

MySQL 5.6 をyumでインストールする

にしました(`・ω・´)

[root@centos5 ~]# rpm -ivh http://repo.mysql.com/mysql-community-release-el5-5.noarch.rpm
http://repo.mysql.com/mysql-community-release-el5-5.noarch.rpm を取得中
準備中...                ########################################### [100%]
   1:mysql-community-release########################################### [100%]

[root@centos5 ~]# vi /etc/yum.repos.d/mysql-community.repo
enabled=1     ← 変更前
enabled=0     ← 変更後

[root@centos5 ~]# yum install --enablerepo=mysql56-community mysql-community-client.x86_64 mysql-community-common.x86_64 mysql-community-server.x86_64 mysql-community-libs.x86_64
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile

~中略~

Installed:
  mysql-community-client.x86_64 0:5.6.15-3.el5              mysql-community-common.x86_64 0:5.6.15-3.el5
  mysql-community-server.x86_64 0:5.6.15-3.el5              mysql-community-libs.x86_64

Complete!

古いmysqlのパッケージを綺麗に削除していない場合、conflicts with file from packageと怒られる場合があるようです!
わたしは怒られました(;´∀`)

インストールが終わったら起動を確認して、msyql_upgradeをして完了ですね。

[root@centos5 ~]# /etc/init.d/mysqld start
mysqld を起動中:                                           [  OK  ]

[root@centos5 ~]# mysql_upgrade
Looking for 'mysql' as: mysql
...
OK

バージョンアップによって使えなくなっているパラメータなどがあるかもしれません。
MySQL5.6の起動に失敗した場合は確認してみてください。 c(・ω・´c⌒っ

わたしはこちらのサイトを参考にさせて頂きました。

2013年12月23日月曜日

起動しないPostfix

fatal: bind 0.0.0.0 port 25: Address already in use

先日に続いてPostfixネタです。

postfix-2.10をインストールして起動しようとしたら
fatal: bind 0.0.0.0 port 25: Address already in use
なんてエラーが出ました。

[root@centos5.8 ~]# rpm -qa 'postfix'
postfix-2.10.2-1.el5

[root@centos5.8 ~]# alternatives --config mta

2 プログラムがあり 'mta' を提供します。

  選択       コマンド
-----------------------------------------------
*  1           /usr/sbin/sendmail.sendmail
 + 2           /usr/sbin/sendmail.postfix
Enter を押して現在の選択 [+] を保持するか、選択番号を入力します: 2

[root@centos5.8 ~]# /etc/init.d/postfix start
postfix を起動中:                                          [失敗]

ログ(/var/log/maillog)を確認してみると……。

[root@centos5.8 ~]# tail -n 10 /var/log/maillog
Dec 24 23:59:59 centos5.8 postfix/postfix-script[17557]: starting the Postfix mail system
Dec 24 23:59:59 centos5.8 postfix/master[17559]: fatal: bind 0.0.0.0 port 25: Address already in use
Dec 24 23:59:59 centos5.8 postfix/master[17558]: fatal: daemon initialization failure
Dec 24 23:59:59 centos5.8 postfix/postfix-script[17560]: fatal: mail system startup failed

お前は既に使われている(port 25: Address already in use)って言ってる。
そうだった! sendmailを停止し忘れていました。(・_・;)

なので、sendmailを停止させてpostfixを再度起動ですね。

[root@centos5.8 ~]# /etc/init.d/sendmail stop
sendmail を停止中:                                         [成功]

[root@centos5.8 ~]# /etc/init.d/postfix start
postfix を起動中:                                          [成功]

無事起動出来ましたヽ(´∀`*)ノ すっかりヌケてました。

2013年12月22日日曜日

CentOS 5.8 最新版のPostfix 2.10をインストールする。

今回は最新版のPostfix(現時点ではpostfix-2.10.2-1.el5)を、yum, rpm, makeのそれぞれでインストールしてみました。


yumでインストール

今回は、最新版のPostfix(現時点では2.10.2)をインストールしてみました。
(リポジトリはCentALTを使いました。)

[root@localhost ~]# yum install --enablerepo=CentALT 'postfix'
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile

~中略~

Running Transaction
  Updating       : postfix                                                                                          1/2
  Cleanup        : postfix                                                                                          2/2

Updated:
  postfix.i686 2:2.10.2-1.el5

Complete!

ログ解析ツールのpflogsumm(postfix-perl-script)もインストールしました。
同じリポジトリからpostfix-perl-scriptsを指定してインストールでOKです。

[root@localhost ~]# yum install --enablerepo=CentALT 'postfix-perl-scripts'
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile

~中略~

Running Transaction
  Installing     : postfix-perl-scripts                                                                             1/1

Installed:
  postfix-perl-scripts.i686 2:2.10.2-1.el5

Complete!

pflogsummは、yesterday(昨日分)とtoday(本日分)しか集計することが出来ないんですね~。
日付指定とか出来れば便利かな?
集計可能な項目も含めて変更の余地がありそうですね!


rpmでインストール

こちらは後から別のマシンで行った作業ログです。
RPMパッケージは、CentALTにあるものを使わせて頂きました。
(インストール出来たパターン)

[root@centos5.8 ~]# rpm -Uvh http://centos.alt.ru/repository/centos/5/x86_64/postfix-2.10.2-1.el5.x86_64.rpm
準備中...                ########################################### [100%]
   1:postfix                ########################################### [100%]

[root@centos5.8 ~]# rpm -Uvh http://centos.alt.ru/repository/centos/5/x86_64/postfix-perl-scripts-2.10.2-1.el5.x86_64.rpm
http://centos.alt.ru/repository/centos/5/x86_64/postfix-perl-scripts-2.10.2-1.el5.x86_64.rpm を取得中
準備中...                ########################################### [100%]
   1:postfix-perl-scripts   ########################################### [100%]


rpmコマンドでのインストール中にエラーとなったマシンがありました。
(エラーが発生したパターン)

[root@localhost ~]# rpm -Uvh http://centos.alt.ru/repository/centos/5/x86_64/postfix-2.10.2-1.el5.x86_64.rpm
http://centos.alt.ru/repository/centos/5/x86_64/postfix-2.10.2-1.el5.x86_64.rpm を取得中
エラー: 依存性の欠如:
        libc.so.6()(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libc.so.6(GLIBC_2.2.5)(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libc.so.6(GLIBC_2.3)(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libc.so.6(GLIBC_2.3.2)(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libc.so.6(GLIBC_2.3.4)(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libc.so.6(GLIBC_2.4)(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libcrypto.so.6()(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libdb-4.3.so()(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libdl.so.2()(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        liblber-2.3.so.0()(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libldap-2.3.so.0()(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libm.so.6()(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libmysqlclient.so.15()(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libmysqlclient.so.15(libmysqlclient_15)(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libnsl.so.1()(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libnsl.so.1(GLIBC_2.2.5)(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libpcre.so.0()(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libpq.so.4()(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libresolv.so.2()(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libresolv.so.2(GLIBC_2.2.5)(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libsasl2.so.2()(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libssl.so.6()(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libz.so.1()(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています

依存関係エラーが多数。 (・ω・`)
存在するはずのライブラリの依存エラーが表示されているので、以前に遭遇したコレと同じなのかな。 何なんだろう……。

取り敢えず、yumコマンドですんなり入りました。


makeでインストール

公式にあるpostfix-2.10.2.tar.gzをダウンロードして、ソースからインストールしてみました。

[root@localhost ~]# make
............. [準備中]

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月19日木曜日

2014年【春期】 基本情報技術者試験(FE)

基本情報技術者資格(FE)

部室で少し話題に上がったんだけど、基本情報技術者の資格は、ウチの部では千夏と和音が持っています!
そして、わたしは持ってません (灬'ω'灬)

2014年春の試験は来年の1月中旬から申込受付開始なんだねー。
和音曰く「過去問やり込めば大丈夫」らしいけど……。


  • 情報技術全般に関する基本的な用語・内容を理解している。

  • 上位技術者の指導のもとにプログラム設計書を作成できる。

  • プログラミングに必要な論理的思考能力をもつ。

  • 一つ以上のプログラム言語の仕様を知っており、その言語を使ってプログラムを作成できる。

  • プログラムのテスト手法を知っており、単体テストを実施できる。

アタマぱっぱーなわたしでも取れるのかな ( ´ー`)。oO ゥーン



[宣伝] オススメ度の高い基本情報技術者試験の参考書問題集をご紹介です。

定番です

安いです

安い!(アプリ付き)

おすすめ


基本情報技術者試験についての詳しくは
「IPA 情報処理推進機構:情報処理技術者試験センター:情報処理技術者試験制度:制度の概要
を参照して下さい♪


2013年12月17日火曜日

CentOS 5.8 php53からphp5.4へのアップデート

CentOS 5.8にインストールされていたphp53を、php5.4にアップデートしました。

タイトルの通りですが、作業を行った時のメモです。
作業自体はx86_64で行っていますが、他でも同じだと思います。
php53のパッケージを一旦削除してから、remiのリポジトリにあるphp5.4を取得・インストールしています。
なので、正確には再インストールですね!


php53の削除

早速、php53のパッケージを削除します。

[root@centos5.8 ~]# yum remove php53*
Loaded plugins: downloadonly, fastestmirror, security
Setting up Remove Process
Resolving Dependencies

~中略~

Transaction Test Succeeded
Running Transaction
  Erasing        : php53-common                                                                                               1/**
警告: /etc/php.ini は /etc/php.ini.rpmsave として保存されました。
  Erasing        : php53-bcmath                                                                                               2/**
  Erasing        : php53-cli                                                                                                  3/**
  (削除された項目を省略しています)


Removed:
  php53.x86_64 0:5.3.3-21.el5               php53-bcmath.x86_64 0:5.3.3-21.el5          php53-cli.x86_64 0:5.3.3-21.el5
  php53-common.x86_64 0:5.3.3-21.el5        (削除された項目を省略しています)

Dependency Removed:
  php-pear.noarch 1:1.4.9-8.el5

Complete!

php5.4のインストール

php53パッケージの削除が完了したら、いよいよphp5.4のインストールです。
わたしの環境では、ここで依存関係エラー(libedit)が発生しました。
epelのリポジトリから取得してインストールすることで解決です。

[root@centos5.8 ~]# yum install --enablerepo=remi php
Loaded plugins: downloadonly, fastestmirror, security
Loading mirror speeds from cached hostfile

~中略~

Installed:
  php.x86_64 0:5.4.22-1.el5.remi

Dependency Installed:
  libcurl.x86_64 0:7.21.7-5.el5.remi.2         libssh2.x86_64 0:1.2.7-1.el5.remi        php-cli.x86_64 0:5.4.22-1.el5.remi
  php-common.x86_64 0:5.4.22-1.el5.remi

Complete!

必要に応じてphp-mcryptphp-devel、削除されたモジュール類を入れてあげて下さい。

[root@centos5.8 ~]# yum install --enablerepo=remi php-mcrypt
Loaded plugins: downloadonly, fastestmirror, security
Loading mirror speeds from cached hostfile

~中略~

Installed:
  php-mcrypt.x86_64 0:5.4.22-1.el5.remi

Dependency Installed:
  libtool-ltdl.x86_64 0:1.5.22-7.el5_4

Complete!

[root@centos5.8 ~]# yum install --enablerepo=remi php-devel
Loaded plugins: downloadonly, fastestmirror, security
Loading mirror speeds from cached hostfile

~中略~

Installed:
  php-pear.noarch 1:1.9.4-23.el5.remi

Dependency Installed:
  php-process.x86_64 0:5.4.22-1.el5.remi                             php-xml.x86_64 0:5.4.22-1.el5.remi

Complete!

これらの他にもphp5.4化でphp-pearも入れ直しました。(・ω・´)
/etc/php.ini.rpmsave(php53削除時に作成された設定ファイルのバックアップ)からの再設定も、必要であれば行って下さい。


php5.4のインストールが完了したら、Apacheを再起動して完了です。

[root@centos5.8 ~]# /etc/init.d/httpd start
httpd を起動中:                                            [  OK  ]

さてと……。
動かなくなったPHPファイルはどれくらいあるのでしょうか(・_・;)

php5.4の更新内容についてはこちらをご覧下さい。
下位互換の無い変更点も結構あるので、PGの皆さん!ご注意下さい。




php5.4インストール時にエラーになった場合

php5.4をインストールする際に、わたしの環境では依存関係エラーが発生しました。

php-cli-5.4.23-1.el5.remi.x86_64 from remi has depsolving problems
  --> Missing Dependency: libedit.so.0()(64bit) is needed by package php-cli-5.4.23-1.el5.remi.x86_64 (remi)
Error: Missing Dependency: libedit.so.0()(64bit) is needed by package php-cli-5.4.23-1.el5.remi.x86_64 (remi)
 You could try using --skip-broken to work around the problem
 You could try running: package-cleanup --problems
                        package-cleanup --dupes
                        rpm -Va --nofiles --nodigest

libeditが無いとのことだったので、epelリポジトリから取得してインストールすることで対処しました。

[root@centos5.8 ~]# yum install --enablerepo=epel libedit
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
~中略~
Running Transaction
  Installing     : libedit                                                                                                     1/1

Installed:
  libedit.x86_64 0:2.11-2.20080712cvs.el5

Complete!

1.5倍のアクセスログファイル

HostnameLookups設定を無視して逆引きを行う問題

私達の部では、本校の学生向けのWebサーバも管理しています。

先日の事。
このWebサーバーのアクセスログファイルが先週分と比較してサイズが1.5倍にもなっていたので、中を覗いてみたところ接続元のIPアドレスがドメイン名になっているものが混ざっていました。

www.sample.com - - [31/Dec/2013:12:42:00 +0900] "GET /index/ HTTP/1.1" 200 39848
xxx.xxx.xxx.222 - - [31/Dec/2013:12:42:10 +0900] "GET /index/ HTTP/1.1" 200 39848
www.sample.net - - [31/Dec/2013:12:42:10 +0900] "GET /index/ HTTP/1.1" 200 39848
xxx.xxx.xxx.111 - - [31/Dec/2013:12:42:10 +0900] "GET /index/ HTTP/1.1" 200 39848

HostnameLookupsの設定は、いつも雪菜はoffにしているはず。
和音ちゃんはサーバー側の設定を変更する事は無いし、私もこの設定をonに変えた覚えはありません。

HostnameLookups Off

httpd.confの更新日時も古く、HostnameLookups設定もoffのまま。 
こちらの問題ではない様子。

Apacheの設定ファイル類で更新日時が新しいものを検索をすると、Host設定用のconfファイルが1件見つかりました。

<Directory /var/www/html/>
    Order Allow,Deny
    Allow From all
    Deny From 192.168.1.55       # とりあえず出禁
</Directory>

見つかったファイルを開いてみても、特に問題となる内容も無さそうな印象。
強いて言うのであれば、適当過ぎるコメントが追記されている事くらい。
試しにこのコメント行を消してみたところ

xxx.xxx.xxx.444 - - [31/Dec/2013:13:00:07 +0900] "GET /index/ HTTP/1.1" 200 39848
xxx.xxx.xxx.444 - - [31/Dec/2013:13:00:08 +0900] "GET /index/ HTTP/1.1" 200 39848
xxx.xxx.xxx.444 - - [31/Dec/2013:13:00:09 +0900] "GET /index/ HTTP/1.1" 200 39848
xxx.xxx.xxx.333 - - [31/Dec/2013:13:00:10 +0900] "GET /index/ HTTP/1.1" 200 39848

逆引き処理が止まりました……?

その後にいろいろと調べてみたところ、"HostnameLookupsの設定に関係なくDNSルックアップされてしまう"場合があるみたいですね。
    ① ホスト名で指定されている場合
    ② IPアドレスと同一行にコメントが記述されている場合


今回、参考にさせて頂いたサイト。


ここまで読んで下さり、ありがとう御座いました。

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年12月14日土曜日

【活動議事録2】 儲からないアフィリエイト

Google AdSenseの関連広告表示機能と実際

活動費を得るために導入したGoogle AdSense。
だけど、いつまで経っても成果は上がらずゼロのまま。
雪菜部長がクリック数を増やすために考えた秘策とは?
じょしかい!!トークの【活動議事録】シリーズ 第二弾です。
>第一弾はこちら


田中 雪菜

「ねぇねぇー、和音ぇェェェ……」

鈴木 和音

「何ですか? 雪菜先輩。 そんな生気のないカエルのような声で」

田中 雪菜

じょしかい!!に表示されるGoogle AdSenseテキストリンクにさぁー

    ► Mysql php
    ► Rpm package
    ► Fedora support
    ► Apache php

クリックする気が起きそうな項目が無い

鈴木 和音

「はい。 どう見ても残念すぎる感じですね」

田中 雪菜

「せっかく入れたのにー。 人生初のAdSense。 あぁ、マイ・スイート・アドセンス・バージンがァァァ」

鈴木 和音

「ちょっと何言ってるか分からないです」

田中 雪菜

「どうせこれを記事にしたって

    ► Adsense
    ► 広告
    ► 議事録
      

とかになるんでしょー」

鈴木 和音

「タイトルやヘッダのタグ、それとページの内容なんかを見ていますからね」

田中 雪菜

「あ、そっか。 タイトルに『雪菜です!』とか入れないとダメかも」

鈴木 和音

「Adsenseのテキストリンク

    ► 田中雪菜
    ► 雪菜
    ► 鈴木和音
      

なるほど」

田中 雪菜

わかった!
  『春の風にパンチラさせられました♪(*ノωノ)キャッ』
  みたいなタイトルにすればクリック率も上がるよね?

鈴木 和音

「画像もなしに投稿とな?」

田中 雪菜

「え。 でも、わたしのパンチラ写真載せたらGoogle様にBANされないかな?

鈴木 和音

そこですか!!




[宣伝]

アフィリエイト関連書籍の紹介です!