Konfiguracja UFW oraz fail2ban dla OpenVPN w Ubuntu

Mam dedykowany serwer cloude z Ubuntu Server 16.04 z zewnętrznym IP. Zainstalowałem OpenVPN zgodnie z instrukcją. Na serwer wielokrotnie próbowali się włamać głównie użytkownicy z Chin (tak przynajmniej wskazuje IP). Zainstalowałem zatem UFW i dodałem reguły jak poniżej.

 

 

Niezależnie od tego czy UFW jest włączony, czy też nie, to mogę się połączyć z VPNem (komórka). Jak mam włączony firewall, to serwer blokuje mi wszelkie próby otwarcia jakiekolwiek linku, gdy firewalla wyłączę, to łącze VPN działa. Mam też zainstalowany fail2ban.

 

  1. Czy moja konfiguracja jest nieprawidłowa?
  2. Jak zainstalować nakładkę graficzną na OpenVPN.
  3. Jak mogę zabezpieczyć jeszcze serwer?

 

 

Wywal tego UFW i skorzystaj normalnie z IPTables.

iptables -F


	iptables -X


	iptables -t nat -F


	iptables -t nat -X


	iptables -t mangle -F


	iptables -t mangle -X


	 


	iptables -P INPUT DROP


	iptables -P FORWARD DROP


	iptables -P OUTPUT DROP


	 


	# W tym miejscu dodajesz reguły zezwalające na połączenie do serwera


	# Na przykład SSH


	# iptables -A INPUT -p tcp --dport 22 -j ACCEPT


	iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


	iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT


	iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED

 

Reguły te wrzucasz sobie jako skrypt bash i dodajesz do systemd (choć systemd ma chyba teraz własne narzędzie do firewalla). Jest tylko jedna uwaga, jak dodasz swoje reguły (to co jest po # to komentarz, te linie nie są brane pod uwagę przez basha), przetestuj je dobrze i dopiero jak będziesz miał pewność, że wszystko działa, dodasz do inita, żeby reguły ustawiały się przy starcie systemu. Jak zrobisz na odwrót, to zablokujesz sobie całkowicie dostęp do serwera i jak nie masz jakiegoś panelu rescue, to pozostanie Ci stawianie systemu od zera.

Możesz też wykorzystać ipset i rózne popularne reguły w oparciu o te skrypty (polecam ten drugi):
https://github.com/trick77/ipset-blacklist
https://github.com/kravietz/blacklist-scripts
ipset sprawuje sie lepiej przy dużej ilości adresów niż “gołe” iptables, a i wygodniej robi się taki mass-ban.