PDA

Bekijk Volledige Versie : apache chroot/jail ipfw or pf,... confused!



ikkuh
16/10/04, 03:47
Mensen,

Ben al een tijdje bezig met informatie te zoeken over freebsd, Ik heb me gisteren aan de installatie van mijn server gewaagt maar heb een aantal vragen met betrekking tot het instaleren van de services.


Is het verstandig/nodig om httpd chrooted/jailed te laten daaien, Doen jullie dit zelf?

Ik probeer ipfw te begrijpen maar merk dat ik de syntax van pf makkelijker vindt (en reeds begrijp)
Ik heb gemerkt dat het mogelijk is deze onder freebsd ook te gebruiken,... kan iemand mij hier meer over vertellen (google levert weinig op, en snap niet helemaal waar ik pf kan vinden)

(ik draai freebsd 4.10-RELEASE op dit moment,.. update naar stable zal nog wel eventjes duren.


Tnks

wv-
16/10/04, 11:04
ipfw is een stateful firewall en eigenlijk wel vrij simpele syntax als je het door hebt... een klein voorbeeld:

fwcmd="/sbin/ipfw"
# extern netwerk
device0="gem0"
# flushen
${fwcmd} -f flush
# wat er doorgelaten moet worden
${fwcmd} add 1000 allow tcp from any to ip van server dst-port 22 in via ${device0} setup
${fwcmd} add 1001 allow tcp from any to ip van server dst-port 80 in via ${device0} setup
# en sluiten maar
${fwcmd} add 64000 deny log tcp from any to any in via ${device0} setup

hier wordt dus een SYN tegengehouden behalve als het poort 22 of 80 is. Je moet de firewall van boven naar beneden lezen, dus volgens de nummers. Als er een match is op een van de 2 bovenste dan wordt de 3e niet meer uitgevoerd.

Het is een goed idee om apache te chrooten/jailen. Ik zou gewoon een jail/chroot maken van /usr/home, en daar ook apache, php, ftp, user files in steken.

ikkuh
16/10/04, 16:41
hey bedankt voor je reply, had al wat simpele regels ingevoert met ipfw,.. en laat ze even voor wat het is,.Kan nog even geen beslissing maken op dit gebied

Ik ben nu bezig met httpd te instaleren in een jail (dus niet chrooted), en vraag mezelf een beetje af,...
welke binaries ik moet instaleren met de source (of welke juist niet)? Wand als je jailed krijg je een virituel OS identiek aan de "echte", met dus de zelfde security issues.

de volgende packages wil ik draaiende hebben
httpd
mysql
php
sendmail -> Voor het versturen van autogenerated emails,(toch?)
ssl
mod_security
mod_bandwidth

Ik zelf zou zeggen,..... rm -rf / natuurlijk maar denk niet dat dat werkt

gebruikt een van deze applicaties commands als;
rm,mv,ls,mkdir,touch,ed?

is er een makkelijke manier (zegmaar anders dan een voor een proberen) om erachter te komen wat de minimale comands zijn die deze configuratie nodig heefd?

Tnks again

wv-
16/10/04, 16:49
applicaties gebruiken meestal geen commandos maar libraries. rm en cd zijn gewoon functies die in libc zitten die de binaries rm en cd oproepen. Om te weten welke libraries er nodig zijn door bijvoorbeeld apache, kan je gebruik maken van "ldd": ldd /usr/local/apache/bin/httpd. Die zal dan een lijstje geven van welke libraries er nodig zijn.

Ik zou beginnen met de bash libraries in je jail te gooien, zodat je zelf wat kan testen. Een goede tool is strace <commando>.

ikkuh
16/10/04, 23:15
ik heb de jail nu werken, Ben ingelogt met ssh

maar vindt een aantal dingen nogal raar;
Ik kan niet pingen.
ik kan geen nslookups maken.
ik kan geen default route zetten.

waarom niet?, dit moet toch mogelijk zijn.

ps ;
{root@insekt:~;0}#jail /var/www/ parasite 192.168.1.25 /bin/sh /etc/rc
Skipping disk checks ...
adjkerntz[236]: sysctl(put_wallclock): Operation not permitted
Doing initial network setup:.
ifconfig: ioctl (SIOCDIFADDR): permission denied
ifconfig: ioctl (SIOCDIFADDR): permission denied
xl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=1<RXCSUM>
inet 192.168.1.25 netmask 0xffffffff broadcast 192.168.1.25
ether 00:01:02:a7:35:6a
media: Ethernet 10baseT/UTP (10baseT/UTP <half-duplex>)
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
kldload: can't load ipfw: Operation not permitted
Warning: firewall kernel module failed to load
route: writing to routing socket: Operation not permitted
add net default: gateway 192.168.1.1: Operation not permitted
Additional routing options: TCP keepalive=YESsysctl: net.inet.tcp.always_keepalive: Operation not permitted
.
Routing daemons:.
Additional daemons: syslogd.
Doing additional network setup:.
Starting final network daemons:.
ELF ldconfig path: /usr/lib /usr/lib/compat
a.out ldconfig path: /usr/lib/aout /usr/lib/compat/aout
Starting standard daemons: inetd cron sshd.
Initial rc.i386 initialization:.
Additional ABI support:.
Local package initialization:.
Additional TCP options:.

Sat Oct 16 21:15:27 CEST 2004