Установка stunnel4 на сервере Ubuntu 20.04:
sudo apt install stunnel4 -yНам нужны пары сертификат/ключ для сервера и каждого клиента.
Для сервера:
sudo openssl genrsa -out /etc/stunnel/server-key.pem 2048
sudo openssl req -new -x509 -key /etc/stunnel/server-key.pem -out /etc/stunnel/server-cert.pem -days 36500
##sudo su -c "cat /etc/stunnel/key.pem /etc/stunnel/cert.pem >> /etc/stunnel/stunnel.pem"
Создадим пару для клиента client01:
sudo openssl genrsa -out /etc/stunnel/client01-key.pem 2048
sudo openssl req -new -x509 -key /etc/stunnel/client01-key.pem -out /etc/stunnel/client01-cert.pem -days 36500
sudo su -c "cat /etc/stunnel/client01-cert.pem >> /etc/stunnel/clients.pem"
Файлы client01-cert.pem client01-key.pem server-cert.pem
скопируем на машину с клиентом client01 (windows)
Создадим еще пару для клиента client02:
sudo openssl genrsa -out /etc/stunnel/client02-key.pem 2048
sudo openssl req -new -x509 -key /etc/stunnel/client02-key.pem -out /etc/stunnel/client02-cert.pem -days 36500
sudo su -c "cat /etc/stunnel/client02-cert.pem >> /etc/stunnel/clients.pem"
И т.д.
На сервере настриваем (ниже):accept = 4443 - порт на сервере который нужно открыть во внешнюю сеть или пробросить
connect = 127.0.0.1:80 - 80 порт вебсервера от которого строим туннель tls
sudo nano /etc/stunnel/stunnel.conf
chroot = /var/lib/stunnel4
pid = /stunnel4.pid
output = /stunnel.log
setuid = stunnel4
setgid = stunnel4
# performance tunning
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
;Отключим отладочные режимы - 0
;debug = 7
#cert = /etc/stunnel/stunnel.pem
; Проверка сертификата. 0 - не проверять, 1 - проверять при наличии, 2 - проверять всегда, ...
verify = 2
cert = /etc/stunnel/server-cert.pem
key = /etc/stunnel/server-key.pem
CAfile = /etc/stunnel/clients.pem
#Полностью отключим уязвимые протоколы SSL версии 2 и 3.
options = NO_SSLv2
options = NO_SSLv3
options = NO_TLSv1
options = NO_TLSv1.1
ciphers = ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384
[apache]
accept = 4443
connect = 127.0.0.1:80
Сохранить
Штатный запуск:
sudo su -c "echo 'ENABLED=1' >> /etc/default/stunnel4"
Можно проверить:
cat /etc/default/stunnel4
.....
ENABLED=1
==========================================
Можно просто:
sudo reboot
==========================================
или без перезагрузки:
sudo systemctl enable stunnel4.service
sudo systemctl start stunnel4.service
==========================================
sudo systemctl status stunnel4.service
Лог в chroot /var/lib/stunnel4/stunnel.log
Установка stunnel4 на клиенте (Windows):
---------------------------------------------------------------------------------------------------------------------------
Установка stunnel под windows
download stunnel
stunnel-5.56-win64-installer.exe
Все версии 32 и 64 здесь
1. Установить stunnel-5.56-win64-installer.exe
(для 32 бит stunnel-5.49-win32-installer.exe )
Подключаться к 1с будем 127.0.0.1:8080
К серверу по внешнему ip 192.168.1.233:4443 через интернет.
2. Скопировать с сервера сертификат:
/etc/stunnel/stunnel.pem
в
c:\Program Files (x86)\stunnel\config\stunnel.pem
3. Настройить stunnel.conf
(все строки можно удалить)
c:\Program Files (x86)\stunnel\config\stunnel.conf
cert = client01-cert.pem
key = client01-key.pem
CAfile = server-cert.pem
client = yes
; Проверка сертификата. 0 - не проверять, 1 - проверять при наличии, 2 - проверять всегда, ...
verify = 2
[apache]
accept = 127.0.0.1:8080
connect = 192.168.1.233:4443
Сохранить.
Есть ярлык, установить службу:
"C:\Program Files (x86)\stunnel\bin\stunnel.exe" -install
Есть ярлык, запустить службу:
"C:\Program Files (x86)\stunnel\bin\stunnel.exe" -start
Проверить:
http://localhost:8080/demo/ru_RU/
Прочие команды.
"C:\Program Files (x86)\stunnel\bin\stunnel.exe" -start
"C:\Program Files (x86)\stunnel\bin\stunnel.exe" -stop
"C:\Program Files (x86)\stunnel\bin\stunnel.exe" -install
"C:\Program Files (x86)\stunnel\bin\stunnel.exe" -uninstall
==========================================
Альтернативный вариант с systemd не делаем!
sudo nano /lib/systemd/system/stunnel.service
[Unit]
Description=SSL tunnel
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
Alias=stunnel.target
[Service]
Type=forking
ExecStart=/usr/bin/stunnel /etc/stunnel/stunnel.conf
ExecStop=/usr/bin/pkill stunnel
WorkingDirectory=/etc/stunnel
TimeoutSec=600
Restart=always
PrivateTmp=false
Сохранить.
sudo systemctl enable stunnel.service
sudo systemctl start stunnel.service
sudo systemctl status stunnel.service
Комментариев нет:
Отправить комментарий