• Skip to main content
  • Skip to primary sidebar

BSDFreaks.nl

For starters and advanced *BSD users

Tags

brand dmi enschede FreeBSD harddisk Hardware Howto's Howto's move new ports server serverruimte universiteit utwente

Howto's

Router configuratie met IPFilter

September 3, 2002 by Rob

In deze howto gaan we een router op zetten met ipfilter en ipnat‚ dit is het alternatief voor ipfirewall. Welke je kiest is afhankelijk van je keuze’s‚ echter mijn voorkeur gaat uit naar ipfilter‚ daarom ook deze howto.

Het eerste deel is gekoppierd uit
[url=http://www.bsdfreaks.nl/index.php/front_howto/53/100]deze howto[/url]

==========================
Ik ga ervanuit dat je ssh gebruikt mocht je nog met telnet werken zoek dan eerst
een howto om over te stappen naar ssh.

Firewall in de kernel bakken.

[shell]# cp /usr/local/sys/i386/conf/GENERIC /usr/local/sys/i386/conf/FIREWALL[/shell]

Vervolgens edit je de file [i]/usr/local/sys/i386/conf/FIREWALL[/i]
en zet je overal waar GENERIC staat FIREWALL neer.
vervolgens zoek je dit blok op en zorg je dat er het volgende komt te staan.
Uiteraard moet je zelf de goede cpu instellen door de rest af te #-en

[shell]machine i386
#cpu I386_CPU
#cpu I486_CPU
cpu I586_CPU
#cpu I686_CPU
ident FIREWALL
maxusers 32

options MATH_EMULATE #Support for x87 emulation
options INET #InterNETworking
options IPFILTER #enable the filter in
general
options IPFILTER_LOG #logging enabled
#options IPFILTER_DEFAULT_BLOCK #block by default
[/shell]

LET OP dat je een # zet voor de laatste regel !!(in bovestaand stuk)
Anders kun je straks niet meer bij de co-located bak!

vervolgens compileer je de kernel.

[shell]# cd /usr/src
# make clean
# make buildkernel KERNCONF=FIREWALL[/shell]

controleer nu of het bestand /etc/ipf.rules bestaat? deze mag NIET bestaan als
er een staat verwijder deze dan (zorg wel voor een backup)

[shell]# cd /usr/src/
# make installkernel KERNCONF=FIREWALL
[/shell]
==========================
We gaan hier verder met het configureren (dit gedeelte is door mij geschreven)

Edit je /etc/rc.conf en zorg dat hij er ongeveer zo uit komt te zien
[file]ifconfig_ed0=”inet EXTERNE_IP netmask NETMASK”
ifconfig_lnc0=”inet 192.168.1.1 netmask 255.255.255.0″
defaultrouter=”212.204.160.1″
ipfilter_enable=”NO”
ipnat_enable=”YES”
gateway_enable=”YES”[/file]
In dit geval is ed0 mijn netwerk kaart die aan internet hangt en lnc0 degene die mijn interne netwerk verbind met de router. Het belangrijkste is dat je een verbinding hebt met het internet‚ dus de ifconfig instellingen zullen voor iedereen anders zijn.

Nu gaan we de daadwerkelijke router instellen‚ open daarvoor /etc/ipnat.rules en zorg dat hij er zo uit komt te zien:
[file]map ed0 192.168.1.0/24 -> 0/32 proxy port ftp ftp/tcp
map ed0 192.168.1.0/24 -> 0/32 portmap tcp/udp auto
map ed0 192.168.1.0/24 -> 0/32[/file]
ed0 is dus mijn externe netwek kaart‚ mijn intere netwerk is 192.168.1 9 (je kunt hier dus ook ziets hebben als 10.0.0) De eerste regel zorgt ervoor dat ftp ook goed werkt en door “0/32” zorg je ervoor dat de juiste ip wordt gerbuikt (als je bv een dynamisch ip hebt)

Wil je nu een bepaalde poort doorsturen voeg dan de volgende regels toe aan je /etc/ipnat.rules
[file]rdr ed0 0/32 port 6800-6833 -> 192.168.1.2 port 6800 tcp/udp
rdr ed0 0/32 port 81 -> 192.168.1.2 port 80 tcp/udp[/file]
De eerste regel zorgt ervoor dat poorten 6800 t/m 6833 worden doorgestuurd naar 192.168.1.2‚ deze poorten stel je dan bv in bij ICQ en je hebt filetransfer werkend. De tweede regel stuurt poort 81 door naar 192.168.1.2 op poort 80. Je kan dit bv gebruiken om op 192.168.1.2 een webserver te laten draaien en wil dan van buiten je netwerk verbinding maken met de webserver op 192.168.1.2 dan kun je het volgende adres gebruiken http://EXTERNE_IP:81

Reboot nu de machine en kijk of het allemaal werkt
[shell]reboot[/shell]

Als dit werkt kunnen we het wat veiliger maken door een firewall toe te voegen. De werkwijze die ik normaal aan houdt is: eerst alles dicht en dan wat gaatjes in de firewall maken.
Ik gebruik de volgende firewall rules (lees ze nog wel even door en kijk of ze ook voor jouw goed zijn):
Deze zet je in: /etc/ipf.rules
[file]
#################################################################
# Outside Interface
#################################################################
# loopback pakets left unmolested
pass in quick on lo0 all
pass out quick on lo0 all
#—————————————————————-
# Allow out all TCP‚ UDP‚ and ICMP traffic & keep state on it
# so that it’s allowed back in.
#—————————————————————-
pass out quick on ed0 proto tcp from any to any keep state
pass out quick on ed0 proto udp from any to any keep state
pass out quick on ed0 proto icmp from any to any keep state
block out quick on ed0 all

#—————————————————————-
# Allow bootp traffic in from your ISP’s DHCP server only.
# Replace X.X.X.X/32 with your ISP’s DHCP server address.
#—————————————————————-
#pass in quick on ed0 proto udp from 212.120.66.200/32 to any port = 68 keep state
# block incoming/outgoing unroutable addresses on interface ex1
block in quick on ed0 from 192.168.0.0/16 to any
block in quick on ed0 from 172.16.0.0/12 to any
block in quick on ed0 from 127.0.0.0/8 to any
block in quick on ed0 from 10.0.0.0/8 to any
block in quick on ed0 from 169.254.0.0/16 to any
block in quick on ed0 from 192.0.2.0/24 to any
block in quick on ed0 from 204.152.64.0/23 to any
block in quick on ed0 from 224.0.0.0/3 to any
block in quick on ed0 from 255.255.255.255/32 to any
block in quick on ed0 from 0.0.0.0/32 to any
block out quick on ed0 from any to 192.168.0.0/16
block out quick on ed0 from any to 172.16.0.0/12
block out quick on ed0 from any to 127.0.0.0/8
block out quick on ed0 from any to 10.0.0.0/8
block out quick on ed0 from any to 169.254.0.0/16
block out quick on ed0 from any to 192.0.2.0/24
block out quick on ed0 from any to 204.152.64.0/23
block out quick on ed0 from any to 224.0.0.0/3
block out quick on ed0 from any to 255.255.255.255/32
block out quick on ed0 from any to 0.0.0.0/32

# drop any IP packets with options set in them
block in quick all with ipopts
block in quick all with frag
block in quick all with short
block return-rst in quick proto tcp all flags FUP

# This host only runs sshd‚ no other services
pass in quick on ed0 proto tcp from any to any port = 22 flags S keep state

# Apache Webserver
pass in quick proto tcp from any to any port = 80 flags S keep state

# To receive traceroute replies
pass in quick on ed0 proto icmp from any to any icmp-type timex keep state
pass in quick on ed0 proto icmp from any to any icmp-type echorep

# Outbound traffic from our own IPs is allowed
# Could be made more strict for icmp
pass out quick on ed0 proto tcp/udp from EXTERNIP/32 to any
pass out quick on ed0 proto tcp/udp from EXTERNIP/24 to any
pass out quick on ed0 proto icmp from EXTERNIP/32 to any
pass out quick on ed0 proto icmp from 192.168.1.0/24 to any

# Block and log all remaining traffic coming into the firewall
block return-rst in log quick on ed0 proto tcp from any to any
block return-icmp-as-dest(port-unr) in log quick on ed0 proto udp from any to any
block in log quick on ed0 all

#################################################################
# Inside Interface
#################################################################
#—————————————————————-
# Allow out all TCP‚ UDP‚ and ICMP traffic & keep state
#—————————————————————-
pass out quick on lnc0 proto tcp from any to any
pass out quick on lnc0 proto udp from any to any
pass out quick on lnc0 proto icmp from any to any

#—————————————————————-
# Allow in all TCP‚ UDP‚ and ICMP traffic & keep state
#—————————————————————-
pass in quick on lnc0 proto tcp from any to any
pass in quick on lnc0 proto udp from any to any
pass in quick on lnc0 proto icmp from any to any
[/file]

Let er wel op‚ als je poorten door wilt sturen en je gebruikt een firewall dat je die poorten ook open zet in je firewall en niet alleen in je ipnat configuratie.

We kunnen nu de firewall testen door het volgende commando te geven:
[shell] ipf -Fa -f /etc/ipf.rules && sleep 180 && ipf -Fa[/shell]
Je kunt nu 3 minuten testen of alles nog werkt.

Werkt dit goed dan kun je in je /etc/rc.conf de volgende waarde veranderen in:
[file]ipfilter_enable=”YES”[/file]
Bij de volgende reboot wordt alles dan automatisch geladen.

Wat handige commando’s indien je de firewall of ipnat rules wijzigt (hoef je niet te rebooten)
[shell]ipf -Fa -f /etc/ipf.rules[/shell]
Deze regel herlaad je firewall regels

[shell]ipnat -CF -f /etc/ipnat.rules[/shell]
Deze regel herlaad je ipnat rules.

Indien je hiervoor ipfirewall draaide zorg er dan voor dat die niet meer draait.

Veel su6

Filed Under: Firewall

Apache: Su-exec voor php

August 29, 2002 by Rob

Met dank aan [mail=matthijs@comkraq.net]mathijs[/mail] kunnen we deze howto su-exec php under apache beschikbaar stellen.
Zoals de titel waarschijnlijk al zegt gaan we er voor zorgen dat php ook onder de gebruiker draait die je ingesteld hebt bij je virtualhost.

[b]1. Port Upgrade[/b]

Je moet eerst zorgen dat je ports uptodate zijn.
Volg de volgende aanwijzingen om je ports te updaten.

[shell]
# cd /usr/ports
# cp /usr/share/examples/cvsup/ports-supfile ports-supfile
# vi ports-supfile
[/shell]

pas het volgende aan:

[file]
*default host=CHANGE_THIS.FreeBSD.org
[/file]

naar:
[file]
*default host=cvsup3.nl.freebsd.org
[/file]

typ nu: escape :wq om uit vi te gaan
en daarna:

[shell]
# cvsup -g -L 2 ports-supfile om je ports te updaten
[/shell]

[b]2. Apache + suexec via port[/b]

Oke eerst gaan we apache installeren:
hint(s): -pas nadat je de Makefile gedownload hebt de mingid en minuid aan
-In de Makefile staat dat php alleen vanuit /home gestart mag worden. Pas dit naar de directory aan waar jij je webpagina’s/gebruikers hebt.

[shell]
# cd /usr/ports/www/apache13/
# wget http://www.matthijs.vuurwerk.nl/howto/Makefile
# make
# cd work/apache_1.3.26
# wget http://www.localhost.nl/patches/apache-php-suexec-patch
# patch -p1 < apache-php-suexec-patch # vi src/support/suexec.c [/shell] Zoek in de file naar php Vervang nu het volgende: php3.cgi vervangen door php3 php4.cgi vervangen door php #define HAVECGIDIR vervangen door /* #define HAVECGIDIR */ [shell] # make # cd ../../ # make install [/shell] en je zou nu een apache + suexec moeten hebben [shell] cd /usr/ports/lang/php4 make install clean [/shell] [shell] cd /usr/ports/lang/php3 make install clean [/shell] de opties bij php zijn naar eigen keus [b]3. httpd.conf aanpassen.[/b] Ga naar /usr/local/etc/apache/httpd.conf Pas bij de volgende secties in je httpd.conf het volgende aan. [file]# Dynamic Shared Object (DSO) Support [/file] zet bij het volgende een # neer comment het dus. [file]#LoadModule mime_magic_module libexec/apache/mod_mime_magic.so [/file] zet bij het volgende ook een # neer comment het dus. [file]#AddModule mod_mime_magic.c [/file] Zoek nu naar het stukje: [file]# To use CGI scripts: # #AddHandler cgi-script .cgi [/file] En zet er dit bij: [file]# To use CGI scripts: # AddHandler cgi-script .cgi AddHandler cgi-script .pl AddHandler cgi-script .php AddHandler cgi-script .php3 AddHandler cgi-script .php4 AddHandler cgi-script .phtml [/file] Ga vervolgens naar sectie VirtualHost en zet het stuk wat bij Vhost voorbeeld staat erin. [b]4. Vhost voorbeeld[/b] [file]
ServerAdmin jou@email.adress
DocumentRoot /home/users/matthijs/www # zet hier je eigen path neer naar je html etc files.
ServerName www.bsdfreaks.nl # je domein
ServerAlias bsdfreaks.nl # je domein
User “#1001” # userid van $user waar de html files etc staan.
Group “#1000” # groepid
ErrorLog /home/logs/bsdfreaks-error.log # path naar de errorlog
TransferLog /home/logs/bsdfreaks-access_log #path naar de accesslog

# pas dit aan naar dezelfde directory aan DocumentRoot.
Options Indexes ExecCGI FollowSymLinks MultiViews
AllowOverride Options AuthConfig FileInfo Indexes Limit
Order allow‚deny
Allow from all


[/file]

Als je vragen en of opmerkingen hebt. Kom dan op IRC of mail [mail=matthijs@comkraq.net]mathijs[/mail]!

Filed Under: Web server

IRCD Howto

August 28, 2002 by Rob

Op IRC is het verzoek geuit voor een IRCD-Howto.
Zoals voor veel software geld zijn er heel veel verschillende IRCD versies (IRCD = Internet Relay Chat Daemon). In deze howto gaan we de IRC server installeren die we voor irc.bsdfreaks.nl gebruiken. Deze staat ook bekend als de IRCD die er gebruikt wordt op [url=http://www.ircnet.com/]IRCnet[/url].

Ga naar de directory waar je de sources wilt hebben. Deze server zit wel in de ports maar heeft de voorkeur om handmatig gebouwd te worden aangezien we een patch erover heen willen halen.

Maak een account aan (bijvoorbeeld ircd) en voer alles uit onder dit account!

We gaan nu de sources downloaden en een patch die extra functionaliteit toevoegd er overheen halen.

[shell]
# fetch ftp://ftp.funet.fi/pub/networking/services/irc/server/irc2.10.3.tgz
# fetch http://layer2.virtualave.net/hemp.diff
# tar -xzvf irc2.10.3.tgz
# patch -p0 < hemp.diff [/shell] Nu we hiermee klaar zijn gaan we de server compilen. Zet TARGET naar de locatie waar je de executables wilt plaatsen. Als je geen ipv6 support wilt: [shell] # TARGET=/home/ircd/ # ./configure --prefix=$TARGET # cd i386-unknown-freebsd4.x/ # vi config.h [/shell] Als je ipv6 support wilt: [shell] # TARGET=/home/ircd/ # ./configure --prefix=$TARGET --enable-ip6 # cd i386-unknown-freebsd4.x/ # vi config.h [/shell] Nu gaan we config.h wijzigen. Het commentaar dat hierbij geplaatst is‚ is vrij duidelijk. Mocht je hier toch moeite mee hebben plaats het dan als commentaar hierbij of contact mij via ircd@laagje.net. [shell] # make server # make install-server [/shell] Nu gaan we de ircd configureren. Voordat we dat doen moeten we even je IRC-operator password encrypten. [shell] # $TARGET/sbin/ircd-mkpasswd plaintext: joGWJ8hggyW2Y [/shell] Kopieer de output hiervan want deze moeten we in ircd.conf zetten. [shell] # cd $TARGET/etc/ # vi ircd.conf [/shell] Als het goed is is dit een leeg bestand. Daarin gaan we onderstaande neerzetten. Let op! Als je ipv6 support aan hebt gezet moeten alle : (dubbele punten) % (procenten) worden. Als je wilt weten wat het allemaal betekend moet je even in ircd.example.conf kijken in de doc directory. [file] M:[b]hostnaam[/b]:[b]ip[/b]:[b]Omschrijving[/b]:6667 A:[b]admin nick[/b]:[b]emailadress[/b]:[b]netwerknaam[/b]: P::::6666: P::::6667: P::::6668: Y:1:90:300:4:4000000 Y:100:300::1000:800000:4.2:8.4 Y:666:900::1000:8000000:10.0:30.0 Y:2:90:300:10:4000000 Y:10:90::100000:512000:10:32 Y:11:90::100:512000:0.1:0.2 Y:12:90::100:512000:20:100 Y:13:90::100:512000:5:100 Y:14:90::100:512000:10000.0:100000.0 I:*@*::::100 O:*@*:[b]wachtwoord[/b]:[b]nicknaam[/b]::666 O:*@*:qRKOzqVqBBWRg:laagje:666 K:oglada.wszystko.co.jest.w.seca.ll.pl:Bots:*: [/file] Nu kan je als je op ircd zit met /oper nicknaam wachtwoord IRC-operator worden. We gaan de IRCD starten. [shell] # $TARGET/sbin/ircd [/shell] Om even te controleren of ie het doet: [shell] # telnet localhost 6667 Trying 127.0.0.1 Connected to localhost Escape character is '^]'. NICK test user test test test test [/shell] Dat was het! Veel plezier ermee maar ik hoop natuurlijk dat jullie gewoon op irc.bsdfreaks.nl blijven komen! Als er vragen zijn jullie weten me te vinden!

Filed Under: Miscellaneous

[FreeBSD] ADSL Howto (mxstream) via SIP_Spoof

August 27, 2002 by Rob

M. Possamai schreef deze howto en wij mochten hem hier publiceren daarvoor onze dank.
Deze howto zet je verbinding op via SIP Spoof‚ hiervoor dient wel je modem getweaked te zijn.
SIP-Spoofing (Static IP Spoofing) is een manier om je adsl modem de verbinding te laten maken‚ maar door middel van wat routing truukjes er toch voor te zorgen dat je public IP wel aan je FreeBSD bak hangt.
Dus geen problemen meer met pptp verbindingen‚ maar ook geen gezeur met portforwarding omdat je toevallig een webserver hebt draaien‚ dit werkt nu gewoon allemaal direct.

[b]Het configureren van de modem.[/b]

[u]Stap 1[/u]
Wees er zeker van dat het modem een Alcatel Speedtouch Pro is (Zie [url]http://home.wanadoo.nl/vs_waart/alcatel[/url])

[u]Stap 2[/u]
Maak met een browser verbinding met het modem (10.0.0.138)

[u]Stap 3[/u]
Gooi alle ‘Bridge’‚ ‘PPP’‚ ‘CIP’‚ ‘Phonebook’ en ‘PPTP’ instellingen weg en zet DNS en DHCP uit.

[u]Stap 4[/u]
Ga naar ‘Phonebook’ en maak een nieuwe entry: Name: SIP_SPOOF VPI: 8 VCI:48 Type:ppp

[u]Stap 5[/u]
Klik de ‘Save All’ knop

[u]Stap 6[/u]
Ga weer na ‘PPP’ en klik ‘config’. Vul bij Authentication je ADSL/MxStream username en password in‚ en verwijder het vinkje bij NAT/PAT. Verder vul je als Local IP ‘1.2.3.4’ in en kies je als mode ‘Always-on’

[u]Stap 7[/u]
Klik ‘Apply’ en dan ‘Save All’

[u]Stap 8[/u]
Ga naar ‘Routing’. De eerste tabel kan je helemaal met rust laten. Scroll helemaal naar beneden naar de IP Route table.
Verwijder daar alles‚ behalve 127.0.0.1/32-any-127.0.0.1-loop en 10.0.0.0/8-any-10.0.0.138-eth0
Voeg een route toe met de volgende waarden: Destination: Source:Any Gateway:10.0.0.138

[u]Stap 9[/u]
Klik ‘Save All’

[u]Stap 10[/u]
Ga naar ‘PPP’ en zet de ‘SIP_SPOOF’ op ‘on’

[u]Stap 11[/u]
Klik ‘Apply’ en dan ‘Save All’

Het Configureren van de modem is nu klaar.
Log nu in op je FreeBSD machine en ga door met de volgende stappen:

[b]FreeBSD Instellen.[/b]

[u]Stap 12[/u]
Configureer met ifconfig je netwerkinterface naar het adsl modem met je ADSL ipnummer (bv. 213.84.82.51) en gebruik 255.255.255.255 als netmask
Voorbeeld:
[shell]ifconfig xl0 213.84.123.123/32[/shell]

[u]Stap 13[/u]
Voeg een route naar het modem toe met:
[shell]route add -net 10.0.0.138/32 -interface -cloning[/shell]

[u]Stap 14[/u]
Stel vervolgens het adsl modem in als default route:
[shell]route change default 10.0.0.138[/shell]
(of ‘add’ ipv ‘change’ als je nog geen default route had)
Als alles goed gegaan is zou je nu verbinding moeten hebben en de buitenwereld kunnen pingen.

Om dit statisch in je systeem te hebbn (dus dat het werkt bij het opstarten) typ je het volgende in /etc/rc.conf:
[file]ifconfig_=”inet netmask 255.255.255.255″
static_routes=”spt mxs”
route_spt=”-net 10.0.0.138/32 -interface -cloning”
route_mxs=”default 10.0.0.138″[/file]

Hou rekening met eventueel draaiende firewalls en NAT. Alles wat eerst op tun0 of ng0 draaide moet je nu aanpassen naar je netwerkkaart.

Deze howto is grotendeels mogelijk gemaakt door Enriko Groen.

[b]Bronnen[/b]
[url]http://www.xs4all.nl/~possamai/adsl/sip_spoof[/url]
[url]http://home.wanadoo.nl/vs_waart/alcatel[/url]
[url]http://www.jelmerbarhorst.com/mxstream.html[/url]
[url]http://jp.dhs.org/~jp/[/url]

Filed Under: Networking

[FreeBSD] ADSL Howto (mxstream) via pptp-client

August 27, 2002 by Rob

M. Possamai schreef deze howto en met zijn toestemming mogen wij hem hier publiceren‚ daarvoor onze dank.
Deze ADSL howto laat je verbinding maken via pptp‚ hiervoor hoef je [b]niet[/b] je modem te tweaken.

Allereerst dank aan Marcel de Vries die uitgevonden heeft dat het gebruik van pptp-client een irritant bufferprobleem oplost dat ik met mpd-3.7 had.

Deze howto gaat er wel vanuit dat je de standaard instellingen wel goed hebt
staan (ethernetkaart op 10.0.0.150 enzo) en dat je kunt pingen naar je modem (ping 10.0.0.138) en dat je natuurlijk wel het ethernet modem hebt en niet de usb-versie. (telnet anders naar 10.0.0.138‚ je zou een prompt moeten krijgen:

Staat je modem nog niet goed geconfigureerd kijk dan eerst op de volgende link voor de instellingen of een eventueel configuratie-script (werkt alleen onder windows). [url]http://www.mxstream.nl/support/index.htm[/url]
[shell]# telnet 10.0.0.138
Trying 10.0.0.138…
Connected to modem.adsl.xs4all.nl.
Escape character is ‘^]’.
User :
…
[/shell]

Ohja‚ vergeet niet dat als je gebruikers op je systeem denkt toe te laten dat je een password op dat modem moet zetten‚ staat zo slordig als gebruikers je modem kunnen rebooten he 🙂

[b]Gebruik pptp-client[/b]
mpd ging vanaf FreeBSD-4.5 ineens moeilijk doen bij mij en ik kreeg out-of-buffers meldingen. De oplossingen bij het mpd gedeelte werkten niet. Gebruik van pptp client loste het op. Hier de uitleg om het voor mekaar te krijgen.
Ga naar:
[shell]/usr/ports/net/pptpclient/
[/shell]
en tik daar als root:
[shell]make all install clean
[/shell]
pptp-client staat nu geinstalleerd.

[b]pptp Configuratie files[/b]
pptp-client maakt gewoon simpel gebruik van de configuratiefile van ppp. En die staat in:
[shell]/etc/ppp/
[/shell]

Download nu het volgende bestand en plaats die in die directory‚ of als je
ppp.conf ook nog een andere verbinding bevat (voor bijv. een telefoonmodem) voeg dan de text er aan toe.
[url=http://www.bsdfreaks.nl/files/pptp/ppp.conf]ppp.conf[/url]

Mocht je NAT willen gaan gebruiken (meerdere pc’s via deze verbinding laten internetten) dan moet je de # voor de onderste regel van het bestandje even weghalen.

[b]De verbinding testen[/b]

Alles is nu eigenlijk klaar dus kan je gaan testen. typ:

[shell]/usr/local/sbin/pptp 10.0.0.138 MXSTREAM &
[/shell]

Als het goed is krijg je dan wat rotzooi op je scherm en dan weer een prompt
Dan ben je nu als alles goed gegaan is ingelogged.
Probeer het even door de dns server van xs4all te pingen.
[shell]# ping 194.109.6.66
[/shell]
En dan hoor je iets te krijgen als:
[shell]64 bytes from 194.109.6.66: icmp_seq=0 ttl=252 time=16.780 ms
[/shell]

[b]/etc/resolv.conf[/b]
Vergeet niet dat je in /etc/resolv.conf de nameservers moet zetten In mijn /etc/resolv.conf staat nu dit:
[file]search xs4all.nl
nameserver 194.109.6.66
nameserver 194.109.9.99
[/file]

[b]Automatisch starten bij het booten[/b]
Uiteraard wil je niet iedere keer na het opstarten dat in hoeven typen‚ plus‚ MOCHT het down gaan zou het handig zijn als hij opnieuw zou verbinden uit zichzelf. De directory waar de opstartscripts staan is de volgende:

[shell]/usr/local/etc/rc.d/
[/shell]

Download het volgende bestand en zet die in die directory.
[url=http://www.bsdfreaks.nl/files/pptp/mxstream.sh]mxstream.sh[/url]

Daarna moeten we nog even de rechten goed zetten want het script zal alleen opstarten als het de juiste rechten heeft. typ nu het volgende:
[shell]# chmod 700 /usr/local/etc/rc.d/mxstream
[/shell]

Nu zou het na een reboot direct moeten werken. Probeer het even want dan kunnen we daarna het automatisch herstarten van de verbinding (na crash van pptp o.i.d.) gaan instellen.

[b]Automatisch herstarten als de verbinding crasht[/b]
Nu nog het automatisch herstarten van de verbinding. Als je mxstream.sh even bekene hebt dan heb je gezien dat er een start) stop) *) en een test) in staan‚ het gaat om de test.
door “mxstream.sh test” in te typen test je of de verbinding er nog is‚ en zo niet dan wordt
die opnieuw opgestart. Het kijkt naar 2 dingen en dat zijn de volgende:

[shell]/pptp.core of /root/pptp.core
/var/run/pptp/10.0.0.138
[/shell]

de eerste file ontstaat als de pptp client crasht en de locatie kan nogal verschillen. Om het te testen zet je gewoon even de modem uit en weer aan als je verbinding hebt. een pptp.core wordt dan ergens neergezet (waarschijnlijk in / of in /root). Pas dan het script aan naar de locatie waar die pptp.core komt te staan. Als je’m niet kan vinden gebruik dan het find commando:
[shell]# find / -name pptp.core -print
[/shell]

De tweede file (die /var/run/pptp/10.0.0.138) ontstaat als er verbinding is.
Als pptp client gewoon netjes afsluit als bijv. de verbinding wegvalt omdat er bij kpn iemand over een kabel struikelt‚ dan wordt die 10.0.0.138 weer weggehaald.

Het script met de ‘test’ optie kijkt dus naar die 2 dingen. Als 1 van die 2 niet klopt‚ dan wordt de verbinding opnieuw opgestart. Maar je hebt natuurlijk geen zin iedere minuut dat regeltje in te typen‚ dus dat gaan we in de crontab zetten. Typ (als root uiteraard):
[shell]# crontab -e
[/shell]

Je kan dan met via de crontab editen.
Ik ga er vanuit dat je de standaard commando’s in vi kent.
Typ het volgende regeltje:
[file]*/5 * * * * /usr/local/etc/rc.d/mxstream.sh test
[/file]

Dit zorgt er dan voor dat iedere 5 minuten het mxstream script gedraait wordt met ‘test’. Als de verbinding nu plat gaat wordt die vanzelf ook weer binnen 5 minuten opnieuw opgestart

[b]Andere Opmerkingen[/b]
Ik ben momenteel het mxstream.sh script nog een beetje aan het tweaken zodat je maar op 1 plaats hoeft aan te geven waar de pptp.core staat. dat scheelt een hoop editen.

Opmerkingen zijn welkom per email natuurlijk.
mailto:adsl-freebsd@xs4all.nl

Success!
[b]Bronnen:[/b]
[url]http://www.xs4all.nl/~possamai/adsl/pptp[/url]

Filed Under: Networking

Jailed Environment Project

August 23, 2002 by Rob

Jailed Environment Project

Ik ben bezig met een omgeving op te zetten die onder een bestaande omgeving draait. Hierbij kan je iedereen root access geven zonder dat zij de bovenliggende omgeving kunnen beschadigen. Op deze manier kan je dus zorgen dat mensen hun eigen omgeving zo kunnen configureren als zij willen. Tevens kunnen ze binnen deze jail experimenteren en als het fout gaat kan de jail vrij snel terug gezet worden. Oftewel prutsen zonder het écht
te verprusten.

Bij dit project gaat het mij er om om een zo veilig mogelijke omgeving te bouwen.

Wil je mee doen met dit project‚ je eigen ervaringen met jail delen‚ stuur dan een mailtje naar jep@laagje.net of plaats commentaar onderaan deze howto.

In deze howto gaan we een omgeving opzetten die onder een bestaande omgeving draait. Zorg dat je een aantal films klaar hebt liggen want het opzetten duurt een tijd.

We gaan een directory maken waaronder alle jails die je wilt hebben komen. Tevens zetten we een variable waar in staat waar we de jail neer willen zetten.

[shell]
# mkdir /jails/
# mkdir /jails/jailnaam
# D=/jails/jailnaam
[/shell]

Het volgende wat we gaan doen is het aan maken van de file tree die op een normale omgeving ook aanwezig is‚ nu alleen binnen de jail. Daarna gaan we de sources compilen en op de juiste plek laten neerzetten. Nu kan je gerust een filmpje gaan kijken of een taart bakken als je niet zo’n super snel systeem hebt.

[shell]
# cd /usr/src
# make hierarchy DESTDIR=$D
# make obj
# make depend
# make all
# make install DESTDIR=$D
[/shell]

Nu gaan we de default configuratie files neerzetten in /jails/jailnaam/etc/ (dit wordt dus binnen de jail /etc/).

[shell]
# cd /usr/src/etc/
# make distribution DESTDIR=$D NO_MAKEDEV=yes
[/shell]

Nu gaan we de benodige devices aanmaken binnen de jail. Omdat de jail zelf ook wat restricties heeft moeten we aangeven dat het een jail betreft. Binnen een jail mag je bijvoorbeeld niet bovenliggende schijven mounten of fdisk gebruiken.

[shell]
# cd $D/DEV/
# cp /dev/MAKEDEV .
# sh MAKEDEV jail
[/shell]

Omdat de kernel van de bovenliggende omgeving gebruikt wordt‚ moeten we in dit geval /dev/null linken aan de kernel.

[shell]
# cd $D
# ln -sf dev/null kernel
[/shell]

Voordat we de jail kunnen starten moeten we aan het bovenliggende systeem nog een aantal dingen veranderen. Bij deze situatie ga ik er vanuit dat het base systeem ip 192.168.1.1 heeft en de jail 192.168.1.2 krijgt. Nu moeten we er voor zorgen dat 192.168.1.2 dedicated door de jail gebruikt kan worden. Ik laat even zien hoe je ervoor zorgt dat syslogd‚ named‚ inetd‚ mysql‚ apache en sshd op 192.168.1.1 luisteren en niet op de andere. Zelf moet je controleren dat er verder geen andere applicaties gebruik maken van het ip dat bedoelt is voor de jail.

De volgende configuratie bestanden moet je op het base systeem editten.

/etc/rc.conf

[file]
syslogd_flags=”-ss”
inetd_flags=”-wW -a 192.168.1.1″
[/file]

/etc/ssh/sshd_config

[file]
ListenAddress 192.168.1.1
[/file]

/etc/namedb/named.conf

[file]
options
{
listen-on { 192.168.1.1; };
}
[/file]

/usr/local/etc/rc.d/mysql-server.sh

[file]
start)
if [ -x /usr/local/bin/safe_mysqld ]; then
/usr/local/bin/safe_mysqld –user=mysql –bind-address=192.168.1.1 > /dev/null & && echo -n ‘ mysql$
fi
;;
[/file]

