source: 1.0/proxy_op_soekris.txt

Last change on this file was 7338, checked in by richardvm, 15 years ago

Moved to make a clear separation between the two proxy projects

  • Property svn:eol-style set to native
File size: 11.2 KB
Line 
1Handleiding 'Proxy bouwen voor Soekris'
2
30. Aanpak:
4
5- opzetten van een chroot jail op FreeBSD6.2 host machine
6- installeren van minibsd 6.2 in de jail
7- bouwen en maken van image voor Soekris, inclusief ssh
8- schrijven van image naar compact flash
9- installeren en configureren apache, volgens 'handleiding Dennis'
10
11
121. Wat je nodig hebt
13
14- voor de hostmachine: (oude) pc met cdrom drive en usb voor een kaartlezer voor CF-kaartjes (ingebouwd kan natuurlijk ook);
15- cf-kaartje van minimaal 64 MB, (de kleinste die nog hier en daar te koop zijn zijn 256 - 512 MB);
16voor het testen op Soekris:
17- Soekris 4501 of 4801
18- een nulmodem kabeltje, als de pc geen seriele poort heeft ook nog een usb-serieel adapter.
19- installatie-cd's van FreeBSD6.2
20- workshop cd met o.a. image van de www.ultradesic.com website en het script apache2.sh, of internet-toegang
21- de handleiding van Dennis "InstallProxy16.odt" (zie http://svn.wirelessleiden.nl/svn/projects/proxy/)
22- de file voor Apache 2.2.6. Het bestand httpd-2.2.3.tar.gz kan op deze plaats worden gedownload: http://httpd.apache.org/download.cgi. (Zie opmerking aan het eind van dit stuk over het installeren via ports.)
23
24Het is handig als de host-pc een internetverbinding heeft. Ook een tweede pc met internet toegang is handig voor het raadplegen van de documentatie en voor het testen. Met wat kunst en vliegwerk kan het waarschijnlijk ook wel zonder?
25
262. Opzetten van chroot jail
27
28- installeer FreeBSD6.2 op de host-pc gebruikmakend van de installatie-cd's. Je hebt geen X11 nodig (werken met command line gaat veel sneller); Je moet wel een 'developers' versie nemen, anders kun je niet compileren. Ports is ook handig, mits je vaste schijf groot genoeg is (10 GB).
29
30- maak een chroot jail op de host machine volgens de handleiding op www.ultradesic.com ==> guides ==> minibsd6.x, de complete url naar de guides is:
31www.ultradesic.com/index06ef-2.html?section=125
32Deze url zou ook moeten werken vanaf de 'workshop cd' zonder internetverbinding. Ook de scripts moet je zo kunnen downloaden (TEST).
33
34- chroot naar de jail (minichroot script in /root, dus 'cd /root' en 'sh minichroot.sh' ). Let op de correcte adressering van directories/files als je in de jail bent. Ga in en uit de jail ('exit') en zie het verschil. Hier zit een bron van vergissingen!
35
363. Bouw minibsd6.x in de jail,
37
38Volg de ultradesic guide. Binnen de jail komen de files voor de image te staan in de directory /usr/minibsd. Gebruik de scripts en de generic kernel. Let op de adressering van directories en files!! Check je 'working directory' met pwd als je relatief adresseert en wilt weten 'waar je bent'.
39
40Test: zoek bijvoorbeeld de drie 'local' directories op die je inmiddels op je host-pc hebt staan.
41
42N.B. Als je de workshop cd gebruikt kun je ipv (bijvoorbeeld)
43fetch http://www.ultradesic.com/pub/miniBSD_Files/copy-etc-6.sh
44de files van de cd halen, voor dit voorbeeld:
45cdrom/www.ultradesic.com/pub/miniBSD_Files/copy-etc-6.sh
46
47Let op dat in /usr/minibsd/etc/fstab /dev/ad0a staat en niet /dev/ad0s1a zoals in /etc/fstab. Anders kan de Soekris niet het root filesysteem vinden.
48
49Voor we een image gaan maken eerst een paar voorbereidingen:
50
514. Maken van een image.
52
53- Eerst zorgen dat je kunt communiceren met je Soekris. Nog geen kaartje in de Soekris. Je (tweede?) pc aansluiten op de seriele poort. Monitor programma starten (tip op FreeBSD, minicom op Linux, hyperterminal op Windoos). Zorgen dat de communicatieparameters goed staan, met name de snelheid. Standaard gebruiken we 9600 baud, maar de Soekris staat ex-fabriek vaak op een andere, hogere snelheid bijv. 19200. Als het gelukt is een leesbare uitput van de Soekris te krijgen (door de snelheid op je pc aan te passen) kun je de Soekris op de standaard 9600 zetten.
54
55Het is handig om nu, voor we beginnen met het proxy-specifieke gedeelte te checken of we inderdaad een CF-kaartje kunnen maken dat werkt in de Soekris. Hier kun je dagen mee bezig zijn ;-).
56
57Wat volgens mij werkt:
58- CF-kaartje formatteren in een camera (weet niet of dat echt nodig is, maar allerlei andere procedures, waarvan er vele te vinden zijn op internet werkten niet! Het schijnt dat een DOS partitie helpt om FreeBSD de goede geometrie te laten detecteren).
59- CF-kaartje in de Soekris, Soekris laten opstarten en de CHS gegevens noteren.
60Bereken het aantal sectoren: CxHxS. Voor een 256 MB kaartje is dat bijv. 500400.
61- Het build-image.sh script van ultradesic (om een image te maken) aanpassen met deze CxHxS-waarde (voorbeeld: SECTORS="500400").
62- Image script starten, er wordt een gezipte image gemaakt (geef een versienr mee, bijv. 0.1). Die file staat nu in je /root directory: minibsd-disk-0.1.bin/gz.
63- Deze image unzippen en dd-en naar de CF-kaart:
64dd if=minibsd-disk-0.1.bin of=/dev/da0 bs=8k
65Aannemend dat de kaartlezer op /dev/da0 zit.
66- CFkaartje in de Soekris stoppen, terminalprogramma starten op je monitor-pc, voedingsspanning erop en kijken naar de boodschappen. Het opstarten duurt wel even. In het begin is de output niet leesbaar. Je moet uitkomen bij een login:
67
68So far so good?
69
705. Toevoegen van ssh
71
72Volg de guide van ultradesic. Dit is recht toe rechtaan.
73
74Omdat de gebruiker root standaard niet mag inloggen over SSH, moet er een aanpassing gedaan worden om dit wel te mogen. Het bestand dat aangepast moet worden is sshd_config. Dit bestand kan worden gevonden in /etc/sshd_config.
75Zie verder de handleiding van Dennis (paragraaf 3.3 op pag.13).
76Toevoegen:
77###PERMIT ROOT LOGIN###
78PermitRootLogin yes
79
80Maak een nieuwe image en test of je kaartje werkt in de Soekris. Je kunt een pc via een crossover kabeltje aansluiten op de (eerste) ethernetpoort (of met 'rechte' kabeltje via een hub/switch) en kijken of je inderdaad in kunt loggen met ssh.
81
826. Apache installeren
83Hiervoor heb ik de handleiding van Dennis gevolgd (dwz tar downloaden, compileren buiten de jail), maar het zou logischer zijn om de normale methode te gebruiken via ports. (Dit nog TESTEN).
84Let op: op een Soekris heten de ethernetpoorten sis0 en sis1 (dus anders dan bij Dennis die xl0 en xl1 gebruikt).
85
86De complete apache directory kopieeren naar de /usr/jail/usr/minibsd/usr/local/apache2 directory.
87Als je nu httpd start in de jail zie je dat er een aantal libraries missen. Kopieer de volgende libraries uit /usr/local/lib naar /usr/jail/usr/minibsd/usr/local/lib:
88libapr-1.so.2
89libaprutil-1.so.2
90libdb-4.2.so.2
91libexpat.so.6
92libiconv.so.3
93
947. Apache configureren
95
96Nadat Apache geïnstalleerd is moet het configuratiebestand van Apache aangepast worden. Deze aanpassingen zorgen ervoor dat de proxy module correct functioneert. Het configuratiebestand van Apache is httpd.conf en bevindt zich in /usr/minibsd/usr/local/apache2/conf. Stap voor het configureren in de jail en volg verder de richtlijnen van Dennis, pag. 17 e.v.
97Samengevat:
98###PUBLIC ADRESS###
99Listen <IP-adres>:3128
100(let op: de regel Listen :80 moet uitgecomment worden, dus # ervoor, anders staat aan de buitenkant poort 80 open).
101
102###PROXY MODULES###
103LoadModule proxy_module modules/mod_proxy.so
104LoadModule proxy_connect_module modules/mod_proxy_connect.so
105#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
106LoadModule proxy_http_module modules/mod_proxy_http.so
107#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
108#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
109
110###SERVERNAME###
111ServerName proxy0.wleiden.net:3128
112(n.b. in de handleiding staat :80)
113
114###LOGGING WEBSITES###
115#CustomLog logs/access_log common
116
117###PROXY SERVER SETTINGS###
118ProxyRequests On
119ProxyVia On
120AllowCONNECT 443
121HostnameLookups Off
122
123Het schrijven van log files moet op een Soekris naar een RAM-disk. We hebben er twee die gemount zijn op /var en /tmp.
124De logs van apache moeten dus ook daar naar toe. Vervang daarom de logs directory door een symbolisch link naar de /var/log directory:
125in de /usr/local/minibsd/usr/local/apache2 directory:
126rmdir logs
127ln -s ../../../var/log logs
128Controleer of het gelukt is met 'ls -al'.
129
1308. Aanpassen rc.conf
131
132Blijf in de jail!
133
134We moeten de netwerkpoorten configureren en apache laten starten. Dit gebeurt via aanpassingen van de configuratiefile /etc/rc.conf.
135Ook kunnen we in rc.conf regelen dat apache gestart wordt bij boot, dmv het apache2.sh script
136
137- Het bestand apache2.sh moet naar de map /usr/minibsd/etc/rc.d worden gekopieerd. (Controle:
138'cd /usr/minibsd/etc/rc.d' en 'ls'
139
140- Het bestand /usr/minibsd/etc/rc.conf aanpassen als volgt:
141
142-------------------------------------------------------------------
143# This file now contains just the overrides from /etc/defaults/rc.conf.
144# Please make all changes to this file, not to /etc/defaults/rc.conf.
145
146# Enable network daemons for user convenience.
147# Created: Thu Nov 1 11:49:16 2007
148
149gateway_enable="YES"
150hostname="proxy4"
151
152### NIC TO INTERNET ###
153ifconfig_sis0="DHCP"
154
155### NIC TO WLEIDEN ###
156ifconfig_sis1="inet 172.17.16.66/27"
157
158### ROUTE TO WLEIDEN NETWORK ###
159static_routes="wl_network"
160route_wl_network="-net 172.16.0.0/12 172.17.16.65"
161
162
163keymap="us.iso"
164sshd_enable="YES"
165usbd_enable="YES"
166
167### APACHE WEBSERVER ###
168apache2_enable="YES"
169update_motd="NO"
170--------------------------------------------------
171
172LET OP: Dennis gebruikt een oude apache2.sh versie (2004). De nieuwe versie die in /usr/ports/www/apache22 staat kent de variabele apache22_http_accept_enable i.t.t. de oude versie. Dan kan hier de regel
173apache22_http_accept_enable="NO"
174worden toegevoegd. Het voorkomen van het laden van de betreffende kernel module kan ook in de boot loader geregeld worden:
175in de jail
176cp /usr/minibsd/boot/defaults/loader.conf naar /usr/minibsd/boot/
177cd /usr/minibsd/boot
178vi loader.conf, zoek de betreffende regel met /acc
179verander in het gedeelte 'Other modules':
180accf_http_load="YES"
181write en quit vi
182
1838. Klaar!
184
185Maak een image via build-image.sh script, schrijf een CFkaartje en installeer in de Soekris. Er moet wel een dchp server draaien op ethernetpoort1-netwerk.
186Kijk of httpd draait (ps ax | grep httpd) en herstart apache voor eventuele interessante boodschappen:
187%cd /etc/rc.d
188%sh apache2.sh restart
189Performing sanity check on apache2 configuration:
190Syntax OK
191Stopping apache2.
192Starting apache2.
193[Wed Jan 02 05:45:51 1980] [warn] (2)No such file or directory: Failed to enablr
194%cat /var/log/error_log
195[Wed Jan 02 05:38:53 1980] [notice] Apache/2.2.6 (Unix) configured -- resuming s
196[Wed Jan 02 05:45:50 1980] [notice] caught SIGTERM, shutting down
197[Wed Jan 02 05:45:51 1980] [notice] Apache/2.2.6 (Unix) configured -- resuming s
198%
199
200N.B.
201Laatste wijzigingen (zoals ip-adressen) kun je aanbrengen door via de ethernetpoort met ssh in te loggen op de Soekris.
202Let er op dat het filesysteem 'read only' gemount is. Je moet dus voor je wat kunt veranderen het fs read-write mounten dmv:
203'mount -uw -o noatime / '
204Na het wijzigen weer read only mounten door:
205'mount -ur / '
206
207Het werkt wel handiger vind ik om het kaartje uit de Soekris te halen en te mounten via de kaartlezer.
208
209Checken op openstaande poorten aan binnen en buitenkant van de proxy mbv 'nmap -A -T4' scan
210
211
2129. Suggesties voor verder werk
213
214- Apache installeren dmv ports, dan heb je een standaard configuratie (en variabelen in rc.conf zijn dan apache22 ipv apache2, zie boven).
215- Time server toevoegen (ntpd), zodat nodes tijd kunnen synchroniseren via deze proxy. Er staat een extra poortje open voor ntpd, maar dat is geen groot veiligheidsrisico.
216- Voor de hobbyisten: een gps aan de proxy seriele poort hangen (stratum 0 server configuratie).
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
Note: See TracBrowser for help on using the repository browser.