freeradius mit openssl unter debian lenny

Aufgrund von Exportbeschränkungen sind die Debian Pakete von Haus aus ohne openssl compiliert. Um allerdings 802.1x mit EAP und TTLS etc erfolgreich nutzen zu können, wird ein eigenes Package benötigt.

debian source

  • aptitude install dpkg-dev
Die folgenden NEUEN Pakete werden zusaetzlich installiert:
  binutils{a} build-essential{a} bzip2{a} cpp{a} cpp-4.3{a} dpkg-dev g++{a} g++-4.3{a} gcc{a} gcc-4.3{a} 
  libc6-dev{a} libgmp3c2{a} libgomp1{a} libmpfr1ldbl{a} libstdc++6-4.3-dev{a} linux-libc-dev{a} patch{a} 
0 Pakete aktualisiert, 17 zusaetzlich installiert, 0 werden entfernt und 0 nicht aktualisiert.
  • mkdir -p /usr/src/freeradius
  • cd /usr/src/freeradius
  • apt-get source freeradius

Zum Erstellen/Compilieren ist es hilfreich, sämtliche Pakete installiert zu haben:

  • apt-get build-dep freeradius
Die folgenden NEUEN Pakete werden installiert:
  autotools-dev comerr-dev debhelper gettext gettext-base html2text intltool-debian libdigest-hmac-perl
  libdigest-sha1-perl libfile-remove-perl libgdbm-dev libio-stringy-perl libiodbc2 libiodbc2-dev libkadm55
  libkrb5-dev libldap2-dev libltdl3-dev libmail-box-perl libmail-sendmail-perl libmime-types-perl
  libmysqlclient15-dev libobject-realize-later-perl libpam0g-dev libpcap-dev libpcap0.8-dev libperl-dev
  libpq-dev libpq5 libsasl2-dev libsensors-dev libsnmp-dev libsnmp-perl libssl-dev libsys-hostname-long-perl
  libtool libuser-identity-perl libwrap0-dev po-debconf python python-dev python-minimal python2.5-dev
  zlib1g-dev
0 aktualisiert, 44 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Die folgenden NEUEN Pakete werden zusaetzlich installiert:
  fakeroot 

build lauf

Da wir niemals mit einem privilegierten User compilieren sollten, ist der Pfad dem User, der den Compile Prozess durchführt, zuzuweisen.

  • chown -R tiri.tiri /usr/src/freeradius
  • su - tirili
  • cd /usr/src/freeradius

Anpassen der Build-Depends (control)

  • vi free*/debian/control

Anpassen der Compiler-Features (rules)

  • vi free*/debian/rules
...
     82                 --config-cache \
     83                 --with-rlm_eap_tls \
     84                 --with-rlm_eap_ttls \
     85                 --with-rlm_eap_peap \
     86                 --without-rlm_eap_tnc \
     87                 --with-rlm_otp \
     88                 --with-rlm_sql_postgresql_lib_dir=`pg_config --libdir` \
     89                 --with-rlm_sql_postgresql_include_dir=`pg_config --includedir` \
     90                 --with-openssl \
     91                 --without-rlm_eap_ikev2 \
     92                 --without-rlm_sql_oracle \
     93                 --without-rlm_sql_unixodbc \
     94                 --with-system-libtool
...
    179         for pkg in ${pkgs} ; do \
    180           if dh_shlibdeps -p $$pkg -- -O 2>/dev/null | grep -q libssl; then \
    181             echo "$$pkg links to openssl" ;\
    182             exit 0 ;\
    183           fi ;\
    184         done

Insbesondere die Debian-eigene Prüfung, ob libssl verwendet wird, muss ausgeschaltet werden (Zeile 181, nach $$pkg links to openssl). Einfach exit 1 in exit 0 ändern.

Anpassen der Version (changelog)

  • vi free*/debian/changelog
freeradius (2.0.4+tiri-7) unstable; urgency=low

  * Add openssl support 

 -- Thomas Baumann tiri GmbH <tiri-debian@tiri.li>  Sun, 03 May 2009 14:18:48 +0100

freeradius (2.0.4+dfsg-6) unstable; urgency=low
...

Compile

  • im source Verzeichnis
time dpkg-buildpackage -rfakeroot -uc -b 2>&1 | tee ../freeradius-build.log

Ergebnis

  • Ein paar Minuten später (ca. 4min auf einem AMD Opteron) haben wir unsere gewünschten Pakete
libfreeradius2_2.0.4+tiri-7_amd64.deb
freeradius-utils_2.0.4+tiri-7_amd64.deb
freeradius-postgresql_2.0.4+tiri-7_amd64.deb
freeradius-mysql_2.0.4+tiri-7_amd64.deb
freeradius-ldap_2.0.4+tiri-7_amd64.deb
freeradius-krb5_2.0.4+tiri-7_amd64.deb
freeradius-iodbc_2.0.4+tiri-7_amd64.deb
freeradius_2.0.4+tiri-7_amd64.deb
libfreeradius-dev_2.0.4+tiri-7_amd64.deb
freeradius-dbg_2.0.4+tiri-7_amd64.deb
freeradius-dialupadmin_2.0.4+tiri-7_all.deb
freeradius-common_2.0.4+tiri-7_all.deb

Changelog

  • Zusätzlich werden noch die Dateien freeradius-build.log (durch uns) und freeradius_2.0.4+tiri-7_amd64.changes geschrieben.
Format: 1.8
Date: Sun, 03 May 2009 14:18:48 +0100
Source: freeradius
Binary: freeradius freeradius-common freeradius-utils freeradius-krb5 freeradius-ldap freeradius-mysql freeradius-iodbc freeradius-postgresql libfreeradius2 libfreeradius-dev freeradius-dialupadmin freeradius-dbg
Architecture: amd64 all
Version: 2.0.4+tiri-7
Distribution: unstable
Urgency: low
Maintainer: Stephen Gran <sgran@debian.org>
Changed-By: Thomas Baumann tiri GmbH <tiri-debian@tiri.li>
Description: 
 freeradius - a high-performance and highly configurable RADIUS server
 freeradius-common - FreeRadius common files
 freeradius-dbg - a high-performance and highly configurable RADIUS server; debug s
 freeradius-dialupadmin - set of PHP scripts for administering a FreeRADIUS server
 freeradius-iodbc - iODBC module for FreeRADIUS server
 freeradius-krb5 - kerberos module for FreeRADIUS server
 freeradius-ldap - LDAP module for FreeRADIUS server
 freeradius-mysql - MySQL module for FreeRADIUS server
 freeradius-postgresql - PostgreSQL module for FreeRADIUS server
 freeradius-utils - FreeRadius client utilities
 libfreeradius-dev - FreeRADIUS shared library development files
 libfreeradius2 - FreeRADIUS shared library
Changes: 
 freeradius (2.0.4+tiri-7) unstable; urgency=low
 .
   * Add openssl support
Checksums-Sha1: 
 79d38c718a2e1d1846007388e3a37207397e8c1b 544486 freeradius_2.0.4+tiri-7_amd64.deb
 93baf514c22b6f53219705c528e330b5752f7301 76014 freeradius-utils_2.0.4+tiri-7_amd64.deb
 9287d1ffcfc9d74168fe328fabc606b18e429f16 18388 freeradius-krb5_2.0.4+tiri-7_amd64.deb
 ad39298ffd5df7f83165f6b025947e7c90c653b0 35562 freeradius-ldap_2.0.4+tiri-7_amd64.deb
 1cb4dac164b309aa7c96fcbbd9948716fa395084 25310 freeradius-mysql_2.0.4+tiri-7_amd64.deb
 c00fe60583c6730b08afc090d68ac5688497e40c 17656 freeradius-iodbc_2.0.4+tiri-7_amd64.deb
 232e2b0ec20a3a9a0c890621999da7dbb618edab 37076 freeradius-postgresql_2.0.4+tiri-7_amd64.deb
 80d18195224697ee6ade49cfe446dacb801bea6e 89940 libfreeradius2_2.0.4+tiri-7_amd64.deb
 6bb2467f5353d11896aa80799efb66afa6b7abe8 114058 libfreeradius-dev_2.0.4+tiri-7_amd64.deb
 f21424c84a5d1636ab19ce7e7114f0bc2bfdadf7 1019696 freeradius-dbg_2.0.4+tiri-7_amd64.deb
 ffe74301f2fac754ba71e4003e7d3411d65ed0c8 203828 freeradius-common_2.0.4+tiri-7_all.deb
 d24a3a5bfb8ca66f57063fca73795a009c31d853 132408 freeradius-dialupadmin_2.0.4+tiri-7_all.deb
Checksums-Sha256: 
 dd772fe95de8e9a49e8f7ba3ff03dc70f32b68767bfb3369a413401a4350950d 544486 freeradius_2.0.4+tiri-7_amd64.deb
 2957cf7560c6c8158a80fe834921ef390e5d2d7e61218e37361970ec8b793895 76014 freeradius-utils_2.0.4+tiri-7_amd64.deb
 5caa4c7347fc3270385c5aa359166c919e6aba05a206276b2d837e874c9a1831 18388 freeradius-krb5_2.0.4+tiri-7_amd64.deb
 1d73af5bd2b180f89312f0f0ac5c9b681d1bb5d61d668457893f65b56bc4f370 35562 freeradius-ldap_2.0.4+tiri-7_amd64.deb
 1d4b7cac870ae4d5b31beed6a0a4d2dd031ce198a45e4db753e6e117b8079955 25310 freeradius-mysql_2.0.4+tiri-7_amd64.deb
 c613b7482b7ae597b14cf5cbc400a0716dc22ec2592367b702bfe3907f232574 17656 freeradius-iodbc_2.0.4+tiri-7_amd64.deb
 d518c8caaf20c9c576560768750e6b960db63da629d81a304ac3b9f5825a975f 37076 freeradius-postgresql_2.0.4+tiri-7_amd64.deb
 3b00f26313965716f536d4af96e70f09400b253d107f0417c6cbfa544a8b28f4 89940 libfreeradius2_2.0.4+tiri-7_amd64.deb
 951c8599c09c64a003acdc8deb3a0813715d912e725cb3e954e2c057422ced14 114058 libfreeradius-dev_2.0.4+tiri-7_amd64.deb
 10bbc595088f120fb67f08a16c8cf0305e678cd2c330e980cc9ef20133948b1b 1019696 freeradius-dbg_2.0.4+tiri-7_amd64.deb
 a43297667acf033ca6cda218ba955c33bcba7eefa5e7e011576020218c262714 203828 freeradius-common_2.0.4+tiri-7_all.deb
 e38b33c62ae6b73bcd4a2aae72722c2bf92b28ee0655e6c4a5082258ec2d3c5a 132408 freeradius-dialupadmin_2.0.4+tiri-7_all.deb
Files: 
 3f3d536770a12f042f6e6f674d9e981e 544486 net optional freeradius_2.0.4+tiri-7_amd64.deb
 49be7893415b99b7c9a6ad251e56ceff 76014 net optional freeradius-utils_2.0.4+tiri-7_amd64.deb
 a126c8fd9358e744fe57ec587b363bbf 18388 net optional freeradius-krb5_2.0.4+tiri-7_amd64.deb
 72009c5ba01dc53a44767e51e9d5fc36 35562 net optional freeradius-ldap_2.0.4+tiri-7_amd64.deb
 c245f4dd9f55a52ec67f865ade62a1c7 25310 net optional freeradius-mysql_2.0.4+tiri-7_amd64.deb
 91c7b4f812e0502bfe0980a394c985c2 17656 net optional freeradius-iodbc_2.0.4+tiri-7_amd64.deb
 367b5f8f4372a90a7996451f10fbfd1c 37076 net optional freeradius-postgresql_2.0.4+tiri-7_amd64.deb
 e6076972d377e1a6c93ee089fb8b1c14 89940 net optional libfreeradius2_2.0.4+tiri-7_amd64.deb
 57f1efc5518036cfca0c887b97caf361 114058 libdevel optional libfreeradius-dev_2.0.4+tiri-7_amd64.deb
 00fb342ce5e15993d5ab2cebb13015b6 1019696 net extra freeradius-dbg_2.0.4+tiri-7_amd64.deb
 66495c245f73e58284bfc29ec9ef3259 203828 net optional freeradius-common_2.0.4+tiri-7_all.deb
 5ff6ad6b02db2e345019b461a3258ccb 132408 net optional freeradius-dialupadmin_2.0.4+tiri-7_all.deb

Optimierungen

  • export CFLAGS=”-mtune=core2 -O3”
  • dpkg-buildpackage ...

Hier wird das Paket optimiert für core2 Prozessoren. (Siehe auch x86/amd64 options).

Installation

rad01:/usr/src/freeradius# dpkg -i libfreeradius2_2.0.4+tiri-opteron-7_amd64.deb freeradius-utils_2.0.4+tiri-opteron-7_amd64.deb freeradius-common_2.0.4+tiri-opteron-7_all.deb freeradius_2.0.4+tiri-opteron-7_amd64.deb
(Lese Datenbank ... 26427 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereiten zum Ersetzen von libfreeradius2 2.0.4+dfsg-6 (durch libfreeradius2_2.0.4+tiri-opteron-7_amd64.deb) ...
Entpacke Ersatz fuer libfreeradius2 ...
Vorbereiten zum Ersetzen von freeradius-utils 2.0.4+dfsg-6 (durch freeradius-utils_2.0.4+tiri-opteron-7_amd64.deb) ...
Entpacke Ersatz fuer freeradius-utils ...
Vorbereiten zum Ersetzen von freeradius-common 2.0.4+dfsg-6 (durch freeradius-common_2.0.4+tiri-opteron-7_all.deb) ...
Entpacke Ersatz fuer freeradius-common ...
Vorbereiten zum Ersetzen von freeradius 2.0.4+dfsg-6 (durch freeradius_2.0.4+tiri-opteron-7_amd64.deb) ...
Entpacke Ersatz fuer freeradius ...
Richte libfreeradius2 ein (2.0.4+tiri-opteron-7) ...
Richte freeradius-common ein (2.0.4+tiri-opteron-7) ...
Verarbeite Trigger fuer man-db ...
Richte freeradius ein (2.0.4+tiri-opteron-7) ...
Stopping FreeRADIUS daemon: freeradius.
Starting FreeRADIUS daemon: freeradius.
Richte freeradius-utils ein (2.0.4+tiri-opteron-7) ...
rad01:/usr/src/freeradius# 

Um unsere Programme vor dem Überschreiben zu schützen, ist der Status auf hold zu setzen, und zwar für dpkg, apt, aptitude.

aptitude hold freeradius
echo -e "freeradius hold" | dpkg --set-selections
 
wissen/linux/debian/apt-build-dpkg-deb-freeradius-mit-openssl.txt · Zuletzt geändert: 06.09.2010 02:31
 
Recent changes RSS feed Donate Valid XHTML 1.0 Valid CSS Recent cached RSS feed cacert-signed web site: inhalt.serviert.de