Toon posts:

FreeS/WAN installatie mislukt, make errors.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Situatie:
Ik heb hier een systeem staan, een Pentium I 200 met hierop Linux geinstalleerd.
Hier even wat eigenschappen van die bak die overigens als router fungeerd voor een ADSL verbinding (XS4all):

Intel Pentium I 200 Mhz
64 MD EDO RAM
1.2 GB Harddisk
Kernel 2.4.19 (van www.kernel.org)
gcc version 2.95.2
freeswan-1.99

Probleem:
Ik wilde van dit systeem een FreeS/WAN server maken waarmee een paar bekenden op mijn netwerk konden inloggen. Dus na wat uitzoek actie's en ook een topic hier op GoT heb ik eens wat documentatie gelezen. Nadat ik dit gedaan had heb ik alle benodigde sources gedownload. Namelijk, de volgende:

freeswan-1.99.tar.gz
x509patch-0.9.18-freeswan-1.99.tar.gz
gmp-4.1.2.tar.gz

Na eerst alles uitgepakt te hebben heb ik eerst de x509 patch over de FreeS/WAN source gegooid wat allemaal vlekkeloos verliep.
Toen kwam ik bij het commando
code:
1
make programs

wat foutmeldingen tegen. Na wat ge-google bleek het dat gmp geinstalleerd moest zijn wat niet zo was. Dus ik de nieuwste versie van gmp gedownload en geinstalleerd.
Ook heb ik een symbolic link gemaakt naar mijn kernel source aangezien die daar een aantal files vandaan wilde halen.
Nu kreeg ik alleen bij het opnieuw bij het geven van het commando
code:
1
make programs

een error waar ik nog steeds de oplossing niet voor weet.
Ik zal hieronder de error weergeven:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
uml_netjig.c:799: warning: assignment makes pointer from integer without a cast
uml_netjig.c:815: warning: assignment makes pointer from integer without a cast
cc -g -Wall -I/usr/include/pcap  -DARP_PROCESS -o uml_netjig uml_netjig.o  -lpca
p
uml_netjig.o: In function `main':
/root/freeswan-1.99/testing/utils/uml_netjig/uml_netjig.c:744: the use of `tempn
am' is dangerous, better use `mkstemp'
/root/freeswan-1.99/testing/utils/uml_netjig/uml_netjig.c:799: undefined referen
ce to `pcap_open_dead'
/root/freeswan-1.99/testing/utils/uml_netjig/uml_netjig.c:815: undefined referen
ce to `pcap_open_dead'
collect2: ld returned 1 exit status
make[3]: *** [uml_netjig] Error 1
make[3]: Leaving directory `/root/freeswan-1.99/testing/utils/uml_netjig'
make[3]: Entering directory `/root/freeswan-1.99/testing/utils/ikeping'
cc  -I../../../lib -I../../..  -DDEBUG  -g -Wall -W -Wmissing-prototypes -Wpoint
er-arith -Wbad-function-cast -Wcast-qual -Wmissing-declarations -Wwrite-strings
 -Wstrict-prototypes  -Werror -c ikeping.c
cc -o ikeping  ikeping.o ../../../lib/libfreeswan.a
make[3]: Leaving directory `/root/freeswan-1.99/testing/utils/ikeping'
make[2]: Leaving directory `/root/freeswan-1.99/testing/utils'
make[1]: Leaving directory `/root/freeswan-1.99/testing'


Nu heb ik uiteraard weer op google gezocht en hier op GoT. Hier was wel wat over te vinden. Zoals het volgende hier te vinden: http://lists.freeswan.org...2002-November/015909.html

Echter staat tcpdump geinstalleerd. En die maakt ook gebruik van libpcap volgens bovenstaande link.

Heeft iemand hier enig idee hoe ik dit oplos?
Er staat bij die link wel iets maar daar begrijp ik niet echt veel van.

  • Wilke
  • Registratie: December 2000
  • Laatst online: 20:19
Misschien een andere/oudere/nieuwere versie van libpcap nodig :?

Welke heb je, en staat daarover niks in de README van FreeS/WAN (ik weet het niet hoor, heb het nooit geprobeerd zelf).

Verwijderd

Topicstarter
Ik heb LIBPCAP 0.4
En zie nu dat ook nmap die gebruikt.
Met nmap en tcpdump heb ik overigens nooit problemen gehad.
In de README van zowel de x509 patch en freeS/WAN zelf is niets te vinden hierover. Trouwens, niets over eventuele foutmeldingen.

  • _JGC_
  • Registratie: Juli 2000
  • Nu online
GCC-2.95.2? welke distro heb jij? Suse 6.2 ofzo?

Verwijderd

Topicstarter
Het systeem is gebaseerd op een installatie van SuSE 7.1 .
Het versienummer van gcc lijkt mij niet echt relevant. (Toch?)
Aangezien het fout gaat met pcap of LD.

Wat ik overigens zojuist gevonden heb is het volgende:
In de Makefile van uml_netjig("$freeS/WANDIR"/testing/utils/uml_netjig/Makefile) heb ik even lopen zoeken. Hier staat het volgende stukje source.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# FreeS/WAN subdir makefile
# Copyright (C) 1998-2001  Henry Spencer.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 2 of the License, or (at your
# option) any later version.  See <http://www.fsf.org/copyleft/gpl.txt>.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# for more details.
#
# RCSID $Id: Makefile,v 1.8 2002/04/02 04:08:22 mcr Exp $

TOPDIR=../../..
OBJS = uml_netjig.o
OPTIONS=-DARP_PROCESS

# To use the netdissect option, you have to have a very recent (pre-alpha) copy
# of tcpdump source code from www.tcpdump.org. For now, leave it unset.
#NETDISSECTH=-DNETDISSECT -I/home/mcr/src/tcpdump
#NETDISSECTLIB=-L/home/mcr/src/linux/i386/tcpdump -lnetdissect

# To read/write files, you need to have libpcap (-devel if on RH) installed.
PCAPH=-I/usr/include/pcap
PCAPLIB=-lpcap
#PCAPH=-I/home/mcr/src/libpcap
#PCAPLIB=-L/home/mcr/src/linux/i386/libpcap -lpcap

# to decode ESP packets, you need crypto, which you can get from ssl.
OPENSSL=-L/usr/local/ssl/lib -lcrypto

CFLAGS = -g -Wall ${PCAPH} ${NETDISSECTH} ${OPTIONS}
LIBS = ${NETDISSECTLIB} ${PCAPLIB}


include $(TOPDIR)/Makefile.inc

def:
        @echo "Please read doc/intro.html or INSTALL before running make"
        @false

programs: uml_netjig

checkprograms: uml_netjig

uml_netjig : $(OBJS)
        $(CC) $(CFLAGS) -o uml_netjig $(OBJS) $(LIBS)

clean :
        rm -f uml_netjig $(OBJS) *~

install :
        install -d $(BINDIR)
        install -s uml_netjig $(BINDIR)

check:

In de regel PCAPH=-I/usr/include/pcap gaat het mis denk ik. Aangezien deze niet bestaat.
code:
1
cat: /usr/include/pcap: No such file or directory

Wel staat er in diezelfde directory wel een file met naam pcap.h (staan overigens bijna alleen maar header files in).

Echter weet ik niet of het probleem oplost als ik dat verander in die source. Ofdat ik dalijk daar die actie mijn systeem corrupt maak.
Gaarne hierover advies. :)

Verwijderd

de -I parameter specificeerd een directory waar de compiler naar headerfiles zoekt, bovenstaande statements is/zijn goed lijkt me zo.
Ik zou het zelf ook zoeken in libpcap. Probeer eens de allerlaatste libpcap (0.7.1 at the time of this writing) te installen en dan nog een freeswan recompile
edit:

Je systeem gaat echt niet stuk hoor, als je die -I parameter zou aanpassen. Het enige is dat je dan een "cannot find pcap.h" foutmelding gaat krijgen bij de eerste sourcefile die pcap.h probeert te includen. Verder, dit probleem doet zich voor bij het linken (objectfiles -> binary) en niet bij het compilen (sourcefiles -> objectfiles) dus is dit sowiso irrelevant voor dit probleem...

[ Voor 45% gewijzigd door Verwijderd op 08-01-2003 18:12 ]


  • Wilke
  • Registratie: December 2000
  • Laatst online: 20:19
Verwijderd schreef op 08 January 2003 @ 17:28:
Het systeem is gebaseerd op een installatie van SuSE 7.1 .
Het versienummer van gcc lijkt mij niet echt relevant. (Toch?)
Aangezien het fout gaat met pcap of LD.
Niet per se, maar ook niet per se niet, als je begrijpt wat ik bedoel.

Stel dat het GCC 3.2 was geweest dan zou dat er evt. best mee te maken kunnen hebben :)

Het enige wat ik hierover kan zeggen is: je gcc versie is vrij antiek. Dat zal het probleem niet zijn, maar de oude versie van pcap (0.4 zeg je?) zou goed de oorzaak van het probleem kunnen zijn.

Probeer eens de nieuwste te installeren, inderdaad.
PCAPH=-I/usr/include/pcap
PCAPLIB=-lpcap

[...]
Wel staat er in die directory een file met naam pcap.h (staan overigens bijna alleen maar header files in).

Echter weet ik niet of het probleem oplost als ik dat verander in die source. Ofdat ik dalijk daar die actie mijn systeem corrupt maak.
Gaarne hierover advies. :)


Nee, dat moet je gewoon zo laten staan als het nu is. Daar zit niet het probleem. Overigens is de kans klein dat iets wijzigen in een Makefile je hele systeem zal verkloten (maar het helpt wel als je weet wat je doet :) ).

Er horen alleen header-files (.h-files) in die directory, dus dat klopt allemaal precies.

Ik zet in op een te oude versie van libpcap, de interface zal intussen wel veranderd zijn ofzo.

Verwijderd

Topicstarter
Naar aanleiding deze reactie's zal ik na het eten maar eens de nieuwste versie ophalen van pcap. (honger :))

R3b00t: Ik doelde ook niet op het weghalen van de -I flag maar het wijzigen van het path van PCAPH=-I/usr/include/pcap naar PCAPH=-I/usr/include/pcap.h .

Wilke: Jij post dat er in die directory alleen header files staan in die map.
Hoe kan het dan ooit dat het path verwijst naar PCAPH=-I/usr/include/pcap ? Dan lijkt er mij toch iets niet helemaal correct. Echter zou ik ook niet weten wat ik zou doen als ik dat verander :D

Gelukkig zijn we het allemaal wel ongeveer eens wat het probleem is :)
--------
ps. Is het niet zo dat na een update van pcap nmap en/of tcpdump niet meer zo zullen werken?

Verwijderd

Verwijderd schreef op 08 January 2003 @ 18:31:
...
R3b00t: Ik doelde ook niet op het weghalen van de -I flag maar het wijzigen van het path van PCAPH=-I/usr/include/pcap naar PCAPH=-I/usr/include/pcap.h .
...
Dat zeg ik, die staat goed zo. :+ Pak er maar eens een van die souce (.c) files erbij en zoek een paar #include statements op. Hierin zie je of geen, of relatieve paden staan voor de included headerfiles (.h) (bv: #include <pcap.h>). Tijdens compile time geef je met de -I parameter de absolute paden naar de "include" directories die de preprocessor nodig heeft om uit te vinden waar de headerfiles staan. Op het moment dat jij -I/usr/include/pcap/pcap.h gebruikt, resolved de preprocessor dat als "/usr/include/pcap/pcap.hpcap.h" ipv "/usr/include/pcap/pcap.h" als je -I/usr/include/pcap gebruikt.
...
ps. Is het niet zo dat na een update van pcap nmap en/of tcpdump niet meer zo zullen werken?
Met een beetje geluk wel. Al is het sterk aan te raden om zowel de laatste nmap als tcpdump te downloaden en deze ook te recompilen.

offtopic:
Als je die bak als vpn router wilt gaan gebruiken is het ook sterk aan te raden om eens een complete update te doen van je complete systeem. Al zou ik persoonlijk voor een stripped down hardened reinstall gaan :P

[ Voor 11% gewijzigd door Verwijderd op 08-01-2003 22:09 ]


  • Wilke
  • Registratie: December 2000
  • Laatst online: 20:19
Verwijderd schreef op 08 January 2003 @ 18:31:
Wilke: Jij post dat er in die directory alleen header files staan in die map.
Hoe kan het dan ooit dat het path verwijst naar PCAPH=-I/usr/include/pcap ?


Dat is juist correct - die -I optie verwijst naar de directory, en in de sources van het programma worden dan de header-files (bv. pcap.h) gebruikt.

Met die -I parameter rechtstreeks verwijzen naar de header-file zelf, dat zou juist niet werken.

Verwijderd

Topicstarter
Na het einde van een drukke tijd met de studie ben ik weer verder gegaan......
Nu het maken eindelijk gelukt is. Dit door het installeren van een nieuwe libpcap (0.7.1) ben ik tot het volgende probleem gekomen. Echter dit wijst naar een duidelijke richting.

De melding die ik krijg is de volgende:
code:
1
2
3
4
5
6
7
8
9
10
11
 # ipsec setup restart
ipsec_setup: Stopping FreeS/WAN IPsec...
ipsec_setup: stop ordered, but IPsec does not appear to be running!
ipsec_setup: doing cleanup anyway...
ipsec_setup: /usr/local/lib/ipsec/eroute: Trouble openning PF_KEY family socket with error: KLIPS not loaded or enabled.
ipsec_setup: /usr/local/lib/ipsec/spi: Trouble openning PF_KEY family socket with error: KLIPS not loaded or enabled.
ipsec_setup: Starting FreeS/WAN IPsec 1.99...
ipsec_setup: insmod: ipsec: no module by that name found
ipsec_setup: modprobe: Can't locate module ipsec
ipsec_setup: kernel appears to lack KLIPS
ipsec_setup: OOPS, should have aborted!  Broken shell!


Nu lijkt mij het probleem dat de kernel niet ipsec ondersteuning heeft. Dit heb ik echter tijdens de kernel configuratie wel aangevinkt. Ook alle Netfilter optie's e.d.
Ik heb trouwens het meegecompileerd in de kernel en dus niet als module.

Heeft iemand enig idee hoe ik kan testen waar het probleem zit?

Of is dit makkelijk op te maken door het config bestand van de kernel te analyseren?
Zo ja, welke optie's moeten er dan aanstaan?

Verwijderd

Topicstarter
^^kick^^ :)

Iemand nog tips? Ben nog steeds niet verder......

Verwijderd

Topicstarter
Moet ik een nieuw topic aanmaken of weet niemand wat te doen? Want het is nu natuurlijk wel een ander vraagstuk.

Ik kan wel blijven kicken :), maar dat schiet natuurlijk ook niet op......

  • wouter93
  • Registratie: September 2001
  • Niet online
kijk met locate ipsec.o of deze voorkomt in /lib/modules/-kernelversie-/kernel/net/ipsec/ipsec.o.
Pagina: 1