Moin @all,
Nachdem ich jetzt schon ein paar Tage an dem Problem sitze und ich keine Ahnung habe was ich noch probieren könnte, frage ich hier mal um Rat.
Das System ist ein FreeBSD 8.1, mit mehreren jails, als Firewall war bis jetzt pf im Einsatz. Jetzt wollte ich mich mal an ipfw in Kombination mit nat versuchen. Die Firewall läuft bereits, allerdings bekomme ich keine Netzwerkverbindung aus der Jail zustande.
Das Netzwerk auf dem Hostsystem funktioniert tadellos. Die Forensuche habe ich bereits bemüht und Google spuckt hierzu auch wenig aus. Das Einzige was ich in Bezug auf ipfw in Verbindung mit Jails gefunden habe war hier:
http://emerge.badfoo.net/2010/05/entry_20.html
Bisher habe ich eine ipfw.rules Datei nach Vorbild aus dem Handbuch erstellt. Dazu habe ich dann Angaben von folgender Quelle mit eingetragen.
Es sind 3 Jails am laufen.
Unter PF hat das Setup so funktioniert. Die /etc/resolv.conf ist auf den Nameserver gesetzt, die Einträge in /etc/hosts der jails sind aktuell.
Die /etc/natd.conf ist bisher leer da ich bisher keine Weiterleitungen definiert habe.
/etc/ipfw.rules
Die ipfw.rules ist aus dem Handbuch entnommen. Die fett markierten Stellen habe ich geändert, siehe link.
ipfw show liefert folgende Ausgabe:
So wie es aussieht greifen die Regeln 6 - 9 die ich wegen der Jails eingetragen habe nicht. Es greift Regel 10 die auf Regel 10000 am Ende springt. Diese Regel ist auf allow any to any via wlan0 gesetzt.
Ich habe bisher wenig Ahnung von Firewalls, darum wollte ich mal zu einer anderen wechseln um meinen Wissensstand zu erweitern.
MfG
Nachdem ich jetzt schon ein paar Tage an dem Problem sitze und ich keine Ahnung habe was ich noch probieren könnte, frage ich hier mal um Rat.
Das System ist ein FreeBSD 8.1, mit mehreren jails, als Firewall war bis jetzt pf im Einsatz. Jetzt wollte ich mich mal an ipfw in Kombination mit nat versuchen. Die Firewall läuft bereits, allerdings bekomme ich keine Netzwerkverbindung aus der Jail zustande.
Das Netzwerk auf dem Hostsystem funktioniert tadellos. Die Forensuche habe ich bereits bemüht und Google spuckt hierzu auch wenig aus. Das Einzige was ich in Bezug auf ipfw in Verbindung mit Jails gefunden habe war hier:
http://emerge.badfoo.net/2010/05/entry_20.html
Bisher habe ich eine ipfw.rules Datei nach Vorbild aus dem Handbuch erstellt. Dazu habe ich dann Angaben von folgender Quelle mit eingetragen.
Es sind 3 Jails am laufen.
Code:
jail1 = 127.0.10.10 # Mail
jail2 = 127.0.20.10 # Mysql
jail3 = 127.0.30.10 # Apache
Unter PF hat das Setup so funktioniert. Die /etc/resolv.conf ist auf den Nameserver gesetzt, die Einträge in /etc/hosts der jails sind aktuell.
Die /etc/natd.conf ist bisher leer da ich bisher keine Weiterleitungen definiert habe.
/etc/ipfw.rules
Code:
##### ipfw ruleset for saragossa.marascan.net #####
# =================================================
# first step make clean
# =====================
#!/bin/sh
ipfw -q -f flush
# Some variables needed
# =====================
fwcmd="ipfw -q add"
# network related stuff
# =====================
ext="wlan0"
int="lo0"
router_ip="192.168.0.1"
host_ip="192.168.0.133"
jail1_ip="127.0.10.10"
jail2_ip="127.0.20.10"
jail3_ip="127.0.30.10"
##### =================================================== #####
##### Interface facing Public Internet (Outbound Section) #####
##### =================================================== #####
# Loopback Interface have no restrictions
# =======================================
$fwcmd 00020 allow all from any to any via $ext
$fwcmd 00021 allow all from any to any via $int
$fwcmd 00025 check-state
# first activation of nat on ext
# ==============================
$fwcmd 00005 divert natd all from any to any via $ext
[B]$fwcmd 00006 divert natd ip from $pardona_ip to not me out via $ext
$fwcmd 00007 divert natd ip from $boron_ip to not me out via $ext
$fwcmd 00008 divert natd ip from $nahema_ip to not me out via $ext
$fwcmd 00009 divert natd ip from $rohan_ip to not me out via $ext[/B]
$fwcmd 00010 skipto 10000 ip from any to any diverted
$fwcmd 00011 divert natd ip from not me to any in via $ext
$fwcmd 00012 skipto 10000 ip from any to any diverted
# Allow out access to the public DNS Server
# =========================================
$fwcmd 00100 allow tcp from any to 8.8.8.8 53 out via $ext setup keep-state
$fwcmd 00110 allow udp from any to 8.8.8.8 53 out via $ext keep-state
# Allow out non-secure standard www function
# ==========================================
$fwcmd 00120 allow tcp from any to any 80 out via $ext setup keep-state
# Allow out secure https over TLS SSL
# ===================================
$fwcmd 00130 allow tcp from any to any 443 out via $ext setup keep-state
# Allow getmail & mutt poll or send mails
# =======================================
$fwcmd 00140 allow tcp from any to any 25 out via $ext setup keep-state
$fwcmd 00150 allow tcp from any to any 110 out via $ext setup keep-state
# Allow out FBSD (make install & CVSUp) functions
# User root darf alles ;)
# ===============================================
$fwcmd 00160 allow tcp from me to any out via $ext setup keep-state uid root
# Allow outgoing ping
# ===================
$fwcmd 00170 allow icmp from any to any out via $ext keep-state
# Allow outgoing time
# ===================
$fwcmd 00180 allow tcp from any to any 37 out via $ext setup keep-state
# Allow out nntp news (i. e. news groups)
# =======================================
$fwcmd 00200 allow tcp from any to any 119 out via $ext setup keep-state
# Allow out whois
# ===============
$fwcmd 00210 allow tcp from any to any 43 out via $ext setup keep-state
# Deny and log everything that tries to get out.
# ==============================================
$fwcmd 00299 deny log all from any to any out via $ext
##### ================================================== #####
##### Interface facing Public Internet (Inbound Section) #####
##### ================================================== #####
# Deny all inbound traffic from non-routable reserved
# address spaces see RFC 1918 for details
# ===================================================
$fwcmd 00300 deny all from 192.168.0.0/16 to any in via $ext
$fwcmd 00301 deny all from 127.16.0.0/12 to any in via $ext
$fwcmd 00302 deny all from 10.0.0.0/8 to any in via $ext
[B]$fwcmd 00303 allow all from 127.0.0.0/8 to any in via $ext[/B]
$fwcmd 00304 deny all from 0.0.0.0/8 to any in via $ext
$fwcmd 00305 deny all from 169.254.0.0/16 to any in via $ext
$fwcmd 00306 deny all from 192.0.2.0/24 to any in via $ext
$fwcmd 00307 deny all from 204.152.64.0/23 to any in via $ext
$fwcmd 00308 deny all from 224.0.0.0/3 to any in via $ext
# Deny public pings
# =================
$fwcmd 00310 deny icmp from any to any in via $ext
# Deny ident
# ==========
$fwcmd 00315 deny tcp from any to any 113 in via $ext
# Deny all Netbios service. 137=name, 138=datagram, 139=session
# Netbios is MS/Windows sharing services.
# Block MS Windows hosts2 name server request 81
# =============================================================
$fwcmd 00320 deny tcp from any to any 137 in via $ext
$fwcmd 00321 deny tcp from any to any 138 in via $ext
$fwcmd 00322 deny tcp from any to any 139 in via $ext
$fwcmd 00323 deny tcp from any to any 81 in via $ext
# Deny any late arriving packets
# ==============================
$fwcmd 00330 deny all from any to any frag in via $ext
# Deny ACK packets that did not match the dynamic rule table
# ==========================================================
$fwcmd 00332 deny tcp from any to any established in via $ext
# Allow in standard www function because I´m an apache ;)
# =======================================================
$fwcmd 00400 allow tcp from any to me 80 in via $ext setup limit src-addr 2
# Allow incoming ssh scp and sftp from public Internet
# ====================================================
$fwcmd 00410 allow tcp from any to me 1023 in via $ext setup limit src-addr 2
# Reject & Log all incoming connections from the outside
# ======================================================
$fwcmd 00499 deny log all from any to any in via $ext
# Everything else is denied by default
# ====================
[B]$fwcmd 00999 deny log logamount 10000 ip from any to any[/B]
# All Traffic skipped to rule 10000 is allowed
# ============================================================
[B]$fwcmd 10000 allow ip from any to any via $ext[/B]
Die ipfw.rules ist aus dem Handbuch entnommen. Die fett markierten Stellen habe ich geändert, siehe link.
ipfw show liefert folgende Ausgabe:
So wie es aussieht greifen die Regeln 6 - 9 die ich wegen der Jails eingetragen habe nicht. Es greift Regel 10 die auf Regel 10000 am Ende springt. Diese Regel ist auf allow any to any via wlan0 gesetzt.
Code:
# ipfw show
00005 14139 6184689 divert 8668 ip from any to any via wlan0
00006 0 0 divert 8668 ip from 127.0.10.10 to not me out via wlan0
00007 0 0 divert 8668 ip from 127.0.40.10 to not me out via wlan0
00008 0 0 divert 8668 ip from 127.0.30.10 to not me out via wlan0
00009 0 0 divert 8668 ip from 127.0.20.10 to not me out via wlan0
00010 13819 6136070 skipto 10000 ip from any to any diverted
00011 0 0 divert 8668 ip from not me to any in via wlan0
00012 0 0 skipto 10000 ip from any to any diverted
00020 0 0 allow ip from any to any via wlan0
00021 68 5440 allow ip from any to any via lo0
00025 0 0 check-state
00100 0 0 allow tcp from any to 8.8.8.8 dst-port 53 out via wlan0 setup keep-state
00110 0 0 allow udp from any to 8.8.8.8 dst-port 53 out via wlan0 keep-state
00120 0 0 allow tcp from any to any dst-port 80 out via wlan0 setup keep-state
00130 0 0 allow tcp from any to any dst-port 443 out via wlan0 setup keep-state
00140 0 0 allow tcp from any to any dst-port 25 out via wlan0 setup keep-state
00150 0 0 allow tcp from any to any dst-port 110 out via wlan0 setup keep-state
00160 0 0 allow tcp from me to any out via wlan0 setup uid root keep-state
00170 0 0 allow icmp from any to any out via wlan0 keep-state
00180 0 0 allow tcp from any to any dst-port 37 out via wlan0 setup keep-state
00200 0 0 allow tcp from any to any dst-port 119 out via wlan0 setup keep-state
00210 0 0 allow tcp from any to any dst-port 43 out via wlan0 setup keep-state
00299 0 0 deny log ip from any to any out via wlan0
00300 0 0 deny ip from 192.168.0.0/16 to any in via wlan0
00301 0 0 deny ip from 127.16.0.0/12 to any in via wlan0
00302 0 0 deny ip from 10.0.0.0/8 to any in via wlan0
00303 0 0 allow ip from 127.0.0.0/8 to any in via wlan0
00304 0 0 deny ip from 0.0.0.0/8 to any in via wlan0
00305 0 0 deny ip from 169.254.0.0/16 to any in via wlan0
00306 0 0 deny ip from 192.0.2.0/24 to any in via wlan0
00307 0 0 deny ip from 204.152.64.0/23 to any in via wlan0
00308 0 0 deny ip from 224.0.0.0/3 to any in via wlan0
00310 0 0 deny icmp from any to any in via wlan0
00315 0 0 deny tcp from any to any dst-port 113 in via wlan0
00320 0 0 deny tcp from any to any dst-port 137 in via wlan0
00321 0 0 deny tcp from any to any dst-port 138 in via wlan0
00322 0 0 deny tcp from any to any dst-port 139 in via wlan0
00323 0 0 deny tcp from any to any dst-port 81 in via wlan0
00330 0 0 deny ip from any to any frag in via wlan0
00332 0 0 deny tcp from any to any established in via wlan0
00400 0 0 allow tcp from any to me dst-port 80 in via wlan0 setup limit src-addr 2
00410 0 0 allow tcp from any to me dst-port 1023 in via wlan0 setup limit src-addr 2
00499 0 0 deny log ip from any to any in via wlan0
00999 0 0 deny log logamount 10000 ip from any to any
10000 13819 6136070 allow ip from any to any via wlan0
65535 124 35628 deny ip from any to any
Ich habe bisher wenig Ahnung von Firewalls, darum wollte ich mal zu einer anderen wechseln um meinen Wissensstand zu erweitern.
MfG