4.3.1 Ensure nftables base chains exist

Information

Chains are containers for rules. They exist in two kinds, base chains and regular chains. A base chain is an entry point for packets from the networking stack, a regular chain may be used as jump target and is used for better rule organization.

Note: - IF - Firewalld is in use, this recommendation can be skipped.

If a base chain doesn't exist with a hook for input, forward, and delete, packets that would flow through those chains will not be touched by nftables.

Solution

- IF - NFTables utility is in use on your system:

Run the following command to create the base chains:

# nft create chain inet <table name> <base chain name> { type filter hook <(input|forward|output)> priority 0 ; }

Example:

# nft create chain inet filter input { type filter hook input priority 0 ; }
# nft create chain inet filter forward { type filter hook forward priority 0 ; }
# nft create chain inet filter output { type filter hook output priority 0 ; }

Note: use the add command if the create command returns an error due to the chain already existing.

Impact:

If configuring over ssh, creating a base chain with a policy of drop will cause loss of connectivity.

Ensure that a rule allowing ssh has been added to the base chain prior to setting the base chain's policy to drop

See Also

https://workbench.cisecurity.org/benchmarks/18211

Item Details

Category: SECURITY ASSESSMENT AND AUTHORIZATION, SYSTEM AND COMMUNICATIONS PROTECTION

References: 800-53|CA-9, 800-53|SC-7, 800-53|SC-7(5), CSCv7|9.4

Plugin: Unix

Control ID: c63f54b4cb54338186476084d161073cc50243b7d713edbadbbaf7724fed12be