/usr/local/etc/apache/httpd.conf

[file]
Listen 192.168.1.1:80
[/file]

Nu gaan we de jail zelf configureren.
Als je het met de hand wilt doen kan dat‚ maar we kopieren voor de zekerheid even sysinstall naar de jail.

[shell]
# cp /stand/sysinstall /jails/jailnaam/stand/
[/shell]

Nu gaan we de jail voor de eerste keer starten maar voordat we dat doen zorgen we wel dat het ip dat de jail
moet gaan gebruiken aanwezig is.

[shell]
# ifconfig alias 192.168.1.2 netmask 255.255.255.0
[/shell]

Daar gaat ie:
[shell]
# jail $D jailnaam.domein 192.168.1.2 /bin/sh
[/shell]

Je komt nu in de jail binnen als root. Nu kan je beginnen met het configureren van de jail. Doe dit via /stand/sysinstall of handmatig. Vergeet niet ssh te configureren binnen de jail en een gebruiker toe te voegen!

Als je klaar bent gaan we de jail echt in de achtergrond laten draaien:
[shell]
# exit
# jail $D jailnaam.domain 192.168.1.2 /bin/sh /etc/rc
[/shell]

Nu draait de jail in de achtergrond. Probeer eens te ssh-en naar het jail ip!

Succes! Ik wil graag horen hoe jullie bevindingen zijn met jail. Als jullie vragen/ideeën of commentaar hebben hoor ik het graag!

