LINUX.ORG.RU
ФорумAdmin

Debian + iptables + 80 порт.

 , , ,


0

1

Добрый вечер. Пока что в линуксе новичок, активно терзаю openvz-контейнер с debian 7 на борту. Есть задача: поднять веб-сервер. Поставил все необходимое (апач/пхп/нгинкс/мускуль), начал настраивать iptables.

В консоли делаю:

sysctl net.ipv4.ip_forward=1

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source ВНЕШНИЙ_IP_СЕРВЕРА

iptables -t nat -A PREROUTING -p tcp -d ВНЕШНИЙ_IP_СЕРВЕРА --dport 80 -j DNAT --to-destination IP_КОНТЕЙНЕРА:80
С моей колокольни все выглядит примитивно, но верно: разрешил форвардинг пакетов, запустил маскарадинг на единственный интерфейс, прокинул порт до порта контейнера. Но не работает :) Читал маны по iptables, конспектировал, экспериментировал (вплоть до переподнятия чистого контейнера), но победить не удалось.



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

Запрос к ВНЕШНИЙ_IP_СЕРВЕРА:80 (пробовал ч-з браузер и telnet'ом для верности). Telnet отдает:

# telnet localhost 80

Trying 127.0.0.1... telnet: Unable to connect to remote host: Connection refused

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

Хочу, чтобы при запросах к 80 порту внешнего IP сервера запросы шли на 80 порт локального openvz контейнера.

yad0ff
() автор топика

А с самого хоста, на котором iptables, получается telnet до IP_КОНТЕЙНЕРА:80?

Покажите iptables -nvL и iptables -t nat -nvL

fcctoo
()

Маршрут по умолчанию в контейнере какой?

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

root@Proxmox-VE ~ # iptables -nvL
Chain INPUT (policy ACCEPT 172K packets, 51M bytes)
 pkts bytes target     prot opt in     out     source               destination 
85763   60M ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0   
    0     0 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80

Chain FORWARD (policy ACCEPT 76 packets, 3952 bytes)
 pkts bytes target     prot opt in     out     source               destination 
    0     0 ACCEPT     all  --  eth0   *       192.168.12.0/24      0.0.0.0/0            ctstate NEW
   76  3040 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED

Chain OUTPUT (policy ACCEPT 173K packets, 65M bytes)
 pkts bytes target     prot opt in     out     source               destination 
  101  6203 ACCEPT     tcp  --  *      eth0    0.0.0.0/0            0.0.0.0/0            tcp dpt:80
85862   60M ACCEPT     all  --  *      lo      0.0.0.0/0            0.0.0.0/0   
    0     0 ACCEPT     tcp  --  *      eth0    0.0.0.0/0            0.0.0.0/0            tcp dpt:80

и


root@Proxmox-VE ~ # iptables -t nat -nvL
Chain PREROUTING (policy ACCEPT 9451 packets, 571K bytes)
 pkts bytes target     prot opt in     out     source               destination 
   76  3952 DNAT       tcp  --  *      *       0.0.0.0/0            78.47.53.138         tcp dpt:80 to:192.168.12.1:80
    0     0 DNAT       tcp  --  *      *       0.0.0.0/0            78.47.53.138         tcp dpt:80 to:192.168.12.2:80

Chain POSTROUTING (policy ACCEPT 591 packets, 34852 bytes)
 pkts bytes target     prot opt in     out     source               destination 
 6018  436K SNAT       all  --  *      eth0    0.0.0.0/0            0.0.0.0/0            to:78.47.53.138
    0     0 SNAT       all  --  *      eth0    0.0.0.0/0            0.0.0.0/0            to:78.47.53.138

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

С контейнера сайтового:


root@sitewww:/# telnet ВНЕШНИЙ_IP 80
Trying ВНЕШНИЙ_IP...
telnet: Unable to connect to remote host: Connection refused

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

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

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


root@Proxmox-VE ~ # telnet 192.168.12.2 80
Trying 192.168.12.2...
Connected to 192.168.12.2.
Escape character is '^]'.
]
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>501 Method Not Implemented</title>
</head><body>
<h1>Method Not Implemented</h1>
<p>] to /index.html not supported.<br />
</p>
<hr>
<address>Apache/2.2.22 (Debian) Server at 192.168.12.2 Port 80</address>
</body></html>
Connection closed by foreign host.


yad0ff
() автор топика

Я бы поставил на хост nginx и проксировал бы им запросы на бэкенд

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