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


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: HOWTO: Iptables для новичков  (Прочитано 527242 раз)

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

Оффлайн AlistaM

  • Новичок
  • *
  • Сообщений: 45
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1230 : 07 Июня 2011, 10:13:12 »
если чесно я вообще запутался...

попробую по полочкам:
вначале в своем скрипте разрешаю транзитный трафик
$IPT -A PREROUTING -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

разрешаю фильтрацию нового транзитного трафика от локальной сетевой карты в локальную сеть
$IPT -A FORWARD -m conntrack --ctstate NEW -i $LOC_FACE -s 192.168.0.0/24 -j ACCEPT

разрешаю фильтрацию нового транзитного трафика к rdp серверу
$IPT -A FORWARD -m conntrack --ctstate NEW -d 192.168.0.4 -j ACCEPT

разрешаю фильтрацию транзитного трафика уже установленным соединениям
$IPT -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED,DNAT -j ACCEPT

разрешаю фильтрацию трафика от локальной сетевой к rdp хосту
 $IPT -I FORWARD -i eth1 --dst 192.168.0.4 -j ACCEPT

дальше перенаправляю новые соединения по 3389 на rdp сервер
$IPT -A PREROUTING -i eth0 -p tcp -m tcp --dport 3389 -m conntrack --ctstate NEW -j DNAT --to-destination 192.168.0.4:3389

перенаправляю последующий трафик по порту 3389 на хост 192.168.0.4
$IPT -t nat -A PREROUTING -p --tcp --dport 3389 -i eth0 -j DNAT --to-destination 192.168.0.4:3389

и в конце добавляю сквозной обратный трафик через инет интерфейс.
$IPT -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 87.87.87.87

может я с порядком выполнения скрипта что то не понимаю?
и нужен ли accept когда у меня пока вообще нет DROP и REJECT
и еще, почему после перезагрузки даже не меняя ничего в скрипте
:INPUT ACCEPT [5159:4949961]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [4604:565917]
наборы портов меняются?
« Последнее редактирование: 07 Июня 2011, 10:23:59 от AlistaM »
а вы не пробовали выключить и включить?

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13761
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1231 : 07 Июня 2011, 13:23:59 »
вначале в своем скрипте разрешаю транзитный трафик
$IPT -A PREROUTING -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
Разрешаете транзитный траффик пакетов УСТАНВОЛЕННЫЗ соединений.

разрешаю фильтрацию
Заметьте, что в данном контексте, слово "фильтр" обозначает выделение, а не удаление

и нужен ли accept когда у меня пока вообще нет DROP и REJECT
Нет, не нужен.

и еще, почему после перезагрузки даже не меняя ничего в скрипте
:INPUT ACCEPT [5159:4949961]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [4604:565917]
наборы портов меняются?
Чего меняется?
Вы про выделенные что ли???
Это не порты!!!! Это количество пакетов прошедших через цепочки.

Оффлайн AlistaM

  • Новичок
  • *
  • Сообщений: 45
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1232 : 07 Июня 2011, 13:29:48 »
спасибо, еще нашел ошибку:
перенаправляю последующий трафик по порту 3389 на хост 192.168.0.4
$IPT -t nat -A PREROUTING -p --tcp --dport 3389 -i eth0 -j DNAT --to-destination 192.168.0.4:3389
не --tcp а просто tcp
но все равно пока так и не заработало. попробую сейчас все правила с accept убрать вообще, хотя по моему влиять не должно
« Последнее редактирование: 07 Июня 2011, 13:37:28 от AlistaM »
а вы не пробовали выключить и включить?

alexxnight

  • Гость
Re: HOWTO: Iptables для новичков
« Ответ #1233 : 07 Июня 2011, 13:39:21 »
Вот. нашел. посмотрите вот этот tutorial http://www.opennet.ru/docs/RUS/iptables/#DNATTARGET. там есть пример похожий на Ваш, только с web сервером.

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13761
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1234 : 07 Июня 2011, 13:41:06 »
Я бы в данном случае указал sourcedestination-адрес для перенаправляемых пакетов
Вы, кстати, после, добавления/изменения правил с помощью скрипта - проверяйте появились ли они в действующей таблице

Пользователь решил продолжить мысль [time]Tue Jun  7 13:42:20 2011[/time]:
И ещё:
А на 192.168.0.4 какой шлюз указан?
« Последнее редактирование: 07 Июня 2011, 13:51:05 от fisher74 »

Оффлайн AlistaM

  • Новичок
  • *
  • Сообщений: 45
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1235 : 07 Июня 2011, 13:52:49 »
Я бы в данном случае указал sourcedestination-адрес для перенаправляемых пакетов
Вы, кстати, после, добавления/изменения правил с помощью скрипта - проверяйте появились ли они в действующей таблице
вначале так и делал

Пользователь решил продолжить мысль [time]Tue Jun  7 13:42:20 2011[/time]:
И ещё:
А на 192.168.0.4 какой шлюз указан?
оп-ля а ведь правда там совсем другой шлюз!!!!! спасибо большое!
« Последнее редактирование: 07 Июня 2011, 13:59:06 от AlistaM »
а вы не пробовали выключить и включить?

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13761
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1236 : 07 Июня 2011, 14:00:47 »
Цитировать
разрешаю фильтрацию трафика от локальной сетевой к rdp хосту
 $IPT -I FORWARD -i eth1 --dst 192.168.0.4 -j ACCEPT
Это не могли бы Вы объяснить - к чему бы ЭТО?
ifconfig -eth1

Оффлайн AlistaM

  • Новичок
  • *
  • Сообщений: 45
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1237 : 07 Июня 2011, 14:16:56 »
это с linux.org.ru тоже с форума кусочек из аналогичной проблемы брал. сижу читаю http://www.opennet.ru/docs/RUS/iptables/

Пользователь решил продолжить мысль 07 Июня 2011, 15:00:58:

$IPT -t nat -F PREROUTING
 $IPT -F FORWARD
 $IPT -t nat -F POSTROUTING
 # Разрешаем проходить пакетам по уже установленным соединениям   
 $IPT -A PREROUTING -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
 $IPT -A FORWARD -m conntrack --ctstate NEW -i $LOC_FACE -s 192.168.0.0/24 -j ACCEPT
 $IPT -A PREROUTING -i $INET_IFACE -p tcp --dport 3389 -j DNAT --to-destination 192.168.0.4:3389
$IPT -t nat -A PREROUTING -p tcp --dport 3389 -i $INET_IFACE -j DNAT --to-destination 192.168.0.4:3389
$IPT -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source 87.87.87.87

вот в таком варианте и после изменения шлюза на 192.168.0.4 все заработало. хотя как мне кажется тут еще некоторое можно убрать.
теперь буду пробовать настраивать drop-ы и прикручивать squid для авторизации из ad =)
« Последнее редактирование: 07 Июня 2011, 15:00:58 от AlistaM »
а вы не пробовали выключить и включить?

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13761
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1238 : 07 Июня 2011, 15:53:28 »

 $IPT -A PREROUTING -i $INET_IFACE -p tcp --dport 3389 -j DNAT --to-destination 192.168.0.4:3389
в таблице filter нет цепочки PREROUTING

Оффлайн vtv

  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1239 : 17 Июня 2011, 23:50:28 »
Наконец нашла форум, где активно обсуждают внутренности iptables. Я не волшебник, я только учусь... Так что объясните пожалуйста:
1) В некоторых примерах предлагается код типа:
IPTABLES -A INPUT -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPTа в других примерах для того же
iptables -A INPUT -i eth1 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT В чем отличие ?
2) У меня 2 сети: внутренняя, с доверительными отношениями и внешняя, с жестокими отношениями. Между ними строим шлюз и фаервол. Внутренние ip и ip шлюза=IPR - статические (используем SNAT) Я хочу, чтобы для одной из машин внутренней сети - ее ip=IPSpecial при обращении с нее на конкретный адрес AdrSpecial во внешней сети подмены адреса не было, а во всех остальных случаях  - была. Вопрос: если я напишу
$ iptables -A POSTROUTING -s ! $IPSpecial -d ! $Adrspecial -o eth1 -j SNAT --to-source $IPR- 'это будет работать? и если будет, то так ли. как я хочу?

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1240 : 18 Июня 2011, 01:44:24 »
Наконец нашла форум, где активно обсуждают внутренности iptables. Я не волшебник, я только учусь... Так что объясните пожалуйста:
1) В некоторых примерах предлагается код типа:
IPTABLES -A INPUT -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPTа в других примерах для того же
iptables -A INPUT -i eth1 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT В чем отличие ?
В новых ядрах - нив чём. модуль state является синониом (alias) модуля conntrack.
Раньше различие было, (state был более ранней реализацией системы отслеживания соединений, не имевшей полного функционала модуля conntrack).

Цитировать
2) У меня 2 сети: внутренняя, с доверительными отношениями и внешняя, с жестокими отношениями. Между ними строим шлюз и фаервол. Внутренние ip и ip шлюза=IPR - статические (используем SNAT) Я хочу, чтобы для одной из машин внутренней сети - ее ip=IPSpecial при обращении с нее на конкретный адрес AdrSpecial во внешней сети подмены адреса не было, а во всех остальных случаях  - была.
Если адрес IPSpecial принадлежит приватному блоку адресов, подмена должна быть. Точка.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн dr.Faust

  • Активист
  • *
  • Сообщений: 435
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1241 : 18 Июня 2011, 17:10:05 »
- 'это будет работать? и если будет, то так ли. как я хочу?
А я например вообще не понял чего вы хотите...
Т.е. Вы хотите, что бы при обращении к какому-то IP во внешней сети, у вас адрес обращающейся машины оставался адресом внутренней сети? А для чего вам это?
Это в принципе возможно - тут AnrDaemon неправ. Но есть один нюанс - вы не сможете установить соединение, так как пакеты к вашей машине просто не дойдут. Вот и интересно, для чего это может понадобиться.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1242 : 18 Июня 2011, 19:52:16 »
Это в принципе возможно технически. Я этого не отрицал. Но исходя из поставленной задачи - "сделать так и чтобы работало" - не будет работать.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн dr.Faust

  • Активист
  • *
  • Сообщений: 435
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1243 : 19 Июня 2011, 10:11:01 »
2  AnrDaemon
Я не дурак и я понимаю, что ты не дурак. Конечно я знаю, что ты знаешь, что это возможно, но не будет, ну не то чтобы работать, ведь про установление соединеия vtv ничего не говорила, а не будет полезно. Это же был просто сарказм.

Все это было написано, только для того, чтобы побудить vtv объяснить что ей надо, а не чего она хочет. Зная всю задачу целиком, мы возможно сможем предложить решение, ведь вероятно vtv решает её тупиковым путем. Черт его знает что это - может это заумный способ аутентификации и в реале iptables там вообще не нужен.

Оффлайн vtv

  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1244 : 19 Июня 2011, 23:27:27 »
Объясняю. Все машины под виндой. На внешней машине есть директория. к которой открыт доступ только избранным, причем не по паролю, а по пользователю. Машина нашей табельщицы туда входит, а другие машины кто не прописан в пользователях - нет. Защита минимальная, но больше и не требуется, желающих там чего ломать нет. Ну а после подмены адреса она туда зайти не может. Ее можно конечно подключать отдельным хвостом к внешней сети (даже две сетевые карты там есть). Но хотелось найти более красивое решение. Разрешать выход всем в эту папку не хочу, не для того туда доступ ограничивали.

Пользователь решил продолжить мысль 19 Июня 2011, 23:33:28:
Ах, да. Не объяснила сначала. Главное, это шлюз+ фаервол. и набор правил вроде заработал, а вот захотелось подправить, чтобы...(см пост выше)
« Последнее редактирование: 19 Июня 2011, 23:33:28 от vtv »

 

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