nixp.ru v3.0

25 мая 2017,
четверг,
19:16:34 MSK

DevOps с компанией «Флант»
anonymous написал 8 февраля 2005 года в 00:55 (288 просмотров) Ведет себя неопределенно; открыл 1814 темы в форуме, оставил 5575 комментариев на сайте.

Такая вышла инетерсная ситуация — поставил маскарад на интерфейс 0, на интерфейсе 1 интернет. надо дать доступ интернета через 0. сделал все как положено (POSTROUTING SNAT --tosource…). Однако ничего не работает. Пакеты (в частности с пингом) идут от подключенных компов через сервер, приходят обратно на сервер с маскарадом и дальше идти уже не хотят. Сетевухи работают (dhcp радается успешно). Файрволл везде вырубаю на корню. система — fedora 2.

fly4life

Гкхм! А теперь прожуй и повтори.

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

Показывай правила, которые записывал в цепочки iptables (понимаешь, твоего «POSTROUTING SNAT --tosource…» просто напросто мало).

Какой ещё файерволл и как он «вырубается», тем более «на корню"?

Вобщем, расписывай подробности своей ситуации.

П.С. А про пинги вообще какая-то ересь…

Genie

в поиск форума по словам «Genie iptables»

только там оно так интересно пытается подсвечивать найденные слова… :))

в общем, будь внимательнее при копировании конфига.

интерфейсы, адреса и пр., понятное дело, поправишь самостоятельно.

anonymous

Понял. пишу честно.

Внутрь: раздал dhcp: 10.0.0.0/10 маска — 255.255.255.0. ip — 10.0.0.1 eth0.

Внешность: eth1 192.168.0.78.

Рублю все на корню вот так: #iptables -X #iptables -F. на клиенет-виндовсе (хр) просто снимаю (для удобства, а то так даже пинги не пускал!) встроенный файрвол!

Вот так пускал максарад. Хото пробовал и по-другому.

#iptables -t nat -A POSTROUTING -s 10.0.0.0/10 --out-interface eth1 -j SNAT --to-source 192.168.0.78

Сетевухи живы так как пинги ходят.

fly4life
propeller
Понял. пишу честно.

Внутрь: раздал dhcp: 10.0.0.0/10 маска — 255.255.255.0. ip — 10.0.0.1 eth0.

У тебя косяк вот тут ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Ты что-то напутал с маской подсети. Определись, у тебя маска /10 или всё-таки 255.255.255.0 (это /24)?

Если всё-таки последнее, то правило для НАТа должно быть следующим:

iptables -t nat -A POSTROUTING -s 10.0.0.0/<font color=«red»>24</font> -o eth1 -j SNAT --to-source 192.168.0.78

anonymous

Нет, что-то не в том. я попробовал ровно ту команду, что Вы и написали. Ноль на массу. (на самом деле я пробовал и проще — указывал на клиенете адрес статически и подключал его так к дхцп; ну и в построуте писал просто этот статический адрес).

Да, а почему Вы там сказали, что с пингами ересь? я может неправильно выразился. пускал на клиенте пинг нашего сервака провайдера (192.168.0.1) — ну и смотрел ifconfig. А на нем было видно, что пакеты пробежали до того сервака через меня. пришли ко мне и на этом остановились!

На самом деле он даже 192.168.0.78 (мой адрес на внешнем интерфейсе) не пингует!

fly4life

Теперь всё ясно (хотя,.. с пингами так и непонятно) ;)

Форвардинг между интерфейсами включал (команда ниже)?

echo 1 > /proc/sys/net/ipv4/ip_forward

П.С. давай лучше не Выкать, а Тыкать =)

Genie

что у тебя с маршрутизацией как на шлюзе, так и на клиентах?

anonymous

Да, единицу я туда клал. Так что дело не в том. а вот как раз таблица муршрутеризаций меня и смущает. только виноват тем, что так и не прочитал на эту тему мана!

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

192.168.0.1 * 255.255.255.255 UH 0 0 0 eth1

192.168.10.1 * 255.255.255.255 UH 0 0 0 ppp0

10.0.0.0 * 255.255.255.0 U 0 0 0 eth0

192.168.0.0 * 255.255.255.0 U 0 0 0 eth1

169.254.0.0 * 255.255.0.0 U 0 0 0 eth1

127.0.0.0 * 255.0.0.0 U 0 0 0 lo

default * 0.0.0.0 U 0 0 0 ppp0

ppp0 — это мой vpn.

На клиенте — только что смотрел, почему-то основной шлюз стоит 192.168.0.1. т.е. адрес сервака моего провайдера.

Destination Gateway Genmask Flags Metric Ref Use Iface

localhost.domok * 255.255.255.255 UH 0 0 0 eth1

10.0.0.0 * 255.255.255.0 U 0 0 0 eth0

192.168.0.0 * 255.255.255.0 U 0 0 0 eth1

169.254.0.0 * 255.255.0.0 U 0 0 0 eth1

127.0.0.0 * 255.0.0.0 U 0 0 0 lo

вот без vpn. маску вин берет правильно. адрес dhcp сервера почему-то определяет как 192.168.0.78! это мой адрес, но на внешний, инетернетовский интерфейс. опять что-то странное!

anonymous

