Whitelist CloudFlare/TCPShield IPs on port your selection of ports
The scripts support Fedora, RHEL, CentOS, Debian,and Ubuntu.
Whitelist Cloudflare on your firewall (generic):
bash <(curl -sSL https://raw.githubusercontent.com/tommytran732/Firewall-IPWhitelist/master/cloudflare.sh)
Whitelist Cloudflare for VMmanager:
bash <(curl -sSL https://raw.githubusercontent.com/tommytran732/Firewall-IPWhitelist/master/cloudflare-vmmanager.sh)
Whitelist TCPShield on your firewall:
bash <(curl -sSL https://raw.githubusercontent.com/tommytran732/Firewall-IPWhitelist/master/tcpshield.sh)
Before you run the script, makes sure you have not opened those ports to all IPs as it will make this script useless.
If you run SSHD on a port different from 22, make sure you have it opened or just change the command ufw allow 22
to your appropriate port.