Hi,
hab hier meinen server rumfliegen, nun will ich auf diesem die firewall endlich zum laufen bringen. aber irgendwie hab ich hier einen denkfehler. kann mir einer sagen wo?
der aufbau:
2 netzwerkkarten. die eine (dc0) ist mit meine switsch verbunden (nur internes netzwerk). die andere netzwerkkarte (dc3) ist mit dem kabelmodem verbunden und diese bekommt auch per dhcp eine ip adresse übermittelt.
achja, freebsd 4,8 ist intalliert.
da das original howto von grunix hier irgendwie nich passt, hab ich versucht es anzupassen:
es ist eine kombination von dem system und dem von grunix, mit eine paar modifikationen um es dynamisch zu halten.
irgendwie seht es logisch aus, und mir fällt einfach nicht auf was falsch sein könnte.
was funktioniert nicht?
z.b. sendmail beim hochfahren startet nicht, bleibt einfach hängen. ich kann die die kiste anpingen, doch keine dienste kommen zustande (intern und extern). natd geht nich, usw.
ein interner loopback ping geht auch
wo liegt das problem?
rc.conf:
firewall_enable="YES"
#firewall_type="OPEN"
firewall_script="/etc/firewall/fwrules"
firewall_logging="YES"
firewall_quiet="YES"
/etc/firewall/fwrules:
#!/bin/sh
# Setup system for firewall service.
fwcmd="/sbin/ipfw -q"
# ip="192.168.1.0" # ${ip}
# mask="255.255.255.0" # ${mask}
internal_nic="dc0" # ${internal}
# external_nic="dc3" # ${external}
dns_server="80.69.98.110" # ${dns}
############
# Flush out the list before we begin.
#
${fwcmd} -f flush
##########
# Loopback
# Only in rare cases do you want to change these rules
${fwcmd} add pass all from any to any via lo0
${fwcmd} add deny all from any to 127.0.0.0/8
${fwcmd} add deny ip from 127.0.0.0/8 to any
############
# Network Address Translation. All packets are passed to natd(8)
#
${fwcmd} add 50 divert natd all from any to any via ${natd_interface}
##########
# Firewall Ruleset
#
# Blockiert den port 6000 (X)
${fwcmd} add deny log tcp from any to any 6000 in recv ${natd_interface}
# Macht den Weg frei in internen Netzwerk
${fwcmd} add allow ip from any to any via ${internal_nic}
# Erlaubt alle Verbindungen welche von hier initiiert wurden
${fwcmd} add allow tcp from any to any out xmit ${natd_interface} setup
# Wenn die Verbindung einmal hergestellt wurde, erlaube dieser offen zu stehen
${fwcmd} add allow tcp from any to any via ${natd_interface} established
${fwcmd} add allow log tcp from any to any 80 setup # WWW
${fwcmd} add allow log tcp from any to any 22 setup # SSH
${fwcmd} add allow log tcp from any to any 25 setup # SMTP
${fwcmd} add allow log tcp from any to any 21 setup # FTP
# ${fwcmd} add allow log tcp from any to any 1022 setup
# This sends a RESET to all ident packets.
${fwcmd} add reset log tcp from any to any 113 in recv ${natd_interface}
# Erlaubt ausgehende DNS queries NUR auf die beiden angegebenen Server
${fwcmd} add allow udp from any to ${dns_server} 53 out xmit ${natd_interface}
${fwcmd} add allow tcp from any to ${dns_server} 53 out xmit ${natd_interface}
# Erlaubt die Antwort der DNS Nachfragen
${fwcmd} add allow udp from ${dns_server} 53 to any in recv ${natd_interface}
${fwcmd} add allow tcp from ${dns_server} 53 to any in recv ${natd_interface}
# Loggt ICMP Anfragen (echo und dest. unreachable) == script kiddies
${fwcmd} add allow log icmp from any to any in recv ${natd_interface} icmptype 3
${fwcmd} add allow log icmp from any to any in recv ${natd_interface} icmptype 8
# ICMP erlauben
${fwcmd} add allow icmp from any to any
# Blockiert alle Anfragen auf ports unter 1000
${fwcmd} add deny log tcp from any to any 0-1000 in recv ${natd_interface} setup
# 2049 == NFS
${fwcmd} add deny log tcp from any to any 2049 in recv ${natd_interface} setup
# Loggt netbux connections
${fwcmd} add deny log tcp from any to any 12345 in recv ${natd_interface}
${fwcmd} add deny log tcp from any to any 20034 in recv ${natd_interface}
# Alles andere verbieten
${fwcmd} add deny ip from any to any
hab hier meinen server rumfliegen, nun will ich auf diesem die firewall endlich zum laufen bringen. aber irgendwie hab ich hier einen denkfehler. kann mir einer sagen wo?
der aufbau:
2 netzwerkkarten. die eine (dc0) ist mit meine switsch verbunden (nur internes netzwerk). die andere netzwerkkarte (dc3) ist mit dem kabelmodem verbunden und diese bekommt auch per dhcp eine ip adresse übermittelt.
achja, freebsd 4,8 ist intalliert.
da das original howto von grunix hier irgendwie nich passt, hab ich versucht es anzupassen:
es ist eine kombination von dem system und dem von grunix, mit eine paar modifikationen um es dynamisch zu halten.
irgendwie seht es logisch aus, und mir fällt einfach nicht auf was falsch sein könnte.
was funktioniert nicht?
z.b. sendmail beim hochfahren startet nicht, bleibt einfach hängen. ich kann die die kiste anpingen, doch keine dienste kommen zustande (intern und extern). natd geht nich, usw.
ein interner loopback ping geht auch
wo liegt das problem?
rc.conf:
firewall_enable="YES"
#firewall_type="OPEN"
firewall_script="/etc/firewall/fwrules"
firewall_logging="YES"
firewall_quiet="YES"
/etc/firewall/fwrules:
#!/bin/sh
# Setup system for firewall service.
fwcmd="/sbin/ipfw -q"
# ip="192.168.1.0" # ${ip}
# mask="255.255.255.0" # ${mask}
internal_nic="dc0" # ${internal}
# external_nic="dc3" # ${external}
dns_server="80.69.98.110" # ${dns}
############
# Flush out the list before we begin.
#
${fwcmd} -f flush
##########
# Loopback
# Only in rare cases do you want to change these rules
${fwcmd} add pass all from any to any via lo0
${fwcmd} add deny all from any to 127.0.0.0/8
${fwcmd} add deny ip from 127.0.0.0/8 to any
############
# Network Address Translation. All packets are passed to natd(8)
#
${fwcmd} add 50 divert natd all from any to any via ${natd_interface}
##########
# Firewall Ruleset
#
# Blockiert den port 6000 (X)
${fwcmd} add deny log tcp from any to any 6000 in recv ${natd_interface}
# Macht den Weg frei in internen Netzwerk
${fwcmd} add allow ip from any to any via ${internal_nic}
# Erlaubt alle Verbindungen welche von hier initiiert wurden
${fwcmd} add allow tcp from any to any out xmit ${natd_interface} setup
# Wenn die Verbindung einmal hergestellt wurde, erlaube dieser offen zu stehen
${fwcmd} add allow tcp from any to any via ${natd_interface} established
${fwcmd} add allow log tcp from any to any 80 setup # WWW
${fwcmd} add allow log tcp from any to any 22 setup # SSH
${fwcmd} add allow log tcp from any to any 25 setup # SMTP
${fwcmd} add allow log tcp from any to any 21 setup # FTP
# ${fwcmd} add allow log tcp from any to any 1022 setup
# This sends a RESET to all ident packets.
${fwcmd} add reset log tcp from any to any 113 in recv ${natd_interface}
# Erlaubt ausgehende DNS queries NUR auf die beiden angegebenen Server
${fwcmd} add allow udp from any to ${dns_server} 53 out xmit ${natd_interface}
${fwcmd} add allow tcp from any to ${dns_server} 53 out xmit ${natd_interface}
# Erlaubt die Antwort der DNS Nachfragen
${fwcmd} add allow udp from ${dns_server} 53 to any in recv ${natd_interface}
${fwcmd} add allow tcp from ${dns_server} 53 to any in recv ${natd_interface}
# Loggt ICMP Anfragen (echo und dest. unreachable) == script kiddies
${fwcmd} add allow log icmp from any to any in recv ${natd_interface} icmptype 3
${fwcmd} add allow log icmp from any to any in recv ${natd_interface} icmptype 8
# ICMP erlauben
${fwcmd} add allow icmp from any to any
# Blockiert alle Anfragen auf ports unter 1000
${fwcmd} add deny log tcp from any to any 0-1000 in recv ${natd_interface} setup
# 2049 == NFS
${fwcmd} add deny log tcp from any to any 2049 in recv ${natd_interface} setup
# Loggt netbux connections
${fwcmd} add deny log tcp from any to any 12345 in recv ${natd_interface}
${fwcmd} add deny log tcp from any to any 20034 in recv ${natd_interface}
# Alles andere verbieten
${fwcmd} add deny ip from any to any