LINUX.ORG.RU
решено ФорумAdmin

Apache и NAT

 , ,


0

1

Есть роутер (192.168.1.1), есть ЭВМ на которой крутиться веб-сервер (192.168.1.44:8082), и есть более 7 миллиардов человек, которые не могут полюбоваться моим детищем по известным причинам. Помогите пожалуйста разобраться, данные предоставлю.

★★★★

Последнее исправление: fero (всего исправлений: 1)

Как недавно тут мне посоветовали - rinetd. Ну просто та штука, которую я искал(вру, просто на глаза не попадалась) очень долго!

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

Посмотри пример конфига для rinetd. Даже документации не надо для работы с программой. Много удобнее даже гуя роутеров, особенно если уже все готово и машина смотрит в сеть всеми портами

minakov ★★★★★
()

Apache и NAT

Это какой-то прикол? Ответ в заголовке же.

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

Нет, он от провайдера белый ip получает

fero ★★★★
() автор топика
-A PREROUTING -i ppp0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.44:8082
-A POSTROUTING -o ppp0 -j MASQUERADE
-A FORWARD -d 192.168.1.44/32 -i ppp0 -p tcp -m tcp --dport 8082 -j ACCEPT
-A FORWARD -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT

ppp0 - внешний интерфейс на 192.168.1.1

на 192.168.1.44 в качестве шлюза указать 192.168.1.1

vxzvxz ★★★
()
Последнее исправление: vxzvxz (всего исправлений: 2)
Ответ на: комментарий от vxzvxz
iptables: No chain/target/match by that name.

ppp0 меняю на eth2

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         Dlink-Router.Dl 0.0.0.0         UG    0      0        0 eth2
default         Dlink-Router.Dl 0.0.0.0         UG    202    0        0 eth2
loopback        *               255.0.0.0       U     0      0        0 lo
192.168.1.0     *               255.255.255.0   U     202    0        0 eth2

З.Ы. а чем бы так хитро пропинговать, чтоб понять как ведут себя пакеты?

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

Это роутер, 192.168.1.44 - eth2 на тёмной звезде.

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

