Kan poort niet blokkeren op Ubuntu VPS

Heb je problemen met het instellen van je netwerk, bedraad of draadloos, dan kan je hier altijd terecht!
Plaats reactie
fibrbuzz1
Plus Member
Plus Member
Berichten: 140
Lid geworden op: 04 sep 2016, 10:23
Uitgedeelde bedankjes: 1 keer
Bedankt: 6 keer

Dag iedereen,

Ik probeer een specifieke poort te blokkeren op mijn Ubuntu VPS, maar vind geen manier om te bereiken wat ik precies wil :(

Situatie: ik wil graag een Openvpn opzetten met de Access Server, omdat het heel eenvoudig in te stellen is. De web interface wil ik draaien op poort 943 en de admin op een andere poort, bv. poort 940. Nu wil ik graag die poort 940 standaard blokkeren en enkel openzetten als ik iets moet regelen in die admin gui.

Ik heb al verschillende zaken geprobeerd, eerst met ufw:

Code: Selecteer alles

ufw deny from 0.0.0.0 to port 940 
Dan zie ik in ufw status verbose:

Code: Selecteer alles

To                         Action      From
--                         ------      ----
22                         ALLOW IN    Anywhere
80/tcp                     ALLOW IN    Anywhere
443                        ALLOW IN    Anywhere
940                        DENY IN     Anywhere
Anywhere                   DENY IN     0.0.0.0 940
443                        DENY IN     0.0.0.0
Anywhere                   ALLOW IN    0.0.0.0 943
Anywhere                   ALLOW IN    0.0.0.0 22
22 (v6)                    ALLOW IN    Anywhere (v6)
80/tcp (v6)                ALLOW IN    Anywhere (v6)
443 (v6)                   ALLOW IN    Anywhere (v6)
940 (v6)                   DENY IN     Anywhere (v6)
Maar dit blijft zonder effect: ik kan de admin gui nog steeds bereiken op poort 940 (ben niet verbonden met de VPN).
Heb ook dit geprobeerd, zonder succes:

Code: Selecteer alles

iptables -A INPUT -p tcp --dport 940 -j DROP
iptables -A INPUT -p udp --dport 940 -j DROP
iptables -A INPUT -p tcp --dport 940 -j REJECT
iptables -I INPUT -p udp  --dport 940 -j REJECT
Ben geen absolute expert in networking met Linux, alvast bedankt voor de hulp :-)
blaatpraat
Elite Poster
Elite Poster
Berichten: 1279
Lid geworden op: 10 jan 2014, 12:09
Uitgedeelde bedankjes: 31 keer
Bedankt: 101 keer

Wat is de default policy van je INPUT table?

Code: Selecteer alles

iptables -L INPUT
Probeer ook eens deze rule:

Code: Selecteer alles

ufw deny 940
Die 0.0.0.0 heb je normaal niet nodig (en ik ben niet zeker of deze wel zal matchen op "any ip").
fibrbuzz1
Plus Member
Plus Member
Berichten: 140
Lid geworden op: 04 sep 2016, 10:23
Uitgedeelde bedankjes: 1 keer
Bedankt: 6 keer

blaatpraat schreef:Wat is de default policy van je INPUT table?

Code: Selecteer alles

iptables -L INPUT

Code: Selecteer alles

Chain INPUT (policy DROP)
target     prot opt source               destination
AS0_ACCEPT  all  --  anywhere             anywhere             state RELATED,ESTABLISHED
AS0_ACCEPT  all  --  anywhere             anywhere
AS0_IN_PRE  all  --  anywhere             anywhere             mark match 0x2000000/0x2000000
AS0_ACCEPT  udp  --  anywhere             anywhere             state NEW udp dpt:openvpn
AS0_ACCEPT  tcp  --  anywhere             anywhere             state NEW tcp dpt:https
AS0_WEBACCEPT  all  --  anywhere             anywhere             state RELATED,ESTABLISHED
AS0_WEBACCEPT  tcp  --  anywhere             anywhere             state NEW tcp dpt:940
AS0_WEBACCEPT  tcp  --  anywhere             anywhere             state NEW tcp dpt:943
ufw-before-logging-input  all  --  anywhere             anywhere
ufw-before-input  all  --  anywhere             anywhere
ufw-after-input  all  --  anywhere             anywhere
ufw-after-logging-input  all  --  anywhere             anywhere
ufw-reject-input  all  --  anywhere             anywhere
ufw-track-input  all  --  anywhere             anywhere
blaatpraat schreef:Probeer ook eens deze rule:

