LINUX.ORG.RU

Не получается открыть свой сайт из глобальной сети (ubuntu+apache2+ufw+wordpress)

 , ,


0

2

Доброго времени суток! Перерыл весь интернет, ни один способ не помог мне.

Суть такая- купил внешний ip, на него зарегистрировал домен, сделал dns записи типа A(http://www.example.ru) и (.example.ru)

Структура сети такая: к роутеру покдлючен провайдер, второй роутер работает в режиме повторителя, к второму подключен по патч-корду сервер.

Проброс портов седлал от первого к серверу по 22, 80, 443 портам(из сети удачно подключается по ssh), по 80 не подключается к сайту(

Из локальной сети с любого устройства открывается сайт по локальному ip

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

Также звонил провайдеру- порты он не блокирует



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

Ответ на: комментарий от moonmistress

Как правило, в самом веб-интерфейсе роутера можно изменить порт с 80, например, на 8080 (раздел «Администрирование», «Управление», «Настройки» или «Основное»). Напиши модели своих роутеров.

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

Тебе выше правильно написали про NAT Loopback. Как проверял недоступность сайта по внешнему IP-адресу? Не из своей же локальной сети, надеюсь? Т. е. пробовал подключиться к сайту из другой сети (другой провайдер, сотовый оператор, TOR, VPN-подключение до удалённого сервера и т. д.)?

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

про NAT Loopback сейчас читаю, пробую разобраться

Подключаться пробую не из своей сети, также на 2ip ответ сервера звучит так:

HTTP/1.1 302 Found

Date: Fri, 08 Jul 2022 15:45:26 GMT Server: Apache/2.4.29 (Ubuntu) Location: https://www.example.ru/ Content-Type: text/html; charset=iso-8859-

2ip

Доступность сайта- сайт недоступен для всех серверов

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

да мне впринципе и не требуется получить доступ к сайту из локальной сети-он у меня есть по локальному адресу

мне нужно сделать чтобы сайт открывался в глобальной сети

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

при открытии сайта из мобильной сети мне пишет браузер:

Не удается получить доступ к сайту

Превышено время ожидания от сайта 192.168..

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

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

при открытии сайта из мобильной сети мне пишет браузер:
Не удается получить доступ к сайту
Превышено время ожидания от сайта 192.168..

192.168..

Это же локальный IP-адрес. В DNS-записях домена тоже он указан?

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

даже получается вот как

из мобильной сети пытаюсь открыть сайт https://мой-внешний-ip

открывается сообщение о незащищенном сертификате принадлежащем моему доменому имени example.ru

а дальше уже после потверждения перехода на сайт он перебрасывает меня на локальный ip

то есть может ответ от сервера не возвращается куда нужно?

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

открывается сообщение о незащищенном сертификате принадлежащем моему доменому имени example.ru

Значит удалось подключиться к веб-серверу на 80/443 порту. Сайт доступен для подключений из глобальной сети.

дальше уже после потверждения перехода на сайт он перебрасывает меня на локальный ip

См. перенаправления http/https в настройках веб-сервера.

то есть может ответ от сервера не возвращается куда нужно?

Некорректная настройка SSL на веб-сервере.

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

См. перенаправления http/https в настройках веб-сервера.

Если по доменному имени www. обращаюсь то он сам перенаправляет меня на https

.htaccess

RewriteEngine On

RewriteCond %{SERVER_PORT} ^80$ [OR]

RewriteCond %{HTTP} =on

RewriteRule ^(.*)$ https://www.example.ru/$1 [R=301,L]

RewriteEngine On

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

RewriteBase /

RewriteRule ^index.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

Некорректная настройка SSL на веб-сервере.

переустановил ssl сертификат, проверил пути-все верно

Файл виртуального серевера:

<VirtualHost *:80>

ServerName example.ru

ServerAlias www.example.ru

Redirect / https://www.example.ru/

ServerAdmin webmaster@example.ru

DocumentRoot /var/www/site1

DirectoryIndex index.html index.php

ErrorLog ${APACHE_LOG_DIR}/error.log

CustomLog ${APACHE_LOG_DIR}/access.log combined

<VirtualHost *:443>

ServerName example.ru

ServerAlias www.example.ru

ServerAdmin webmaster@example.ru

DocumentRoot /var/www/site1

SSLEngine on

ErrorLog ${APACHE_LOG_DIR}/error.log

CustomLog ${APACHE_LOG_DIR}/access.log combined

    SSLCertificateFile /etc/ssl/certs/server.pem

SSLCertificateKeyFile /etc/ssl/private/server.key
moonmistress
() автор топика
Ответ на: комментарий от moonmistress

у меня проблема с доступом к сайту вне моей сети

Нет. Я же тебе всё объяснил. У тебя некорректно настроен SSL на сервере. Попробуй на время вообще его отключить и оставить только http (80 порт). Убедишься.

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

убрал ssl (деактивировал в апаче и убрал строки из конфигов)

теперь также не грузит сайт, только уже по http

как я понял, ничего не поменялось

в локалке все также открывает

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

может iptables-save что-то прояснит

Generated by iptables-save v1.6.1 on Sun Jul 10 01:07:06 2022

*filter

:INPUT ACCEPT [243:20205]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [163:18334]

:f2b-sshd - [0:0]

-A INPUT -p tcp -m multiport –dports 22 -j f2b-sshd

-A f2b-sshd -j RETURN

COMMIT

Completed on Sun Jul 10 01:07:06 2022

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

Отключи на время веб-сервер и повесь SSH-сервер на 22 порт (в конфиге /etc/ssh/sshd_config), а затем перезапусти службу/демон SSH (systemctl restart sshd). Если SSH-сервер будет работать без проблем на 80 порту, то проблема в конфигурации веб-сервера. Можешь еще вместо Apache попробовать Nginx запустить (без какой-либо настройки — ради теста).

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

извне не пингует

А ты icmp (пинг) из глобальной сети разрешил в firewall'е сервера? А в настройках роутеров?

nmap извне - порт 80 open, 443 filtered

Ну вот. Веб-сервер доступен извне по 80 порту.

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

да, действительно ssh по 80 порту подключается

попробовал nginx, действительно работает, до того момента пока я на нем не запустил свой эксперементальный сайт на wordpress

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

всё, вообщем оказывается все было на поверхности

все настройки были правильные, только вот в wordpresse был указан адрес сайта-локальный, когда я пробовал установить внешний- я не получал локальный доступ и наоборот

@posixbit Спасибо большое за помощь

@Jameson был прав, мне теперь надо сделать по его инструкции чтобы получить доступ. Тоже огромное спасибо)

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

все настройки были правильные, только вот в wordpresse был указан адрес сайта-локальный, когда я пробовал установить внешний- я не получал локальный доступ и наоборот

Где в Вордпрессе это настраивается?

Jameson был прав, мне теперь надо сделать по его инструкции чтобы получить доступ. Тоже огромное спасибо)

