Русские документы
RSS rusdoc.ru  Найти :
Последние поступления
  Hardware:
Видеоустройства
Системные платы
Процессоры
Мобильные устройства
Аудиосистема
Охлаждение системы
Накопители информации
КПК и ноутбуки
Телефоны и связь
Периферия
Система
Сети
Разные устройства
 
  Programming:
Web-разработка
Языки программирования
Технологии и теория
Разработка игр
Программная инженерия
 
  Software:
Операционные системы
Windows 7
Базы данных
Обзоры программ
Графика и дизайн
   
  Life:
Компьютерная жизнь
Разные материалы
   
Партнеры
Публикация
Правовая информация
Реклама на сайте
Обратная связь
Экспорт в RSS Экспорт в RSS2.0
   

Firewall с возможностью vpn (freebsd + pf + mpd)

Автор: Григорий Ситнин
Опубликовано: 17 августа 2005 года
Источник: Блог Григория Ситнина

1. Устанавливаем FreeBSD 5.4. С версиями от 5.3 и до 5.0 работать, судя по документации, тоже будет, но pf там идёт как часть KAME и несколько урезан, насколько я понял. На компьтере должны быть две сетевые карты: одна смотрящая в нашу сеть, другая — в интернет. Подробно не расписываю, полагаю, что все знают.

2. В этой версии FreeBSD пакетный фильтр pf входит в стандартный набор. Поэтому ничего пока не устанавливаем. Просто создаём файл “/etc/pf.conf” примерно вот такого содержания:

--- pf.conf ------------------------------------ 
   ext_if="rl0" # внешний интерфейс 
   int_if="dc0" # внутренний (локальный) интерфейс 
   int_net="{192.168.1.1/24}" # внутренняя сеть 
# разрешаем натить всё, что должно быть снаружи 
   nat on $ext_if from $int_net to any -> ($ext_if) 
# разрешаем входящие и исходящие соединения 
   pass in all 
   pass out all 
   ------------------------------------------------ 
 

3. Добавляем пакет (для скорости я использую не порты, а пакеты, это удобно) “mpd-3.xx_x.tbz”. В моём случае это было сделано с помощью команды “pkg_add ftp://ftp.freebsd.org/…/mpd-3.18_2.tbz “. Такой вариант очень удобен тем, что позволяет также автоматически добавить и все требуемые пакеты. Внимание, ни в коем случае не скачивайте содержимое каталога “All”, в котором лежит бинарник пакета. Это безумное количество траффика (там лежат все пакеты, которые есть для текущей версии FreeBSD, а это много, поверьте).

4. Создаём в каталоге /usr/local/etc/mpd следующие файлы:

--- mpd.conf ----------------------------------- 
   default: 
   load pptp0 
   load pptp1 
   load pptp2 
pptp0: 
   new -i ng0 pptp0 pptp0 
   set ipcp ranges 192.168.1.2/32 192.168.5.10/32 
   load pptp_standart 
pptp1: 
   new -i ng1 pptp1 pptp1 
   set ipcp ranges 192.168.1.2/32 192.168.5.11/32 
   load pptp_standart 
pptp2: 
   new -i ng2 pptp2 pptp2 
   set ipcp ranges 192.168.1.2/32 192.168.5.12/32 
   load pptp_standart 
pptp_standart: 
   set iface disable on-demand 
   set bundle disable multilink 
   set link yes acfcomp protocomp 
   set link no pap chap 
   set link enable chap 
   set link keep-alive 60 180 
   set ipcp yes vjcomp 
   # ниже прописать локальные dns и wins 
   set ipcp dns 192.168.1.1 
   set ipcp nbns 192.168.1.1 
   set iface enable proxy-arp 
   set bundle enable compression 
   set ccp yes mppc 
   set ccp yes mpp-e40 
   set ccp yes mpp-e128 
   set ccp yes mpp-stateless 
   set bundle yes crypt-reqd 
   # ниже прописать свой внешний ip 
   set pptp self 111.11.11.111 
   set pptp enable incoming 
   set pptp disable originate 
   ------------------------------------------------ 
 
--- mpd.links ---------------------------------- 
   pptp0: 
   set link type pptp 
   pptp1: 
   set link type pptp 
   pptp2: 
   set link type pptp 
   ------------------------------------------------ 
 

При помощи этих конфигурационных файлов я создал три pptp-бандла. Это означает, что одновременно к нам сможет присоединяться 3 пользователя, максимум. Адрес vpn-сервера во внутренней сети будет 192.168.1.2 (учтите, что такого ip не должно быть в сети). Клиентам будут динамически выдаваться ip-адреса 192.168.5.10-12 (маска в файлах странная, но таковы требования pf).

--- mpd.secret --------------------------------- 
   user1 pass1 
   user2 pass2 
   user3 pass3 
------------------------------------------------ 
 

В этом файле я просто прописал трёх пользователей с их паролями.

5. В теперь /etc/rc.conf написать следующее:

  --- часть rc.conf ------------------------------ 
   pf_enable="YES" 
   mpd_enable="YES" 
  ------------------------------------------------ 
 

6. Перезагрузитесь. Задайте ip-адрес фаервола всем, кто нуждается в выходе в интернет, в качестве “шлюза по умолчанию” (default gateway). Всё работает.

Теперь, коментарии.

Сделать можно было гораздо больше, однако я не стал заморачиваться. Кто-то может сказать, что это никакой не фаервол, однако, если не устанавливать больше ничего, то на этой машине из портов открыт только порт pptp, поэтому ломать, право слово, нечего. Так что вполне это фаервол.

Почему я так накинулся на pf, когда есть ipfw, iptables и прочий софт для форвардинга? Очень просто: pf является штатным пакетным фильтром OpenBSD, операционной системы, в которой уже более восьми (!) лет не найдено ни одной дыры в установке по умолчанию. Но это не главное. Вы видите количество правил, которые пришлось задать для корректной работы? Макросы, таблицы, очереди — всем этим действительно быстро и удобно управлять. Ну и скорость у pf очень хорошая (я практически не заметил разницы между подключением напрямую и подключением через фаервол).

Вскоре я должен сделать подсчёт траффика для пользователей, так что ожидайте продолжения.

 

Реклама:


Последнее на сайте :
28.05.2015:
Нужен надежный хостинг с поддержкой php mysql?
Бесплатный конвертер для видео файлов
Немножко философский пост про то, как мы в глаза смотрели
Самые заметные проблемы облачных провайдеров за 2012 год
Распределительная сеть дата-центров мирового масштаба — сердце империи Google
Google выделяет миллионы долларов на новый конкурс по взлому Chrome
Top 5 раздражающих моментов в работе программиста
Глава мобильного подразделения Ubuntu Ричард Коллинз рассказал о планах
Обзор планшета Acer ICONIA W7. Windows 8 по-профессиональному
Как получить nano-sim для iPhone 5?



Реклама:





© Copyright 1998-2012 Александр Томов. All rights reserved.