投げ銭

★当サイトへの投げ銭(PayPal)★

LINK


(無償、寄付歓迎) logo
世界中で使われるISO標準オフィスソフト(MSオフィス互換)

★LibreOfficeの導入事例★
詳細について

人気の投稿(1ヶ月間)

Ad

Ad

投げ銭

★当サイトへの投げ銭(PayPal)★

2014年12月9日火曜日

【RaspberryPi B+】【Raspbian】インストーラーによるセットアップ後の基本的な設定


■ システムイメージの書き込みとシステムのセットアップ

1、システムイメージファイルの取得と、フラッシュメモリへ書き込み


先ずは、Raspbianイメージのダウンロードを行い解凍(zipからimg形式のファイルを取得)、
そして、本家の指示通りにライティングツールでこのimgイメージをフラッシュメモリに書き込んだ。


2、システムのセットアッププログラムによる初期設定

フラッシュメモリを本体にセットしてUSB電源を供給すると、簡易なセットアッププログラムが起動した。
ここで必要な項目について適当にセットアップを行った。

・初期ユーザーpiのパスワード設定(※1)
・フラッシュメモリの拡張
・CUIのみで運用する設定(デスクトップ環境を使わない設定)
・言語の追加(日本語対応のために、EUC-JPと、UTF-8を追加)
デフォルトの環境の選択では、最初から追加指定されていた[en_GB.UTF-8]を選んだ。


以上のようにして、Raspbianのインストーラーによるセットアップを済ませた。
再起動される。



■Raspbianの起動と基本設定

1、ログイン

起動後のプロンプトで、ユーザー名(pi)とパスワード(※1で設定済み)でログインした。


2、rootユーザーの設定

piユーザーなので、sudo su によって、rootユーザーになった。
rootユーザーのパスワードを、passwd コマンドで設定した。
これによって、rootユーザーで、ネットワーク越しにsshでログインできるようになった。
(IPアドレスは、ifconfigコマンドなどで確認できた。)

(注意)iptablesで確認すると、初期状態のINPUTチェインは、policy ACCEPT になっていて、
フィルタは何も設定されていない状態だったので、安全なネットワークで動作させる必要がある。



3、タイムゾーンを修正した

セットアップ時に間違ったタイムゾーンを指定していたため、dateコマンドでは間違った時間が表示されていた。
タイムゾーンを次のコマンドを使って設定しなおした。

root@raspberrypi:~# dpkg-reconfigure tzdata
Current default time zone: 'Asia/Tokyo'
Local time is now:      Thu Dec 18 04:47:34 JST 2014.
Universal Time is now:  Wed Dec 17 19:47:34 UTC 2014.
JSTと表示されれば良い。
root@raspberrypi:~# date
Thu Dec 18 04:47:39 JST 2014


4、システムのアップデートを行った

APTデータベースを更新する。
root@raspberrypi:~# apt-get update
実際にパッケージを更新する。 (時間がかかった。)
root@raspberrypi:~# apt-get upgrade

アップデート後のシステム情報
root@raspberrypi:/# uname -a
Linux raspberrypi 3.12.28+ #709 PREEMPT Mon Sep 8 15:28:00 BST 2014 armv6l GNU/Linux


■Raspbianの基本設定(その2)

1、仮想端末ソフトウェアの導入
root@raspberrypi:~# apt-get install tmux
インストール後には、tmuxコマンドで仮想端末にアクセスできた。
仮想端末を使うとベースのsshのセッションが途切れても実行中の処理は継続される。
(windowsのリモートデスクトップのような感じになる。)

ベースのsshセッションが不意に切断された場合には、自動的に仮想端末からデタッチされた。
手動でデタッチを行うには、次のようにすればよかった。
 「 ctrl + b 」を押下した直後、コロン「:」を押下すると、下部にコマンドラインが表示されるので、
ここに、detach と入力してエンターを押す。

仮想端末セッションに再接続するには、sshでログインしてから、tmux attach コマンドを実行する。
再び仮想端末セッションに接続できた。



(参考)
・Installing Operating System Images using Windows
< http://www.raspberrypi.org/documentation/installation/installing-images/windows.md >
2014年12月8日

・Raspberry Piを動かしてみよう!
< http://taock.hatenablog.com/entry/2013/11/17/222113 > 2014年12月8日

・RaspberryPiをRaspbianで使う場合の初期設定メモ(ユーザ追加)
< http://qiita.com/R-STYLE/items/b481ba2d695ddf8bcee4 > 2014年12月8日

・tmuxを使い始めたので基本的な機能の使い方とかを整理してみた
< http://kanjuku-tomato.blogspot.jp/2014/02/tmux.html > 2014年12月8日

・ RaspberryPiのタイムゾーンを日本時間に設定する
< http://www.absolute-keitarou.net/blog/?p=1201 > 2014年12月18日

・apt-get - パッケージの操作・管理 - Linuxコマンド
< http://webkaru.net/linux/apt-get-command/ >  2014年12月18日

2014年11月11日火曜日

【Linux CentOS 6.5 64bit】 rsyncで公開鍵認証を用いることでパスワード入力の対話操作を省く

更新:2017年1月16日

SSH接続で、認証のための対話を不要にするために、公開鍵認証の設定を行った。

これによって、rsyncなどのプログラムで、パスワードを手入力する対話操作がなくなる。
バックアップなどの自動動作スクリプトで効果を発揮する。


<大まかな設定手順>

1、クライアントマシン(接続元)で、公開鍵と秘密鍵のペアを作成する。
2、ペア秘密鍵は自分で保存し、ペア公開鍵はサーバーマシン(接続先)に渡す。


<仕組み>

今、クライアントAが、サーバーに接続しようとする。
このサーバーは、すでにクライアントAの公開鍵を持っている。

1、サーバーは、公開鍵(クライアントAのもの)で「暗号文」を作成する。
2、サーバーは、「暗号文」をクライアントに渡して解読するよう要求する。

3、クライアントAは暗号文を受け取り、自分の秘密鍵で解読する。(当人ならできる)
4、解読したものをサーバーに送って見せる。

5、サーバーは暗号が正しく解かれたことを確認する。
6、確認できれば、サーバはアクセスがクライアントAによるものだと認識し、接続を受け入れる。



以下では、ssh接続はrootユーザで行うものとして設定している。
そのため、設定作業や動作テストはrootユーザで行った。

以下のテストは、安全なネットワーク環境で行った。


■接続元のマシンでの設定

○公開鍵と秘密鍵のペアを作成する

[root@client ~]# ssh-keygen -d
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa):
Enter passphrase (empty for no passphrase): ←空のままエンターキー
Enter same passphrase again:          ←空のままエンターキー
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
8f:xx:xx:xx:xx:xxx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx root@client

The key's randomart image is:
+--[ DSA 1024]----+


+-----------------+

○作成されたペア鍵を確認する。

[root@client ~]# ls /root/.ssh/
id_dsa  id_dsa.pub  known_hosts

○公開鍵を表示する。

ここに表示される公開鍵の文字列をコピーして、後で接続先マシンで行う「ペースト作業」に備える。
(注意)安全な経路でターミナルを用いて行う。

[root@client ~]# cat /root/.ssh/id_dsa.pub
(ここに接続元マシンで作成した公開鍵が表示される)

○公開鍵のフィンガープリントは次のようにして確認できる。
フィンガープリントは長い公開鍵を短く表示(ダイジェスト)したもの。
これによって、たとえば、人間が照合しやすくなる。
今回も、接続先にこの公開鍵を渡してから、正しく渡されているかを人間が照合確認する。
[root@client .ssh]# ssh-keygen -lf /root/.ssh/id_dsa.pub
1024 8f:xx:xx:xx:xx:xxx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx id_dsa.pub (DSA)


■接続先のマシンでの設定

○もし、.sshディレクトリがなければ作成しておく。

[root@server ~]# mkdir /root/.ssh

