Pomoc przy konfigurowaniu firewalla

Zagadnienia bezpieczeństwa w systemie
TiREX
Posty: 9
Rejestracja: 27 listopada 2015, 10:12

Pomoc przy konfigurowaniu firewalla

Post autor: TiREX »

Witam,
jako, iż jestem lajkiem w tej kwestii to potrzebuje pomocy z stworzeniem wytrzymałych rekordów przed atakami typu DoS/DDoS
Serwer posiadam w OVH filtrowanie adresów stałe, aktualne regułki:
Załącznik 2unnkn.jpg nie jest już dostępny

Dodam, że na serwerze mam strone, na którą nawet podczas ataków będzie można wejść jak i na serwer teamspeak.

Jeżeli to coś pomoże to wydaje mi się, że niektóre z tych pakietów z tcpdump wysyłają flooda (dodam, że ich się pojawia bardzo dużo na sec. zwłaszcza tych na porcie: 27960):

Kod: Zaznacz cały

18:36:57.012069 IP 79.133.192.44.27969 > vps222031.ovh.net.9987: UDP, length 104418:36:57.012084 IP c98-150.icpnet.pl.28983 > vps222031.ovh.net.9987: UDP, length 509
18:36:57.012139 IP c98-150.icpnet.pl.28983 > vps222031.ovh.net.9987: UDP, length 509
18:36:57.012175 IP 80.72.37.6.27960 > vps222031.ovh.net.9987: UDP, length 617
18:36:57.012225 IP c98-150.icpnet.pl.28983 > vps222031.ovh.net.9987: UDP, length 509
18:36:57.012287 IP c98-150.icpnet.pl.28983 > vps222031.ovh.net.9987: UDP, length 509
18:36:57.012342 IP V.1shot1kill.pl.27960 > vps222031.ovh.net.9987: UDP, length 949
18:36:57.012442 IP 80.72.45.126.27960 > vps222031.ovh.net.9987: UDP, length 1083
18:36:57.012461 IP c98-150.icpnet.pl.28983 > vps222031.ovh.net.9987: UDP, length 509
18:36:57.012504 IP c98-150.icpnet.pl.28983 > vps222031.ovh.net.9987: UDP, length 509
18:36:57.012546 IP c98-150.icpnet.pl.28983 > vps222031.ovh.net.9987: UDP, length 509
18:36:57.012596 IP c98-150.icpnet.pl.28983 > vps222031.ovh.net.9987: UDP, length 509
18:36:57.012667 IP V.1shot1kill.pl.27960 > vps222031.ovh.net.9987: UDP, length 949
18:36:57.012720 IP c98-150.icpnet.pl.28983 > vps222031.ovh.net.9987: UDP, length 509
18:36:57.012840 IP M.1shot1kill.pl.27960 > vps222031.ovh.net.9987: UDP, length 1440
18:36:57.012903 IP 79.133.192.44.27969 > vps222031.ovh.net.9987: UDP, length 1044
18:36:57.012997 IP 80.72.45.126.27960 > vps222031.ovh.net.9987: UDP, length 1083
18:36:57.013105 IP s2.zabijaka.pl.27962 > vps222031.ovh.net.9987: UDP, length 1361
18:36:57.013162 IP c98-150.icpnet.pl.28983 > vps222031.ovh.net.9987: UDP, length 509
18:36:57.013260 IP s4.zabijaka.pl.27960 > vps222031.ovh.net.9987: UDP, length 1017
18:36:57.013274 IP c98-150.icpnet.pl.28983 > vps222031.ovh.net.9987: UDP, length 509
18:36:57.013371 IP s2.zabijaka.pl.27962 > vps222031.ovh.net.9987: UDP, length 1361
18:36:57.013404 IP c98-150.icpnet.pl.28983 > vps222031.ovh.net.9987: UDP, length 509
18:36:57.013445 IP c98-150.icpnet.pl.28983 > vps222031.ovh.net.9987: UDP, length 509
18:36:57.013535 IP V.1shot1kill.pl.27960 > vps222031.ovh.net.9987: UDP, length 949
18:36:57.013565 IP c98-150.icpnet.pl.28983 > vps222031.ovh.net.9987: UDP, length 509
18:36:57.013617 IP c98-150.icpnet.pl.28983 > vps222031.ovh.net.9987: UDP, length 509
18:36:57.013695 IP c98-150.icpnet.pl.28983 > vps222031.ovh.net.9987: UDP, length 509
18:36:57.013788 IP V.1shot1kill.pl.27960 > vps222031.ovh.net.9987: UDP, length 949
18:36:57.013824 IP 79.133.192.44.27969 > vps222031.ovh.net.9987: UDP, length 1044
18:36:57.013870 IP c98-150.icpnet.pl.28983 > vps222031.ovh.net.9987: UDP, length 509
18:36:57.013898 IP c98-150.icpnet.pl.28983 > vps222031.ovh.net.9987: UDP, length 509
18:36:57.013949 IP 80.72.37.6.27960 > vps222031.ovh.net.9987: UDP, length 617
18:36:57.014050 IP 80.72.45.126.27960 > vps222031.ovh.net.9987: UDP, length 1083
18:36:57.014123 IP 79.133.192.44.27969 > vps222031.ovh.net.9987: UDP, length 1044
18:36:57.014198 IP V.1shot1kill.pl.27960 > vps222031.ovh.net.9987: UDP, length 949
18:36:57.014295 IP s4.zabijaka.pl.27960 > vps222031.ovh.net.9987: UDP, length 1017
18:36:57.014371 IP 79.133.192.44.27969 > vps222031.ovh.net.9987: UDP, length 1044
18:36:57.014482 IP M.1shot1kill.pl.27960 > vps222031.ovh.net.9987: UDP, length 1440
18:36:57.014516 IP 80.72.37.6.27960 > vps222031.ovh.net.9987: UDP, length 617
18:36:57.014631 IP s2.zabijaka.pl.27962 > vps222031.ovh.net.9987: UDP, length 1361
18:36:57.014749 IP M.1shot1kill.pl.27960 > vps222031.ovh.net.9987: UDP, length 1440
18:36:57.014798 IP s12.zabijaka.pl.28910 > vps222031.ovh.net.9987: UDP, length 670
18:36:57.014898 IP 80.72.45.126.27960 > vps222031.ovh.net.9987: UDP, length 1083
18:36:57.014967 IP V.1shot1kill.pl.27960 > vps222031.ovh.net.9987: UDP, length 949
18:36:57.015045 IP 79.133.192.44.27969 > vps222031.ovh.net.9987: UDP, length 1044
18:36:57.015133 IP 80.72.45.126.27960 > vps222031.ovh.net.9987: UDP, length 1083
18:36:57.015213 IP 79.133.192.44.27969 > vps222031.ovh.net.9987: UDP, length 1044
18:36:57.015285 IP V.1shot1kill.pl.27960 > vps222031.ovh.net.9987: UDP, length 949
18:36:57.015395 IP M.1shot1kill.pl.27960 > vps222031.ovh.net.9987: UDP, length 1440
18:36:57.015490 IP 79.133.192.44.27969 > vps222031.ovh.net.9987: UDP, length 1044
18:36:57.015564 IP V.1shot1kill.pl.27960 > vps222031.ovh.net.9987: UDP, length 949
18:36:57.015620 IP s12.zabijaka.pl.28910 > vps222031.ovh.net.9987: UDP, length 670
18:36:57.015658 IP s12.zabijaka.pl.28910 > vps222031.ovh.net.9987: UDP, length 670
18:36:57.015710 IP s12.zabijaka.pl.28910 > vps222031.ovh.net.9987: UDP, length 670
18:36:57.015825 IP 79.133.192.44.27969 > vps222031.ovh.net.9987: UDP, length 1044
18:36:57.015882 IP s4.zabijaka.pl.27960 > vps222031.ovh.net.9987: UDP, length 1017
18:36:57.015996 IP hosted-by.slaskdatacenter.pl.27960 > vps222031.ovh.net.9987: UDP, length 1275
18:36:57.016076 IP 79.133.192.44.27969 > vps222031.ovh.net.9987: UDP, length 1044
18:36:57.016115 IP s12.zabijaka.pl.28910 > vps222031.ovh.net.9987: UDP, length 670
18:36:57.016237 IP hosted-by.slaskdatacenter.pl.27960 > vps222031.ovh.net.9987: UDP, length 1275
18:36:57.016264 IP 80.72.37.6.27960 > vps222031.ovh.net.9987: UDP, length 617


