[strongSwan] local_ts based on user/group
Christian Salway
christian.salway at naimuri.com
Thu Oct 31 00:32:39 CET 2019
One possible way I can see this working is by using the _updown script to set firewall rules and set the local_ts with all private networks addresses...
up-client:)
# connection to my client subnet coming up
# If you are doing a custom version, firewall commands go here.
;;
down-client:)
# connection to my client subnet going down
# If you are doing a custom version, firewall commands go here.
;;
https://wiki.strongswan.org/projects/strongswan/repository/revisions/master/entry/src/_updown/_updown.in#L224 <https://wiki.strongswan.org/projects/strongswan/repository/revisions/master/entry/src/_updown/_updown.in#L224>
> On 30 Oct 2019, at 23:20, Christian Salway <christian.salway at naimuri.com> wrote:
>
> Hello,
>
>
> Is it possible to dynamically set the local_ts based on the group the user is a member of?
>
>
> I have 3 private networks and 1 public network that holds the strongSwan VPN server. From the public network, I can access each private network.
>
> When Carol connects to the VPN, I only want her to be able to access private networks 1 and 2.
> When David connects to the VPN, I only want him to be able to access private networks 2 and 3.
> When Anna connects, she can access all networks.
>
> Can you think of how this can be done in anyway using strongSwan? The problem I am facing is dynamically setting the local_ts before SS sends the routes to the client.
>
> This is my configuration so far:
>
>
> echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/ip_forward.conf
> sysctl -p /etc/sysctl.d/ip_forward.conf
>
> iptables -t nat -A POSTROUTING -s ${CLIENT_ADDR_POOL} -o eth0 -j MASQUERADE
> iptables-save > /etc/sysconfig/iptables
>
> sed -i "s|# \(install_routes\).*$|\1 = no|" /etc/strongswan/strongswan.d/charon.conf
>
> cat <<EOF > /etc/strongswan/swanctl/swanctl.conf
> connections {
> conn {
> version = 2
> send_cert = always
> unique = replace
> rekey_time = 10h
> dpd_delay = 1m
> local {
> auth = pubkey
> certs = vpnserver.crt
> id = ${SERVER_FQDNAME}
> }
> remote {
> auth = eap-mschapv2
> eap_id = %any
> # groups = ${AAA_GROUP}
> }
> children {
> child {
> local_ts = ${CIDR_A}, ${CIDR_B}, ${CIDR_C}
> # updown = /usr/libexec/strongswan/_updown iptables
> }
> }
> pools = pool
> }
> }
> pools {
> pool {
> addrs = ${CLIENT_ADDR_POOL}
> }
> }
> secrets {
> eap-test {
> id = test
> secret = Test123
> }
> }
> include conf.d/*.conf
> EOF
>
> systemctl start strongswan-swanctl
> systemctl enable strongswan-swanctl
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.strongswan.org/pipermail/users/attachments/20191030/23caeb62/attachment-0001.html>
More information about the Users
mailing list