Автор Тема: Проблем с iptables  (Прочетена 1102 пъти)

toolame

  • Участници
  • ***
  • Публикации: 3
    • Профил
Проблем с iptables
« -: Jul 15, 2005, 09:34 »
OS Gentoo, kernel 2.6.11-r11, iptables v1.2.11

информация за апачето на проблемното редирекване:
Apache/2.0.54 (Gentoo/Linux) mod_ssl/2.0.54 OpenSSL/0.9.7e PHP/4.3.11 Server at www."mydomain".com Port 80

eth0 = LAN = 192.168.1.0/24 (Вътрешна мрежа)
eth1 = WAN = xxx.xxx.xxx.xxx (external IP)
yyy.yyy.yyy.yyy = друго външно ip
xxx.xxx.xxx.xxx има домейн = "mydomain".com

Проблемът е следния:
Всичко е ОК когато се свързвам от WAN към LAN и от LAN към LAN, но когато се опитам да се свържа от LAN до "mydomain.com" или до xxx.xxx.xxx.xxx през http или https не ми се редиректва заявката към 192.168.1.41
може би нещо в моят конфигурационен файл не е наред.. ето го и него:
Примерен код

#NAT
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE -s 192.168.1.0/24

#filters
iptables -A INPUT -p tcp -j REJECT -s 0/0 -d 0/0 --dport 111
iptables -A INPUT -p tcp -j REJECT -s 0/0 -d 0/0 --dport 587
iptables -A INPUT -p tcp -j REJECT -s 0/0 -d 0/0 --dport 953
iptables -A INPUT -p tcp -j REJECT -s 0/0 -d 0/0 --dport 1112
iptables -A INPUT -p tcp -j REJECT -s 0/0 -d 0/0 --dport 2022
iptables -A INPUT -p tcp -j REJECT -s 0/0 -d 0/0 --dport 3306
iptables -A INPUT -p tcp -j REJECT -s 0/0 -d 0/0 --dport 6000
iptables -A INPUT -p icmp --icmp-type echo-request -d 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j REJECT
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT

#ssh
iptables -A INPUT -p tcp -j ACCEPT  -s 192.168.1.0/24 -d 0/0 --dport 22
iptables -A INPUT -p tcp -j ACCEPT  -s yyy.yyy.yyy.yyy -d 0/0 --dport 22
iptables -A INPUT -p tcp -j REJECT  -s 0/0 -d 0/0 --dport 22

#rdc
iptables -A PREROUTING -t nat -p tcp -d xxx.xxx.xxx.xxx --dport 3389 -j DNAT --to 192.168.1.40
iptables -A INPUT -p tcp -j ACCEPT  -s 192.168.1.0/24 -d 0/0 --dport 3389
iptables -A INPUT -p tcp -j ACCEPT  -s yyy.yyy.yyy.yyy -d 0/0 --dport 3389
iptables -A INPUT -p tcp -j REJECT  -s 0/0 -d 0/0 --dport 3389

#web&mail
iptables -A PREROUTING -t nat -p tcp -d xxx.xxx.xxx.xxx --dport 80 -j DNAT --to 192.168.1.41:80
iptables -A PREROUTING -t nat -p tcp -d xxx.xxx.xxx.xxx --dport 443 -j DNAT --to 192.168.1.41:443
iptables -A INPUT -p tcp -j ACCEPT  -s 192.168.1.0/24 -d 0/0 --dport 443
iptables -A INPUT -p tcp -j ACCEPT  -s yyy.yyy.yyy.yyy -d 0/0 --dport 443
iptables -A INPUT -p tcp -j REJECT  -s 0/0 -d 0/0 --dport 443
iptables -A PREROUTING -t nat -p tcp -d xxx.xxx.xxx.xxx --dport 25 -j DNAT --to 192.168.1.41:25
iptables -A PREROUTING -t nat -p tcp -d xxx.xxx.xxx.xxx --dport 465 -j DNAT --to 192.168.1.41:465
iptables -A PREROUTING -t nat -p tcp -d xxx.xxx.xxx.xxx --dport 110 -j DNAT --to 192.168.1.41:110
iptables -A PREROUTING -t nat -p tcp -d xxx.xxx.xxx.xxx --dport 995 -j DNAT --to 192.168.1.41:995
iptables -A PREROUTING -t nat -p tcp -d xxx.xxx.xxx.xxx --dport 143 -j DNAT --to 192.168.1.41:143
iptables -A PREROUTING -t nat -p tcp -d xxx.xxx.xxx.xxx --dport 993 -j DNAT --to 192.168.1.41:993
iptables -A PREROUTING -t nat -p tcp -d xxx.xxx.xxx.xxx --dport 119 -j DNAT --to 192.168.1.41:119