Может и ни при чем, прости :(

на 192.168.1.44 в качестве шлюза указать 192.168.1.1

Я решил, что это route add default gw 192.168.1.1

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

192.168.1.1 - роутер с emacs на борту.
192.168.1.44 - моя личная персональная ЭВМ.
Раньше спокойно пробрасывал порты силами роутера (в игрушки там поигать или icecast поднять), а с веб-сервером не вышло.

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

Я порт 8082 поставил. Пробовал 80, 8080, 8081

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

Слакварщики такие слакварщики. У роутера есть модель и прошивка. Не везде можно иптаблесом, да и не всегда это нужно.

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

Обычно через веб-морду порт-форвардинг настраивается, через iptables - это изврат

xorik ★★★★★
()
Ответ на: комментарий от momo
iptables -t nat -A PREROUTING -i ppp0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.44:8082
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -A FORWARD -d 192.168.1.44/32 -i ppp0 -p tcp -m tcp --dport 8082 -j ACCEPT
iptables -A FORWARD -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT

Так? Прописал на роутере, не работает :(

fero ★★★★
() автор топика
Последнее исправление: fero (всего исправлений: 1)

Но игрушки-то через вебморду пробрасывались, может дело в настройках веб-сервера? Как проверить?

fero ★★★★
() автор топика
Ответ на: комментарий от fero
iptables -A FORWARD -d 192.168.1.44 -i ppp0 -p tcp -m tcp --dport 8082 -j ACCEPT
iptables -A FORWARD -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT

маска подсети /32 подразумевает 0 хостов в сети, т.е. только адрес самой сетки. 255.255.255.0 маске соответствует /24.

momo
()
Последнее исправление: momo (всего исправлений: 1)
Ответ на: комментарий от momo

Сейчас прям на роутере прописываю, поэтому ничего не подставляю. На нём ppp0 это:

ppp0      Link encap:Point-to-Point Protocol  
          inet addr:95.29.*.*  P-t-P:95.29.112.1  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1456  Metric:1
          RX packets:12541027 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5858407 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:3194893950 (2.9 GiB)  TX bytes:1223879376 (1.1 GiB)
Мой внешний ip.

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

Ещё раз напишу, на всякий случай. Есть ЭВМ с апачем на 8082 порту, её ip 192.168.1.44, есть роутер, с ip для сетки 192.168.1.1 вот оно:

br0       Link encap:Ethernet  HWaddr B8:A3:86:1C:19:E6  
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5875782 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12539927 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1228787200 (1.1 GiB)  TX bytes:3385516461 (3.1 GiB)
И внешним ip ppp0 95.29.*.*

fero ★★★★
() автор топика
Ответ на: комментарий от fero
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.44:8082
iptables -A FORWARD --dst 192.168.1.44 --dport 8082 -j ACCEPT
iptables -A FORWARD -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p udp -m state --state ESTABLISHED,RELATED(правда, не совсем понимаю, зачем по udp пускать)
momo
()
Последнее исправление: momo (всего исправлений: 2)
Ответ на: комментарий от momo
# iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.44:8082
# iptables -A FORWARD --dst 192.168.1.44 --dport 8082 -j ACCEPT
iptables v1.4.0rc1: Unknown arg `--dport'
Try `iptables -h' or 'iptables --help' for more information.
# iptables -A FORWARD -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
# iptables -A FORWARD -p udp -m state --state ESTABLISHED,RELATED

Ругается. И почему в 1й строке --dport 80, можно же 8082 прописать? Он не в веб-интерфейс роутера долбится?

# iptables --list
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             anywhere            state RELATED,ESTABLISHED 
           udp  --  anywhere             anywhere            state RELATED,ESTABLISHED 
ACCEPT     tcp  --  anywhere             anywhere            state RELATED,ESTABLISHED 
           udp  --  anywhere             anywhere            state RELATED,ESTABLISHED 

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain BRUTE (0 references)
target     prot opt source               destination         

Chain FORWARD2 (0 references)
target     prot opt source               destination         

Chain H_ACCESS (0 references)
target     prot opt source               destination         

Chain MACS (0 references)
target     prot opt source               destination         

Chain MINIUPNPD (0 references)
target     prot opt source               destination         

Chain SECURITY (0 references)
target     prot opt source               destination         

Chain USER_DNAT (0 references)
target     prot opt source               destination         

Chain USER_RULES (0 references)
target     prot opt source               destination         

Chain WAN_FIREWALL (0 references)
target     prot opt source               destination         

Chain logaccept (0 references)
target     prot opt source               destination         

Chain logdrop (0 references)
target     prot opt source               destination         
fero ★★★★
() автор топика
Последнее исправление: fero (всего исправлений: 2)
Ответ на: комментарий от fero

сначала пакет приходит на Ваш белый ip на порт 80, разве не так? когда этот самый пакет на 80 порт по протоколу tcp с интерфейса ppp0 пришел, мы подменяем адрес назначения(все это происходит до фильтрации и принятия решения о маршрутизации). когда пакет проходит фильтрацию в цепочке FORWARD, мы смотрим уже там, что он идет на 8082 порт на 192.168.1.44.

по поводу ругательства:

iptables -A FORWARD --dst 192.168.1.44 -p tcp --dport 8082 -j ACCEPT
забылся)

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

momo
()
Последнее исправление: momo (всего исправлений: 1)
Ответ на: комментарий от fero

Когда правила переписываете с нуля, стирайте старые

iptables -F #обнулит правила в таблице filter
iptables -t nat -F # в таблице nat

и покажите

iptables -t nat -L -v

momo
()
Последнее исправление: momo (всего исправлений: 2)
Ответ на: комментарий от momo

Не выходит. Но теперь лиса не говорит, что невозможно отобразить страницу, залипает на попытке соединиться.
А так-то да, веб-интерфейс доступен из вне, это для многих роутеров справедливо и многие веселяться находя их в сети, пользователи редко меняют логин и пароль admin на что-то иное.

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

Про стирание правил я догадался сам :)

Chain PREROUTING (policy ACCEPT 1112K packets, 123M bytes)
 pkts bytes target     prot opt in     out     source               destination         
84634 9137K VSERVER    all  --  ppp0   any     anywhere             95-29-???.???.broadband.corbina.ru 
    2    96 VSERVER    all  --  eth2.5 any     anywhere             10.165.17.95        
    0     0 REDIRECT   tcp  --  br0    any     anywhere             192.0.2.1           tcp dpt:www redir ports 8080 
 637K   72M MINIUPNPD  all  --  eth2.5 any     anywhere             anywhere            
72509 7561K MINIUPNPD  all  --  ppp0   any     anywhere             anywhere            
    0     0 DNAT       tcp  --  ppp0   any     anywhere             anywhere            tcp dpt:www to:192.168.1.44:8082 
    0     0 DNAT       tcp  --  ppp0   any     anywhere             anywhere            tcp dpt:www to:192.168.1.44:8082 
    0     0 DNAT       tcp  --  ppp0   any     anywhere             anywhere            tcp dpt:8082 to:192.168.1.44:8082 
    0     0 DNAT       tcp  --  ppp0   any     anywhere             anywhere            tcp dpt:www to:192.168.1.44:8082 
   33  1980 DNAT       tcp  --  br0    any     anywhere             anywhere            tcp dpt:8082 to:192.168.1.44:8082 
    0     0 DNAT       tcp  --  ppp0   any     anywhere             anywhere            tcp dpt:www to:192.168.1.44:8082 
    0     0 DNAT       tcp  --  ppp0   any     anywhere             anywhere            tcp dpt:www to:192.168.1.44:8082 
    0     0 DNAT       tcp  --  ppp0   any     anywhere             anywhere            tcp dpt:www to:192.168.1.44:8082 
    0     0 DNAT       tcp  --  ppp0   any     anywhere             cpc1-finc11-0-0-cust767.know.cable.virginm.net to:192.168.1.44:8082 
    0     0 DNAT       tcp  --  ppp0   any     anywhere             cpc1-finc11-0-0-cust767.know.cable.virginm.net to:192.168.1.44:8082 
    0     0 DNAT       tcp  --  ppp0   any     anywhere             anywhere            tcp dpt:www to:192.168.1.44:8082 
    0     0 DNAT       tcp  --  ppp0   any     anywhere             anywhere            tcp dpt:8082 to:192.168.1.44:8082 

