nixp.ru v3.0

19 апреля 2024,
пятница,
06:09:32 MSK

HanTengry написал 30 декабря 2008 года в 12:46 (7700 просмотров) Ведет себя как мужчина; открыл 36 тем в форуме, оставил 111 комментарий на сайте.

Вопрос в общем-то не столько по iptables сколько про понимание архитектуры работы сети, маршрутизации наверно.

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

есть канал с выходом в интернет,

на конце с нашей стороны есть cisco провайдера его IP например: 212.155.155.57

Пингуется из внешней сети.

За циско идет фаервол. Провайдер сказал что компьютер на котором будет располагаться серверная часть должен иметь такие настройки:

ip: 212.155.155.58

Subnetmask: 255.255.255.252

Gateway: 212.155.155.57

DNS1: 212.20.150.220

DNS2: 212.20.150.221

Если компьютер с этими параметрами прицепить сразу за циско(в обход фаервола), то он тоже пингуется(212.155.155.58), за фаерволом нет.

Какие правила требуется добавить в iptables фаервола для того что бы он смог принимать пакеты которые предназначены для этого сервера и выпускать с него тоже.

Дополнительная информация: Базовые настройки iptables:

У нас на все input стоит Drop(Отбрасывать), и указано что принимать (короче как у большинства).

На Output наоборот Принимать все кроме чего-то.

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

// Тему переместил(а) Dmitry Shurupov из форума «Железо в UNIX/Linux-системах».

fly4life
HanTengry
Дополнительная информация: Базовые настройки iptables:

У нас на все input стоит Drop(Отбрасывать), и указано что принимать (короче как у большинства).

На Output наоборот Принимать все кроме чего-то.

По твоей задаче больше инетерсуют правила в цепочке FORWARD (таблица *filter) и цепочках POSTROUTING/PREROUTING (таблица *nat).

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

«Этот» адрес засвечен в Интернет и без твоей попощи ;). Тебе надо лишь на своем «фаерволе» задать правила в iptables для проброса соединений на определенный порт «этого» IP-адреса во внутренню сеть до трбуемого ресурса. Для решения данной задачи достаточно правил:

*filter
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -d $INT_IP -i $EXT_IFACE -m state --state NEW -p tcp -m tcp --dport $INT_PORT -j ACCEPT
*nat
-A PREROUTING -i $EXT_IFACE -p tcp -m tcp --dport $EXT_PORT -j DNAT --to-destination $INT_IP:$INT_PORT
-A POSTROUTING -s $INT_IP -o $EXT_IFACE -j SNAT --to-source $EXT_IP

где

$EXT_IP — внешний IP-адрес «фаервола» (в твоём случае: 212.155.155.58);

$INT_IP — IP-адрес внутреннего ресурса (к которому требуется организовать доступ);

$EXT_PORT — значение порта, на который будут обращаться пользователи из Интернет;

$INT_PORT — значение порта, который слушает внутренний ресурс и накоторый будут перенаправляться запросы из Интернет;

$EXT_IFACE — имя внешнего сетевого интерфейса (тот, на котором задан IP-адрес 212.155.155.58).

P.S. Причём здесь «Железо»?

HanTengry

Спасибо большое, пробую..

Внешний ip фаервола у меня кажеться другой? Я его здесь не показывал?

fly4life
P.S. Причём здесь «Железо»?

А куда мне? Это может только щас стало уверенности больше что все дело в фаерволе, думалось что вся нарисованная мной схема нереальная.

fly4life
HanTengry
Спасибо большое, пробую..

Внешний ip фаервола у меня кажеться другой? Я его здесь не показывал?

Ээээ… Ну, это я тебя так значит понял, что внешним адресом фаервола у тебя будет 212.155.155.58… Разве не?

HanTengry

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

А как потом проверить что он видимый: telnet ip port?

ping-ом получиться?

fly4life
HanTengry
нет, это компьютер в локальной сети который должен получать пакеты из вне..

А как потом проверить что он видимый: telnet ip port?

ping-ом получиться?

