Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: iptables синтаксиc  (Прочитано 976 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн danethz

  • Автор темы
  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
iptables синтаксиc
« : 04 Марта 2011, 16:26:58 »
Добрый день, товарищи.

Есть на Ubuntu 10.10 Server вот это:
iptables -V
iptables v1.4.4

И появилась необходимость сделать что-то вроде такого правила:

#iptables -t nat -A POSTROUTING -o $LAN_OUT -s 197.197.197.0/24 ! 197.197.197.56 -j SNAT --to-source 197.197.197.55

Но, к сожалению, по правилам синтаксиса такое правило работать не будет...
В целом же задача такова:

pkts bytes target prot opt in out source destination
0 0 SNAT all -- any eth0 192.168.0.0/24 anywhere tos match 0x04/0xff to:197.197.197.55
0 0 SNAT all -- any eth0 197.197.197.32 anywhere to:197.197.197.56
0 0 SNAT all -- any eth0 !197.197.197.32 anywhere to:197.197.197.55
Чтобы немаркерованные пакеты из 192.168.0.0/24 не уходили никуда.
Чтобы у пакетов из 197.197.197.32 IP отправителя изменялось на 197.197.197.56
А вот у пакетов из 197.197.197.0/24 кроме 197.197.197.32 IP отправителя изменялось на 197.197.197.55

Как это можно реализовать?
З.Ы. Заранее благодарен.

Оффлайн xeon_greg

  • Активист
  • *
  • Сообщений: 981
    • Просмотр профиля
Re: iptables синтаксиc
« Ответ #1 : 04 Марта 2011, 18:40:14 »
Цитировать
Чтобы у пакетов из 197.197.197.32 IP отправителя изменялось на 197.197.197.56
А вот у пакетов из 197.197.197.0/24 кроме 197.197.197.32 IP отправителя изменялось на 197.197.197.55
iptables -t nat -A POSTROUTING -o $LAN_OUT -s 197.197.197.32 -j SNAT --to-source 197.197.197.56
iptables -t nat -A POSTROUTING -o $LAN_OUT -s 197.197.197.0/24 -j SNAT --to-source 197.197.197.55
трафик от 32  попадает под первое правило, остальной трафик будет идти во второе

Оффлайн danethz

  • Автор темы
  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Re: iptables синтаксиc
« Ответ #2 : 05 Марта 2011, 09:00:30 »
После того как пакет из 197.197.197.32 попадает под первое правило, он уходит из цепочки? Если да, то все в порядке...

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: iptables синтаксиc
« Ответ #3 : 05 Марта 2011, 09:30:43 »
Да, выходит.

Оффлайн danethz

  • Автор темы
  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Re: iptables синтаксиc
« Ответ #4 : 05 Марта 2011, 09:32:40 »
Благодарю, судя по всему, не достаточно внимательно читал Киселева.
Спасибо, тема закрыта.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28334
    • Просмотр профиля
Re: iptables синтаксиc
« Ответ #5 : 05 Марта 2011, 11:56:28 »
Он не уходит из цепочки, но, поскольку у него изменился адрес отправителя, он уже не поймается вторым правилом.
Чтобы такого не происходило, поставь первым правилом
-t nat -A POSTROUTING -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Тогда все пакеты в уже установленных соединениях будут вылетать из цепочки в первом правиле, а по остальным двум будут ходить только новые.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: iptables синтаксиc
« Ответ #6 : 05 Марта 2011, 12:14:14 »
По смыслу
- общие в начале
- самые частные правила (исключения) идут в начале чуть позже
- чем более более общие с исключениями, тем позже.

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: iptables синтаксиc
« Ответ #7 : 05 Марта 2011, 12:50:54 »
Не знал что SNAT нетерминальная команда. Записал на корочку.
Я так понимаю остальные команды таблицы nat так же нетерминальные?

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28334
    • Просмотр профиля
Re: iptables синтаксиc
« Ответ #8 : 05 Марта 2011, 14:03:11 »
Не знал что SNAT нетерминальная команда. Записал на корочку.
Я так понимаю остальные команды таблицы nat так же нетерминальные?
Терминальные только ACCEPT, DROP и REJECT.
Ну ещё несколько добавляет xtables (типа DELUSION), если не ошибаюсь.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн xeon_greg

  • Активист
  • *
  • Сообщений: 981
    • Просмотр профиля
Re: iptables синтаксиc
« Ответ #9 : 05 Марта 2011, 21:06:37 »
Он не уходит из цепочки, но, поскольку у него изменился адрес отправителя, он уже не поймается вторым правилом.
Чтобы такого не происходило, поставь первым правилом
-t nat -A POSTROUTING -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Тогда все пакеты в уже установленных соединениях будут вылетать из цепочки в первом правиле, а по остальным двум будут ходить только новые.
те этим самым вы хотите сказать что пакет попавший под 1 правило вот этого примера
iptables -t nat -A POSTROUTING -o $LAN_OUT -s 197.197.197.32 -j SNAT --to-source 197.197.197.56
iptables -t nat -A POSTROUTING -o $LAN_OUT -s 197.197.197.0/24 -j SNAT --to-source 197.197.197.55
продолжает движение по этой же цепочке построутинг таблицы нат ? если да, то я вас огорчу после действия снат  пакет покидает цепочку построутинг и вообще iptables и переходит в другой компонет ядра conntrack

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: iptables синтаксиc
« Ответ #10 : 05 Марта 2011, 22:11:59 »
Не могу спорить про терминальность команды SNAT, потому как не изучал этот вопрос, но соглашусь с AnrDaemon, что в Вашем, xeon_greg примере пакет  при срабатывании первого правила, вторым будет игнориться. А значит, кроме нагрузки на ядро это ничего не изменит.
Можно эту теорию и проверить, но ... пока нет острой необходимости в этой инфе.

 

Страница сгенерирована за 0.043 секунд. Запросов: 25.