Почитал все то, что сам выше написал и подправил dhcpd.conf. Теперь выдаю на клиента основной шлюз 10.0.0.1 (т.е. адрес сервера dhcp). Локальные ресурсы пошли (ура!!!). но джо конца не пашет, то есть то, ради чего затеял — интернет через vpn на клиентах не пашет все равно!

anonymous

Мужики, большое спасибо! все заработало!

я переделал вот что — адрес шлюза на 10.0.0.1 и маскарад запустил еще один. Вот такой:

iptables -t nat -A postrouting -o ppp0 -j masquerade;

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

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

fly4life

При 'MASQUERADE' АйПишник твоего интерфейса (в данном случае: ppp0) определяется «на лету». Поэтому не надо в правиле задавать его статически.

А насчёт «в паре с написаным вами выше маскарадом все пашет будь здоров», — мне почему-то кажется, что и без него всё должно работать (если ты про iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth1 -j SNAT --to-source 192.168.0.78). Кстати, и заработало ещё и потому, что у тебя, скорее всего, у клиентов был прописан шлюз, как 10.0.0.1, в то время как у самого шлюза IP был другой…

anonymous

Ну это-то ладно, но мне ведь хочется не только на инет вывести клинетов, но и на локальные ресурсы! Хочется просто лезть на сервер провайдера бесплатно, коль такое счастье есть! И вот тут-то я не понимаю, почему после POSTROUTING -s 10.0.0.0/24 -o eth1 -j SNAT --to-source 192.168.0.78 на клиенете не идет инетернет! Ведь у меня на 10.0.0.1 идет! а клиентские пакеты переходят в мои! а мои уходят по правилам route уже на ppp0!

Теперь думаю, как строить защиту на фильтр. Да чтобы она мне нат пускала. Как понимаю, надо просто на форварде пропустить эти пакеты. не могу еще понять, какие бы правила понаписать на iptables чтобы было не мало! читал туториал, но там скрипт класса — делай так и все будет. а хочется понимать.

fly4life
propeller
Теперь думаю, как строить защиту на фильтр.

На фильтр чего?

anonymous

фильтрующий Firewall. то есть фильтр всего ко мне входящего а так же исходящего.

Genie

ой-ёй-ёй.

фильтрующий Firewall.

вообще-то, насколько я понимаю, это «масло масленное». ;)

то есть фильтр всего ко мне входящего а так же исходящего.

ну так почему до сих пор не обзавёлся iptables-tutorial с сайта http://opennet.ru/ (оно там, кстати, на русском)?

и строчку за строчкой не посидел и не подумал бы над моим конфигом. (кстати, далеко не самым лучшим, и всё-таки несколько избыточным. да-да, некоторые правила там избыточны.)

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

ps: несмотря на то, что это именно tutorial, в нём имеется достаточно теории по теме фильтрации пакетов, чтобы пораздираться и понять, как и почему это дело работает.

anonymous

Firewall, согласно исторической справке вообще имеет свое начало от стены в здании препятствующей переходу огня из одной части в другую! ну а если не быть формалистом, то вроде есть два вида файрволлов — сетевого уровня и уровня приложений (firewall-howto — едва ли документ). Так что, как я полагаю, надо еще не забывать про всякие intrunsion firewalls и portscan detection. это не назовешь фильтрующим до конца!

Туториал этот у меня есть. и проблема вовсе не в том, что не могу понять. я же говорил — проблема в том, что я не понимаю, зачем там стоит одно и не стоит другое! то есть я хотел бы видеть не скрипт, а правила! реализовать правила на iptables я уж смогу. а там ничего не объяснено.

потом у всех все свое. нельзя же всем использовать одно и то же!

fly4life
propeller
Firewall, согласно исторической справке вообще имеет свое начало от стены в здании препятствующей переходу огня из одной части в другую! ну а если не быть формалистом, то вроде есть два вида файрволлов — сетевого уровня и уровня приложений (firewall-howto — едва ли документ).

Брэндмауэры (firewall) работают на сетевом уровне. И делятся на три категории: пакетный, сервисный и анализирующий. Что ты имел в виду под файерволлом «уровня приложений» я не знаю (может быть, как раз, сервисный файерволл или же анализирующий).

propeller
Так что, как я полагаю, надо еще не забывать про всякие intrunsion firewalls и portscan detection. это не назовешь фильтрующим до конца!

«intrunsion firewalls» — это сильно ;). Думаю, ты просто разбил понятие IDS на два: intrusion firewalls <font size=«-2»>(всё-таки забавно звучит ;). Ещё бы знать, что под этим понимается)</font> и portscan detection <font size=«-2»>(ну, это ещё более или менее понятно)</font>.

propeller
Туториал этот у меня есть. и проблема вовсе не в том, что не могу понять. я же говорил — проблема в том, что я не понимаю, зачем там стоит одно и не стоит другое! то есть я хотел бы видеть не скрипт, а правила! реализовать правила на iptables я уж смогу. а там ничего не объяснено.

А что же ещё можно понимать в туториале, если не понимать для чего нужны одни правила, а для чего другие (и почему «там стоит одно и не стоит другое»)?

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

propeller
потом у всех все свое. нельзя же всем использовать одно и то же!

Ну, вот и делай своё. В туториале лишь пример, как можно сделать.