Настроив CIPE-сервер правильно и проверив его функциональность, вы можете настраивать соединение на компьютере клиента.
Клиент CIPE должен уметь устанавливать и разрывать CIPE-соединение автоматически. Поэтому в CIPE включены механизмы настройки для такого использования. Например, удалённый работник может подключаться к серверу CIPE в сети своей компании, выполнив команду:
/sbin/ifup cipcb0 |
Это устройство будет запущено автоматически; для этого соединения также будут настроены маршруты и правила брандмауэра. Разорвать соединение удалённый работник может с помощью команды:
/sbin/ifdown cipcb0 |
При настройке клиентов требуется создать специальные сценарии, запускаемые после загрузки устройства. Конфигурацию самого устройства можно настраивать локально, в создаваемом пользователем файле /etc/sysconfig/network-scripts/ifcfg-cipcb0. Параметры в этом файле определяют, будет ли CIPE-соединение устанавливаться при загрузке, как будет называться устройство CIPE, и многое другое. Ниже показан файл ifcfg-cipcb0, задающий параметры подключения удалённого клиента к CIPE-серверу:
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. Оно запускается при загрузке (это указывает поле ONBOOT) и не использует протокол динамического получения IP-адреса (например, DHCP). Поле PEERROUTEDEV определяет имя устройства на CIPE-сервере, к которому подключаются клиенты. Если в этом поле ничего не указано, оно определяется после загрузки устройства.
Если внутренние сети находятся за брандмауэром, установите правила, позволяющие CIPE-интерфейсу клиентского компьютера отправлять и принимать пакеты UDP. За указаниями по настройке обратитесь к главе 7 Брандмауэры. В этом примере конфигурации устанавливаются правила iptables.
Замечание | |
---|---|
Следует настраивать ваших клиентов так, чтобы все локальные параметры находились в пользовательском файле /etc/cipe/ip-up.local. При закрытии CIPE-соединения эти параметры следует возвращать в исходное состояние с помощью /etc/cipe/ip-down.local. |
Брандмауэры на компьютерах клиентов должны пропускать CIPE-пакеты, инкапсулированные в UDP. Правила могут быть самыми разными, но ключевым для CIPE-соединений является прохождение UDP-пакетов. Приведённые ниже правила iptables пропускают UDP-трафик протокола CIPE на компьютере, подключающемся к удалённой сети; последнее правило, включающее подмену IP-адресов, позволяет клиенту подключаться и к удалённой сети, и к Интернету:
/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 |