Фаервол под ASP Linux v10

Аватар пользователя hunter2

Здравствуйте, господа линуксоиды. Прошу помощи.. Очень сильно прошу Улыбка

Появилась необходимость поднять фаервол между двумя сегментами частной сети - в одной "тикает" оборудование АСУ ТП, другая - офисная. Базой АСУ ТП, впрочим как и офиса является винда 2000. Ограничение доступа по идее можно было бы осуществлять средствами виндов под серверами АСУ ТП, но уж слишком уж за них переживается. "Поднял" iptables, и решил скриптами giptables сконфигурить все это дело. Т.е. должен получиться межсетевой экран на базе ASP Linux v10 с iptables на борту и скриптами giptables над ним. Все в теории достаточно радужно, но...

Казалось что на первых этапах можно было бы все разрешить, и далее формировать правила iptables. Сознаю, что этот путь не верный по соображениям безопасности
:-?

giptables.conf:

MONOLITIC_KERNEL="no"

# Interface 0: This is our external network interface
# It is directly connected to Internet

INTERFACE0="eth0"
INTERFACE0_IPADDR="/lib/giptables/if_ipaddr $INTERFACE0"
ANY_IPADDR="0/0"

# Interface 1: This is our internal network interface
# It is directly connected to our internal Network 1

INTERFACE1="eth1"
INTERFACE1_IPADDR="10.104.16.48"
NETWORK1="10.0.0.0/8"

# Do you need Network Address Translation for your internal network?

NETWORK1_NAT="no"

# Your name servers ip address

ISP_PRIMARY_DNS_SERVER="10.104.16.10"
ISP_SECONDARY_DNS_SERVER="10.104.16.5"

# SYSLOG server ip address

# SYSLOG_SERVER="c.c.c.c"

# Loopback interface

LOOPBACK_INTERFACE="lo" # Loopback interface

# Port declarations, do not change them

PRIV_PORTS="0:1023"
UNPRIV_PORTS="1024:65535"

# ----------------------------------------------------------------------------
# Loading custom firewall rules from /etc/rc.d/rc.giptables.custom
#

LOAD_CUSTOM_RULES="no"

Соответсвенно сделал форвардинг всего с интерфесу0 eth0 на интерфейс eth1 - редактированием конфига giptables для шлюза, разрешил все типы атак - думалось все можно в этапе отладки вернуть в нормальное состояние, соответственно сгенерились правила для iptables :

# Creating interface 0 chains
iptables -N interface0_in
iptables -N interface0_out
iptables -A INPUT -i eth0 -j interface0_in
iptables -A OUTPUT -o eth0 -j interface0_out

# Creating interface 1 chains
iptables -N interface1_in
iptables -N interface1_out
iptables -A INPUT -i eth1 -j interface1_in
iptables -A OUTPUT -o eth1 -j interface1_out
# Creating network 1 forward chains
iptables -N network1_in
iptables -N network1_out
iptables -A FORWARD -i eth0 -o eth1 -j network1_in
iptables -A FORWARD -i eth1 -o eth0 -j network1_out

далее все цепи заканчиваются ACCEPT

инфа ifconfig такова:

eth0 Link encap:Ethernet HWaddr 00:04:76:0F:3A:80
inet6 addr: fe80::204:76ff:fe0f:3a80/64 Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:11879 errors:0 dropped:0 overruns:0 frame:0
TX packets:778 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1141069 (1.0 Mb) TX bytes:129964 (126.9 Kb)
Interrupt:11 Base address:0xc000

eth1 Link encap:Ethernet HWaddr 00:04:76:90:BA:46
inet addr:10.104.16.48 Bcast:10.104.16.255 Mask:255.255.255.0
inet6 addr: fe80::204:76ff:fe90:ba46/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:619 errors:0 dropped:0 overruns:0 frame:0
TX packets:418 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:49604 (48.4 Kb) TX bytes:35652 (34.8 Kb)
Interrupt:5 Base address:0xc400

eth1 - внутренний и-фасе - типа защищаемый
eth0 - внешний.

текущая ужо задача Грустный свелась к форвардингу все-го лишь - потом уж думаю разберусь...

Положение дел пока такое - пингуется с внутренней сети - теста ради на eth1 навесил тачку под винды2000 eth0, а eth1 прописана в качестве шлюза, ну и собственно пинки до шлюза идут... смотрю положение дел iptstate при попытке доступа во внешнюю сетку (за eth0 ) при попытке фтп, конект зависает - на внутренней клиентской - таймаут,а на iptstate засивон на этапе син-пакетов Грустный что делать?

выложу инфу какой нехватает для полноты картины...

Аватар пользователя DRVTiny

Re: фаервол под ASP Linux v10