○接続元の公開鍵を登録する。

接続元での作業で作成した公開鍵の文字列(id_dsa.pubに保存されているもの)を、次のファイル内に貼付け保存する。
改行すれば複数の公開鍵を登録できる。

[root@server .ssh]# vi /root/.ssh/authorized_keys
(接続元マシンでの操作でコピーをとった公開鍵を貼り付けて保存)

○登録保存した公開鍵のダイジェスト(フィンガープリント)を表示して、
接続元の公開鍵のフィンガープリントと比較して一致していることを確認した。(念のため)
[root@server .ssh]# ssh-keygen -lf /root/.ssh/authorized_keys
1024 8f:xx:xx:xx:xx:xxx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx authorized_keys (DSA)


■接続元マシンから接続マシンへ接続テスト

公開鍵認証のための設定は以上で終了した。
自動的に、SSH接続で公開鍵認証が用いられる。

IPv6のリンクローカルアドレスを持つマシンをターゲットに接続する場合
(ただし、ターゲットマシンは、操作元のマシンのインターフェイス3番に接続されているとする。)

結果は、いずれも公開鍵認証が行われることで、パスワード入力の手順がなくなった。


○単純にログインのテスト(IPv6接続で試している)
[root@client ~]# ssh -p 22 root@fe80::xxxx:xxxx:xxxx:xxxx%3

○ターゲットマシンを転送先としてrsyncによる同期を行うテスト
ターゲットマシンのディレクトリ /home/BACKUP/ に、その日の年月日を名称としたディレクトリを自動的に作成している。
[root@client ~]# rsync --rsh="ssh -p 22" -avz /home/ 'root@[fe80::xxxx:xxxx:xxxx:xxxx%3]':/home/BACKUP/`date +%F`/
receiving incremental file list



<参考>
・SSHの2つの認証方式の違い
< http://l-w-i.net/t/openssh/auth_001.txt > 2014年11月12日

・Public key fingerprint
< http://en.wikipedia.org/wiki/Public_key_fingerprint > 2014年11月12日

・RSA (cryptosystem)
< http://en.wikipedia.org/wiki/RSA_%28cryptosystem%29 > 2014年11月12日

・Can't find .ssh directory in my terminal?
< http://superuser.com/questions/635269/cant-find-ssh-directory-in-my-terminal > 2014年11月12日

・How do I use rsync with an IPv6 address via SSH?
< http://serverfault.com/questions/420158/how-do-i-use-rsync-with-an-ipv6-address-via-ssh > 2014年11月12日

・Enabling IPv6 for rsync daemon
< http://lvogdt.wordpress.com/2012/05/12/enabling-ipv6-for-rsync-daemon/ > 2014年11月12日

・いつまでもハマるrsyncのメモ
< http://open-groove.net/linux-command/rsync-memo/ > 2014年11月12日

・共通鍵暗号と公開鍵暗号の解説とSSHでの認証手順
< http://www.adminweb.jp/web-service/ssh/index4.html#section4 > 2017年1月16日

2014年10月23日木曜日

【YAMAHA RTX1200】 IPsecトンネルを冗長化し障害に備える方法について

IPsecトンネルを2本用意して、一方をメインとし、他方をバックアップとして、
障害時に自動的に切り替わるように設定する方法の概略

実験して試したところ、以下の設定でうまく切り替えることができたので肝心なところをメモしておく。



ここでは、次のような構成をイメージしている。

LAN----RTX1200(拠点1)=====The Internet=====RTX1200(拠点2)----LAN(192.168.100.0/24)

以下では、拠点1の設定のみを考えている。
同様に対称になるように、拠点2についても設定を行う必要がある。

以下では、仮に、拠点1のRTX1200において、
メイントンネルを、tunnel 30番、
バックアップトンネルを、tunnel 31番 としている。
また、トンネルを終端している対向ルーターのLANアドレスを、192.168.100.1 と想定している。



■ 経路とするIPsecトンネルを準備する(メイン経路と、バックアップ経路)

メイン経路とするIPsecトンネルを、tuunel 30番 として準備を完了させる。
バックアップ経路とするIPsecトンネルを、tunnel 31番 として準備を完了させる。 

(重要)
メイン経路とするIPsecトンネル(30番)の設定には、次のようにして ike keepalive の設定を加えておく。
(バックアップ経路とするIPsecトンネルには、この設定は必須でない。)

この設定がされたトンネルは、使用可能な場合には、常に接続されたままになる。(解説は※1へ)
tunnel select 30
(略)
  ipsec ike keepalive use 30 on
(略)



■ 対向ルーターへの疎通確認用の keepalive定義を行う

この設定は、ip route設定( 次項 )において、メイン経路の障害を探知するために用いられる。
(上で設定したトンネルのkeepaliveとは関係ない。混同しないこと。)

次のようにして、icmpによる到達確認用の設定を行っておく。(詳細は、†2)
(ただし、対向ルーター(RTX1200)のLANアドレスが、192.168.100.1 の場合)
ip keepalive 30 icmp-echo 2 5 192.168.100.1 upwait=10

(注)
上記の ip keepalive 30 について、「30」はキープアライブ定義番号である。
30番トンネル専用のキープアライブ設定としているので、トンネル番号と同じ番号にしている。)


■メイン経路の障害時にバックアップ経路に切り替わるように、経路設定を行う

ip route 設定で、経路としてメイントンネルとバックアップトンネルを重畳させ、
メイントンネルの障害発生時には自動的にバックアップトンネルに切り替えるようにする。

例では、通常はメイントンネル tunnel 30番 を用い、
その障害発生時には、バックアップトンネル tunnel 31番 を有効な経路として用いるようにしている。
次の設定でこの意図した動作になった。

メイントンネルの障害検知には、上ですでに定義した ip keepalive 30 icmp-echo を用いている

バックアップトンネルは、weight 0 の設定を加えることによって、通常は使用されないようにしている。
(メイントンネルが不通になった場合にのみ、仕方ないということでバックアップトンネルが使用されることになる。)

ip route 192.168.100.0/24 gateway tunnel 30 keepalive 30 hide gateway tunnel 31 weight 0




□どの経路が使用されているかをチェックする

次のコマンドを使って、ip keepalive icmp-echo による疎通チェック結果を一覧できる。

次のように疎通している場合には、
ip routeコマンドで gateway tunnel 30 keepalive 30 hide によって指定したメイン経路は有効になっているはずである。
(詳細は、†2)
# show status ip keepalive

 ID  STATE TARGET                                  REACH TIMER COUNT
------------------------------------------------------------------------
  30   up  192.168.100.1                             yes     2     5




◎ 解説 ◎ (※1)

メイントンネルの設定項目として ipsec ike keepalive use on と、
経路設定で用いられる ip keepalive 30 icmp-echo が要である。

ipsec ike keepalive use onが設定されないIPsecトンネルは、
自身が経路となってパケットの通過する時にはじめて対向に接続され有効になる。
すなわち、経路とならない間は不通の状態が継続することになる。
(経路に指定されて初めて接続されるとういうことだ。 )

hideを用いた経路設定(gateway tunnel 30 keepalive 30 hide)は、
その接続が有効な場合のみ経路として用いられる意味である。(有効でなければ、隠されてしまう。)
このことは、先ずtunnel 30が有効な状態にならなければ経路にはならないということである。
(tunnel 30の接続が確認されてはじめて経路として使われる。)

上記2つの条件が満たされていなければ、メイントンネル tunnel 30 は経路として無効のままで、
ただ、バックアップトンネル tunnel 31だけが経路に使用される状態になってしまう。

そこで、メイントンネル tunnel 30 を最初から常に強制的に接続させておく必要がある。
そのために、次の設定を tunnel 30 の設定として追加しておくわけだ。

ipsec ike keepalive use 30 on

