Compare commits

..

12 Commits

Author SHA1 Message Date
Zoran Peričić
9f47d698f5 v.ims.1 - Bump version 2023-01-25 18:37:31 +01:00
cb7be7535f nhrp: configure strongswan vici path 2023-01-25 18:37:31 +01:00
Michal Ruprich
12cd4431e4 New version 8.4.2 2023-01-12 16:29:19 +01:00
Michal Ruprich
858f96ce3e New version 8.4.1
Fix for rhbz #2140705
2022-11-25 18:07:53 +01:00
Michal Ruprich
519e1a5f6a New version 8.4 2022-11-10 10:31:46 +01:00
Michal Ruprich
964a13758e Rebuilding because of weird abseil-cpp version mismatch in the compose (rhbz #2128691) 2022-09-22 10:10:15 +02:00
Michal Ruprich
a5ca1b7fce Adding SELinux rule to enable zebra to write to sysctl_net_t
Adding SELinux rule to enable bgpd to call name_connect to bgp_port_t
2022-09-16 16:02:34 +02:00
Michal Ruprich
8c46bbbf5c Adding a couple of rules to tackle AVCs 2022-09-09 19:07:50 +02:00
Michal Ruprich
61a4e5aa67 Resolves: #2124254 - frr can no longer update routes 2022-09-09 16:11:03 +02:00
Michal Ruprich
2462abb0da Resolves: #2124253 - SELinux is preventing zebra from setattr access on the directory frr
Better handling FRR files during upgrade
2022-09-07 11:48:06 +02:00
Michal Ruprich
c4595285be Forgot to add a patch 2022-09-06 13:31:47 +02:00
Michal Ruprich
879b7a1f73 New version 8.3.1 2022-09-06 13:26:06 +02:00
12 changed files with 66 additions and 449 deletions

7
.gitignore vendored
View File

@@ -14,10 +14,3 @@
/frr-8.4.tar.gz /frr-8.4.tar.gz
/frr-8.4.1.tar.gz /frr-8.4.1.tar.gz
/frr-8.4.2.tar.gz /frr-8.4.2.tar.gz
/frr-8.5.tar.gz
/frr-8.5.1.tar.gz
/frr-8.5.2.tar.gz
/frr-9.0.1.tar.gz
/frr-9.1.tar.gz
/frr-10.0.1.tar.gz
/frr-10.1.tar.gz

View File

@@ -16,9 +16,9 @@ index 5be3264..33abc1d 100644
snapcraft/helpers \ snapcraft/helpers \
snapcraft/snap \ snapcraft/snap \
- babeld/Makefile \ - babeld/Makefile \
mgmtd/Makefile \
bgpd/Makefile \ bgpd/Makefile \
bgpd/rfp-example/librfp/Makefile \ bgpd/rfp-example/librfp/Makefile \
bgpd/rfp-example/rfptest/Makefile \
@@ -193,7 +190,6 @@ EXTRA_DIST += \ @@ -193,7 +190,6 @@ EXTRA_DIST += \
fpm/Makefile \ fpm/Makefile \
grpc/Makefile \ grpc/Makefile \

View File

@@ -8,8 +8,8 @@ index 0b7af18..0533e24 100644
lib/log_vty.c \ lib/log_vty.c \
- lib/md5.c \ - lib/md5.c \
lib/memory.c \ lib/memory.c \
lib/mgmt_be_client.c \ lib/mlag.c \
lib/mgmt_fe_client.c \ lib/module.c \
@@ -64,7 +64,6 @@ lib_libfrr_la_SOURCES = \ @@ -64,7 +64,6 @@ lib_libfrr_la_SOURCES = \
lib/routemap_northbound.c \ lib/routemap_northbound.c \
lib/sbuf.c \ lib/sbuf.c \
@@ -24,8 +24,8 @@ index 0b7af18..0533e24 100644
lib/log_vty.h \ lib/log_vty.h \
- lib/md5.h \ - lib/md5.h \
lib/memory.h \ lib/memory.h \
lib/mgmt.pb-c.h \ lib/module.h \
lib/mgmt_be_client.h \ lib/monotime.h \
@@ -191,7 +190,6 @@ pkginclude_HEADERS += \ @@ -191,7 +190,6 @@ pkginclude_HEADERS += \
lib/route_opaque.h \ lib/route_opaque.h \
lib/sbuf.h \ lib/sbuf.h \

View File

@@ -2,20 +2,9 @@ diff --git a/ospfd/ospf_vty.c b/ospfd/ospf_vty.c
index 631465f..e084ff3 100644 index 631465f..e084ff3 100644
--- a/ospfd/ospf_vty.c --- a/ospfd/ospf_vty.c
+++ b/ospfd/ospf_vty.c +++ b/ospfd/ospf_vty.c
@@ -7,6 +7,10 @@
#include <zebra.h>
#include <string.h>
+#ifdef CRYPTO_OPENSSL
+#include <openssl/fips.h>
+#endif
+
#include "printfrr.h"
#include "monotime.h"
#include "memory.h"
@@ -1136,6 +1136,11 @@ DEFUN (ospf_area_vlink, @@ -1136,6 +1136,11 @@ DEFUN (ospf_area_vlink,
vl_config.keychain = argv[idx+1]->arg;
} else if (argv_find(argv, argc, "message-digest", &idx)) { if (argv_find(argv, argc, "message-digest", &idx)) {
/* authentication message-digest */ /* authentication message-digest */
+ if(FIPS_mode()) + if(FIPS_mode())
+ { + {
@@ -52,7 +41,7 @@ index 631465f..e084ff3 100644
+ } + }
SET_IF_PARAM(params, auth_type); SET_IF_PARAM(params, auth_type);
params->auth_type = OSPF_AUTH_CRYPTOGRAPHIC; params->auth_type = OSPF_AUTH_CRYPTOGRAPHIC;
UNSET_IF_PARAM(params, keychain_name); return CMD_SUCCESS;
@@ -6971,6 +6990,11 @@ DEFUN (ip_ospf_message_digest_key, @@ -6971,6 +6990,11 @@ DEFUN (ip_ospf_message_digest_key,
"The OSPF password (key)\n" "The OSPF password (key)\n"
"Address of interface\n") "Address of interface\n")
@@ -69,17 +58,6 @@ diff --git a/isisd/isis_circuit.c b/isisd/isis_circuit.c
index 81b4b39..cce33d9 100644 index 81b4b39..cce33d9 100644
--- a/isisd/isis_circuit.c --- a/isisd/isis_circuit.c
+++ b/isisd/isis_circuit.c +++ b/isisd/isis_circuit.c
@@ -13,6 +13,10 @@
#include <netinet/if_ether.h>
#endif
+#ifdef CRYPTO_OPENSSL
+#include <openssl/fips.h>
+#endif
+
#include "log.h"
#include "memory.h"
#include "vrf.h"
@@ -1318,6 +1318,10 @@ static int isis_circuit_passwd_set(struct isis_circuit *circuit, @@ -1318,6 +1318,10 @@ static int isis_circuit_passwd_set(struct isis_circuit *circuit,
return ferr_code_bug( return ferr_code_bug(
"circuit password too long (max 254 chars)"); "circuit password too long (max 254 chars)");
@@ -95,17 +73,6 @@ diff --git a/isisd/isisd.c b/isisd/isisd.c
index 419127c..a6c36af 100644 index 419127c..a6c36af 100644
--- a/isisd/isisd.c --- a/isisd/isisd.c
+++ b/isisd/isisd.c +++ b/isisd/isisd.c
@@ -9,6 +9,10 @@
#include <zebra.h>
+#ifdef CRYPTO_OPENSSL
+#include <openssl/fips.h>
+#endif
+
#include "frrevent.h"
#include "vty.h"
#include "command.h"
@@ -1638,6 +1638,10 @@ static int isis_area_passwd_set(struct isis_area *area, int level, @@ -1638,6 +1638,10 @@ static int isis_area_passwd_set(struct isis_area *area, int level,
if (len > 254) if (len > 254)
return -1; return -1;
@@ -121,17 +88,6 @@ diff --git a/ripd/rip_cli.c b/ripd/rip_cli.c
index 5bb81ef..02a09ef 100644 index 5bb81ef..02a09ef 100644
--- a/ripd/rip_cli.c --- a/ripd/rip_cli.c
+++ b/ripd/rip_cli.c +++ b/ripd/rip_cli.c
@@ -7,6 +7,10 @@
#include <zebra.h>
+#ifdef CRYPTO_OPENSSL
+#include <openssl/fips.h>
+#endif
+
#include "if.h"
#include "if_rmap.h"
#include "vrf.h"
@@ -796,6 +796,12 @@ DEFPY (ip_rip_authentication_mode, @@ -796,6 +796,12 @@ DEFPY (ip_rip_authentication_mode,
value = "20"; value = "20";
} }
@@ -145,3 +101,15 @@ index 5bb81ef..02a09ef 100644
nb_cli_enqueue_change(vty, "./authentication-scheme/mode", NB_OP_MODIFY, nb_cli_enqueue_change(vty, "./authentication-scheme/mode", NB_OP_MODIFY,
strmatch(mode, "md5") ? "md5" : "plain-text"); strmatch(mode, "md5") ? "md5" : "plain-text");
if (strmatch(mode, "md5")) if (strmatch(mode, "md5"))
diff --git a/lib/zebra.h b/lib/zebra.h
index 53ae5b4..930307f 100644
--- a/lib/zebra.h
+++ b/lib/zebra.h
@@ -114,6 +114,7 @@
#ifdef CRYPTO_OPENSSL
#include <openssl/evp.h>
#include <openssl/hmac.h>
+#include <openssl/fips.h>
#endif
#include "openbsd-tree.h"

View File

@@ -2,12 +2,12 @@ diff --git a/tests/lib/subdir.am b/tests/lib/subdir.am
index 7b5eaa4..5c82f69 100644 index 7b5eaa4..5c82f69 100644
--- a/tests/lib/subdir.am --- a/tests/lib/subdir.am
+++ b/tests/lib/subdir.am +++ b/tests/lib/subdir.am
@@ -18,22 +18,6 @@ tests_lib_test_frrscript_SOURCES = tests/lib/test_frrscript.c @@ -18,18 +18,6 @@ tests_lib_test_frrscript_SOURCES = tests/lib/test_frrscript.c
test -e tests/lib/script1.lua || \ EXTRA_DIST += tests/lib/test_frrscript.py
$(INSTALL_SCRIPT) $< tests/lib/script1.lua
-############################################################################## -##############################################################################
-GRPC_TESTS_LDADD = mgmtd/libmgmt_be_nb.la staticd/libstatic.a grpc/libfrrgrpc_pb.la $(GRPC_LIBS) $(ALL_TESTS_LDADD) $(LIBYANG_LIBS) -lm -GRPC_TESTS_LDADD = staticd/libstatic.a grpc/libfrrgrpc_pb.la -lgrpc++ -lprotobuf $(ALL_TESTS_LDADD) $(LIBYANG_LIBS) -lm
- -
-if GRPC -if GRPC
-check_PROGRAMS += tests/lib/test_grpc -check_PROGRAMS += tests/lib/test_grpc
@@ -16,10 +16,6 @@ index 7b5eaa4..5c82f69 100644
-tests_lib_test_grpc_CPPFLAGS = $(TESTS_CPPFLAGS) -tests_lib_test_grpc_CPPFLAGS = $(TESTS_CPPFLAGS)
-tests_lib_test_grpc_LDADD = $(GRPC_TESTS_LDADD) -tests_lib_test_grpc_LDADD = $(GRPC_TESTS_LDADD)
-tests_lib_test_grpc_SOURCES = tests/lib/test_grpc.cpp -tests_lib_test_grpc_SOURCES = tests/lib/test_grpc.cpp
-nodist_tests_lib_test_grpc_SOURCES = \
- yang/frr-bfdd.yang.c \
- yang/frr-staticd.yang.c \
- # end
- -
- -
############################################################################## ##############################################################################

View File

@@ -1,167 +0,0 @@
--- b/tests/topotests/zebra_multiple_connected/test_zebra_multiple_connected.py
+++ a/tests/topotests/zebra_multiple_connected/test_zebra_multiple_connected.py
@@ -144,23 +144,6 @@
assert result is None, "Kernel route is missing from zebra"
-def test_zebra_noprefix_connected():
- "Test that a noprefixroute created does not create a connected route"
-
- tgen = get_topogen()
- if tgen.routers_have_failure():
- pytest.skip(tgen.errors)
-
- router = tgen.gears["r1"]
- router.run("ip addr add 192.168.44.1/24 dev r1-eth1 noprefixroute")
- expected = "% Network not in table"
- test_func = partial(
- topotest.router_output_cmp, router, "show ip route 192.168.44.0/24", expected
- )
- result, diff = topotest.run_and_expect(test_func, "", count=20, wait=1)
- assert result, "Connected Route should not have been added"
-
-
if __name__ == "__main__":
args = ["-s"] + sys.argv[1:]
sys.exit(pytest.main(args))
--- b/zebra/if_netlink.c
+++ a/zebra/if_netlink.c
@@ -1423,9 +1423,6 @@
if (kernel_flags & IFA_F_SECONDARY)
dplane_ctx_intf_set_secondary(ctx);
- if (kernel_flags & IFA_F_NOPREFIXROUTE)
- dplane_ctx_intf_set_noprefixroute(ctx);
-
/* Label */
if (tb[IFA_LABEL]) {
label = (char *)RTA_DATA(tb[IFA_LABEL]);
--- b/zebra/zebra_dplane.c
+++ a/zebra/zebra_dplane.c
@@ -230,7 +230,6 @@
#define DPLANE_INTF_BROADCAST (1 << 2)
#define DPLANE_INTF_HAS_DEST DPLANE_INTF_CONNECTED
#define DPLANE_INTF_HAS_LABEL (1 << 4)
-#define DPLANE_INTF_NOPREFIXROUTE (1 << 5)
/* Interface address/prefix */
struct prefix prefix;
@@ -2542,13 +2541,6 @@
return (ctx->u.intf.flags & DPLANE_INTF_CONNECTED);
}
-bool dplane_ctx_intf_is_noprefixroute(const struct zebra_dplane_ctx *ctx)
-{
- DPLANE_CTX_VALID(ctx);
-
- return (ctx->u.intf.flags & DPLANE_INTF_NOPREFIXROUTE);
-}
-
bool dplane_ctx_intf_is_secondary(const struct zebra_dplane_ctx *ctx)
{
DPLANE_CTX_VALID(ctx);
@@ -2577,13 +2569,6 @@
ctx->u.intf.flags |= DPLANE_INTF_SECONDARY;
}
-void dplane_ctx_intf_set_noprefixroute(struct zebra_dplane_ctx *ctx)
-{
- DPLANE_CTX_VALID(ctx);
-
- ctx->u.intf.flags |= DPLANE_INTF_NOPREFIXROUTE;
-}
-
void dplane_ctx_intf_set_broadcast(struct zebra_dplane_ctx *ctx)
{
DPLANE_CTX_VALID(ctx);
--- b/zebra/zebra_dplane.h
+++ a/zebra/zebra_dplane.h
@@ -658,8 +658,6 @@
void dplane_ctx_intf_set_connected(struct zebra_dplane_ctx *ctx);
bool dplane_ctx_intf_is_secondary(const struct zebra_dplane_ctx *ctx);
void dplane_ctx_intf_set_secondary(struct zebra_dplane_ctx *ctx);
-bool dplane_ctx_intf_is_noprefixroute(const struct zebra_dplane_ctx *ctx);
-void dplane_ctx_intf_set_noprefixroute(struct zebra_dplane_ctx *ctx);
bool dplane_ctx_intf_is_broadcast(const struct zebra_dplane_ctx *ctx);
void dplane_ctx_intf_set_broadcast(struct zebra_dplane_ctx *ctx);
const struct prefix *dplane_ctx_get_intf_addr(
--- b/lib/if.h
+++ a/lib/if.h
@@ -434,8 +434,6 @@
#define ZEBRA_IFA_SECONDARY (1 << 0)
#define ZEBRA_IFA_PEER (1 << 1)
#define ZEBRA_IFA_UNNUMBERED (1 << 2)
-#define ZEBRA_IFA_NOPREFIXROUTE (1 << 3)
-
/* N.B. the ZEBRA_IFA_PEER flag should be set if and only if
a peer address has been configured. If this flag is set,
the destination field must contain the peer address.
--- b/zebra/connected.c
+++ a/zebra/connected.c
@@ -282,15 +282,13 @@
return;
}
+ rib_add(afi, SAFI_UNICAST, zvrf->vrf->vrf_id, ZEBRA_ROUTE_CONNECT, 0,
+ flags, &p, NULL, &nh, 0, zvrf->table_id, metric, 0, 0, 0,
+ false);
- if (!CHECK_FLAG(ifc->flags, ZEBRA_IFA_NOPREFIXROUTE)) {
- rib_add(afi, SAFI_UNICAST, zvrf->vrf->vrf_id,
- ZEBRA_ROUTE_CONNECT, 0, flags, &p, NULL, &nh, 0,
- zvrf->table_id, metric, 0, 0, 0, false);
+ rib_add(afi, SAFI_MULTICAST, zvrf->vrf->vrf_id, ZEBRA_ROUTE_CONNECT, 0,
+ flags, &p, NULL, &nh, 0, zvrf->table_id, metric, 0, 0, 0,
+ false);
- rib_add(afi, SAFI_MULTICAST, zvrf->vrf->vrf_id,
- ZEBRA_ROUTE_CONNECT, 0, flags, &p, NULL, &nh, 0,
- zvrf->table_id, metric, 0, 0, 0, false);
- }
if (install_local) {
rib_add(afi, SAFI_UNICAST, zvrf->vrf->vrf_id, ZEBRA_ROUTE_LOCAL,
@@ -483,15 +481,11 @@
* Same logic as for connected_up(): push the changes into the
* head.
*/
+ rib_delete(afi, SAFI_UNICAST, zvrf->vrf->vrf_id, ZEBRA_ROUTE_CONNECT, 0,
+ 0, &p, NULL, &nh, 0, zvrf->table_id, 0, 0, false);
- if (!CHECK_FLAG(ifc->flags, ZEBRA_IFA_NOPREFIXROUTE)) {
- rib_delete(afi, SAFI_UNICAST, zvrf->vrf->vrf_id,
- ZEBRA_ROUTE_CONNECT, 0, 0, &p, NULL, &nh, 0,
- zvrf->table_id, 0, 0, false);
+ rib_delete(afi, SAFI_MULTICAST, zvrf->vrf->vrf_id, ZEBRA_ROUTE_CONNECT,
+ 0, 0, &p, NULL, &nh, 0, zvrf->table_id, 0, 0, false);
- rib_delete(afi, SAFI_MULTICAST, zvrf->vrf->vrf_id,
- ZEBRA_ROUTE_CONNECT, 0, 0, &p, NULL, &nh, 0,
- zvrf->table_id, 0, 0, false);
- }
if (remove_local) {
rib_delete(afi, SAFI_UNICAST, zvrf->vrf->vrf_id,
--- b/zebra/interface.c
+++ a/zebra/interface.c
@@ -1317,9 +1317,6 @@
if (dplane_ctx_intf_is_secondary(ctx))
SET_FLAG(flags, ZEBRA_IFA_SECONDARY);
- if (dplane_ctx_intf_is_noprefixroute(ctx))
- SET_FLAG(flags, ZEBRA_IFA_NOPREFIXROUTE);
-
/* Label? */
if (dplane_ctx_intf_has_label(ctx))
label = dplane_ctx_get_intf_label(ctx);
@@ -2337,12 +2334,6 @@
else if (CHECK_FLAG(connected->flags, ZEBRA_IFA_SECONDARY))
vty_out(vty, " secondary");
- if (json)
- json_object_boolean_add(json_addr, "noPrefixRoute",
- CHECK_FLAG(connected->flags, ZEBRA_IFA_NOPREFIXROUTE));
- else if (CHECK_FLAG(connected->flags, ZEBRA_IFA_NOPREFIXROUTE))
- vty_out(vty, " noprefixroute");
-
if (json)
json_object_boolean_add(
json_addr, "unnumbered",

35
frr.fc
View File

@@ -1,4 +1,4 @@
/usr/libexec/frr/(.*)? gen_context(system_u:object_r:frr_exec_t,s0) /usr/libexec/frr(/.*)? gen_context(system_u:object_r:frr_exec_t,s0)
/usr/lib/systemd/system/frr.* gen_context(system_u:object_r:frr_unit_file_t,s0) /usr/lib/systemd/system/frr.* gen_context(system_u:object_r:frr_unit_file_t,s0)
@@ -6,25 +6,22 @@
/var/log/frr(/.*)? gen_context(system_u:object_r:frr_log_t,s0) /var/log/frr(/.*)? gen_context(system_u:object_r:frr_log_t,s0)
/var/tmp/frr(/.*)? gen_context(system_u:object_r:frr_tmp_t,s0) /var/tmp/frr(/.*)? gen_context(system_u:object_r:frr_tmp_t,s0)
/var/lib/frr(/.*)? gen_context(system_u:object_r:frr_var_lib_t,s0)
/run/lock/subsys/bfdd -- gen_context(system_u:object_r:frr_lock_t,s0) /var/lock/subsys/bfdd -- gen_context(system_u:object_r:frr_lock_t,s0)
/run/lock/subsys/bgpd -- gen_context(system_u:object_r:frr_lock_t,s0) /var/lock/subsys/bgpd -- gen_context(system_u:object_r:frr_lock_t,s0)
/run/lock/subsys/eigrpd -- gen_context(system_u:object_r:frr_lock_t,s0) /var/lock/subsys/eigrpd -- gen_context(system_u:object_r:frr_lock_t,s0)
/run/lock/subsys/fabricd -- gen_context(system_u:object_r:frr_lock_t,s0) /var/lock/subsys/fabricd -- gen_context(system_u:object_r:frr_lock_t,s0)
/run/lock/subsys/isisd -- gen_context(system_u:object_r:frr_lock_t,s0) /var/lock/subsys/isisd -- gen_context(system_u:object_r:frr_lock_t,s0)
/run/lock/subsys/nhrpd -- gen_context(system_u:object_r:frr_lock_t,s0) /var/lock/subsys/nhrpd -- gen_context(system_u:object_r:frr_lock_t,s0)
/run/lock/subsys/ospf6d -- gen_context(system_u:object_r:frr_lock_t,s0) /var/lock/subsys/ospf6d -- gen_context(system_u:object_r:frr_lock_t,s0)
/run/lock/subsys/ospfd -- gen_context(system_u:object_r:frr_lock_t,s0) /var/lock/subsys/ospfd -- gen_context(system_u:object_r:frr_lock_t,s0)
/run/lock/subsys/pbrd -- gen_context(system_u:object_r:frr_lock_t,s0) /var/lock/subsys/pbrd -- gen_context(system_u:object_r:frr_lock_t,s0)
/run/lock/subsys/pimd -- gen_context(system_u:object_r:frr_lock_t,s0) /var/lock/subsys/pimd -- gen_context(system_u:object_r:frr_lock_t,s0)
/run/lock/subsys/ripd -- gen_context(system_u:object_r:frr_lock_t,s0) /var/lock/subsys/ripd -- gen_context(system_u:object_r:frr_lock_t,s0)
/run/lock/subsys/ripngd -- gen_context(system_u:object_r:frr_lock_t,s0) /var/lock/subsys/ripngd -- gen_context(system_u:object_r:frr_lock_t,s0)
/run/lock/subsys/staticd -- gen_context(system_u:object_r:frr_lock_t,s0) /var/lock/subsys/staticd -- gen_context(system_u:object_r:frr_lock_t,s0)
/run/lock/subsys/zebra -- gen_context(system_u:object_r:frr_lock_t,s0) /var/lock/subsys/zebra -- gen_context(system_u:object_r:frr_lock_t,s0)
/run/lock/subsys/vrrpd -- gen_context(system_u:object_r:frr_lock_t,s0)
/run/lock/subsys/pathd -- gen_context(system_u:object_r:frr_lock_t,s0)
/run/frr(/.*)? gen_context(system_u:object_r:frr_var_run_t,s0) /var/run/frr(/.*)? gen_context(system_u:object_r:frr_var_run_t,s0)
/usr/bin/vtysh -- gen_context(system_u:object_r:frr_exec_t,s0) /usr/bin/vtysh -- gen_context(system_u:object_r:frr_exec_t,s0)

52
frr.if
View File

@@ -160,55 +160,3 @@ interface(`frr_admin',`
systemd_read_fifo_file_passwd_run($1) systemd_read_fifo_file_passwd_run($1)
') ')
') ')
########################################
#
# Interface compatibility blocks
#
# The following definitions ensure compatibility with distribution policy
# versions that do not contain given interfaces (epel, or older Fedora
# releases).
# Each block tests for existence of given interface and defines it if needed.
#
######################################
## <summary>
## Watch ifconfig_var_run_t directories
## </summary>
## <param name="domain">
## <summary>
## Domain allowed access.
## </summary>
## </param>
#
ifndef(`sysnet_watch_ifconfig_run_dirs',`
interface(`sysnet_watch_ifconfig_run_dirs',`
gen_require(`
type ifconfig_var_run_t;
')
watch_dirs_pattern($1, ifconfig_var_run_t, ifconfig_var_run_t)
')
')
########################################
## <summary>
## Read ifconfig_var_run_t files and link files
## </summary>
## <param name="domain">
## <summary>
## Domain allowed access.
## </summary>
## </param>
#
ifndef(`sysnet_read_ifconfig_run_files',`
interface(`sysnet_read_ifconfig_run_files',`
gen_require(`
type ifconfig_var_run_t;
')
list_dirs_pattern($1, ifconfig_var_run_t, ifconfig_var_run_t)
read_files_pattern($1, ifconfig_var_run_t, ifconfig_var_run_t)
read_lnk_files_pattern($1, ifconfig_var_run_t, ifconfig_var_run_t)
')
')

136
frr.spec
View File

@@ -1,17 +1,17 @@
%global dist .ims.1%{?dist}
%global frr_libdir %{_libexecdir}/frr %global frr_libdir %{_libexecdir}/frr
%global _hardened_build 1 %global _hardened_build 1
%global selinuxtype targeted %global selinuxtype targeted
%define _legacy_common_support 1 %define _legacy_common_support 1
%bcond_without selinux
%bcond grpc %{undefined rhel}
%bcond selinux 1
Name: frr Name: frr
Version: 10.1 Version: 8.4.2
Release: 4%{?dist} Release: 1%{?dist}
Summary: Routing daemon Summary: Routing daemon
License: GPL-2.0-or-later AND ISC AND LGPL-2.0-or-later AND BSD-2-Clause AND BSD-3-Clause AND (GPL-2.0-or-later OR ISC) AND MIT License: GPLv2+
URL: http://www.frrouting.org URL: http://www.frrouting.org
Source0: https://github.com/FRRouting/frr/releases/download/%{name}-%{version}/%{name}-%{version}.tar.gz Source0: https://github.com/FRRouting/frr/releases/download/%{name}-%{version}/%{name}-%{version}.tar.gz
Source1: %{name}-tmpfiles.conf Source1: %{name}-tmpfiles.conf
@@ -26,7 +26,6 @@ Patch0002: 0002-enable-openssl.patch
Patch0003: 0003-disable-eigrp-crypto.patch Patch0003: 0003-disable-eigrp-crypto.patch
Patch0004: 0004-fips-mode.patch Patch0004: 0004-fips-mode.patch
Patch0005: 0005-remove-grpc-test.patch Patch0005: 0005-remove-grpc-test.patch
Patch0006: 0006-noprefixroute-network-manager.patch
BuildRequires: autoconf BuildRequires: autoconf
BuildRequires: automake BuildRequires: automake
@@ -37,10 +36,8 @@ BuildRequires: gcc
BuildRequires: gcc-c++ BuildRequires: gcc-c++
BuildRequires: git-core BuildRequires: git-core
BuildRequires: groff BuildRequires: groff
%if %{with grpc}
BuildRequires: grpc-devel BuildRequires: grpc-devel
BuildRequires: grpc-plugins BuildRequires: grpc-plugins
%endif
BuildRequires: json-c-devel BuildRequires: json-c-devel
BuildRequires: libcap-devel BuildRequires: libcap-devel
BuildRequires: libtool BuildRequires: libtool
@@ -60,7 +57,6 @@ BuildRequires: readline-devel
BuildRequires: systemd-devel BuildRequires: systemd-devel
BuildRequires: systemd-rpm-macros BuildRequires: systemd-rpm-macros
BuildRequires: texinfo BuildRequires: texinfo
BuildRequires: protobuf-c-devel
Requires: ncurses Requires: ncurses
Requires: net-snmp Requires: net-snmp
@@ -82,18 +78,17 @@ FRRouting is free software that manages TCP/IP based routing protocols. It takes
a multi-server and multi-threaded approach to resolve the current complexity a multi-server and multi-threaded approach to resolve the current complexity
of the Internet. of the Internet.
FRRouting supports BGP4, OSPFv2, OSPFv3, ISIS, RIP, RIPng, PIM, NHRP, PBR, FRRouting supports BGP4, OSPFv2, OSPFv3, ISIS, RIP, RIPng, PIM, NHRP, PBR, EIGRP and BFD.
EIGRP and BFD.
FRRouting is a fork of Quagga. FRRouting is a fork of Quagga.
%if 0%{?with_selinux} %if 0%{?with_selinux}
%package selinux %package selinux
Summary: Selinux policy for FRR Summary: Selinux policy for FRR
BuildArch: noarch BuildArch: noarch
Requires: selinux-policy-%{selinuxtype} Requires: selinux-policy-%{selinuxtype}
Requires(post): selinux-policy-%{selinuxtype} Requires(post): selinux-policy-%{selinuxtype}
BuildRequires: selinux-policy-devel BuildRequires: selinux-policy-devel
%{?selinux_requires} %{?selinux_requires}
%description selinux %description selinux
@@ -106,8 +101,6 @@ SELinux policy modules for FRR package
#Selinux #Selinux
mkdir selinux mkdir selinux
cp -p %{SOURCE3} %{SOURCE4} %{SOURCE5} selinux cp -p %{SOURCE3} %{SOURCE4} %{SOURCE5} selinux
# C++14 or later needed for abseil-cpp 20230125; string_view needs C++17:
sed -r -i 's/(AX_CXX_COMPILE_STDCXX\(\[)11(\])/\117\2/' configure.ac
%build %build
autoreconf -ivf autoreconf -ivf
@@ -133,10 +126,10 @@ autoreconf -ivf
--disable-ldpd \ --disable-ldpd \
--disable-babeld \ --disable-babeld \
--with-moduledir=%{_libdir}/frr/modules \ --with-moduledir=%{_libdir}/frr/modules \
--with-yangmodelsdir=%{_datadir}/frr-yang/ \
--with-crypto=openssl \ --with-crypto=openssl \
--with-vici-socket=/run/strongswan/charon.vici \
--enable-fpm \ --enable-fpm \
%{?with_grpc:--enable-grpc} --enable-grpc
%make_build MAKEINFO="makeinfo --no-split" PYTHON=%{__python3} %make_build MAKEINFO="makeinfo --no-split" PYTHON=%{__python3}
@@ -177,7 +170,7 @@ install -d -m 775 %{buildroot}/run/frr
%if 0%{?with_selinux} %if 0%{?with_selinux}
install -D -m 644 selinux/%{name}.pp.bz2 \ install -D -m 644 selinux/%{name}.pp.bz2 \
%{buildroot}%{_datadir}/selinux/packages/%{selinuxtype}/%{name}.pp.bz2 %{buildroot}%{_datadir}/selinux/packages/%{selinuxtype}/%{name}.pp.bz2
install -D -m 644 selinux/%{name}.if %{buildroot}%{_datadir}/selinux/devel/include/distributed/%{name}.if install -D -m 644 selinux/%{name}.if %{buildroot}%{_datadir}/selinux/devel/include/distributed/%{name}.if
%endif %endif
@@ -264,8 +257,8 @@ rm tests/lib/*grpc*
%config(noreplace) %attr(644,frr,frr) %{_sysconfdir}/frr/daemons %config(noreplace) %attr(644,frr,frr) %{_sysconfdir}/frr/daemons
%config(noreplace) %{_sysconfdir}/pam.d/frr %config(noreplace) %{_sysconfdir}/pam.d/frr
%{_unitdir}/*.service %{_unitdir}/*.service
%dir %{_datadir}/frr-yang %dir %{_datadir}/yang
%{_datadir}/frr-yang/*.yang %{_datadir}/yang/*.yang
%{_tmpfilesdir}/%{name}.conf %{_tmpfilesdir}/%{name}.conf
%{_sysusersdir}/%{name}.conf %{_sysusersdir}/%{name}.conf
@@ -277,87 +270,6 @@ rm tests/lib/*grpc*
%endif %endif
%changelog %changelog
* Tue Sep 10 2024 Michal Ruprich <mruprich@redhat.com> - 10.1-4
- Resolves: #2311119 - Multiple AVCs for accessing lib_t in FRR-10.1
- Resolves: #2311120 - AVCs for using a netlink socket in FRR
* Sun Aug 25 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 10.1-3
- Rebuilt for abseil-cpp-20240722.0
* Thu Aug 15 2024 Michal Ruprich <mruprich@redhat.com> - 10.1-2
- Rebuilding for the libre soname bump
* Mon Aug 12 2024 Michal Ruprich <mruprich@redhat.com> - 10.1-1
- New version 10.1
* Wed Jul 31 2024 Michal Ruprich <mruprich@redhat.com> - 10.0.1-1
- New version 10.0.1
* Wed Jul 17 2024 Fedora Release Engineering <releng@fedoraproject.org> - 9.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Wed Apr 17 2024 Michal Ruprich <mruprich@redhat.com> - 9.1-4
- Moving yang modules to frr specific dir to avoid conflicts
- Adding rpminspect.yaml
* Sat Feb 24 2024 Paul Wouters <paul.wouters@aiven.io> - 9.1-3
- Rebuild for libre2.so.11 bump
* Sun Feb 04 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 9.1-2
- Rebuilt for abseil-cpp-20240116.0
* Thu Jan 25 2024 Michal Ruprich <mruprich@redhat.com> - 9.1-1
- New version 9.1
* Wed Jan 24 2024 Fedora Release Engineering <releng@fedoraproject.org> - 9.0.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 9.0.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Mon Oct 16 2023 Michal Ruprich <mruprich@redhat.com> - 9.0.1-1
- New version 9.0.1
* Fri Sep 01 2023 Michal Ruprich <mruprich@redhat.com> - 8.5.2-4
- Adding a couple of SELinux rules, includes fix for rhbz#2149299
* Wed Aug 30 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 8.5.2-3
- Rebuilt for abseil-cpp 20230802.0
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 8.5.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Fri Jun 30 2023 Michal Ruprich <mruprich@redhat.com> - 8.5.2-1
- New version 8.5.2
- Fixing some rpmlint warnings
* Mon Jun 26 2023 Michal Ruprich <mruprich@redhat.com> - 8.5.1-4
- Resolves: #2216073 - SELinux is preventing FRR-Zebra to access to network namespaces.
* Mon Jun 05 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 8.5.1-3
- Disable grpc in RHEL builds
* Fri May 19 2023 Petr Pisar <ppisar@redhat.com> - 8.5.1-2
- Rebuild against rpm-4.19 (https://fedoraproject.org/wiki/Changes/RPM-4.19)
* Wed Apr 26 2023 Michal Ruprich <mruprich@redhat.com> - 8.5.1-1
- New version 8.5.1
* Wed Apr 12 2023 Michal Ruprich <mruprich@redhat.com> - 8.5-1
- New version 8.5
* Thu Mar 23 2023 Michal Ruprich <mruprich@redhat.com> - 8.4.2-5
- Rebuilding for new abseil-cpp version
* Wed Mar 22 2023 Michal Ruprich <mruprich@redhat.com> - 8.4.2-4
- SPDX migration
* Wed Mar 08 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 8.4.2-3
- Build as C++17, required by abseil-cpp 20230125
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 8.4.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Thu Jan 12 2023 Michal Ruprich <mruprich@redhat.com> - 8.4.2-1 * Thu Jan 12 2023 Michal Ruprich <mruprich@redhat.com> - 8.4.2-1
- New version 8.4.2 - New version 8.4.2
@@ -368,12 +280,15 @@ rm tests/lib/*grpc*
* Thu Nov 10 2022 Michal Ruprich <mruprich@redhat.com> - 8.4-1 * Thu Nov 10 2022 Michal Ruprich <mruprich@redhat.com> - 8.4-1
- New version 8.4 - New version 8.4
* Thu Sep 22 2022 Michal Ruprich <mruprich@redhat.com> - 8.3.1-6
- Rebuilding because of weird abseil-cpp version mismatch in the compose (rhbz #2128691)
* Fri Sep 16 2022 Michal Ruprich <mruprich@redhat.com> - 8.3.1-5 * Fri Sep 16 2022 Michal Ruprich <mruprich@redhat.com> - 8.3.1-5
- Adding SELinux rule to enable zebra to write to sysctl_net_t - Adding SELinux rule to enable zebra to write to sysctl_net_t
- Adding SELinux rule to enable bgpd to call name_connect to bgp_port_t - Adding SELinux rule to enable bgpd to call name_connect to bgp_port_t
* Fri Sep 09 2022 Michal Ruprich <mruprich@redhat.com> - 8.3.1-4 * Fri Sep 09 2022 Michal Ruprich <mruprich@redhat.com> - 8.3.1-4
- Fixing an error in post scriptlet - Adding a couple of rules to tackle AVCs
* Fri Sep 09 2022 Michal Ruprich <mruprich@redhat.com> - 8.3.1-3 * Fri Sep 09 2022 Michal Ruprich <mruprich@redhat.com> - 8.3.1-3
- Resolves: #2124254 - frr can no longer update routes - Resolves: #2124254 - frr can no longer update routes
@@ -385,15 +300,6 @@ rm tests/lib/*grpc*
* Tue Sep 06 2022 Michal Ruprich <mruprich@redhat.com> - 8.3.1-1 * Tue Sep 06 2022 Michal Ruprich <mruprich@redhat.com> - 8.3.1-1
- New version 8.3.1 - New version 8.3.1
* Mon Aug 22 2022 Michal Ruprich <mruprich@redhat.com> - 8.2.2-10
- Rebuilding for new abseil-cpp and grpc updates
* Wed Aug 10 2022 Michal Ruprich <mruprich@redhat.com> - 8.2.2-9
- Adding vrrpd and pathd as daemons to the policy
* Wed Aug 10 2022 Michal Ruprich <mruprich@redhat.com> - 8.2.2-8
- Finalizing SELinux policy
* Tue Aug 02 2022 Michal Ruprich <mruprich@redhat.com> - 8.2.2-7 * Tue Aug 02 2022 Michal Ruprich <mruprich@redhat.com> - 8.2.2-7
- Fixing wrong path for vtysh in frr.fc - Fixing wrong path for vtysh in frr.fc

25
frr.te
View File

@@ -27,21 +27,13 @@ systemd_unit_file(frr_unit_file_t)
type frr_var_run_t; type frr_var_run_t;
files_pid_file(frr_var_run_t) files_pid_file(frr_var_run_t)
type frr_var_lib_t;
files_type(frr_var_lib_t)
######################################## ########################################
# #
# frr local policy # frr local policy
# #
allow frr_t self:capability { chown dac_override dac_read_search kill net_bind_service net_raw setgid setuid net_admin sys_admin }; allow frr_t self:capability { chown dac_override dac_read_search kill net_bind_service net_raw setgid setuid net_admin };
allow frr_t self:netlink_route_socket rw_netlink_socket_perms; allow frr_t self:netlink_route_socket rw_netlink_socket_perms;
allow frr_t self:netlink_generic_socket create; allow frr_t self:packet_socket { create setopt };
allow frr_t self:netlink_generic_socket setopt;
allow frr_t self:netlink_generic_socket getopt;
allow frr_t self:netlink_generic_socket getattr;
allow frr_t self:netlink_generic_socket bind;
allow frr_t self:packet_socket create_socket_perms;
allow frr_t self:process { setcap setpgid }; allow frr_t self:process { setcap setpgid };
allow frr_t self:rawip_socket create_socket_perms; allow frr_t self:rawip_socket create_socket_perms;
allow frr_t self:tcp_socket { connect connected_stream_socket_perms }; allow frr_t self:tcp_socket { connect connected_stream_socket_perms };
@@ -57,10 +49,6 @@ manage_files_pattern(frr_t, frr_log_t, frr_log_t)
manage_lnk_files_pattern(frr_t, frr_log_t, frr_log_t) manage_lnk_files_pattern(frr_t, frr_log_t, frr_log_t)
logging_log_filetrans(frr_t, frr_log_t, { dir file lnk_file }) logging_log_filetrans(frr_t, frr_log_t, { dir file lnk_file })
manage_dirs_pattern(frr_t, frr_var_lib_t, frr_var_lib_t)
manage_files_pattern(frr_t, frr_var_lib_t, frr_var_lib_t)
files_var_lib_filetrans(frr_t, frr_var_lib_t, { dir file })
allow frr_t frr_tmp_t:file map; allow frr_t frr_tmp_t:file map;
manage_dirs_pattern(frr_t, frr_tmp_t, frr_tmp_t) manage_dirs_pattern(frr_t, frr_tmp_t, frr_tmp_t)
manage_files_pattern(frr_t, frr_tmp_t, frr_tmp_t) manage_files_pattern(frr_t, frr_tmp_t, frr_tmp_t)
@@ -82,7 +70,6 @@ can_exec(frr_t, frr_exec_t)
kernel_read_network_state(frr_t) kernel_read_network_state(frr_t)
kernel_rw_net_sysctls(frr_t) kernel_rw_net_sysctls(frr_t)
kernel_read_system_state(frr_t) kernel_read_system_state(frr_t)
kernel_request_load_module(frr_t)
auth_use_nsswitch(frr_t) auth_use_nsswitch(frr_t)
@@ -96,8 +83,8 @@ corenet_tcp_bind_bgp_port(frr_t)
corenet_tcp_connect_bgp_port(frr_t) corenet_tcp_connect_bgp_port(frr_t)
corenet_tcp_bind_cmadmin_port(frr_t) corenet_tcp_bind_cmadmin_port(frr_t)
corenet_udp_bind_cmadmin_port(frr_t) corenet_udp_bind_cmadmin_port(frr_t)
corenet_tcp_bind_firepower_port(frr_t)
corenet_tcp_bind_generic_port(frr_t) corenet_tcp_bind_generic_port(frr_t)
corenet_tcp_bind_firepower_port(frr_t)
corenet_tcp_bind_priority_e_com_port(frr_t) corenet_tcp_bind_priority_e_com_port(frr_t)
corenet_udp_bind_router_port(frr_t) corenet_udp_bind_router_port(frr_t)
corenet_tcp_bind_qpasa_agent_port(frr_t) corenet_tcp_bind_qpasa_agent_port(frr_t)
@@ -110,10 +97,6 @@ domain_use_interactive_fds(frr_t)
fs_read_nsfs_files(frr_t) fs_read_nsfs_files(frr_t)
sysnet_exec_ifconfig(frr_t) sysnet_exec_ifconfig(frr_t)
sysnet_read_ifconfig_run_files(frr_t)
sysnet_watch_ifconfig_run_dirs(frr_t)
ipsec_domtrans_mgmt(frr_t)
userdom_read_admin_home_files(frr_t) userdom_read_admin_home_files(frr_t)
@@ -133,5 +116,5 @@ optional_policy(`
') ')
optional_policy(` optional_policy(`
userdom_admin_home_dir_filetrans(frr_t, frr_conf_t, file, ".history_frr") userdom_admin_home_dir_filetrans(frr_t, frr_conf_t, file, ".history_frr")
') ')

View File

@@ -1,7 +0,0 @@
---
runpath:
allowed_paths:
- /usr/lib64/frr
- /usr/lib/frr
inspections:
badfuncs: off

View File

@@ -1,2 +1,2 @@
SHA512 (frr-10.1.tar.gz) = 7484238a502ab12f178e4a210e6e4a33d0ce53edbb49b127fdc3167e31dd61c1122c1ef2d30e4bcb83b7f520b37fb9ad73e2a6a16790b608b1adf2e23b556445 SHA512 (frr-8.4.2.tar.gz) = 1079bf3f597cc21ccbc37c5617cfb95f6e066de2a726a9b8ffb5825f92af3049d0e19ef4e9944a9e11dabc4309c56f0ab22e4c9188f5008ebcea47e0428f3ff0
SHA512 (remove-babeld-ldpd.sh) = a5bf67a3722cb20d43cef1dac28f839db68df73a1b7d34d8438e4f9366da3b67d85c1f44281f93434e8dd8ebcb2d3dc258b77eaa5627475b7395d207f020839d SHA512 (remove-babeld-ldpd.sh) = a5bf67a3722cb20d43cef1dac28f839db68df73a1b7d34d8438e4f9366da3b67d85c1f44281f93434e8dd8ebcb2d3dc258b77eaa5627475b7395d207f020839d