Странный способ задавать вопросы. Сказано очень много, но при этом всё равно непонятно ничего, полный сумбур (наверное, Вы не очень любите математику... А зря: она "ум в порядок приводит" Улыбка ). Например, я не очень понимаю, что значит вот это:

Цитата:
Положение дел пока такое - пингуется с внутренней сети - теста ради на eth1 навесил тачку под винды2000 eth0, а eth1 прописана в качестве шлюза, ну и собственно пинки до шлюза идут...

"eth0" - это опечатка? Гм, ладно, тогда давайте вывод команды route -n.

Цитата:
смотрю положение дел iptstate при попытке доступа во внешнюю сетку (за eth0 ) при попытке фтп, конект зависает

Именно ftp? Т.е. всё остальное работает, как часы, а вот проклятый ftp подводит. А если просто ping ya.ru через шлюз с клиентской машины во внутренней сети выполнить? Пингуется? А IP-адреса во внутренней сети у Вас не маскируются никак? (т.е. они видны из внешней сети?) А сам шлюз имеет реальный IP, видимый из инета или он просто является программным маршрутизатором между внутренними сетями?

# Creating interface 0 chains
iptables -N interface0_in
iptables -N interface0_out
iptables -A INPUT -i eth0 -j interface0_in
iptables -A OUTPUT -o eth0 -j interface0_out

# Creating interface 1 chains
iptables -N interface1_in
iptables -N interface1_out
iptables -A INPUT -i eth1 -j interface1_in
iptables -A OUTPUT -o eth1 -j interface1_out
# Creating network 1 forward chains
iptables -N network1_in
iptables -N network1_out
iptables -A FORWARD -i eth0 -o eth1 -j network1_in
iptables -A FORWARD -i eth1 -o eth0 -j network1_out

Если Вы просто выполните service iptables stop под root'ом, то получите тот же самый результат. Для начала Вам явно нужно хотя бы echo "1" > /proc/sys/net/ipv4/ip_forward (разрешив тем самым ядру Linux осуществлять маршутиризацию с перебросом пакетов между сетевыми интерфейсами) выполнить, после чего прописать это куда-нибудь в стартовые скрипты.

Но вообще правила для IPTables лучше вручную писать. Целее будете.

Аватар пользователя hunter2

Re: фаервол под ASP Linux v10

Пардон - не было возможности вовремя отреагировать -обстоятельства Грустный

Думаю, инфа дана в сумбурном несколько стиле -постараюсь истравить:

есть подсетка на255,255,255,0 , которая не имеет доступа в интернет. Диапазон статических ip начинается с 1 до 20 -в нем "тикают" АРМы и сервера, доступ к которым нужно ограничить большинству офисных машин в той же сети, сидящих но вне диапазона статики. на первым ip в сетке сидит циска. Статика, за исключением х.х.х.1 (циска) спрятана должна быть за фаерволом - суть которого ограничение доступа netbios +tcp/ip и блокирование всего прочего. На первом этапе нужен форвардинг - другими словами просто репиттер, над которым в дальнейшем буду шаманить для приготовления правил ограничения доступа. Маскарадинг не требуется - с некоторых внешних хостов желательно видеть внутренние - и АРМы и сервера.

хост под защитой - х.х.х.9. у фаервола х.х.х.12 (внутренноий интерфейс eth0 ) и х.х.х.13 (внешний интерфейс eth1). с фаервола пингуется все и вся. С х.х.х.9 пингуются оба интерфейса фаервола, но не пингуется циска на х.х.х.1, и прочие внешние хосты, с офисных станций пингуются оба интерфейса фаервола, но не х.х.х.9.

/etc/sysctl.conf содержит в том числе
net.ipv4.ip_forward=1

таблицы маршрутизации таковы
Destination Gateway Genmask Flags Metric Ref Use Iface
10.64.26.1 0.0.0.0 255.255.255.255 UH 0 0 0 eth1 // циска
10.64.26.9 0.0.0.0 255.255.255.255 UH 0 0 0 eth0 // защищаемый хост
127.0.0.1 0.0.0.0 255.255.255.255 UH 0 0 0 lo
127.0.0.0 127.0.0.1 255.255.255.0 UG 0 0 0 lo
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 eth1

дефолтные политики iptables в таблице FILTER ACCEPT
giptables благополучно похоронен. выполнена пара строк:

iptables -A FORWARD -i etho -o eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

Но проблема осталась - пингуются интерфейсы фаервола, но сквозь него ничего не проходит. Что делать?

Аватар пользователя DRVTiny

Re: фаервол под ASP Linux v10