Стоп!

Тогда расшифруй вот эту фразу:

«Если компьютер с этими параметрами прицепить сразу за циско(в обход фаервола), он тоже пингуется(212.155.155.58), за фаерволом нет.»

Желательно с более внятным описанием схемы и расстановкой IP-адресов (кто где и как стоит).

Есть у меня смутное сомнение, что ты сервер с адресом 212.155.155.58 просто ставишь за какой-то мифичесикй фаервол, с непонятно какими адресами…

pol

nat?

HanTengry

IP адрес этого фаервола есть. Пингую фаервол из дома через инет. Побаиваюсь сообщать ip. Поэтому пусть будет фаервол: 194.194.252.50(внешний IP) и у него же 192.168.42.1(внутрений IP).

Итак: идут пакеты из инета к нам в локальную сеть, по порядку они должны пройти от клиента:

-> cisco(212.155.155.57)->фаервол(194.194.252.50)->компьютер с серверной частью программы(212.155.155.58). Порт по которому прога работает 1024.

Ну и понятно так как клиент делает запрос к базе сервера, то и в обратную сторону должны ходить пакеты ответов.

Я пробовал:-> cisco(212.155.155.57)->компьютер с серверной частью программы(212.155.155.58). Если так то 212.155.155.58 виден в инете(пингуется).

fly4life
Тогда расшифруй вот эту фразу:

«Если компьютер с этими параметрами прицепить сразу за циско(в обход фаервола), он тоже пингуется(212.155.155.58), за фаерволом нет.»

Если компьютер с этими параметрами(его ip 212.155.155.58) прицепить сразу за циско(в обход фаервола), то компьютер пингуется, если расположить за фаерволом не пингуется. Ну эта проверка как подтверждение того что адрес «засвечен» в интернете.

HanTengry

«С помощью NAT решаются следующие задачи:

во-первых, становится возможным использовать один ip-адрес для доступа в Интернет с нескольких компьютеров.

Во-вторых, NAT позволяет скрыть внутреннюю структуру корпоративной сети».

Возможно nat. Только мне нужно наоборот не скрывать внутреннюю структуру корпоративной сети, а показать один компьютер в ней.

HanTengry

Действительно Nat этим занимается: Публикация локальных ресурсов во внешней IP-сети.

fly4life
HanTengry
IP адрес этого фаервола есть. Пингую фаервол из дома через инет. Побаиваюсь сообщать ip. Поэтому пусть будет фаервол: 194.194.252.50(внешний IP) и у него же 192.168.42.1(внутрений IP).

Итак: идут пакеты из инета к нам в локальную сеть, по порядку они должны пройти от клиента:

-> cisco(212.155.155.57)->фаервол(194.194.252.50)->компьютер с серверной частью программы(212.155.155.58). Порт по которому прога работает 1024.

Ну и понятно так как клиент делает запрос к базе сервера, то и в обратную сторону должны ходить пакеты ответов.

Дык, дай своему серверу IP-адрес, принадлежащий той же подсети, что и внутренний адрес фаервола (192.168.42.*). Не забудь указать в качестве гейтвея для твоего сервера внутренний адрес фаервола.

После этого задавай правила для iptables в соответствии с примером, который я тебе дал в своём первом ответе в этой теме.

HanTengry

1) Оказывается в моем случае необязательно серверу иметь те ip и пр. которые сообщил провайдер?

2) Как все таки проверить потом что это работает?

3) Пока думаю, но все таки вопрос тоже не ясен — клиентская часть программы должна настраиваться на поиск в инете чего? ip адреса фаервола и порта:(194.194.252.50:1024)?

На cisco, access листы установщики пока не настраивали, не может быть такого что она будет «разговаривать» только с 212.155.155.58?

HanTengry

