Реверс-прокси на службе человечества

Реверс-прокси на службе человечества Инструкция, Linux, Https, Длиннопост, Информационная безопасность

Ранее я уже выкладывал на Пикабу статьи про личные VPN, личные хранилища файлов и прочие штуки для защиты личной информации. Планирую несколько статей по полезным для личного использования OpenSorce сервисам. Если эта статья не улетит в минус, выложу сюда и другие.

И для начала статья про реверс-прокси. Используя его, можно создать зеркало любого сайта, в том числе не доступного в вашей стране пребывания, и спокойно пользоваться им без всяких VPN. А можно поставить реверс-прокси как защитный барьер перед каким-то web-сервисом. В общем вот Вам инструмент, пользуйтесь. На одном копеечном сервере Вы можете поднять хоть сотню зеркал дл личного пользования.

Примечание 1: это статья рассчитана на нулевой или начальный уровень читающего. Очень подробно и просто, без занудства.

Примечание 2: Всё описанное в этой статье приведено только в обучающих целях и не должно быть использовано для противоправных действий. Администрация сайта не несёт ответственность за действия третьих лиц, использующих инструкции из данной статьи. Все скриншоты и адреса сайтов в этой статье являются художественным вымыслом, совпадения с реальными адресами и сайтами случайно.

Примечание 3: статья может и будет дорабатываться. Наиболее актуальный вариант как всегда в первоисточнике. Да и конфиги там выглядят как надо.

Nginx это не только web-сервер, но и кое что получше. Его можно использовать в качестве обратного прокси или реверс-прокси. Что это значит? Реверс-прокси это посредник между пользователем и реальным web-сервером. Это значит, мы можем скрыть от пользователя (или от того, сто фильтрует наш трафик ) настоящий адрес web-сервера, обеспечить доступ по https к серверу, который умеет только http, можем подменить домен web-сервера, можем фильтровать содержимое трафика как с целью подмены содержимого сайта, так и для защиты web-сервера от атак злодеев, можем кэшировать сайт для ускорения, можем балансировать нагрузку, можем… Да очень много можем! Например, сделать своё собственное зеркало RuTracker или любого другого сайта, к которому нет доступа обычным способом.


Лучше всего показывать на реальных примерах. Нам понадобится VPS с минимальными характеристиками. Nginx не требователен к ресурсам. Главное, чтобы хватило лимитов трафика под Вашу задачу. В данной статье для скриншотов будет использоваться VPS с операционной системой CentOS 7. Для других операционных систем конфиги абсолютно аналогичны. Старайтесь использовать минимальную конфигурацию операционной системы без дополнительных пакетов.

Реверс-прокси на службе человечества Инструкция, Linux, Https, Длиннопост, Информационная безопасность

Также нам понадобится домен. Можете использовать домен третьего уровня у какого-то своего домена, но лучше для таких дел арендовать отдельный новый платный домен, или арендовать бесплатный домен где-нибудь на freenom.com. Вы должны быть готовы к тому, что ваш домен добавят в реестр запрещенных сайтов. Это не должно затронуть какие-либо другие Ваши сервисы, кроме реверс-прокси. Для этого домена нужно добавить A запись с IP адресом нашего VPS. Как арендовать домен и настраивать DNS записи можно почитать здесь. Для примера в статье будет использоваться домен mydomain.com


Как арендовать и первично настроить VPS описано здесь, здесь и здесь. Должен быть разрешён доступ к серверу по портам tcp/22, tcp/80 и tcp/443. Если вы используете эту статью для настройки файрволла, то конфиг ipt-set будет выглядеть так:


#!/bin/sh

IF_EXT="venet0"

IPT="/sbin/iptables"

IPT6="/sbin/ip6tables"

# flush

$IPT --flush

$IPT -t nat --flush

$IPT -t mangle --flush

$IPT -X

$IPT6 --flush

# loopback

$IPT -A INPUT -i lo -j ACCEPT

$IPT -A OUTPUT -o lo -j ACCEPT

# default

$IPT -P INPUT DROP

$IPT -P OUTPUT DROP

$IPT -P FORWARD DROP

$IPT6 -P INPUT DROP

$IPT6 -P OUTPUT DROP

$IPT6 -P FORWARD DROP

# allow forwarding

echo 1 > /proc/sys/net/ipv4/ip_forward

# NAT

# #########################################

# SNAT - local users to out internet

$IPT -t nat -A POSTROUTING -o $IF_EXT -j MASQUERADE

