Настройки iptables для server/router (all in one)

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

Правила адаптированы под router/server общего назначения.

1. Используетсь три bash скрипта:
1.1. Стартующий скрипт
1.2. Скрипт-библиотека.
1.3. Скрипт-настройка под конкретный хост.

2. Правила настраиваются запуском одного скрипта.

3. Правила потом можно сохранить.
4. Хост может иметь более одного внешнего интерфейса
5. Хост может иметь более одного внутреннего интерфейса
6. Хост может иметь более одного одного VPN интерфейса (KLIPS openswan, GRE).
7. Скрипт предполагает конфигурацию MultiHome (более одного проайдера за раз)
8. Скрипт предполагает использование VPN через нескольких провайдеров (повышенная отказоустойчивасть)

Хост считается достаточно производительным, что-бы не экономить каждый такт процессора.

Может быть использовано сообществом как готовое решение при минимальной адаптации под свои нужды
Если нужно нарисовать в заголовке GPL лицензию - без проблем...

Вы должны быть достаточно разумны что-бы не запустить скрипт сразу после скачивания. Реальные адреса из скрипта настроек убраны и заменены шаблонами. Вы получите ошибку выполнения...

Скрипт предполагается оптимизировать по производительности, но это - следующий этап.
Уже проработана концепция и принципы построения пользовательских цепочек, но еще нет реализации...

ВложениеРазмер
a.zip7.53 КБ
Аватар пользователя Archont

Re: Настройки iptables для server/router (all in one)

Сергей! Так где же сам скрипт?!

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

Re: Настройки iptables для server/router (all in one)

Цитата:
Archont писал:
Сергей! Так где же сам скрипт?!

Он есть, но еще не опубликован и для твоей учетной записи недоступен...
Значит, еще не прошел соответствующую экспертизу ...
Нужно ждать ...

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

Re: Настройки iptables для server/router (all in one)

Пролистай пост Сергея до конца. В самом низу поста будет "Вложенный файл(ы):"

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

Re: Настройки iptables для server/router (all in one)

Цитата:
slavaz писал:
Пролистай пост Сергея до конца. В самом низу поста будет "Вложенный файл(ы):"

Я специально отлогинился что-бы посмотреть...
анонимусу точно недоступен...
Доступен ли обычному пользователю - не знаю.
Нужно завести клон...

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

Re: Настройки iptables для server/router (all in one)

А сейчас? Вроде должно появится...

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

Re: Настройки iptables для server/router (all in one)

Цитата:
slavaz писал:
Пролистай пост Сергея до конца. В самом низу поста будет "Вложенный файл(ы):"

Слава, я очень надеялся, что перед публикацией скрипт пройдет аудит Улыбка

Может баги всплывут ...

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

Re: Настройки iptables для server/router (all in one)

Сергей, я был в полной уверенности, что аудит не нужен и скрипт виден всем... уверенность испарилась минут 15 назад... Катается от смеха

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

Re: Настройки iptables для server/router (all in one)

Цитата:
slavaz писал:
Сергей, я был в полной уверенности, что аудит не нужен и скрипт виден всем... уверенность испарилась минут 15 назад... Катается от смеха

Слава, верить нельзя никому..., даже мне.

Ребята, посмотрите скрипт на досуге, пожалуйста.
Я очень надеюсь получить Ваше заключение как экспертов ...

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

Re: Настройки iptables для server/router (all in one)

Сегодня скрипт доступен даже анонимусу!
А скрипт посмотрю сегодня-же.

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

Re: Настройки iptables для server/router (all in one)

Первые впечатления.
1) В скриптах отсутствуют секции start | stop | save, т.е. средствами самих скриптов правила можно только включить, но не сохранить и не выключить. Это неудобно.
2) Маловато комментариев (т.е. их много, но есть неочевидные вещи, смысл которых неясен из текста).
Так, например, я не понял, что hostname в iptables.hostname.set нужно заменить на имя хоста, пока не запустил стартовый скрипт.
3) Вопреки ожиданиям Сергея правила прекрасно стартуют без всякой правки iptables.hostname.set, хотя на моем хосте вовсе нет 172.16.х.х, а вовсе даже 192.168.х.х, нет интерфейсов sec и gre, и вообще есть один физический интерфейс с двумя дополнительными алиасами на другие сети и tun0 для OpenVPN туннеля. Тем не менее я видел цепочки правил для gre интерфейса. Загадка.