これによって、ルーターの始動時にも、自動的にメイントンネル tunnel 30 は対向に接続される。
gateway tunnel 30 keepalive 30 hideで、hide指定されているこのtunnel 30が最初からメイン経路として有効になる。
 このメイン経路は”keepalive 30”設定に基づいて、対向ルーターへのicmpによる疎通が確認される限り用いられることになる。

もし、icmpによる疎通が確認できなくなれば、hide経路(tunnel 30)は無効になり、
gateway tunnel 31 weight 0 に基づいて、バックアップ経路として tunnel 31 が有効になる。

しかし、メイントンネル tunnel 30 は、自身に設定された ipsec ike keepalive use 30 on 設定によって、復活が試みられていて、
再び接続がなされれば、 メイン経路として再び有効になる。




(参考)

(1) 9.1.7 IP の静的経路情報の設定
< http://www.rtpro.yamaha.co.jp/RT/manual/Ver.1.00/ip/ip_route.html > 2014年10月22日

(2) ネットワークバックアップ機能
< http://www.rtpro.yamaha.co.jp/RT/docs/backup/network-backup.html > 2014年10月22日

(3) IKEキープアライブの設定
< http://www.rtpro.yamaha.co.jp/RT/docs/ipsec/command.html#ipsec.ike.keepalive.use > 2014年10月22日

(4) IKEを常時接続するか否かの設定
< http://www.rtpro.yamaha.co.jp/RT/docs/ipsec/command.html#ipsec.ike.always-on > 2014年10月22日

(5) IPsec コマンドリファレンス
< http://www.rtpro.yamaha.co.jp/RT/docs/ipsec/command.html > 2014年10月22日

2014年10月14日火曜日

【YAMAHA RTX1200】 「NAT」について勝手なまとめ

2017年4月12日 いくつか説明追加

YAMAHA ルーターの「NAT」について勝手なまとめ

以下、NATなどの定義のみを扱っている。
定義したNATは、意図される動作のために、しかるべきインターフェイスに掛けられる必要がある。
しかしここではインターフェイスへの掛け方については扱っていない。

一口にNATと言っても、いくつか種類がある。
以下では、各種類ごとに主な特徴などをまとめている。

また、静的NATの特徴を使うことで、
NAT処理を行わない例外も設定できる。(一番最後)

ヤマハ ギガアクセスVPNルーター RTX1210

新品価格
¥74,413から
(2018/3/19 23:52時点)


■ 静的/動的 NAT ■

静的NAT処理と動的NAT処理は同じNATで併用可能。
ただし、処理されるパケットの条件が両者で一致した場合は、静的NAT処理が優先される。


(1) 先ず、NAT定義でNATタイプを、nat に設定する。

nat descriptor type <NATディスクリプタ番号> nat

 <NATディスクリプタ番号>・・・ このNAT定義を表すための任意の番号


(2) 静的NAT、動的NAT処理はそれぞれ下記のように記述が異なる。


(静的処理の設定)※1

外側アドレスと内側アドレスの1対1にバインドする(=静的処理)ための設定を次のように一行で記述する。

nat descriptor static <NATディスクリプタ番号> <テーブル番号> <外側アドレス=内側アドレス> 

  <NATディスクリプタ番号>・・・(1)で定義済み

  <テーブル番号>・・・ 複数のバインド(下記)を設定可能なため、それらを識別するための番号
  <外側アドレス=内側アドレス>・・・ 機構の内側と外側とで通過するパケットのアドレスが相互変換される


〇この相互変換は下記のようなイメージである。

(外側ネットワーク)←→外側アドレス | 静的 NAT | ←→(内側アドレス)

上の図を説明すると次のようになる。

内側(ソース)アドレスからやってきたパケット「←(内側アドレス)」は、
外側(ソース)アドレスに変換「←外側アドレス」され、外側ネットワークに送られる。

外側ネットワークから、外側(宛先)アドレスにやってきたパケット「→外側アドレス 」は、
内側(宛先)アドレスに変換「→(内側アドレス)」されて配送される。



(動的処理の設定)

”アウターアドレス”かつ”インナーアドレス”を設定する。

内側から外側へ向うパケットについてインナーアドレスにマッチすれば、
動的NAT処理が行われ、アウターアドレスに変換される。
逆方向についても自動的に変換される。
下記に挙げるマスカレードとは異なり、アドレスは1対1に相互変換される


○アウターアドレス(外側アドレス)の設定

nat descriptor address outer <NATディスクリプタ番号> <値>

 <値>・・・ アウターアドレス(アドレス、アドレス範囲)

アドレスの記述例
→ 172.30.0.1
→ 172.30.0.1,172.30.0.2,172.30.0.3

アドレス範囲の記述例
→ 172.30.0.1-172.30.0.3
→ 172.30.0.1-172.30.0.3,172.30.0.5-172.30.0.10


○インナーアドレス(内側アドレス)の設定

nat descriptor address inner <NATディスクリプタ番号> <値>

 <値>・・・ インナーアドレス(アドレス、アドレス範囲)

特に指定しなければ、全範囲を指定する auto が暗黙的に設定される



■ マスカレード ■

 内側から外側へ向うパケットについてインナーアドレスにマッチすれば、
動的NAT処理が行われ、アウターアドレスに変換される。
 逆方向についても自動的に変換される。
 下記に挙げるマスカレードとは異なり、アドレスは1対多で相互変換される
(「多」を区別するために、マスカレードでは外側アドレス+ポート番号を利用する。)

 マスカレードでも、上記※1で記したNAT静的処理の併用が可能である。
このことは、同じ NATディスクリプタ番号で、static設定を記述できるということだ。
処理されるパケットの条件が両者で一致した場合は、静的NAT処理が優先される。

 また、マスカレードでは、外側の特定のポートを、内側の特定のアドレス(とポート)に静的バインドさせられる。 静的マスカレードと言うが、ここでは扱わない。


マスカレードの定義の仕方

(1) 先ず、NAT定義でNATタイプを、masquerade に設定する。

nat descriptor type <NATディスクリプタ番号> masquerade

 NATディスクリプタ番号・・・ このマスカレード定義を表すための任意の番号


(2) ”アウターアドレス”かつ”インナーアドレス”を設定する。

○アウターアドレス

nat descriptor address outer <NATディスクリプタ番号> <値>

 値・・・ アウターアドレス(アドレス、アドレス範囲)
ただし、マスカレードが使えるのはそのうちの8個のみ。

アドレスの記述例
→ 172.30.0.1
→ 172.30.0.1,172.30.0.2,172.30.0.3

アドレス範囲の記述例
→ 172.30.0.1-172.30.0.3
→ 172.30.0.1-172.30.0.3,172.30.0.5-172.30.0.10

○インナーアドレス

nat descriptor address inner <NATディスクリプタ番号> <値>

 値・・・ インナーアドレス(アドレス、アドレス範囲)
全範囲を指定する場合は、auto を設定する。



■ NAT-MASQERADE ■

動的NAT処理と、動的マスカレード処理とを組み合わせることができる。
この処理では、動的NAT処理が優先的に行われるが、外側アドレスが残り1つになったとき、
このアドレスを用いて動的マスカレード処理に自動的に切り替わる
(マスカレード処理なので、残りアドレスが1個でも、1対多で相互変換が可能である。)

上記※1で記したNAT静的処理の併用も可能である。
同じ NATディスクリプタ番号で、static設定を記述できるということだ。
ただし、処理されるパケットの条件が両者で一致した場合は、静的NAT処理が優先される。

また、静的マスカレード処理のための記述も可能である。


(1) 先ず、NAT定義でNATタイプを、nat-masquerade に設定する。

nat descriptor type <NATディスクリプタ番号> nat-masquerade

 NATディスクリプタ番号・・・ このマスカレード定義を表すための任意の番号


(2) ”アウターアドレス”かつ”インナーアドレス”を設定する。

上記参照(NATあるいはマスカレードのinnerとouterの設定方法を参照)