Чтобы обращаться всегда по внешнему? ИМХО не лучшее решение. Наверняка там можно включить несколько ipшников (лупбэк, серый и белый). А скорее, Вордпресс смотрит не ip, а host.

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

Ниже файлы конфигураций

Эти?

Не получается открыть свой сайт из глобальной сети (ubuntu+apache2+ufw+wordpress) (комментарий)

Не получается открыть свой сайт из глобальной сети (ubuntu+apache2+ufw+wordpress) (комментарий)

Сейчас ситуация такая?

https://ibb.co/y51PQgC

#извне
curl --header 'Host: www.example.ru' http://<ip1>:80/
curl http://<ip1>:80/
#изнутри
curl --header 'Host: www.example.ru' http://<ip2>:80/
curl http://<ip2>:80/
curl --header 'Host: www.example.ru' https://<ip2>:443/
curl https://<ip2>:443/
damix9 ★★★
()
Ответ на: комментарий от damix9

Где в Вордпрессе это настраивается?

В wp-config.php ну или в general на сайте:

диррективы WP_HOME и WP_SITEURL

Чтобы обращаться всегда по внешнему? ИМХО не лучшее решение. Наверняка там можно включить несколько ipшников (лупбэк, серый и белый). А скорее, Вордпресс смотрит не ip, а host.

НУ тут как получается, если я указываю внешний айпи в сайт, то с локалки я не могу туда попасть по причине NAT

А если локальный, то извне доступ не будет)

Я не знаю, надо мне как-то nat harpin сделать по совету, но у меня роутер без такой возможности, а сервер не подключен напрямую к нему, надо что-то думать.

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

В wp-config.php ну или в general на сайте:
диррективы WP_HOME и WP_SITEURL

А что сейчас в этих константах?

НУ тут как получается, если я указываю внешний айпи в сайт, то с локалки я не могу туда попасть по причине NAT

Так туда же надо не IP, а URL - "http://www.example.ru".

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

http:://dns-адрес сайта

Там одно двоеточие. И даже если этот же домен в --header 'Host: ...' указать, ответ тот же, что и без --header?

нужно SNAT правило ему определить

Это из пушки по воробьям для этой задачи.

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

Спасибо, разобрался

Зашел в роутер через telnet и установил там правило

iptables -t nat -I POSTROUTING -s 192.168.0.0/28 -d 192.168.0.0/28 -j MASQUERADE

Теперь могу по внешнему ip зайти на сайт из локальной сети

Единственный вопрос для меня остался как сохранить настройки iptables в роутере, ведь там ни батник ни файл создать низя(

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

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

Теперь могу по внешнему ip зайти на сайт из локальной сети

А по доменному имени?

Я понять не могу, как такое возможно, что Вордпресс блочит ipшники клиентов в зависимости от того, из какой они подсети. Не представляю, для чего это может быть нужно.

Веб-сервер и NAT (комментарий)

Единственный вопрос для меня остался как сохранить настройки iptables в роутере, ведь там ни батник ни файл создать низя(

А разве роутер часто перезагружается?

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