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.
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.