[NAT処理を行わない例外を設定する方法]

 たとえば下のようにして定義する。
マスカレードのNATディスクリプタ番号が99であるとする。
例外とするパケットのソースアドレスが、192.168.10.5と、192.168.10.6だとすると、
これらのアドレスを内側アドレスとし、外側アドレスと一致させた静的NAT定義を作成する。
nat descriptor static 99 1 192.168.10.5=192.168.10.5 1
nat descriptor static 99 2 192.168.10.6=192.168.10.6 1
内側からやってきたソースアドレスが192.168.10.5のパケットは、
静的NAT定義の内側アドレスに一致して静的NATでソースアドレスが書き換えられるものの、
定義された外側アドレスに変換後も、同じ192.168.10.5がソースアドレスのパケットのままである。
 逆に、外側からやってきたパケット(あて先アドレスが192.168.10.5)は、
静的NAT定義の外側アドレスに一致して静的NATであて先アドレスが書き換えられるものの、
定義された内側アドレスに変換後も、同じ192.168.10.5があて先アドレスのパケットのままである。

 静的NAT定義はマスカレード処理より優先して処理されるので、
内側⇔外側のどちらの方向へ通過してもパケットのアドレスが変化させないこういう仕組みを定義することで、
マスカレード処理しない例外として設定できるわけだ。



(参考)
・ NATディスクリプタ機能 概要
< http://www.rtpro.yamaha.co.jp/RT/docs/nat-descriptor/nat-abstruct.html > 2014年10月14日


v6プラスで、IPv4接続

v6プラスで、IPv4接続


■ 想像図

[IPv4サイト]---(IPv4グローバルアドレス)---[センタ?]⇔(IPv6)⇔[HGW]---(IPv4プライベートアドレス)---[PC]

 PCがインターネット上のIPv4専用サイトへアクセスする際は、
PCとHGWの間ではIPv4プライベートアドレスで通信が行われるようだ。
(PCで、IPv4スタックをオフにしていると通信できなかった。)
 ということは、現状ではv6プラスを使ったとしても、
インターネット上のアクセスしたいサイトがIPv4のみを使っている限りは、
LAN内でもIPv4(プライベートアドレス)を使えるようにしている必要があるということだ。
 IPv6が使われるのは、おそらく、HGWとセンター間のIPoE通信だろうと思う。


 ところで、上記の通信において注意が必要なのは、
HGWとPCは同一IPv4サブネットに存在する必要があること。
PCがHGWとは異なるIPv4サブネットに存在する場合は、HGWで静的ルーティングの設定をするか、
PCとHGWとの間に設置されることになるルーターでNATの設定を行う必要がある。

 ちなみに、そのHGWの静的ルーティング設定は、HGW自身へのアクセスには無効である。
HGW自身へのアクセスと、HGWを超えてIPv4インターネットへのアクセスとを、
異なるサブネットにあるPCから行うには、後者のNATの設定を行う必要がある。

⇔[HGW]--(IPv4プライベートサブネットA)--[<NAT|ROUTER]==(IPv4プライベートサブネットB)==[PC]



■ 使用されるIPv4グローバルアドレス

 診断君によると、次のようなアドレスが使われていることがわかった。
(x印はIPアドレスの10進数表記)

REMOTE_HOST     Mxxxxxxxxxxxx.v4.enabler.ne.jp

 契約者固有のIPv6アドレスがこの特殊なIPv4アドレスとポートにバインドされる仕組みになっているようだ。
 したがって、TCPやUDP以外のポート番号を使わないプロトコルの通信は利用できないのだろうと思われる。



(参考)
 ・迷惑行為に対する対応
< http://www.jpne.co.jp/faq/abuse/ > 2014年10月14日

・IPアドレスからISP情報を検索する
< http://abuse.jpne.co.jp/ > 2014年10月14日

2014年6月13日金曜日

【Linux CentOS 6.5 64bit】Libreswan(netkey利用)をYUMでインストールしシステム基本設定を行った【Libreswan 3.7】

ファイアウォールの導入などセキュリティーについては考慮していない。
そのため、プライベートネットワークを利用して動作テストを行っている。


■ カーネルのバージョンを表示させた

[root@vm ~]# uname -a
Linux vm.localdomain 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux


■LibreswanはEPELリポジトリにあるので、EPELリポジトリが利用できるようにした

[root@vm ~]# yum localinstall http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
Setting up Local Package Process

Examining /var/tmp/yum-root-W9Hlf2/epel-release-6-8.noarch.rpm: epel-release-6-8.noarch
Marking /var/tmp/yum-root-W9Hlf2/epel-release-6-8.noarch.rpm to be installed

Installed:
  epel-release.noarch 0:6-8

Complete!


■Libreswanの情報を表示させた

[root@vm ~]# yum info libreswan
Available Packages
Name        : libreswan
Arch        : x86_64
Version     : 3.7
Release     : 1.el6
Size        : 1.1 M
Repo        : epel
Summary     : IPsec implementation with IKEv1 and IKEv2 keying protocols
URL         : https://www.libreswan.org/
License     : GPLv2
Description : Libreswan is a free implementation of IPsec & IKE for Linux.  IPsec is
            : the Internet Protocol Security and uses strong cryptography to provide
            : both authentication and encryption services.  These services allow you
            : to build secure tunnels through untrusted networks.  Everything passing
            : through the untrusted net is encrypted by the ipsec gateway machine and
            : decrypted by the gateway at the other end of the tunnel.  The resulting
            : tunnel is a virtual private network or VPN.
            :
            : This package contains the daemons and userland tools for setting up
            : Libreswan. To build KLIPS, see the kmod-libreswan.spec file.
            :
            : Libreswan also supports IKEv2 (RFC4309) and Secure Labeling
            :
            : Libreswan is based on Openswan-2.6.38 which in turn is based on FreeS/WAN-2.04



■Libreswanをインストールした

[root@vm ~]# yum install libreswan
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package libreswan.x86_64 0:3.7-1.el6 will be installed
--> Processing Dependency: libunbound.so.2()(64bit) for package: libreswan-3.7-1.el6.x86_64
--> Running transaction check
---> Package unbound-libs.x86_64 0:1.4.21-1.el6 will be installed
--> Processing Dependency: libldns.so.1()(64bit) for package: unbound-libs-1.4.21-1.el6.x86_64
--> Running transaction check
---> Package ldns.x86_64 0:1.6.16-2.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================================================================================
 Package                                    Arch                                 Version                                       Repository                          Size
========================================================================================================================================================================
Installing:
 libreswan                                  x86_64                               3.7-1.el6                                     epel                               1.1 M
Installing for dependencies:
 ldns                                       x86_64                               1.6.16-2.el6                                  epel                               439 k
 unbound-libs                               x86_64                               1.4.21-1.el6                                  epel                               299 k

Transaction Summary
========================================================================================================================================================================
Install       3 Package(s)

Total download size: 1.9 M
Installed size: 5.2 M
Is this ok [y/N]: y
Downloading Packages:
(1/3): ldns-1.6.16-2.el6.x86_64.rpm                                                                                                              | 439 kB     00:00
(2/3): libreswan-3.7-1.el6.x86_64.rpm                                                                                                            | 1.1 MB     00:00
(3/3): unbound-libs-1.4.21-1.el6.x86_64.rpm                                                                                                      | 299 kB     00:00
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                   2.8 MB/s | 1.9 MB     00:00

Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : ldns-1.6.16-2.el6.x86_64                                                                                                                             1/3
  Installing : unbound-libs-1.4.21-1.el6.x86_64                                                                                                                     2/3
Non-fatal POSTIN scriptlet failure in rpm package unbound-libs-1.4.21-1.el6.x86_64
warning: %post(unbound-libs-1.4.21-1.el6.x86_64) scriptlet failed, exit status 1

  Installing : libreswan-3.7-1.el6.x86_64                                                                                                                           3/3
  Verifying  : unbound-libs-1.4.21-1.el6.x86_64                                                                                                                     1/3
  Verifying  : ldns-1.6.16-2.el6.x86_64                                                                                                                             2/3
  Verifying  : libreswan-3.7-1.el6.x86_64                                                                                                                           3/3