Pozdrawiam
Załączniki
2unnkn.jpg
sethiel
Junior Member
Posty: 762
Rejestracja: 28 stycznia 2008, 11:50
Lokalizacja: Wrocław

Post autor: sethiel »

Będziesz miał na pewno większy odzew jak przepiszesz posta używając zasad gramatyki języka polskiego a nie swoich własnych.
TiREX
Posty: 9
Rejestracja: 27 listopada 2015, 10:12

Post autor: TiREX »

Masz racje moja polszczyzna i ortografia zastosowana w wiadomości rozpoczynającej wątek nie wyglądała najlepiej.
Mam nadzieje, że nie znajdziesz już więcej błędów ortograficznych raniących nasz piękny język.

Potrzebuje mieć zabezpieczone porty 8080 http, 80 http, 22 ssh i 9987 udp teamspeak
sethiel
Junior Member
Posty: 762
Rejestracja: 28 stycznia 2008, 11:50
Lokalizacja: Wrocław

Post autor: sethiel »

Może na OVH da się zrobić fail-2-ban, jeśli tak to polecam.
Konfiguracja daje możliwość zdefiniowania po jakich i ilu wpisach w log dane IP zostanie zbanowane na wyznaczony przez ciebie czas.
Wytnie 99,99% wszystkich twoich problemów.
Innymi słowy chronisz port który chcesz i jak chcesz.
Firewall może zapisać każdą aktywność (udaną lub/i nieudaną) na każdym porcie, a ty każdą aktywność (udaną lub/i nieudaną) możesz banować.
Awatar użytkownika
bobea
Posty: 26
Rejestracja: 27 sierpnia 2015, 05:20

