StrongSwan IPsec VPN

Exported from Notepad++
Strongswan 4.2.9 hat Probleme mit Kernel 2.6.7 wenn IPv6 nicht compiliert wurde. Ab Strongswan 4.3 und Kernel 2.6.30 gibt es keine IPv6 Probleme. Ab Kernel 2.6.33 ist das SHA2 voll integriert. Das heisst in der ipsec.conf muss die option ike=aes256-sha512-modp4096 und aes256-sha512-modp4096 hinzugefuegt werden. das funktioniert aber nur wenn der gegenueberliegende Host auch über den kernel 2.6.33 verefuegt oder hoeher. Als erstes muss sichergestellt werden, das die beiden zu verbindenden VPN-Netze, in zwei unterschiedlichen Subnetzen liegen, damit die IP(IPsec)-Packet korrekt geroutet werden koennen. Am besten aber mit der selben Subnetmaske (255.255.0.0). Bsp. 172.16.0.0/16 <==VPN-Tunnel===> 172.17.0.0/16. Als weiteres muss das IP-Forwarding, auf beiden Seiten aktiviert sein. Bei SuSE ist das im Yast unter der Netzwerkkarte einzustellen. Dann schauen ob im Kernel “Default Linux Capabilities (SECURITY_CAPABILITIES)” aktiv ist. Nun strongSwan downloaden, entpacken, kompilieren und installieren. StrongSwan funktioniert noch nicht nativ mit LibreSSL (Stand 20170602), schon gar nicht mit der Option “–enable-all” ######################################################################################################################### Pre Req: MP (GNU Multi Precision library gmp): “wget ftp://ftp.gmplib.org/pub/gmp-4.2.4.tar.gz” “tar -xvzf gmp-4.2.4.tar.gz” “cd gmp-4.2.4” “./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib64 –includedir=/usr/include” Debian “./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib –includedir=/usr/include –enable-assert –enable-cxx –enable-fft” “make” “make install” neo_cgi (ClearSilver library) “wget http://www.clearsilver.net/downloads/clearsilver-0.10.5.tar.gz” “tar -xvzf clearsilver-0.10.5.tar.gz” “cd clearsilver-0.10.5 SUSE 32 BIT “./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib –includedir=/usr/include –enable-gettext –with-apache=/usr/local/apache –disable-csharp” SUSE 64 BIT “./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib64 –includedir=/usr/include –enable-gettext –with-apache=/usr/local/apache –disable-csharp –disable-ruby –disable-python” “make” “make install” mkdir /usr/include/cs cp -rnv cs/*.h /usr/include/cs/ cp -rnv libs/libneo_* /usr/lib64/ (fcgi) FastCGI library: Projekt Offline. Nach alternativen umschauen. “wget http://www.fastcgi.com/dist/fcgi.tar.gz” “tar -xvzf fcgi-2.4.0.tar.gz” “cd fcgi-2.4.0.tar” “vi /temp/fcgi-2.4.1-SNAP-0311112127/libfcgi/fcgio.cpp” -> hinzufügen von “#include <stdio.h>” SUSE 32 BIT “./configure” oder bei Debian “./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib –includedir=/usr/include” SUSE 64 BIT “./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib64 –includedir=/usr/include” “make” “make install” Fur Raspberry Pi: “wget ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.13.tar.bz2” “tar -xf libgpg-error-1.13.tar.bz2″” “cd libgpg-error-1.13” “./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib –includedir=/usr/include” “make” “make install” Fur Raspberry Pi: libgcrypt “wget ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.6.1.tar.gz” “tar -xzf libgcrypt-1.6.1.tar.gz” “cd libgcrypt-1.6.1” “./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib –includedir=/usr/include” “make” “make install” gnutls, siehe Doku MySQL modifikation: Siehe MaraiaDB Doku “cp -frv /usr/local/mysql-5.0.67-linux-i686/lib/libmysqlclient_r* /usr/lib/” “cp -frv /usr/local/mysql-5.0.67-linux-i686/include/* /usr/include/” “ln -s /usr/local/mysql/include/ /usr/include/mysql” “cp -frv include/* /usr/include” “cp -frv libmariadb/libmariadb/libmariadb* /usr/lib64/” “cp -frv ./scripts/mysql_config /usr/bin/” ncurses siehe NFtables Doku “./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib64 –includedir=/usr/include –with-shared –with-cxx-shared” readline siehe NFtables Doku “curl -O ftp://ftp.cwru.edu/pub/bash/readline-7.0.tar.gz” “./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib64 –includedir=/usr/include –with-curses” lua5: via Yast (lua-devel) zypper in lua51 lua51-devel curl -R -O http://www.lua.org/ftp/lua-5.3.4.tar.gz tar zxf lua-5.3.4.tar.gz cd lua-5.3.4 make linux lua -v uci: Siehe weiter unten unBound DNS: “wget https://www.unbound.net/downloads/unbound-1.6.2.tar.gz” “tar -xzf unbound-1.6.2.tar.gz” “cd unbound-1.6.2” “./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib64 –includedir=/usr/include” “make” “make install” “unbound -h” libldns “wget http://http.debian.net/debian/pool/main/l/ldns/ldns_1.7.0.orig.tar.gz” “tar -xzf ldns_1.7.0.orig.tar.gz” “cd ldns_1.7.0” “./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib64 –includedir=/usr/include –disable-dane-verify” “make” “make install” TrouSerS (version 0.3.13 verwenden).: “lynx http://trousers.sourceforge.net/” “wget –no-check-certificate https://downloads.sourceforge.net/project/trousers/trousers/0.3.14/trousers-0.3.14.tar.gz?r=https%3A%2F%2Fsourceforge.net%2Fprojects%2Ftrousers%2Ffiles%2Ftrousers%2F0.3.14%2F&ts=1495792702&use_mirror=netix” “mkdir trousers” “mv trousers-0.3.14.tar.gz trousers” “cd trousers” “tar -xzf trousers-0.3.14.tar.gz” “cd trousers-0.3.14” “./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib64 –includedir=/usr/include –disable-dane-verify” “make” “make install” “cp -frv src/trspi/.libs/* /usr/lib64/” “cp -frv src/trspi/crypto/openssl/.libs/* /usr/lib64/” autoconf-archive: “wget http://ftpmirror.gnu.org/autoconf-archive/autoconf-archive-2017.03.21.tar.xz” “tar -xf autoconf-archive-2017.03.21.tar.xz ” “cd autoconf-archive-2017.03.21/” “./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib64 –includedir=/usr/include” “make” “make install” json: “lynx https://github.com/json-c/json-c/wiki “wget –no-check-certificate https://s3.amazonaws.com/json-c_releases/releases/json-c-0.12.1.tar.gz” “./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib64 –includedir=/usr/include” tar -xzf json-c-0.12.1.tar.gz cd json-c-0.12.1 make make install cp -frv *.h /usr/include/ FreeType, siehe Doku GTK+ siehe Doku PCRE v2 Libs, siehe Doku VTE: valac: “wget http://ftp.gnome.org/pub/gnome/sources/vala/0.36/vala-0.36.3.tar.xz” “tar -xf vala-0.36.3.tar.xz” “cd vala-0.36.3” “./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib64 –includedir=/usr/include” “make” “make install” “wget http://ftp.gnome.org/pub/gnome/sources/vte/0.49/vte-0.49.1.tar.xz” “tar -xf vte-0.49.1.tar.xz” “cd vte-0.49.1” ./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib64 –includedir=/usr/include make make install ldconfig ln -s /usr/lib64/pkgconfig/vte-2.91.pc /usr/lib64/pkgconfig/vte.pc libbsd wget –no-check-certificate https://libbsd.freedesktop.org/releases/libbsd-0.8.3.tar.xz tar -xf libbsd-0.8.3.tar.xz cd libbsd-0.8.3/ ./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib64 –includedir=/usr/include make make install libcutil (Android) aus einem Debian via “apt-get install adroid-libcutils-dev” installierne und die Libs und Heades kopieren cp -rnv /usr/lib/android/libcutils* /usr/lib64 cp -rnv /usr/include/android/cutils /usr/include cp -rnv /usr/include/android/android /usr/include ldconfig” libpcsclite wget –no-check-certificate https://alioth.debian.org/frs/download.php/file/4216/pcsc-lite-1.8.21.tar.bz2 tar -xf pcsc-lite-1.8.21.tar.bz2 cd pcsc-lite-1.8.21/ ./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib64 –includedir=/usr/include make make install libunwind wget http://download.savannah.nongnu.org/releases/libunwind/libunwind-1.2.tar.gz tar -xzf libunwind-1.2.tar.gz cd libunwind-1.2/ ./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib64 –includedir=/usr/include make make instal xmlada git clone https://github.com/AdaCore/xmlada nur donwloaden mehr nicht gnat-gpl-2016-x86_64-linux-bin lynx http://libre.adacore.com/download/configurations die Files nach gprbuild dementsprechend kopieren cp -rnv bin/* /usr/bin/ cp -frv ./lib/gcc/x86_64-pc-linux-gnu/4.9.4/rts-native/adainclude/* /root/temp/upgrade/gprbuild/gprbuild-master/ cp -frv ./libexec/gcc/x86_64-pc-linux-gnu/4.9.4/gnat1 /usr/bin/ gprbuild git clone https://github.com/AdaCore/gprbuild cd gprbuild ./bootstrap.sh –with-xmlada=../xmlada –prefix=./bootstrap cp -frv gprbuild gprconfig gprclean gprinstall gprname gprls gprlib gprbind /usr/bin/ lcov: “wget http://downloads.sourceforge.net/ltp/lcov-1.13.tar.gz” tar -xzf lcov-1.13.tar.gz cd lcov-1.13 make make install ACHTUNG !!!! . Snapshot ziehen oder Backup erstellen. Nicht zwangsweise notwendig für das untere “./configure” mingw-mingw-org-wsl: git clone https://git.code.sf.net/p/mingw/mingw-org-wsl mingw-mingw-org-wsl cd mingw-mingw-org-wsl cp -rnv include/* /usr/include/ Nicht zwangsweise notwendig für das untere “./configure” wine: wget http://dl.winehq.org/wine/source/2.0/wine-2.0.1.tar.xz tar -xf wine-2.0.1.tar.xz cd wine-2.0.1 cp -rnv include/* /usr/include VirtualBox: wget download.virtualbox.org/virtualbox/5.1.22/VirtualBox-5.1.22.tar.bz2 cp -rnv src/VBox/Devices/Graphics/shaderlib/wine/include/* /usr/include/ cp -rnv src/VBox/Devices/EFI/Firmware/StdLib/Include/* /usr/include/ pppd development headers: wget https://www.samba.org//ftp/ppp/ppp-2.4.7.tar.gz tar -xzf ppp-2.4.7.tar.gz cd ppp-2.4.7 ./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib64 –includedir=/usr/include make make install jansson: wget http://www.digip.org/jansson/releases/jansson-2.12.tar.gz tar -xzf jansson-2.12.tar.gz cd jansson-2.12 ./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib64 –includedir=/usr/include make make install libndp: wget http://libndp.org/files/libndp-1.7.tar.gz tar -xzf libndp-1.7.tar.gz cd libndp-1.7 ./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib64 –includedir=/usr/include make make install gcc (liblto_plugin) siehe GCC update Doku ninja: git clone git://github.com/ninja-build/ninja.git cd ninja ./bootstrap.py cp -frv ninja /usr/bin/ zypper in glibc-devel-static libxkbcommon git clone https://github.com/xkbcommon/libxkbcommon.git meson setup build ninja -C build cd build ninja install libudev (systemd): wget –no-check-certificate https://github.com/systemd/systemd/archive/v243.tar.gz tar -xvzf v243.tar.gz cd systemd-243/ ./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib64 –includedir=/usr/include –buildtype=release make cd build ninja install zypper in glibc-devel-static-32bit glibc-devel-32bit gcc-c++-32bit gcc-32bit hg-git ggf. zypper in -f gcc gcc-32bit export CFLAGS=’-m32′ export CXXFLAGS=’-m32′ export LDFLAGS=’-m32′ nspr: hg clone https://hg.mozilla.org/projects/nspr cd nspr ./configure –prefix=/usr make make install cp -frv ./dist/lib/* /usr/lib64/ zlib: wget http://zlib.net/zlib-1.2.11.tar.gz tar -xzf zlib-1.2.11.tar.gz cd zlib-1.2.11 ./configure –prefix=/usr/ make make install ln -s /usr/lib64/libz.so.1.2.11 /usr/lib64/libzlib.so ld -lzlib –verbose google Test: git clone https://github.com/google/googletest cd googletest cmake -DBUILD_SHARED_LIBS=ON . make make install cp -frv libs/* /usr/lib64/ NSS (Mozilla): Info: http://www.linuxfromscratch.org/blfs/view/svn/postlfs/nss.html wget https://ftp.mozilla.org/pub/security/nss/releases/NSS_3_46_RTM/src/nss-3.46.tar.gz tar -xzf nss-3.46.tar.gz cd tar -xzf nss-3.46/nss ./build make make install cd ../dist && install -v -m755 Linux*/lib/*.so /usr/lib64 && install -v -m644 Linux*/lib/{*.chk,libcrmf.a} /usr/lib64 && install -v -m755 -d /usr/include/nss && cp -v -RL {public,private}/nss/* /usr/include/nss && chmod -v 644 /usr/include/nss/* && install -v -m755 Linux*/bin/{certutil,nss-config,pk12util} /usr/bin && install -v -m644 Linux*/lib/pkgconfig/nss.pc /usr/lib/pkgconfig NetworkManager (libnm) wget https://download.gnome.org/sources/NetworkManager/1.20/NetworkManager-1.20.2.tar.xz tar -xf NetworkManager-1.20.2.tar.xz cd NetworkManager-1.20.2 ./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib64 –includedir=/usr/include –with-crypto=gnutls make make install zypper in -t pattern devel_python3 cp -frv /usr/include/python3.6m/* /usr/include/ libxml2 git clone https://gitlab.gnome.org/GNOME/libxml2/ cd libxml2 ./autogen.sh ./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib64 –includedir=/usr/include –prefix=/usr make make install cp -frv include/* /usr/include/ cp -frv .libs/* /usr/lib64/ cp -frv ./libxml-2.0.pc /usr/lib/pkgconfig/ brotli git clone https://github.com/google/brotli cd brotli mkdir out cd out ../configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib64 –includedir=/usr/include make make install libpsl git clone https://github.com/rockdaboot/libpsl cd libpsl autogen.sh ./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib64 –includedir=/usr/include make make install libffi: wget ftp://sourceware.org/pub/libffi/libffi-3.2.1.tar.gz tar -xzf libffi-3.2.1.tar.gz cd libffi-3.2.1 ./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib64 –includedir=/usr/include make make install ln -s /usr/lib64/libffi.so.6.0.4 /usr/lib64/libffi.so.4 meson: wget –no-check-certificate https://github.com/mesonbuild/meson/archive/0.52.0.tar.gz tar -xzf 0.52.0.tar.gz cd meson-0.52.0 python3 setup.py install –record files.txt libsoup: wget https://ftp.gnome.org/pub/GNOME/sources/libsoup/2.68/libsoup-2.68.2.tar.xz tar -xzf libsoup-2.68.2.tar.xz cd libsoup-2.68.2 mkdir build cd build meson –prefix=/usr -Dvapi=enabled -Dgssapi=disabled .. ninja vi ../tests/test-utils.c Zeile 45 löschen #Fehlermeldung ../tests/test-utils.c:245:16: error: implicit declaration of function ‘g_canonicalize_filename’; did you mean ‘g_build_filename’? [-Werror=implicit-function-declaration] ninja ninja install zypper in systemd-devel cmocka wget https://cmocka.org/files/1.1/cmocka-1.1.5.tar.xz tar -xf cmocka-1.1.5.tar.xz cd cmocka-1.1.5 mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Debug .. make make install tpm3 rss (Funktionier nur mit openSSL, daher schnell vorher openSSL installieren) git clone https://github.com/tpm2-software/tpm2-tss cd tpm2-tss ./bootstrap ./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib64 –includedir=/usr/include –enable-unit make make install #Danach wieder LibreSSL installieren tpm2 abrmd: git clone https://github.com/tpm2-software/tpm2-abrmd.git cd tpm2-abrmd/ ./bootstrap ./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib64 –includedir=/usr/include –enable-unit make make install WolfSSL: Download https://www.wolfssl.com/download/ unzip wolfssl-4.1.0.zip cd wolfssl-4.1.0 ./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib64 –includedir=/usr/include make Botan-2 wget https://botan.randombit.net/releases/Botan-2.12.0.tar.xz tar -xf Botan-2.12.0.tar.xz cd Botan-2.12.0/ ./configure.py –prefix=/usr/ make -j 4 make install cp -frv /usr/lib/libbotan-2.* /usr/lib64/ cp -frv build/include/ /usr/include/ cp -frv ./build/botan-2.pc /usr/lib64/pkgconfig/ libubox git clone https://git.openwrt.org/project/libubox.git cd libubox/ cmake . make make install uci: git clone https://git.openwrt.org/project/uci.git cd uci cmake . make make install libbfd (binutils) wget http://ftp.gnu.org/gnu/binutils/binutils-2.32.tar.gz tar -xzf binutils-2.32.tar.gz cd binutils-2.32 ./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib64 –includedir=/usr/include make make install ld –version as –version util-linux wget https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.34/util-linux-2.34.tar.gz tar -xzf util-linux-2.34.tar.gz cd util-linux-2.34 ./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib64 –includedir=/usr/include make -j 4 make install ######################################################################################################################### Nicht zwangsweise notwendig für das untere “./configure” nochmal nach wine cp -rnv include/* /usr/include nochmal Linux Header kopieren cp -rnv /usr/src/linux-4.10.13/include/* /usr/include/ cp -rnv /usr/src/linux-4.10.13/include/asm-generic/* /usr/include/asm cp -rnv /usr/src/linux-4.10.13/include/linux/thread_info.h /usr/include/asm/ cp -rnv /usr/src/linux-4.10.13/arch/x86/include/asm/* /usr/include/asm/ mkdir /usr/include/uapi/asm cp -rnv /usr/src/linux-4.10.13/arch/x86/include/uapi/asm/* /usr/include/uapi/asm/ cp -rnv /usr/src/linux-4.10.13/usr/include/linux/* /usr/include/linux/ Zusatz info vor dem Compilieren: Wenn in der ipsec.conf die Option “leftfirewall=yes” aktiviert ist, wir die Firewall Regel via IPtables auf ACCEPT gesetzt. Möchte man die Regel aber gerne auf QUEUE haben, weil z.B. snort im inline Modus aktiv ist, so muss zuvor im Quell Code folgende Dateien editiert werden. “vi ../src/_updown/_updown.in” und dort alle “-j ACCEPT” auf “-j QUEUE” setzten, weiter muss die Datei “vi ../src/_updown_espmark/_updown_espmark” geöffnet werden und dort auch alle “-j ACCEPT” auf “-j QUEUE” setzten. Vorher (iptables -L FORWARD -v -n): 6177 723K ACCEPT all — eth2 * 172.17.0.0/16 172.16.0.0/16 policy match dir in pol ipsec reqid 1 proto 50 11435 6074K ACCEPT all — * eth2 172.16.0.0/16 172.17.0.0/16 pol