Chain POSTROUTING (policy ACCEPT 15890 packets, 2874K bytes)
 pkts bytes target     prot opt in     out     source               destination         
  117 13495 MASQUERADE  all  --  any    eth2.5 !10.165.17.95         anywhere            
 358K   40M MASQUERADE  all  --  any    ppp0   !95-29-???.???.broadband.corbina.ru  anywhere            
    3   203 MASQUERADE  all  --  any    ppp0    anywhere             anywhere            
    0     0 MASQUERADE  all  --  any    ppp0    anywhere             anywhere            
    0     0 MASQUERADE  all  --  any    ppp0    anywhere             anywhere            

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

Chain DNSREDIRECT (0 references)
 pkts bytes target     prot opt in     out     source               destination 
        
    0     0 RETURN     all  --  any    any     anywhere             10.165.16.0/21      
    0     0 RETURN     all  --  any    any     anywhere             10.0.0.0/8          
    0     0 RETURN     all  --  any    any     anywhere             78-107-196-0.broadband.corbina.ru/22 
    0     0 RETURN     all  --  any    any     anywhere             233.33.210.0/24     
    0     0 REDIRECT   all  --  any    any     anywhere             anywhere            

Chain MINIUPNPD (2 references)
 pkts bytes target     prot opt in     out     source               destination         
 709K   80M RETURN     all  --  any    any     anywhere             anywhere            

Chain VSERVER (2 references)
 pkts bytes target     prot opt in     out     source               destination         
  479 23712 DNAT       tcp  --  ppp0   any     anywhere             anywhere            multiport dports 7707:28852 to:192.168.1.17:7707-28852 
 9697 1289K DNAT       udp  --  ppp0   any     anywhere             anywhere            multiport dports 7707:28852 to:192.168.1.17:7707-28852 
    0     0 DNAT       tcp  --  ppp0   any     anywhere             anywhere            multiport dports 27005:27015 to:192.168.1.17:27005-27015 
    0     0 DNAT       udp  --  ppp0   any     anywhere             anywhere            multiport dports 27005:27015 to:192.168.1.17:27005-27015 
    0     0 DNAT       tcp  --  eth2.5 any     anywhere             anywhere            multiport dports 1200:27039 to:192.168.1.17:1200-27039 
    0     0 DNAT       udp  --  eth2.5 any     anywhere             anywhere            multiport dports 1200:27039 to:192.168.1.17:1200-27039 
    0     0 DNAT       tcp  --  eth2.5 any     anywhere             anywhere            multiport dports 27015:27050 to:192.168.1.44:27015-27050 
    0     0 DNAT       udp  --  eth2.5 any     anywhere             anywhere            multiport dports 27015:27050 to:192.168.1.44:27015-27050 
    0     0 DNAT       tcp  --  ppp0   any     anywhere             anywhere            multiport dports freeciv to:192.168.1.44:5556 
    0     0 DNAT       udp  --  ppp0   any     anywhere             anywhere            multiport dports freeciv to:192.168.1.44:5556 
    0     0 DNAT       tcp  --  ppp0   any     anywhere             anywhere            multiport dports 8082 to:192.168.1.44:8082 
    0     0 DNAT       udp  --  ppp0   any     anywhere             anywhere            multiport dports 8082 to:192.168.1.44:8082 
67819 7274K RETURN     all  --  any    any     anywhere             anywhere            
#    

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

Т.е. вы из инета лезете на сайт и лиса залипает? на хосте с вебсервером не стоит файрволла, который может не пускать?

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

Я сижу за 192.168.1.44 и в адресную строку вбиваю: 95.29.???.???:8082
Но у меня ничего не выходит. Хочу чтоб моё поделие было видно из Интернета, чтоб не таскать веб-сервер с собой для демонстрации в университете.
Огнестен я не ставил, уже спрашивал выше, может дело в настройках апача?

fero ★★★★
() автор топика
Последнее исправление: fero (всего исправлений: 2)
Ответ на: комментарий от fero

Попробуйте зайти извне. Есть подозрение, что т.к. роутер с вами в сети, то вы все равно заходите с br0.

momo
()
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.44:8082
iptables -A FORWARD --dst 192.168.1.44 -p tcp --dport 8082 -j ACCEPT
iptables -A FORWARD -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

Разобрались, спасибо товарищу momo.

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