diff --git a/COPYING b/COPYING index 3d4f8f7..40c54c5 100644 --- a/COPYING +++ b/COPYING @@ -1,35 +1,32 @@ -SmartCAPWAP -- An Open Source CAPWAP WTP / AC +FreeWTP -- An Open Source CAPWAP WTP Copyright (C) 2012-2014 Massimo Vellucci Portions (C) 2016 Travelping GmbH This distribution contains multiple components, some -of which fall under different licenses. By using SmartCAPWAP +of which fall under different licenses. By using FreeWTP or any of the bundled components enumerated below, you agree to be bound by the conditions of the license for each respective component. -SmartCAPWAP license: +FreeWTP license: ---------------- - SmartCAPWAP is distributed under the GPL license version 2. + FreeWTP is distributed under the GPL license version 2. Libconfig license: ------------ Libconfig is Copyright (C) Mark Lindner, and is licensed under the LGPL. -Libxml2 license: ------------- - - Libxml2 is Copyright (C) Daniel Veillard, and is licensed under the MIT. - -Libjson-c license: ------------- - - Libjson-c is Copyright (C) Eric Haszlakiewicz, and is licensed under the MIT. - WolfSSL License: ---------------- - WolfSSL is Copyright (C) wolfSSL Inc, and is licensed under the GPL license version 2. + WolfSSL is Copyright (C) wolfSSL Inc, and is licensed under the GPL license + version 2. + +libev license: +-------------- + + libev is Copyright (c) 2007,2008,2009,2010,2011,2012,2013 Marc Alexander + Lehmann and is licensed under BSD 2-Clause license. \ No newline at end of file diff --git a/INSTALL b/INSTALL index 77c71de..a231174 100644 --- a/INSTALL +++ b/INSTALL @@ -1,12 +1,12 @@ -================================================== -HOW TO BUILD AND RUN SmartCAPWAP FOR LINUX SYSTEMS -================================================== +============================================== +HOW TO BUILD AND RUN FreeWTP FOR LINUX SYSTEMS +============================================== -NOTE: To run WTP you must have a wireless card that has Linux driver based on the - Generic IEEE 802.11 Networking Stack (mac80211). +NOTE: To run WTP you must have a wireless card that has Linux driver based + on the Generic IEEE 802.11 Networking Stack (mac80211). -HOW TO BUILD AC AND WTP +HOW TO BUILD THE WTP ======================= Requirements @@ -15,10 +15,9 @@ Requirements * automake 1.9 or newer * autoconf * libconfig-dev -* libjson0-dev * libnl-dev * libtool -* libxml2-dev +* libev 4.22 or newer * wolfssl 3.8 or newer Build @@ -30,7 +29,7 @@ WolfSSL: make install -SmartCAPWAP: +FreeWTP: autoreconf -f -i ./configure make diff --git a/README.md b/README.md index 23cee64..60b0fd3 100644 --- a/README.md +++ b/README.md @@ -6,8 +6,6 @@ This project started as a fork of SmartCAPWAP, but has since dropped the AC part ## STATUS -NOTE: The WTP implementation has been ported to libev - ### WTP tested and working features: * 802.11b @@ -18,6 +16,7 @@ NOTE: The WTP implementation has been ported to libev * single radio, single WLAN mode * 802.11n ([draft-ietf-opsawg-capwap-extension-06](https://tools.ietf.org/html/draft-ietf-opsawg-capwap-extension-06)) * WPA2-PSK +* WPA2 Enterprise Only cards with cfg80211 netlink API are supported. The following devices have been tested: @@ -27,7 +26,6 @@ have been tested: ### Planned WTP features: -* WPA2 Enterprise * 802.11r - BSS fast transition * Hybrid-MAC ([RFC-7494](https://tools.ietf.org/html/rfc7494)) @@ -42,14 +40,11 @@ NOTE: To run WTP you must have a wireless card that has Linux driver based on th * automake 1.9 or newer * autoconf * libconfig-dev -* libjson0-dev * libnl-dev * libev-dev * libtool -* libxml2-dev * wolfssl 3.8 or newer - ### Build WolfSSL: @@ -71,7 +66,7 @@ FreeWTP: ### Debugging / Tracing -The smartcapwap kernel module defines a number of static ftrace events. For a detailed +The wtp capwap kernel module defines a number of static ftrace events. For a detailed guide on how to use those, see: https://www.kernel.org/doc/Documentation/trace/ftrace.txt A sample trace session might lock like this: diff --git a/etc/ac.conf b/etc/ac.conf deleted file mode 100755 index 041a189..0000000 --- a/etc/ac.conf +++ /dev/null @@ -1,90 +0,0 @@ -# AC configuration file - -version = "1.0"; - -application: { - standalone = true; - - name = "ac 1"; - - binding = [ - "802.11" - ]; - - descriptor: { - maxstations = 20; - maxwtp = 10; - - security: { - presharedkey = false; - x509 = false; - }; - - rmacfiled: { - supported = false; - }; - - dtlspolicy: { - cleardatachannel = true; - dtlsdatachannel = true; - }; - - info = ( - { idvendor = 12345; type = "hardware"; value = "1.0"; }, - { idvendor = 33457; type = "software"; value = "2.0"; } - ); - }; - - ecn = "limited"; - - timer: { - discovery = 20; - echorequest = 30; - decrypterrorreport = 120; - idletimeout = 320; - }; - - wtpfallback = true; - - dtls: { - enable = true; - - type = "x509"; - - presharedkey: { - hint = "esempio"; - identity = "prova"; - pskkey = "123456"; - }; - - x509: { - calist = "/etc/capwap/ca.crt"; - certificate = "/etc/capwap/ac.crt"; - privatekey = "/etc/capwap/ac.key"; - }; - }; - - network: { - #binding = "eth1"; - #listen = ""; - transport = "udp"; - mtu = 1400; - }; -}; - -backend: { - id = "1"; - version = "1.0"; - server: ( - { url = "http://127.0.0.1/csoap.php"; } - #{ url = "https://127.0.0.1/csoap.php"; x509: { calist = "/etc/capwap/casoap.crt"; certificate = "/etc/capwap/clientsoap.crt"; privatekey = "/etc/capwap/clientsoap.key"; }; } - ); -}; - -logging: { - enable = true; - level = "debug"; - output = ( - { mode = "stdout"; } - ); -}; diff --git a/etc/ac.crt b/etc/ac.crt deleted file mode 100644 index fa78890..0000000 --- a/etc/ac.crt +++ /dev/null @@ -1,76 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 1 (0x1) - Signature Algorithm: sha1WithRSAEncryption - Issuer: C=IT, ST=IT, L=Rome, O=SmartCAPWAP, OU=SmartCAPWAP, CN=SmartCAPWAP CA/name=SmartCAPWAP/emailAddress=vemax78@gmail.com - Validity - Not Before: May 15 18:02:09 2014 GMT - Not After : May 12 18:02:09 2024 GMT - Subject: C=IT, ST=IT, L=Rome, O=SmartCAPWAP, OU=SmartCAPWAP, CN=ac1/name=SmartCAPWAP/emailAddress=vemax78@gmail.com - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (1024 bit) - Modulus: - 00:c3:98:2b:82:c3:1b:aa:13:8d:16:e4:d6:7f:c0: - 88:d9:f8:2a:52:46:92:be:c2:3d:91:04:07:7a:fb: - c6:d1:3b:cc:8a:a0:c2:cd:25:b8:22:9c:11:c4:d5: - ca:be:23:43:af:76:80:fd:65:bc:38:4b:66:1c:ac: - 05:b1:d2:a4:5b:57:ed:c9:62:e3:67:6e:83:37:c1: - cc:38:a7:9b:0b:87:52:da:b1:83:7b:19:4d:99:48: - 96:c9:a3:6d:ad:93:8f:62:ee:f1:38:8a:81:99:0e: - 27:f6:70:ac:0e:93:06:3b:a4:b9:5c:6c:ed:ab:be: - 27:db:52:72:f5:7e:10:36:a5 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: - CA:FALSE - Netscape Cert Type: - SSL Server - Netscape Comment: - Easy-RSA Generated Server Certificate - X509v3 Subject Key Identifier: - C6:FE:48:73:99:7A:9E:24:87:8B:43:F8:13:6F:27:FB:4A:71:4D:22 - X509v3 Authority Key Identifier: - keyid:B8:BE:B2:CB:C6:68:BD:0A:BB:E5:BC:DE:AE:56:FE:25:E6:E4:B3:1C - DirName:/C=IT/ST=IT/L=Rome/O=SmartCAPWAP/OU=SmartCAPWAP/CN=SmartCAPWAP CA/name=SmartCAPWAP/emailAddress=vemax78@gmail.com - serial:9A:6A:C6:B2:AA:33:22:C5 - - X509v3 Extended Key Usage: - TLS Web Server Authentication - X509v3 Key Usage: - Digital Signature, Non Repudiation, Key Encipherment, Data Encipherment - Signature Algorithm: sha1WithRSAEncryption - 78:50:cf:ba:f0:b7:98:92:ae:e9:88:ce:10:43:79:22:03:bf: - ad:9f:1b:87:26:00:37:c0:11:21:bd:9e:e9:40:92:1a:0b:50: - a1:de:a5:00:df:8c:4b:5d:6d:09:75:6e:4e:f3:c2:4b:9e:6b: - 08:fe:d0:5c:27:98:fe:30:c9:96:a9:b5:2c:dc:ed:0b:c2:2d: - 3e:aa:b7:fd:54:be:17:5e:2f:35:5a:f1:8f:ae:49:3b:87:d5: - 99:8e:04:3a:e6:33:fd:30:4a:70:ac:34:c5:9c:0a:57:c6:ab: - 26:e7:98:bf:5d:ac:13:4a:6b:8e:e3:af:5e:e6:9b:e2:80:80: - b9:ce ------BEGIN CERTIFICATE----- -MIIEMjCCA5ugAwIBAgIBATANBgkqhkiG9w0BAQUFADCBpjELMAkGA1UEBhMCSVQx -CzAJBgNVBAgTAklUMQ0wCwYDVQQHEwRSb21lMRQwEgYDVQQKEwtTbWFydENBUFdB -UDEUMBIGA1UECxMLU21hcnRDQVBXQVAxFzAVBgNVBAMTDlNtYXJ0Q0FQV0FQIENB -MRQwEgYDVQQpEwtTbWFydENBUFdBUDEgMB4GCSqGSIb3DQEJARYRdmVtYXg3OEBn -bWFpbC5jb20wHhcNMTQwNTE1MTgwMjA5WhcNMjQwNTEyMTgwMjA5WjCBmzELMAkG -A1UEBhMCSVQxCzAJBgNVBAgTAklUMQ0wCwYDVQQHEwRSb21lMRQwEgYDVQQKEwtT -bWFydENBUFdBUDEUMBIGA1UECxMLU21hcnRDQVBXQVAxDDAKBgNVBAMTA2FjMTEU -MBIGA1UEKRMLU21hcnRDQVBXQVAxIDAeBgkqhkiG9w0BCQEWEXZlbWF4NzhAZ21h -aWwuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDmCuCwxuqE40W5NZ/ -wIjZ+CpSRpK+wj2RBAd6+8bRO8yKoMLNJbginBHE1cq+I0OvdoD9Zbw4S2YcrAWx -0qRbV+3JYuNnboM3wcw4p5sLh1LasYN7GU2ZSJbJo22tk49i7vE4ioGZDif2cKwO -kwY7pLlcbO2rvifbUnL1fhA2pQIDAQABo4IBdzCCAXMwCQYDVR0TBAIwADARBglg -hkgBhvhCAQEEBAMCBkAwNAYJYIZIAYb4QgENBCcWJUVhc3ktUlNBIEdlbmVyYXRl -ZCBTZXJ2ZXIgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFMb+SHOZep4kh4tD+BNvJ/tK -cU0iMIHbBgNVHSMEgdMwgdCAFLi+ssvGaL0Ku+W83q5W/iXm5LMcoYGspIGpMIGm -MQswCQYDVQQGEwJJVDELMAkGA1UECBMCSVQxDTALBgNVBAcTBFJvbWUxFDASBgNV -BAoTC1NtYXJ0Q0FQV0FQMRQwEgYDVQQLEwtTbWFydENBUFdBUDEXMBUGA1UEAxMO -U21hcnRDQVBXQVAgQ0ExFDASBgNVBCkTC1NtYXJ0Q0FQV0FQMSAwHgYJKoZIhvcN -AQkBFhF2ZW1heDc4QGdtYWlsLmNvbYIJAJpqxrKqMyLFMBMGA1UdJQQMMAoGCCsG -AQUFBwMBMAsGA1UdDwQEAwIE8DANBgkqhkiG9w0BAQUFAAOBgQB4UM+68LeYkq7p -iM4QQ3kiA7+tnxuHJgA3wBEhvZ7pQJIaC1Ch3qUA34xLXW0JdW5O88JLnmsI/tBc -J5j+MMmWqbUs3O0Lwi0+qrf9VL4XXi81WvGPrkk7h9WZjgQ65jP9MEpwrDTFnApX -xqsm55i/XawTSmuO469e5pvigIC5zg== ------END CERTIFICATE----- diff --git a/etc/ac.key b/etc/ac.key deleted file mode 100644 index f21818f..0000000 --- a/etc/ac.key +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAMOYK4LDG6oTjRbk -1n/AiNn4KlJGkr7CPZEEB3r7xtE7zIqgws0luCKcEcTVyr4jQ692gP1lvDhLZhys -BbHSpFtX7cli42dugzfBzDinmwuHUtqxg3sZTZlIlsmjba2Tj2Lu8TiKgZkOJ/Zw -rA6TBjukuVxs7au+J9tScvV+EDalAgMBAAECgYBh1N8OjKBttVHAvb08MQVCYQpq -FLqZh3Zb7nP/Y6fSR+LLBBXrno43YXDRz02VRPY58UAbfqNiVPRCKxi+FOn3li5l -LN9ad1S510MNg652vpKFnCQjpHDrxOQPxQHGc0XNeF4Xo12IhFxh0DbktloC3/Og -PXL0UdvMhZ+X0ErQEQJBAOqLxRYeUSB9HeSFcgNejd0wkM7DKoNyFmJ0jwEb46vO -mKJuA4CFbinX6PZfei8nXbZIBN5p3IS0TA7MU/b+erMCQQDVfEsfmEPUYx7M1oec -rT4+AeSO7KzcC83zeVEmEljwP3zvbM8gn7PLsJAU3K0HEh6scocP6UosTI4o6Ohw -ppVHAkEAsjCp9RnnTKWBlmIDsqedY9RHz63amK6ObxJaqt8DYz28HHs0UeoNPeD4 -7mSvMS/ZNGkWudr3XCKWPg/iIp5HnQJBAMALdtzuMZ5+qDdmiUn1QrevJjc4S2wL -pnJu4QQZny5IPpB3VoCniasjowlRVsm0kClbQYqbt2DQYVYF5wtnn4MCQQCz7Rcj -eEZN1STdLv6K03cWKW8nqk+yLgsDFOZpzhIq5ezk/oEX38+1k/KCqwy+9xlQ/oJJ -5lGEUmKCh2XYCBcq ------END PRIVATE KEY----- diff --git a/kmod/main.c b/kmod/main.c index d7f2c8d..3062948 100644 --- a/kmod/main.c +++ b/kmod/main.c @@ -29,4 +29,4 @@ module_exit(smartcapwap_wtp_exit); MODULE_LICENSE("GPL"); MODULE_AUTHOR("Massimo Vellucci "); -MODULE_DESCRIPTION("SmartCAPWAP WTP Data Channel Module"); +MODULE_DESCRIPTION("FreeWTP CAPWAP Data Channel Module"); diff --git a/kmod/netlinkapp.c b/kmod/netlinkapp.c index f5a0167..477d9fd 100644 --- a/kmod/netlinkapp.c +++ b/kmod/netlinkapp.c @@ -178,7 +178,7 @@ static struct sc_netlink_device* sc_netlink_new_device(struct net *net, uint32_t } /* disable IPv6 on this iface */ - printk("SmartCAPWAP: disabling IPv6 on %s\n", dev->name); + printk("CAPWAP: disabling IPv6 on %s\n", dev->name); idev->cnf.disable_ipv6 = 1; /* Create device */ @@ -996,7 +996,7 @@ int __init sc_netlink_init(void) { if (ret) goto unreg_genl_family; - pr_info("smartCAPWAP module loaded\n"); + pr_info("CAPWAP WTP module loaded\n"); return 0; unreg_genl_family: @@ -1006,7 +1006,7 @@ unreg_netdev_notifier: unreg_pernet: unregister_pernet_subsys(&sc_net_ops); error_out: - pr_err("error loading smartCAPWAP module\n"); + pr_err("error loading CAPWAP WTP module\n"); return ret; } diff --git a/src/wtp.c b/src/wtp.c index e4bef52..6171796 100644 --- a/src/wtp.c +++ b/src/wtp.c @@ -1507,7 +1507,7 @@ int main(int argc, char** argv) { goto out_close_radio; } - log_printf(LOG_INFO, "SmartCAPWAP kernel module connected"); + log_printf(LOG_INFO, "CAPWAP WTP kernel module connected"); /* */ log_printf(LOG_INFO, "Startup WTP");