Возможно вы искали: 'Democracy'

May 31 2025 02:19:30
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96425698
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18407
• Обзор The Walking ... 18853
• Обзор DMC: Devil M... 19921
• Обзор на игру Valk... 15921
• Обзор на игру Stars! 17810
• Обзор на Far Cry 3 18000
• Обзор на Resident ... 16063
• Обзор на Chivalry:... 17561
• Обзор на игру Kerb... 18021
• Обзор игры 007: Fr... 16667
Превью о играх
• Превью к игре Comp... 18003
• Превью о игре Mage... 14502
• Превью Incredible ... 14763
• Превью Firefall 13523
• Превью Dead Space 3 16378
• Превью о игре SimC... 14772
• Превью к игре Fuse 15479
• Превью Red Orche... 15589
• Превью Gothic 3 16388
• Превью Black & W... 17402
Главная » Статьи » Разное » Настройка роутера с файерволом на базе FreeBSD (freebsd firewall ipfw route arp mac)

Настройка роутера с файерволом на базе FreeBSD (freebsd firewall ipfw route arp mac)

Ключевые слова: freebsd, firewall, ipfw, route, arp, mac, (найти похожие документы)

From: http://bardak.blood.ru
Date: Mon, 24 Jun 2004 18:21:07 +0000 (UTC)
Subject: Настройка роутера с файерволом на базе FreeBSD

Оригинал: http://bardak.blood.ru/work/freebsd/router.htm


Настройка роутера с файерволом на базе FreeBSD

В данной статье мы расскажем о настройке роутера на базе FreeBSD
выполняющего роль шлюза в инернет с установкой firewall-a, и
поддерживающем статическую arp таблицу mac адресов в локальной сети.
Речь пойдет о IPFW который в FreeBSD служит верой и правдой уже много лет,
тем более что в последней версии в составе c FreeBSD 4.0 исправленны
ошибки и добавленна корректная возможность ограничивать полосу пропускания
по интерфейсу (использование pipe с опцией bw).

Предположим что мы имеет роутер с тремя сетевыми платами одна из
которых (назовем ее vx0, IP 200.200.200.1) смотрит в сторону Internet-a а
вторая (назовем ее vx1, IP 200.200.200.2) смотрит в сторону локальной сети
с реальными 18 IP адресами (subnet 200.200.200.0/28 netmask
255.255.255.240). К третьей сетевой карточке (vx2 IP 192.168.1.1 и сеть
192.168.1.0/28) подключена 10Mb сеть соседнего офисса.

Задачи перед нами поставленны следующие :
1. Закрыть доступ во внутренюю сеть извне по портам 135,137,139

2. Дать возможность пользователям локальной сети работать с почтой и
работать с в броузере с WWW,FTP серверами других компаний.

3. Закрыть на роутере возможность атаки типа SYN Flood, ICMP Flood.

4. Закрыть доступ к корпоративному WWW,FTP серверу (200.200.200.5)
используемый для работы с отчетами выставленными на этот WWW server только
в пределах локальной сети и доступа из филиала который имеет IP 190.190.190.5

5. Открыть доступ для конфигурирования этого роутера с определеного хоста
системного администратора.

6. Обеспечить подсчет трафика по IP адресам в локальной сети чтобы
впоследствии доказать что Вася весь месяц только и занимался скачиванием c
www.playboy.com картинок сомнительного содержания.

7. Ограничить трафик 64Kb на третьей сетевой карточке для дружественного
клиента компании находящемуся в том же здании и подключенному по 10Mb к
нашему роутеру и закрыть доступ с их стороны в локальную сеть нашей
компании.


Итак приступим.

1. Конфигурирование ядра и опций запукаемых скриптов.
-----------------------------------------------------

В ядро необходимо занести следующие опции :

options IPFIREWALL (включает в ядро код для фильтрации пакетов)
options IPFIREWALL_VERBOSE (включает возможность вести логи по
правилам фильтрации и проходящих пакетов)
options IPFIREEWALL_VERBOSE_LIMIT=10 (ограничение списка числа пакетов
записываемых в лог для того чтобы
не зафлудили syslog)
options TCP_DROP_SYNFIN (отбрасывает TCP пакеты с SYN и FIN)

В итоге при перезагрузке системы мы получим firewall который по умолчанию
закрывает прохождение любого IP трафика по всем интерфейсам. Далее мы
определим правила которые откроют только те порты TCP или UDP которые
нужны для работы пользователей. Если Вы придерживаетесь другого подхода -
"сначала все откроем а потом будем закрывать" то вам необходимо указать
следующую опцию в ядре :

options IPFIREWALL_DEFAULT_TO_ACCEPT

В /etc/defaults/rc.conf указываем следующее :