Ничего не понимаю уже..Пользователи из локальной сети настроены на прокси 192.168.42.1 — берут инета оттуда(это же и фаервол). Для клиентов, линию новую протянули для их проги. В swich перед фаерволом воткнуты эти две линии сейчас.(расшифровываю старая(cisco-194.194.252.30) и новая(cisco-212.155.155.57). И кажеться мне что если шлюз указать 192.168.42.1 то пакеты будут выходить через старого провайдера?

fly4life
HanTengry
1) Оказывается в моем случае необязательно серверу иметь те ip и пр. которые сообщил провайдер?

У тебя сервер обязательно должен откликаться при обращении на IP-адрес, который дал провайдер. Как ты это организуешь — дело твоё: можешь сервер напрямую в цискцу включить, а можешь с NAT заморочиться.

HanTengry
2) Как все таки проверить потом что это работает?

Неужели совсем нет мыслей по этому поводу?

HanTengry
3) Пока думаю, но все таки вопрос тоже не ясен — клиентская часть программы должна настраиваться на поиск в инете чего? ip адреса фаервола и порта:(194.194.252.50:1024)?

Да.

HanTengry
На cisco, access листы установщики пока не настраивали, не может быть такого что она будет «разговаривать» только с 212.155.155.58?

Может.

fly4life
HanTengry
Ничего не понимаю уже..Пользователи из локальной сети настроены на прокси 192.168.42.1 — берут инета оттуда(это же и фаервол). Для клиентов, линию новую протянули для их проги. В swich перед фаерволом воткнуты эти две линии сейчас.(расшифровываю старая(cisco-194.194.252.30) и новая(cisco-212.155.155.57). И кажеться мне что если шлюз указать 192.168.42.1 то пакеты будут выходить через старого провайдера?

Ну, сделай фаерволу внешний адрес 212.155.155.58, и будут все ходить через нового провайдера =).

HanTengry

Если telnet-ом пинговать порт на фаерволе, он разве ответит если на этом порту непосредствено на фаерволе не висит ничего? Он ведь перенаправляет на тот же порт на сервер в локалку, если на порт принят пакет.. а пинг как сработает?

HanTengry

Надо что бы все как ходили так и ходили в инет. А пакеты программы только через нового провайдера..

fly4life
HanTengry
Если telnet-ом пинговать порт на фаерволе, он разве ответит если на этом порту непосредствено на фаерволе не висит ничего? Он ведь перенаправляет на тот же порт на сервер в локалку, если на порт принят пакет.. а пинг как сработает?

При тех правилах iptables, которые я привел в качестве примера, да, telnet’ом можно попробовать проверить. А пинг (который icmp echo request) тоже сработает, но для этого нужны уже другие правила.

fly4life
HanTengry
Надо что бы все как ходили так и ходили в инет. А пакеты программы только через нового провайдера..

Интересный ты =). У тебя правила игры меняются чуть ли не в каждом сообщении ;).

Если тебе надо чтобы сервер обязательно откликался на новый адрес (212.155.155.58), а клиенты ходили в интернет со старым адресом, и при этом все через один фаервол, то у твоего фаервола должно быть два внешних адреса. Реализовать это можно, наприер, подняв на его внешнем интерфейсе алиас с новым адресом или вставив ещё один физический интерфейс.

Если заморачиваться с алиасом, то в моём примере немного изменится правило для цепочки PREROUTING (там надо будет явно указать адрес назначения '-d 212.155.155.58\′ и убрать упоминание об имени внешнего интерфейса $EXT_IFACE) и цепочке POSTORUTING (убрать упоминание об имени внешнего интерфейса $EXT_IFACE).

HanTengry

извини, оказывается я смотрел на кусочек картины, а этот кусочек зависит от всей композиции.. :).

Просто не понимал где заканчивается программные возможности, в общем-то они и не заканчиваются — читаю про алиас..

HanTengry

Через webmin на нашем шлюзе я нашел «Добавление сетевого интерфейса», там они имеются штук 10 называются «Виртуальные». Могу я туда добавить нужный мне?

У нас 2 старых провайдера оказалось, идущих через этот шлюз: один оказывается не интернет а платежная система всемирная, ip связанный с этой платежной системой в списках webmin обозначен как виртуальный. Эврика! или нет?

