カテゴリー別アーカイブ: ネットワーク

[Linux CentOS]CentOS6.4でネットワーク周りのTips


まずは・・・

CentOS5系列とはちょっと違う点がいくつかあったので備忘録のために、ネットワーク周りで気になったことをまとめてみます。
意外と違う部分があったのでちょいハマりした。。。

DNS resolveの設定について(参照キャッシュDNSサーバの設定)

Redhat系のLinuxのCentOSなどはこれまで「/etc/resolve.conf」に「nameserver」を定義することで設定できていた。6.4では定義することで有効になるけど、OSを再起動するなどネットワークが再起動するときにresolve.confに書いた内容が消えてしまうという現象が発生した。

【解決方法】
ネットワークインターフェース(ifcfg-eth0など)の設定ファイルににDNSキャッシュサーバの定義を追加すれば良い

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
  [以下を追記]
  DNS1=**.**.**.**
  DNS2=**.**.**.**

上記の定義を入れることで、「/etc/resolve.conf」にも「nameserver」の項目が追加され上記IPアドレスが設定される


NetworkManagerについて

CentOS6系列ではデフォルトでNetworkManagerというプロセスが動いているようです。(インストール時にX-windowパッケージに付随してインストールされるようです)
このプロセスはifcfg-eth0の定義を変更する場合など変更を検知して、動的に設定反映するデーモンです。
またKVMでゲストOSをネットワークブリッジで利用する場合、このデーモンが動いていると制御できないようです。
http://www.02.246.ne.jp/~torutk/linux/centos6/installmemo.html

そういった理由からNetworkManagerは停止しました!(自動起動も停止)

# /etc/init.d/NetworkManager stop
# chkconfig --level 2345 NetworkManager off

番外編(ネットワーク周りのコマンド)

  • ifup
    インターフェースを個別に有効にするコマンド。以下のようにするとeth1のインターフェースが有効になる
# ifup ifcfg-eth1
  • ifconfig
    ネットワークインターフェースごとのIPなどの情報を確認するコマンド

  • ping
    ネットワークの疎通を確認するコマンド

 ping **.**.**.**
  • arp
    -a オプションと同時に使用して、IPアドレスに対応するMacアドレスを確認するために利用

サーバの設定をしていてサーバがDHCPなどに意図せず変更されてしまった場合にリモートアクセスするためにはIPを調査して特定しなければならない。

ネットワーク上でどのIPが有効かを調べるためのスクリプトを以下のようなPerlで書いた。
単純にpingをネットワークのIP全てに対して一度叩くスクリプトです。
このスクリプト実行後に「arp -a」を実行することで対応するIPとMacアドレスの一覧が見られます。この対応があるIPが現在のネットワークで有効なIPアドレスとなります。

#!/usr/bin/env perl
use strict;
use warnings;

for my $n (1..255) {
    print $n."\n";
    system 'ping -c 1 -t 1 192.168.100.'.$n;
}

きょうはここまで・・!

VPNのプロトコル(IPSec, PPTPなど)について調べた


VPNってなんとなく暗号化通信の技術?!プライベートなネットワークに繋ぐものなど、何となく理解している人も多いと思います。自分もIPSecのVPNをFWに対して設定したことはあるけど、完全に理解しているわけではなかった。この際、調べてみようということで書いてみます。


そもそもVPN(Virtual Private Network)とは・・・

“5分で絶対に分かるVPN”によると

インターネット上の拠点間を専用線のように接続し、のぞき見や改ざんなどの不正アクセスを防ぎ、安全な通信を可能にする技術がVPNだ。パブリックネットワークを使ってプライベートネットワークを実現しようというのである。インターネットを経由しているにもかかわらず、あたかも同一ネットワーク上にいるかのような利便性が得られる。

要するに「 暗号化した拠点間通信のこと。インターネットなどの公衆回線網の中にデータをカプセル化・暗号化することで通信の安全性を保護した仮想の通信トンネルを構成することで専用回線のように利用できるようにした通信回線のこと 」 だと理解しました。各拠点のファイヤーウォールでVPN設定をすることで実現できる。