Code: Selecteer alles

ufw deny 940
Die 0.0.0.0 heb je normaal niet nodig (en ik ben niet zeker of deze wel zal matchen op "any ip").
Krijg dit:

Code: Selecteer alles

Skipping adding existing rule
Skipping adding existing rule (v6)
Alvast bedankt voor de hulp :-) is een projectje waar ik al een tijdje mee bezig ben, maar moest tot mijn verlof wachten om er echt tijd in te steken :P
blaatpraat
Elite Poster
Elite Poster
Berichten: 1279
Lid geworden op: 10 jan 2014, 12:09
Uitgedeelde bedankjes: 31 keer
Bedankt: 101 keer

Negeer dit bericht, had een klein detail over het hoofd gezien.
De regel waarover ik type, gaat normaal over de interface "lo0" en is hier dus niet van toepassing.

De tweede rule in je iptables:

Code: Selecteer alles

AS0_ACCEPT  all  --  anywhere             anywhere
Deze regel zegt letterlijk dat alles toegelaten wordt, dus de andere regels worden genegeerd.
Die regel zal je er dus moeten uitgooien als je dit wenst te bereiken.

Doe het volgende:

Code: Selecteer alles

 iptables -L --line-numbers
Dan zal je een extra nummer zien bij je iptables output.
Geef dit nummer in met volgend commando:

Code: Selecteer alles

iptables -D INPUT <nummer>
Ik veronderstel dat voor die regel het nummer 2 zal zijn, dus dan doe je dit:

Code: Selecteer alles

iptables -D INPUT 2
[/s]

En een belangrijke tip: zorg dat je zeker bent dat je nog toegang kunt verkrijgen tot je VPS.
1 iets verkeerd in iptables, en je bent buitengesloten met een reïnstall als gevolg (of een verzoek tot je hoster die het misschien kan oplossen).
fibrbuzz1
Plus Member
Plus Member
Berichten: 140
Lid geworden op: 04 sep 2016, 10:23
Uitgedeelde bedankjes: 1 keer
Bedankt: 6 keer

Niet mee inzitten, ik heb een web GUI waarmee ik heel gemakkelijk mijn VPS kan reinstallen (is al een keer gebeurd dat ik een fout gemaakt had) en openvpn erop zetten duurt ook maar 10-15 minuten :-) Dus kan geen kwaad om wat trial and error te doen :-)
CCatalyst
Elite Poster
Elite Poster
Berichten: 6659
Lid geworden op: 20 jun 2016, 18:36
Uitgedeelde bedankjes: 18 keer
Bedankt: 386 keer

Geef output van

Code: Selecteer alles

iptables-save
fibrbuzz1
Plus Member
Plus Member
Berichten: 140
Lid geworden op: 04 sep 2016, 10:23
Uitgedeelde bedankjes: 1 keer
Bedankt: 6 keer

Code: Selecteer alles

