Архивы
Введение в Виртуальные Частные Сети (VPN)
Среда, 14 января 2009 г.Рубрика: Архив Itword.net (2007-10)
Метки: PPTP | VPN | Windows
Просмотров: 45062
Подписаться на комментарии по RSS
Введение в Виртуальные Частные Сети (VPN)
В этой статье мы попробуем разобраться, что же такое VPN, какие существуют плюсы и минусы данной технологии и какие варианты реализации VPN существуют.
Что такое VPNЧто же такое VPN? Существует множество определений, однако главной отличительной чертой данной технологии является использование сети Internet в качестве магистрали для передачи корпоративного IP-трафика. Сети VPN предназначены для решения задач подключения конечного пользователя к удаленной сети и соединения нескольких локальных сетей. Структура VPN включает в себя каналы глобальной сети, защищенные протоколы и маршрутизаторы.
Как же работает Виртуальная Частная Сеть? Для объединения удаленных локальных сетей в виртуальную сеть корпорации используются так называемые виртуальные выделенные каналы. Для создания подобных соединений используется механизм туннелирования. Инициатор туннеля инкапсулирует пакеты локальной сети (в том числе, пакеты немаршрутизируемых протоколов) в новые IP-пакеты, содержащие в своем заголовке адрес этого инициатора туннеля и адрес терминатора туннеля. На противоположном конце терминатором туннеля производится обратный процесс извлечения исходного пакета.
Как уже отмечалось выше, при осуществлении подобной передачи требуется учитывать вопросы конфиденциальности и целостности данных, которые невозможно обеспечить простым туннелированием. Для достижения конфиденциальности передаваемой корпоративной информации необходимо использовать некоторый алгоритм шифрования, причем одинаковый на обоих концах туннеля.
Для того чтобы была возможность создания VPN на базе оборудования и программного обеспечения от различных производителей необходим некоторый стандартный механизм. Таким механизмом построения VPN является протокол Internet Protocol Security (IPSec). IPSec описывает все стандартные методы VPN. Этот протокол определяет методы идентификации при инициализации туннеля, методы шифрования, используемые конечными точками туннеля и механизмы обмена и управления ключами шифрования между этими точками. Из недостатков этого протокола можно отметить то, что он ориентирован на IP.
Другими протоколами построения VPN являются протоколы PPTP (Point-to-Point Tunneling Protocol), разработанный компаниями Ascend Communications и 3Com, L2F (Layer-2 Forwarding) - компании Cisco Systems и L2TP (Layer-2 Tunneling Protocol), объединивший оба вышеназванных протокола. Однако эти протоколы, в отличие от IPSec, не являются полнофункциональными (например, PPTP не определяет метод шифрования), поэтому мы, в основном, будем ориентироваться на IPSec.
Говоря об IPSec, нельзя забывать о протоколе IKE (Internet Key Exchange), позволяющем обеспечить передачу информации по туннелю, исключая вмешательство извне. Этот протокол решает задачи безопасного управления и обмена криптографическими ключами между удаленными устройствами, в то время, как IPSec кодирует и подписывает пакеты. IKE автоматизирует процесс передачи ключей, используя механизм шифрования открытым ключом, для установления безопасного соединения. Помимо этого, IKE позволяет производить изменение ключа для уже установленного соединения, что значительно повышает конфиденциальность передаваемой информации.
Как построить VPNСуществуют различные варианты построения VPN. При выборе решения требуется учитывать факторы производительности средств построения VPN. Например, если маршрутизатор и так работает на пределе мощности своего процессора, то добавление туннелей VPN и применение шифрования/дешифрования информации могут остановить работу всей сети из-за того, что этот маршрутизатор не будет справляться с простым трафиком, не говоря уже о VPN.
Опыт показывает, что для построения VPN лучше всего использовать специализированное оборудование, однако если имеется ограничение в средствах, то можно обратить внимание на чисто программное решение.
Рассмотрим некоторые варианты построения VPN.
VPN на базе брандмауэровБрандмауэры большинства производителей поддерживают туннелирование и шифрование данных. Все подобные продукты основаны на том, что если уж трафик проходит через брандмауэр, то почему бы его заодно не зашифровать. К программному обеспечению собственно брандмауэра добавляется модуль шифрования. Недостатком данного метода можно назвать зависимость производительности от аппаратного обеспечения, на котором работает брандмауэр. При использовании брандмауэров на базе ПК надо помнить, что подобное решение можно применять только для небольших сетей с небольшим объемом передаваемой информации.
Рисунок 2. VPN на базе брандмауэра
В качестве примера решения на базе брандмауэров можно назвать FireWall-1 компании Check Point Software Technologies. FairWall-1 использует для построения VPN стандартный подход на базе IPSec. Трафик, приходящий в брандмауэр, дешифруется, после чего к нему применяются стандартные правила управления доступом. FireWall-1 работает под управлением операционных систем Solaris и Windows NT 4.0.
VPN на базе маршрутизаторовДругим способом построения VPN является применение для создания защищенных каналов маршрутизаторов. Так как вся информация, исходящая из локальной сети, проходит через маршрутизатор, то целесообразно возложить на этот маршрутизатор и задачи шифрования.
Ярким примером оборудования для построения VPN на маршрутизаторах является оборудование компании Cisco Systems. Начиная с версии программного обеспечения IOS 11.3(3)T маршрутизаторы Cisco поддерживают протоколы L2TP и IPSec. Помимо простого шифрования проходящей информации Cisco поддерживает и другие функции VPN, такие как идентификация при установлении туннельного соединения и обмен ключами.
Рисунок 3. VPN на базе маршрутизаторов
Для построения VPN Cisco использует туннелирование с шифрованием любого IP-потока. При этом туннель может быть установлен, основываясь на адресах источника и приемника, номера порта TCP(UDP) и указанного качества сервиса (QoS).
Для повышения производительности маршрутизатора может быть использован дополнительный модуль шифрования ESA (Encryption Service Adapter).
Кроме того, компания Cisco System выпустила специализированное устройство для VPN, которое так и называется Cisco 1720 VPN Access Router (Маршрутизатор Доступа к VPN), предназначенное для установки в компаниях малого и среднего размера, а также в в отделениях крупных организаций.
VPN на базе программного обеспеченияСледующим подходом к построению VPN являются чисто программные решения. При реализации такого решения используется специализированное программное обеспечение, которое работает на выделенном компьютере и в большинстве случаев выполняет роль proxy-сервера. Компьютер с таким программным обеспечением может быть расположен за брандмауэром.
Рисунок 4. VPN на базе программного обеспечения
В качестве примера такого решения можно выступает программное обеспечение AltaVista Tunnel 97 компании Digital. При использовании данного ПО клиент подключается к серверу Tunnel 97, аутентифицируется на нем и обменивается ключами. Шифрация производится на базе 56 или 128 битных ключей Rivest-Cipher 4, полученных в процессе установления соединения. Далее, зашифрованные пакеты инкапсулируются в другие IP-пакеты, которые в свою очередь отправляются на сервер. В ходе работы Tunnel 97 осуществляет проверку целостности данных по алгоритму MD5. Кроме того, данное ПО каждые 30 минут генерирует новые ключи, что значительно повышает защищенность соединения.
Положительными качествами AltaVista Tunnel 97 являются простота установки и удобство управления. Минусами данной системы можно считать нестандартную архитектуру (собственный алгоритм обмена ключами) и низкую производительность.
VPN на базе сетевой ОСРешения на базе сетевой ОС мы рассмотрим на примере системы Windows NT компании Microsoft. Для создания VPN Microsoft использует протокол PPTP, который интегрирован в систему Windows NT. Данное решение очень привлекательно для организаций использующих Windows в качестве корпоративной операционной системы. Необходимо отметить, что стоимость такого решения значительно ниже стоимости прочих решений. В работе VPN на базе Windows NT используется база пользователей NT, хранящаяся на Primary Domain Controller (PDC). При подключении к PPTP-серверу пользователь аутентифицируется по протоколам PAP, CHAP или MS-CHAP. Передаваемые пакеты инкапсулируются в пакеты GRE/PPTP. Для шифрования пакетов используется нестандартный протокол от Microsoft Point-to-Point Encryption c 40 или 128 битным ключом, получаемым в момент установки соединения. Недостатками данной системы являются отсутствие проверки целостности данных и невозможность смены ключей во время соединения. Положительными моментами являются легкость интеграции с Windows и низкая стоимость.
VPN на базе аппаратных средствВариант построения VPN на специальных устройствах может быть использован в сетях, требующих высокой производительности. Примером такого решения служит продукт cIPro-VPN компании Radguard
Рисунок 5. VPN на базе аппаратных средств
Данный продукт использует аппаратное шифрование передаваемой информации, способное пропускать поток в 100 Мбит/с. cIPro-VPN поддерживает протокол IPSec и механизм управления ключами ISAKMP/Oakley. Помимо прочего, данное устройство поддерживает средства трансляции сетевых адресов и может быть дополнено специальной платой, добавляющей функции брандмауэра
Проблемы в VPNОсновной проблемой сетей VPN является отсутствие устоявшихся стандартов аутентификации и обмена шифрованной информацией. Эти стандарты все еще находятся в процессе разработки и потому продукты различных производителей не могут устанавливать VPN-соединения и автоматически обмениваться ключами. Данная проблема влечет за собой замедление распространения VPN, так как трудно заставить различные компании пользоваться продукцией одного производителя, а потому затруднен процесс объединения сетей компаний-партнеров в, так называемые, extranet-сети.
Как можно заметить из вышесказанного, продукты построения VPN могут оказаться узким местом в сети. Это происходит из-за того, что для поддержки множества соединений и шифрования информации, передаваемой по этим соединениям, требуется высокая производительность используемого оборудования (и/или программного обеспечения). Это является еще одним проблемным моментом в построении VPN.
Еще одним уязвимым местом VPN можно считать отсутствие единых, надежных способов управления такими сетями, что может стать кошмаром для сетевых администраторов.
И, наконец, отсутствие (или слабое развитие) механизмов обеспечения качества сервиса в сети Internet является проблемой построения сетей VPN, требующих для некоторых приложений гарантированной доставки информации за ограниченное время.
Что ждать в будущемЧего же можно ожидать в плане развития технологий VPN в будущем? Без всякого сомнения, будет выработан и утвержден единый стандарт построения подобных сетей. Скорее всего, основой этого стандарта будет, уже зарекомендовавший себя протокол IPSec. Далее, производители сконцентрируются на повышении производительности своих продуктов и на создании удобных средств управления VPN.
Скорее всего, развитие средств построения VPN будет идти в направлении VPN на базе маршрутизаторов, так как данное решение сочетает в себе достаточно высокую производительность, интеграцию VPN и маршрутизации в одном устройстве. Однако, будут развиваться и недорогие решения на базе сетевых ОС для небольших организаций.
В заключение, надо сказать, что, несмотря на то, что технология VPN еще очень молода, ее ожидает большое будущее.
Короткий обзор сетевых команд (для начинающих)
Вторник, 6 января 2009 г.Рубрика: *NIX_*BSD сиcтемы
Метки: dig | ftp | linux | network | nslookup | ssh
Просмотров: 54378
Подписаться на комментарии по RSS
Утилита traceroute очень полезна для диагностики сети. Traceroute показывает все хосты, через которые проходит пакет от начало до конечного назначения. С помощью этой команды вы можете увидеть количество “хопов” (hops) между вашей машиной и заданным хостом. В дистребутивах 6.06 LTS Server и Ubuntu 6.10 (Edgy Eft), по умолчанию не было, ставиться легким движением руки из репозиториев (22,2kБ):
$ apt-get install traceroute [code]
Синтаксис:
[code]$ traceroute ubuntu.com
traceroute to ubuntu.com (82.211.81.166), 30 hops max, 40 byte packets
.... ......
4 router7500.belpak.by (193.232.248.117) 120.332 ms 94.094 ms 94.252 ms
5 if-7-0.core2.fr1-frankfurt.teleglobe.net (80.231.65.13) 149.519 ms 184.463 ms 158.692 ms
6 if-5-0.core1.fr1-frankfurt.teleglobe.net (80.231.64.1) 148.191 ms 150.338 ms *
.... ......
Утилиты для работы с DNS. Служба доменных имён (Domain Name Service, DNS) - это протокол, который позволяет вашему компьютеру преобразовывать имена доменов наподобие www.ubuntu.com в IP-адреса наподобие 82.211.81.212.
Утилита host,используется для сопоставления хостов/имен с IP-адресами.
Синтаксис:
$ host www.ubuntu.com
www.ubuntu.com has address 82.211.81.212
Утилита nslookup,определяет хост/имя по IP-адресу.
Синтаксис:
$ Non-authoritative answer:
166.81.211.82.in-addr.arpa name = signey.ubuntu.com.
Утилита dig (domain information groper) - это программа для поиска информации в DNS.Dig может получить с DNS-сервера практически всё, что угодно, включая реверсивные запросы, записи A, CNAME, MX, SP и TXT.
Синтаксис:
$ dig @192.168.XXX.XXX www.ubuntu.com mx
; <<>> DiG 9.3.2 <<>> @192.168.100.7 www.ubuntu.com mx
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19065
;; flags: qr aa; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;www.ubuntu.com. IN MX
;; AUTHORITY SECTION:
ubuntu.com. 3600 IN SOA ns.ubuntu.com. hostmaster.canonical.com. 2007032203 10800 3600 604800 3600
;; Query time: 50 msec
;; SERVER: 192.168.XXX.XX#53(192.168.XXX.XXX)
;; WHEN: Fri Mar 23 12:45:06 2007
;; MSG SIZE rcvd: 92
Где, - "@192.168.XXX.XXX" обозначает используемый dns-сервер,
- "www.ubuntu.com" - это домен, по которому выполняется поиск,
- "mx" - это тип выполняемого поиска.
Утилита telnet, кто-то однажды сказал, что telnet была самой крутой вещью в мире компьютеров. Возможность удалённого входа в систему и работа на нём с другого компьютера - вот, что отличало Unix и Unix-подобные операционные системы от других ОС.Telnet позволяет вам входить в систему на удалённом компьютере так, словно вы сидите за его терминалом. После того, как будут проверены ваши имя пользователя и пароль, вы получите приглашение командного процессора. С этого момента вы можете делать всё, что угодно, для чего требуется текстовая консоль: писать электронные письма, читать новости, перемещать файлы и т.п. Если вы работаете в X'ах вы подключаетесь к другой машине по telnet'у, вы можете запускать X-программы на удалённом компьютере с отображением их на вашем мониторе.
Чтобы войти в систему на удалённой машине, используйте следующий синтаксис:
$ telnet <имя_хоста>
Если хост ответит, вы получите приглашение для входа в систему. Введите свои имя пользователя и пароль. Вот и всё. Теперь в вашем распоряжении командный процессор удалённой системы. Чтобы завершить telnet-сеанс, используйте команду exit или logout.
Внимание: Telnet не шифрует передаваемую информацию. Всё передаётся чистым текстом, даже пароли. Поэтому не рекомендуется использовать telnet при работе через Интернет. Вместо этого используйте Secure Shell (безопасный шелл). Он шифрует весь передаваемый трафик и является свободно доступным.
Так что ему на смену пришол SSH, но у telnet'а появилось другое использование.
Вы можете использовать telnet для подключения к определённому порту хоста.
синтаксис:
$ telnet <имя_хоста> [порт]
Это может быть довольно удобным в случае, когда вам нужно быстро протестировать определённую службу, имея при этом полный контроль над командами, и получить полный отчёт о том, что происходит. Таким способом вы можете в интерактивном режиме протестировать или использовать сервер SMTP, POP3, HTTP и т.п.
Использывание telnet'а для подключения к HTTP-серверу на 80-й порт и получения от него некоторой базовой информации.
Будет что-то вроде этого:
$ telnet <имя_хоста> [порт]
Trying XXX.XXX.XXX.XXX...
Connected to xxxxxxxxxxx.
Escape character is '^]'.
HEAD / HTTP/1.0
HTTP/1.1 200 OK
Date: Fri Mar 23 10:08:16 2007 GMT
Server: Apache/1.3.33 (Unix) mod_ssl/2.8.22 OpenSSL/0.9.7d
Last-Modified: Fri, 18 Apr 2003 10:58:54 GMT
ETag: "193424-c0-3e9fda6e"
Accept-Ranges: bytes
Content-Length: 192
Connection: close
Content-Type: text/html
Connection closed by foreign host.
То же самое вы можете выполнять и для других протоколов.
А вот SSH cегодня получает все лавры, которые раньше доставались telnet'у. Ssh позволяет устанавливать соединение с удалённой машиной и выполнять на ней программы так, как если бы вы находились перед её монитором. Однако ssh шифрует все данные, передаваемые между двумя компьютерами, так что даже в случае их перехвата понять их будет невозможно.
По ssh читаем SSH для простых смертных
FTP-клиент.FTP это File Transfer Protocol (протокол передачи файлов). Он позволяет вам обмениваться файлами между двумя компьютерами.Чтобы подключиться к серверу FTP, просто выполните команду ftp, указав хост:
$ ftp <имя хоста> [порт]
FTP-сервер,запросит у вас имя пользователя и пароль. Вы можете войти в систему под собой или как “anonymous” (анонимно). Анонимные FTP-сайты являются очень популярными в качестве архивов с программным обеспечением. Например, чтобы загрузитьSlackware Linux через FTP, вы должны использовать анонимный FTP.
После подключения вы увидите приглашение ftp>. Для FTP существуют специальные команды, однако они очень похожи на другие стандартные команды системы(chmod,rmdir). Вот некоторые из них:
ls - вывод списка файлов
cd <имя_каталога> - смена каталога
delete - удаление
rename - переменование
bin - установка двоичного режима передачи
ascii[b] - установка текстового режима передачи
[b]get <имя_файла> - загрузка файла
put <имя_файла> - выгрузка файла
mget <маска> - загрузка файла или группы файлов; допускается использование шаблонов
mput <маска> - выгрузка файла или группы файлов; допускается использование шаблонов
quit - выход с FTP-сервера
Чтобы получить полный список всех команд, просто наберите help или ? и вы получите на экране полный перечень.
Конечно обзор не полный и существует множество нюансов, но для начинающих я надеюсь этот обзор стал полезным.