Installed:
  libreswan.x86_64 0:3.7-1.el6

Dependency Installed:
  ldns.x86_64 0:1.6.16-2.el6                                                     unbound-libs.x86_64 0:1.4.21-1.el6

Complete!


■Libreswanのサービス(ipsec)を起動した

[root@vm ~]# service ipsec start
Starting pluto IKE daemon for IPsec:                       [  OK  ]


■LibreswanによるIPsecトンネル構築のために満たすべき条件を確認した

下記コマンドの結果表示される対策(アンダーライン部分)を後で行う。

<下記結果から抜粋した>
1、Disable /proc/sys/net/ipv4/conf/*/send_redirects
2、Disable /proc/sys/net/ipv4/conf/*/accept_redirects
3、rp_filter is not fully aware of IPsec and should be disabled


[root@vm ~]# ipsec verify
Verifying installed system and configuration files

Version check and ipsec on-path                         [OK]
Libreswan 3.7 (netkey) on 2.6.32-431.el6.x86_64
Checking for IPsec support in kernel                    [OK]
 NETKEY: Testing XFRM related proc values
         ICMP default/send_redirects                    [NOT DISABLED]

  Disable /proc/sys/net/ipv4/conf/*/send_redirects or NETKEY will act on or cause sending of bogus ICMP redirects!

         ICMP default/accept_redirects                  [NOT DISABLED]

  Disable /proc/sys/net/ipv4/conf/*/accept_redirects or NETKEY will act on or cause sending of bogus ICMP redirects!

         XFRM larval drop                               [OK]
Pluto ipsec.conf syntax                                 [OK]
Hardware random device                                  [N/A]
Checking rp_filter                                      [ENABLED]
 /proc/sys/net/ipv4/conf/default/rp_filter              [ENABLED]
 /proc/sys/net/ipv4/conf/lo/rp_filter                   [ENABLED]
 /proc/sys/net/ipv4/conf/eth0/rp_filter                 [ENABLED]
  rp_filter is not fully aware of IPsec and should be disabled
Checking that pluto is running                          [OK]
 Pluto listening for IKE on udp 500                     [OK]
 Pluto listening for IKE/NAT-T on udp 4500              [OK]
 Pluto ipsec.secret syntax                              [OK]
Checking NAT and MASQUERADEing                          [TEST INCOMPLETE]
Checking 'ip' command                                   [OK]
Checking 'iptables' command                             [OK]
Checking 'prelink' command does not interfere with FIPS [PRESENT]
Checking for obsolete ipsec.conf options                [OK]
Opportunistic Encryption                                [DISABLED]

ipsec verify: encountered 9 errors - see 'man ipsec_verify' for help


■念のため、対策すべき各項目の値を確認した

結果から、send_redirects、accept_redirects、rp_filter が有効(=1)になっていることがわかった。

[root@vm ~]# for i in  /proc/sys/net/ipv4/conf/*/send_redirects ; do ls $i ; cat $i ; done
/proc/sys/net/ipv4/conf/all/send_redirects
1
/proc/sys/net/ipv4/conf/default/send_redirects
1
/proc/sys/net/ipv4/conf/eth0/send_redirects
1
/proc/sys/net/ipv4/conf/lo/send_redirects
1
[root@vm ~]# for i in  /proc/sys/net/ipv4/conf/*/accept_redirects ; do ls $i ; cat $i ; done
/proc/sys/net/ipv4/conf/all/accept_redirects
1
/proc/sys/net/ipv4/conf/default/accept_redirects
1
/proc/sys/net/ipv4/conf/eth0/accept_redirects
1
/proc/sys/net/ipv4/conf/lo/accept_redirects
1
[root@vm ~]# for i in  /proc/sys/net/ipv4/conf/*/rp_filter ; do ls $i ; cat $i ; done
/proc/sys/net/ipv4/conf/all/rp_filter
0
/proc/sys/net/ipv4/conf/default/rp_filter
1
/proc/sys/net/ipv4/conf/eth0/rp_filter
1
/proc/sys/net/ipv4/conf/lo/rp_filter
1


■対策すべき各項目の値を変更するために設定を行った

既存の設定に、太字部分を追加し、保存した。

[root@vm ~]# vi /etc/sysctl.conf
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
# sysctl.conf(5) for more details.

# Setting for IPsec(LibreSWAN)
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.eth0.send_redirects = 0
net.ipv4.conf.lo.send_redirects = 0

net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.eth0.accept_redirects = 0
net.ipv4.conf.lo.accept_redirects = 0

net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.eth0.rp_filter = 0
net.ipv4.conf.lo.rp_filter = 0


# Controls IP packet forwarding(複数NICがあってFORWARDを有効=1にするための設定項目)
net.ipv4.ip_forward = 0

# Controls source route verification
# Overriden by Setting for IPsec(LibreSWAN)
#net.ipv4.conf.default.rp_filter = 1
(以下省略)


■設定を有効化した

[root@vm ~]# sysctl -p
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.eth0.send_redirects = 0
net.ipv4.conf.lo.send_redirects = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.eth0.accept_redirects = 0
net.ipv4.conf.lo.accept_redirects = 0
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.eth0.rp_filter = 0
net.ipv4.conf.lo.rp_filter = 0
net.ipv4.ip_forward = 0
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296


■LibreswanによるIPsecトンネル構築のために満たすべき条件を再び確認した

「警告」が解消されていることが確認された。

[root@vm ~]# ipsec verify
Verifying installed system and configuration files

Version check and ipsec on-path                         [OK]
Libreswan 3.7 (netkey) on 2.6.32-431.el6.x86_64
Checking for IPsec support in kernel                    [OK]
 NETKEY: Testing XFRM related proc values
         ICMP default/send_redirects                    [OK]
         ICMP default/accept_redirects                  [OK]
         XFRM larval drop                               [OK]
Pluto ipsec.conf syntax                                 [OK]
Hardware random device                                  [N/A]
Checking rp_filter                                      [OK]
Checking that pluto is running                          [OK]
 Pluto listening for IKE on udp 500                     [OK]
 Pluto listening for IKE/NAT-T on udp 4500              [OK]
 Pluto ipsec.secret syntax                              [OK]
Checking NAT and MASQUERADEing                          [TEST INCOMPLETE]
Checking 'ip' command                                   [OK]
Checking 'iptables' command                             [OK]
Checking 'prelink' command does not interfere with FIPS [PRESENT]
Checking for obsolete ipsec.conf options                [OK]
Opportunistic Encryption                                [DISABLED]



以上で、LibreSWANのインストールと、IPsecトンネル構築のためのシステム設定が完了した。

さらに、IPsecトンネルのための個別設定を行う必要がある。これについては、OpenSWANの記事から設定ファイルの作成部分を参照。
http://akira-arets.blogspot.jp/2013/10/centos-64-minimal-linux-openswanwith.html

LibreswanのIPsecトンネル設定ファイルは、リンク記事中のOpenswanの設定を流用できた。



(参考)
【Linux CentOS6.4 64bit版 minimal】 OpenSWAN( with NETKEY )同士で、IPsecトンネルの構築を行った【openswan.x86_64 0:2.6.32-21.el6_4】
< http://akira-arets.blogspot.jp/2013/10/centos-64-minimal-linux-openswanwith.html > 2014年6月13日

2014年5月22日木曜日

Asterisk11でsnomのIP電話機から発信できないSRTP問題が解決した

Asterisk 11 の子機として、snom社のデフォルトに設定されたIP電話機を使ったとき、エラーで発信できない問題が発生したが対処できた。

