Пароль на веб-интерфейс.

alexinc
Сообщения: 34
Зарегистрирован: Ср ноя 08, 2017 1:51 pm
Откуда: Клин

Пароль на веб-интерфейс.

Сообщение alexinc »

Есть ли возможность авторизации на веб-интерфейс Afanasy?
В текущий момент, я так понял, возможно к веб-интерфейсу подключать под user - кому угодно, и просматривать состояния.
Возможно ли как-нибудь это ограничить?
B собственно, главный вопрос - а веб-интерфейс - встроен в сервер? Отключить его никак или запускать его с другой локации?
и что в настройках сервера есть упоминание о .htdigest - его можно применить для авторизации?
UPD. Я попробовал включить .htdigest - но эффекта это не произвело - как входил в web GUI - так и вхожу.
Аватара пользователя
Timur
Site Admin
Сообщения: 178
Зарегистрирован: Вс июл 09, 2017 4:59 pm
Откуда: Королёв
Контактная информация:

Re: Пароль на веб-интерфейс.

Сообщение Timur »

Сейчас никак, .htdigest не работает.
Это я раньше начал писать аутетификацию, то потом бросил, т.к. переключился на то что было тогда нужнее.
А потом вообще отключил до лучших времен, т.к. это вообще никому нужно не было.
HTTP сервер встроен в афсервер.
Отключитиь - никак.
По-умолчанию он хотит cgru корневой каталог.
В принципе он не будет работать если af_http_serve_dir отправить в не правильное место, например:

Код: Выделить всё

"af_http_serve_dir":"/tmp",
Тимур Хайрулин
CGRU 3.3.1 Ubuntu 22.04LTS, MS Windows 10 (clients only).
alexinc
Сообщения: 34
Зарегистрирован: Ср ноя 08, 2017 1:51 pm
Откуда: Клин

Re: Пароль на веб-интерфейс.

Сообщение alexinc »

Хорошо, понятно.
Зайдем тогда с другой стороны. А можно ли пересадить HTTP сервер на другой порт легким (или не очень) движением руки? Наример, 51001.
Объясню: у нас веб-интерфейсы обращаются к afserver по json через интернет. Для этого пришлось открыть порт. Но мы просто были удивлены, что помимо json можно и web сразу смотреть, причем не защищено. Внутри компании поддержка Af web интерфейсом пользуется(решает и смотрит всякие процессы, помогает и консультирует), но этоn интерфейс ни к чему внешним пользователям.
Аватара пользователя
Timur
Site Admin
Сообщения: 178
Зарегистрирован: Вс июл 09, 2017 4:59 pm
Откуда: Королёв
Контактная информация:

Re: Пароль на веб-интерфейс.

Сообщение Timur »

Сервер слушает толко 1 порт. На нём всё. И создание новых задач. И манипуляция всем. И JSON и HTTP.
Т.е. ещё и afwatch-ем моно подключиться к открытому порту.
Сейчас какого расчета на открытый порт нету, так как нет никакой защиты.
Удаленно можете пользоваться например через VPN.
В будущем есть планы сделать ip_trust_mask, и аутенрификацию.
Как раз для того, чтобы можно было открывать порт наружу.
Тимур Хайрулин
CGRU 3.3.1 Ubuntu 22.04LTS, MS Windows 10 (clients only).
alexinc
Сообщения: 34
Зарегистрирован: Ср ноя 08, 2017 1:51 pm
Откуда: Клин

Re: Пароль на веб-интерфейс.

Сообщение alexinc »

Если бы все так просто. Мы используем несколько серверов на VDS, сервера в облаке. Не везде можно настроить VPN. Еще веселее, когда начинает работать балансировщик нагрузки. Но я все понял. Будем делать костыль: фильтр по адресам + по входящим HTTP заголовкам, либо вешать Apache2 как обратный прокси и через него все разруливать. В общем, будем думать.
alexinc
Сообщения: 34
Зарегистрирован: Ср ноя 08, 2017 1:51 pm
Откуда: Клин

Re: Пароль на веб-интерфейс.

Сообщение alexinc »

Кому интересно - удалось все спрятать за haproxy. Даже применить basic-аутентификацию к web-gui. Если интересно - могу описать.
paulwinex
Сообщения: 83
Зарегистрирован: Пт июл 14, 2017 9:50 am

Re: Пароль на веб-интерфейс.

Сообщение paulwinex »

Интересно, поделись пжлст.
alexinc
Сообщения: 34
Зарегистрирован: Ср ноя 08, 2017 1:51 pm
Откуда: Клин

Re: Пароль на веб-интерфейс.

Сообщение alexinc »

ДА, не вопрос.
Ставим haproxy (есть в любом linux дистрибутиве). помним, что трафик нужно на эту программы натравливать, и порты должны быть свободными.
Пишем такой конфиг:
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin
stats timeout 30s
user haproxy
group haproxy
daemon

# Default SSL material locations
ca-base /etc/ssl/certs
crt-base /etc/ssl/private

# Default ciphers to use on SSL-enabled listening sockets.
# For more information, see ciphers(1SSL). This list is from:
# https://hynek.me/articles/hardening-you ... l-ciphers/
# An alternative list with additional directives can be obtained from
# https://mozilla.github.io/server-side-t ... er=haproxy
ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
ssl-default-bind-options no-sslv3

defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5000
timeout client 50000
timeout server 50000
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http
# собственно описание настройки
frontend check_afanasy
bind *:51000
mode tcp
log global
option tcplog
timeout client 5000s
maxconn 1000
# куда переходим по дефолту
default_backend get_json
tcp-request inspect-delay 2s
# проверяем запрос от клиента - если html -то по правилу, если json - то по дефолту
acl request_html hdr_beg(Accept) -i text/html
tcp-request content reject if METH_POST request_html
use_backend 404_no_html if request_html
#дефолтный переход
backend get_json
balance source
mode tcp
log global
option tcplog
timeout connect 4s
timeout server 5000s
server afony 192.168.1.110:51000
# переход со сгенерированной ошибкой - html сервера нет
backend 404_no_html
mode http
timeout tarpit 2s
errorfile 500 /etc/haproxy/errors/500.http
# http-request tarpit
Это сделано у нас.
Чтобы сделать basic-аутификацию
нужно перед frontend check_afanasy внести:
userlist UsersFor_cgru
user joe insecure-password letmein
во фронтэнд внести:
acl AuthOkay_AcmeCorp http_auth(UsersFor_cgru)
http-request deny if !UsersFor_cgru
use_backend 404_no_html if request_html !UsersFor_cgru
В таком случае - если пароль работает, то перейдем на дефаулт (по порту 51000)
Если не правльно пройдена аутифкация - то пойдем по 404.
Как-то так.
Последний раз редактировалось alexinc Чт дек 21, 2017 2:13 pm, всего редактировалось 1 раз.
paulwinex
Сообщения: 83
Зарегистрирован: Пт июл 14, 2017 9:50 am

Re: Пароль на веб-интерфейс.

Сообщение paulwinex »

Спасибо, примерно ясно.
alexinc
Сообщения: 34
Зарегистрирован: Ср ноя 08, 2017 1:51 pm
Откуда: Клин

Re: Пароль на веб-интерфейс.

Сообщение alexinc »

Ага, рад, если помог.
Меня смущает что json без проверки доступа, но решено пока оставить так. Есть подозрение, что придется ковыряться в недрах, чтобы все сделать, но времени нет на анализ.
Ответить