VPNについての記事は分かりやすいです!!

VPNの種類
  • IP-VPN
    ・・・ 通信インターフェースはインターネット技術(IP -> インターネットプロトコル)を利用している。特定のプロバイダから提供されるIP-VPN専用のネットワーク網の中で利用する。インターネット網と違って限定した専用のネットワーク網の中での通信となる。その際、パケットにMPLS(multiprotocol label switching)と呼ばれる技術でラベルをつけることで自社と他社のデータを区別するため、パケットの暗号化はしません。基本的にはインターネットには繋がっていない。価格はIP-VPN専用のネットワークを別途契約する必要があるのでインターネットVPNと比べて割高。

  • インターネットVPN
    ・・・ 通信経路にインターネットを利用する。インターネット網の中で各パケットを暗号化することで設定した拠点間のルータやファイヤーウォールでのみ復号化できるようにして、擬似的に通信トンネルを構築する。一般的に、VPNとだけ言われるものは「インターネットVPN」を指していることが多いと思います。

    以下は調べて見たいことですが、
    Q, 片方の拠点は動的IPの契約でも利用できる?!相互接続するためにはやっぱり、どちらも固定が必要だろうか?!
    動的グローバルIPアドレスを使用した拠点とのIPsec-VPN接続
    インターネットVPN環境を構築する(動的IPによるVPNは可能?)

【參考】

IP-VPNとインターネットVPNの比較 <= ページ中盤に比較表がある
インターネットVPNとIP-VPNの違いとは?

【余談】

インターネットプロトコル(IP)を用いるのではなく、レイヤ2レベル相当の接続を提供する 広域イーサネット というサービスもある。LANの延長で離れた拠点間をイーサネットで結ぶサービス。
広域イーサネットとIP-VPNを理解


VPNのプロトコルについて

VPNとはということについてだいぶ長く書いてしまった。。。本題のVPNのプロトコルについてまとめてみたいと思います。
IPSecとPPTPという2つのプロトコルがありますが、基本的には以下の手順で通信されます。大きな違いはないです。

  1. 相手のVPN装置が本物かを確認する認証
  2. 送受信データを暗号化するために使う暗号鍵の取り決め(鍵交換)
  3. データの暗号化とカプセル化(パケットを暗号化してIPヘッダーを付与してカプセル化する)
  4. カプセル化したデータの送信

この記事がだいぶ参考になった!!!
2大技術「PPTP」と「IPsec」,3工程に分けて細部まで調査

IPSecの特徴

IKE(internet key exchange)というプロトコルを用いてVPN装置間の認証と暗号鍵を取り決めて暗号化されたトンネルを構築する。
通信は送信用のトンネルと受信用のトンネルを別々に作って使い分ける。それぞれのトンネルを構築する度に認証、暗号鍵の取り決めが行われる。
認証時にはユーザ名で識別するのではなく、接続拠点間のIPアドレスなどを元にVPNの接続先を決める。そのためリモートアクセスVPNには向かない。しかし、「L2TP/IPSec」の機能を持つルータであれば接続ユーザなどを設定すればリモートアクセスVPNとしてモバイル端末(Android,iPhone)などからVPN通信が利用できる。
鍵の生成するハッシュ関数などが動的に決められるなどVPN機器間でネゴシエーションして暗号鍵が決定されるのでPPTPと比較するとセキュリティ面で有利かな?!

PPTPの特徴

米マイクロソフトが開発したMS-CHAP(エムエスチャップ)バージョン2というプロトコルで認証し暗号化されたトンネルを構築する。基本的には接続する拠点間の機器をPPTPサーバとPPTPクライアントとして2つに分けて、クライアントからサーバへ接続要求するというところから認証が始まる。またマイクロソフトの技術なので、WindowsのOSにはPPTPクライアントとしての機能がある。そのため、PC単体などのクライアントからのリモートアクセスVPNとして向いている。
通信は送信と受信を1つのトンネルで実現する。