そのとき、次のようなエラーがAsterisk 11のコンソールに現れて発信できなかった。
"We are requesting SRTP for audio, but they responded without it!"

snom社のIP電話機は、snom360、snom370を使っていた。
Asterisk 1.8(SRTPモジュールをインストールせず) を使っていたときには、発信ができない問題はなかった。
Asterisk 11 に変更すると、SRTP関係のエラーで発信ができなくなってしまった。

Asterisk 11は、次のリンク先の方法で行っている。
http://akira-arets.blogspot.jp/2014/05/centos65asterisk11yum.html


調べたところ、どうやら、snomのIP電話機は現時点では、このAsterisk 11に標準設定では対応していないらしいことがわかった
対応させるには、snom電話機のGUIで、設定を一箇所変更する必要がある。



■設定方法

対処方法は二つあるので、いずれかを用いる。
いずれも、snom電話機のGUIから設定を行う。
変更後には、snom電話機を子機としてAsterisk 11で、ただちに発信できるようになった。


○方法1

メディアパケット(RTP)を暗号化して運用したい場合にはこの方法を採用する。

ただし、Asterisk 11では発信できるようになっても、逆に旧バージョンのAsterisk 1.8(SRTPなし) では発信できなくなった。
Asterisk 11での運用に完全に切り替える場合にはこの方法を採用すればよいと思う。


Setup項目から、SIP接続を管理している各Identityを開き、RTPタブにある次の二項目を変更する。
・「RTP/SAVP:」の値を、「optional」(もしくは、「mandatory」)に設定する。
・「RTP Encryption:」の値を、「on」に設定する。
変更後、saveボタンを押して保存しておく。



○方法2

メディアパケット(RTP)を暗号化せずに運用する場合にはこの方法を採用する。

Asterisk 1.8(SRTPなし) でも発信できた。


Setup項目から、SIP接続を管理している各Identityを開き、RTPタブにある次の項目を変更する。
・「RTP Encryption:」の値を、「off」に設定する。
変更後、saveボタンを押して保存しておく。



■設定したオプション値についての説明

「RTP encryption」 が、"on"になっている場合、「RTP/SAVP」の設定が次のように考慮される。

"mandatory"に設定すると、snom電話機はAsteriskとのセッション構築において、そのSDPで、RTP/SAVPを含む「m= 」ラインのみを取り扱うようになる。

"optional"に設定すると、snom電話機はAsteriskとのセッション構築において、そのSDPで、複数の「m= 」ラインを取り扱うようになる。
これによって、RTP/SAVP(優先) と、RTP/AVPが共に取り扱えるようになる。


現時点で、snom電話機でデフォルトでは、「RTP/SAVP」の設定は、"off"になっている。
このような設定になっているのは、snom社のSIPプロキシが、RTP/SAVP や複数の「m= 」を扱うことができないためらしい。



(参考)

・[Resolved] SRTP not compliant with Asterisk 1.8 and 10 - RFC4568
< https://forum.snom.com/index.php?showtopic=10381 > 2014年05月21日

・SRTP not working with some devices (Eg snom320) - Message "We are requesting SRTP for audio, but they responded without it!"
< https://issues.asterisk.org/jira/browse/ASTERISK-20234 > 2014年05月21日

・Settings/user savp
< http://wiki.snom.com/wiki/index.php/Settings/user_savp > 2014年05月21日

2014年5月21日水曜日

【Linux CentOS 6.5 64bit minimal】Asterisk11をYUMを使って専用リポジトリからダウンロードしインストールする

Asterisk公式リポジトリは廃止された。(2017年5月4日時点)
リポジトリのパッケージは最新のものに更新されていない。しかし、それでも利用することは可能だった。

下に挙げるページでは、CentOS 6.9 64bit minimalに、Asterisk 11.17.1 をyumで導入する手順を記している。

http://akira-arets.blogspot.jp/2017/04/centos68-asterisk-from-repo.html



※ところで、以下は、まだリポジトリが公式だったときに、Asteriskを導入した記録である。

Asteriskは、YUMを使ってCentOS 6などにインストールすることができる。
YUM用いることで、インストールやアップデートがとても容易になる。
Asterisk専用のリポジトリを追加したCentOS 6.5で、YUMコマンドを実行するだけだ。

対応するAsteriskのバージョンは、Active Repositories に書いてある通り。


以下の手順は、CentOS 6.5 64bit minimal に、Long Term SupportのAsterisk 11をインストールするものだ。

Asterisk本体(依存するパッケージを含む)、設定ファイル、保留音をインストールしている。

インストールの前には、システムのアップデートを行った。



■CentOS 6.5 64bit minimal のバージョン情報を表示させた

[root@asterisk ~]# uname -a
Linux asterisk 2.6.32-431.11.2.el6.x86_64 #1 SMP Tue Mar 25 19:59:55 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux




■CentOS 6.5 64bit minimal に、Asterisk専用YUMリポジトリを追加した

[root@asterisk ~]# yum localinstall http://packages.asterisk.org/centos/6/current/i386/RPMS/asterisknow-version-3.0.1-2_centos6.noarch.rpm
Installed:
  asterisknow-version.noarch 0:3.0.1-2_centos6

Dependency Installed:
  dnsmasq.x86_64 0:2.48-13.el6

Complete!



■Asterisk11本体と設定ファイルをインストールした

すでに自分で、epelリポジトリの設定を行っていたため、
一部のパッケージでepelに存在する新しいバージョンのものが取得されてしまった。
(エラーが発生する場合は、epelリポジトリを一時的に無効にしておく必要があった。)

[root@asterisk ~]# yum install asterisk asterisk-configs --enablerepo=asterisk-11
 * base: ftp.iij.ad.jp
 * epel: ftp.riken.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
Setting up Install Process
Resolving Dependencies

Dependencies Resolved

========================================================================================================================================================================
 Package                                          Arch                  Version                                                   Repository                       Size
========================================================================================================================================================================
Installing:
 asterisk                                         x86_64                11.8.1-1_centos6                                          asterisk-11                     3.6 k
 asterisk-configs                                 x86_64                11.8.1-1_centos6                                          asterisk-11                     189 k
Installing for dependencies:
 asterisk-core                                    x86_64                11.8.1-1_centos6                                          asterisk-11                     8.2 M
 asterisk-dahdi                                   x86_64                11.8.1-1_centos6                                          asterisk-11                     884 k
 asterisk-doc                                     x86_64                11.8.1-1_centos6                                          asterisk-11                      13 k
 asterisk-sounds-core-en                          noarch                1.4.25-1.el6                                              epel                             19 k
 asterisk-sounds-core-en-gsm                      noarch                1.4.25-1.el6                                              epel                            2.1 M
 asterisk-voicemail                               x86_64                11.8.1-1_centos6                                          asterisk-11                     269 k
 dahdi-firmware                                   noarch                2.0.6-1_centos6                                           digium-current                  2.4 k
 dahdi-firmware-hx8                               noarch                2.06-1_centos6                                            digium-current                   28 k
 dahdi-firmware-oct6114-032                       noarch                1.05.01-1_centos6                                         digium-current                  156 k
 dahdi-firmware-oct6114-064                       noarch                1.05.01-1_centos6                                         digium-current                  155 k
 dahdi-firmware-oct6114-128                       noarch                1.05.01-1_centos6                                         digium-current                  155 k
 dahdi-firmware-oct6114-256                       noarch                1.05.01-1_centos6                                         digium-current                  161 k
 dahdi-firmware-tc400m                            noarch                MR6.12-1_centos6                                          digium-current                  1.7 M
 dahdi-firmware-te133                             noarch                6f0017-1_centos6                                          digium-current                  220 k
 dahdi-firmware-te134                             noarch                6f0017-1_centos6                                          digium-current                  175 k
 dahdi-firmware-te820                             noarch                1.76-1_centos6                                            digium-current                   53 k
 dahdi-firmware-vpmoct032                         noarch                1.12.0-1_centos6                                          digium-current                  436 k
 dahdi-linux                                      x86_64                2.9.0-1_centos6                                           asterisk-current                2.5 k
 gnutls                                           x86_64                2.8.5-13.el6_5                                            updates                         346 k
 gsm                                              x86_64                1.0.13-4.el6                                              base                             27 k
 iksemel                                          x86_64                1.4-2.el6                                                 epel                             48 k
 kmod-dahdi-linux                                 x86_64                2.9.0-1_centos6.2.6.32_279.14.1.el6.x86_64                asterisk-current                4.2 M
 kmod-dahdi-linux-fwload-vpmadt032                x86_64                2.9.0-1_centos6.2.6.32_279.14.1.el6.x86_64                digium-current                  129 k
 libopenr2                                        x86_64                1.2.0-1_centos6                                           asterisk-current                101 k
 libpri                                           x86_64                1.4.14-1_centos6                                          asterisk-current                440 k
 libsrtp                                          x86_64                1.4.4-4.20101004cvs.el6                                   asterisk-current                273 k
 libss7                                           x86_64                1.0.2-1.el6                                               epel                             53 k
 libtonezone                                      x86_64                2.9.0.1-1_centos6                                         asterisk-current                 18 k
 speex                                            x86_64                1.2-0.12.rc1.1.el6                                        base                             96 k

