Установка сервера telegram — различия между версиями
(Новая страница: «Установка на Ubuntu 16.04.3 и выше Установить на сервере-шлюзе Samba sudo apt-get install samba Разрешаем авт…») |
|||
Строка 57: | Строка 57: | ||
usermod -a -G privateusers staff1 | usermod -a -G privateusers staff1 | ||
Проверяем возможность работы с новым каталогом. | Проверяем возможность работы с новым каталогом. | ||
+ | Создание сертификата | ||
+ | Сайт, для которого вы хотите создать SSL сертификат должен уже быть доступен без HTTPS на порту 80. Поэтому его виртуальный хост Apache должен уже быть настроен. В этом примере я буду получать сертификат для vps.losst.ru. Для примера можно создать такой виртуальный хост: | ||
+ | |||
+ | sudo nano /etc/apache2/sites-available/vps-losst-ru.conf | ||
+ | |||
+ | <VirtualHost *:80> | ||
+ | ServerName vps.losst.ru | ||
+ | ServerAlias www.vps.losst.ru | ||
+ | ServerAdmin webmaster@localhost | ||
+ | DocumentRoot /var/www/vps.losst.ru/public_html | ||
+ | ErrorLog ${APACHE_LOG_DIR}/error.log | ||
+ | CustomLog ${APACHE_LOG_DIR}/access.log combined | ||
+ | RewriteEngine on | ||
+ | RewriteCond %{SERVER_NAME} =vps.losst.ru [OR] | ||
+ | RewriteCond %{SERVER_NAME} =www.vps.losst.ru | ||
+ | RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] | ||
+ | </VirtualHost> | ||
+ | Клиент Lets Encrypt называется Certbot. Он доступен в официальных репозиториях. Для установки выполните такие команды: | ||
+ | |||
+ | sudo apt install certbot python-certbot-apache | ||
+ | Если последний пакет не найдется надо ставить python3-certbot-apache | ||
+ | Далее генерим сертификат | ||
+ | sudo certbot certonly --apache -d vps.losst.ru -d www.vps.losst.ru | ||
+ | При первом запуске утилита предложит вам указать ваш Email адрес, для того чтобы отправлять вам уведомления о необходимости обновить сертификат и новости, а также попросит принять лицензионное соглашение. | ||
+ | А потом спросит можно ли передать ваш адрес их партнёрам. Ответить No. Только после этого начнётся генерация сертификата | ||
+ | Программа сообщает, что сертификат сохранён в папке /etc/letsencrypt/live/vps.losst.ru/ и вы можете его использовать. | ||
+ | Если вы посмотрите в папку /etc/letsencrypt/live/vps.losst.ru, то увидите там четыре файла: | ||
+ | |||
+ | cert.pem - файл сертификата, его необходимо прописать в параметре SSLCertificateFile; | ||
+ | chain.pem - файл цепочки сертификата, обычно прописывается в параметре SSLCertificateChainFile; | ||
+ | privkey.pem - приватный ключ сертификата, должен быть прописан в SSLCertificateKeyFile; | ||
+ | fullchain.pem - в нём объединено содержимое cert.pem и chain.pem, можно использовать вместо этих обоих файлов. | ||
+ | Для обычного сайта у нас виртуальный хост существует. Осталось создать виртуальный хост для SSL версии. Тут кроме стандартных настроек надо добавить четіре параметра. | ||
+ | |||
+ | SSLEngine on | ||
+ | SSLCertificateFile /путь/к/сертификату.pem | ||
+ | SSLCertificateChainFile /путь/к/сертификату/цепочки.pem | ||
+ | SSLCertificateKeyFile /путь/к/приватному/ключу.pem | ||
+ | |||
+ | Например: | ||
+ | |||
+ | sudo vi /etc/apache2/sites-available/vps-losst-ru-ssl.conf | ||
+ | |||
+ | <VirtualHost *:443> | ||
+ | ServerName vps.losst.ru | ||
+ | ServerAlias www.vps.losst.ru | ||
+ | ServerAdmin webmaster@localhost | ||
+ | DocumentRoot /var/www/vps.losst.ru/public_html | ||
+ | ErrorLog ${APACHE_LOG_DIR}/error.log | ||
+ | CustomLog ${APACHE_LOG_DIR}/access.log combined | ||
+ | SSLEngine on | ||
+ | SSLCertificateFile /etc/letsencrypt/live/vps.losst.ru/cert.pem | ||
+ | SSLCertificateChainFile /etc/letsencrypt/live/vps.losst.ru/chain.pem | ||
+ | SSLCertificateKeyFile /etc/letsencrypt/live/vps.losst.ru/privkey.pem | ||
+ | </VirtualHost> | ||
+ | |||
+ | Этой конфигурации достаточно чтобы всё заработало. Затем активируйте этот виртуальный хост: | ||
+ | |||
+ | sudo a2ensite vps-losst-ru-ssl | ||
+ | |||
+ | И не забудьте включить модуль для поддержки SSL: | ||
+ | |||
+ | sudo a2enmod ssl | ||
+ | |||
+ | Проверьте работоспособность открыв домен в браузере. | ||
+ | Чтобы добавить больше безопасности можно указать какие протоколы SSL следует использовать. Например, для того чтобы отключить SSLv2 и SSLv3, а также TLS ниже 1.2 добавьте: | ||
+ | |||
+ | sudo vi /etc/apache2/sites-available/vps-losst-ru-ssl.conf | ||
+ | |||
+ | SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 |
Версия 09:11, 30 августа 2022
Установка на Ubuntu 16.04.3 и выше Установить на сервере-шлюзе Samba sudo apt-get install samba Разрешаем автостарт сервиса: systemctl enable smbd И проверим, что сервис запустился: systemctl status smbd Создадим пользователя для доступа к папке sudo useradd telegra Назначим ему пароль sudo passwd telegra Дважды введем пароль Создадим пользователя в самбе sudo smbpasswd -a telegra Теперь создадим папку, доступ к которой будут иметь ограниченное количество пользователей.
Открываем конфигурационный файл samba:
vi /etc/samba/smb.conf Добавляем настройку для новой папки:
[telegram]
comment = Private Folder path = /data/private public = no writable = no read only = yes guest ok = no valid users = admin, telegra, @privateusers write list = admin, telegra create mask = 0777 directory mask = 0777 force create mode = 0777 force directory mode = 0777 inherit owner = yes
- стоит обратить внимание на следующие настройки:
path = /data/private — используем новый путь до папки. writable = no и read only = yes — в данном примере мы разрешим запись в каталог только некоторым пользователям. Поэтому общие настройки, разрешающие запись в папку, должны быть запрещены. valid users — список пользователей, которым разрешено подключаться к каталогу. В данном примере разрешения работают для пользователей admin, telegra, а также для всех, кто входим в группу privateusers. write list — список пользователей, которые имеют доступ к папке на чтение и запись. В данном примере мы разрешаем это только для пользователей admin и telegra. inherit owner — опция позволяем включить наследование владельца при создании папок и файлов.
- если мы хотим, чтобы доступ к каталогу был полный у определенных пользователей (без разделения на тех, кто может только читать и тех, кто может также писать в папку), то опцию write list можно не указывать, а опции writable и read only оставить как в примерах выше.
Создаем каталог для новой папки:
mkdir /data/private Задаем права на созданный каталог:
chmod 777 /data/private Для применения настроек перезапускаем samba:
systemctl restart smbd Создать группу пользователей можно командой:
groupadd privateusers Добавить ранее созданного пользователя в эту группу:
usermod -a -G privateusers staff1 Проверяем возможность работы с новым каталогом. Создание сертификата Сайт, для которого вы хотите создать SSL сертификат должен уже быть доступен без HTTPS на порту 80. Поэтому его виртуальный хост Apache должен уже быть настроен. В этом примере я буду получать сертификат для vps.losst.ru. Для примера можно создать такой виртуальный хост:
sudo nano /etc/apache2/sites-available/vps-losst-ru.conf
<VirtualHost *:80> ServerName vps.losst.ru ServerAlias www.vps.losst.ru ServerAdmin webmaster@localhost DocumentRoot /var/www/vps.losst.ru/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined RewriteEngine on RewriteCond %{SERVER_NAME} =vps.losst.ru [OR] RewriteCond %{SERVER_NAME} =www.vps.losst.ru RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] </VirtualHost> Клиент Lets Encrypt называется Certbot. Он доступен в официальных репозиториях. Для установки выполните такие команды:
sudo apt install certbot python-certbot-apache Если последний пакет не найдется надо ставить python3-certbot-apache Далее генерим сертификат sudo certbot certonly --apache -d vps.losst.ru -d www.vps.losst.ru При первом запуске утилита предложит вам указать ваш Email адрес, для того чтобы отправлять вам уведомления о необходимости обновить сертификат и новости, а также попросит принять лицензионное соглашение. А потом спросит можно ли передать ваш адрес их партнёрам. Ответить No. Только после этого начнётся генерация сертификата Программа сообщает, что сертификат сохранён в папке /etc/letsencrypt/live/vps.losst.ru/ и вы можете его использовать. Если вы посмотрите в папку /etc/letsencrypt/live/vps.losst.ru, то увидите там четыре файла:
cert.pem - файл сертификата, его необходимо прописать в параметре SSLCertificateFile; chain.pem - файл цепочки сертификата, обычно прописывается в параметре SSLCertificateChainFile; privkey.pem - приватный ключ сертификата, должен быть прописан в SSLCertificateKeyFile; fullchain.pem - в нём объединено содержимое cert.pem и chain.pem, можно использовать вместо этих обоих файлов. Для обычного сайта у нас виртуальный хост существует. Осталось создать виртуальный хост для SSL версии. Тут кроме стандартных настроек надо добавить четіре параметра.
SSLEngine on SSLCertificateFile /путь/к/сертификату.pem SSLCertificateChainFile /путь/к/сертификату/цепочки.pem SSLCertificateKeyFile /путь/к/приватному/ключу.pem
Например:
sudo vi /etc/apache2/sites-available/vps-losst-ru-ssl.conf
<VirtualHost *:443> ServerName vps.losst.ru ServerAlias www.vps.losst.ru ServerAdmin webmaster@localhost DocumentRoot /var/www/vps.losst.ru/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /etc/letsencrypt/live/vps.losst.ru/cert.pem SSLCertificateChainFile /etc/letsencrypt/live/vps.losst.ru/chain.pem SSLCertificateKeyFile /etc/letsencrypt/live/vps.losst.ru/privkey.pem </VirtualHost>
Этой конфигурации достаточно чтобы всё заработало. Затем активируйте этот виртуальный хост:
sudo a2ensite vps-losst-ru-ssl
И не забудьте включить модуль для поддержки SSL:
sudo a2enmod ssl
Проверьте работоспособность открыв домен в браузере. Чтобы добавить больше безопасности можно указать какие протоколы SSL следует использовать. Например, для того чтобы отключить SSLv2 и SSLv3, а также TLS ниже 1.2 добавьте:
sudo vi /etc/apache2/sites-available/vps-losst-ru-ssl.conf
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1