# INPUT chain

# #########################################

$IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# ssh

$IPT -A INPUT -i $IF_EXT -p tcp --dport 22 -j ACCEPT

# WEB

$IPT -A INPUT -i $IF_EXT -p tcp --dport 80 -j ACCEPT

$IPT -A INPUT -i $IF_EXT -p tcp --dport 443 -j ACCEPT

# OUTPUT chain

# #########################################

$IPT -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

Обновим сервер:

yum -y update

yum -y install epel-release

Ставим собственно Nginx

yum -y install nginx

Пробуем запустить

systemctl start nginx

Теперь, если мы попробуем в браузере перейти по адресу нашего домена http://mydomain.com (вы, соответсвенно вводите своё имя домена), то должны увидеть страницу-заглушку. Типа такой:

Реверс-прокси на службе человечества Инструкция, Linux, Https, Длиннопост, Информационная безопасность

Также можно проверить работоспособность службы командой:

systemctl status -l nginx

Вывод команды должен выглядеть так:

Реверс-прокси на службе человечества Инструкция, Linux, Https, Длиннопост, Информационная безопасность

Если возникли проблемы и служба не запускается, то скорее всего вы используете не минимальный дистрибутив операционной системы и в системе уже установлен какой-то web-сервер, который занимает порт. Чтобы проверить это, установим сетевые утилиты

yum install net-tools -y

И проверим, кто занимает порт

netstat -tulnp | grep 80

В выводе команды вы можете увидеть, например:

tcp 0 0 :::80 :::* LISTEN 104/httpd

Это значит, что установлен Apache и запущен его демон httpd. Убираем это командами:

systemctl stop httpd

systemctl disable httpd

А потом пробуем запустить службу Nginx как описано выше. Если всё хорошо, добавляем её в автозагрузку:

systemctl enable nginx

Переходим к конфигу Nginx. Откройте файл /etc/nginx/nginx.conf

Напомню, все манипуляции с фалами я делаю с помощью программ WinSCP, как это описано в этой статье. В качестве редактора рекомендую использовать программу Notepad++. Установите её на свой компьютер и укажите в настройках WinSCP путь к редактору в меню Options->Preferences->Editors. Он должен быть первым в списке для использования по умолчанию.

Реверс-прокси на службе человечества Инструкция, Linux, Https, Длиннопост, Информационная безопасность

В конфиге уже есть секция

