Frontend Для Domino Http/https

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
465
дополню по бесплатным(и не только) сертификатам
 

NetWood

Lotus Team
17.04.2008
565
96
BIT
174
Плюсую :) В свое время отказался от nginx из-за того, что не нашел правильный конфиг для форварда X-Real-IP. Все ставилось на одну виндовую машину. Соответственно в логах были только локальные коннекты :(
Будем переделывать...
 

NetWood

Lotus Team
17.04.2008
565
96
BIT
174
Ан нет. Вот такой nginx.conf был: в логах Domino по-прежнему локальные коннекты. Как поправить?
Код:
 worker_processes 1;

events {
worker_connections 1024;
}

http {
include	  mime.types;
default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] $status '
'"$request" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "http_x_forwarded_for"';

access_log /logs/access.log main;
error_log /logs/error.log;
# access_log off;

sendfile	  on;
tcp_nopush	 on;
tcp_nodelay	on;

server {
listen	  80 default;
server_name localhost;
# access_log /var/log/httpd/access.log main;
error_page  500 502 503 504 /50x.html;

# Main location
location / {
proxy_pass		 http://127.0.0.1:8080/;
proxy_redirect	 off;
proxy_set_header  Host			 $host;
proxy_set_header  X-Real-IP		$remote_addr;
proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size	  10m;
client_body_buffer_size	128k;
proxy_connect_timeout	 90;
proxy_send_timeout		 90;
proxy_read_timeout		 90;
proxy_buffer_size		 4k;
proxy_buffers			 4 32k;
proxy_busy_buffers_size	64k;
proxy_temp_file_write_size 64k;
}

# Static files location
#location ~*^.+\.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|wav|bmp|
rtf|js)$
#{
#	root  /;
#}

}
}
 

NetWood

Lotus Team
17.04.2008
565
96
BIT
174
Похоже, что IP в поле UserAddress в Domlog прописывается на уровне сервера сразу. Затащить на форму fmLogEntry поля с данными CGI влоб не удалось. Ни HTTP_X_REAL_IP ни HTTP_X_FORWARDED_FOR не видятся :)

Однако, есть вариант прописать HTTP_X_REAL_IP через поле Cookie и потом парсить их уже в UserAddress Domlog. Но как-то не комильфо и решит задачу на отдельной базе, где куки будут прописаны явно...
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
465
вопрос в UserAddress или в логах домины?
 

NetWood

Lotus Team
17.04.2008
565
96
BIT
174
Вопрос в логах Domino и в том, что в поле UserAddress прописывается IP адрес, который при переходе на nginx, для всех подключений будет 127.0.0.1
Получается, что вопрос с безопасностью решается, но логи теряются :)
Этот большое неудобство. Можно, конечно, пользоваться текстовыми логами nginx. Но они разрастаются до гиговых размеров и просматривать их неудобно вдвойне. Решал пересозданием, например ежемесячно, но у нас же джедайский web-сервер и логи должны быть джедайскими.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
465
как по мне - безопасность важнее доминошных логов...
хотя - да есть нек. неудобство
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
465
впринципе можно ваще сделать своё логироавние - отрубить доминошный лог (хттп) и писать в ФС домины логи nginx, создать БД с агентом, для парсинга этих логов
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
465
в рез-те получим + в виде различных лог вьюеров для nginx
с графиками и нормальным анализом (в отличии от штатного, в домине)
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
465
-надо концепт продумать (как лучше), типа: конфигурации в БД, инфай из логов, готовые движки для просмотра, нужно ли в нотусню пихать (записи)
-накидать рабочую конфу по ssl...
пока в планах, но по работе много всего
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
465
рабочая конфигурация для вышеперечисленного, включая ssl и отображение адреса клиента
server {
listen *:80; ## listen for ipv4
listen *:443 ssl;
server_name myserver.mydomain;

ssl_certificate /etc/nginx/ssl/myserver.mydomain.crt;
ssl_certificate_key /etc/nginx/ssl/myserver.mydomain.key;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;

access_log /var/log/nginx/myserver.access.log;
error_log /var/log/nginx/myserver.error.log;
# Перенаправление на back-end
location / {
proxy_pass
#
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
#
root /var/www/myserver;
proxy_set_header Accept-Encoding "";

# proxy_redirect off;

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

#Domino specific
proxy_set_header $WSRA $remote_addr;
proxy_set_header $WSRH $remote_addr;
proxy_set_header $WSSN $host;proxy_connect_timeout 120;
#protect from slowhttptest -c 1000 -B -g -o my_server_stats -i 110 -r 200 -s 8192 -u -x 20 -p 3
proxy_send_timeout 120;
proxy_read_timeout 180;
}
}
ссылки в тексте конфигурации
в домине:
set conf HTTPEnableConnectorHeaders=1
te http restart

по ssl само-подписанному

права на файлы:
chown :www-data *
cmod 640 *

по ssl в nginx


и никаких выкрутасов со сложной процедурой сертификации ssl под домину (просто забить на неё), если не нужно чего-то большего чем шифрация трафика между сервером клиентом
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
465
т.е. пр-ла файрвола будут без 80 и 443 портов:
$ cat /etc/iptables.up.rules
*nat
:pREROUTING ACCEPT
:INPUT ACCEPT
:OUTPUT ACCEPT
:pOSTROUTING ACCEPT
-A PREROUTING -p tcp -m tcp --dport 25 -j REDIRECT --to-ports 8025
-A PREROUTING -p tcp -m tcp --dport 465 -j REDIRECT --to-ports 8465
#-A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
#-A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8443
-A PREROUTING -p tcp -m tcp --dport 143 -j REDIRECT --to-ports 8143
-A PREROUTING -p tcp -m tcp --dport 993 -j REDIRECT --to-ports 8993
-A PREROUTING -p tcp -m tcp --dport 389 -j REDIRECT --to-ports 8389
-A PREROUTING -p tcp -m tcp --dport 636 -j REDIRECT --to-ports 8636
COMMIT

Добавлено: замечу что между доминой и фронтэндом ничего не шифруется, что снижает нагрузку на домину!
следующая цель - балансировка между доминами с пом. nginx ;)
т.е. пропадет надобность в кластер-менеджере доминошном (а это деньги на лицензии)
 

aameno2

Lotus Team
27.01.2009
773
181
BIT
386
Балансировка или failover?)
При балансировке через nginx, у меня частенько перебрасывает пользователя на другой сервер и в результате сыпятся ошибки при отправке/удалении писем.
Бороться с этим не стал, давно переключил на failover
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
465

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
465
еще линк по nginx
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
465
инструмент для тестирования, как говорится - "получите, распишитесь" ^_^
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
465
генерация самоподписанного сертификата, в одну строку, из претензий от сайта выше будет только доверие к сертификату ^_^
скрипт
Bash:
#!/bin/bash
SERVER=$1
BASENAME=$(basename $0)
if [ "$SERVER" == "" ]
then
echo -e "invalid server name\necho Usage: $BASENAME <servername>\n"
exit 1
fi
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -sha256 -keyout /etc/nginx/ssl/$1.key -out /etc/nginx/ssl/$1.crt
exit 0
в современный ФФ сайт вставляется в исключения: Настройки - Дополнительные - Сертификаты кнопка просмотр сертификатов
потому как для недоверенных мозила убрала кнопку "добавить исключение"
 
Последнее редактирование модератором:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!