Post autor: bobea »

Sorki, ale "jestem lajkiem" tak mnie rozbawiło, że nie mogę tego odpuścić :D
TiREX
Posty: 9
Rejestracja: 27 listopada 2015, 10:12

Post autor: TiREX »

sethiel pisze:Może na OVH da się zrobić fail-2-ban, jeśli tak to polecam.
Konfiguracja daje możliwość zdefiniowania po jakich i ilu wpisach w log dane IP zostanie zbanowane na wyznaczony przez ciebie czas.
Wytnie 99,99% wszystkich twoich problemów.
Innymi słowy chronisz port który chcesz i jak chcesz.
Firewall może zapisać każdą aktywność (udaną lub/i nieudaną) na każdym porcie, a ty każdą aktywność (udaną lub/i nieudaną) możesz banować.
tylko jak mam wykrywać czy to jest zwykła aktywność czy jakiś flood? Ktoś mógłby dać jakiś przykład czy coś?
Awatar użytkownika
pawkrol
Moderator
Posty: 939
Rejestracja: 03 kwietnia 2011, 10:25

Post autor: pawkrol »

Spróbuj tak:

Kod: Zaznacz cały

# domyślna polityka dla łancucha Filter
iptables -P FORWARD DROP
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -N syn-flood


##### ZABEZPIECZENIE przed skanowaniem portów: #####################################################################################################
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH ACK -j LOG --log-prefix "$LOG ACK scan: "
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH ACK -j DROP # Metoda ACK (nmap -sA)

iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN -j LOG --log-prefix "$LOG FIN scan: "
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN -j DROP # Skanowanie FIN (nmap -sF)

iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH PSH -j LOG --log-prefix "$LOG Xmas scan: "
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN,URG,PSH -j DROP # Metoda Xmas Tree (nmap -sX)

iptables -A INPUT -m conntrack --ctstate INVALID -p tcp ! --tcp-flags SYN,RST,ACK,FIN,PSH,URG SYN,RST,ACK,FIN,PSH,URG -j LOG --log-prefix "$LOG Null scan: "
iptables -A INPUT -m conntrack --ctstate INVALID -p tcp ! --tcp-flags SYN,RST,ACK,FIN,PSH,URG SYN,RST,ACK,FIN,PSH,URG -j DROP # Skanowanie Null (nmap -sN)

#### oraz przed atakiem SYN flood (denial-of-service)
iptables -A INPUT -p tcp --syn -j syn-flood
iptables -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN
iptables -A syn-flood -m limit --limit 1/s --limit-burst 4 -j LOG --log-prefix "$LOG SYN-flood: "
iptables -A syn-flood -j DROP
.
.
.
.

Jeśli z serwera korzystają tylko użytkownicy z Polski, to możesz odsiać resztę świata np przez ipset.
TiREX
Posty: 9
Rejestracja: 27 listopada 2015, 10:12

Post autor: TiREX »

pawkrol pisze:Spróbuj tak:

Kod: Zaznacz cały

# domyślna polityka dla łancucha Filter
iptables -P FORWARD DROP
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -N syn-flood


##### ZABEZPIECZENIE przed skanowaniem portów: #####################################################################################################
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH ACK -j LOG --log-prefix "$LOG ACK scan: "
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH ACK -j DROP # Metoda ACK (nmap -sA)

iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN -j LOG --log-prefix "$LOG FIN scan: "
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN -j DROP # Skanowanie FIN (nmap -sF)

iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH PSH -j LOG --log-prefix "$LOG Xmas scan: "
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN,URG,PSH -j DROP # Metoda Xmas Tree (nmap -sX)

