什么是混杂模式(Promiscuous mode)

混杂模式(Promiscuous mode)是一种使以太网卡将其接收到的所有流量传递给内核的功能。
它通常由 Wireshark 和 tcpdump 等数据包嗅探程序使用。
如果有这样的程序故意运行或者桥接硬件虚拟化网络,“混杂模式”消息可能会被简单地忽略。
否则,由于安全问题,将需要对该系统进行深入调查。

当系统上没有运行审计守护程序时,“审计”消息将记录到 /var/log/messages 文件而不是 /var/log/audit/audit.log 文件中。
它们是用于内核审计的信息性消息。

RHEL 7 中的 初始化脚本 已完全弃用了 PROMISC 选项。

# grep PROMISC -B 1 /usr/share/doc/initscripts-9.49.41/sysconfig.txt
        No longer supported:
         PROMISC=yes|no (enable or disable promiscuous mode)

因此,为了永久配置接口为混杂模式,请按照以下步骤操作。

确认

重新启动服务器并检查接口是否处于混杂模式:

# reboot
# ip addr
1: lo: [LOOPBACK,UP,LOWER_UP] mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: ens9: [BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP] mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:fe:7d:f2 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.203/24 brd 192.168.122.255 scope global dynamic ens9
       valid_lft 3398sec preferred_lft 3398sec
3: ens12: [BROADCAST,MULTICAST] mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 52:54:00:9f:37:9e brd ff:ff:ff:ff:ff:ff
4: ens10: [BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP] mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000
    link/ether 52:54:00:30:ef:19 brd ff:ff:ff:ff:ff:ff
5: ens11: [BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP] mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000
    link/ether 52:54:00:30:ef:19 brd ff:ff:ff:ff:ff:ff
6: bond0: [BROADCAST,MULTICAST,MASTER,UP,LOWER_UP] mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 52:54:00:30:ef:19 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.95/24 brd 192.168.122.255 scope global dynamic bond0
       valid_lft 3396sec preferred_lft 3396sec

接口ens9 现在在启动时处于混杂模式。

在 CentOS/RHEL 7 上如何将接口永久设置为混杂模式
更多: zhilu jiaocheng

CentOS/RHEL 7 将接口配置为混杂模式

  1. 使用 vi 或者 vim 等编辑器创建自定义 systemd 单元文件。
# vi /etc/systemd/system/promisc.service
  1. 可以使用使用oneline 命令的oneshot。

单接口示例

在下面的示例中,只有一个接口被设置为混杂模式:

# cat /etc/systemd/system/promisc.service 
[Unit]
Description=Bring up an interface in promiscuous mode during boot
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/sbin/ip link set dev ens9 promisc on
TimeoutStartSec=0
RemainAfterExit=yes
[Install]
WantedBy=default.target

多接口示例

下面的示例将多个接口设置为混杂模式:

# cat /etc/systemd/system/promisc.service 
[Unit]
Description=Makes an interface run in promiscuous mode at boot
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/sbin/ip link set dev ens9 promisc on
ExecStart=/usr/sbin/ip link set dev ens12 promisc on
TimeoutStartSec=0
RemainAfterExit=yes
[Install]
WantedBy=default.target
  1. 确保 systemd 现在知道新的服务:
# systemctl daemon-reload
日期:2020-09-17 00:13:19 来源:oir作者:oir