Transaction Summary
========================================================================================================================================================================
Install      31 Package(s)

Total download size: 21 M
Installed size: 102 M

Installed:
  asterisk.x86_64 0:11.8.1-1_centos6                                             asterisk-configs.x86_64 0:11.8.1-1_centos6


Dependency Installed:
  asterisk-core.x86_64 0:11.8.1-1_centos6                                                     asterisk-dahdi.x86_64 0:11.8.1-1_centos6
  asterisk-doc.x86_64 0:11.8.1-1_centos6                                                      asterisk-sounds-core-en.noarch 0:1.4.25-1.el6
  asterisk-sounds-core-en-gsm.noarch 0:1.4.25-1.el6                                           asterisk-voicemail.x86_64 0:11.8.1-1_centos6
  dahdi-firmware.noarch 0:2.0.6-1_centos6                                                     dahdi-firmware-hx8.noarch 0:2.06-1_centos6
  dahdi-firmware-oct6114-032.noarch 0:1.05.01-1_centos6                                       dahdi-firmware-oct6114-064.noarch 0:1.05.01-1_centos6
  dahdi-firmware-oct6114-128.noarch 0:1.05.01-1_centos6                                       dahdi-firmware-oct6114-256.noarch 0:1.05.01-1_centos6
  dahdi-firmware-tc400m.noarch 0:MR6.12-1_centos6                                             dahdi-firmware-te133.noarch 0:6f0017-1_centos6
  dahdi-firmware-te134.noarch 0:6f0017-1_centos6                                              dahdi-firmware-te820.noarch 0:1.76-1_centos6
  dahdi-firmware-vpmoct032.noarch 0:1.12.0-1_centos6                                          dahdi-linux.x86_64 0:2.9.0-1_centos6
  gnutls.x86_64 0:2.8.5-13.el6_5                                                              gsm.x86_64 0:1.0.13-4.el6
  iksemel.x86_64 0:1.4-2.el6                                                                  kmod-dahdi-linux.x86_64 0:2.9.0-1_centos6.2.6.32_279.14.1.el6.x86_64
  kmod-dahdi-linux-fwload-vpmadt032.x86_64 0:2.9.0-1_centos6.2.6.32_279.14.1.el6.x86_64       libopenr2.x86_64 0:1.2.0-1_centos6
  libpri.x86_64 0:1.4.14-1_centos6                                                            libsrtp.x86_64 0:1.4.4-4.20101004cvs.el6
  libss7.x86_64 0:1.0.2-1.el6                                                                 libtonezone.x86_64 0:2.9.0.1-1_centos6
  speex.x86_64 0:1.2-0.12.rc1.1.el6

Complete!

■soundsディレクトリへのリンクを作成した

Asteriskが、playbackアプリケーションなどによって、サウンドファイルを必要とするとき、
デフォルトで、/var/lib/asterisk/sounds ディレクトリ内のファイルを探索する。
しかし、以上の方法でインストールした場合には、下記のように別のディレクトリに存在している。
そのため、シンボリックリンクを張っておく必要があった。
(そうしなければ、file.c:701 ast_openstream_full: File beep does not exist in any format のようなエラーが表示された。)

# ln -s /usr/share/asterisk/sounds /var/lib/asterisk/sounds



■Asteriskが使用する保留音を取得した

保留音はAsterisk本体といっしょにダウンロードされなかった。
保留音が存在しなければ、次のエラーが発生した。
Music class default requested but no musiconhold loaded.

保留音を含むパッケージの情報を表示させた。
(ほかの種類のコーデックもあったが、ulawのものを選択した。)

[root@asterisk ~]# yum info asterisk-sounds-moh-opsound-ulaw --enablerepo=asterisk-11
Name        : asterisk-sounds-moh-opsound-ulaw
Arch        : noarch
Version     : 0.0
Release     : 5_centos6
Size        : 6.5 M
Repo        : asterisk-current
Summary     : Asterisk Music on Hold - opsound - ulaw.
URL         : http://www.asterisk.org
License     : GPL
Description : This package contains Asterisk Music on Hold - opsound - ulaw.


[root@asterisk ~]# yum install asterisk-sounds-moh-opsound-ulaw --enablerepo=asterisk-11
Installed:
  asterisk-sounds-moh-opsound-ulaw.noarch 0:0.0-5_centos6

Complete!


■動作テスト

Asterisk 11の設定ファイルも、/etc/asteriskに生成されているので、変更する前には、
/etc/asterisk.orgにコピーをとってバックアップしておくと良い。

私は、以前はAsterisk 1.8で運用していた。この設定ファイルのうち、
sip.conf、extensions.conf などで、Asterisk 11の設定ファイル(/etc/asterisk内にあるもの)を一部上書きした。
(これで以前使っていた機能の全てが正しく動作するかはわからないが、とりあえず動作した。)


Asterisk 11の設定ファイルの準備したのち、サービスを起動した。
[root@asterisk ~]# service asterisk start

システムブート時に自動起動させたい場合は、次のように設定しておく。
[root@asterisk ~]# chkconfig asterisk on

Asteriskのコンソールを起動するには、次のようにパラメーター付でコマンドを入れる。
(vvvvvvvのように入れないと、詳細情報が上がってこなくなった。)
[root@asterisk ~]# asterisk -rvvvvvvv

このコンソールで動作状態をチェックしてみて、変なエラーで警告されたら、
設定ファイルなどのデバッグなどが必要である。


ところで、Asterisk 1.8からAsterisk 11に切り替えてすぐに、
Snom製の電話機の初期設定では、Asterisk 11でうまく発信できない問題に遭遇した。
これは、電話機の設定をGUIで修正するだけで対応できた。
http://akira-arets.blogspot.jp/2014/05/asterisk11snomipsrtp.html


(参考)
・Asterisk Packages
< https://wiki.asterisk.org/wiki/display/AST/Asterisk+Packages > 2014年4月24日

2014年4月29日火曜日

To install POPFile and its required Perl modules in minimal CentOS 6.5.


How to install POPFile in minimal CentOS 6.5.

Running POPFile uses some additional software.
So you need to install it before install POPFile.
The required software are Perl and certain Perl modules.

1. Perl
2. certain Perl modules


Following is how to install Perl and certain Perl modules.


(1) Check out Required Perl modules.

The current list of modules that you may need to install includes the following: says;
DBI
DBD::SQLite
Digest::base
Digest::MD5
HTML::Tagset
MIME::Base64
MIME::QuotedPrint
Date::Parse (all platforms except Windows)
HTML::Template
Encode (if you want Japanese/Korean language support)
IO::Socket::Socks (if you want to use a SOCKS proxy)
IO::Socket::SSL (if you want to use SSL)
Net::SSLeay (if you want to use SSL)
SOAP::Lite (if you want to use XMLRPC)



