3.3.5 Ensure icmp redirects are not accepted (Automated)
Profile
- Level 1 - Server
- Level 1 - Workstation
Description
ICMP redirect messages are packets that convey routing information and tell your host (acting as a router) to send packets via an alternate path. It is a way of allowing an outside routing device to update your system routing tables.
Rationale
ICMP redirect messages are packets that convey routing information and tell your host (acting as a router) to send packets via an alternate path. It is a way of allowing an outside routing device to update your system routing tables. By setting net.ipv4.conf.all.accept_redirects, net.ipv4.conf.default.accept_redirects, net.ipv6.conf.all.accept_redirects, and net.ipv6.conf.default.accept_redirects to 0, the system will not accept any ICMP redirect messages, and therefore, won't allow outsiders to update the system's routing tables.
Impact
None expected.
Audit Procedure
Command Line
Run the following script to verify the following kernel parameters are set in the running configuration and correctly loaded from a kernel parameter configuration file:
net.ipv4.conf.all.accept_redirectsis set to 0net.ipv4.conf.default.accept_redirectsis set to 0net.ipv6.conf.all.accept_redirectsis set to 0net.ipv6.conf.default.accept_redirectsis set to 0
Note:
- kernel parameters are loaded by file and parameter order precedence. The following script observes this precedence as part of the auditing procedure. The parameters being checked may be set correctly in a file. If that file is superseded, the parameter is overridden by an incorrect setting later in that file, or in a canonically later file, that "correct" setting will be ignored both by the script and by the system during a normal kernel parameter load sequence.
- IPv6 kernel parameters only apply to systems where IPv6 is enabled
Expected Result
Audit Result: ** PASS ** with all four accept_redirects parameters set to 0 (or IPv6 parameters not applicable if IPv6 is disabled).
Remediation
Command Line
Set the following parameters in /etc/sysctl.conf or a file in /etc/sysctl.d/ ending in .conf:
net.ipv4.conf.all.accept_redirects = 0net.ipv4.conf.default.accept_redirects = 0
Example:
# printf '%s\n' "net.ipv4.conf.all.accept_redirects = 0" "net.ipv4.conf.default.accept_redirects = 0" >>
/etc/sysctl.d/60-netipv4_sysctl.conf
Run the following script to set the active kernel parameters:
#!/usr/bin/env bash
{
sysctl -w net.ipv4.conf.all.accept_redirects=0
sysctl -w net.ipv4.conf.default.accept_redirects=0
sysctl -w net.ipv4.route.flush=1
}
IF - IPv6 is enabled on the system: Set the following parameters in
/etc/sysctl.confor a file in/etc/sysctl.d/ending in.conf:net.ipv6.conf.all.accept_redirects = 0net.ipv6.conf.default.accept_redirects = 0
Example:
# printf '%s\n' "net.ipv6.conf.all.accept_redirects = 0" "net.ipv6.conf.default.accept_redirects = 0" >>
/etc/sysctl.d/60-netipv6_sysctl.conf
Run the following script to set the active kernel parameters:
#!/usr/bin/env bash
{
sysctl -w net.ipv6.conf.all.accept_redirects=0
sysctl -w net.ipv6.conf.default.accept_redirects=0
sysctl -w net.ipv6.route.flush=1
}
Note: If these settings appear in a canonically later file, or later in the same file, these settings will be overwritten.
Default Value
net.ipv4.conf.all.accept_redirects = 1
net.ipv4.conf.default.accept_redirects = 1
net.ipv6.conf.all.accept_redirects = 1
net.ipv6.conf.default.accept_redirects = 1
References
- NIST SP 800-53 :: CM-6 b
- NIST SP 800-53A :: CM-6.1 (iv)
- RHEL 8 STIG GROUP ID: V-230535
- RHEL 8 STIG RULE ID: SV-230535r858793
- RHEL 8 STIG GROUP ID: V-230544
- RHEL 8 STIG RULE ID: SV-230544r858820
- RHEL 8 STIG GROUP ID: V-230550
- RHEL 8 STIG RULE ID: SV-230550r627750
- RHEL 8 STIG GROUP ID: V-230553
- RHEL 8 STIG RULE ID: SV-230553r809324
CIS Controls
| Controls Version | Control | IG 1 | IG 2 | IG 3 |
|---|---|---|---|---|
| v8 | 4.8 Uninstall or Disable Unnecessary Services on Enterprise Assets and Software | x | x | |
| v7 | 9.2 Ensure Only Approved Ports, Protocols and Services Are Running | x | x |