Rem: Загадка разгадана, это не интерфейс, а тип IP пакетов (хотя я в своем файле /etc/protocols не нашел типа sec, а правила для него генерируются).

4) При поверхностном взгляде пока неясно, каким образом можно "на ходу" менять правила, если возникнет такая необходимость. Да и не "на ходу" тоже не совсем очевидно, т.к. поиск где и как взводятся переменные ${PROTO}, ${IFACE}, $SERVICES даже в трех скриптах достаточно труден, если юзер не "на ты" с shell-программами, а уж о совсем слабом пользователе я просто молчу.

Более подробно создавшиеся правила пока не анализировал.

Совершенно непонятно, что означают и для чего предназначены переменные homeLN, homeVOLIA, homeLAN и какие значения там нужно прописывать. По крайней мере изменение
#export homeLAN="xxx.xxx.xxx.0/24,172.16.xxx.xx,172.16.xxx.xx"
export homeLAN="192.168.10.0/24"
не привело к изменению создавшихся правил, по крайней мере я не заметил:
правила
iptables -L | grep 172.1
DROP all -- 172.16.0.0/12 172.16.0.0/12
DROP all -- 172.16.0.0/12 172.16.0.0/12
DROP all -- 172.16.0.0/12 172.16.0.0/12
(зачем трижды?!) создавались при обоих способах, а насчет 192.168... как не было ничего, так и не появилось.
Правила записи значений других переменных в iptables.hostname.set также совсем непонятны, а комментариев нет Грустный

Опять же, без серьезного анализа скриптов неясно, что, где и как менять для своих нужд пользователю другого типа VPN (OpenVPN, как у меня, например).

Пожалуй на этом эксперименты пока закончу, т.к. Сергею проще поправить свои скрипты, нежели мне в них разобраться...

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

Re: Настройки iptables для server/router (all in one)

Цитата:
Archont писал:
Первые впечатления.
1) В скриптах отсутствуют секции start | stop | save, т.е. средствами самих скриптов правила можно только включить, но не сохранить и не выключить. Это неудобно.

Скрипт предназначен для настройки правил. Но предусмотрен откат на старые правила в случае ошибки...
Сохранение удалено преднамеренно ...
Если в правилах возникает ошибка, то восстановление старых правил производится.
root# service iptables restart
Если все устраивает, то
root# service iptables save

Цитата:
2) Маловато комментариев (т.е. их много, но есть неочевидные вещи, смысл которых неясен из текста).

Ну..., как бы да.

Цитата:
Так, например, я не понял, что hostname в iptables.hostname.set нужно заменить на имя хоста, пока не запустил стартовый скрипт.

Да, это позволяет делать привязку к хосту...

Цитата:
3) Вопреки ожиданиям Сергея правила прекрасно стартуют без всякой правки iptables.hostname.set,

Я старался Улыбка

Цитата:
хотя на моем хосте вовсе нет 172.16.х.х,

