@@ -531,6 +531,63 @@ addSSHKey() {
531
531
printf " ${Green} 🎉 SSH key is added ${NC} \n" ;
532
532
}
533
533
534
+ # Show Open ports
535
+ showOpenPorts () {
536
+ if command -v ufw & > /dev/null; then
537
+ message=$( ufw status | grep -q " Status: active" && echo " ufw is enabled" || echo " ufw is disabled" ) ;
538
+ # Check if message is "ufw is enabled" then show open ports
539
+ if [ " $message " == " ufw is enabled" ]; then
540
+ # Get all open ports and concat together with - ==> | tr '\n' '-' | sed 's/-$//'
541
+ openPorts=$( ufw status | grep " ALLOW" | awk ' {print $1}' )
542
+ printf " ${Purple} Open ports:\n$openPorts \n ${NC} " ;
543
+ else
544
+ echo " $message " ;
545
+ fi
546
+ else
547
+ echo " ufw is not installed"
548
+ fi
549
+ # Ask for back to main
550
+ read -p " Do you want to back to main menu? (y/n): " -n 1 -r
551
+ echo # (optional) move to a new line
552
+ if [[ $REPLY =~ ^[Yy]$ ]]
553
+ then
554
+ main
555
+ fi
556
+ }
557
+
558
+ # Check Firewall
559
+ CheckFirewall () {
560
+ if command -v ufw & > /dev/null; then
561
+ message=$( ufw status | grep -q " Status: active" && echo " ufw is enabled" || echo " ufw is disabled" ) ;
562
+ echo " $message " ;
563
+ else
564
+ echo " ufw is not installed"
565
+ fi
566
+ }
567
+
568
+ # Change Firewall status
569
+ ChangeFirewallStatus () {
570
+ if command -v ufw & > /dev/null; then
571
+ # Check if ufw is disabled the enable it and if it is enabled then disable it
572
+ if ufw status | grep " Status: inactive" ; then
573
+ read -p " Enter the ports that you want to open: (separated by comma)" port;
574
+ for p in $( echo $port | sed " s/,/ /g" ) ; do
575
+ ufw allow $p > /dev/null 2>&1 ;
576
+ done
577
+ ufw enable ;
578
+ else
579
+ ufw disable;
580
+ fi
581
+ printf " ${Green} 🎉 Firewall is changed ${NC} \n" ;
582
+ CheckFirewall
583
+ else
584
+ echo " ufw is not installed" ;
585
+ fi
586
+ # Sleep 5sec
587
+ sleep 5;
588
+ main;
589
+ }
590
+
534
591
# Main
535
592
main () {
536
593
clear
@@ -550,6 +607,8 @@ main() {
550
607
printf " ${Cyan} 9. Get SSL for domain with Nginx ${Red} [Server]${NC} \n"
551
608
printf " ${Cyan} 10. Install NVM (Node Version Manager)${NC} \n"
552
609
printf " ${Cyan} 11. Add SSH Key ${Red} [Server]${NC} \n"
610
+ printf " ${Cyan} 12. Active or deactive Firewall ${Purple} ($( CheckFirewall) )${NC} \n"
611
+ printf " ${Cyan} 13. Show all Firewall open ports${NC} \n"
553
612
554
613
read -p " Enter your choice: " choice
555
614
@@ -587,6 +646,12 @@ main() {
587
646
11)
588
647
addSSHKey
589
648
;;
649
+ 12)
650
+ ChangeFirewallStatus
651
+ ;;
652
+ 13)
653
+ showOpenPorts
654
+ ;;
590
655
* )
591
656
printf " ${Red} Invalid choice. Exiting.${NC} \n"
592
657
exit 1
0 commit comments