#vpn
iptables -A PREROUTING -t nat -p tcp -d xxx.xxx.xxx.xxx --dport 5000 -j DNAT --to 192.168.1.50
iptables -A INPUT -p tcp -j ACCEPT  -s yyy.yyy.yyy.yyy -d 0/0 --dport 5000
iptables -A INPUT -p tcp -j ACCEPT  -s yyy.yyy.yyy.yyy -d 0/0 --dport 5000
iptables -A INPUT -p tcp -j ACCEPT  -s yyy.yyy.yyy.yyy -d 0/0 --dport 5000
iptables -A INPUT -p tcp -j ACCEPT  -s yyy.yyy.yyy.yyy -d 0/0 --dport 5000
iptables -A INPUT -p tcp -j ACCEPT  -s yyy.yyy.yyy.yyy -d 0/0 --dport 5000
iptables -A INPUT -p tcp -j REJECT  -s 0/0 -d 0/0 --dport 5000

Пробвах и по този начин:
Примерен код

...........
iptables -t nat -A POSTROUTING -s 192.168.1.41 -p tcp --dport 80 -j SNAT --to-source xxx.xxx.xxx.xxx
iptables -t nat -A PREROUTING -s xxx.xxx.xxx.xxx -p tcp --dport 80 -j DNAT --to-destination 192.168.1.41
...........

, но без успех :(

Благодаря Ви предварително.
Активен

vlad73

  • Напреднали
  • *****
  • Публикации: 130
    • Профил
Проблем с iptables
« Отговор #1 -: Jul 15, 2005, 10:31 »
Ами на мен ми изглежда ок, да не би на вътрешната машина да има нещо?
Firewall, или пък ако иде реч само за 80-и и 443-и порт - настройките на web-server-a... от последния не разбирам кой-знае колко (не че съм експерт и по iptables де '<img'> ), но мисля, че ако имената с които се обръщаш към него от вътрешната и външната мрежа са различни, то трябва да укажеш на apache да слуша и за двете... за нещо виртуално идеше реч  '<img'>
sorry, толкова се сещам, а и не съм на линукска машина за да пробвам...    '<img'>
Активен

toolame

  • Участници
  • ***
  • Публикации: 3
    • Профил
Проблем с iptables
« Отговор #2 -: Jul 15, 2005, 10:51 »
Проблема според мен не е в машината или в апачето :)
Ще се повторя по различен начин.
Когато се свързвам от wan (интернет) към Външният ip адрес или домейн на рутера си редиректва без проблем към въпросната машина и съответните портове.
Също няма проблем ако се свъжа от вътрешната мрежа директно към вътрешното ip na апачето,
.... но когато се опитам да се свържа към въшното ip или домейн на рутера от вътрешната мрежа не ме редиректва обратно към въпросната машина и съответните проблемни портове.

ПС:
при всички останали портове го няма този проблем.
въпросната машина няма firewall
Активен

vlad73

  • Напреднали
  • *****
  • Публикации: 130
    • Профил
Проблем с iptables
« Отговор #3 -: Jul 15, 2005, 11:27 »
Определено не съм те разбрал предния път, извинявам се за офтопика, който се е получил.  '<img'>