fly4life
HanTengry
Через webmin на нашем шлюзе я нашел «Добавление сетевого интерфейса», там они имеются штук 10 называются «Виртуальные». Могу я туда добавить нужный мне?

Тут я пас. Вебмин видел один раз в жизни, поэтому понятия не имею, как в нём именуются алиасы (хотя, по логике вещей, «Виртуальные» очень похоже, что и есть алиасы).

HanTengry

Вернулся к вопросу. Начал пробовать создавать Виртуальный ip-адресс(алиас), там требуется указать широковещательный адрес, его обычно спрашивают у провайдера или у кого? Надеюсь, что он обычно не нужен :).

fly4life
HanTengry
Вернулся к вопросу. Начал пробовать создавать Виртуальный ip-адресс(алиас), там требуется указать широковещательный адрес, его обычно спрашивают у провайдера или у кого? Надеюсь, что он обычно не нужен :).

Обычно он вычисляется автоматически утилитой настройки адреса. Если у тебя такая глупая утилита настройки, то широковещательный адрес можно посчитать самому. Ну, а если самому сосчитать не получается, то (hint) в Интернете полно всякого рода «ip-калькуляторов», в том числе и онлайн (например, http://www.subnet-calculator.com/).

HanTengry

Все таки не понял я про проверку соединения.

Пингую фаервол: telnet 212.155.155.58 1024, окошко как бы ожидает ответа, секунд 7, потом исчезает. Если любой другой порт который у меня я точно знаю закрыт таким способом пинговать, то окошко явно исчезает, то есть как бы не пытается даже.

Просканировал nmap фаервол 212.155.155.58: Открытые порты в отчете светло-зеленым отмечены, 1024 тоже появился темно зеленым отмечен, вот что сканер про него сказал: 1024/tcp filtered kdm. Через HiperTerminal пытался проверить — че-то тишина. Skype вроде вешаю на этот порт на сервере skype не может подключиться к инету..Просто реальную прогу которая нужна придут ставить внедренцы..как бы проверить что все работает?

fly4life
HanTengry
Все таки не понял я про проверку соединения.

Пингую фаервол: telnet 212.155.155.58 1024, окошко как бы ожидает ответа, секунд 7, потом исчезает. Если любой другой порт который у меня я точно знаю закрыт таким способом пинговать, то окошко явно исчезает, то есть как бы не пытается даже.

Просканировал nmap фаервол 212.155.155.58: Открытые порты в отчете светло-зеленым отмечены, 1024 тоже появился темно зеленым отмечен, вот что сканер про него сказал: 1024/tcp filtered kdm. Через HiperTerminal пытался проверить — че-то тишина. Skype вроде вешаю на этот порт на сервере skype не может подключиться к инету..Просто реальную прогу которая нужна придут ставить внедренцы..как бы проверить что все работает?

1) Каким ответ должен быть при обращении телнетом на 1024-ой порт?

2) Не мешало бы показать настройки сетевых интерфейсов и итоговые правила iptables на фаерволе.

HanTengry
fly4life
1) Каким ответ должен быть при обращении телнетом на 1024-ой порт?

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

Просто сомневаюсь что я все правильно проверяю.

fly4life
HanTengry
Хочеться, что бы был любым, лишь бы стало ясно что сигнал дошел до конечной цели (сервера за фаерволом). Как это организовать?

Просто сомневаюсь что я все правильно проверяю.

Может стоит выяснить, как проверять и каким должен быть ответ, у тех людей, которые ставили задачу?

HanTengry

Уф, честно сказать я в этом деле новичек-самоучка..процессов которые происходят при пингах особо не понимаю..могу понять это только в сравнении с другим открытым портом..вот если на порту висит sendmail на фаерволе то на telnet ьудет ответ: «Я Sendmail, слушаю вас?». А вот с этим 1024, пересылаемый порт, мне не понятно. По идее на нем как бы тоже должна висеть программа, только на самом деле она висит не на самом фаерволе а на сервере за ним. И ответы должны быть такими как будто на этом порту слушает программа непосредственно на фаерволе, так?