(2) Install Perl itself first.

Perl has some its modules being required of POPFile.

[root@localhost ~]# yum install perl
Installed:
  perl.x86_64 4:5.10.1-136.el6

Dependency Installed:
  perl-Module-Pluggable.x86_64 1:3.90-136.el6    perl-Pod-Escapes.x86_64 1:1.04-136.el6    perl-Pod-Simple.x86_64 1:3.13-136.el6    perl-libs.x86_64 4:5.10.1-136.el6
  perl-version.x86_64 3:0.77-136.el6



(3) Check whether or not Required Perl modules are in your CentOS 6.5 sytem.

The following commands can display the versions of installed modules.
If not installed the module in your system, the version is not displayed.


These results are about My PC CentOS 6.5 64bit edition with Perl installed.

<Installed>

Digest::base
[root@localhost ~]# perl -M-Digest::base -e 'print $Digest::base::VERSION'
1.16

Digest::MD5
[root@localhost ~]# perl -M-Digest::MD5 -e 'print $Digest::MD5::VERSION'
2.39

MIME::Base64
[root@localhost ~]# perl -M-MIME::Base64 -e 'print $MIME::Base64::VERSION'
3.08

MIME::QuotedPrint
[root@localhost ~]# perl -M-MIME::QuotedPrint -e 'print $MIME::QuotedPrint::VERSION'
3.08

Encode (if you want Japanese/Korean language support)
[root@localhost ~]# perl -M-Encode -e 'print $Encode::VERSION'
2.35


<Not Installed>
(a) DBI
(b) DBD::SQLite
(c) HTML::Tagset

(d) Date::Parse (all platforms except Windows)
(e) HTML::Template

(f) IO::Socket::Socks (if you want to use a SOCKS proxy)
(g) Net::SSLeay (if you want to use SSL)
(h) IO::Socket::SSL (if you want to use SSL)

(i) SOAP::Lite (if you want to use XMLRPC)

Perl modules in this list "NOT INSTALLED", need to be added in your system.



(4) Install POPFile Required Perl modules using YUM.


(a) DBI
[root@localhost ~]# yum install perl-DBI
Installed:
  perl-DBI.x86_64 0:1.609-4.el6

Complete!
(b) DBD::SQLite
[root@localhost ~]# yum install perl-DBD-SQLite
Installed:
  perl-DBD-SQLite.x86_64 0:1.27-3.el6

Complete!
(c) HTML::Tagset
[root@localhost ~]# yum install perl-HTML-Tagset
Installed:
  perl-HTML-Tagset.noarch 0:3.20-4.el6

Complete!
(d) Date::Parse (all platforms except Windows)
[root@localhost ~]# yum install perl-DateTime-Format-DateParse
Installed:
  perl-DateTime-Format-DateParse.noarch 0:0.04-1.1.el6

Dependency Installed:
  perl-Class-Singleton.noarch 0:1.4-6.el6         perl-DateTime.x86_64 1:0.5300-2.el6
  perl-List-MoreUtils.x86_64 0:0.22-10.el6        perl-Params-Validate.x86_64 0:0.92-3.el6
  perl-TimeDate.noarch 1:1.16-11.1.el6

Complete!
[root@localhost ~]# yum deplist perl-DateTime-Format-DateParse | grep Date::Parse
  dependency: perl(Date::Parse)
  dependency: perl(Date::Parse) >= 2.27
(e) HTML::Template

This module is in EPEL repository.

[root@localhost ~]# yum localinstall http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
[root@localhost ~]# yum install perl-HTML-Template
Installed:
  perl-HTML-Template.noarch 0:2.9-10.el6

Complete!
(f) IO::Socket::Socks (if you want to use a SOCKS proxy)

I can not find this module in yum repository.
This is for SOCKS proxy. I do not need this module.

(g) Net::SSLeay (if you want to use SSL)
[root@localhost ~]# yum install perl-Net-SSLeay
Installed:
  perl-Net-SSLeay.x86_64 0:1.35-9.el6

Complete!
(h) IO::Socket::SSL (if you want to use SSL)
[root@localhost ~]# yum install perl-IO-Socket-SSL
Installed:
  perl-IO-Socket-SSL.noarch 0:1.31-2.el6

Dependency Installed:
  perl-Net-LibIDN.x86_64 0:0.12-3.el6

Complete!
(i) SOAP::Lite (if you want to use XMLRPC)
[root@localhost ~]# yum install perl-SOAP-Lite
Installed:
  perl-SOAP-Lite.noarch 0:0.710.10-3.el6

Dependency Installed:
  perl-Email-Date-Format.noarch 0:1.002-5.el6         perl-MIME-Lite.noarch 0:3.027-2.el6
  perl-MIME-Types.noarch 0:1.28-2.el6                 perl-MailTools.noarch 0:2.04-4.el6
  perl-URI.noarch 0:1.40-2.el6

Complete!

Done ! POPFile required Perl and its modules are installed.




Following is how to install POPFile itself.


(5) Download POPFile.

I selected the Newest version for Cross-platform.

[root@localhost popfile-v1.1.3]# wget http://getpopfile.org/downloads/popfile-1.1.3.zip
[root@localhost popfile-v1.1.3]# ls
popfile-1.1.3.zip


(6) Install POPFile.

To install POPFile is only to extract the downloaded ZIP file.

First, I installed unzip to extract a ZIP file.

[root@localhost software]# yum install unzip
Installed:
  unzip.x86_64 0:6.0-1.el6

I extracted the downloaded POPFile ZIP file.

[root@localhost popfile-v1.1.3]# unzip popfile-1.1.3.zip
[root@localhost popfile-v1.1.3]# ls
Classifier  bayes.pl     license   popfile-1.1.3.zip  v1.1.3.change
POPFile     black.gif    otto.gif  popfile.pck        v1.1.3.change.nihongo
Proxy       favicon.ico  otto.png  popfile.pl
Services    insert.pl    pipe.pl   skins
UI          languages    pix.gif   stopwords




(7) Start POPFile once to get a configuration file.

I stated POPFile, and then stop it using key CTRL and C simultaneously.
POPFile made a configuration file.

[root@localhost popfile-v1.1.3]# perl ./popfile.pl
POPFile Engine loading

    Loading...
         {core: config history mq logger}
         {classifier: wordmangle bayes}
         {interface: xmlrpc html}
         {proxy: smtp pop3 nntp}
         {services: imap}

POPFile Engine v1.1.3 starting

    Initializing...
         {core: config history logger mq}
         {classifier: bayes wordmangle}
         {interface: html xmlrpc}
         {proxy: nntp pop3 smtp}
         {services: imap}

    Starting...
         {core: config history logger mq}
         {classifier: bayes wordmangle}
         {interface: html}
         {proxy: pop3}
         {services:}

POPFile Engine v1.1.3 running

Here Push CTRL and C simultaneously.
^C

POPFile Engine v1.1.3 stopping

    Stopping...
         {classifier: bayes wordmangle}
         {core: config history logger mq}
         {interface: html}
         {proxy: pop3}
         {services:}

POPFile Engine v1.1.3 terminated

The file "popfile.cfg" is POPFile configuration file.

[root@localhost popfile-v1.1.3]# ls
Classifier  favicon.ico  pipe.pl            popfile1386720000.log
POPFile     insert.pl    pix.gif            skins
Proxy       languages    popfile-1.1.3.zip  stopwords
Services    license      popfile.cfg        v1.1.3.change
UI          messages     popfile.db         v1.1.3.change.nihongo
bayes.pl    otto.gif     popfile.pck
black.gif   otto.png     popfile.pl

投げ銭

★当サイトへの投げ銭(PayPal)★

Ad

Ad