Difference between revisions of "Fail2ban/nextcloud"

From SETV Springfield Technical Wiki
Jump to: navigation, search
(Created page with "This quick guide is designed to show you how to enable Fail2Ban on the NextCloud jail. == Set Up IPFW == FreeNAS' jail uses IPFW as the basic firewall. Add this line in: <co...")
 
m
Line 14: Line 14:
 
<code>/usr/local/etc/ipfw.rules</code>
 
<code>/usr/local/etc/ipfw.rules</code>
  
edit the ipfw rules file /usr/local/etc/ipfw.rules
+
=== Edit IPFW Rules ===
 +
Edit rules file <code>/usr/local/etc/ipfw.rules</code>
  
 
Code:
 
Code:
Line 20: Line 21:
 
  IPF="ipfw -q add"
 
  IPF="ipfw -q add"
 
  ipfw -q -f flush
 
  ipfw -q -f flush
  #loopback
+
  <nowiki>#</nowiki>loopback
 
  $IPF 10 allow all from any to any via lo0
 
  $IPF 10 allow all from any to any via lo0
 
  $IPF 20 deny all from any to 127.0.0.0/8
 
  $IPF 20 deny all from any to 127.0.0.0/8
 
  $IPF 30 deny all from 127.0.0.0/8 to any
 
  $IPF 30 deny all from 127.0.0.0/8 to any
 
  $IPF 40 deny tcp from any to any frag
 
  $IPF 40 deny tcp from any to any frag
  # statefull
+
  <nowiki>#</nowiki> statefull
 
  $IPF 50 check-state
 
  $IPF 50 check-state
 
  $IPF 60 allow tcp from any to any established
 
  $IPF 60 allow tcp from any to any established
 
  $IPF 70 allow all from any to any out keep-state
 
  $IPF 70 allow all from any to any out keep-state
 
  $IPF 80 allow icmp from any to any
 
  $IPF 80 allow icmp from any to any
  #firewall rule used by Fail2Ban to block traffic
+
  <nowiki>#</nowiki>firewall rule used by Fail2Ban to block traffic
 
  $IPF 90 deny all from 'table(1)' to any
 
  $IPF 90 deny all from 'table(1)' to any
  # open port DNS (53)
+
  <nowiki>#</nowiki> open port DNS (53)
  # http (80), https (443) etc
+
  <nowiki>#</nowiki> http (80), https (443) etc
 
  $IPF 150 allow tcp from any to any 443 in
 
  $IPF 150 allow tcp from any to any 443 in
 
  $IPF 160 allow tcp from any to any 443 out
 
  $IPF 160 allow tcp from any to any 443 out
Line 44: Line 45:
 
  $IPF 220 allow tcp from any to any 22 in
 
  $IPF 220 allow tcp from any to any 22 in
 
  $IPF 230 allow tcp from any to any 22 out
 
  $IPF 230 allow tcp from any to any 22 out
  # deny and log everything
+
  <nowiki>#</nowiki> deny and log everything
 
  $IPF 500 deny log all from any to any
 
  $IPF 500 deny log all from any to any
 +
 +
== Set Up Fail2Ban ==
 +
 +
=== Install Fail2Ban ===
 +
<code>pkg install security/py-fail2ban</code>
 +
 +
=== Configuration ===
 +
cd /usr/local/etc/fail2ban
 +
cp fail2ban.conf fail2ban.local
 +
cp jail.conf jail.local
 +
 +
Edit jail.local
 +
 +
Insert at very bottom:
 +
 +
enabled  = true
 +
filter  = nextcloud
 +
action  = ipfw-nextcloud
 +
logpath  = /usr/local/www/apache24/data/nextcloud/data/nextcloud.log
 +
maxretry = 3
 +
port = 80,443
 +
protocol = tcp

Revision as of 17:44, 26 September 2016

This quick guide is designed to show you how to enable Fail2Ban on the NextCloud jail.

Set Up IPFW

FreeNAS' jail uses IPFW as the basic firewall.

Add this line in: /etc/rc.conf

Code:

firewall_enable="YES"    
firewall_script="/usr/local/etc/ipfw.rules"
fail2ban_enable="YES"  

MAKE the ipfw.rules file:

/usr/local/etc/ipfw.rules

Edit IPFW Rules

Edit rules file /usr/local/etc/ipfw.rules

Code:

IPF="ipfw -q add"
ipfw -q -f flush
#loopback
$IPF 10 allow all from any to any via lo0
$IPF 20 deny all from any to 127.0.0.0/8
$IPF 30 deny all from 127.0.0.0/8 to any
$IPF 40 deny tcp from any to any frag
# statefull
$IPF 50 check-state
$IPF 60 allow tcp from any to any established
$IPF 70 allow all from any to any out keep-state
$IPF 80 allow icmp from any to any
#firewall rule used by Fail2Ban to block traffic
$IPF 90 deny all from 'table(1)' to any
# open port DNS (53)
# http (80), https (443) etc
$IPF 150 allow tcp from any to any 443 in
$IPF 160 allow tcp from any to any 443 out
$IPF 170 allow udp from any to any 53 in
$IPF 175 allow tcp from any to any 53 in
$IPF 180 allow udp from any to any 53 out
$IPF 185 allow tcp from any to any 53 out
$IPF 200 allow tcp from any to any 80 in
$IPF 210 allow tcp from any to any 80 out
$IPF 220 allow tcp from any to any 22 in
$IPF 230 allow tcp from any to any 22 out
# deny and log everything
$IPF 500 deny log all from any to any

Set Up Fail2Ban

Install Fail2Ban

pkg install security/py-fail2ban

Configuration

cd /usr/local/etc/fail2ban 
cp fail2ban.conf fail2ban.local 
cp jail.conf jail.local

Edit jail.local

Insert at very bottom:

enabled  = true 
filter  = nextcloud 
action  = ipfw-nextcloud 
logpath  = /usr/local/www/apache24/data/nextcloud/data/nextcloud.log 
maxretry = 3 
port = 80,443 
protocol = tcp