HanTengry
fly4life
Может стоит выяснить, как проверять и каким должен быть ответ, у тех людей, которые ставили задачу?

Иногда начальство знает чего хочет, плохо знает как это реализовать, и задача ставиться мне вообще-то реальна и простая, а знаний нет..

fly4life
HanTengry
Уф, честно сказать я в этом деле новичек-самоучка..процессов которые происходят при пингах особо не понимаю..могу понять это только в сравнении с другим открытым портом..вот если на порту висит sendmail на фаерволе то на telnet ьудет ответ: «Я Sendmail, слушаю вас?». А вот с этим 1024, пересылаемый порт, мне не понятно. По идее на нем как бы тоже должна висеть программа, только на самом деле она висит не на самом фаерволе а на сервере за ним. И ответы должны быть такими как будто на этом порту слушает программа непосредственно на фаерволе, так?

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

HanTengry

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

Все таки не понимаю как прокси влияет на эту ситуацию. Прокси висит на порту 3128. Теоретически если правила прописаны правильно на фаерволе, снутри по порту 1024, с машины сервера, я смогу в инет выходить?

fly4life
HanTengry
Да программа то может быть пока любой, только я не знаю что можно развернуть что бы она этот порт слушала..и какой-нибудь ответ давала на пинги..потом просто повесят на порт нужную прогу.

Аааа… фирштейн =). Ну, если развернуть что-нибудь левое, то я бы воспользовался netcat. Если с этой штукой не знаком и знакомиться нет желания, то можно IIS поднять (на сервере же винда?) и заставить его слушать нужный тебе порт.

HanTengry
Все таки не понимаю как прокси влияет на эту ситуацию. Прокси висит на порту 3128. Теоретически если правила прописаны правильно на фаерволе, снутри по порту 1024, с машины сервера, я смогу в инет выходить?

Прокси никак не влияет.

Правила, которые ты задаешь iptables для доступа извне к 1024-му порут сервера, никак не влияют на выход в инет ни с самого сервера, ни с какой-либо другой машины в сети.

HanTengry

Спасибо, тебе линуксоид, за терпение особое. Сделал ты мне канал похоже :))!

Вот приехал домой, попробовал, и в ответ долгожданые каракули:

220 Microsoft FTP Service. А с работы не хотела пинговаться.

Не пойму я, вот как это представлял сегодня на работе — почему считал что вполне могу пинговать и с работы, считал, что мои пинги (telnet 212.155.155.58 1024) с работы уходили в инет по старому каналу, из инета опять находили мой ип нового канала(212.155.155.58) и почему-то FTP не отвечал. Признаться грешил на правила.

Теперь бы еще:

1) убедиться до конца что сетевые пакеты, а лучше прямо файлы, качаются туда и выходят обратно. Какой наиболее простой вариант проверки этого? Этот FTP из IIS это как раз то что нужно для такой проверки?

2) понять что за дыру я в сеть прорубил, как ей могут воспользоваться злоумышленники, что можно сделать для защиты? Что по этому поводу рекомендуете почитать?

3) И можно детский вопрос. Какая схема быстрее будет работать и насколько:

a) 2 канала от провайдера -> в один swich -> связаные одним кабелем!! -> с одной сетевой картой (с двумя ip-адресами)

или

b) 2 канала -> 2 сетевые карты

Наверно не стоит устанавливать еще одну сетевую карту?

Просто боюсь что в пункте а) «один кабель», может оказаться узким местом которое делает 1 прямо выделенный для клиентов канал, несколько бессмысленым, так как кабель от свича до сервера может быть забит трафикам второго канала..

HanTengry

Еще пингуется (telnet 212.155.155.58 1024) с самого этого сервела за фаерволом, сам себя как бы..

fly4life
HanTengry
Спасибо, тебе линуксоид, за терпение особое. Сделал ты мне канал похоже :))!

Вот приехал домой, попробовал, и в ответ долгожданые каракули:

220 Microsoft FTP Service. А с работы не хотела пинговаться.

