Fail2ban icm ufw blokkeert geen IP adres

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • wirimij
  • Registratie: Februari 2016
  • Laatst online: 02-10-2023
Mijn vraag

Hoe kan het dat Fail2ban en UFW IP adressen niet blokkeren?

Relevante software en hardware die ik gebruik

Debian 9
Fail2ban v0.9.6
UFW 0.35
Nextcloud 15
Apache 2.4

Synology DSM 6.2.1

Wat ik al gevonden of geprobeerd heb

Ik heb thuis een Linux server staan waarop Debian 9 draait. De server staat achter een reverse proxy van Synology. Op de server heb ik Nextcloud geïnstalleerd en deze kan ik prima bereiken van buiten af.

Ik wil nu de Linux server wat beter beveiligen door middel van UFW en Fail2ban. Het installeren en instellen is allemaal gelukt (denk ik). Alleen als ik nu mijzelf probeer buiten te sluiten door 3 keer een foute inlogpoging te doen merk ik dat ik mijn ip adres niet wordt geblokkeerd. Echter zie ik wel in de UFW een REJECT regel staan dat het IP adres is geblokkeerd maar toch lukt het mij om nog in te loggen.

Omdat de server achter een reverse proxy zit van de Synology heb ik paar dingen aangepast in mijn virtual host. Ik heb nu dit staan in de virtualhost van Nextcloud:

SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" forwarded
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" forwarded
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined env=!forwarded
CustomLog ${APACHE_LOG_DIR}/access.log forwarded env=forwarded

Ik zie nu netjes de remote IP adressen te voor schijn komen in de apache log en niet die van mijn Synology. Om de remote IP adressen in de Nextcloud log te zien heb ik het volgende toegevoegd aan mijn nextcloud.config:

'trusted_proxies' =>
array (
0 => 'IP address van Synology',
),
'forwarded_for_headers' =>
array (
0 => 'HTTP_X_FORWARDED_FOR',
),

Ook hier zie ik nu de remote IP adres staan i.p.v. die van de nas.

Om een jail te maken voor Nextcloud heb ik paar dingen gedaan. De eerste is een conf file maken in de /etc/fail2ban/filter.d folder met de naam nextcloud.conf. Ik heb daar het volgende ingezet:

[Definition]
failregex=^{.*Login failed: '.*' \(Remote IP: '<HOST>'\).*}$
ignoreregex =

De tweede stap is /etc/fail2ban/jail.d een conf file aanmaken met de naam nextcloud.conf. Hierin staat:

[nextcloud]
backend = auto
enabled = true
port = http, https
protocol = tcp
filter = nextcloud
#Number of retrys before to ban
maxretry = 3
#time in seconds
bantime = 36000
findtime = 36000
logpath = /var/html/www/nextcloud/data/nextcloud.log

Ik heb ook nog paar zaken aangepast in jail.local. Dat is:
ignoreip = 127.0.0.1/8 local_ip/24
banaction = ufw

Om de veranderingen actief te maken heb ik gedaan:
sudo systemctl reload fail2ban
sudo fail2ban-client reload

Kreeg geen foutmeldingen terug.

Vervolgens heb ik de jail uitgeprobeerd door middel van een VPN naar de Nextcloud pagina te gaan. Daar heb ik meerdere fout inlogpogingen gedaan. In de fail2ban status zie ik het volgende:
`- Actions
|- Currently banned: 1
|- Total banned: 1
`- Banned IP list: 185.107.94.175

En in UFW zie ik staan:
Anywhere REJECT IN 185.107.94.175

Deze staat bovenaan in de firewall regel.

Ik zie in de ufw log niet het IP adres terug komen van 185.107.94.175. Wel die van mijn NAS.

Als ik bovenstaande output lees zou ik denken dat ik ben geblokkeerd maar toch kan ik nog naar de Nextcloud pagina gaan.

Ik ben er achter gekomen dat als ik de proxy er tussen haal en alles direct via de Linux server laat lopen dat het dan wel werkt. Het lijkt er op UFW de proxy ip adres hanteert en niet de remote ip.

Wat doe ik verkeerd dat het IP adres niet wordt geblokkeerd?

Alle reacties


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 22:25

Hero of Time

Moderator LNX

There is only one Legend

Je blokkeert alle externe adressen. Maar je machine heeft feitelijk maar 1 client: je Synology reverse proxy. Het is leuk dat je de externe adressen doorgeeft, maar dat is alleen maar data wat in het verkeer zit. Waar UFW op controleert, is de headers van het verkeer en daar staat dat de source je proxy is.

