6.6. CIPEのクライアントを設定する

CIPEサーバーの設定が完了したら、機能するかテストします。 クライアントマシンに接続を配備できるようになりました。

CIPEクライアントは自動化された方法でCIPE接続を接続したり切断したりすることができるでしょう。 したがって、CIPEには個々の使用に設定をカスタマイズするビルトインのメカニズムが含まれています。 例えば、リモート社員は次のように入力してLANのCIPEデバイスに接続することができます。

/sbin/ifup cipcb0

デバイスは自動的に立ち上がります。ファイアウォールのルールとルーティング情報も 接続にしたがって設定する必要があります。リモートの社員は次のように接続を終了することができます。

/sbin/ifdown cipcb0

クライアントの設定には、デバイスがロードした後に実行されるローカライズされたスクリプトを 作成する必要があります。デバイス設定自身が、/etc/sysconfig/network-scripts/ifcfg-cipcb0と呼ばれるユーザー作成のファイルでローカルに 設定することができます。このファイルには、CIPE接続がブート時に発生するのか、 CIPEデバイスの名前は何なのか、などいろいろなことを決定するパラメータを含んでいます。 以下は、CIPEサーバーに接続しているリモートクライアントのifcfg-cipcb0ファイルです。

DEVICE=cipcb0
ONBOOT=yes
BOOTPROTO=none
USERCTL=no

# This is the device for which we add a host route to our CIPE peer through.
# You may hard code this, but if left blank, we will try to guess from
# the routing table in the /etc/cipe/ip-up.local file.
PEERROUTEDEV=

# We need to use internal DNS when connected via cipe. 
DNS=192.168.1.254

CIPEデバイスはcipcb0と名付けられます。 CIPEデバイスはブート時に起動され、デバイス用のIPアドレスを受け取るのに ブートプロトコル(例、 DHCP)を使用しません。PEERROUTEDEVフィールドはクライアントに接続するCIPEサーバーデバイス名を決定します。 このフィールドにデバイスが選択されていないと、デバイスがロードしてから任意のものが決定されます。

内部ネットワークがファイアウォールに守られている場合、クライアントマシンのCIPEインターフェース がUDPパケットを送受信できるようルールを設定します。 ファイアウォールの設定については、第7章を参照してください。 この設定の例は、iptablesルールが実行されています。

注意注記
 

クライアントは、ローカライズされたすべてのパラメータが/etc/cipe/ip-up.local と呼ばれるユーザー作成のファイルに保存されるよう設定する必要があります。 /etc/cipe/ip-down.localを使ってCIPEセッションをシャットダウンするとき、 ローカルパラメータは元に戻ります。

ファイアウォールは、CIPE UDP のカプセル化されたパケットを受け取るためにクライアント上に 設定する必要があります。ルールは幅広く異なりますが、UDPパケットの基本的な着信は CIPEの接続性に必要です。以下のiptablesルールで、 LANに接続しているリモートクライアントマシン上でのUDP CIPE 通信が可能になります。 最後にあるルールが IPマスカレードを追加してリモートクライアントがLANやインターネットと 通信できるようにしています。

/sbin/modprobe iptables
/sbin/service iptables stop
/sbin/iptables -P INPUT DROP
/sbin/iptables -F INPUT
/sbin/iptables -A INPUT -j ACCEPT -p udp -s 10.0.1.1
/sbin/iptables -A INPUT -j ACCEPT -i cipcb0
/sbin/iptables -A INPUT -j ACCEPT -i lo
/sbin/iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

あたかもノードがローカルネットワーク上にあるように、 CIPE接続に守られたノードにアクセスするようルーティングルールをクライアントマシンに追加します。 これを行なうにはrouteコマンドを実行します。 この例では、クライアントワークステーションが次のネットワークルートを持っている必要があります。

route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.0.1.2

以下に、クライアントワークステーション用の最後にある/etc/cipe/ip-up.local スクリプトを示します。

#!/bin/bash -v
if [ -f /etc/sysconfig/network-scripts/ifcfg-$1 ] ; then
        . /etc/sysconfig/network-scripts/ifcfg-$1
else
        cat <<EOT | logger
Cannot find config file ifcfg-$1. Exiting.
EOF
        exit 1
fi

if [ -n ${PEERROUTEDEV} ]; then
        cat <<EOT | logger
Cannot find a default route to send cipe packets through!
Punting and hoping for the best.
EOT
        # Use routing table to determine peer gateway
        export PEERROUTEDEV=`/sbin/route -n | grep ^0.0.0.0 | head -n 1 \
           | awk '{ print $NF }'`

fi

####################################################
# Add The routes for the remote local area network #
####################################################

route add -host 10.0.1.2 dev $PEERROUTEDEV
route add -net 192.168.1.0 netmask 255.255.255.0 dev $1

####################################################
# IP TABLES Rules to restrict traffic              #
####################################################

/sbin/modprobe iptables
/sbin/service iptables stop
/sbin/iptables -P INPUT DROP
/sbin/iptables -F INPUT
/sbin/iptables -A INPUT -j ACCEPT -p udp -s 10.0.1.2
/sbin/iptables -A INPUT -j ACCEPT -i $1
/sbin/iptables -A INPUT -j ACCEPT -i lo
/sbin/iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE