20.6. 호스트된 인증 이벤트를 기반으로 트래픽 차단 및 허용


hostapd 서비스는 트래픽 플레인과 상호 작용하지 않습니다. 서비스는 인증자 역할을만 합니다. 그러나 인증 이벤트 결과에 따라 트래픽을 허용 및 거부하는 스크립트를 작성할 수 있습니다.

중요

이 절차는 지원되지 않으며 엔터프라이즈급 솔루션이 아닙니다. hostapd_cli 에서 검색한 이벤트를 평가하여 트래픽을 차단하거나 허용하는 방법만 보여줍니다.

802-1x-tr-mgmt systemd 서비스가 시작되면 RHEL은 EAPOL(Extensible Authentication Protocol over LAN) 패킷을 제외하고 hostapd 의 수신 포트에서 모든 트래픽을 차단하고 hostapd_cli 유틸리티를 사용하여 hostapd 제어 인터페이스에 연결합니다. 그런 다음 /usr/local/bin/802-1x-tr-mgmt 스크립트를 사용하여 이벤트를 평가합니다. hostapd_cli 에서 수신한 다양한 이벤트에 따라 스크립트는 MAC 주소에 대한 트래픽을 허용하거나 차단합니다. 802-1x-tr-mgmt 서비스가 중지되면 모든 트래픽이 자동으로 다시 허용됩니다.

hostapd 서버에서 이 절차를 수행합니다.

사전 요구 사항

  • hostapd 서비스가 구성되었으며 서비스는 클라이언트를 인증할 준비가 되었습니다.

프로세스

  1. 다음 콘텐츠를 사용하여 /usr/local/bin/802-1x-tr-mgmt 파일을 만듭니다.

    #!/bin/sh
    
    TABLE="tr-mgmt-${1}"
    read -r -d '' TABLE_DEF << EOF
    table bridge ${TABLE} {
        set allowed_macs {
            type ether_addr
        }
    
        chain accesscontrol {
            ether saddr @allowed_macs accept
            ether daddr @allowed_macs accept
            drop
        }
    
        chain forward {
            type filter hook forward priority 0; policy accept;
            meta ibrname "$0" jump accesscontrol
        }
    }
    EOF
    
    case ${2:-NOTANEVENT} in
        block_all)
            nft destroy table bridge "$TABLE"
            printf "$TABLE_DEF" | nft -f -
            echo "$1: All the bridge traffic blocked. Traffic for a client with a given MAC will be allowed after 802.1x authentication"
            ;;
    
        AP-STA-CONNECTED | CTRL-EVENT-EAP-SUCCESS | CTRL-EVENT-EAP-SUCCESS2)
            nft add element bridge tr-mgmt-br0 allowed_macs { $3 }
            echo "$1: Allowed traffic from $3"
            ;;
    
        AP-STA-DISCONNECTED | CTRL-EVENT-EAP-FAILURE)
            nft delete element bridge tr-mgmt-br0 allowed_macs { $3 }
            echo "$1: Denied traffic from $3"
            ;;
    
        allow_all)
            nft destroy table bridge "$TABLE"
            echo "$1: Allowed all bridge traffice again"
            ;;
    
        NOTANEVENT)
            echo "$0 was called incorrectly, usage: $0 interface event [mac_address]"
            ;;
    esac
    Copy to Clipboard Toggle word wrap
  2. 다음 콘텐츠를 사용하여 /etc/systemd/system/802-1x-tr-mgmt@.service systemd 서비스 파일을 만듭니다.

    [Unit]
    Description=Example 802.1x traffic management for hostapd
    After=hostapd.service
    After=sys-devices-virtual-net-%i.device
    
    [Service]
    Type=simple
    ExecStartPre=bash -c '/usr/sbin/hostapd_cli ping | grep PONG'
    ExecStartPre=/usr/local/bin/802-1x-tr-mgmt %i block_all
    ExecStart=/usr/sbin/hostapd_cli -i %i -a /usr/local/bin/802-1x-tr-mgmt
    ExecStopPost=/usr/local/bin/802-1x-tr-mgmt %i allow_all
    
    [Install]
    WantedBy=multi-user.target
    Copy to Clipboard Toggle word wrap
  3. systemd를 다시 로드합니다.

    # systemctl daemon-reload
    Copy to Clipboard Toggle word wrap
  4. 인터페이스 이름 hostapd 를 사용하여 802-1x-tr-mgmt 서비스를 활성화하고 시작합니다.

    # systemctl enable --now 802-1x-tr-mgmt@br0.service
    Copy to Clipboard Toggle word wrap

검증

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat