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


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

Автор Тема: Внимание Конкурс ! знатокам iproute iptablesи т.д.  (Прочитано 2626 раз)

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

Оффлайн demarco

  • Автор темы
  • Новичок
  • *
  • Сообщений: 21
    • Просмотр профиля
Есть конкретная задача, хотелось бы устроить конкурс спризом!
Нужны знатоки таких жутких вещей как iproute2 iptables

объявляю приз 500р. для знатока, решение вопроса на 2 минуты!

пишите в личку опишу задачу в этой ветке,в мыло, или как угодно!

побеждает первый кто пришлет верное решение!

ИТАК!

есть роутер! в нем 3 сетевых карты!

eth0 192.168.0.221 это локалка
eth1 192.168.2.2 эта смотрит в сторону адсл модема (192.168.2.1) на провайдера 1
eth2 192.168.1.1 эта смотрит в сторону адсл модема (192.168.1.1) на провайдера 2

на самом роутере крутится 8.04 Server, тут же поднято ftp(proftpd), mysql, apache

интернет организован так:
есть пров1, есть пров2, есть в зоне прова2 еще 1 роутер который находится дома, на нем поднят vpn сервер.
т.е. с нашего роутера (он же vnp client) устанавливается vpn соединение на домашний роутер (vpn сервер) и путем манипуляций с iptables у всех в локалке повяляется инет :)

теперь что не так!
- до того как был поднят опенвпн, все работало через Squid (ну да хрен с ним)
на роутере, как я сказал поднят Proftpd, и он должен работать через любого прова - это РАЗ!
- внутри локальной сети существует Windows Server 2008R2, на нем крутится sharepoint, mssql, свой ftp, iis7, значит должен быть проброс с обоих провайдеров внутрь локальной сети к этим серверам - это ДВА!
- инет должен ходить через домашний роутер (через впн или еще как нибудь, но весь инет (т.е. ftp аська и прочая хрень, а не
только http))

Вот как работало раньше!

ip route add 192.168.2.0/24 src 192.168.2.2 dev eth1 table inet1
ip route add default via 192.168.2.1 dev eth1 table inet1
ip rule add from 192.168.2.2 table inet1
ip rule add fwmark 2 table inet1

ip route add 192.168.1.0/24 src 192.168.1.2 dev eth2 table inet2
ip route add default via 192.168.1.1 dev eth2 table inet2
ip rule add from 192.168.1.2 table inet2
ip rule add fwmark 3 table inet2
ip route add 192.168.0.0/24 dev eth0 src 192.168.0.221 table inet1
ip route add 192.168.0.0/24 dev eth0 src 192.168.0.221 table inet2
ip route add 89.239.a.a via 192.168.2.1 dev eth1 # dns прова 1
ip route add 89.250.b.b via 192.168.1.1 dev eth2  # dns прова 2
ip route flush cache
iptables -A PREROUTING -i eth1 -t mangle -j MARK --set-mark 2
iptables -A PREROUTING -i eth2 -t mangle -j MARK --set-mark 3
iptables -A PREROUTING -i eth0 -t mangle -j MARK --set-mark 2
#это было сделано для внутреннего фтп на 2008 сервере
iptables -A PREROUTING -i eth0 -s 192.168.0.11 -d ! 192.168.0.0/24 -p tcp -m tcp --sports 20:21 -t mangle -j MARK --set-mark 2
iptables -A PREROUTING -i eth0 -s 192.168.0.11 -d ! 192.168.0.0/24 -p tcp -m tcp --sports 49152:65534 -t mangle -j MARK --set-mark 2
#это маркировка в зависимости от того какой днс на клиентской машине, если у человека днс1 то его инет идет через первого прова, если днс2 то через второго
iptables -A PREROUTING -i eth0 -s 192.168.0.0/24 -d 89.250.a.a -t mangle -j MARK --set-mark 3
iptables -A PREROUTING -i eth0 -s 192.168.0.0/24 -d 89.239.b.b -t mangle -j MARK --set-mark 2
iptables -A OUTPUT -t mangle -d ! 192.168.0.0/24 -j MARK --set-mark 2
#это для того что бы весь трафик сквида шел через прова2
iptables -A OUTPUT -t mangle -d ! 192.168.0.0/24 -p tcp --dport 3128 -j MARK --set-mark 3
iptables -A OUTPUT -t mangle -d 89.250.а.а -j MARK --set-mark 3
iptables -A OUTPUT -t mangle -d 89.239.b.b -j MARK --set-mark 2
#iptables -A PREROUTING -i eth0 -s 192.168.0.0/24 -d ! 192.168.0.0/24 -p tcp -m tcp --dport 3128 -t mangle -j MARK --set-mark 3
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth2 -j MASQUERADE


проброс портов выполнен вот в таком плане
#80
#iptables -t nat -A PREROUTING -d 192.168.2.2 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.11:80
#iptables -t nat -A POSTROUTING -d 192.168.0.11 -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.2.2

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

route add -host 89.250.х.х gw 192.168.1.1 dev eth2 #делаем роут до домашнего роутера
route del default gw 192.168.1.1 dev eth2 №собственно убиваем дефолтоут
route add default gw 192.168.254.6 dev tun0 metric 0 #ставим новый дефолтроут на впн

ip route add 192.168.2.0/24 src 192.168.2.2 dev eth1 table inet1
ip route add default via 192.168.2.1 dev eth1 table inet1
ip rule add from 192.168.2.2 table inet1
#ip rule add fwmark 2 table inet1

ip route add 192.168.1.0/24 src 192.168.1.2 dev eth2 table inet2
ip route add default via 192.168.1.1 dev eth2 table inet2
ip rule add from 192.168.1.2 table inet2
#ip rule add fwmark 3 table inet2

ip route add 192.168.254.0/24 src 192.168.254.6 dev tun0 table inet3
ip route add default via 192.168.254.6 dev tun0 table inet3
ip rule add from 192.168.254.6 table inet3
#ip rule add fwmark 4 table inet3
ip route add 192.168.0.0/24 dev eth0 src 192.168.0.221 table inet1
ip route add 192.168.0.0/24 dev eth0 src 192.168.0.221 table inet2
#ip route add 192.168.0.0/24 dev eth0 src 192.168.0.221 table inet3
ip route add 89.239.a.a via 192.168.2.1 dev eth1
ip route add 89.250.b.b via 192.168.1.1 dev eth2
ip route flush cache

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth2 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o tun0 -j MASQUERADE

после всех этих действий есть инет через впн, можно пинговать со всех провайдеров, ftp работает только на роутере,
не работает ни один проброс! (это критично)

причем tcpdump показывает что пакеты вроде как приходят и вроде как уходят, (ну например когда по рдп коннект идет) но ничего не происходит!

мозги кипят:) вроде понятно что все просто, но уже не понятно где именно:)
поэтому и прошу помощи :) задавайте вопросы, выложу конфиги какие надо





 







« Последнее редактирование: 12 Июля 2010, 08:37:57 от demarco »

Гарри Кашпировский

  • Гость
Ну так и пиши условия, чего по личкам ныкаться? :)

Оффлайн RustemNur

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 2939
  • умрешь с вами
    • Просмотр профиля
верное решение!

Верность кто будет определять?
Даже, скажем, степень верности?

Оффлайн demarco

  • Автор темы
  • Новичок
  • *
  • Сообщений: 21
    • Просмотр профиля
верное решение!

Верность кто будет определять?
Даже, скажем, степень верности?

Я буду определять ! Если все заработает значит верно! если нет значит не верно! там просто запутанная схема!

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Ну так пиши, распутаем. (95% что запутаны у тебя мозги.)
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн demarco

  • Автор темы
  • Новичок
  • *
  • Сообщений: 21
    • Просмотр профиля
Ну так пиши, распутаем. (95% что запутаны у тебя мозги.)
согласен! потому уже от безисходности сюда и пишу :)

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Медленно пишешь. За это время можно было проблему три раза расписать, с картинками.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн demarco

  • Автор темы
  • Новичок
  • *
  • Сообщений: 21
    • Просмотр профиля
Медленно пишешь. За это время можно было проблему три раза расписать, с картинками.

мне еще и работать приходится в это время:)
описание задачи в первом посте!

Пользователь решил продолжить мысль 13 Июля 2010, 07:49:55:
что то нет вариантов ни у кого?
AnrDaemon, ты как? подскажи хоть что-нибудь.

Хм! Что то поутихли все разом! неужели никто не может помочь
« Последнее редактирование: 14 Июля 2010, 08:22:18 от demarco »

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
1. Давай по факту. Читать выдержки иницализационных скриптов не удобно:
    а) sudo iptables-save
    б) ifconfig -a
    в) ip route
    г) ip rule
    д) ip route show table inet1
    е) ip route show table inet2

зы.
(Нажмите, чтобы показать/скрыть)

Оффлайн demarco

  • Автор темы
  • Новичок
  • *
  • Сообщений: 21
    • Просмотр профиля
а) iptables-save
(Нажмите, чтобы показать/скрыть)

б) ifconfig -a
(Нажмите, чтобы показать/скрыть)

в) ip route

(Нажмите, чтобы показать/скрыть)

г) ip rule
(Нажмите, чтобы показать/скрыть)

д)ip route show table inet1
 
(Нажмите, чтобы показать/скрыть)
е) ip route show table inet2
(Нажмите, чтобы показать/скрыть)

ж) iptables -L -vnt mangle
(Нажмите, чтобы показать/скрыть)

заодно уж и нат
з) iptables -L -vnt nat
(Нажмите, чтобы показать/скрыть)

и) ip route show table inet3
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 16 Июля 2010, 15:59:19 от demarco »

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Это весь iptables-save? Я что то не наблюдаю таблицы mangle. Что показывает iptables -L -vnt mangle?

Пользователь решил продолжить мысль 16 Июля 2010, 15:54:41:
И да, еще  ip route show table inet3
« Последнее редактирование: 16 Июля 2010, 15:54:41 от Mam(O)n »

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
У тебя таблица mangle пустая. Гдето косяк в инициализационных скриптах. Каким образом запускается инициализация iptables?

Оффлайн demarco

  • Автор темы
  • Новичок
  • *
  • Сообщений: 21
    • Просмотр профиля
скрипты прописаны в rc.local

первым идет скрипт который прописывает таблицы и т.д. с маркировкой пакетов которая вроде как уже и не нужна
(Нажмите, чтобы показать/скрыть)
вторым идет скрипт с правилами iptables т.е. на проброс которые

Пользователь решил продолжить мысль 19 Июля 2010, 15:15:58:
это вообще излечимо ? а то у меня уже мысли на фрюхе все переделать с jail'ами! очень хочется именно на убунте все сделать
« Последнее редактирование: 19 Июля 2010, 15:15:58 от demarco »

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
У тебя там где-то ошибка. Ты же вольный пересказ даёшь скрипта, я даже и не всматриваюсь в него, т.к. синтаксис важно передать вплоть до мелочей. А ты еще и из rc.local пускаешь и наверняка у тебя в шабанге стоит #!/bin/sh -e, где -e значит, что после неудачного выполнения одной из команд, прекращается выполнение скрипта. В общем лови ошибку. Можешь в начало скрипта запихнуть exec > /var/log/rc.log 2>&1 и ловить ошибку при запуске уже в файле...

Оффлайн demarco

  • Автор темы
  • Новичок
  • *
  • Сообщений: 21
    • Просмотр профиля
А ты еще и из rc.local пускаешь и наверняка у тебя в шабанге стоит #!/bin/sh -e, где -e значит,
робею спросить, а что такое в шабанге? :)

скрипты  я на эту тему проверял, выполняются от начала до конца, все строки проходят!

 

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