Groeten‚

Laagje
Ook op IRC te vinden

Filed Under: Console

[FreeBSD] streaming MP3 server

August 20, 2002 by Rob

Howto – streaming MP3 server.

IceCast is de server die ik hier zal gebruiken. Shoutcast is een andere‚ maar ik heb het idee dat die zich meer en meer focust op het windows platform‚ maar daar kan ik naast zitten.
[url]http://www.icecast.org/[/url]

IceCast is geschreven voor linux‚ en geport naar andere os-en. De verschillen met FreeBSD bevinden zich vnl. in de documentatie.
IceCast kan je op 3 manieren compileren‚ maar wij doen het volgens het beproefde recept.

[shell]# /usr/ports/audio/icecast && make install clean
[/shell]
FreeBSD compileert op deze manier met de optie –with-libwrap. zie de Makefile.

icecast installeert zich op 3 plaatsen.
1 – /usr/local/sbin/icecast
2 – /usr/local/etc/icecast/conf en /usr/local/etc/icecast/templates
3 – /usr/local/share/doc/icecast/manual.html

in die conf dir staan 4 bestanden‚ waarvan ik icecast.conf.dist kopieer
[shell]# cp /usr/local/etc/icecast/conf/icecast.conf.dist /usr/local/etc/icecast.conf
[/shell]
en open icecast.conf met je fav. tekst editor