iptables -A INPUT -m conntrack --ctstate INVALID -p tcp ! --tcp-flags SYN,RST,ACK,FIN,PSH,URG SYN,RST,ACK,FIN,PSH,URG -j LOG --log-prefix "$LOG Null scan: "
iptables -A INPUT -m conntrack --ctstate INVALID -p tcp ! --tcp-flags SYN,RST,ACK,FIN,PSH,URG SYN,RST,ACK,FIN,PSH,URG -j DROP # Skanowanie Null (nmap -sN)

#### oraz przed atakiem SYN flood (denial-of-service)
iptables -A INPUT -p tcp --syn -j syn-flood
iptables -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN
iptables -A syn-flood -m limit --limit 1/s --limit-burst 4 -j LOG --log-prefix "$LOG SYN-flood: "
iptables -A syn-flood -j DROP
.
.
.
.

Jeśli z serwera korzystają tylko użytkownicy z Polski, to możesz odsiać resztę świata np przez ipset.
po użyciu tej komendy: "iptables -P INPUT DROP" razem z tymi wszystkimi komendami dzieje się rzecz następująca:
Gracze nie mogą wchodzić na serwer
Awatar użytkownika
pawkrol
Moderator
Posty: 939
Rejestracja: 03 kwietnia 2011, 10:25

Post autor: pawkrol »

po użyciu tej komendy: "iptables -P INPUT DROP" razem z tymi wszystkimi komendami dzieje się rzecz następująca:
Gracze nie mogą wchodzić na serwer
To jest domyślna polityka, a nie mogą wejść, bo zapewne nie otworzyłeś portów z grą dla graczy. (Tak z ciekawości jaką masz domyślną politykę Łańcucha Input tabeli Filter ?)
TiREX
Posty: 9
Rejestracja: 27 listopada 2015, 10:12

Post autor: TiREX »

pawkrol pisze:To jest domyślna polityka, a nie mogą wejść, bo zapewne nie otworzyłeś portów z grą dla graczy. (Tak z ciekawości jaką masz domyślną politykę Łańcucha Input tabeli Filter ?)

Chain INPUT (policy DROP)
target prot opt source destination
fail2ban-ssh tcp -- anywhere anywhere multiport dports ssh
ACCEPT tcp -- loopback/16 anywhere tcp dpt:2008
DROP tcp -- anywhere anywhere tcp dpt:2008
LOG tcp -- anywhere anywhere ctstate NEW tcpflags: FIN,SYN,RST,PSH,ACK,URG/ACK LOG level warning prefix " ACK scan: "
DROP tcp -- anywhere anywhere ctstate NEW tcpflags: FIN,SYN,RST,PSH,ACK,URG/ACK
LOG tcp -- anywhere anywhere ctstate NEW tcpflags: FIN,SYN,RST,PSH,ACK,URG/FIN LOG level warning prefix " FIN scan: "
DROP tcp -- anywhere anywhere ctstate NEW tcpflags: FIN,SYN,RST,PSH,ACK,URG/FIN
LOG tcp -- anywhere anywhere ctstate NEW tcpflags: FIN,SYN,RST,PSH,ACK,URG/PSH LOG level warning prefix " Xmas scan: "
DROP tcp -- anywhere anywhere ctstate NEW tcpflags: FIN,SYN,RST,PSH,ACK,URG/PSH
LOG tcp -- anywhere anywhere ctstate INVALID tcpflags:! FIN,SYN,RST,PSH,ACK,URG/FIN,SYN,RST,PSH,ACK,URG LOG level warning prefix " Null scan: "
DROP tcp -- anywhere anywhere ctstate INVALID tcpflags:! FIN,SYN,RST,PSH,ACK,URG/FIN,SYN,RST,PSH,ACK,URG
syn-flood tcp -- anywhere anywhere tcpflags: FIN,SYN,RST,ACK/SYN
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:22
ACCEPT udp -- anywhere anywhere udp dpt:22
ACCEPT udp -- anywhere anywhere udp dpt:9987
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:60066
ACCEPT tcp -- anywhere anywhere tcp dpt:22
ACCEPT udp -- anywhere anywhere udp dpt:9987
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT tcp -- anywhere anywhere tcp dpt:http-alt
ACCEPT tcp -- anywhere anywhere tcp dpt:10011
ACCEPT tcp -- anywhere anywhere tcp dpt:30033


Chain FORWARD (policy DROP)
target prot opt source destination


Chain OUTPUT (policy ACCEPT)
target prot opt source destination


Chain fail2ban-ssh (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere


Chain syn-flood (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere limit: avg 1/sec burst 4

DROP all -- anywhere anywhere
Podczas ataku jest 40% packet lostów
ODPOWIEDZ