Пароль на веб-интерфейс.
Пароль на веб-интерфейс.
Есть ли возможность авторизации на веб-интерфейс Afanasy?
В текущий момент, я так понял, возможно к веб-интерфейсу подключать под user - кому угодно, и просматривать состояния.
Возможно ли как-нибудь это ограничить?
B собственно, главный вопрос - а веб-интерфейс - встроен в сервер? Отключить его никак или запускать его с другой локации?
и что в настройках сервера есть упоминание о .htdigest - его можно применить для авторизации?
UPD. Я попробовал включить .htdigest - но эффекта это не произвело - как входил в web GUI - так и вхожу.
В текущий момент, я так понял, возможно к веб-интерфейсу подключать под user - кому угодно, и просматривать состояния.
Возможно ли как-нибудь это ограничить?
B собственно, главный вопрос - а веб-интерфейс - встроен в сервер? Отключить его никак или запускать его с другой локации?
и что в настройках сервера есть упоминание о .htdigest - его можно применить для авторизации?
UPD. Я попробовал включить .htdigest - но эффекта это не произвело - как входил в web GUI - так и вхожу.
- Timur
- Site Admin
- Сообщения: 178
- Зарегистрирован: Вс июл 09, 2017 4:59 pm
- Откуда: Королёв
- Контактная информация:
Re: Пароль на веб-интерфейс.
Сейчас никак, .htdigest не работает.
Это я раньше начал писать аутетификацию, то потом бросил, т.к. переключился на то что было тогда нужнее.
А потом вообще отключил до лучших времен, т.к. это вообще никому нужно не было.
HTTP сервер встроен в афсервер.
Отключитиь - никак.
По-умолчанию он хотит cgru корневой каталог.
В принципе он не будет работать если af_http_serve_dir отправить в не правильное место, например:
Это я раньше начал писать аутетификацию, то потом бросил, т.к. переключился на то что было тогда нужнее.
А потом вообще отключил до лучших времен, т.к. это вообще никому нужно не было.
HTTP сервер встроен в афсервер.
Отключитиь - никак.
По-умолчанию он хотит cgru корневой каталог.
В принципе он не будет работать если af_http_serve_dir отправить в не правильное место, например:
Код: Выделить всё
"af_http_serve_dir":"/tmp",
Тимур Хайрулин
CGRU 3.3.1 Ubuntu 22.04LTS, MS Windows 10 (clients only).
CGRU 3.3.1 Ubuntu 22.04LTS, MS Windows 10 (clients only).
Re: Пароль на веб-интерфейс.
Хорошо, понятно.
Зайдем тогда с другой стороны. А можно ли пересадить HTTP сервер на другой порт легким (или не очень) движением руки? Наример, 51001.
Объясню: у нас веб-интерфейсы обращаются к afserver по json через интернет. Для этого пришлось открыть порт. Но мы просто были удивлены, что помимо json можно и web сразу смотреть, причем не защищено. Внутри компании поддержка Af web интерфейсом пользуется(решает и смотрит всякие процессы, помогает и консультирует), но этоn интерфейс ни к чему внешним пользователям.
Зайдем тогда с другой стороны. А можно ли пересадить HTTP сервер на другой порт легким (или не очень) движением руки? Наример, 51001.
Объясню: у нас веб-интерфейсы обращаются к afserver по json через интернет. Для этого пришлось открыть порт. Но мы просто были удивлены, что помимо json можно и web сразу смотреть, причем не защищено. Внутри компании поддержка Af web интерфейсом пользуется(решает и смотрит всякие процессы, помогает и консультирует), но этоn интерфейс ни к чему внешним пользователям.
- Timur
- Site Admin
- Сообщения: 178
- Зарегистрирован: Вс июл 09, 2017 4:59 pm
- Откуда: Королёв
- Контактная информация:
Re: Пароль на веб-интерфейс.
Сервер слушает толко 1 порт. На нём всё. И создание новых задач. И манипуляция всем. И JSON и HTTP.
Т.е. ещё и afwatch-ем моно подключиться к открытому порту.
Сейчас какого расчета на открытый порт нету, так как нет никакой защиты.
Удаленно можете пользоваться например через VPN.
В будущем есть планы сделать ip_trust_mask, и аутенрификацию.
Как раз для того, чтобы можно было открывать порт наружу.
Т.е. ещё и afwatch-ем моно подключиться к открытому порту.
Сейчас какого расчета на открытый порт нету, так как нет никакой защиты.
Удаленно можете пользоваться например через VPN.
В будущем есть планы сделать ip_trust_mask, и аутенрификацию.
Как раз для того, чтобы можно было открывать порт наружу.
Тимур Хайрулин
CGRU 3.3.1 Ubuntu 22.04LTS, MS Windows 10 (clients only).
CGRU 3.3.1 Ubuntu 22.04LTS, MS Windows 10 (clients only).
Re: Пароль на веб-интерфейс.
Если бы все так просто. Мы используем несколько серверов на VDS, сервера в облаке. Не везде можно настроить VPN. Еще веселее, когда начинает работать балансировщик нагрузки. Но я все понял. Будем делать костыль: фильтр по адресам + по входящим HTTP заголовкам, либо вешать Apache2 как обратный прокси и через него все разруливать. В общем, будем думать.
Re: Пароль на веб-интерфейс.
Кому интересно - удалось все спрятать за haproxy. Даже применить basic-аутентификацию к web-gui. Если интересно - могу описать.
Re: Пароль на веб-интерфейс.
Интересно, поделись пжлст.
Re: Пароль на веб-интерфейс.
ДА, не вопрос.
Ставим 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.
Как-то так.
Ставим 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 раз.
Re: Пароль на веб-интерфейс.
Спасибо, примерно ясно.
Re: Пароль на веб-интерфейс.
Ага, рад, если помог.
Меня смущает что json без проверки доступа, но решено пока оставить так. Есть подозрение, что придется ковыряться в недрах, чтобы все сделать, но времени нет на анализ.
Меня смущает что json без проверки доступа, но решено пока оставить так. Есть подозрение, что придется ковыряться в недрах, чтобы все сделать, но времени нет на анализ.