LINUX.ORG.RU

прозрачный локальный прокси сервер с авторизацией?

 , , ,


0

1

На домашнем компьютере (Linux)запущено несколько служб/серверов, порты от них проброшены в маршрутешаторе за NAT,но ряд служб работают без авторизации, и это не есть безопасно.. Хочу поставить какой-нибудь локальный прозрачный прокси сервер с автрризацией(логин /пароль) за NAT пробросить его порт, а уже у него в конфигах настроить перенаправление на порт нужной службы в локальной сети.. т.е. чтоб из интернета пользователь стучался на порт этого прокси, и если логин)пароль правильные перенаправлялся на порт нужной службы.. .. Подскажите, кто знает, какой локальный проксисервер умеет задуманное?

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

Спасибо , читаю, уж больно навороченный, но если не найду ничего более буду курить его, все же хотелось бы попросще и полегче, без лишнего, а только для выполнения задачи сделать прослойку из авторизации на порты служб у которых ее нет.. Хотя я может не правильно настраиваю, Например есть privoxy щаварачивающая трафик с WiFi хотспота в тор, в маршрутеризаторе пробросил порт от нее за NAT, чтоб из интернета при конекте к этой прокси тоже ходить через тор, все работает, но ни накаком этапе не спрашивает авторизацию, т.е. ей могут пользоваться все кто знает ip адрес и порт… Хотелось бы всё-таки добавить ее использование из интернета только по логину/паролю, или службы мониторинга системы с веб мордой, тоже пробросил за NAT (чтоб при необходимости мониторить удаленно) так и она не запрашивает пароля и выдает всю информацию любому кто к ней постучит…

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

Вчера пробовал в nginx.. Установил, дефолтная страничка грузится, пробовал создать ещё одну по ману, но не осилил локальные доменные имена/локальные имена серверов, на которые nginx будет отвечать каждому своим перенаправлением.. Хочу придумать всем запущенным службам (локальные доменные* имена вида: IP/name Наприиер 192.168.1.1/transmission И т.д. Чтоб соответственно ngnix cслушал эти имена Listen :80/transmission; И кажую пересылал на свою страницу (номер порта где работает служба) proxy_pass http://127.0.0.1:8091/; И.т.д Или имена (домены) так не придумываются или я ещё не вкурил редиректы Nginx, но пока ничего не получилось.. Может вы подскажете верный вариант, а я на его основе придумаю редиректы для всех служб

Т.е. Я хочу в браузере на 80м порту обращаться по адресу (Ip машины) /(имя сервера- придумать для каждой службы работающих на разных портах, свое уникальное имя) Ngninx слушал 80 порт, сравнивал имена серверов и при совпадении каждый перенаправлял на порт(на этой же машине) где непосредственно крутится этот сервер..(и если надо перед этим проводил авторизацию..)

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

listen должен быть внутри server? У сервера какое должно быть имя или в дефолтном? Нужно ли под каждое прокссированик службы порта, добавлять свой север с уникальным именем? Потому как у меня чего-то ничего не работает, по дефолту возвращает дефолтную страницу index.html, любые другие сайты*(создал сайт-блок в каталоге /etc/nginx/sites-available/

Например папка transmission в ней также файл index.html Символьную ссылку добавил в sites-enabled И пытаюсь зайти По 192.168.1.100/transmission Получаю 404 Вообще 404 получаю всегда кроме дефолта 192.168.1.100 Где отвечает дефолтный index.html

Никакие редиректы, проксирования где бы я их не писал Прохожу проверку tginx -t (Конфиг не ругается) Все равно возвращают 404

Уж не знаю как.. Если можно пример ngnix.conig С проксированием на службу на этой же машине на другой порт, Я уже по образу и подобию добавлю блоки с именами служб и их портами

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

Странно но все работает если указать любой другой порт кроме 80 Т.е. Если Server { listen 80; location /transmission/ { proxy_pass http://127.0.0.1:8091/; } }

То в браузере 192.168.1.100/transmission Вернёт 404

Если же В конфиге написать любой другой незанятый порт

listen 8080; И заходить по 192.168.1.100:8080/transmission сработает перенаправление

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

listen должен быть внутри server?

Да.

У сервера какое должно быть имя или в дефолтном?

Если у тебя несколько имён будет, то каждому нужно дать своё. Если сервер один, он в любом случае будет дефолтным.

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

Если ты хочешь transmission.example.com, monitoring.example.com, homecam.example.com, то под каждый сервер ты создаёшь блок server с соответствующим именем.

Если ты хочешь 192.0.2.1/transmission, 192.0.2.1/monitoring, то у тебя один блок server и внутри несколько location.

Потому как у меня чего-то ничего не работает

В интернете полно примеров по запросу nginx proxy.

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

Заработало как вы и сказали, но сразу вылезло ряд минусов.

  1. если служба работает по Https то редирект не работает..

Например Plex.пробовал listen 8043 ssl;

Location /plex/ { proxy_pass https://127.0.0.1:8091/; } Не заработало

(как я понимаю надо покупать и настраивать ssl сертификат)

Да и по http похоже трёт/изменяет заголовки, что пропадает функциональность.

Пример Http://192.168.1.100:8027 -возвращает страницу remote fork на которой все работает Если же сделать Location /remotefork/ { proxy_pass http://127.0.0.1:8027/; } То перенаправление срабатывает но вот переходы по кнопкам на вебморде уже нет…

И главное, ради чего я все это мутил, (поставить авторизацию/убрать из общего доступа) проброс порта от privoxy (это socks5 завораживающий трафик в Тор) но у него не было авторизации, и просто висел проброшенным открытый порт 8118(на этом порту прокси работает и трафик тех кто ее использует заворачивается в tor). Хотелось если уж и не получится прикрутить пароль то убрать из прооброшеных портов

В общем сделал проксирование location /privoxy/ { proxy_pass http://127.0.0.1:8118/; }

И в браузерах вместо прокси сокс5соответвенно пишу IP:8080/privoxy/

В надежде что у меня трафик пойдет через тор(обход блокировок) Но нет , либо я опять же не умею настраивать ngnix. Для работы с socket,либо он так режет заголовки-но в варианте IP:8080/privoxy/ -носок не работает,такое впечатление что как будто его нет, т.е . У меня остаётся Выходной адрес у меня тот что и был а не ожидаемый от выходной ноды tor.. причем не сразу, сначала если перейти с socks5 указанной видом IP:8118 на IP:8080/privoxy/ то пару минут все работает, и трафик идёт через тор, но после обновления страницы все падает и в сеть я выхожу со своим реальным ip от провайдера… -аозможно ли это победить в принципе? Или socks5 работать через проксирование proxy_pass и location не будет?

Как сделать чтоб по возможности nginx не менял заголовки, и работал как прозрачное прокси, как будто его вообще нет.. Я его хочу использовать только для замены конекта из интернета По адресу вида IP:port На IP:8080/service_name

-8080 порт который слушает nginx Serivlce name-название службы на порт которой буду проксировать proxy_pass заданое в location.. Это возможно?

rediska812 ()