Что-то я ничего не понимаю... Вы что, хотите поставить маршрутизатор, связывающий 2 части одной и той же сети 10.64.26.0? Но такого же не бывает... Либо сеть разбивается на 2 (что логично), либо объясните мне, как Вы себе представляете, по какому принципу может осуществляться маршрутиризация и перенаправление пакетов с одного интерфейса на другой в такой странной конфигурации? Есть, правда, довольно своеобразный вариант, когда для каждого из хостов со "статическими" адресами будет прописываться отдельный маршрут, но только ЗАЧЕМ это нужно, если можно просто создать подсеть?
Или у Вас динамические адреса назначаются для отдельной подсети? Хотя вообще по всем признакам у Вас оба интерфейса фаерволла вроде как одной сети принадлежат. Первый раз с таким сталкиваюсь... Уж хотя бы из тех соображений, что у Вас сеть имеет ярко выраженную гетерогенную структуру, её надо было изначально разделить на 3 зоны: демилитаризованную, статическую (служебную, где все внутренние сервера находятся) и клиентскую (LAN).ъ

Цитата:
Destination Gateway Genmask Flags Metric Ref Use Iface
10.64.26.1 0.0.0.0 255.255.255.255 UH 0 0 0 eth1 // циска
10.64.26.9 0.0.0.0 255.255.255.255 UH 0 0 0 eth0 // защищаемый хост
127.0.0.1 0.0.0.0 255.255.255.255 UH 0 0 0 lo
127.0.0.0 127.0.0.1 255.255.255.0 UG 0 0 0 lo
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 eth1

А зачем это: 10.64.26.1 0.0.0.0 255.255.255.255 UH 0 0 0 eth1 // циска,
Если есть это: 0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 eth1 ?
И что, Вам нужно фаерволлом закрыть только хост 10.64.26.9? (если так, то всё вроде бы разумно, только как Вы заставите все хосты в сети 10.64.26.0 обращаться к 10.64.26.9 именно через 10.64.26.12, а не напрямую через общий концентратор? Тогда уж и на всех клиентских компах таблица машрутиризации должна быть настроена соотв. образом) И всё? А как же пресловутые статические 10.64.26.1-20?

Аватар пользователя sergeil

Re: фаервол под ASP Linux v10

hunter2

Цитата:
есть подсетка на255,255,255,0 , которая не имеет доступа в интернет.

Так, кажется понятно что Вы хотите сделать, но не понятно как Вы это планируете реализовать маршрутизатором, который работает на 3-м уровне OSI (сетевом). То, что Вы хотите сделать и в том виде, в каком Вы это себе представляете, можна реализовать только "умным" мостом (bridge), который работает на 2-м уровне OSI. Linux можна попытаться настроить в качестве моста, но насколько эти возможности развиты - не знаю. Лично я никогда этим не занимался...

Для корректной работы маршрутизатора Вашу сеть необходимо поделить на подсети, в каждой из которых окажутся хосты с одинаковым (близким) уровнем доступа. Затем необходимо настроить маршрутизацию между этими подсетями. И только после того, как пакеты пойдут через Ваш рутер, к ним можна применить соответствующие правила firewall.

Аватар пользователя hunter2

Re: фаервол под ASP Linux v10

господа, к сожалению нет возможности выделить в подсеть данные хосты, хоть это и разумно в высшей мере. Иначе проблемы таковой не было бы. Грустный

второй уровень OSI...
Быть может есть возможность транслировать кадры с одного интерфейса на другой (со внешнего на наружный, и наоборот) - другими словами сотворить простой репиттер?

Аватар пользователя sergeil

Re: фаервол под ASP Linux v10

Цитата:
hunter2 пишет:
другими словами сотворить простой репиттер?

Ну, то, что он простой (в смысле примитивный), я-бы не стал утверждать...
http://linux-net.osdl.org/index.php/Bridge#Bridging_and_Firewalling

Аватар пользователя DRVTiny

Re: фаервол под ASP Linux v10

Кстати, несмотря на то, что все почему-то упорно называют IPTables фаерволлом, он по сути вовсе таковым не является. IPTables - это фильтр пакетов, при чём довольно-таки немудрёный. Для того, чтобы в Linux работало нечто хотя бы отдалённо напоминающее мощные фаерволлы наподобие Agnitum Outpost для Windows, нужно как минимум ещё установить и настроить Snort (Network Intrusion Detection System) и какой-нибудь из локальных IDS'ов (например, классический LIDS или GrSecurity).

Аватар пользователя sergeil

Re: фаервол под ASP Linux v10

Цитата:
DRVTiny пишет:
Кстати, несмотря на то, что все почему-то упорно называют IPTables фаерволлом, он по сути вовсе таковым не является. IPTables - это фильтр пакетов, при чём довольно-таки немудрёный

Пока не нашел, где-бы утверждалось, что это должно быть больше, чем фильтр пакетов. http://www.google.com.ua/search?hl=ru&lr=&oi=defmore&defl=ru&q=define:fi...

