PDA

Bekijk Volledige Versie : APF Firewall



yourforum
02/01/05, 12:40
Ik probeer net APF Firewall te installeren op een FreeBSD machine, wat niet erg wilt. Ik log in via ssh onder 'root' maar kan het apf binairy bestand niet runnen.


#/usr/local/sbin/apf -s
Sorry, you must be root to use this script.

Toch ben ik :
# whoami
root


--edit
En moet je hiervoor iptables al op de machine hebben staan (dit heb ik namelijk niet), kan dit via ports? zo ja hoe?

--edit2
Of heeft iemand een beter idee qua firewall ;)

wv-
02/01/05, 13:29
apf is voor iptables, dus is voor linux, niet voor freebsd. Activeer ipf / ipfw door het in de kernel config te enablen. Er zullen ook wel tooltjes zijn die je wat rules laten kiezen op basis van ipf/ipfw

Mikey
02/01/05, 13:31
dat wordt hercompilen :)

yourforum
02/01/05, 13:32
ipf/ipfw
Geen idee wat dat is?

--edit
gevonden, ipfilter.. zie het ook op de bak staan geloof ik (/usr/src/contrib)

Ik zal wel wat tutorials zoeken ;) hier heb ik nog noooit van gehoord. Iemand nog wat tips, of subtiele schopjes de goede kant op ?

wdv
02/01/05, 13:44
Mijn subtiele hint: als ik jou was zou ik niet remote met firewalls gaan spelen als je niet precies weet hoe het werkt. Straks gooi je alles dicht en kan je fijn naar amsterdam gaan crossen ;)

yourforum
02/01/05, 13:52
Origineel geplaatst door wdv
Mijn subtiele hint: als ik jou was zou ik niet remote met firewalls gaan spelen als je niet precies weet hoe het werkt. Straks gooi je alles dicht en kan je fijn naar amsterdam gaan crossen ;)

Zolang ik de ssh niet dichtgooi kan ik de firewall altijd uitschakelen lijkt me ;)

Het is echt van belang dat ik hem nu wel er op zet, iptables kan ik wel mee overweg maar kan over ipf weinig vinden


#!/bin/sh

# IPFW - Firewall rules for CPANEL servers on FreeBSD
# (working draft)

# variables
ME="your_server_ip_here"
SSH_PORT="22"
CMD="ipfw add"

# flush rules
ipfw -f flush


# blocking some attacks

# RFC 1918 and others illegal subnet
$CMD deny ip from 0.0.0.0/8 to any
$CMD deny ip from 10.0.0.0/8 to any
$CMD deny ip from 169.254.0.0/16 to any # MS dhcp default address
$CMD deny ip from 172.16.0.0/12 to any
$CMD deny ip from 192.0.2.0/24 to any # reserved for docs
$CMD deny ip from 192.168.0.0/16 to any
$CMD deny ip from 204.152.64.0/23 to any # SUN cluster interconnect
$CMD deny ip from 240.0.0.0/4 to any

# blocking illegal routing
$CMD deny ip from any to any ipoptions rr
$CMD deny ip from any to any ipoptions ts
$CMD deny ip from any to any ipoptions lsrr
$CMD deny ip from any to any ipoptions ssrr

# blocking operating system type sniffing by Nmap
$CMD deny tcp from any to any tcpflags syn,fin
$CMD deny tcp from any to any tcpflags syn,rst

# blocking others miscellaneous attack
$CMD deny tcp from any 0 to any
$CMD deny tcp from any to any 0
$CMD deny udp from any 0 to any
$CMD deny udp from any to any 0



# egress filtering

# no comment
$CMD allow ip from $ME to any keep-state

# no comment
$CMD deny ip from $ME to any



# ingress filtering

# SSH access granted
$CMD allow tcp from any to $ME $PORTA_SSH

# TCP ports for CPANEL
$CMD allow tcp from any to $ME 20
$CMD allow tcp from any to $ME 21
$CMD allow tcp from any to $ME 25
$CMD allow tcp from any to $ME 53
$CMD allow tcp from any to $ME 80
$CMD allow tcp from any to $ME 110
$CMD allow tcp from any to $ME 143
$CMD allow tcp from any to $ME 443
$CMD allow tcp from any to $ME 465
$CMD allow tcp from any to $ME 993
$CMD allow tcp from any to $ME 995
$CMD allow tcp from any to $ME 2082
$CMD allow tcp from any to $ME 2083
$CMD allow tcp from any to $ME 2086
$CMD allow tcp from any to $ME 2087
$CMD allow tcp from any to $ME 2095
$CMD allow tcp from any to $ME 2096
$CMD allow tcp from any to $ME 3306
$CMD allow tcp from any to $ME 6666

# UDP ports for CPANEL
$CMD allow udp from any to $ME 21
$CMD allow udp from any to $ME 53
$CMD allow udp from any to $ME 465
$CMD allow udp from any to $ME 873

# ICMP types 3,5,8,11,0,30 allowed
CMD allow icmp from any to $ME icmptypes 3,5,8,11,0,30

# deny all others
$CMD deny log ip from any to $ME
Dit zou aardig zijn, lijkt me ?

