Автор Тема: Настройка FireHOL  (Прочитано 6383 раз)

Оффлайн victor53p

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 599
  • Карма: +61/-0
  • Чтобы просто работало!
    • Ubuntu Linux в Воронежской области
Настройка FireHOL
« : 16 Апреля 2008, 19:09:05 »
источник http://firehol.sourceforge.net/
1. Создаем конфигурацию файл для FireHOL-а, который настроит iptables.

Есть две сетевые карты, одна смотрит в интернет- это eth1, а другая в локальную сеть- eth0 (home).
Установим FireHOL:
sudo aptitude install fireholРазрешим его запускать
sudo vim /etc/default/firehol
меняем:
START_FIREHOL=NO на START_FIREHOL=YES

и запускаем:
sudo /etc/init.d/firehol start
если эта штука ругается, что характерно для старых версий Ubuntu, то поправим это дело с помощью следующих команд:
sudo sed 's/%q/%b/g' /lib/firehol/firehol > TMPFILE
sudo cp /lib/firehol/firehol /lib/firehol/firehol.backup
sudo mv TMPFILE /lib/firehol/firehol
sudo chmod 744 /lib/firehol/firehol

Ну а далее предлагаю почти переведенный текст

Во-первых заявляем для каждого сетевого интерфейса, указанных выше, чем они занимаются:

version 5

interface eth0 home

interface eth1 internet
   


Теперь мы можем добавлять серверы для каждого интерфейса (на основе таблицы выше). Помните, что эти серверы являются все работающие на брандмауэр пребывания:

version 5

interface eth0 home
server dns accept
server ftp accept
server samba accept
server squid accept
server dhcp accept
server http accept
server ssh accept
server icmp accept

interface eth1 internet
server smtp accept
server http accept
server ftp accept

Теперь мы можем добавить клиентов для каждого интерфейса. Помните, что эти клиенты все работает на брандмауэр пребывания:

version 5

interface eth0 home
server dns accept
server ftp accept
server samba accept
server squid accept
server dhcp accept
server http accept
server ssh accept
server icmp accept

client samba accept
client icmp accept

interface eth1 internet
server smtp accept
server http accept
server ftp accept

client all accept


На данный момент каждый человек должен иметь возможность функционировать в-правильно с брандмауэром пребывания, но все же мы не любой маршрут движения. Это означает, что Линукс поле могут "видеть" все рабочие станции на локальной сети, и эти рабочие места может "увидеть" Линукс поле, а также о том, что Линукс поле может "увидеть" Интернет и сети Интернет может "увидеть" серверов на eth1 интерфейс в Линукс поле, но ЛВС рабочие не могут "видеть" Интернет ".

Сейчас настало время для настройки маршрутизации. Для этого нам надо будет определить набор маршрутизаторов для всех интерфейс комбинаций. Это означает, что если у нас есть два интерфейса, нам придется определить два маршрутизаторов. Если мы будем иметь 3 интерфейсов, мы должны будем определить 6 маршрутизаторы, и так далее.

version 5

interface eth0 home
server dns accept
server ftp accept
server samba accept
server squid accept
server dhcp accept
server http accept
server ssh accept
server icmp accept

client samba accept
client icmp accept

interface eth1 internet
server smtp accept
server http accept
server ftp accept

client all accept

router home2internet inface eth0 outface eth1

router internet2home inface eth1 outface eth0
   
Помните, что inface и вызывающе соответствующие запросы, а не ответов. Это означает, что маршрутизатор home2internet матчей все запросы выходцами из eth0 и выходите на eth1 (и, разумеется, их относительной ответов, в противоположном направлении), в то время как маршрутизатор internet2home матчей все запросы из Интернета к домашней сети (и их относительная ответы назад).

Теперь, на основе ролей таблице в предыдущем разделе мы увидим, что мы должны маршрут все запросы поступают от eth0 и выходите на eth1, и не маршрут любой запрос из Интернета и выходите к домашней сети. Вот он:

version 5

interface eth0 home
server dns accept
server ftp accept
server samba accept
server squid accept
server dhcp accept
server http accept
server ssh accept
server icmp accept

client samba accept
client icmp accept

interface eth1 internet
server smtp accept
server http accept
server ftp accept

client all accept


router home2internet inface eth0 outface eth1
route all accept

router internet2home inface eth1 outface eth0
   

Это он. Мы сделали! (для фильтрации часть брандмауэра. Смотрите ниже для создания NAT слишком.)

2. Оптимизация брандмауэр

Чтобы сэкономить время ввода, Вы можете использовать этот:

version 5

interface eth0 home
server "dns ftp samba squid dhcp http ssh icmp" accept
client "samba icmp" accept

interface eth1 internet
server "smtp http ftp" accept
client all accept

router home2internet inface eth0 outface eth1
route all accept