de opties die je hier tegenkomt spreken allemaal voor zich en zijn allemaal zeer goed gedocumenteerd‚ derhalve zal ik ze niet stuk voor stuk behandelen.
enkele die een opmerking behoeven zijn:
– afhankelijk van je netwerk/internet-vebinding zal je de max. users in moeten stellen wil je de mp3`s luisteren ipv buffers vol en vooral leeg zien lopen
– server_name moet je een geldige domeinnaam geven. en als het niet anders kan je i.p.adres
– staticdir. hier geef je de dir op van je mp3`s

je kan nu IceCast opstarten met diverse opties. Ik kies ervoor om em op de achtergrond te laten draaien.

[shell]# /usr/local/sbin/icecast -b
[/shell]
wat nog rest zijn de beveiligings instellingen. je kan hiervoor de bestanden gebruiken in /usr/local/etc/icecast/conf of je maakt gebruik van tcp_wrappers in /etc/hosts.allow.

ok. nu draait IceCast‚ maar je hebt er nog niet zo veel aan. wat je nu nog nodig hebt is een encoder.
er zijn twee verschillende encoders. een die niets re-encode en alles eigenlijk doorgeeft wat ie in zijn handen krijgt en een die re-encode‚ waarbij streams naar lagere bitrates omgezet kunnen worden ten behoeve van de bandbreedte.
ik ga voor de eerste om 2 redenen.
1 – ik gebruik het op een alleen lokaal netwerk en heb met 100mbit genoeg bandbreedte.
2 – ik heb mijn geluidskaart nog niet geinstalleerd en weet niet zeker of ik die nodig heb voor re-encoden.
met een re-encoder is overigens veel meer mogelijk. je kan bv. reclame boodschappen broadcasten (“soup is good food!”) en geluid via je mic erdoor mixen (“Yo yo yo knakkerrrrrrrs”).
LiveIce heet ie. [url] http://star.arm.ac.uk/~spm/software/liveice.html[/url]

maar zoals gezegd: ik ga voor de eerste welke is shout.

[shell]# /usr/ports/audio/shout && make install clean
[/shell]
de binary komt hier. /usr/local/bin/shout
de conf bestanden komen bij IceCast in de directory te staan.
De enige die ons nu interesseert is /usr/local/etc/icecast/shout.conf.dist

[shell]# cp /usr/local/etc/icecast/shout.conf.dist /usr/local/etc/icecast/shout.conf
[/shell]
en open shout.conf met je fav. tekst editor.

alle opties zijn hier zonodig nog overzichtelijker en evengoed gedocumenteerd als icecast.conf.
ze spreken zo voor zich dat ik er niet op in kan gaan. daarbij zijn het vooral persoonlijke voorkeuren die zich hier laten gelden.
wat ik zelf dan belangrijk vind is 1 shuffle yes 2 daemon yes 1 om niet steeds diezelfde reeks aan te hoeven horen en 2 om geen console window in beslag te nemen.

rest nog de behoefte aan een playlist‚ die resideert als /usr/local/etc/icecast/shout.playlist
hierin zet je je mp3`s voorzien van absolute locatie. …eh bv
/mp3/toffemuziek/brintjespiers/crazy.mp3
/mp3/flauwedeuntjes/napalmdeath/yousuffer.mp3
etc..

nu opstarten maar
[shell]# /usr/local/bin/shout
[/shell]
als het goed is heb je nu een streaming mp3 server.
wat je als laatste nodig hebt is xmms of winamp om die stroom op te vangen en door je boxen heen te jagen.
open url: http://icecast.snodaards.nl:8000/ bv.

laatste opmerkingen:

IceCast kan je benaderen via een webinterface op poort 8000.
sowieso kan je veel doen via een httpserver.
zie de directory /usr/local/etc/icecast/templates voor meer informatie.

heb je commentaar‚ onjuistheden gezien etc. schroom niet te reageren.

Sarnix

Filed Under: Networking

[FreeBSD] Controleren welke ports upgedate moeten worden [Update]

August 16, 2002 by Rob

Hier een kleine mini-howto om een mailtje in je mailbox te krijgen welke ports niet meer up to date zijn.
Deze howto gaat er van uit dat je al eens je ports geupdated hebt via cvsup.
[b]Update:[/b] script toegevoegd die de snelste cvsup server uitzoekt.

Voor dit stukje script is het pakket portupgrade nodig‚ deze gaan we nu installeren:
[shell]cd /usr/ports/sysutils/portupgrade && make install clean[/shell]

De volgende stap is het script maken‚ zet je script op een goede plaats. Ik gebruik hier /usr/local/etc/scripts
[shell]mkdir /usr/local/etc/scripts
cd /usr/local/etc/scripts
touch update.sh
chmod +x update.sh
vi update.sh[/shell]
Voeg de volgende regels toe (druk i om in te voegen):
[shell]#!/bin/sh
/usr/local/sbin/portsclean -CD
/usr/local/bin/cvsup -L -g 2 /usr/local/etc/cvsup/ports-all
/usr/local/sbin/portsdb -uU
/usr/local/sbin/portversion -v | /usr/bin/grep needs | /usr/bin/mail -s “Ports die niet up to date zijn” jemail@adres[/shell]
Verander wel je mail adres 🙂

Korte uitleg van het script:
Regel 1: maakt alle ports clean en haalt alle tar’s weg (bespaart ruimte).
Regel 2: Haalt de nieuwste ports op.
Regel 3: Updated de index zodat het zoeken van ports goed gaat.
Regel 4: Vergelijkt de geinstalleerde port met de beschikbare en stuurt een mail naar je toe met welke niet op to date zijn.

Als laatste nog je crontab bewerken‚ zodat het automagisch gecontroleerd word.
[shell]vi /etc/crontab[/shell]
Voeg deze regel toe:
[shell]#up to date check
0 4 * * * root /usr/local/etc/scripts/update.sh[/shell]
Elke nacht om 4 uur wordt het script nu gedraaid.

[b]Update:[/b]
Er is een handige utility die kijkt welke cvsup server het snelste is installeer daarvoor:
[shell]cd /usr/ports/sysutils/fastest_cvsup/
make install clean[/shell]

Nu moeten we ervoor zorgen dat de output in de cvsup file komt daarvoor heb ik het volgende scriptje geschreven:
[file]#!/bin/sh
cvsup=` fastest_cvsup -Q -c local`
cat /usr/local/etc/cvsup/ports-all2 |sed “s/deserver/$cvsup/” > /usr/local/etc/scripts/ports-file[/file]
(niet vergeten even chmod +x cvsup.sh te doen)
Hier staat het script in /usr/local/etc/scripts/cvsup.sh

Om dit script te laten werken heb ik de orginele ports-all gekoppierd naar /usr/local/etc/cvsup/ports-all2
en de volgende regel veranderd in:
[file]*default host=deserver[/file]
Daarnaast moet je een regel toevoegen en wijzigingen in update.sh
[file]/usr/local/etc/scripts/cvsup.sh
/usr/local/bin/cvsup -g -L 2 /usr/local/etc/scripts/ports-file[/file]

Filed Under: Sysutils

[*BSD]Opzetten cacheing nameserver voor je netwerk

August 10, 2002 by Rob

In deze howto gaan we een nameserver opzetten‚ zodat alle clients in je netwerk
gebruik kunnen maken van deze snele nameserver.

Als namserver wordt gebruik gemaakt van djbdns van DJ Bernstein (o.a. maker qmail)
Deze dns server heeft tot op heden dag nog geen één security lek gehad dit in tegenstelling tot BIND die er veel heeft gehad (en waarschijnlijk nog wel heeft)

In deze howto ga ik niet behandelen hoe je deze dns server kunt gebruiken als namserver voor je eigen domein‚ dit komt binnenkort in een andere howto.

Aaname’s vooraf:
Je hebt een lokaal netwerk (ik zal 192.168.1.0 gebruiken)
Je update regelmatig je ports.
Deze howto is op FreeBSD gebasseerd maar is ook goed toepasbaar op andere *BSD’s‚ echter het installatie gedeelte is dan wat anders de configuratie blijft hetzelfde.

[b]DNS & Deamontools compileren en installeren[/b]
We beginnen met het installeren van de deamontools‚ ucspi en djbdns uit de ports.
Wil je precies weten wat de eerste twee precies doen‚ dan is een zoek opdracht met google al wel voldoende.
[shell]cd /usr/ports/sysutils/ucspi-tcp/ && make install clean
cd /usr/ports/sysutils/daemontools/ && make install clean
cd /usr/ports/net/djbdns && make install clean[/shell]

[b]Deamontools configureren[/b]
De deamontools gaan we gebruiken zodat de dns server ten alle tijde blijft draaien (indien je al deamontools had geinstalleerd dan moet je even kijken wat je hiervan al had)
[shell]mkdir /service
fetch -o /usr/local/etc/rc.d/services.sh http://www.bsdfreaks.nl/files/dns/services.txt
chmod 755 /usr/local/etc/rc.d/services.sh
ln -s /usr/local/etc/rc.d/services.sh /usr/local/sbin/services
services start[/shell]

Als het goed is hebben we nu het process svscan draaien. Controleer dit even door
[shell]ps auxw|grep svscan[/shell] uit te voeren. Svscan kijkt of er services staan in de /service dir en start deze dan op.

[b] Dns server configureren[/b]
Nu we deamontools hebben draaien kunnen we beginnen met het configureren van de caching dns server.
In dit voorbeeld gaan we ervan uit dat dns server ip: 192.168.1.1 heeft‚ als root voeren we volgende commando’s uit:
[shell]dnscache-conf bind bin /usr/local/dnscache 192.168.1.1
ln -s /usr/local/dnscache /service/dnscache[/shell]

We hebben nu dnscache draaien‚ om het hele netwerk hiervan gebruik te laten maken voeren we het volgende commando uit:
[shell]touch /usr/local/dnscache/root/ip/192.168.1[/shell]
Dit doen we omdat standaard dnscache alleen requests op de loopback interface accepteert.

Als laatste moeten we nog de resolv.conf aanpassen zodat deze pc de dnscache gaat gebruiken.
[shell]echo “nameserver 192.168.1.1” > /etc/resolv.conf[/shell]

Probeer nu een aantal site’s te resolven om de dns server uit te testen.

[b]Tweak de server voor heavy use[/b]
Indien er een heel groot netwerk gebruik moet maken van de dns server kun je de dns server nog optimaliseren voor veel requests.
Dit doe je door de volgende files aan te passen:
[shell]cd /usr/local/dnscache
ee env/CACHESIZE[/shell]
Vul hier de grootte van de cache in bv 524288000 (512 MB ram)
[shell]ee env/DATALIMIT[/shell]
Vul hier het data limiet in bv 528288000.

[b]handige links[/b]
Hier nog wat handige links‚ mocht echt vragen hebben dan kun je ook terug op het forum.
[url=http://www.lifewithdjbdns.org]Life with DJB DNS[/url]
[url=http://www.djbdns.org/]djbdns home page[/url]
[url=http://cr.yp.to/djbdns.html]DJB dns page van de schrijver[/url]

Filed Under: Networking

[OpenBSD] Securing Small Networks Part 4

June 15, 2002 by Rob

Deze howto gaat net als deel 1, 2 en 3 over het beveiligen van je netwerk met OpenBSD als router / firewall. Deze keer bespreekt de schrijver Packet Logging met PF.

[quote]Packet logging is a good network administration practice, because it lets us spot problems with communication and early signs of break-in attempts. Of course, logging packets alone won’t help; we need to learn how to analyze and manage log files generated by pf. But first things first.
[/quote]

[url=http://www.onlamp.com/pub/a/bsd/2002/06/06/ssnwopenbsd.html]Het artikel[/url]

Filed Under: OpenBSD

  • « Go to Previous Page
  • Page 1
  • Page 2
  • Page 3
  • Page 4
  • Page 5
  • Page 6
  • Interim pages omitted …
  • Page 10
  • Go to Next Page »

Primary Sidebar

Pages

  • Howto overview
  • iPhone mail setup
  • Links

Categories

  • *BSD news from the past
  • Console
  • Firewall
  • FreeBSD
  • FTP server
  • Hardware
  • Howto's
  • Installation
  • Kernel
  • Mail server
  • Miscellaneous
  • Networking
  • News
  • News imported
  • OpenBSD
  • Operating System
  • Programming
  • Security
  • Site news
  • Software
  • Sysutils
  • Web server

Recent Comments

  • admin on Qmail FreeBSD Mail Toaster Spam en virus control addon
  • admin on [FreeBSD] Het opzetten van een Vlan
  • Jap on [FreeBSD] Installing GlFtpd
  • Jap on [FreeBSD] Installing GlFtpd
  • Crashjuh on Wireless access point met OpenBSD + VPN

Copyright © 2025 · Genesis Sample Theme on Genesis Framework · WordPress · Log in