Зарезервировано для тунелей GRE через ipsec (http://www.openswan.org/)

Цитата:
а вовсе даже 192.168.х.х,

Извините, это моя домашняя LAN, которая внешняя для этого хоста и является одной из сетей, доступной через ipsec.

Цитата:
нет интерфейсов sec

Устройства ipsec0,ipsec1, ... - это сетевые устройства ipsec, которые превносятся модулем KLIPS (http://www.openswan.org/)
В отличие от нативного IPSEC ядра 2.6, KLIPS позволяет разделять шифрованный и нешифрованный потоки...

Цитата:
и gre,

http://lartc.org/howto/lartc.tunnel.gre.html

Цитата:
и вообще есть один физический интерфейс с двумя дополнительными алиасами на другие сети и tun0 для OpenVPN туннеля.

tun0 в Вашей конфигурации - это аналог ipsec+ или gre+ в моей конфигурации. Выполняют одни задачи.

Цитата:
Тем не менее я видел цепочки правил для gre интерфейса.

GRE over IPSEC... и никакого мошенничества. Возможность проброса через криптованный канал траффика, отличного от IP.

Цитата:
Rem: Загадка разгадана, это не интерфейс, а тип IP пакетов (хотя я в своем файле /etc/protocols не нашел типа sec, а правила для него генерируются).

Протоколы 50 и 51 - это IPSEC

Цитата:
4) При поверхностном взгляде пока неясно, каким образом можно "на ходу" менять правила, если возникнет такая необходимость.

Настройка правил осуществляется только в стартовом скрипте: RUN.iptables*
Библиотека(статична): iptables.rules*
Файл настроек: iptables.`hostname`.set - привязка к хосту.

Цитата:
Да и не "на ходу" тоже не совсем очевидно, т.к. поиск где и как взводятся переменные ${PROTO}, ${IFACE}, $SERVICES даже в трех скриптах достаточно труден, если юзер не "на ты" с shell-программами, а уж о совсем слабом пользователе я просто молчу.

Там где все эти "страшные" скрипты, ничего менять не следует..., тем более юзеру.

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

Re: Настройки iptables для server/router (all in one)

Совершенно непонятно, что означают и для чего предназначены переменные homeLN, homeVOLIA, homeLAN и какие значения там нужно прописывать. По крайней мере изменение
#export homeLAN="xxx.xxx.xxx.0/24,172.16.xxx.xx,172.16.xxx.xx"
export homeLAN="192.168.10.0/24"
не привело к изменению создавшихся правил, по крайней мере я не заметил:
правила
iptables -L | grep 172.1
DROP all -- 172.16.0.0/12 172.16.0.0/12
DROP all -- 172.16.0.0/12 172.16.0.0/12
DROP all -- 172.16.0.0/12 172.16.0.0/12
(зачем трижды?!) создавались при обоих способах, а насчет 192.168... как не было ничего, так и не появилось.
Правила записи значений других переменных в iptables.hostname.set также совсем непонятны, а комментариев нет

Опять же, без серьезного анализа скриптов неясно, что, где и как менять для своих нужд пользователю другого типа VPN (OpenVPN, как у меня, например).

Пожалуй на этом эксперименты пока закончу, т.к. Сергею проще поправить свои скрипты, нежели мне в них разобраться...

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

Re: Настройки iptables для server/router (all in one)

Область использования переменных LANS
#export homeLAN="xxx.xxx.xxx.0/24,172.16.xxx.xx,172.16.xxx.xx"
#export otherLAN="yyy.yyy.yyy.yyy"

заканчивается переменной VPNLANS

export VPNLANS="${lanHOME},${otherLAN}"

Она содержит список подсетей, которые соединены с этим рутером по VPN...

Подсеть 172.16.xxx.xx зарезервирована для интерфейсов GRE (смотри iproute2) и IPSec...

Должны игнорироваться, если export "isVPNrouter=no"

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

Re: Настройки iptables для server/router (all in one)

Цитата:
sergeil писал:

Настройка правил осуществляется только в стартовом скрипте: RUN.iptables*
Библиотека(статична): iptables.rules*
Файл настроек: iptables.`hostname`.set - привязка к хосту.

Там где все эти "страшные" скрипты, ничего менять не следует..., тем более юзеру.

А если меня не совсем устраивают iptables.rules?
Кроме того, я не увидел (это не значит, что этого нет, но не увидел...) возможности настройки отдельных правил для отдельных хостов в локальной сети (я имею ввиду разрешение/запрещения конкретных сервисов для разных юзеров) и доступа к конкретным сервисам локальной сети для доверенных хостов извне.
И вообще,

tcpClientOfOutside domain,ntp,whois,snmp,www,https,smtp,ssh,pop3,8080,8081
udpClientOfOutside domain,ntp,whois,snmp

Как-то это негибко...

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

Re: Настройки iptables для server/router (all in one)

Цитата:
sergeil писал:
Область использования переменных LANS
#export homeLAN="xxx.xxx.xxx.0/24,172.16.xxx.xx,172.16.xxx.xx"
#export otherLAN="yyy.yyy.yyy.yyy"

заканчивается переменной VPNLANS

export VPNLANS="${lanHOME},${otherLAN}"

Она содержит список подсетей, которые соединены с этим рутером по VPN...

Подсеть 172.16.xxx.xx зарезервирована для интерфейсов GRE (смотри iproute2) и IPSec...

Должны игнорироваться, если export "isVPNrouter=no"

Во-первых, переменной otherLAN вовсе нет в архивном iptables.hostname.set.
Во-вторых, а почему, собственно, подсеть 172.16.xxx.xx зарезервирована только для интерфейсов GRE? А если у юзера как раз эти адреса используются для локальной сети? А для VPN - что-то из 192.168.х.х или 10.х.х.х?
И в-третьих, ну все равно непонятно Грустный(

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

Re: Настройки iptables для server/router (all in one)

Цитата:
А если меня не совсем устраивают iptables.rules?

Вы имеете полное право его изменить.
Я объявляю, что эти скрипты публикуются под GPL
Улыбка
Нужно будет сделать соответствующие правки в заголовках.

Цитата:
Кроме того, я не увидел (это не значит, что этого нет, но не увидел...) возможности настройки отдельных правил для отдельных хостов в локальной сети (я имею ввиду разрешение/запрещения конкретных сервисов для разных юзеров)

Как правило, эти ограничения настраиваются правилами самих сервисов... То есть, от LAN firewall не защищает.
WAN (сети через VPN) не защищает, но протоколирует. INET - полная защита.

Цитата:
Вы можете создать дополнительные абстракции, типа LLAN,
которые будут реализовывать дополнительные уровни контроля.

Цитата:
и доступа к конкретным сервисам локальной сети для доверенных хостов извне.

Предполагается, что публичные сервисы расположены в DMZ, а не в LAN... Доступ к хосту - смотри секцию SSH.

Доступ к внутренним хостам LAN - через VPN...

Цитата:
tcpClientOfOutside domain,ntp,whois,snmp,www,https,smtp,ssh,pop3,8080,8081
udpClientOfOutside domain,ntp,whois,snmp
Как-то это негибко...

Зато емко ... Смысл: этому хосту разрешено осуществлять клиентские запросы наружу по протоколу TCP для получения
1. разрешения имен.
2. получения точного времени
...

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

Re: Настройки iptables для server/router (all in one)

Цитата:
Во-первых, переменной otherLAN вовсе нет в архивном iptables.hostname.set.

Ее там действительно нет. Я ее добавил прямо сейчас, что-бы показать синтаксис конкатезации списков...

Цитата:
Во-вторых, а почему, собственно, подсеть 172.16.xxx.xx зарезервирована только для интерфейсов GRE? А если у юзера как раз эти адреса используются для локальной сети? А для VPN - что-то из 192.168.х.х или 10.х.х.х?
И в-третьих, ну все равно непонятно Грустный(

Скрипт - заготовка...
Вы вправе изменить его под свои нужды
Улыбка

Не сердитесь ...

Кстати, а Вы внимательно смотрели журналы старта скрипта? Я думаю, что ошибки были, но Вы их просто не заметили. Ошибки не "бросаются" на консоль, а пишутся в журнал.

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

Re: Настройки iptables для server/router (all in one)

Цитата:
sergeil писал:

Цитата:
А если меня не совсем устраивают iptables.rules?

Вы имеете полное право его изменить.
Нужно будет сделать соответствующие правки в заголовках.

Моя исходная посылка - это непонятность скриптов. Право на именение есть, возможности изменить нет, т.к. нет понимания.

Цитата:

Цитата:
Кроме того, я не увидел (это не значит, что этого нет, но не увидел...) возможности настройки отдельных правил для отдельных хостов в локальной сети (я имею ввиду разрешение/запрещения конкретных сервисов для разных юзеров)

Как правило, эти ограничения настраиваются правилами самих сервисов... То есть, от LAN firewall не защищает.
WAN (сети через VPN) не защищает, но протоколирует. INET - полная защита.

Я имел ввиду вовсе не это, хотя и локальные сервисы можно защитить от доступа из LAN. Я имел ввиду ограничение доступа внутренних клиентов к внешним сервисам, например запрет использования аськи для части хостов.

Цитата:

Вы можете создать дополнительные абстракции, типа LLAN,
которые будут реализовывать дополнительные уровни контроля.

Цитата:
и доступа к конкретным сервисам локальной сети для доверенных хостов извне.

Предполагается, что публичные сервисы расположены в DMZ, а не в LAN... Доступ к хосту - смотри секцию SSH.

Доступ к внутренним хостам LAN - через VPN...

Хе-х, у меня VoIP сервис, и обмен траффиком осуществляется со многими клиентами и партнерами. По-вашему мне нужно создать VPN-туннели ко всем? Думаю, что с одним-двумя удастся договориться. Впрочем, а нахрен мне это? Мне не нужно, чтобы они имели доступ в мои LAN, мне нужно ТОЛЬКО разрешить им определенные сервисы на одном-двух хостах.

Цитата:

Цитата:
tcpClientOfOutside domain,ntp,whois,snmp,www,https,smtp,ssh,pop3,8080,8081
udpClientOfOutside domain,ntp,whois,snmp
Как-то это негибко...

Зато емко ... Смысл: этому хосту разрешено осуществлять клиентские запросы наружу по протоколу TCP для получения
1. разрешения имен.
2. получения точного времени
...

Ну, вот видите! А я думал, что эти правила разрешают доступ ИЗВНЕ к этим сервисам...

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

Re: Настройки iptables для server/router (all in one)

Я вовсе не сержусь, я пишу о том, что мне кажется неудобным/непонятным/недостаточным. Это вы не сердитесь Улыбка.
Ошибки, как я понимаю, длжны попасть в
RUN.iptables.rcXX.sh.err | 0|Авг 28 11:10.
Я привел строку для этого файла из окна mc.
В RUN.iptables.rcXX.sh.log есть предупреждения типа
Warning: wierd character in interface `eth0:2' (No aliases, :, ! or *).
Если я не вношу изменений в ваш iptables.hostname.set, а просто копирую его в свой iptables.name.set, то даже предупреждений нет.
Кстати, это тоже настораживает...

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

Re: Настройки iptables для server/router (all in one)

Приговор (неокончательный, может быть обжалован):
лично мне скрипты, построенные на основе скриптов, приведенных в IptablesTutorial, кажутся более естественными, понятными, более гибкими в тонких настройках/подстройках. Их легче адаптировать к личным нуждам каждого. Правда, они и не претендуют на универсальность.
С другой стороны, они в своей совокупности, ИМХО, оказываются более универсальными, т.к. из их совокупности легче собрать свой скрипт, удовлетворяющий именно частные запросы.

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

Re: Настройки iptables для server/router (all in one)

Цитата:
Archont писал:
Ошибки, как я понимаю, длжны попасть в
RUN.iptables.rcXX.sh.err

Должны, но нужно смотреть оба файла и *.err и *.log

Цитата:
Я привел строку для этого файла из окна mc.
В RUN.iptables.rcXX.sh.log есть предупреждения типа
Warning: wierd character in interface `eth0:2' (No aliases, :, ! or *).

Дело в том, что физически устройства eth0:2 не существует...
Это синоним, просто символьная метка и не более того.
Смотрите iproute2. Вам не следует использовать синонимы... для конфигурирования firewall.

Кстати, Вы можете назначить еще один адрес на сетевое устройство через `ip` без параметра "метка" и тогда синонима не будет, хотя дополнительный адрес будет назначен...

Цитата:
Если я не вношу изменений в ваш iptables.hostname.set, а просто копирую его в свой iptables.name.set, то даже предупреждений нет.
Кстати, это тоже настораживает...

Скажите мне имя сетевого устройства, которым Вы подключены в интернет... Возможно, оно совпадает с тем, что в конфигурации... Возможно нет ...

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

Re: Настройки iptables для server/router (all in one)

На тестовом хосте я подключен единственным физическим учтройством eth0. Локальная сеть включена в ADSL роутер Dlink DSL-504T.
ifconfig
eth0 Link encap:Ethernet HWaddr 4C:00:10:54:2C:28
inet addr:192.168.10.31 Bcast:192.168.10.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:660 errors:0 dropped:0 overruns:0 frame:0
TX packets:832 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:318954 (311.4 Kb) TX bytes:74897 (73.1 Kb)
Interrupt:3 Base address:0x9c00

eth0:1 Link encap:Ethernet HWaddr 4C:00:10:54:2C:28
inet addr:10.8.8.7 Bcast:10.8.8.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:3 Base address:0x9c00

eth0:2 Link encap:Ethernet HWaddr 4C:00:10:54:2C:28
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:3 Base address:0x9c00

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:18 errors:0 dropped:0 overruns:0 frame:0
TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1284 (1.2 Kb) TX bytes:1284 (1.2 Kb)

tun0 Link encap:Point-to-Point Protocol
inet addr:10.1.0.2 P-t-P:10.1.0.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:35 errors:0 dropped:0 overruns:0 frame:0
TX packets:36 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:3275 (3.1 Kb) TX bytes:2711 (2.6 Kb)

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

Re: Настройки iptables для server/router (all in one)

У Вас есть два сетевых устройства исключая lo:

eth0
tun0

Это все, что Вы можете использовать в качестве входящих/исходящих интерфейсов ...

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

Re: Настройки iptables для server/router (all in one)

Цитата:

eth0 inet addr:192.168.10.31 Bcast:192.168.10.255 Mask:255.255.255.0

eth0:1 inet addr:10.8.8.7 Bcast:10.8.8.255 Mask:255.255.255.0

eth0:2 inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0

Почему так много сетей делят одну физическую среду?

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

Re: Настройки iptables для server/router (all in one)

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

192.168.1.0/24 - для общения с виртуальной виндой (использую bridget network adapter в VMWare)
Для чего 10.8.8.0/24 - сейчас уже не упомню, возможно делал какие-то эксперименты, да и забыл выключить Улыбка)

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

Re: Настройки iptables для server/router (all in one)

Цитата:
Archont писал:
Для чего 10.8.8.0/24 - сейчас уже не упомню, возможно делал какие-то эксперименты, да и забыл выключить Улыбка)

Вспомнил! В ADSL модемах от D-Linlk эта подсеть используется для общения со встроенным FTP-сервером. Если прошивка начинает глючить (бывает при экспериментах с прошивками), то реанимировать модем можно только через это FTP-сервер.

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

Re: Настройки iptables для server/router (all in one)

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

Данные скрипты поставляются "КАК ЕСТЬ". Вы можете их использовать или не использовать.
Скрипты распространяются под лицензией GPL.

Когда я просил об аудите скриптов, то рассчитывал получить заключение людей, которым это может быть интересно...
Лично меня интересуют замечания по поводу идеологии, существующих и потенциальных "дыр" в защите...

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

Re: Настройки iptables для server/router (all in one)

Мне кажется, что вы обиделись. Это неконструктивно.
Да, я не высказался по поводу дыр в защите, но это именно потому, что я так и не смог загрузить (и проанализировать) все задуманные вами правила. Конечно, можно прочитать скрипт, но именно это сделать достаточно сложно вследствие вашей позиции - скрипты поставляются as is, и комментировать я ничего не желаю и не собираюсь. Это ваше право.
Что касается идеологии: мне не нравится идея разделения на три скрипта - труднее для анализа, да и механизм script start / script save / script stop мне представляется более удобным, нежели то, что предусмотрено в системе (service iptables save).
Теперь насчет интереса: от того, что лично мне это не слишком нужно, мой интерес к вашей работе не уменьшается. Он уменьшается от тех трудностей, которые вы воздвигли на пути удовлетворения этого интереса, да и на пути почти любого пользователя, у которого это интерес более насущен, нежели у меня.

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

Re: Настройки iptables для server/router (all in one)

Цитата:
Archont писал:
... Это неконструктивно.

Если у Вас есть вопросы по существу:
структура, подходы, синтаксис, я готов продолжать беседу...

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

Re: Настройки iptables для server/router (all in one)

Для начала поясните, что и как заполняется в конфигурационном скрипте. Желательно с использованием тех переменных, которые там действительно представлены.

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

Re: Настройки iptables для server/router (all in one)

Кроме того, как мне представляется, наличие всего одного физического интерфейса не должно быть препятствием для превращения хоста в шлюз. Это именно идеологический вопрос.
Как этот тезис согласовать с вашим скриптом? Подскажите методы.
Работу через tun0 не предлагайте, он предназначен именно для VPN с моей же удаленной локалкой. К провайдеру я попадаю без VPN, фиксированный IP на PPP интерфейсе модема.

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

Re: Настройки iptables для server/router (all in one)

Цитата:
Archont писал:
К провайдеру я попадаю без VPN, фиксированный IP на PPP интерфейсе модема.

OK, но Вы не показали устройство ppp0. Это и есть Ваше внешнее устройство (вместо eth1,eth2)...

Правим iptables.host.set...
- export extIF="eth1,eth2"
+ export extIF="ppp0"

Запуск скрипта должен осуществлятся при поднятом интерфейсе ppp0

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

Re: Настройки iptables для server/router (all in one)

С extIF как раз все ясно.

Кроме того, вы не совсем правильно поняли. Мой модем - это по сути компутер, работающий под линукс, и у него свои собственные сетевые интерфейсы, в том числе ppp0 (после установления соединения с провайдером). Со стороны локалки он является 4-х портовым неуправляемым eth свичем.
А на всех остальных хостах в этой сети по единственному eth интерфейсу.
Есть, правда, обычный AT-модем, и на нем можно поднять PPP, но это неинтересно, т.к. реально он может звонить только на мой же шлюз в другом офисе, и его нет нужды защищать файрволом. Используется он в первую очередь для связи между офисами в случае аварий в широкополосной сети.

RSS-материал