# Generated by iptables-save v1.6.0 on Sun Apr 21 17:08:37 2019
*nat
:PREROUTING ACCEPT [271:16036]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:AS0_NAT - [0:0]
:AS0_NAT_POST_REL_EST - [0:0]
:AS0_NAT_PRE - [0:0]
:AS0_NAT_PRE_REL_EST - [0:0]
:AS0_NAT_TEST - [0:0]
-A PREROUTING -m state --state RELATED,ESTABLISHED -j AS0_NAT_PRE_REL_EST
-A POSTROUTING -m state --state RELATED,ESTABLISHED -j AS0_NAT_POST_REL_EST
-A POSTROUTING -m mark --mark 0x2000000/0x2000000 -j AS0_NAT_PRE
-A AS0_NAT -o venet0 -j SNAT --to-source xxxxxxxx
-A AS0_NAT -j ACCEPT
-A AS0_NAT_POST_REL_EST -j ACCEPT
-A AS0_NAT_PRE -m mark --mark 0x8000000/0x8000000 -j AS0_NAT
-A AS0_NAT_PRE -d 169.254.0.0/16 -j AS0_NAT_TEST
-A AS0_NAT_PRE -d 192.168.0.0/16 -j AS0_NAT_TEST
-A AS0_NAT_PRE -d 172.16.0.0/12 -j AS0_NAT_TEST
-A AS0_NAT_PRE -d 10.0.0.0/8 -j AS0_NAT_TEST
-A AS0_NAT_PRE -j AS0_NAT
-A AS0_NAT_PRE_REL_EST -j ACCEPT
-A AS0_NAT_TEST -o as0t+ -j ACCEPT
-A AS0_NAT_TEST -m mark --mark 0x4000000/0x4000000 -j ACCEPT
-A AS0_NAT_TEST -d 172.27.224.0/20 -j ACCEPT
-A AS0_NAT_TEST -j AS0_NAT
COMMIT
# Completed on Sun Apr 21 17:08:37 2019
# Generated by iptables-save v1.6.0 on Sun Apr 21 17:08:37 2019
*raw
:PREROUTING ACCEPT [2153:554370]
:OUTPUT ACCEPT [1163:974976]
COMMIT
# Completed on Sun Apr 21 17:08:37 2019
# Generated by iptables-save v1.6.0 on Sun Apr 21 17:08:37 2019
*mangle
:PREROUTING ACCEPT [209:11819]
:INPUT ACCEPT [1154:158759]
:FORWARD ACCEPT [999:395611]
:OUTPUT ACCEPT [1157:974616]
:POSTROUTING ACCEPT [2156:1370227]
:AS0_MANGLE_PRE_REL_EST - [0:0]
:AS0_MANGLE_TUN - [0:0]
-A PREROUTING -m state --state RELATED,ESTABLISHED -j AS0_MANGLE_PRE_REL_EST
-A PREROUTING -i as0t+ -j AS0_MANGLE_TUN
-A AS0_MANGLE_PRE_REL_EST -j ACCEPT
-A AS0_MANGLE_TUN -j MARK --set-xmark 0x2000000/0xffffffff
-A AS0_MANGLE_TUN -j ACCEPT
COMMIT
# Completed on Sun Apr 21 17:08:37 2019
# Generated by iptables-save v1.6.0 on Sun Apr 21 17:08:37 2019
*filter
:INPUT DROP [143:8591]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:AS0_ACCEPT - [0:0]
:AS0_IN - [0:0]
:AS0_IN_NAT - [0:0]
:AS0_IN_POST - [0:0]
:AS0_IN_PRE - [0:0]
:AS0_IN_ROUTE - [0:0]
:AS0_OUT - [0:0]
:AS0_OUT_LOCAL - [0:0]
:AS0_OUT_POST - [0:0]
:AS0_OUT_S2C - [0:0]
:AS0_WEBACCEPT - [0:0]
:ufw-after-forward - [0:0]
:ufw-after-input - [0:0]
:ufw-after-logging-forward - [0:0]
:ufw-after-logging-input - [0:0]
:ufw-after-logging-output - [0:0]
:ufw-after-output - [0:0]
:ufw-before-forward - [0:0]
:ufw-before-input - [0:0]
:ufw-before-logging-forward - [0:0]
:ufw-before-logging-input - [0:0]
:ufw-before-logging-output - [0:0]
:ufw-before-output - [0:0]
:ufw-logging-allow - [0:0]
:ufw-logging-deny - [0:0]
:ufw-not-local - [0:0]
:ufw-reject-forward - [0:0]
:ufw-reject-input - [0:0]
:ufw-reject-output - [0:0]
:ufw-skip-to-policy-forward - [0:0]
:ufw-skip-to-policy-input - [0:0]
:ufw-skip-to-policy-output - [0:0]
:ufw-track-forward - [0:0]
:ufw-track-input - [0:0]
:ufw-track-output - [0:0]
:ufw-user-forward - [0:0]
:ufw-user-input - [0:0]
:ufw-user-limit - [0:0]
:ufw-user-limit-accept - [0:0]
:ufw-user-logging-forward - [0:0]
:ufw-user-logging-input - [0:0]
:ufw-user-logging-output - [0:0]
:ufw-user-output - [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j AS0_ACCEPT
-A INPUT -i lo -j AS0_ACCEPT
-A INPUT -m mark --mark 0x2000000/0x2000000 -j AS0_IN_PRE
-A INPUT -p udp -m state --state NEW -m udp --dport 1194 -j AS0_ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j AS0_ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j AS0_WEBACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 940 -j AS0_WEBACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 943 -j AS0_WEBACCEPT
-A INPUT -j ufw-before-logging-input
-A INPUT -j ufw-before-input
-A INPUT -j ufw-after-input
-A INPUT -j ufw-after-logging-input
-A INPUT -j ufw-reject-input
-A INPUT -j ufw-track-input
-A FORWARD -m state --state RELATED,ESTABLISHED -j AS0_ACCEPT
-A FORWARD -m mark --mark 0x2000000/0x2000000 -j AS0_IN_PRE
-A FORWARD -o as0t+ -j AS0_OUT_S2C
-A FORWARD -j ufw-before-logging-forward
-A FORWARD -j ufw-before-forward
-A FORWARD -j ufw-after-forward
-A FORWARD -j ufw-after-logging-forward
-A FORWARD -j ufw-reject-forward
-A FORWARD -j ufw-track-forward
-A OUTPUT -o as0t+ -j AS0_OUT_LOCAL
-A OUTPUT -j ufw-before-logging-output
-A OUTPUT -j ufw-before-output
-A OUTPUT -j ufw-after-output
-A OUTPUT -j ufw-after-logging-output
-A OUTPUT -j ufw-reject-output
-A OUTPUT -j ufw-track-output
-A AS0_ACCEPT -j ACCEPT
-A AS0_IN -d 172.27.224.1/32 -j ACCEPT
-A AS0_IN -j AS0_IN_POST
-A AS0_IN_NAT -j MARK --set-xmark 0x8000000/0x8000000
-A AS0_IN_NAT -j ACCEPT
-A AS0_IN_POST -o as0t+ -j AS0_OUT
-A AS0_IN_POST -j DROP
-A AS0_IN_PRE -d 169.254.0.0/16 -j AS0_IN
-A AS0_IN_PRE -d 192.168.0.0/16 -j AS0_IN
-A AS0_IN_PRE -d 172.16.0.0/12 -j AS0_IN
-A AS0_IN_PRE -d 10.0.0.0/8 -j AS0_IN
-A AS0_IN_PRE -j ACCEPT
-A AS0_IN_ROUTE -j MARK --set-xmark 0x4000000/0x4000000
-A AS0_IN_ROUTE -j ACCEPT
-A AS0_OUT -j AS0_OUT_POST
-A AS0_OUT_LOCAL -p icmp -m icmp --icmp-type 5 -j DROP
-A AS0_OUT_LOCAL -j ACCEPT
-A AS0_OUT_POST -j DROP
-A AS0_OUT_S2C -j AS0_OUT
-A AS0_WEBACCEPT -j ACCEPT
-A ufw-after-input -p udp -m udp --dport 137 -j ufw-skip-to-policy-input
-A ufw-after-input -p udp -m udp --dport 138 -j ufw-skip-to-policy-input
-A ufw-after-input -p tcp -m tcp --dport 139 -j ufw-skip-to-policy-input
-A ufw-after-input -p tcp -m tcp --dport 445 -j ufw-skip-to-policy-input
-A ufw-after-input -p udp -m udp --dport 67 -j ufw-skip-to-policy-input
-A ufw-after-input -p udp -m udp --dport 68 -j ufw-skip-to-policy-input
-A ufw-after-input -m addrtype --dst-type BROADCAST -j ufw-skip-to-policy-input
-A ufw-after-logging-forward -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] "
-A ufw-after-logging-input -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] "
-A ufw-before-forward -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 4 -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 12 -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A ufw-before-forward -j ufw-user-forward
-A ufw-before-input -i lo -j ACCEPT
-A ufw-before-input -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw-before-input -m conntrack --ctstate INVALID -j ufw-logging-deny
-A ufw-before-input -m conntrack --ctstate INVALID -j DROP
-A ufw-before-input -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A ufw-before-input -p icmp -m icmp --icmp-type 4 -j ACCEPT
-A ufw-before-input -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A ufw-before-input -p icmp -m icmp --icmp-type 12 -j ACCEPT
-A ufw-before-input -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A ufw-before-input -p udp -m udp --sport 67 --dport 68 -j ACCEPT
-A ufw-before-input -j ufw-not-local
-A ufw-before-input -d 224.0.0.251/32 -p udp -m udp --dport 5353 -j ACCEPT
-A ufw-before-input -d 239.255.255.250/32 -p udp -m udp --dport 1900 -j ACCEPT
-A ufw-before-input -j ufw-user-input
-A ufw-before-output -o lo -j ACCEPT
-A ufw-before-output -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw-before-output -j ufw-user-output
-A ufw-logging-allow -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW ALLOW] "
-A ufw-logging-deny -m conntrack --ctstate INVALID -m limit --limit 3/min --limit-burst 10 -j RETURN
-A ufw-logging-deny -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] "
-A ufw-not-local -m addrtype --dst-type LOCAL -j RETURN
-A ufw-not-local -m addrtype --dst-type MULTICAST -j RETURN
-A ufw-not-local -m addrtype --dst-type BROADCAST -j RETURN
-A ufw-not-local -m limit --limit 3/min --limit-burst 10 -j ufw-logging-deny
-A ufw-not-local -j DROP
-A ufw-skip-to-policy-forward -j DROP
-A ufw-skip-to-policy-input -j DROP
-A ufw-skip-to-policy-output -j ACCEPT
-A ufw-track-output -p tcp -m conntrack --ctstate NEW -j ACCEPT
-A ufw-track-output -p udp -m conntrack --ctstate NEW -j ACCEPT
-A ufw-user-input -p tcp -m tcp --dport 22 -j ACCEPT
-A ufw-user-input -p udp -m udp --dport 22 -j ACCEPT
-A ufw-user-input -p tcp -m tcp --dport 80 -j ACCEPT
-A ufw-user-input -p tcp -m tcp --dport 443 -j ACCEPT
-A ufw-user-input -p udp -m udp --dport 443 -j ACCEPT
-A ufw-user-input -p tcp -m tcp --dport 940 -j DROP
-A ufw-user-input -p udp -m udp --dport 940 -j DROP
-A ufw-user-input -s 0.0.0.0/32 -p tcp -m tcp --sport 940 -j DROP
-A ufw-user-input -s 0.0.0.0/32 -p udp -m udp --sport 940 -j DROP
-A ufw-user-input -s 0.0.0.0/32 -p tcp -m tcp --dport 443 -j DROP
-A ufw-user-input -s 0.0.0.0/32 -p udp -m udp --dport 443 -j DROP
-A ufw-user-input -s 0.0.0.0/32 -p tcp -m tcp --sport 943 -j ACCEPT
-A ufw-user-input -s 0.0.0.0/32 -p udp -m udp --sport 943 -j ACCEPT
-A ufw-user-input -s 0.0.0.0/32 -p tcp -m tcp --sport 22 -j ACCEPT
-A ufw-user-input -s 0.0.0.0/32 -p udp -m udp --sport 22 -j ACCEPT
-A ufw-user-limit -m limit --limit 3/min -j LOG --log-prefix "[UFW LIMIT BLOCK] "
-A ufw-user-limit -j REJECT --reject-with icmp-port-unreachable
-A ufw-user-limit-accept -j ACCEPT
COMMIT
# Completed on Sun Apr 21 17:08:37 2019
CCatalyst
Elite Poster
Elite Poster
Berichten: 6659
Lid geworden op: 20 jun 2016, 18:36
Uitgedeelde bedankjes: 18 keer
Bedankt: 386 keer