Не пойму я, вот как это представлял сегодня на работе — почему считал что вполне могу пинговать и с работы, считал, что мои пинги (telnet 212.155.155.58 1024) с работы уходили в инет по старому каналу, из инета опять находили мой ип нового канала(212.155.155.58) и почему-то FTP не отвечал. Признаться грешил на правила.

Теперь бы еще:

1) убедиться до конца что сетевые пакеты, а лучше прямо файлы, качаются туда и выходят обратно. Какой наиболее простой вариант проверки этого? Этот FTP из IIS это как раз то что нужно для такой проверки?

Да, FTP-сервер из состава IIS вполне подойдет.

HanTengry
2) понять что за дыру я в сеть прорубил, как ей могут воспользоваться злоумышленники, что можно сделать для защиты? Что по этому поводу рекомендуете почитать?

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

HanTengry
3) И можно детский вопрос. Какая схема быстрее будет работать и насколько:

a) 2 канала от провайдера -> в один swich -> связаные одним кабелем!! -> с одной сетевой картой (с двумя ip-адресами)

или

b) 2 канала -> 2 сетевые карты

Наверно не стоит устанавливать еще одну сетевую карту?

Просто боюсь что в пункте а) «один кабель», может оказаться узким местом которое делает 1 прямо выделенный для клиентов канал, несколько бессмысленым, так как кабель от свича до сервера может быть забит трафикам второго канала..

Сомневаюсь, что «кабель от свича до сервера может быть забит трафиком второго канала», поскольку врядли какой-либо из провайдеров дает тебе канал хотябы 50 Мбит/с (да и сетевой интерфейс на сервере, поди, гигабитный?).

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

HanTengry

fly4life, привет!

Прошло 2 года, проброс порта, который тогда получилось реализовать работал отлично.

Но уже неделю не могу разобраться с такой проблемой, что 3 клиента из 70-ти не могут подключиться к сервису.

Изменилось только то, что на новом канале, который приобретался для этого сервиса, маршрутизатор передалали в bridge — ip-шник который для меня является шлюзом провайдер забрал к себе.

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

Через месяц возникла эта проблема — 3 клиента не могут достучаться.

Подробнее описал здесь:

www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi?az=list&forum=vsluhforumID1&dir_topic=106

Большая просьба подсказать..

fly4life

Привет!

Ты посмотри, что у тебя tcpdump говорит в части ответов этим клиентам. Судя по твоей таблице маршрутизации, на форуме Опеннета правильно говорят, что «ответы клиентам уходят с другого интерфейса» (iprovider1). Есть вероятность, что у твоих трех проблемных клиентов такие ответы режет их файерволл (т.е. их FW ждет ответы от ipprovider1, а получает от ipprovider2 и благополучно их дропит).

fly4life

Пардон, опечатка. Должно было быть так: «т.е. их FW ждет ответы от ipprovider2, а получает от ipprovider1 и благополучно их дропит».

HanTengry

1) При старой конфигурации, настройки которые приводил выше, и после выполнения скрипта(ниже) вижу одно и тоже используя для “захвата” сетевые интерфейсы: eth1 и eth1:9. Почему вижу пинг провайдера “через” eth1, логичней бы было видеть его “через” eth1:9, на него же прописан адрес ipprovaider2?

(догадываюсь, что интерфейс физически один и тот же, но не понимаю принцип работы команды tcpdump и алиаса, не понимаю определение для опции –i в tcpdump — опция которая указывается какой интерфейс будет использоваться для “захвата пакетов” — http://ru.wikipedia.org/wiki/Tcpdump)

Понимаю что использовать раздельные сетевые карты было бы правильнее, все-таки алиасом можно обойтись, что бы разделять каналы?

# tcpdump -i eth1 host ipprov2.58 -n

12:05:55.754064 IP ip_client > ipprov2.58: ICMP echo request, id 7817, seq 18617, length 40

12:05:55.754098 IP ipprov2.58 > ip_client: ICMP echo reply, id 7817, seq 18617, length 40

# tcpdump -i eth1:9 host ipprov2.58 –n

12:09:52.253181 IP ip_client > ipprov2.58: ICMP echo request, id 7817, seq 24506, length 40

12:09:52.253214 IP ipprov2.58 > ip_client: ICMP echo reply, id 7817, seq 24506, length 40

2) После выполнения сего скрипта, УРА! провайдер который не мог меня пропинговать смог это сделать.

