ocserv/ocserv.spec

160 lines
5.8 KiB
RPMSpec
Raw Normal View History

#
# spec file for package ocserv
#
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: ocserv
Accepting request 1174680 from home:m407:branches:network:vpn - Update to version 1.3.0 * Switch to https://github.com/nodejs/llhttp from http-parser. http-parser was a liability as an unmaintained project (#598) * Bump the number of groups per account from 128 to 512 (#219) * Allow connecting users to select an authgroup by appending the group name to the URL, as in https://vpn.example.com/groupname; this introduces the select-group-by-url config option (#597). * Informational messages due to configuration loading are not printed during worker initialization. - Update to version 1.2.4 * Get connection speed limits (traffic shaping) from RADIUS (#554) * Fix logging to stderr: add missing newline. * Fixed compatibility with AnyConnect clients on Linux (#544) * Detect the new AnyConnect-compatible identifier of OpenConnect clients * occtl: Print bit rates as kb/s. - Update to version 1.2.3 * Treat unknown clients as capable of IPv6 routes and DNS servers * Introduced new ocserv options --log-stderr and --syslog that redirect logging to stderr or syslog explicitly. The stderr option allows for better integration with logging on containers or under systemd. The default remains syslog. * Warn when more than 2 DNS server IPv6 addresses are sent by Radius. * Improved server shutdown (#563) * Modified Camouflage functionality to allow AnyConnect clients (#544) * ocserv-fw: Move under libexec. * ocserv-fw: Fixed clean_all_rules logic on multiple similar devices (!384) * occtl: added machine-readable raw_connected_at field for user stats OBS-URL: https://build.opensuse.org/request/show/1174680 OBS-URL: https://build.opensuse.org/package/show/network:vpn/ocserv?expand=0&rev=53
2024-06-03 17:02:09 +02:00
Version: 1.3.0
Release: 0
Summary: OpenConnect VPN Server
License: GPL-2.0-only
Group: Productivity/Networking/Security
URL: https://ocserv.gitlab.io/www/
#Git-Clone: https://gitlab.com/openconnect/ocserv.git
Accepting request 796111 from home:mnhauke:network - Add signature and keyring for source verification - Build with support for maxminddb - Build with support for OATH - Update to version 1.0.1 * Prevent clients that use broken versions of gnutls from connecting using DTLS. * occtl: added machine-readable fields in json output. * occtl: IPs in ban list value is now reflecting the actual banned IPs rather than the database size. - Update to version 1.0.0 * Avoid crash on invalid configuration values. * Updated manpage generation to work with newer versions of ronn. * Ensure scripts have all the information on all disconnection types. * Several updates to further restrict the control that worker processes have on the main process. * Add support for RFC6750 bearer tokens. This adds the "auth=oidc" config option. See doc/README-oidc.md for more information. * Add USER_AGENT, DEVICE_TYPE and DEVICE_PLATFORM environment variables when connect/disconnect scripts execute. * Corrected issue with DTLS-PSK negotiation which prevented it from being enabled. * Improved IPv6 handling of AnyConnect client for Apple ios. * Fixed issue with Radius accounting. - Update to version 0.12.6 * Improved IPv6 support for anyconnect clients. * The 'split-dns' configuration directive can be used per-user. * The max-same-clients=1 configuration option no longer refuses the reconnection of an already connected user. * Added openat() to the accepted list of seccomp calls. This OBS-URL: https://build.opensuse.org/request/show/796111 OBS-URL: https://build.opensuse.org/package/show/network:vpn/ocserv?expand=0&rev=30
2020-07-03 13:12:30 +02:00
Source: ftp://ftp.infradead.org/pub/ocserv/%{name}-%{version}.tar.xz
Source1: ftp://ftp.infradead.org/pub/ocserv/%{name}-%{version}.tar.xz.sig
Source2: ca.tmpl
Source3: server.tmpl
Source4: user.tmpl
Source5: ocserv-forwarding.sh
Source6: ocserv.firewalld.xml
Source99: README.SUSE
Source100: gpgkey-1F42418905D8206AA754CCDC29EE58B996865171.gpg
#PATCH-FIX-UPSTREAM marguerite@opensuse.org $LIBSYSTEMD_DAEMON env is not set on openSUSE
Patch1: %{name}-enable-systemd.patch
#PATCH-FIX-UPSTREAM marguerite@opensuse.org tweak configuration
Patch2: %{name}.config.patch
#PATCH-FIX-OPENSUSE marguerite@opensuse.org leap doesn't have LZ4_compress_default
Patch3: %{name}-LZ4_compress_default.patch
BuildRequires: autogen
BuildRequires: dbus-1-devel
BuildRequires: firewall-macros
BuildRequires: freeradius-client-devel
BuildRequires: gperf
BuildRequires: gpg2
Accepting request 1174680 from home:m407:branches:network:vpn - Update to version 1.3.0 * Switch to https://github.com/nodejs/llhttp from http-parser. http-parser was a liability as an unmaintained project (#598) * Bump the number of groups per account from 128 to 512 (#219) * Allow connecting users to select an authgroup by appending the group name to the URL, as in https://vpn.example.com/groupname; this introduces the select-group-by-url config option (#597). * Informational messages due to configuration loading are not printed during worker initialization. - Update to version 1.2.4 * Get connection speed limits (traffic shaping) from RADIUS (#554) * Fix logging to stderr: add missing newline. * Fixed compatibility with AnyConnect clients on Linux (#544) * Detect the new AnyConnect-compatible identifier of OpenConnect clients * occtl: Print bit rates as kb/s. - Update to version 1.2.3 * Treat unknown clients as capable of IPv6 routes and DNS servers * Introduced new ocserv options --log-stderr and --syslog that redirect logging to stderr or syslog explicitly. The stderr option allows for better integration with logging on containers or under systemd. The default remains syslog. * Warn when more than 2 DNS server IPv6 addresses are sent by Radius. * Improved server shutdown (#563) * Modified Camouflage functionality to allow AnyConnect clients (#544) * ocserv-fw: Move under libexec. * ocserv-fw: Fixed clean_all_rules logic on multiple similar devices (!384) * occtl: added machine-readable raw_connected_at field for user stats OBS-URL: https://build.opensuse.org/request/show/1174680 OBS-URL: https://build.opensuse.org/package/show/network:vpn/ocserv?expand=0&rev=53
2024-06-03 17:02:09 +02:00
BuildRequires: ipcalc
BuildRequires: libev-devel
#!BuildIgnore: libevent-devel
BuildRequires: libgnutls-devel >= 3.1.10
BuildRequires: liblz4-devel
Accepting request 796111 from home:mnhauke:network - Add signature and keyring for source verification - Build with support for maxminddb - Build with support for OATH - Update to version 1.0.1 * Prevent clients that use broken versions of gnutls from connecting using DTLS. * occtl: added machine-readable fields in json output. * occtl: IPs in ban list value is now reflecting the actual banned IPs rather than the database size. - Update to version 1.0.0 * Avoid crash on invalid configuration values. * Updated manpage generation to work with newer versions of ronn. * Ensure scripts have all the information on all disconnection types. * Several updates to further restrict the control that worker processes have on the main process. * Add support for RFC6750 bearer tokens. This adds the "auth=oidc" config option. See doc/README-oidc.md for more information. * Add USER_AGENT, DEVICE_TYPE and DEVICE_PLATFORM environment variables when connect/disconnect scripts execute. * Corrected issue with DTLS-PSK negotiation which prevented it from being enabled. * Improved IPv6 handling of AnyConnect client for Apple ios. * Fixed issue with Radius accounting. - Update to version 0.12.6 * Improved IPv6 support for anyconnect clients. * The 'split-dns' configuration directive can be used per-user. * The max-same-clients=1 configuration option no longer refuses the reconnection of an already connected user. * Added openat() to the accepted list of seccomp calls. This OBS-URL: https://build.opensuse.org/request/show/796111 OBS-URL: https://build.opensuse.org/package/show/network:vpn/ocserv?expand=0&rev=30
2020-07-03 13:12:30 +02:00
BuildRequires: libmaxminddb-devel
BuildRequires: libnl3-devel
BuildRequires: libprotobuf-c-devel
BuildRequires: libseccomp-devel
BuildRequires: libtalloc-devel
BuildRequires: libtool
BuildRequires: pam-devel
BuildRequires: pkgconfig
BuildRequires: protobuf-c
BuildRequires: readline-devel
Accepting request 796111 from home:mnhauke:network - Add signature and keyring for source verification - Build with support for maxminddb - Build with support for OATH - Update to version 1.0.1 * Prevent clients that use broken versions of gnutls from connecting using DTLS. * occtl: added machine-readable fields in json output. * occtl: IPs in ban list value is now reflecting the actual banned IPs rather than the database size. - Update to version 1.0.0 * Avoid crash on invalid configuration values. * Updated manpage generation to work with newer versions of ronn. * Ensure scripts have all the information on all disconnection types. * Several updates to further restrict the control that worker processes have on the main process. * Add support for RFC6750 bearer tokens. This adds the "auth=oidc" config option. See doc/README-oidc.md for more information. * Add USER_AGENT, DEVICE_TYPE and DEVICE_PLATFORM environment variables when connect/disconnect scripts execute. * Corrected issue with DTLS-PSK negotiation which prevented it from being enabled. * Improved IPv6 handling of AnyConnect client for Apple ios. * Fixed issue with Radius accounting. - Update to version 0.12.6 * Improved IPv6 support for anyconnect clients. * The 'split-dns' configuration directive can be used per-user. * The max-same-clients=1 configuration option no longer refuses the reconnection of an already connected user. * Added openat() to the accepted list of seccomp calls. This OBS-URL: https://build.opensuse.org/request/show/796111 OBS-URL: https://build.opensuse.org/package/show/network:vpn/ocserv?expand=0&rev=30
2020-07-03 13:12:30 +02:00
BuildRequires: pkgconfig(liboath)
BuildRequires: pkgconfig(libsystemd)
BuildRequires: rubygem(ronn)
# /usr/bin/certtool for generating certificates
Requires: gnutls >= 3.1.10
%{?systemd_requires}
%description
OpenConnect server (ocserv) is an SSL VPN server. Its purpose is to
be a secure, small, fast and configurable VPN server. It implements
the OpenConnect SSL VPN protocol, and has also (currently experimental)
compatibility with clients using the AnyConnect SSL VPN protocol.
The OpenConnect protocol provides a dual TCP/UDP VPN channel, and
uses the standard IETF security protocols to secure it. The server
is implemented primarily for the GNU/Linux platform but its code
is designed to be portable to other UNIX variants as well.
Ocserv's main features are security through privilege separation
and sandboxing, accounting, and resilience due to a combined use
of TCP and UDP. Authentication occurs in an isolated security
module process, and each user is assigned an unprivileged worker
process, and a networking (tun) device. That not only eases the
control of the resources of each user or group of users, but also
prevents data leak (e.g., heartbleed-style attacks), and privilege
escalation due to any bug on the VPN handling (worker) process.
A management interface allows for viewing and querying logged-in users.
%prep
%autosetup -p1
%build
autoreconf -fiv
%configure --enable-systemd \
--enable-seccomp \
--disable-rpath \
--enable-local-libopts \
--enable-libopts-install
make V=1 %{?_smp_mflags}
%install
make %{?_smp_mflags} DESTDIR=%{buildroot} install
install -Dm 0755 %{SOURCE5} %{buildroot}%{_sbindir}/ocserv-forwarding
install -D -m 644 %{SOURCE6} %{buildroot}%{_prefix}/lib/firewalld/services/ocserv.xml
install -d %{buildroot}%{_sysconfdir}/ocserv/certificates
install -m 0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/ocserv/certificates
install -m 0644 %{SOURCE3} %{buildroot}%{_sysconfdir}/ocserv/certificates
install -m 0644 %{SOURCE4} %{buildroot}%{_sysconfdir}/ocserv/certificates
install -m 0644 %{SOURCE99} %{buildroot}%{_sysconfdir}/ocserv/
install -m 0644 doc/sample.config %{buildroot}%{_sysconfdir}/ocserv/ocserv.conf
install -m 0644 doc/sample.passwd %{buildroot}%{_sysconfdir}/ocserv/ocpasswd
install -m 0755 doc/scripts/ocserv-script %{buildroot}%{_bindir}
install -d %{buildroot}%{_unitdir}
# if --with-dubs, here should be "standalone"
install -m 0644 doc/systemd/socket-activated/ocserv.socket %{buildroot}%{_unitdir}
install -m 0644 doc/systemd/socket-activated/ocserv.service %{buildroot}%{_unitdir}
sed -i '/^\[Service\].*/a ExecStopPost=%{_sbindir}/ocserv-forwarding --disable' %{buildroot}%{_unitdir}/ocserv.service
sed -i '/^\[Service\].*/a ExecStartPre=%{_sbindir}/ocserv-forwarding --enable' %{buildroot}%{_unitdir}/ocserv.service
%pre
%service_add_pre ocserv.service ocserv.socket
%post
%service_add_post ocserv.service ocserv.socket
%firewalld_reload
%preun
%service_del_preun ocserv.service ocserv.socket
%postun
%service_del_postun ocserv.service ocserv.socket
%files
%defattr(-,root,root)
Accepting request 853618 from home:mnhauke:network - Update to version 1.1.2 * Allow setup of new DTLS session concurrent with old session. * Fixed an infinite loop on sec-mod crash when server-drain-ms is set. * Don't apply BanIP checks to clients on the same subnet. * Don't attempt TLS if the client closes the connection with zero data sent. * Increased the maximum configuration line; this allows banner messages longer than 200 characters. * Removed the listen-clear-file config option. This option was incompatible with several clients, and thus is unusable for a generic server. - Update to version 1.1.1: * Improved rate-limit-ms and made it dependent on secmod backlog. This makes the server more resilient (and prevents connection failures) on multiple concurrent connections - Added namespace support for listen address by introducing the listen-netns option. - Disable TLS1.3 when cisco client compatibility is enabled. New anyconnect clients seem to supporting TLS1.3 but are unable to handle a client with an RSA key. - Enable a race free user disconnection via occtl. - Added the config option of a pre-login-banner. - Ocserv siwtched to using multiple ocserv-sm processes to improve scale, with the number of ocserv-sm process dependent on maximum clients and number of CPUs. Configuration option sec-mod-scale can be used to override the heuristics. - Fixed issue with group selection on radius servers sending multiple group class attribute. OBS-URL: https://build.opensuse.org/request/show/853618 OBS-URL: https://build.opensuse.org/package/show/network:vpn/ocserv?expand=0&rev=37
2021-01-02 22:13:41 +01:00
%doc AUTHORS NEWS README.md
Accepting request 1107938 from home:mnhauke:network - Update to version 1.2.1 * Accept the Clavister OneConnect VPN Android client. * No longer require to set device name per vhost. * Account the correct number of points when proxyproto is in use * nuttcp tests were replaced with iperf3 that is available in more environments * occtl: fix duplicate key in `occtl --json show users` output - Update to version 1.2.0 * Add support for Cisco Enterprise phones to authenticate via the /svc endpoint and the 'cisco-svc-client-compat' config option. * Enhanced radius group support to enable radius servers send multiple group class attributes See doc/README-radius.md for more information. * Enhanced the seccomp filters to open files related to FIPS compliance on SuSe. * Added "Camouflage" functionality that makes ocserv look like a web server to unauthorized parties. * Avoid login failure when the end point of server URI contains a query string. * Make sure we print proper JSON with `occtl --debug --json` * Eliminated the need for using the gnulib portability library. - Update to version 1.1.7 * Emit a LOG_ERR error message with plain authentication fails * The bundled inih was updated to r56. * The bundled protobuf-c was updated to 1.4.1. * Enhanced the seccomp filters for ARMv7 compatibility and musl libc * HTTP headers always capitalised as in RFC 9110 OBS-URL: https://build.opensuse.org/request/show/1107938 OBS-URL: https://build.opensuse.org/package/show/network:vpn/ocserv?expand=0&rev=47
2023-09-02 13:14:37 +02:00
%license COPYING
%config %{_sysconfdir}/ocserv
%dir %{_prefix}/lib/firewalld
%dir %{_prefix}/lib/firewalld/services
%{_prefix}/lib/firewalld/services/ocserv.xml
%{_bindir}/occtl
%{_bindir}/ocpasswd
%{_bindir}/ocserv-script
Accepting request 1174680 from home:m407:branches:network:vpn - Update to version 1.3.0 * Switch to https://github.com/nodejs/llhttp from http-parser. http-parser was a liability as an unmaintained project (#598) * Bump the number of groups per account from 128 to 512 (#219) * Allow connecting users to select an authgroup by appending the group name to the URL, as in https://vpn.example.com/groupname; this introduces the select-group-by-url config option (#597). * Informational messages due to configuration loading are not printed during worker initialization. - Update to version 1.2.4 * Get connection speed limits (traffic shaping) from RADIUS (#554) * Fix logging to stderr: add missing newline. * Fixed compatibility with AnyConnect clients on Linux (#544) * Detect the new AnyConnect-compatible identifier of OpenConnect clients * occtl: Print bit rates as kb/s. - Update to version 1.2.3 * Treat unknown clients as capable of IPv6 routes and DNS servers * Introduced new ocserv options --log-stderr and --syslog that redirect logging to stderr or syslog explicitly. The stderr option allows for better integration with logging on containers or under systemd. The default remains syslog. * Warn when more than 2 DNS server IPv6 addresses are sent by Radius. * Improved server shutdown (#563) * Modified Camouflage functionality to allow AnyConnect clients (#544) * ocserv-fw: Move under libexec. * ocserv-fw: Fixed clean_all_rules logic on multiple similar devices (!384) * occtl: added machine-readable raw_connected_at field for user stats OBS-URL: https://build.opensuse.org/request/show/1174680 OBS-URL: https://build.opensuse.org/package/show/network:vpn/ocserv?expand=0&rev=53
2024-06-03 17:02:09 +02:00
%{_libexecdir}/ocserv-fw
%{_sbindir}/ocserv
%{_sbindir}/ocserv-forwarding
%{_sbindir}/ocserv-worker
%{_unitdir}/ocserv.service
%{_unitdir}/ocserv.socket
%{_mandir}/man8/occtl.8%{ext_man}
%{_mandir}/man8/ocpasswd.8%{ext_man}
%{_mandir}/man8/ocserv.8%{ext_man}
%changelog