iptables volgt eerste matchende rule

Deze rules:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 940 -j AS0_WEBACCEPT
-A AS0_WEBACCEPT -j ACCEPT

staan boven deze rule:
-A ufw-user-input -p tcp -m tcp --dport 940 -j DROP

Uitzoeken dus hoe het komt dat die "-A INPUT -p tcp -m state --state NEW -m tcp --dport 940 -j AS0_WEBACCEPT" erin komt te staan. Geen idee welk proces al die "AS0_*" chains maakt (OpenVPN Access Server misschien?), maar als je dat kan vinden ligt daar je antwoord. Lijkt erop dat OpenVPN zelf firewall regels zet die conflicteren met die van jou.

Let ook op voor de "-A INPUT -m state --state RELATED,ESTABLISHED -j AS0_ACCEPT" rule waardoor een toestel dat kort eerder op poort 940 geweest is nog steeds toegang kan krijgen via state voor een bepaalde periode nadat de firewall aangepast is. VPS rebooten cleart de states.
fibrbuzz1
Plus Member
Plus Member
Berichten: 140
Lid geworden op: 04 sep 2016, 10:23
Uitgedeelde bedankjes: 1 keer
Bedankt: 6 keer

Bedankt voor de tip! :-D Het is mij gelukt om de rule (inderdaad hoogstwaarschijnlijk aangemaakt door Access Server zelf) te verwijderen via iptables -L INPUT --line-numbers en dan iptables -D INPUT [nummer vd lijn].
Nu kan ik wel werken met ufw allow 940 en ufw deny 940 om de poort te (de)blokkeren zoals gepland :-)
CCatalyst
Elite Poster
Elite Poster
Berichten: 6659
Lid geworden op: 20 jun 2016, 18:36
Uitgedeelde bedankjes: 18 keer
Bedankt: 386 keer

Hou er rekening mee dat Access Server deze regels wellicht ook in een bootscript gezet zal hebben dus na reboot zullen ze mogelijks terug staan.
Plaats reactie

Terug naar “Netwerken en Security”