3 заметки с тегом

web

MTProto Proxy на CentOS7

Решил попробовать использовать вместо 3proxy вышедшей не так давно MTProto Proxy, собрал пакет для 7 CentOS. Из зависимостей требует zlib, openssl и curl. В процессе установки автоматически генерируется секретный ключ авторизации, загружаются список серверов и ключ для доступа.
Установка сводится к следующим действиям

yum localinstall mtproto-proxy-20824f5-1.el7.x86_64.rpm
systemctl enable mtproto-proxy
systemctl start mtproto-proxy
firewall-cmd --permanent --zone=external --add-service=mtproto-proxy

По умолчанию сервер запускается на порту 8443. Если это необходимо изменить, то основные настройки вынесены в /etc/sysconfig/mtproto-proxy. Так же придется отредактировать и /etc/firewalld/services/mtproto-proxy.xml.

Теперь для подключения, в приложении, необходимо перейти по ссылке.

https://t.me/proxy?server=<SERVER_IP>&port=<PORT>&secret=<SECRET_KEY>

где:

SERVER_IP - ip адрес сервера mtproto-proxy
PORT - порт на котором запущен mtproto-proxy
SECRET_KEY - секретный ключ, который был создан в процессе установки

Для страждущих паранойей src.rpm пакет, для самостоятельной сборки, можно скачать здесь.

2018   centos   linux   web

Получаем SSL сертификат Let’s Encrypt.

sudo yum install epel-release
sudo yum install certbot
vi /etc/nginx/letsencrypt.conf
location ^~ /.well-known/acme-challenge {
    alias /var/lib/letsencrypt/.well-known/acme-challenge;
    default_type "text/plain";
    try_files $uri =404;
}

В конфигурационном файле хоста, секцию server, include-ом добавляем конфиг.

vi /etc/nginx/conf.d/$HOST.conf
server {
    ...

    include letsencrypt.conf;
}

Изменяем группу и выставляем права.

chgrp nginx /var/lib/letsencrypt && chmod g+s /var/lib/letsencrypt

Получаем сертификат.

certbot certonly --webroot --email mail@example.com -w /var/lib/letsencrypt -d example.com -d www.example.com

Сертификат действует 90 дней, после чего его необходимо продлить. Для автоматизации этой процедуры создаем systemd.service и systemd.timer.

/etc/systemd/system/certbot.service
[Unit]
Description=Renew Certbot certificate (nginx)
After=network-online.target

[Service]
Type=oneshot
ExecStart=/usr/bin/certbot renew --renew-hook "/usr/bin/systemctl reload nginx.service"

Timer будет запускать основной сервис ежедневно в 12 и 00 часов.

/etc/systemd/system/certbot.timer
[Unit]
Description=Daily renewal of Let's Encrypt's certificates

[Timer]
OnCalendar=*-*-* 00,12:00:00
Persistent=true

[Install]
WantedBy=timers.target

Активируем timer.

sudo systemctl daemon-reload
systemctl start certbot.timer
systemctl enable certbot.timer
2016   nginx   ssl   web
2016   linux   web