tcp_extensions="NO" (отключаем "опасные" из RFC1323 расширения TCP)
tcp_drop_synfin="YES" (отбрасывем SYN + FIN)
icmp_drop_redirect="YES" (игнорируем перенаправленные ICMP пакеты)
icmp_log_redirect="YES" (включаем логинг ICMP REDIRECT)
firewall_enable="YES" (включаем использование firewall)
firewall_type="Company" (указываем что наши настройки firewalla находятся

в rc.firewall в разделе "Company")
defaultrouter="199.199.199.1" (шлюз до нашего ISP)

2. Конфигурирование IPFW.
-------------------------

Теперь приступаем к написанию правил IPFW. Более побдробное
описание синтактиса можно прочитать в handbook или man ipfw.
Поскольку мы создаем свою конфигурацию ("Company") то делаем ее
описание в rc.firewall :

[Cc][Oo][Mm][Pp][Aa][Nn][Yy]

# Описываем сеть и интерфейсы
fw="200.200.200.1"
local="200.200.200.2"
client="192.168.1.1"
net="200.200.200.0/28"
mask="255.255.255.255.240"

# Разрешаем трафик по local интерфейсу
${fwcmd} add pass all from any to any via lo0

# Разрешаем трафик только в пределах локальной сети
${fwcmd} add pass all from any to any via vx1

# Запрещаем прохождение фрагментированных пакетов
${fwcmd} add deny icmp from any to any frag

# Разрешаем прохождение ICMP пакетов
${fwcmd} add pass ICMP from any to any

# Разрешаем работу с SMTP протоколом
${fwcmd} add pass tcp from any to any 25 out
${fwcmd} add pass tcp from any 25 to any out

# Разрешаем работу с HTTPS протоколом
${fwcmd} add pass tcp from any to any 443 out
${fwcmd} add pass tcp from any 443 to any out

# Запрещаем работу снаружи с внутреним сервером компании
${fwcmd} add pass tcp from 199.199.199.10 to 200.200.200.5 80 via vx0
${fwcmd} add pass tcp from 200.200.200.5 80 to 199.199.199.10 via vx0

# Запрещаем работу снаружи с внутреним сервером компании
${fwcmd} add deny tcp from any to 200.200.200.5 80 in via vx0

# Разрешаем работу с HTTP протоколом
${fwcmd} add pass tcp from any to any 80 out via vx1
${fwcmd} add pass tcp from any 80 to any out via vx1

# Разрешаем работу по всем протоколам в пределах
# только локальной сети нашей компании
${fwcmd} add allow all from any to any via vx1

# Разрешаем работу с DNS серверами
${fwcmd} add pass udp from any to any 53
${fwcmd} add pass udp from any 53 to any

# Разрешаем работу с NEWS Серверами
${fwcmd} add pass udp from any to any 119 out via vx1
${fwcmd} add pass udp from any 119 to any out via vx1

# Разрешаем забор почты по POP3 протоколу
${fwcmd} add pass udp from any to any 110
${fwcmd} add pass udp from any 110 to any

# Разрешаем работу с FTP серверами
# Обратите внимание что 20 порт протокола TCP используется для
# передачи данных, помимо 21 порта.
${fwcmd} add pass tcp form any 21 to any
${fwcmd} add pass tcp from any to any 21
${fwcmd} add pass tcp from any 20 to any
${fwcmd} add pass tcp from any to any 20

# Разрешаем доступ по ssh с домашней машины
# администратора имеющей IP 200.200.200.15
${fwcmd} add pass tcp from 200.200.200.15 22 to {isp}
${fwcmd} add pass tcp from {isp} to 200.200.200.15 22

# Ограничиваем трафик с сетевой карточки vx2 в локальную сеть
# нашей компании
${fwcmd} add deny all from 192.168.1.0/24 to ${net}:${mask} via vx1
${fwcmd} add deny all from ${net}:${mask} to 192.168.1.0/24 via vx1

# Разрешаем работу по базовым портам TCP на интерфейсе vx2
${fwcmd} add pass tcp from 192.168.1.0/24 to any 25 via vx2
${fwcmd} add pass tcp from any 25 to 192.168.1.0/24 via vx2
${fwcmd} add pass tcp from 192.168.1.0/24 to any 110 via vx2
${fwcmd} add pass tcp from any 110 to 192.168.1.0/24 via vx2
${fwcmd} add pass udp from 192.168.1.0/24 to any 53 via vx2
${fwcmd} add pass udp from any 53 to 192.168.1.0/24 via vx2
${fwcmd} add pass tcp from 192.168.1.0/24 to any 80 via vx2
${fwcmd} add pass tcp from any 80 to 192.168.1.0/24 via vx2

# Ограничиваем полосу пропускания на интерфейсе vx2 в 64 Kb.
# для входящего трафика
${fwcmd} add pipe 1 ip from any to any in via vx0
${fwcmd} add pipe 1 config bw 64Kbit/s

# Ограничиваем полосу пропускания на интерфейсе vx2 в 64 Kb.
# для исходящего трафика
${fwcmd} add pipe 2 ip from any to any out via vx0
${fwcmd} add pipe 2 config bw 64Kbit/s