wv-
02/01/05, 13:55
in /usr/src/sys/i386/conf/ ipf of ipfw enablen, world en kernel rebuilden & rebooten. Lees in het freebsd handbook (http://www.freebsd.org/handbook) hoe dat juist moet als je daar niet mee vertrouwd bent.

tip voor je niet buiten te sluiten bij bvb ipfw:

sh rulesfile && sleep 30 && ipfw -f flush

Je hebt dan 30 seconden om op ctrl+c te duwen en als je doos niet reageert zal hij 30 seconden later de rules flushen

yourforum
02/01/05, 13:57
ik geloof dat ipf/ipfw al enabled is want alle binary's staan er en reageren gewoon?

wv-
02/01/05, 14:00
hangt er vanaf ... kijk eens in de config file of je de juiste rules terug vindt. In het freebsd handbook staat er een heel deel over firewalling

yourforum
02/01/05, 14:21
# locate ipf.conf
/usr/share/examples/ipfilter/ipf.conf.permissive
/usr/share/examples/ipfilter/ipf.conf.restrictive
/usr/share/examples/ipfilter/ipf.conf.sample
/usr/src/share/examples/ipfilter/ipf.conf.permissive
/usr/src/share/examples/ipfilter/ipf.conf.restrictive
/usr/src/share/examples/ipfilter/ipf.conf.sample

wv-
02/01/05, 14:23
ja.... dat zijn gewoon voorbeelden he, zo zal je er nog verschillende vinden op internet ook. Het zijn gewoon wat standaard rules, maar ik denk als je iptables gewoon bent dat je wel snel weg zult zijn met ipf/ipfw en dat je gewoon van scratch een firewall ruleset kan schrijven.

yourforum
02/01/05, 14:26
Als ik het goed begrijp werkt het vrijwel het zelfde, een scriptfile maken en laten runnen met daarin de rules.

Add a script like the following to your /usr/local/etc/rc.d/ startup directory. The script should have an obvious name like loadipfrules.sh . The .sh extension is mandatory.

#!/bin/sh
sh /etc/ipf.rules.script

Dus ik kan gewoon dat script van hierboven, wat ik eerste plaatste, omzetten naar deze syntax en draaien.

wv-
02/01/05, 14:35
ja, maar je moet eerst kijken of je kernel wel ipfw/ipf support. Ik denk dat je ook normaal wel de modules kan laden, kijk daarvoor eens in /boot/kernel.

yourforum
02/01/05, 14:37
hoe kan ik zien of kernel dat support? in /boot zie ik geen kernel oid

In elk geval alvast bedankt voor je hulp, zijn weinig mensen hier die ook écht verstand van firewall's hebben geloof ik want ik zie via de zoekfunctie geen enkel echt beantwoorde vraag.

wdv
02/01/05, 15:12
Kijk in je kernel config file of IPF/IPFW er in staat. In een generic kernel is het iig niet enabled geloof ik.

yourforum
02/01/05, 15:14
dat snap ik maar waar vind ik die kernel config, hehe. Deze kernel is door een ander geconfigureerd en compiled, ik ga er haast wél vanuit dat hij dit aan zou zetten.

wv-
02/01/05, 15:19
Origineel geplaatst door yourforum
dat snap ik maar waar vind ik die kernel config, hehe. Deze kernel is door een ander geconfigureerd en compiled, ik ga er haast wél vanuit dat hij dit aan zou zetten.

in /usr/sys/ARCHITECTUUR/conf/, waarschijnlijk /usr/sys/i386/conf/GENERIC of zie is in dat mapje

wdv
02/01/05, 15:26
Origineel geplaatst door yourforum
dat snap ik maar waar vind ik die kernel config, hehe. Deze kernel is door een ander geconfigureerd en compiled, ik ga er haast wél vanuit dat hij dit aan zou zetten.

Uh, waarom? Als je geen firewall gebruikt is het ook niet echt nodig om hem aan te zetten (en dat zal zeker niet gebeurd zijn als het gewoon een GENERIC kernel is).

yourforum
02/01/05, 17:24
ik kan inderdaad helemaal niets over 'ipf' of 'ipfw' vinden, ook geen verwijzing naar enig firewall.. geen enkele optie die er ook maar op lijkt.

Ok, krijg net te horen van de persoon die het gedaan heeft destijds dat het er inderdaad niet in zit. Ik geef de hoop maar op dan ;)

Als iemand nog tips of trucs heeft, ik hoor het graag.

Iemand zegt tegen mij dat ik gewoon de extra opties in de file kan zetten (GENERIC) en dan een command kan uitvoeren;

cd /usr/src && mergemaster -p && make -j4 buildkernel && make installkernel
klopt dit? Ben bang dat ik zometeen iets omzeep help ;)

--edit
In /modules staat wél de ipfw.ko file..

NAME
kldload -- load a file into the kernel

SYNOPSIS
kldload [-v] file ...

DESCRIPTION
The kldload utility loads file.ko into the kernel using the kernel
linker. Note that if multiple modules are specified then an attempt will
be made to load them all, even if some fail.

The following option is available:

-v Be more verbose.


24.5.1 Enabling IPF

IPF is included in the basic FreeBSD install as a separate run time loadable module. The system will dynamically load the IPF kernel loadable module when the rc.conf statement ipfilter_enable="YES" is used. The loadable module was created with logging enabled and the default pass all options. You do not need to compile IPF into the FreeBSD kernel just to change the default to block all , you can do that by just coding a block all rule at the end of your rule set.