______________________________________

#!/bin/bash

#

echo «101 T1» >> /etc/iproute2/rt_tables

echo «102 T2» >> /etc/iproute2/rt_tables

#interface na provaydera

IF1=eth1

IF2=eth1:9

#

IP1=ipprov1.66

IP2= ipprov2.58

#

P1=gwprov1.65

P2= gwprov2.57

#

P1_NET=netprov1.64/26

P2_NET= netprov2.56/30

#

PC=192.168.42.251

#

ip route add $P1_NET dev $IF1 src $IP1 table T1

ip route add default via $P1 table T1

#

ip route add $P2_NET dev $IF2 src $IP2 table T2

ip route add default via $P2 table T2

#

ip route add $P1_NET dev $IF1 src $IP1

ip route add $P2_NET dev $IF2 src $IP2

ip route add default via $P1 metric 10

#

ip rule add from $IP1 table T1

ip rule add from $IP2 table T2

ip rule add fwmark 2 table T2

___________________________________

стало так:

root# ip ru sh

0:      from all lookup local

32763:  from all fwmark 0×2 lookup T2

32764:  from ipprov2.58 lookup T2

32765:  from ipprov1.66 lookup T1

32766:  from all lookup main

32767:  from all lookup default

root# ip ro sh

192.168.over.50 via 192.168.over.17 dev eth1  metric 10

natprov2.56/30 dev eth1  proto kernel  scope link  src ipprov2.58

192.168. over.16/28 dev eth1  proto kernel  scope link  src 192.168. over.18

natprov1.64/26 dev eth1  proto kernel  scope link  src ipprov1.66

192.168.42.0/24 dev eth0  proto kernel  scope link  src 192.168.42.1

127.0.0.0/8 dev lo  scope link

default via gwprov1.65 dev eth1  metric 10

3)

root@libra:/distr/11.02.2011/REZERV# ip route list table T1

natprov1.64/26 dev eth1  scope link  src ipprov1.66

default via gwprov1.65 dev eth1

root@libra:/distr/11.02.2011/REZERV# ip route list table T2

natprov2.56/30 dev eth1  scope link  src ipprov2.58

default via gwprov2.57 dev eth1

После выполнения скрипта, в T2 все таки не записалось eth1:9, но зато указано через какой шлюз отправлять определившись по src, то есть по идее это работает правильно? т.е. пакеты уйдут по тому каналу по которому пришли.

4) Но проброса порта не получилось, по этим правилам:

$IPTABLES -t nat -A PREROUTING -i eth1 -d $GLOBAL_IP_PRIM -p tcp --dport 1028 -j DNAT --to-destination $PC

$IPTABLES -t nat -A PREROUTING -i eth1:9 -d $GLOBAL_IP_SEC -p tcp --dport 1028 -j DNAT --to-destination $PC

$IPTABLES -t mangle -N CT

$IPTABLES -t mangle -A CT -i eth1 -p tcp --dport 1028 -j CONNMARK --set-mark 1

$IPTABLES -t mangle -A CT -i eth1:9 -p tcp --dport 1028 -j CONNMARK --set-mark 2

$IPTABLES -t mangle -A PREROUTING -i $LOCAL_ETH -m state --state ESTABLISHED -j CONNMARK --restore-mark

$IPTABLES -t mangle -A FORWARD -i eth1 -m state --state NEW -j CT

$IPTABLES -t mangle -A FORWARD -i eth1:9 -m state --state NEW -j CT

_

Не подходит CONNMARK для таких вещей eth1:9, он будет считать его как eth1, правильно?

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

 

 

 

Последние комментарии

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.