Proftpd TLS configuration
This commit is contained in:
@@ -13,6 +13,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|||||||
- MySQL configuration tuning
|
- MySQL configuration tuning
|
||||||
- Cronjob to optimize MySQL databases weekly
|
- Cronjob to optimize MySQL databases weekly
|
||||||
- WO-kernel systemd service to automatically apply kernel tweaks on server startup
|
- WO-kernel systemd service to automatically apply kernel tweaks on server startup
|
||||||
|
- Proftpd stack now secured with TLS
|
||||||
|
- New Nginx package built with Brotli from operating system libraries
|
||||||
- Brotli configuration with only well compressible MIME types
|
- Brotli configuration with only well compressible MIME types
|
||||||
|
|
||||||
#### Changed
|
#### Changed
|
||||||
|
|||||||
@@ -1325,10 +1325,10 @@ def site_url_https(self, wo_domain):
|
|||||||
if not (test_url[0] == 'https'):
|
if not (test_url[0] == 'https'):
|
||||||
try:
|
try:
|
||||||
WOShellExec.cmd_exec(self, "php {0} option update siteurl "
|
WOShellExec.cmd_exec(self, "php {0} option update siteurl "
|
||||||
"\"https://{1}\" --allow-root".format(
|
"\'https://{1}\' --allow-root".format(
|
||||||
WOVariables.wo_wpcli_path, wo_domain))
|
WOVariables.wo_wpcli_path, wo_domain))
|
||||||
WOShellExec.cmd_exec(self, "php {0} option update home "
|
WOShellExec.cmd_exec(self, "php {0} option update home "
|
||||||
"\"https://{1}\" --allow-root".format(
|
"\'https://{1}\' --allow-root".format(
|
||||||
WOVariables.wo_wpcli_path, wo_domain))
|
WOVariables.wo_wpcli_path, wo_domain))
|
||||||
except CommandExecutionError as e:
|
except CommandExecutionError as e:
|
||||||
Log.debug(self, "{0}".format(e))
|
Log.debug(self, "{0}".format(e))
|
||||||
|
|||||||
@@ -1042,6 +1042,49 @@ class WOStackController(CementBaseController):
|
|||||||
"PassivePorts "
|
"PassivePorts "
|
||||||
" "
|
" "
|
||||||
" 49000 50000")
|
" 49000 50000")
|
||||||
|
# proftpd TLS configuration
|
||||||
|
if not os.path.isdir("/etc/proftpd/ssl"):
|
||||||
|
os.makedirs("/etc/proftpd/ssl")
|
||||||
|
try:
|
||||||
|
WOShellExec.cmd_exec(self, "openssl genrsa -out "
|
||||||
|
"/etc/proftpd/ssl/proftpd.key 2048")
|
||||||
|
WOShellExec.cmd_exec(self, "openssl req -new -batch "
|
||||||
|
"-subj /commonName=localhost/ "
|
||||||
|
"-key /etc/proftpd/ssl/proftpd.key "
|
||||||
|
"-out /etc/proftpd/ssl/proftpd.csr")
|
||||||
|
WOFileUtils.mvfile(self, "/etc/proftpd/ssl/proftpd.key",
|
||||||
|
"/etc/proftpd/ssl/proftpd.key.org")
|
||||||
|
WOShellExec.cmd_exec(self, "openssl rsa -in "
|
||||||
|
"/etc/proftpd/ssl/proftpd.key.org"
|
||||||
|
"-out /etc/proftpd/ssl/"
|
||||||
|
"proftpd/proftpd.key")
|
||||||
|
WOShellExec.cmd_exec(self, "openssl x509 -req -days "
|
||||||
|
"3652 -in /etc/proftpd/ssl/"
|
||||||
|
"proftpd.csr"
|
||||||
|
"-signkey /etc/proftpd/ssl/"
|
||||||
|
"proftpd.key"
|
||||||
|
" -out /etc/proftpd/ssl/proftpd.crt")
|
||||||
|
except CommandExecutionError as e:
|
||||||
|
Log.debug(self, "{0}".format(e))
|
||||||
|
Log.error(
|
||||||
|
self, "Failed to generate SSL "
|
||||||
|
"certificate for Proftpd")
|
||||||
|
WOFileUtils.chmod(self, "/etc/proftpd/ssl/proftpd.key", 0o600)
|
||||||
|
WOFileUtils.chmod(self, "/etc/proftpd/ssl/proftpd.crt", 0o600)
|
||||||
|
data = dict()
|
||||||
|
Log.debug(self, 'Writting the proftpd configuration to '
|
||||||
|
'file /etc/proftpd/tls.conf')
|
||||||
|
wo_proftpdconf = open('/etc/proftpd/tls.conf',
|
||||||
|
encoding='utf-8', mode='w')
|
||||||
|
self.app.render((data), 'proftpd-tls.mustache',
|
||||||
|
out=wo_proftpdconf)
|
||||||
|
wo_proftpdconf.close()
|
||||||
|
WOFileUtils.searchreplace(self, "/etc/proftpd/"
|
||||||
|
"proftpd.conf",
|
||||||
|
"#Include /etc/proftpd/tls.conf",
|
||||||
|
"Include /etc/proftpd/tls.conf")
|
||||||
|
WOService.restart_service(self, 'proftpd')
|
||||||
|
|
||||||
# add rule for proftpd with UFW
|
# add rule for proftpd with UFW
|
||||||
if WOAptGet.is_installed(self, 'ufw'):
|
if WOAptGet.is_installed(self, 'ufw'):
|
||||||
try:
|
try:
|
||||||
|
|||||||
12
wo/cli/templates/proftpd-tls.mustache
Normal file
12
wo/cli/templates/proftpd-tls.mustache
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<IfModule mod_tls.c>
|
||||||
|
TLSEngine on
|
||||||
|
TLSLog /var/log/proftpd/tls.log
|
||||||
|
TLSProtocol TLSv1.2
|
||||||
|
TLSCipherSuite AES256+EECDH:AES256+EDH
|
||||||
|
TLSOptions NoCertRequest AllowClientRenegotiations NoSessionReuseRequired
|
||||||
|
TLSRSACertificateFile /etc/proftpd/ssl/proftpd.crt
|
||||||
|
TLSRSACertificateKeyFile /etc/proftpd/ssl/proftpd.key
|
||||||
|
TLSVerifyClient off
|
||||||
|
TLSRequired on
|
||||||
|
RequireValidShell no
|
||||||
|
</IfModule>
|
||||||
Reference in New Issue
Block a user