Ами честно казано никога не ми беше хрумвало да пробвам подобно нещо с iptables. При мeн съм го решил с фалшив зонов запис за същия домейн, който е видим само във вътрешната мрежа и връща различни ip адреси спрямо тези, които са оказани в истинската зона, която обслужва заявки отвън. Съжалявам, че не мога да помогна с друго.   '<img'>

Успех  '<img'>
Активен

toolame

  • Участници
  • ***
  • Публикации: 3
    • Профил
Проблем с iptables
« Отговор #4 -: Jul 15, 2005, 12:15 »
Благодаря ти за интереса и желанието да помогнеш.
Относно за локален днс не мисля да стартирам допълнителен процес само заради тези 2 порта и то от локална страна, както беше казал някой във форума "да убием мухата с калашник" :).
Почти съм сигурен, че решението на проблема се крие в правилното и интелигентно редиректване (маршрутизиране) на тези портове с 1 максимум 2 реда в конфигурационния файл.

В краен случай ако не се намери решение чрез iptables предполагам, че ще "стрелям по мухата" ;)
Активен

vlad73

  • Напреднали
  • *****
  • Публикации: 130
    • Профил
Проблем с iptables
« Отговор #5 -: Jul 15, 2005, 12:59 »
named не е кой-знае колко тежък като процес, а и в случая няма смисъл от нов сървър наистина, има си специална клауза по въпроса (мисля view се казваше, но на bind9.org можеш да огледаш документацията) просто описваш от кой интерфейс какво се вижда '<img'>

поздрави и успех '<img'>
Активен

kiev1

  • Новаци
  • *
  • Публикации: 1
    • Профил
Проблем с iptables
« Отговор #6 -: Jun 21, 2006, 02:45 »
Цитат (toolame @ Юли 15 2005,10:34)

, но без успех '<img'>

Благодаря Ви предварително.

echo 1 > /proc/sys/net/ipv4/conf/all/accept_source_route
echo 1 > /proc/sys/net/ipv4/conf/default/accept_source_route

and

vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1


or use datapipe )



Активен

  • Гост
Проблем с iptables
« Отговор #7 -: Jun 21, 2006, 10:37 »
Няма да стане, логично '<img'>

На уеб сървъра (.41) сложи следните правила и пробвай пак:

iptables -t nat -A POSTROUTING -p tcp --sport 80 -j SNAT --to-source x.x.x.x:80
iptables -t nat -A POSTROUTING -p tcp --sport 443 -j SNAT --to-source x.x.x.x:443

Проблемът е следния: не можеш да установиш връзка от вътрешната мрежа, защото пращаш syn до x.x.x.x, а ти се връща synack от 192.168.1.41.

Когато тестваш отвън няма значение, защото се нат-ва и като пратиш syn до x.x.x.x, отговорът се нат-ва и излиза с адреса на рутера, съответно получаваш synack от x.x.x.x и връзката се осъществява.

П.П. source routing не включвай за нищо на света. Така си отваряш широко вратите за разни грозни spoofing атаки. rp_filter = 0 , accept_source_route = 0 !!!

Source routing-a е прекрасен начин един идиот да ти се прави на адрес от вътрешната мрежа, да се връзва, избягвайки firewall-a, и на всичкото отгоре да получава спокойно резултатите от хахорските си деяния '<img'>
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Iptables
Настройка на програми
mozly 1 8430 Последна публикация Dec 10, 2002, 23:48
от Vency
iptables
Настройка на програми
sunhater 3 8343 Последна публикация Apr 23, 2003, 15:02
от sunhater
iptables
Настройка на програми
dumdum 4 9692 Последна публикация Apr 30, 2003, 10:40
от dumdum
IPTABLES
Настройка на програми
achird 2 9323 Последна публикация May 20, 2003, 14:14
от achird
iptables
Настройка на програми
dumdum 2 7676 Последна публикация May 03, 2003, 17:00
от