LINUX.ORG.RU

Настройка IPTABLES ???


0

0

Здравствуйте всем.
В сетях я не ахти так что прошу сразу разжевывайте все основательно и не давайте плиз советов типа "кури iptables" "крути squid" "гугли все остальное" спасибо "накурился" что систему завалил, и вроде "толково" старался все делать, но видать мать-природа ровными руками обделила... ну да ладно ...

вот что есть
1) Линуксовая машина на ней ADSL через eth0, и eth1 c адресом 192.168.0.1
2) виндовая машина с прописаным гейтвеем
3) надо чтоб виндовая машина получила инет.

что уже сделано:
в /etc/sysctl.conf прописано net.ipv4.ip_forward = 1
потом набрал в консоли /sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
и /etc/init.d/iptables save

ошибок никаких не выдавало, сам IPTables в сервисах запущен, правда вот такое было:
/etc/init.d/iptables restart
iptables: Flushing firewall rules: [ OK ]
iptables: Setting chains to policy ACCEPT: filter nat [ OK ]
iptables: Unloading modules: [FAILED]
iptables: Applying firewall rules: [ OK ]

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

Заранее благодарен.

★★

а и в догонку, инета на вин-машине все еще нету, машины между собой пингуются, есть сетка на самбе, все ок ....

veent ★★
() автор топика

Политики по умолчанию для *filter :FORWARD?

Ну и, типа, традиционное, we wish to see your bloody `iptables-save`!

anonymous
()
Ответ на: комментарий от Reset

>>http://www.shorewall.net/two-interface_ru.html#id2502333

>>Думаю разберешься, там все просто

извини не разобрался, там для меня темный лес ...

>>если у тебя adsl, то инет скорее через ppp0 идет, а не через eth0. http://tldp.org/HOWTO/Masquerading-Simple-HOWTO/summary.html

попробовал первые два варианта - не заработало...

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

veent ★★
() автор топика
Ответ на: комментарий от sasha999

вот -

# /sbin/iptables -L -v -n
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
3105 1031K RH-Firewall-1-INPUT all -- * * 0.0.0.0/0 0.0.0.0/0

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
3 144 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT 3238 packets, 1288K bytes)
pkts bytes target prot opt in out source destination

Chain RH-Firewall-1-INPUT (1 references)
pkts bytes target prot opt in out source destination
1742 803K ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
4 288 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 255
0 0 ACCEPT esp -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT ah -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT udp -- * * 0.0.0.0/0 224.0.0.251 udp dpt:5353
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:631
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:631
753 190K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
606 38192 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

veent ★★
() автор топика
Ответ на: комментарий от veent

mate, я тебя в самом начале треда попросил показать цепочку FORWARD таблицы filter, не знаешь как? Как запускается iptables-save тоже не в курсе?

anonymous
()
Ответ на: комментарий от anonymous

извини, не знаю, я уже несколько лет работаю в области компьютерной графики и недавно новичку в нашей фирме сказал "отэкструдь замкнутый сплайн по пути и отредактируй путь по вертексам" он понял столько же сколько и я в твоей просьбе, я действительно с линуксом знаком уже 6 лет, могу его поставить и настроить так чтоб запускалась Maya (это самое главное так как она работает под линукс и под винду - это небо и земля) + Gimp ...etc.,, а вот раздать интернет для меня сложно, поэтому я и попросил не говорить для меня "загадками", а обьянить как для тупого...:) вот и все...

итак как показать цепочку FORWARD таблицы filter ? потому как в гугла натыкаюсь на кучу теории изучая котрую запутываюсь еще больше.

veent ★★
() автор топика
Ответ на: комментарий от veent

Не, ничего страшного и нет :)

Вываливай сюда весь вывод команды 'iptables-save' (от рута), или запости в какой-нибудь сервис вроде pastebin и дай ссылку.

Для ната всего-то ничего нужно: ip_forward=1, разрешительные правила в FORWARD плюс само правило маскарадинга или SNAT'а (в твоем случае первое)

anonymous
()
Ответ на: комментарий от anonymous

гуд ! вот тогда так:

