Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4.12.3. 규칙 언어를 사용하여 고유한 정책 만들기

usbguard 데몬은 일련의 규칙에 의해 정의된 정책을 기반으로 USB 장치를 인증할지 여부를 결정합니다. USB 장치가 시스템에 삽입되면 데몬은 기존 규칙을 순차적으로 검색하고 일치하는 규칙이 있는 경우 규칙 타겟을 기반으로 장치를 승인(허용), 암호 해독(차단) 또는 제거(재정)합니다. 일치하는 규칙이 없으면 암시적 기본 대상을 기반으로 결정됩니다. 이 암시적인 기본값은 사용자가 결정할 때까지 장치를 차단하는 것입니다.
언어 문법은 다음과 같습니다.
rule ::= target device_id device_attributes conditions.

target ::= "allow" | "block" | "reject".

device_id ::= "*:*" | vendor_id ":*" | vendor_id ":" product_id.

device_attributes ::= device_attributes | attribute.
device_attributes ::= .

conditions ::= conditions | condition.
conditions ::= .
대상, 장치 사양 또는 장치 속성과 같은 규칙 언어에 대한 자세한 내용은 usbguard-rules.conf(5) 매뉴얼 페이지를 참조하십시오.

예 4.6. usbguard 예제 정책

USB 대용량 스토리지 장치를 허용하고 다른 모든 것을 차단하십시오.
이 정책은 대용량 저장 장치가 아닌 모든 장치를 차단합니다. USB 플래쉬 디스크에 숨겨진 키보드 인터페이스가 있는 장치가 차단됩니다. 단일 대용량 스토리지 인터페이스가 있는 장치만 운영 체제와 상호 작용할 수 있습니다. 정책은 단일 규칙으로 구성됩니다.
allow with-interface equals { 08:*:* }
차단 규칙이 없기 때문에 차단 규칙이 암시적입니다. 암시적 차단은 USBGuard 이벤트를 수신하는 데스크탑 애플릿이 암시적 타겟이 장치에 대해 선택된 경우 결정을 요청할 수 있기 때문에 데스크탑 사용자에게 유용합니다.
특정 Yubikey 장치가 특정 포트를 통해 연결되도록 허용
해당 포트의 다른 모든 항목을 거부합니다.
allow 1050:0011 name "Yubico Yubikey II" serial "0001234567" via-port "1-2" hash "044b5e168d40ee0245478416caf3d998"
reject via-port "1-2"
인터페이스의 의심스러운 조합이 있는 장치 거부
키보드 또는 네트워크 인터페이스를 구현하는 USB 플래시 디스크는 매우 의심스럽습니다. 다음 규칙 세트는 USB 플래시 디스크를 허용하고 추가 및 의심스런 인터페이스가 있는 장치를 명시적으로 거부하는 정책을 형성합니다.
allow with-interface equals { 08:*:* }
reject with-interface all-of { 08:*:* 03:00:* }
reject with-interface all-of { 08:*:* 03:01:* }
reject with-interface all-of { 08:*:* e0:*:* }
reject with-interface all-of { 08:*:* 02:*:* }
참고
블랙리스트는 잘못된 접근 방식이며 장치 세트를 블랙리스트에 등록하고 나머지는 허용해서는 안 됩니다. 위의 정책은 차단이 암시적인 기본값이라고 가정합니다. "bad"로 간주되는 장치 세트를 거부하는 것은 시스템의 노출을 가능한 한 이러한 장치로 제한하는 좋은 방법입니다.
키보드 전용 USB 장치 허용
다음 규칙은 키보드 인터페이스가 이미 허용되는 USB 장치가 없는 경우에만 키보드 전용 USB 장치를 허용합니다.
allow with-interface one-of { 03:00:01 03:01:01 } if !allowed-matches(with-interface one-of { 03:00:01 03:01:01 })
usbguard generate-policy 명령을 사용하는 초기 정책 생성 후 /etc/usbguard/rules.conf 를 편집하여 USBGuard 정책 규칙을 사용자 지정합니다.
~]$ usbguard generate-policy > rules.conf
~]$ vim rules.conf
업데이트된 정책을 설치하고 변경 사항을 적용하려면 다음 명령을 사용하십시오.
~]# install -m 0600 -o root -g root rules.conf /etc/usbguard/rules.conf