Для проверки работы правил вы можете воспользоваться популярным сканером
TCP/IP NMAP (входит в состав FreeBSD) дав например команду :
nmap 200.200.200.1 или nmap 200.200.200.2

находясь за пределами диапазона адресов вашей сети, или попросив об этом
вашего ISP.


3. Предотвращение подделки MAC адреса
-------------------------------------

Нам необходимо обезопасить наш роутер от возможности принятия пакетов с IP
адресами которые могут попасть в локальную сеть извне под видом
легальных пакетов TCP/IP входящие в диапазон сети 200.200.200.0/28.
Даже если это произойдет то на этот случай у нас есть жестко привязанная
таблица IP адресов к MAC адресам сетевых карт и роутера нашего ISP.

Иногда это бывает необходимо как мера от нечистоплотных сотрудников
которые меняют IP адресс своего хоста на адрес другого ПК, владелец
которого например находится в отпуске и шишки соотв. посыплятся на него ;)
Для начала вам нужно построить MAC таблицу адресов , где формат ее будет
примерно таким:

petya 00:20:af:4a:3e:e3
vasya 00:20:fg:3a:3e:21
sasha 00:20:fg:3a:3e:21
marina 00:20:fg:3a:3e:21
и сохранить ее в файле например /etc/ethers.

Для того чтобы узнать Ethernet адрес хоста достаточно на нем набрать arp -a.
При запуске на роутере arp -f /etc/ethers вся информация о
соответствии IP адреса и MAC адреса сетевой карточки при работе протокола
ARP будет браться из файла /etc/ether и замораживаться.

Это процесс можно автоматизировать запустив на роутере arpwatch (он есть
в портах FreeBSD) и сделав на каждом хосте файл /etc/hosts с описанием
пары name_hosts IP_adress и /etc/ethers с вышеприведенным форматом.
Когда появляется факт подмены IP адресса то arpwatch посылает письмо с
описанием проишедшего и таблица arp замораживается.


4. Настраиваем статистику.
--------------------------

Для создания стратистики мы будем использовать ipfm входящий в состав
пакетов FreeBSD. При инсталяции в /usr/local/etc/rc.d создается файл
ipfm.sh а в /usr/local/etc файл ipfm.conf. Его то как раз нам и нужно
отредактировать. Итак приступим :

##### FIRST LOGGING CONFIGURATION #####
# Описывем внутреннюю сеть с которой снимаем статистику
LOG 200.200.200.0/255.255.255.240 NOT WITH 200.200.0.0/255.255.0.0
# Присваиваем название файлу для сбора статистики
FILENAME /var/log/ipfm/local_net-%d.%m-%H.%M.%S
# Устанавливаем период записи в лог в нашем случае лог будет обновляться
# еженедально
TIME 7 day
SORT IN
RESOLVE

##### SECOND LOGGING CONFIGURATION #####
NEWLOG
# Описывем внутреннюю сеть нашего клиента 192.168.1.0/24
subnet 192.168.1.0/255.255.255.0 NOT WITH 192.168.0.0/255.255.0.0
# Задаем период записи в лог в данном случае 1 день
FILENAME /var/log/ipfm/ipfm-%d.%m-%H.%M.%S
# Log on a period of one week
TIME 1 day
SORT IN
RESOLVE

Если же требуется более детальная информация по протоколам и количеству
передаваемых пакетов то можно воспользоваться опцией count в ipfw :

# Подсчитываем входящий и исходящий трафик по HTTP протоколу
ipfw add count tcp from any to any 80 in via vx0
ipfw add count tcp from any to any 80 out via vx0

# Подсчитываем входящий и исходящий трафик по HTTP протоколу для клиентов
ipfw add count tcp from any to any 80 in via vx2
ipfw add count tcp from any to any 80 out via vx2
ipfw add count tcp from any to any 21 in via vx2
ipfw add count tcp from any to any 21 out via vx2

Еcли же вас интересует статистика с конкретного IP адреса то вы просто
указываете так :

ipfw add count tcp from any to 200.200.200.3 in via vx1

где 200.200.200.3 это IP адрес пользователя например Васи который
ежемесячно скачивает с www.playboy.com графические файлы.

Вы можете также закрыть доступ к этому сайту например таким способом :
ipfw add log deny all from any to www.playboy.com
с записью в лог попыток обращения к нему.

Графическая статистика строится с применением пакеты MRTG (Multi Router
Transfeer Grapheer) при использовании агента snmp запущенного на роутере.
Также необходимо установить на роутере средства обнаружения атак, но это
уже тема для другой статьи.
1295 Прочтений •  [Настройка роутера с файерволом на базе FreeBSD (freebsd firewall ipfw route arp mac)] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Настройка роутера с файерволом на б... Ukraine Vova 08.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка