From 48ffb840561b99a7735c12c3389a7454b9c9b5e1 Mon Sep 17 00:00:00 2001 From: Robin Battey Date: Sat, 4 Aug 2012 12:23:26 +0200 Subject: [PATCH] Added IPSec support for K26 builds IPSec modules always built and put in extras. Included in image only if "IPSEC=y" was specified to the bin target. Some changes made by Shibby. Build-in modules into AIO and Mega-VPN builds. Thread: http://tomatousb.org/forum/t-542268/i-ve-implemented-ipsec-support#post-1527641 --- release/src-rt/linux/linux-2.6/config_base | 48 +++++++++++++++++------------- release/src/Makefile | 25 ++++++++++++++-- release/src/router/Makefile | 18 +++++++++-- 3 files changed, 65 insertions(+), 26 deletions(-) diff --git a/release/src-rt/linux/linux-2.6/config_base b/release/src-rt/linux/linux-2.6/config_base index 755ca03648..fd0aca7a85 100644 --- a/release/src-rt/linux/linux-2.6/config_base +++ b/release/src-rt/linux/linux-2.6/config_base @@ -282,7 +282,12 @@ CONFIG_NET=y CONFIG_PACKET=y CONFIG_PACKET_MMAP=y CONFIG_UNIX=y -# CONFIG_NET_KEY is not set +CONFIG_XFRM=y +CONFIG_XFRM_USER=m +# CONFIG_XFRM_SUB_POLICY is not set +# CONFIG_XFRM_MIGRATE is not set +CONFIG_NET_KEY=m +# CONFIG_NET_KEY_MIGRATE is not set CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y @@ -303,14 +308,14 @@ CONFIG_IP_MROUTE=y # CONFIG_IP_PIMSM_V2 is not set # CONFIG_ARPD is not set CONFIG_SYN_COOKIES=y -# CONFIG_INET_AH is not set -# CONFIG_INET_ESP is not set -# CONFIG_INET_IPCOMP is not set -# CONFIG_INET_XFRM_TUNNEL is not set -# CONFIG_INET_TUNNEL is not set -# CONFIG_INET_XFRM_MODE_TRANSPORT is not set -# CONFIG_INET_XFRM_MODE_TUNNEL is not set -# CONFIG_INET_XFRM_MODE_BEET is not set +CONFIG_INET_AH=m +CONFIG_INET_ESP=m +CONFIG_INET_IPCOMP=m +CONFIG_INET_XFRM_TUNNEL=m +CONFIG_INET_TUNNEL=m +CONFIG_INET_XFRM_MODE_TRANSPORT=m +CONFIG_INET_XFRM_MODE_TUNNEL=m +CONFIG_INET_XFRM_MODE_BEET=m # CONFIG_INET_DIAG is not set CONFIG_TCP_CONG_ADVANCED=y # CONFIG_TCP_CONG_BIC is not set @@ -392,6 +397,7 @@ CONFIG_NETFILTER_XT_TARGET_DSCP=m CONFIG_NETFILTER_XT_TARGET_HL=m CONFIG_NETFILTER_XT_TARGET_IMQ=m CONFIG_NETFILTER_XT_TARGET_MARK=y +CONFIG_NETFILTER_XT_MATCH_POLICY=m CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m # CONFIG_NETFILTER_XT_TARGET_NFLOG is not set CONFIG_NETFILTER_XT_TARGET_NOTRACK=m @@ -1765,13 +1771,13 @@ CONFIG_CRYPTO_BLKCIPHER=y CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_HMAC=y -# CONFIG_CRYPTO_XCBC is not set -# CONFIG_CRYPTO_NULL is not set -# CONFIG_CRYPTO_MD4 is not set +CONFIG_CRYPTO_XCBC=m +CONFIG_CRYPTO_NULL=m +CONFIG_CRYPTO_MD4=m CONFIG_CRYPTO_MD5=m CONFIG_CRYPTO_SHA1=y -# CONFIG_CRYPTO_SHA256 is not set -# CONFIG_CRYPTO_SHA512 is not set +CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA512=m # CONFIG_CRYPTO_WP512 is not set # CONFIG_CRYPTO_TGR192 is not set # CONFIG_CRYPTO_GF128MUL is not set @@ -1782,19 +1788,19 @@ CONFIG_CRYPTO_CBC=y # CONFIG_CRYPTO_CRYPTD is not set CONFIG_CRYPTO_DES=m # CONFIG_CRYPTO_FCRYPT is not set -# CONFIG_CRYPTO_BLOWFISH is not set -# CONFIG_CRYPTO_TWOFISH is not set -# CONFIG_CRYPTO_SERPENT is not set +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_SERPENT=m CONFIG_CRYPTO_AES=m -# CONFIG_CRYPTO_CAST5 is not set -# CONFIG_CRYPTO_CAST6 is not set -# CONFIG_CRYPTO_TEA is not set +CONFIG_CRYPTO_CAST5=m +CONFIG_CRYPTO_CAST6=m +CONFIG_CRYPTO_TEA=m CONFIG_CRYPTO_ARC4=y # CONFIG_CRYPTO_KHAZAD is not set # CONFIG_CRYPTO_ANUBIS is not set CONFIG_CRYPTO_DEFLATE=m # CONFIG_CRYPTO_MICHAEL_MIC is not set -# CONFIG_CRYPTO_CRC32C is not set +CONFIG_CRYPTO_CRC32C=m # CONFIG_CRYPTO_CAMELLIA is not set # CONFIG_CRYPTO_TEST is not set diff --git a/release/src/Makefile b/release/src/Makefile index c964778dbb..a44ddd2250 100644 --- a/release/src/Makefile +++ b/release/src/Makefile @@ -224,7 +224,7 @@ what: # JFFSv1 | NO_JFFS # NO_CIFS, NO_SSH, NO_ZEBRA, NO_SAMBA, NO_HTTPS, NO_XXTP, NO_LIBOPT # SAMBA3, OPENVPN, IPV6SUPP, EBTABLES, NTFS, MEDIASRV, BBEXTRAS, USBEXTRAS, BCM57, SLIM, NOCAT -# NFS BTCLIENT BTGUI TR_EXTRAS SNMP SDHC HFS UPS DNSCRYPT PPTPD TOR +# NFS BTCLIENT BTGUI TR_EXTRAS SNMP SDHC HFS UPS DNSCRYPT PPTPD TOR IPSEC define RouterOptions @( \ @@ -252,6 +252,11 @@ define RouterOptions else \ echo "TCONFIG_JFFSV1=y" >>$(1); \ fi; \ + if [ "$(CONFIG_LINUX26)" = "y" ] && [ "$(IPSEC)" = "y" ]; then \ + echo "TCONFIG_IPSEC=y" >>$(1); \ + else \ + echo "# TCONFIG_IPSEC is not set" >>$(1); \ + fi; \ if [ "$(USB)" = "USB" ]; then \ sed -i "/TCONFIG_USB is not set/d" $(1); \ echo "TCONFIG_USB=y" >>$(1); \ @@ -579,6 +584,20 @@ define KernelConfig echo "CONFIG_IPV6_MROUTE=y" >>$(1); \ sed -i "/CONFIG_IP6_NF_TARGET_ROUTE/d" $(1); \ echo "CONFIG_IP6_NF_TARGET_ROUTE=m" >>$(1); \ + sed -i "/CONFIG_INET6_XFRM_TUNNEL/d" $(1); \ + echo "CONFIG_INET6_XFRM_TUNNEL=m" >>$(1); \ + sed -i "/CONFIG_INET6_AH/d" $(1); \ + echo "CONFIG_INET6_AH=m" >>$(1); \ + sed -i "/CONFIG_INET6_ESP/d" $(1); \ + echo "CONFIG_INET6_ESP=m" >>$(1); \ + sed -i "/CONFIG_INET6_IPCOMP/d" $(1); \ + echo "CONFIG_INET6_IPCOMP=m" >>$(1); \ + sed -i "/CONFIG_INET6_XFRM_MODE_TRANSPORT/d" $(1); \ + echo "CONFIG_INET6_XFRM_MODE_TRANSPORT=m" >>$(1); \ + sed -i "/CONFIG_INET6_XFRM_MODE_TUNNEL/d" $(1); \ + echo "CONFIG_INET6_XFRM_MODE_TUNNEL=m" >>$(1); \ + sed -i "/CONFIG_INET6_XFRM_MODE_BEET/d" $(1); \ + echo "CONFIG_INET6_XFRM_MODE_BEET=m" >>$(1); \ else \ sed -i "/CONFIG_IP6_NF_CONNTRACK/d" $(1); \ echo "CONFIG_IP6_NF_CONNTRACK=m" >>$(1); \ @@ -702,13 +721,13 @@ endif ## Mega-VPN o: ifeq ($(CONFIG_LINUX26),y) - @$(MAKE) bin OPENVPN=y NTFS=y BBEXTRAS=y USBEXTRAS=y EBTABLES=y NO_LIBOPT=y MEDIASRV=y IPV6SUPP=y B=E BUILD_DESC="Mega-VPN" USB="USB" NOCAT=y BTCLIENT=y DNSCRYPT=y UPS=y PPTPD=y TR_EXTRAS=y TOR=y + @$(MAKE) bin OPENVPN=y NTFS=y BBEXTRAS=y USBEXTRAS=y EBTABLES=y NO_LIBOPT=y MEDIASRV=y IPV6SUPP=y B=E BUILD_DESC="Mega-VPN" USB="USB" NOCAT=y BTCLIENT=y DNSCRYPT=y UPS=y PPTPD=y TR_EXTRAS=y TOR=y IPSEC=y endif ## All-In-One (AIO) MIPS1 - only for router with more than 8MB flash!! ZTE H618B z: ifeq ($(CONFIG_LINUX26),y) - @$(MAKE) bin OPENVPN=y NTFS=y BBEXTRAS=y USBEXTRAS=y EBTABLES=y NO_LIBOPT=y MEDIASRV=y IPV6SUPP=y B=E BUILD_DESC="AIO" USB="USB" NOCAT=y BTCLIENT=y TR_EXTRAS=y NFS=y SNMP=y HFS=y DNSCRYPT=y UPS=y PPTPD=y TOR=y + @$(MAKE) bin OPENVPN=y NTFS=y BBEXTRAS=y USBEXTRAS=y EBTABLES=y NO_LIBOPT=y MEDIASRV=y IPV6SUPP=y B=E BUILD_DESC="AIO" USB="USB" NOCAT=y BTCLIENT=y TR_EXTRAS=y NFS=y SNMP=y HFS=y DNSCRYPT=y UPS=y PPTPD=y TOR=y IPSEC=y endif ################################# diff --git a/release/src/router/Makefile b/release/src/router/Makefile index 9c8dc864b3..3cf0366a63 100644 --- a/release/src/router/Makefile +++ b/release/src/router/Makefile @@ -111,6 +111,12 @@ else TCONFIG_IPV6 := endif +ifeq ($(TCONFIG_IPSEC),y) +export TCONFIG_IPSEC := y +else +TCONFIG_IPSEC := +endif + obj-$(NEED_SAMBA2) += samba obj-$(NEED_SAMBA3) += samba3 obj-$(TCONFIG_NTFS) += ntfs-3g @@ -416,8 +422,16 @@ endif $(if $(TCONFIG_PPTP),@cp -f,@mv) $(TARGETDIR)/lib/modules/*/kernel/drivers/net/pptp.*o $(PLATFORMDIR)/extras/ || true $(if $(TCONFIG_L2TP),@cp -f,@mv) $(TARGETDIR)/lib/modules/*/kernel/drivers/net/pppol2tp.*o $(PLATFORMDIR)/extras/ || true @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/net/ppp_deflate.*o $(PLATFORMDIR)/extras/ || true - @mv $(TARGETDIR)/lib/modules/*/kernel/crypto/* $(PLATFORMDIR)/extras/ || true - @rm -rf $(TARGETDIR)/lib/modules/*/kernel/crypto || true + $(if $(TCONFIG_IPSEC),@cp -f,@mv) $(TARGETDIR)/lib/modules/*/kernel/crypto/*.ko $(PLATFORMDIR)/extras/ || true + $(if $(TCONFIG_IPSEC),@cp -f,@mv) $(TARGETDIR)/lib/modules/*/kernel/lib/libcrc32c.ko $(PLATFORMDIR)/extras/ || true + $(if $(TCONFIG_IPSEC),@cp -f,@mv) $(TARGETDIR)/lib/modules/*/kernel/net/xfrm/*.ko $(PLATFORMDIR)/extras/ || true + $(if $(TCONFIG_IPSEC),@cp -f,@mv) $(TARGETDIR)/lib/modules/*/kernel/net/key/*.ko $(PLATFORMDIR)/extras/ || true + $(if $(TCONFIG_IPSEC),@cp -f,@mv) $(TARGETDIR)/lib/modules/*/kernel/net/ipv*/xfrm*.ko $(PLATFORMDIR)/extras/ || true + $(if $(TCONFIG_IPSEC),@cp -f,@mv) $(TARGETDIR)/lib/modules/*/kernel/net/ipv*/tunnel*.ko $(PLATFORMDIR)/extras/ || true + $(if $(TCONFIG_IPSEC),@cp -f,@mv) $(TARGETDIR)/lib/modules/*/kernel/net/ipv*/ah*.ko $(PLATFORMDIR)/extras/ || true + $(if $(TCONFIG_IPSEC),@cp -f,@mv) $(TARGETDIR)/lib/modules/*/kernel/net/ipv*/esp*.ko $(PLATFORMDIR)/extras/ || true + $(if $(TCONFIG_IPSEC),@cp -f,@mv) $(TARGETDIR)/lib/modules/*/kernel/net/ipv*/ipcomp*.ko $(PLATFORMDIR)/extras/ || true + $(if $(TCONFIG_IPSEC),@cp -f,@mv) $(TARGETDIR)/lib/modules/*/kernel/net/netfilter/xt_policy.ko $(PLATFORMDIR)/extras/ || true $(if $(NEED_EX_NLS),@cp -f,@mv) $(TARGETDIR)/lib/modules/*/kernel/fs/nls_cp9*.*o $(PLATFORMDIR)/extras/ || true $(if $(NEED_EX_NLS),@cp -f,@mv) $(TARGETDIR)/lib/modules/*/kernel/fs/nls_cp1251.*o $(PLATFORMDIR)/extras/ || true -- 2.11.4.GIT