# /sbin/iptables-save
# Generated by iptables-save v1.3.8 on Sun Jan 13 22:52:29 2008
*nat
:PREROUTING ACCEPT [12335:751289]
:POSTROUTING ACCEPT [5243:241109]
:OUTPUT ACCEPT [5238:240869]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Sun Jan 13 22:52:29 2008
# Generated by iptables-save v1.3.8 on Sun Jan 13 22:52:29 2008
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [15:720]
:OUTPUT ACCEPT [262790:37996883]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p esp -j ACCEPT
-A RH-Firewall-1-INPUT -p ah -j ACCEPT
-A RH-Firewall-1-INPUT -d 224.0.0.251 -p udp -m udp --dport 5353 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Sun Jan 13 22:52:29 2008
#

veent ★★
() автор топика
Ответ на: комментарий от veent

Два момента:

- мне лично непонятен смысл '-o eth0', попробуй его убрать, либо изменить на -s <адрес виндовой машины>, либо на '-i eth1'.

- возможно тупо не загрузились модули вроде nf_nat, либо ядро вовсе собрано без поддержки ната (ни модулями, ни монолитом)

anonymous
()
Ответ на: комментарий от anonymous

/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.2 -j MASQUERADE

ошибок не выдало, но инета нету...

как проверить, что у меня все в порядке и с модулями и вообще система подходит для маскарадинга, все ли у меня есть для этого ?

veent ★★
() автор топика
Ответ на: комментарий от veent

Охх... Я вообще могу быть неправым, будь в курсе :)

Не знаю, как это сделано у редхета, но обычно поддержку Netfilter в ядре компилируют
модулями.  Допустим, что я прав, тогда вывод команды lsmod | grep nat будет примерно следующим:

$ lsmod | grep nat
iptable_nat             6404  1
nf_nat                 15660  2 ipt_MASQUERADE,iptable_nat
nf_conntrack_ipv4      14092  9 iptable_nat
ip_tables              10452  2 iptable_nat,iptable_filter
x_tables               11908  7 ipt_MASQUERADE,iptable_nat,ipt_LOG,xt_tcpudp,xt_state,ipt_iprange,ip_tables
nf_conntrack           52872  6 ipt_MASQUERADE,iptable_nat,nf_nat,nf_conntrack_ipv4,xt_state,nf_conntrack_ftp
nfnetlink               4760  3 nf_nat,nf_conntrack_ipv4,nf_conntrack

Т.е., нужный функционал скомпилирован модулями, которые подгружены.

Если вывод сильно отличается, тогда можно попробовать сделать (от рута): 

# sudo modprobe -l | grep nat
/lib/modules/2.6.22-galea/kernel/net/ipv4/netfilter/nf_nat_tftp.ko
/lib/modules/2.6.22-galea/kernel/net/ipv4/netfilter/iptable_nat.ko
/lib/modules/2.6.22-galea/kernel/net/ipv4/netfilter/nf_nat_sip.ko
/lib/modules/2.6.22-galea/kernel/net/ipv4/netfilter/nf_nat.ko
/lib/modules/2.6.22-galea/kernel/net/ipv4/netfilter/nf_nat_pptp.ko
/lib/modules/2.6.22-galea/kernel/net/ipv4/netfilter/nf_nat_h323.ko
/lib/modules/2.6.22-galea/kernel/net/ipv4/netfilter/nf_nat_amanda.ko
/lib/modules/2.6.22-galea/kernel/net/ipv4/netfilter/nf_nat_irc.ko
/lib/modules/2.6.22-galea/kernel/net/ipv4/netfilter/nf_nat_ftp.ko
/lib/modules/2.6.22-galea/kernel/net/ipv4/netfilter/nf_nat_proto_gre.ko
/lib/modules/2.6.22-galea/kernel/net/ipv4/netfilter/nf_nat_snmp_basic.ko
/lib/modules/2.6.22-galea/kernel/net/bridge/netfilter/ebtable_nat.ko
/lib/modules/2.6.22-galea/kernel/net/bridge/netfilter/ebt_dnat.ko
/lib/modules/2.6.22-galea/kernel/net/bridge/netfilter/ebt_snat.ko
/lib/modules/2.6.22-galea/kernel/drivers/net/natsemi.ko

Примерно такое.

Если второе есть, а первого нет :), тогда нужно необходимые модули подгрузить.

