Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | ikev1: Always send ID payloads (traffic selectors) during Quick Mode | Tobias Brunner | 2013-07-25 | 1 | -26/+4 |
| | | | | | | | Especially Windows 7 has problems if the peer does not send ID payloads for host-to-host connections (tunnel and transport mode). Fixes #319. | ||||
* | ikev1: Reestablish IKE_SA/CHILD_SAs if it gets deleted by the peer | Tobias Brunner | 2013-07-17 | 1 | -0/+5 |
| | | | | | We call ike_sa_t.reestablish() so the IKE_SA is only recreated if any CHILD_SA requires it. | ||||
* | ikev1: Support closeaction of CHILD_SA. | Oliver Smith | 2013-07-17 | 1 | -7/+49 |
| | | | | | | When a CHILD_SA is closed in IKEv1, if it is not being rekeyed and closeaction has been set, we can now perform a restart or hold as is currently done for IKEv2. | ||||
* | child-sa: replace get_traffic_selectors() with create_ts_enumerator() | Martin Willi | 2013-07-17 | 2 | -9/+19 |
| | | | | | Not directly returning a linked list allows us to change the internals of the CHILD_SA transparently. | ||||
* | ike: Force NAT-T/UDP encapsulation if kernel interface requires it | Tobias Brunner | 2013-06-21 | 1 | -2/+16 |
| | |||||
* | kernel-interface: add an exchange initiator parameter to add_sa() | Martin Willi | 2013-06-11 | 1 | -8/+12 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This new flag gives the kernel-interface a hint how it should priorize the use of newly installed SAs during rekeying. Consider the following rekey procedure in IKEv2: Initiator --- Responder I1 -------CREATE-------> R1 I2 <------CREATE-------- -------DELETE-------> R2 I3 <------DELETE-------- SAs are always handled as pairs, the following happens at the SA level: * Initiator starts the exchange at I1 * Responder installs new SA pair at R1 * Initiator installs new SA pair at I2 * Responder removes old SA pair at R2 * Initiator removes old SA pair at I3 This makes sure SAs get installed/removed overlapping during rekeying. However, to avoid any packet loss, it is crucial that the new outbound SA gets activated at the correct position: * as exchange initiator, in I2 * as exchange responder, in R2 This should guarantee that we don't use the new outbound SA before the peer could install its corresponding inbound SA. The new parameter allows the kernel backend to install the new SA with appropriate priorities, i.e. it should: * as exchange inititator, have the new outbound SA installed with higher priority than the old SA * as exchange responder, have the new outbound SA installed with lower priority than the old SA While we could split up the SA installation at the responder, this approach has another advantage: it allows the kernel backend to switch SAs based on other criteria, for example when receiving traffic on the new inbound SA. | ||||
* | ikev1: keep vendor ID task alive during full Main/Aggressive Mode | Martin Willi | 2013-06-11 | 1 | -8/+75 |
| | | | | Fixes DPD with Cisco IOS sending the DPD vendor ID not in the first message. | ||||
* | Allow IPComp on NATed connections, both for IKEv1 and IKEv2 | Martin Willi | 2013-06-11 | 1 | -26/+10 |
| | | | | | | While this was problematic in earlier releases, it seems that it works just fine the way we handle compression now. So there is no need to disable it over NATed connections or when using forceencaps. | ||||
* | Refactor check_for_rekeyed_child() in quick_mode task | Martin Willi | 2013-04-03 | 1 | -18/+24 |
| | |||||
* | Reuse reqid of an existing Quick Mode, even if it has been rekeyed | Martin Willi | 2013-04-03 | 1 | -1/+2 |
| | | | | | | If two peers rekey Quick Modes at the same time, the original Quick Mode is in REKEYING state and hence the requid is not reused. This is required though, as two identical policies won't work if they have different requids. | ||||
* | Delete IKE_SAs if responder does not initiate XAuth exchange within a ↵ | Tobias Brunner | 2013-03-19 | 2 | -2/+16 |
| | | | | certain time frame | ||||
* | Added xauth-noauth plugin | Tobias Brunner | 2013-03-19 | 1 | -29/+37 |
| | | | | | | | | This XAuth backend does not do any authentication of client credentials but simply sends a successful XAuth status to the client, thereby concluding the XAuth exchange. This can be useful to fallback to basic RSA authentication with clients that can not be configured without XAuth authentication. | ||||
* | child_sa_t.get_usestats() can additionally return the number of processed ↵ | Martin Willi | 2013-03-14 | 1 | -2/+2 |
| | | | | packets | ||||
* | As Quick Mode initiator, select a subset of the proposed and the returned TS | Martin Willi | 2013-03-07 | 1 | -4/+11 |
| | | | | | | | | Cisco 5505 firewalls don't return the port if we send a specific one, letting the is_contained_in() checks fail. Using get_subset() selection builds the Quick Mode correctly with the common subset of selectors. Based on an initial patch from Paul Stewart. | ||||
* | Use a complete port range in traffic_selector_create_from_{subnet,cidr} | Martin Willi | 2013-02-21 | 1 | -2/+2 |
| | |||||
* | Merge branch 'ikev1-fragmentation' | Tobias Brunner | 2013-01-12 | 1 | -5/+44 |
|\ | | | | | | | | | | | | | This adds support for the proprietary IKEv1 fragmentation extension. Conflicts: NEWS | ||||
| * | Properly detect fragmentation capabilities | Tobias Brunner | 2013-01-12 | 1 | -3/+27 |
| | | | | | | | | Cisco sends 0xc0000000 so we check that part of the VID separately. | ||||
| * | Added an option that allows to force IKEv1 fragmentation | Tobias Brunner | 2013-01-12 | 1 | -1/+1 |
| | | |||||
| * | Use a connection specific option to en-/disable IKEv1 fragmentation | Tobias Brunner | 2012-12-24 | 1 | -2/+4 |
| | | |||||
| * | Add an option to en-/disable IKE fragmentation | Tobias Brunner | 2012-12-24 | 1 | -4/+12 |
| | | | | | | | | | | Fragments are always accepted but will not be sent if disabled. The vendor ID is only sent if the option is enabled. | ||||
| * | Log added NAT-T vendor IDs | Tobias Brunner | 2012-12-24 | 1 | -0/+1 |
| | | |||||
| * | Detect a peer's support for IKE fragmentation | Tobias Brunner | 2012-12-24 | 1 | -0/+4 |
| | | | | | | | | Fragments are accepted even if this vendor ID is not seen. | ||||
* | | Streamline debug output when receiving intermediate CA certificates in IKEv1 | Martin Willi | 2013-01-11 | 1 | -1/+1 |
| | | |||||
* | | Refactored IKEv1 cert payload processing to multiple functions | Martin Willi | 2013-01-11 | 1 | -73/+102 |
| | | |||||
* | | IKEv1 support for PKCS#7 wrapped certificates | Volker Rümelin | 2013-01-11 | 1 | -0/+70 |
| | | |||||
* | | Fixed some typos in comments | Volker Rümelin | 2013-01-11 | 1 | -1/+1 |
|/ | |||||
* | Add parantheses to avoid compiler warning | Martin Willi | 2012-12-24 | 1 | -1/+1 |
| | |||||
* | Fixed some typos, courtesy of codespell | Tobias Brunner | 2012-12-20 | 1 | -1/+1 |
| | |||||
* | Add support for draft-ietf-ipsec-nat-t-ike-03 and earlier | Volker Rümelin | 2012-12-19 | 5 | -36/+204 |
| | | | | | This adds support for early versions of the draft that eventually resulted in RFC 3947. | ||||
* | Fix traffic selectors also as initiator in case of transport mode over NAT | Tobias Brunner | 2012-12-13 | 1 | -1/+1 |
| | |||||
* | Fix debug output if responder selected invalid traffic selectors during QM | Tobias Brunner | 2012-12-13 | 1 | -2/+2 |
| | |||||
* | Log sent vendor IDs for IKEv1 | Tobias Brunner | 2012-11-02 | 1 | -0/+1 |
| | |||||
* | Remove all ESP proposals with non-matching DH group during Quick Mode | Tobias Brunner | 2012-10-24 | 1 | -10/+22 |
| | | | | | | According to RFC 2409, section 5.5, if PFS is used all proposals MUST include the selected DH group, so we remove proposals without the proposed group and remove other DH groups from the remaining proposals. | ||||
* | Missed one in 6c10cece | Tobias Brunner | 2012-09-28 | 1 | -0/+2 |
| | |||||
* | Completed state handling in isakmp_cert_pre | Tobias Brunner | 2012-09-28 | 1 | -0/+4 |
| | | | | Should not be a problem, but makes static analyzers happy. | ||||
* | Don't complain about multiple TS in IKEv1, as it supported with Unity | Martin Willi | 2012-09-18 | 1 | -5/+0 |
| | |||||
* | Derive a dynamic TS to multiple virtual IPs | Martin Willi | 2012-09-18 | 1 | -23/+28 |
| | |||||
* | Use the vararg list constructor in quick mode task | Martin Willi | 2012-09-18 | 1 | -16/+8 |
| | |||||
* | Change traffic selectors during Quick Mode in case of a NAT in transport mode | Tobias Brunner | 2012-09-14 | 1 | -9/+19 |
| | | | | | | | | | Windows 7 sends its internal address as TSi. While we don't support the NAT-T drafts as used by Windows XP it is interesting to note that the client there omits the TSi payload which then would automatically get set to the public IP address of the client. Fixes #220. | ||||
* | Always send a configuration payload in IKEv1 TRANSACTIONs, even if it is empty | Martin Willi | 2012-09-11 | 1 | -29/+14 |
| | |||||
* | Don't use host address for dynamic TS in IKEv1 if a virtual IP was expected | Martin Willi | 2012-09-11 | 1 | -40/+57 |
| | |||||
* | Pass the full list of pools to acquire_address, enumerate in providers | Martin Willi | 2012-09-11 | 1 | -20/+6 |
| | | | | | | | | If the provider has access to the full pool list, it can enumerate them twice, for example to search for existing leases first, and only search for new leases in a second step. Fixes lease enumeration in attr-sql using multiple pools. | ||||
* | Add a responder narrow() hook to change TS in the kernel, but not on the wire | Martin Willi | 2012-09-11 | 1 | -2/+20 |
| | |||||
* | Clear virtual IPs before storing assigned ones on the IKE_SA | Tobias Brunner | 2012-09-05 | 1 | -0/+4 |
| | | | | | Otherwise we'll end up with duplicate or invalid VIPs stored on the IKE_SA. | ||||
* | In mode_config, destroy temporary pool list instead of the virtual IP list twice | Martin Willi | 2012-09-05 | 1 | -1/+1 |
| | |||||
* | Request and acquire multiple virtual IPs in IKEv1 Mode Config | Martin Willi | 2012-08-30 | 1 | -47/+61 |
| | |||||
* | Pass all configured pool names to attribute provider enumerator | Martin Willi | 2012-08-30 | 1 | -2/+9 |
| | |||||
* | Pass a list instead of a single virtual IP to attribute enumerators | Martin Willi | 2012-08-30 | 1 | -11/+35 |
| | |||||
* | Support multiple address pools configured on a peer_cfg | Martin Willi | 2012-08-30 | 3 | -5/+12 |
| | |||||
* | Support multiple virtual IPs on peer_cfg and ike_sa classes | Martin Willi | 2012-08-30 | 4 | -23/+46 |
| |