Заметьте, что мы можем удалить любой маршрутизатор заявления, не имея никаких правил в них, так что internet2home маршрутизатор был ликвидирован.

Мы, возможно, хотели бы иметь дополнительные проверки на каждом интерфейсе для предотвращения спуфинга. Чтобы найти адреса ваших сетевых интерфейсов использовать ip адрес шоу и найти IP сетей за каждый интерфейс использовать ip маршрут шоу.

version 5

# The network of our eth0 LAN.
home_ips="195.97.5.192/28"

interface eth0 home src "${home_ips}"
server "dns ftp samba squid dhcp http ssh icmp" accept
client "samba icmp" accept

interface eth1 internet src not "${home_ips} ${UNROUTABLE_IPS}"
server "smtp http ftp" accept
client all accept

router home2internet inface eth0 outface eth1
route all accept

UNROUTABLE_IPS является переменной определяется FireHOL и содержит все IP-адреса, которые не должны быть перенаправлен в Интернете.

Если домашней сети, не было реального IP-адреса, мы бы, чтобы добавить маскарад команда в нашей маршрутизатора:

version 5

# The network of our eth0 LAN.
home_ips="195.97.5.192/28"

interface eth0 home src "${home_ips}"
server "dns ftp samba squid dhcp http ssh icmp" accept
client "samba icmp" accept

interface eth1 internet src not "${home_ips} ${UNROUTABLE_IPS}"
server "smtp http ftp" accept
client all accept

router home2internet inface eth0 outface eth1
masquerade
route all accept

В маскарад команда устанавливает себя на вызывающе в маршрутизатор.

Теперь мы можем защитить наших eth1 интерфейс еще больше. Для этого мы используем защиту команды:

version 5

# The network of our eth0 LAN.
home_ips="195.97.5.192/28"

interface eth0 home src "${home_ips}"
server "dns ftp samba squid dhcp http ssh icmp" accept
client "samba icmp" accept

interface eth1 internet src not "${home_ips} ${UNROUTABLE_IPS}"
protection strong 10/sec 10
server "smtp http ftp" accept
client all accept

router home2internet inface eth0 outface eth1
masquerade
route all accept

Это может быть хорошо, если вместо сбросив неправильно пакетов происходит от Ethernet, чтобы отвергнуть их с тем, что наши рабочие уже не будет времени, если мы делаем что-то, что не разрешено. Для этого мы используем политику команды:
version 5

# The network of our eth0 LAN.
home_ips="195.97.5.192/28"

interface eth0 home src "${home_ips}"
policy reject
server "dns ftp samba squid dhcp http ssh icmp" accept
client "samba icmp" accept

interface eth1 internet src not "${home_ips} ${UNROUTABLE_IPS}"
protection strong 10/sec 10
server "smtp http ftp" accept
client all accept

router home2internet inface eth0 outface eth1
masquerade
route all accept

Некоторые серверы в Интернете пытаются ident обратно клиенту, чтобы найти информацию о пользователе с просьбой о службе. С нашей нынешней брандмауэра, такие серверы придется тайм, прежде чем принять нашу просьбу. Для скорости думает, у нас мог бы написать:

version 5

# The network of our eth0 LAN.
home_ips="195.97.5.192/28"

interface eth0 home src "${home_ips}"
policy reject
server "dns ftp samba squid dhcp http ssh icmp" accept
client "samba icmp" accept

interface eth1 internet src not "${home_ips} ${UNROUTABLE_IPS}"
protection strong 10/sec 10
server "smtp http ftp" accept

server ident reject with tcp-reset

client all accept

router home2internet inface eth0 outface eth1
masquerade
route all accept

router internet2home inface eth1 outface eth0
route ident reject with tcp-reset

Заметим, что теперь мы добавили маршрутизатора, мы устранены выше, так как нам необходимо добавить сервис к нему.

Весь маршрут схема может быть переписана следующим образом
 
version 5

# The network of our eth0 LAN.
home_ips="195.97.5.192/28"

interface eth0 home src "${home_ips}"
policy reject
server "dns ftp samba squid dhcp http ssh icmp" accept
client "samba icmp" accept

interface eth1 internet src not "${home_ips} ${UNROUTABLE_IPS}"
protection strong 10/sec 10
server "smtp http ftp" accept

server ident reject with tcp-reset

client all accept

router internet2home inface eth1 outface eth0
masquerade reverse
client all accept
server ident reject with tcp-reset
   

Сейчас мы вызвали первого маршрутизатора, но мы определили все во второй. Мы использовали обратный ключевое слово в маскарад чтобы создать в inface этот раз.

Мы могли бы использовать первый маршрутизатор (home2internet) делать все, но тогда клиент и сервер команды должны быть отменена (сервер все, клиент ident), который будет вводить в заблуждение.
« Последнее редактирование: 16 Апреля 2008, 19:48:56 от victor53p »