|
@@ -493,6 +493,69 @@ function create_letsencrypt {
|
493
|
493
|
exit 0
|
494
|
494
|
}
|
495
|
495
|
|
|
496
|
+function update_ciphersuite {
|
|
497
|
+ project_filename=/usr/local/bin/${PROJECT_NAME}
|
|
498
|
+ if [ ! -f $project_filename ]; then
|
|
499
|
+ project_filename=/usr/bin/${PROJECT_NAME}
|
|
500
|
+ fi
|
|
501
|
+
|
|
502
|
+ RECOMMENDED_SSL_CIPHERS=$(cat $project_filename | grep 'SSL_CIPHERS=' | head -n 1 | awk -F '=' '{print $2}' | awk -F '"' '{print $2}')
|
|
503
|
+ if [ ! "$RECOMMENDED_SSL_CIPHERS" ]; then
|
|
504
|
+ return
|
|
505
|
+ fi
|
|
506
|
+ if [ ${#RECOMMENDED_SSL_CIPHERS} -lt 5 ]; then
|
|
507
|
+ return
|
|
508
|
+ fi
|
|
509
|
+
|
|
510
|
+ RECOMMENDED_SSL_PROTOCOLS=$(cat $project_filename | grep 'SSL_PROTOCOLS=' | head -n 1 | awk -F '=' '{print $2}' | awk -F '"' '{print $2}')
|
|
511
|
+ if [ ! "$RECOMMENDED_SSL_PROTOCOLS" ]; then
|
|
512
|
+ return
|
|
513
|
+ fi
|
|
514
|
+ if [ ${#RECOMMENDED_SSL_PROTOCOLS} -lt 5 ]; then
|
|
515
|
+ return
|
|
516
|
+ fi
|
|
517
|
+
|
|
518
|
+ RECOMMENDED_SSH_CIPHERS=$(cat $project_filename | grep 'SSH_CIPHERS=' | head -n 1 | awk -F '=' '{print $2}' | awk -F '"' '{print $2}')
|
|
519
|
+ if [ ! "$RECOMMENDED_SSH_CIPHERS" ]; then
|
|
520
|
+ return
|
|
521
|
+ fi
|
|
522
|
+ if [ ${#RECOMMENDED_SSH_CIPHERS} -lt 5 ]; then
|
|
523
|
+ return
|
|
524
|
+ fi
|
|
525
|
+
|
|
526
|
+ RECOMMENDED_SSH_MACS=$(cat $project_filename | grep 'SSH_MACS=' | head -n 1 | awk -F '=' '{print $2}' | awk -F '"' '{print $2}')
|
|
527
|
+ if [ ! "$RECOMMENDED_SSH_MACS" ]; then
|
|
528
|
+ return
|
|
529
|
+ fi
|
|
530
|
+ if [ ${#RECOMMENDED_SSH_MACS} -lt 5 ]; then
|
|
531
|
+ return
|
|
532
|
+ fi
|
|
533
|
+
|
|
534
|
+ RECOMMENDED_SSH_KEX=$(cat $project_filename | grep 'SSH_KEX=' | head -n 1 | awk -F '=' '{print $2}' | awk -F '"' '{print $2}')
|
|
535
|
+ if [ ! "$RECOMMENDED_SSH_KEX" ]; then
|
|
536
|
+ return
|
|
537
|
+ fi
|
|
538
|
+ if [ ${#RECOMMENDED_SSH_KEX} -lt 5 ]; then
|
|
539
|
+ return
|
|
540
|
+ fi
|
|
541
|
+
|
|
542
|
+ cd $WEBSITES_DIRECTORY
|
|
543
|
+ for file in `dir -d *` ; do
|
|
544
|
+ sed -i "s|ssl_protocols .*|ssl_protocols $RECOMMENDED_SSL_PROTOCOLS;|g" $WEBSITES_DIRECTORY/$file
|
|
545
|
+ sed -i "s|ssl_ciphers .*|ssl_ciphers '$RECOMMENDED_SSL_CIPHERS';|g" $WEBSITES_DIRECTORY/$file
|
|
546
|
+ done
|
|
547
|
+ systemctl restart nginx
|
|
548
|
+
|
|
549
|
+ sed -i "s|Ciphers .*|Ciphers $RECOMMENDED_SSH_CIPHERS|g" $SSH_CONFIG
|
|
550
|
+ sed -i "s|MACs .*|MACs $RECOMMENDED_SSH_MACS|g" $SSH_CONFIG
|
|
551
|
+ sed -i "s|KexAlgorithms .*|KexAlgorithms $RECOMMENDED_SSH_KEX|g" $SSH_CONFIG
|
|
552
|
+ systemctl restart ssh
|
|
553
|
+
|
|
554
|
+ dialog --title $"Update ciphersuite" \
|
|
555
|
+ --msgbox $"The ciphersuite has been updated to recommended versions" 6 40
|
|
556
|
+ exit 0
|
|
557
|
+}
|
|
558
|
+
|
496
|
559
|
function housekeeping {
|
497
|
560
|
cmd=(dialog --separate-output \
|
498
|
561
|
--backtitle "Freedombone Security Configuration" \
|
|
@@ -501,8 +564,9 @@ function housekeeping {
|
501
|
564
|
options=(1 "Regenerate ssh host keys" off
|
502
|
565
|
2 "Regenerate Diffie-Hellman keys" off
|
503
|
566
|
3 "Renew a StartSSL certificate" off
|
504
|
|
- 4 "Create a new Let's Encrypt certificate" off
|
505
|
|
- 5 "Renew Let's Encrypt certificate" off)
|
|
567
|
+ 4 "Update cipersuite" off
|
|
568
|
+ 5 "Create a new Let's Encrypt certificate" off
|
|
569
|
+ 6 "Renew Let's Encrypt certificate" off)
|
506
|
570
|
choices=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty)
|
507
|
571
|
clear
|
508
|
572
|
for choice in $choices
|
|
@@ -518,9 +582,12 @@ function housekeeping {
|
518
|
582
|
renew_startssl
|
519
|
583
|
;;
|
520
|
584
|
4)
|
521
|
|
- create_letsencrypt
|
|
585
|
+ update_ciphersuite
|
522
|
586
|
;;
|
523
|
587
|
5)
|
|
588
|
+ create_letsencrypt
|
|
589
|
+ ;;
|
|
590
|
+ 6)
|
524
|
591
|
renew_letsencrypt
|
525
|
592
|
;;
|
526
|
593
|
esac
|