Если ни того, ни друго нет, тогда либо поддержка NAT'а скомпилирована монолитно, либо
не скомпилирована вообще, либо частично.  В первом случае об этом предметном поле
следует забыть, в последних двух нужно либо обновить ядро средствами дистрибутива, либо пересобрать
руками.

anonymous
()
Ответ на: комментарий от anonymous

Ну тогда вот:

#/sbin/lsmod | grep nat
iptable_nat 9669 1
nf_nat 18669 2 ipt_MASQUERADE,iptable_nat
nf_conntrack_ipv4 11717 4 iptable_nat
nf_conntrack 51849 5 xt_state,ipt_MASQUERADE,iptable_nat,nf_nat,nf_conntrack_ipv4
nfnetlink 8281 3 nf_nat,nf_conntrack_ipv4,nf_conntrack
ip_tables 14213 2 iptable_nat,iptable_filter
x_tables 14277 6 xt_state,xt_tcpudp,ipt_REJECT,ipt_MASQUERADE,iptable_nat,ip_tables
#


# /sbin/modprobe -l | grep nat
/lib/modules/2.6.23.9-85.fc8/kernel/net/ipv4/netfilter/nf_nat_tftp.ko
/lib/modules/2.6.23.9-85.fc8/kernel/net/ipv4/netfilter/nf_nat_snmp_basic.ko
/lib/modules/2.6.23.9-85.fc8/kernel/net/ipv4/netfilter/nf_nat_sip.ko
/lib/modules/2.6.23.9-85.fc8/kernel/net/ipv4/netfilter/nf_nat_proto_gre.ko
/lib/modules/2.6.23.9-85.fc8/kernel/net/ipv4/netfilter/nf_nat_pptp.ko
/lib/modules/2.6.23.9-85.fc8/kernel/net/ipv4/netfilter/nf_nat_irc.ko
/lib/modules/2.6.23.9-85.fc8/kernel/net/ipv4/netfilter/nf_nat_h323.ko
/lib/modules/2.6.23.9-85.fc8/kernel/net/ipv4/netfilter/nf_nat_ftp.ko
/lib/modules/2.6.23.9-85.fc8/kernel/net/ipv4/netfilter/nf_nat_amanda.ko
/lib/modules/2.6.23.9-85.fc8/kernel/net/ipv4/netfilter/nf_nat.ko
/lib/modules/2.6.23.9-85.fc8/kernel/net/ipv4/netfilter/iptable_nat.ko
/lib/modules/2.6.23.9-85.fc8/kernel/net/bridge/netfilter/ebtable_nat.ko
/lib/modules/2.6.23.9-85.fc8/kernel/net/bridge/netfilter/ebt_snat.ko
/lib/modules/2.6.23.9-85.fc8/kernel/net/bridge/netfilter/ebt_dnat.ko
/lib/modules/2.6.23.9-85.fc8/kernel/drivers/net/natsemi.ko
#

veent ★★
() автор топика
Ответ на: комментарий от veent

попробуй попинговать какой нибудь сайт с виндовой машины, если пингуется, но сайт не открывается, то скорее всего ты просто забыл DNS сервера прописать в винде.

anonymous
()
Ответ на: комментарий от anonymous

Ерунда какая-то. Что пинговать, что "открывать" -- одинаково нужно разрешение имени.

Лучше так: пинг с сервера до, скажем linux.org.ru, затем пинг с виндовой машины по ip-адресу.

Потом, точно есть уверенность, что виндовая машина правильно настроена?

anonymous
()
Ответ на: комментарий от veent

А днс-сервис на этой машине есть? Если нет, то естественно, что разрешение не будет работать.

Нужно либо такой сервис поднять, либо указывать на виндовых машинах адреса из /etc/resolv.conf

anonymous
()
Ответ на: комментарий от veent

ну вот и все... спасибо тебе заработало ... и дело то не в линуксе оказалось ...

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

СПАСИБО ! :)))

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

http://render.ru/gallery/show_work.php?work_id=34682

теперь благодаря тебе еще один + в пользу линукс. Удачи тебе.


veent ★★
() автор топика
Ответ на: комментарий от veent

ну просто так все не может закончится ... :)))

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

veent ★★
() автор топика
Ответ на: комментарий от veent