Ga maar eens met tcpdump aan de slag en kijk van welk adres je daadwerkelijk verkeer ontvangt. Dat zal niet je externe adres zijn.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • wirimij
  • Registratie: Februari 2016
  • Laatst online: 02-10-2023
Je hebt totaal gelijk. Stom dat ik daar niet eerder aan heb gedacht 8)7 .

Ik zie inderdaad alleen het IP adres voorbij komen van NAS. Deze kan ik natuurlijk blokkeren en kom ik er ook niet meer op maar dat is niet wat ik wil. Want als een kwaadaardig IP adres mijn Nextcloud bezoekt en hierdoor wordt het IP adres van mijn NAS geblokkeerd dan kom ik er ook niet meer in.

Wat kan ik kan doen om toch UFW werkend te krijgen? Of is het simpel niet mogelijk en moet ik de IP adressen blokkeren op NAS.

[ Voor 30% gewijzigd door wirimij op 07-04-2019 14:29 ]


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 22:25

Hero of Time

Moderator LNX

There is only one Legend

Een firewall heeft alleen effect als het de bron kan aanpakken. Daarom worden ze altijd op je internetlijn gezet. Zolang UFW niet aan je internetkant zit, zal het geen nut hebben om directe aanvallers tegen te houden.

Er zijn dus een paar opties die je hebt:
  1. Geen reverse proxy, maar direct benaderbaar op poort 443 van buitenaf;
  2. Fail2Ban instrueren de firewall op je NAS aan te roepen ipv de lokale UFW;
  3. Nextcloud en F2B op je NAS draaien;
Ik dacht net nog een optie te hebben, maar ben ik alweer kwijt. :P

Het scheelt iig dat F2B goede documentatie heeft. Denk er trouwens ook aan wat te doen bij herhalende 'overtreders'. En systemen die om de searchtime proberen te werken. Als je 4 pogingen hebt in een uur voor je eruit wordt gegooid, kan een automatische bruteforcer zomaar 3x per uur proberen en zo nooit geraakt worden door een ban. Je zal de eerste tijd dus veel de logs aan het bekijken zijn voor zulk soort situaties.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • wirimij
  • Registratie: Februari 2016
  • Laatst online: 02-10-2023
Heb geprobeerd om de proxy er tussen uit te halen door de apache webserver te laten luisteren dan een andere poort dan 80. Poort 80 wordt gebruikt door mijn NAS. Ik kan nu via de andere poort rechtstreeks met mijn Linux server communiceren. Poort 443 wijst ook naar de server. Alleen krijg nu een SSL foutmelding omdat ik die niet heb geïnstalleerd op mijn server.

Certbort werkt niet omdat poort 80 naar mijn NAS verwijst. Wellicht zou ik kunnen proberen om een htaccess rewrite te maken naar de Linux Server. Of zal dat geen zin hebben?

Nextcloud draaien op mijn NAS wil ik niet.

Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 22:25

Hero of Time

Moderator LNX

There is only one Legend

Poort 80 reverse-proxy'en naar je NAS vanaf je Nextcloud machine? Heb je ook gelijk fail2ban mogelijk, als je het loggen goed doet (hint, die kan je van je NAS ook naar je server sturen).

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • wirimij
  • Registratie: Februari 2016
  • Laatst online: 02-10-2023
Ik snap je niet helemaal wat je bedoelt. Ben niet zo heel erg thuis op dit gebied en ben nog aan het leren.

Je bedoelt dat ik in de virtualhost van Nextcloud een ProxyPass kan instellen naar poort 80 van mijn nas?

Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 22:25

Hero of Time

Moderator LNX

There is only one Legend

Je kan meerdere hostnamen op een enkel IP adres hebben. Als je nextcloud alleen via ssl aanbiedt, kan je poort 80 vrij doorsturen naar je NAS. Voor let's encrypt kan je een apart antwoord instellen zodat dat gewoon werkt.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • wirimij
  • Registratie: Februari 2016
  • Laatst online: 02-10-2023
Sorry voor de late reactie.

Helaas heb ik het niet voor elkaar gekregen zoals jij voorstelde. Heb nu de beveiliging op mijn NAS aangepast en heb extra modules geïnstalleerd voor de beveiliging. Hierdoor hen ik ongeveer hetzelfde effect als fail2ban alleen het is iets meer handmatig werk.

Bedankt voor je hulp en dat je wou mee denken Hero of Time.
Pagina: 1