server {

listen 80 default_server;

listen [::]:80 default_server;

server_name _;

root /usr/share/nginx/html;


# Load configuration files for the default server block.

include /etc/nginx/default.d/*.conf;


location / {

}


error_page 404 /404.html;

location = /40x.html {

}


error_page 500 502 503 504 /50x.html;

location = /50x.html {

}

}

Именно эта секция выводит страницу-заглушку. А вот ниже есть закоментированный пример секции https (порт 443) страницы-заглушки. Крайне желательно эту секцию сделать работающей. Нам понадобятся сертификаты. Установим certbot и получим сертификат командами:

yum -y install certbot python2-certbot-nginx

certbot certonly

На запрос:

Реверс-прокси на службе человечества Инструкция, Linux, Https, Длиннопост, Информационная безопасность

Вводим 1


На запрос:

Реверс-прокси на службе человечества Инструкция, Linux, Https, Длиннопост, Информационная безопасность

Вводим свой действующий e-mail. На него будут приходить в уведомления. Например, если срок сертификата истекает и его необходимо продлить.


Напомню: Let’s Encrypt выдаёт сертифакты со сроком действия три месяца.

Далее принимаем соглашение и отказываемся от рассылок, вводим, соответственно, A и N

Реверс-прокси на службе человечества Инструкция, Linux, Https, Длиннопост, Информационная безопасность
Реверс-прокси на службе человечества Инструкция, Linux, Https, Длиннопост, Информационная безопасность

Дальше нужно ввести имя Вашего домена. В моём случае это mydomain.com. И нажать Enter. Если у Вас настроена A запись, как указано в начале статьи, и прошло достаточно времени (запись должна прореплицироваться на все DNS-сервера, это можета занимать до 24-х часов, дожен пинговаться адрес домена), то будет получен сертификат и мы получим вывод в консоли:

IMPORTANT NOTES:

- Congratulations! Your certificate and chain have been saved at:

/etc/letsencrypt/live/mydomain.com/fullchain.pem

Your key file has been saved at:

/etc/letsencrypt/live/mydomain.com/privkey.pem

Your cert will expire on 2020-02-26. To obtain a new or tweaked

version of this certificate in the future, simply run certbot

again. To non-interactively renew *all* of your certificates, run

"certbot renew"

Заметьте, тут сразу есть пути к файлам сертификата и их можно очень удобно скопировать в конфиг. Возвращаемся к файлу /etc/nginx/nginx.conf, раскоментируем секцию для https и исправим пути на сертификат. Получится так:

# Settings for a TLS enabled server.


server {

listen 443 ssl http2 default_server;

listen [::]:443 ssl http2 default_server;

server_name _;

root /usr/share/nginx/html;


ssl_certificate "/etc/letsencrypt/live/mydomain.com/fullchain.pem";

ssl_certificate_key "/etc/letsencrypt/live/mydomain.com/privkey.pem";

ssl_session_cache shared:SSL:1m;

ssl_session_timeout 10m;

ssl_ciphers HIGH:!aNULL:!MD5;

ssl_prefer_server_ciphers on;


# Load configuration files for the default server block.

include /etc/nginx/default.d/*.conf;


location / {

}


error_page 404 /404.html;

location = /40x.html {

}


error_page 500 502 503 504 /50x.html;

location = /50x.html {

}

}

Сохраним файл и перезапустим службу Nginx. Перезапускать службу нужно каждый раз, когда вы меняете конфиги Nginx.

systemctl restart nginx

И проверяем, что старница-заглушка доступна в браузере по адресу https://mydomain.com (вы вводите своё имя домена).


В конфиге /etc/nginx/nginx.conf обратите внимание на строчку

include /etc/nginx/conf.d/*.conf;

Это значит, что если мы в папке /etc/nginx/conf.d/ разместим файл с расширением .conf, то он будет включен в основной конфиг и выполнен вместе с ним. Так и будем делать. Файл /etc/nginx/nginx.conf закрываем и больше не трогаем.


Теперь определим, к чему мы будем проксировать трафик. Например, я хочу чтоб при переходе по адресу test.mydomain.com, во-первых, происходила переадресация на адрес https://test.mydomain.com (мы за безопасность и шифрование), а во-вторых, открывался сайт eng.rkn.gov.ru.


Сначала создадим домен третьего уровня вида test.mydomain.com


Категорически рекомендую использовать для проксирования только домены третьего уровня. Если какому-то регулятору не понравится то, что у вас по этому адресу расположено, он забанит именно домен третьего уровня и не забанит домен второго уровня. По крайней мере, скорее всего не забанит :).

Т.е. создадим на DNS-сервере А запись test (вы подставляете своё имя) с тем же IP-адресом, что и основной домен mydomain.com (вы подставляете своё имя). Дождитесь, чтобы запись прореплицировалась по DNS-серверам. Можно проверить, что домен пингуется командой на VPS:

ping test.mydomain.com -c 3

Должны корректно пройти три пинга

PING test.mydomain.com (185.nnn.nnn.nnn) 56(84) bytes of data.

64 bytes from vpsNNNN.hostsailor.com (185.nnn.nnn.nnn): icmp_seq=1 ttl=64 time=0.031 ms

64 bytes from vpsNNNN.hostsailor.com (185.nnn.nnn.nnn): icmp_seq=2 ttl=64 time=0.019 ms

64 bytes from vpsNNNN.hostsailor.com (185.nnn.nnn.nnn): icmp_seq=3 ttl=64 time=0.019 ms


--- test.secfall.com ping statistics ---

3 packets transmitted, 3 received, 0% packet loss, time 2000ms

rtt min/avg/max/mdev = 0.019/0.023/0.031/0.005 ms

В папке /etc/nginx/conf.d/ создаём файл с именем вида test.mydomain.com.conf следующего содержания:

server {

listen 80;

server_name test.mydomain.com;

location /.well-known/acme-challenge {

alias /usr/share/nginx/html/.well-known/acme-challenge;

}

location / {

return 301 https://$server_name$request_uri;

}

}

Перезапускаем службу Nginx и, с помощью команды certbot certonly, делаем сертификат для нашего домена третьего уровня test.mydomain.com (подставляете свои имена).


Если сертификат получен, дописываем (т.е. добавляем с новой строчки в конце) в файл /etc/nginx/conf.d/test.mydomain.com.conf секцию для https:

server {

listen 443 ssl;

server_name test.mydomain.com;


access_log /var/log/nginx/test.mydomain.com.access.log;

error_log /var/log/nginx/test.mydomain.com.error.log;


client_max_body_size 0;

underscores_in_headers on;


ssl_certificate /etc/letsencrypt/live/test.mydomain.com/fullchain.pem;

ssl_certificate_key /etc/letsencrypt/live/test.mydomain.com/privkey.pem;


ssl_stapling on;

ssl_stapling_verify on;

location /.well-known/acme-challenge {

alias /usr/share/nginx/html/.well-known/acme-challenge;

}


location / {

proxy_set_header Host eng.rkn.gov.ru;

add_header Front-End-Https on;

add_header Referer-Policy no-referrer;

proxy_pass http://eng.rkn.gov.ru;

}

}

Рассмотрите внимательно конфиг. В нём test.mydomain.com вы заменяете на своё имя домена, а eng.rkn.gov.ru на имя того сервера, который будете проксировать. И обратите внимание, что в данном конфиге к eng.rkn.gov.ru сервер обращается по http, а нам отдаёт по https. Такое полезно, когда web-сервер расположен где-то во внутренней инфраструктуре и нет необходимости или возможности прикрутить к нему https.


Например, есть некий сервис который вообще не умеет в https. Мы устанавливаем его на сервер, привязываем к адресу localhost и к порту, например, 8080. Теперь к сервису нельзя обратится извне, а только «изнутри» сервера по адресу http://localhost:8080. На этот же сервер ставим реверс-прокси, как написано выше, и указываем


proxy_pass http://localhost:8080;


Т.е. Nginx будет обращаться к этому же серверу на localhost к нашему сервису по порту 8080. А нам будет отдавать нормальный https. Да ещё всякой фильтрации для безопасности можно навесить, чтобы помешать злодеям ломать наш сервис. Но об этом ниже.

Сохраняем файл, перезапускаем службу Nginx. Возможно вы где-то накосячили и ошиблись. Тогда командой

systemctl status -l nginx

смотрим, в чём ошибка. Обычно Nginx достаточно внятно пишет, что ему не нравиться, и даже укавает номер строки конфига, где есть ошибка.


Если служба запустилась без ошибок, то в браузере открываем адрес test.mydomain.com Получится как-то так:

Реверс-прокси на службе человечества Инструкция, Linux, Https, Длиннопост, Информационная безопасность

Обратите внимание, что хотя мы не писали в адресе https, сервер сам перевёл нас на зашифрованный трафик. Всё, мы сделали зеркало сайта! Дальше можно дорабатывать конфиг. Например добавить строчку


proxy_cookie_domain rkn.gov.ru $host;

proxy_pass_header Set-Cookie;

Это позволит обеспечить корректную работу куков и нормальную авторизацию на проксируемом сайте. Получится так (показан кусок конфига, только с параметрами проксирования):

location / {

proxy_cookie_domain eng.rkn.gov.ru $host;

proxy_pass_header Set-Cookie;


proxy_set_header Host eng.rkn.gov.ru;

add_header Front-End-Https on;

add_header Referer-Policy no-referrer;

proxy_pass http://eng.rkn.gov.ru;

}

Можно включить фильтрацию текста. Например заменять слово «Roskomnadzor» на «Roskompozor». Нужно дописать пару строчек (показан кусок конфига, только с параметрами проксирования):

location / {

proxy_cookie_domain rkn.gov.ru $host;

proxy_pass_header Set-Cookie;

proxy_set_header Host eng.rkn.gov.ru;

add_header Front-End-Https on;

add_header Referer-Policy no-referrer;

proxy_pass http://eng.rkn.gov.ru;

sub_filter "Roskomnadzor" "Roskompozor";

sub_filter_once off;

}

Директива

sub_filter «Roskomnadzor» «Roskompozor»;

показывает что на что менять.

Директива

sub_filter_once off;

говорит серверу, что заменить нужно все найденные вхождения. Если не указать, заменит только первое совпадение.

Сохряняем конфиг, перезапускаем службу Nginx и с помощью комбинации Ctrl+F5 (чтобы игнорировать кэш браузера) обновляем страницу в браузере. Получится как-то так :)

Реверс-прокси на службе человечества Инструкция, Linux, Https, Длиннопост, Информационная безопасность

Теперь про фильтрацию заголовков. Это нужно делать, если проксируете трафик к какому-то своему сервису и нужно его дополнительно защитить. Я покажу часть конфига с проксированием со всеми основными примочками безопасности (кусок с ними выделен линиями). Я не буду расписывать — для чего они. Это тема отдельной статьи. Если интересно — легко сможете нагуглить.

location / {

proxy_cookie_domain rkn.gov.ru $host;

proxy_pass_header Set-Cookie;

proxy_set_header Host eng.rkn.gov.ru;

#------------------------------------------------------------------------------------------------------------------------------------------

proxy_headers_hash_max_size 512;

proxy_headers_hash_bucket_size 64;

proxy_set_header Accept-Encoding "";

proxy_set_header X-Forwarded-Proto $scheme;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

add_header X-Content-Type-Options nosniff;

add_header X-XSS-Protection "1; mode=block";

add_header Content-Security-Policy "default-src 'self';

frame-ancestors https://framer.mozilla.org;

form-action 'self';

base-uri 'self';

script-src 'self' https://mc.yandex.ru https://ssl.google-analytics.com;

img-src 'self' https://mc.yandex.ru https://ssl.google-analytics.com;

style-src 'self' 'unsafe-inline' https://mc.yandex.ru https://fonts.googleapis.com;

font-src 'self' https://mc.yandex.ru https://themes.googleusercontent.com;

frame-src https://mc.yandex.ru;

object-src 'none'

";

add_header X-Frame-Options "DENY";

proxy_cookie_path / "/; HTTPOnly; Secure";

#------------------------------------------------------------------------------------------------------------------------------------------

add_header Front-End-Https on;

add_header Referer-Policy no-referrer;

proxy_pass http://eng.rkn.gov.ru;

}

Если Вам нужно добавить ещё одно зеркало, то порядок действий такой:


1. Добавляет новую A запись с доменом третьего уровня на DNS-сервере. Ждем, пока не начнёт пинговаться с нашего VPS.

2. Создаем ещё один файл конфига в папке /etc/nginx/conf.d/ с секцией для 80 порта (для http) и перезапускаем Nginx.

3. Делаем сертификаты с помощью certbot.

Дописываем секцию для https в конфиг. Указывем пути на сертификаты. Перезапускаем Nginx.


Еще можно добавить ключ для алгоритма Диффи-Хелмана. Настроить автообновлене сертификатов. Как сделать, описано в этой статье.


P.S. Всё, что описано в статье - может сделать каждый! Это не сложно. Повышая свою грамотность в современных технологиях вы делаете мир лучше.

P.P.S. Да, это можно сделать парой команд в докере. Но докер не доступен на виртуалках нижнего ценового диапазона, да и статься, чтобы руки научить.

2
Автор поста оценил этот комментарий

Дочитал про ipt и колхоз на баше. Захотелось дать по балде автору. Это в системе где штатный то firewalld и его cli...

раскрыть ветку (1)
5
Автор поста оценил этот комментарий

:) по ссылкам на сайт найдите телеграмм канал и напишите мне. Я вам дам доступ к консоли, поищем вместе firewalld в дистрибутиве minimal

показать ответы
2
Автор поста оценил этот комментарий

Мимо ,нетинсталл относится к категории что хочешь - то и ставь , но там в дефолте все отмечено. Нетинсталл нельзя использовать как образ системы сам, он не для работы

раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Причем тут нетинсталл? Это перечисление версий. Вот вам скриншот с зеркала. Зайдите на любое и убедитесь - minimal это официальный отдельный дистрибутив. Core-версия. И ещё вот вам скриншотов с моего proxmox (а это, на минуточку Debian) где поднят LXC контейнер с официальным дистрибутивом минимал. Ну нет там firewalld

Иллюстрация к комментарию
Иллюстрация к комментарию
Иллюстрация к комментарию
Иллюстрация к комментарию
показать ответы
2
Автор поста оценил этот комментарий
Чиво? Нормально настроена почта + антиспам будет работать веками. Какие проблемы то?
раскрыть ветку (1)
5
Автор поста оценил этот комментарий

Проблемы с невменяемыми владельцами других почтовых серверов, их параноидальным антиспам-настройками, администраторами спам-листов и прочей нечистью. Постоянная битва за доброе имя и обоснование, что ты не спамер. Особенно, если твой сервер в подсети хостера, в которой хоть раз был замечен настоящий спамер. А если не был, то будет. Через год например. И вся подсеть попадет в блэк-листы. На всякий случай. И это сразу не заметно, просто почта начнет в блэк-хол уходить. И ты начнёшь переезжать и менять днс-записи. И тут сработают параноидальные настройки у тех, кто тебя ещё в блэк-лист не внёс. Опять на всякий случай.

А так да, работать будет.

показать ответы
Автор поста оценил этот комментарий

А можно гайд, как в vpn туннель пустить только трафик к заблокированным ресурсам под виндой? Впс есть, openvpn настроен

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Есть моя статья про избирательную маршрутизацию в openvpn здесь на Пикабу. Так как статья дорабатывалась, лучше читать в первоисточние https://secfall.com/izbiratelnaya-marshrutizatsiya-v-openvpn...

показать ответы
2
Автор поста оценил этот комментарий

Это не официальный дистрибутив. Никак не связанный. И докер, и lxc , и прочие используют свой bootstrap для создания базового chroot системы, через yum/dnf, его встроенный в данном случае, с официальных репозиториев и всё, официальных даже минималок без firewalld не выпускалось.

раскрыть ветку (1)
4
Автор поста оценил этот комментарий

Закончим бесполезный спор :)

Иллюстрация к комментарию
показать ответы
1
Автор поста оценил этот комментарий

Даже если говносборка  - доставить 2 минуты.

раскрыть ветку (1)
4
Автор поста оценил этот комментарий

Таки изучите матчасть. Не говноборка, а официальный дистрибутив БЕЗ дополнительных пакетов. Такой используют для контейнеров (openvz, lxc, docker). У такого контейнера может быть например 32-128 мб оперативной памяти, его аренда будет стоить фактически по цене трафика и, да, nginx будет вполне нормально работать. Но завозить туда дополнительные службы очень даже не стоит. Low-cost он такой.

показать ответы
1
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
3
Автор поста оценил этот комментарий

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

показать ответы
Автор поста оценил этот комментарий
@megavolt0, спасибо за инструкции. Появился вопрос, можно ли использовать под VPN уже имеющийся сервер, на котором установлен стек lamp с сайтом? В качестве эксперимента попробовал, и после запуска службы с ipt-set - доступ к сайту пропал. Выключил службу - сайт заработал. Я так понимаю в инструкциях в файле ipt-set прописан запрет на доступ извне к серверу. Можно ли как-то грамотно объеденить все это на одном сервере? Насколько это разумно и технически возможно?
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Можно. Только разнести по портам. 80 и 443 нужны для веб сервера. Vpn посадить на любой другой порт. Например 1194. И в iptables эти порты прописать.
DELETED
Автор поста оценил этот комментарий

А можно такою же инструкцию для рукожопов, у которых сервак на убунту? (эт я про себя)

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Да в общем всё тоже самое, только apt вместо yum. И epel-release не нужен. Конфиги nginx не зависят от опреационной системы

3
DELETED
Автор поста оценил этот комментарий

> P.P.S. Да, это можно сделать парой команд в докере. Но докер не доступен на виртуалках нижнего ценового диапазона, да и статься, чтобы руки научить.

Бред полный. Приложения в докере будут потреблять столько же памяти, сколько и без него, разве что общие библиотеки будут свои. Просто автор не умеет в докер и поэтому вместо нескольких команд установки докера и одной команды запуска образа с докерхаба предлагает ручную настройку труднообслуживаемого говна с ручным проблением сертификатов. Уж хоть это можно было бы наладить автоматически отдельным локейшном в nginx и static dir конфигом для certbot.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Покажите же как запустить докер в дешёвом lxc или openvz контейнере :)

И да, всё вручную, несколько раз, до наступления понимания. А потом можно и докеры. Когда понимаешь, что происходит внутри докера.

Автор поста оценил этот комментарий

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

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

RuTracker, когда его только забанили, да и потом весьма длительное время содержал кучу абсолютных ссылок. Это было да. Очень развесистые параметры фильтрации приходилось использовать. Сейчас такого нет, всё сразу работает.

Автор поста оценил этот комментарий

Чаще всего прокси явно запрещены правилами хостера. Живут до первой жалобы на воровство контента.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Это не тот прокси. Это по сути web-сервер, являющийся фронтэндом для какого-то сервиса. Наверное это наиболее частый способ применения nginx: фронтэнд, кэширование и балансировка. К нему у хостера претензий нет.

показать ответы
5
Автор поста оценил этот комментарий

ИМХО, в контексте обхода блокировок РКН это полная дичь. Для "дома" VPS + route-based IPsec + BGP, для "вне дома" VPS + SSL VPN. Никаких волшебных ссылок запоминать не нужно, обход нового заблокированного ресурса решается добавлением 1 (одной!) строки в конфиг.

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Оно и не для этого. Когда изучают азы электротехники, то соединяют лампочку с батарейкой с помощью толстых проводов, зажимов и через огромный выключатель. Само собой, такая конструкция практической пользы особо не имеет. Но обучающийся может поверить в свои силы и продолжить дальше. Я описал инструмент, он будет применяться в следующих статьях.

1
DELETED
Автор поста оценил этот комментарий

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


Уважаемый автор,  ваша компетентность не оставляет сомнений, работа по написанию статьи проделана большая, но есть вопрос: нафига это опубликовано ?   Представим гипотетическую ситуацию, когда какой то школьник пользуясь инструкцией собрал фейк-аналог Робокассы, ну или сайт-одностраничник с "вкусной" ценой на что-то, ведущий для оплаты на новый сервис " супер-мупер тындекс кошелек" деньги с которого утекают школьнику.  И будучи пойман, на голубом глазу ответит "дяденька на Пикабу научил" и даст ссылку на статью ?


Я это к тому, что можно взрывчатку изготовить из бытовых веществ, или человека убить просто ткнув пальцем в определенную точку, или, не знаю там...дверь любую вскрыть за 10 минут - но лучше если эти специальные знания останутся у специалистов, а не будут пошагово раскрываться на известных ресурсах. Просто меньше проблем возникнет, у всех

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Запретить интернет. Это ж давно уже предлагается. Любые ИТ-технологии можно использовать во вред. А по мере развития человечества уровень вхождения понижается и пользоваться технологиями всё проще. Так что, да. как в Северной Корее. ЛВС в масштабах страны, 10 сайтов и все по паспорту. И никакого фишинга, мошенничества, терроризма, буллинга и пр.

Автор поста оценил этот комментарий

Ну просто зачем использовать центось тяжелую если есть альпайн и докер....

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Потому что это не хабр. Статья создана с целью увеличения популяции коасноглазиков.

показать ответы
Автор поста оценил этот комментарий

А если этот прокси дома делать то можно ли в нем использовать pac-файл от AntiZapret или хотя бы жестко прописать чтоб этот созданный прокси ходил через прокси антизапрета?

раскрыть ветку (1)
Автор поста оценил этот комментарий

Вы путаете прокси для доступа в интернет и реверс-прокси. Это разные прокси с разными целями.

Автор поста оценил этот комментарий

Присоединяюсь к вопросу. Из-за запрета Роскомнадзора запросы не работают (

раскрыть ветку (1)
Автор поста оценил этот комментарий

Вы что-то не то делаете. Дайте больше информации.

показать ответы
Автор поста оценил этот комментарий

Безопасность, шифрование... а реальный домен свой спалили :)

раскрыть ветку (1)
Автор поста оценил этот комментарий

Ага, видел. Но он не секретный и временный, так что пусть будет.

Автор поста оценил этот комментарий

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

раскрыть ветку (1)
Автор поста оценил этот комментарий

Людям и это сложно. Не всё сразу :) Не кипятись

показать ответы
Автор поста оценил этот комментарий

Пара вопросов:
1. Зачем мучится с поднятием зеркала для ОДНОГО сайта, если с таким же успехом можно поднять на сервере vpn?
2. Далеко не ко всем сайтам вы можете создать зеркало, а лишь к тем у кого это не запрещено, а сейчас все больше сайтов закрывают возможность создавать на них зеркало, так как этим начали пользоваться мошенники.

раскрыть ветку (1)
Автор поста оценил этот комментарий

собрались тут), сквозное шифрование как между модемом и остальными клиентами сделать?

раскрыть ветку (1)
Автор поста оценил этот комментарий

Или vpn сервер и клиенты, или, если это две и более площадок, криптошлюзы на периметре. Инфы в нете море

Автор поста оценил этот комментарий

Ну если это все для себя, то и прописать доступ только со своего ИП. И не будет никаких жалоб ркн

раскрыть ветку (1)
Автор поста оценил этот комментарий

Если IP фиксированный. На самом деле проще не ограничивать. Сделать домен, который не жалко. Арендовать не дорогие сервера помесячно. И тогда можно предоставить какие-то нужные ресурсы (те же трекеры) для своей семьи, не заставляя их ставить vpn на свои устройства. Кстати у рутрекера и некоторых других трекеров вы можете прописать своё доменное имя в настройках профиля и тогда скачиваемые .torrent файлы уже будут содержать адрес вашего реверс-прокси и программы-качалки будут качать без лишних телодвижений.

Иллюстрация к комментарию
Автор поста оценил этот комментарий

я ваще не шарю, но все эти VPNы сможет видеть провайдер? сори если очень тупейший вопрос...

раскрыть ветку (1)
Автор поста оценил этот комментарий

Если реверс прокси за пределами страны, то провайдер будет видеть только сам факт соединения до реверс-прокси. Весь трафик будет в https и куда вы там ходите через реверс-прокси, провайдер уже не увидит. С VPN аналогично.

3
Автор поста оценил этот комментарий

@megavolt0
Лучше расскажи, шо мы будем делать, когда государство попросит в добровольно принудительном порядке установить национальный корневой сертификат на все устройства, как это было (есть) в Казахстане?
С учётом этого: https://ru.wikipedia.org/wiki/Закон_о_«суверенном_интернете» такой сценарий всё более вероятен.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Я предлагаю не торопиться. Технология крайне сложа для внедрения. И уже практически невозможна, а чем дальше по времени, тем невозможнее. Такой может позволить себе Китай, который сам производит ВСЁ оборудование от дата-центра до мобильника. У нас отсутствие соего производство помноженное на коррумпированность делают инициативу с корневым сертификатом практически не осуществимой. И да, Казахстан как пример. Технологически мы от них не далеко ушли.

Автор поста оценил этот комментарий

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

раскрыть ветку (1)
Автор поста оценил этот комментарий

Вы совершенно правы. Но 99% VPS настроены так, что применение не под рутом заставляет совершать определённые дополнительные телодвижения. Я стараюсь, по возможности, упрощать там, где можно. Если взвешивать все за и против, то, по моему мнению, новичка проще не грузить, а приучить ходить по сертификату, пусть и под рутом. Сервисы игрушечные, особой опасности нет. Если кто-то пойдёт дальше, он научится- как правильно.

Автор поста оценил этот комментарий
Надо чтобы опубликованное приложение открывались только если на компьютер с которого я пытаюсь его открыть предварительно был поставлен сертификат. Т. Е. Надо чтобы сайт можно было открыть только с компьютеров нашей фирмы.
раскрыть ветку (1)
Автор поста оценил этот комментарий

В энтрпрайзе просто используйте vpn на всех устройствах, находящихся за периметром. Это наиболее правильный путь. Тогла вам просто не придётся публиковать сервисы наружу.

Автор поста оценил этот комментарий

Центось... ух... а все можно было в докер завернуть было бы проще...

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Ну наконец-то. Я уж переживать начал, что никто про докер не напишет :)

показать ответы
4
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Пожалуйста. Почтовый сервер не рекомендую. Тот ещё тамагоч. Проблемы будут постоянно.

показать ответы
1
Автор поста оценил этот комментарий
Огромное спасибо автору, как раз понадобилось реверс прокси поднять, для публикации наружу, думаю чтобы разобраться в теме самое то статья, а дальше будем думать как уже сделать это более безопасно и пр. Только ещё вопросик, нет возможности осветить вопрос как сделать так чтобы опубликованное подобным образом приложении могли открыть скажем только с компьютеров на который установлен соответствующий сертификат. Если не подробно расписать то хотябы указать направление куда копать чайнику. Но конечно за подобную подробную статью буду тем более благодарен.
раскрыть ветку (1)
Автор поста оценил этот комментарий

"только с компьютеров на который установлен соответствующий сертификат."

Непонятно. Опишите задачу, которую вы решаете.

показать ответы
Автор поста оценил этот комментарий
У меня парк реверс-прокси
А зачем, если не секрет?
раскрыть ветку (1)
Автор поста оценил этот комментарий

Это часть моей дополнительной работы, а не то, что вы подумали :)

показать ответы
Автор поста оценил этот комментарий

Личный опыт не всегда показатель. Меня выселяли с хостинга за проксю - владелец проксируемого сайта пожаловался.


Можно попробовать эксперимент провести - киньте ссылку на какой-нибудь прокси и оригинал. Я завтра пожалуюсь - посмотрим что хостер предпримет.

раскрыть ветку (1)
Автор поста оценил этот комментарий

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

показать ответы
Автор поста оценил этот комментарий

Любой прокси.

Вы со своего домена раздаёте чужой контент. Вы можете менять его содержание. Вы можете заниматься фишингом. Нормальный хостер этого не одобрит.

раскрыть ветку (1)
Автор поста оценил этот комментарий

У меня парк реверс-прокси. У разных хостеров. На всех континентах. Претензии не возникали. Один раз переслали абузу РКН. Это за несколько лет.

показать ответы