Пожалста

Проблема была в настройке днс на виндовс-машинах, да?

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

Не понял, что сделать где?

anonymous
()
Ответ на: комментарий от veent

Кстати, интересно, блендер все-таки может конкурировать с 3дмаксом?

Работы классные.

anonymous
()
Ответ на: комментарий от anonymous

так с сеткой разобрался ... все ок !

разве что каждый раз при перезагрузке нада набирать

# /sbin/iptables -t nat -A POSTROUTING -s 192.168.0.2 -j MASQUERADE
# /sbin/iptables -F FORWARD

куда его прописать что на автомате ?

veent ★★
() автор топика

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

anonymous
()
Ответ на: комментарий от anonymous

>> "3-4 часа"?! Unbelivable! Я думал над такими сценам пол-недели сидят, не меньше.

эээ нет ... это визуализация ... т.е. просчет трассировки лучей и пр. хрени, посмотри на сетку ниже и на картинку выше - картинка уже делается без участия человека (а вот сетку "смоделить это уже от полдня и более")) картинку считает сам комп. (т.е. постепенно прорисовывает пока не закончится фотореалистичным результатом) для этого нужен оч мощный комп, у меня в студии стоит 5 штук Dual core 2, Ram 2 Gb, + видяхи GT8800 512 mb - все это часто обьединяется мною в мини кластер (или рендер ферма) для более грузных работ, над которыми не я один работаю а небольшая команда под моим руководством ...

по поводу блендера вот харьковский товарисц оч. даже круто ваяет, причем прошу заметить всё - опенсорц ...


http://www.3dxata.com.ua/?menu=2-0&l=ukr

veent ★★
() автор топика
Ответ на: комментарий от veent

так все таки куда это чтоб каждый раз не подымать?

# /sbin/iptables -t nat -A POSTROUTING -s 192.168.0.2 -j MASQUERADE
# /sbin/iptables -F FORWARD

veent ★★
() автор топика
Ответ на: комментарий от veent

В 'man iptables' /-F написано, что ключ -F удаляет все правила из указанной цепочки, в данном случае -- FORWARD. Если до исполнения команды iptables -F FORWARD в FORWARD'е нет правил, то эта команда теряет смысл. Для ната (маскарадинга) необходимо, чтобы пропускались пакеты, попадающие в цепочку FORWARD (т.е. транзитные пакеты, с адресом назначения, который не является адресом одного из сетевых интерфейсов роутера). Этого можно достичь либо явным заданием правил с характеристиками тех пакетов, которые нужно пропускать (адрес отправителя, входящий интерфейс, ...), либо установив политику по умолчанию ACCEPT, какая имеет место быть, судя по выводу iptables-save (":FORWARD ACCEPT [15:720]")

iptables (netfilter) можно инициализировать двумя способами при загрузке системы:

- либо из шелл-скрипта, который представляет собой набор команд '/sbin/iptables ...'; в таком случае нужно найти этот скрипт и вписать в него '/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.2 -j MASQUERADE';
- либо из файла, полученного при помощи перенаправления вывода команды iptables-save (командой iptables-restore); тогда нужно просто сохранить желаемый набор текущих правил. По уму это делается средствами дистрибутива, как именно в шапке -- не в курсе.

Ну или тупо вписать в один из стартовых скриптов (вроде rc.local), но это как-то совсем некрасиво.

Вообще говоря, у редхата скорее всего есть какие-нибудь конфигураторы всего этого дела, но тут уж я не советник, попробуй спросить шапководов.

anonymous
()
Ответ на: комментарий от anonymous

ок ! так и сделаю ... во всяком случае дальше уже я сам ... а ветку форума сохранил себе как мини-мануал... на будущее !!! Спасибо еще раз.

veent ★★
() автор топика
Ответ на: комментарий от veent

Да пожалуйста, мне трудно разве.

По iptables есть хорошее руководство на русском, здесь: http://www.opennet.ru/docs/RUS/iptables/

Обширная коллекция ссылок: http://www.linuxguruz.com/iptables/

Большой и страшный туториал на английском: http://iptables-tutorial.frozentux.net/iptables-tutorial.html

Доки с офсайта: http://www.netfilter.org/documentation/index.html

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.