Цитата:
Для того, чтобы в Linux работало нечто хотя бы отдалённо напоминающее мощные фаерволлы наподобие Agnitum Outpost для Windows

Если говорить о действительно мощных firewall для Windows, то я-бы, пожалуй, упомянул CheckPoint Firewall http://www.checkpoint.com . Это действительно профессиональное решение.

Аватар пользователя DRVTiny

Re: фаервол под ASP Linux v10

Цитата:
брандмауэр - межсетевой экран - средство, защищающее сеть организации, соединяемую с Интернет от несанкционированного доступа внешних пользователей.

Если IPtables соответствует этому описанию, то я, наверное, принц Фердинанд, герцог австрийский.

Цитата:
Если говорить о действительно мощных firewall для Windows, то я-бы, пожалуй, упомянул CheckPoint Firewall http://www.checkpoint.com . Это действительно профессиональное решение.

Возможно.. Но мне, как это ни странно, нужен всё-таки фаерволл под Lniux. В первую очередь для того, чтобы избежать сложных установки IDS-систем типа GrSecurity, которые для простейшго инет- шлюза тяжеловаты будут. Да и время для настройки у меня сильно ограничено...

Аватар пользователя woodoo

Re: фаервол под ASP Linux v10

Если хочется все-таки бридж - пакеты bridge-utils и ebtables. Входят в состав 10, 11.
Но и не проблема, imho, реализовать на сетевом уровне. Главное - определиться.

DRVTiny писал(а):
я, наверное, принц Фердинанд, герцог австрийский.

Требуется уточнение - до или после Сараево? ;-)

Аватар пользователя DRVTiny

Re: фаервол под ASP Linux v10

Цитата:
Если хочется все-таки бридж - пакеты bridge-utils и ebtables. Входят в состав 10, 11.
Но и не проблема, imho, реализовать на сетевом уровне. Главное - определиться.

Ну а на реальных серверах это используется? И для чего этот бридж предназначен? Например, мне нужно фильтровать исходящий трафик шлюза по PID генерирующих его программ - это хотя бы гипотетически осуществимо на практике?

Цитата:
Требуется уточнение - до или после Сараево?

Приятно, что ещё хоть кто-то помнит некоторые исторические факты за рамками историй стран СНГ (а эти истории почему-то не больно-то согласуются друг с другом)...
Уточняю: после Сараево, после Улыбка

Аватар пользователя sergeil

Re: фаервол под ASP Linux v10

Цитата:
DRVTiny пишет:
Ну а на реальных серверах это используется?

Это используется на реальных мостах. Или на комбинированных мостах/маршрутизаторах.

Цитата:
И для чего этот бридж предназначен?

Мосты работают на MAC-подуровне ... канального уровня модели OSI. Они создают физически и логически разделенные сегменты с целью сокращения траффика внутри сегмента....
CCNP, Маршрутизация, Учебное руководство

Цитата:
Например, мне нужно фильтровать исходящий трафик шлюза по PID генерирующих его программ - это хотя бы гипотетически осуществимо на практике?

Маршрутизаторы и мосты - это самостоятельные устройства, которые работают на втором (мосты) и третьем (маршрутизаторы) уровне OSI и не обязаны знать о существовании чего-либо еще. PID представлен на канальном и сетевом уровне OSI? Если не ошибаюсь, такой абстракции там нет.

Аватар пользователя DRVTiny

Re: фаервол под ASP Linux v10

Цитата:
Если не ошибаюсь, такой абстракции там нет.

Ну так ведь и таких абстракций, как UID там не предусмотрено, а тем не менее IPTables фильтрует локально генерируемый трафик по идентификатору пользователя. Мне-то ведь нужно отфильтровать трафик, генерируемый на самом шлюзе.
Кстати, а для того, чтобы организовать зашифрованное подключение к инету из локальной сети с парольной аутентификацей, нужно либо VPN-сервер настраивать, либо создавать собственный SSH-туннель, правильно? Если этот так, то, пожалуйста, обратите наконец внимание на этот вот мой топик: https://asplinux.net/node/1642(это я ко всем обращаюсь)

Аватар пользователя hunter2

Re: фаервол под ASP Linux v10

Огромное всем спасибо Улыбка фильтрующий мост работает Улыбка :thanks:

Аватар пользователя DRVTiny

Re: фаервол под ASP Linux v10

Цитата:
Огромное всем спасибо

Так было бы за что говорить спасибо: инчего дельного мы Вам посоветовать не смогли... Это Вам кто-нибудь огромное спасибо скажет, когда Вы человеку, столкнувшемуся с аналогичной проблемой, объясните, как Вы её у себя решили.

RSS-материал