ufw iptables 점프 규칙 오류 "로깅 규칙을 로드할 수 없습니다"

ufw iptables 점프 규칙 오류 "로깅 규칙을 로드할 수 없습니다"

ufw에서 iptables 규칙을 설정하려고 하는데 어떻게 작동하는지 오해하고 있는 것 같습니다. 설명된 일반 구문 외에 신뢰할 수 있는 문서를 찾을 수 없습니다.여기. 이것은 내 문제의 단순화된 버전입니다.

추가한 후 /etc/ufw/after.rules:

*filter
:ufw-user-input - [0:0]
:FOO-CHAIN - [0:0]
-A FOO-CHAIN -j ufw-user-input
-A FOO-CHAIN -j DROP
COMMIT

아이디어는 FOO-CHAIN허용된 패킷만 허용되고 ufw allow, 그렇지 않으면 폐기된다는 것입니다.

문제 - ufw reload한 번 로드하면 규칙이 적용되지만 두 번째 다시 로드에서는 상수가 나오기 시작합니다 ERROR: Could not load logging rules. 내가 찾은 유일한 해결책은 전체 테이블( iptables -F && iptables -X)을 새로 고치는 것입니다.

후속 질문:

  • 대신 이를 사용하면 ufw-user-forward다시 로드할 때 오류가 발생하지 않습니다. 왜 그런 겁니까?
  • 왜 경유 또는 다른 면을 통해 :ufw-user-input - [0:0]체인을 정의 해야 합니까 ERROR: No such file or directory? after.rules파일 이므로 다음에 실행해야 합니다 user.rules. 즉, ufw-user-input이미 정의되어 있어야 한다는 의미입니다. 점프를 로 변경하면 ufw-before-input정의를 생략할 수 있으며 오류가 나타나지 않습니다.

답변1

나는 같은 문제가 있었고 UFW가 ufw-user-inputufw가 활성화되었는지 또는 비활성화되었는지 알기 위해 iptables에 체인이 존재하는지 내부적으로 확인한다는 것을 발견했습니다.

ufw-user-inputin을 사용하면 or를 실행할 때 do가 삭제되는 것을 -A FOO-CHAIN -j ufw-user-input방지할 수 있습니다 . iptables가 변경 사항을 허용하지 않기 때문에 체인은 계속 존재합니다. 그러면 UFW 상태는 혼란스러워지거나 심지어 붕괴될 것입니다.ufw-user-inputufw reloadufw disableufw status

ufw disable이나 그 이후에 규칙이 제대로 정리되었는지 확인해야 합니다 ufw reload.

가장 쉬운 방법은 언급된 체인의 모든 라인을 추가 iptables -F FOO-CHAIN || true하거나 유사하게 삭제하는 것 입니다 .ufw-user-input/etc/ufw/before.init

/etc/ufw/before.init

set -e

case "$1" in
start)
    # typically required
    ;;
stop)
    # typically required
    iptables -F FOO-CHAIN || true
    # You may want to add other lines here to reset your chain in a desirable state if UFW is disabled like 
    # iptables -A FOO-CHAIN -j RETURN || true
    ;;
status)
    # optional
    ;;
flush-all)
    # optional
    ;;
*)
    echo "'$1' not supported"
    echo "Usage: before.init {start|stop|flush-all|status}"
    ;;
esac

before.init를 사용하는 것을 잊지 마세요 chmod +x /etc/ufw/before.init.

나는 당신이 그것을 필요로 한다는 것을 확인합니다. :ufw-user-input - [0:0]이것은 UFW의 내부 때문이며 내 생각 ufw-user-input에는 after.rules.

관련 정보