저는 UFW를 시작하는 두 가지 방법, 즉 systemctl과 ufw 자체를 알고 있습니다. 예를 들어, 다음을 사용할 때 systemctl enable ufw
:
systemctl status ufw
● ufw.service - CLI Netfilter Manager
Loaded: loaded (/usr/lib/systemd/system/ufw.service; enabled; vendor preset:>
Active: active (exited) since Sun 2019-12-01 12:34:29 +05; 6min ago
그러나 ufw 자신은 이렇게 말했습니다.
ufw status verbose
Status: inactive
나는 그것을 통해 규칙을 볼 수 없으며 GUFW 유틸리티는 UFW가 비활성 상태라고 말합니다. 하지만 이렇게 하면:
systemctl disable ufw
systemctl stop ufw
ufw enable
ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
그런 다음 GUFW를 사용하고 UFW 유틸리티에서 자세한 상태와 규칙을 볼 수 있습니다.
그렇다면 systemctl을 통해 시작하는 것과 ufw 자체를 통해 시작하는 것의 차이점은 무엇이며 올바른 방법은 무엇입니까?
답변1
이 작업을 수행 ufw enable
한 systemctl disable ufw
다음 시스템을 재부팅 하면 ufw status verbose
재부팅 후 출력은 어떻게 됩니까?
그럴 것 같아요 inactive
.
이것이 사실이라면 설명은 다음과 같습니다.
ufw enable
= 지금 방화벽 규칙을 활성화하고 지금부터 방화벽을 활성화하는 것이 원하는 상태라고 기록하세요. (방화벽 관리 데몬이 필요한 경우 자동으로 시작됩니다.)ufw disable
= 방화벽 규칙을 즉시 비활성화하고, 달리 명령할 때까지 방화벽이 비활성화되는 것이 원하는 상태임을 기록합니다.systemctl start ufw
= 이전에 기록된 원하는 방화벽 상태를 복원합니다(원하는 상태가 방화벽을 비활성화하는 것인 경우 조치가 필요하지 않습니다). 또한 필요한 경우 방화벽 관리 데몬을 시작하여 관리 프로세스가systemd
사용자 세션에 속하지 않는 백그라운드 프로세스 로 인식되도록 합니다 . 방화벽을 영구적으로 활성화하려면 시작할 때 자동으로 활성화되기를 원할 것입니다.반품설정 되었습니다ufw enable
.systemctl stop ufw
= 방화벽 관리 데몬을 중지합니다. 기존 방화벽 규칙을 비활성화할 수도 있고 비활성화하지 않을 수도 있습니다( 해당 규칙과 별도로 커널에 적용되는 실제 규칙을 사용하거나 확인하십시오iptables -vnL
) .nft list tables
ufw
systemctl enable ufw
= 이후 재부팅 시systemctl start ufw
시작 프로세스의 일부로 자동으로 실행됩니다 .systemctl disable ufw
= 이후 재부팅 시에는 방화벽 상태를 복원하거나 자동으로 방화벽 관리 데몬을 시작하기 위한 작업을 수행하지 마십시오. 방화벽 규칙이 전혀 없는 커널 기본값을 채택하십시오.
예를 들어 원격으로 새 방화벽 규칙을 설정해야 하고 자신이 잠기지 않도록 해야 하는 경우 systemctl disable ufw
약 15분 후에 자동으로 다시 시작하도록 설정한 다음 규칙을 추가하고 사용할 수 있습니다 ufw enable
. 시스템에 계속 연결할 수 있으면 원격 액세스에 관한 한 규칙이 올바른 것입니다. 그러면 systemctl enable ufw
재부팅 후에도 규칙이 유효하도록 설정하고 예약된 다시 시작 작업을 삭제할 수 있습니다.
그러나 실수로 인해 액세스할 수 없게 된 경우 다시 시작 작업이 트리거될 때까지 기다리면 시스템에 방화벽 규칙이 없으므로(때문에 systemctl disable ufw
) 다시 로그인하여 규칙 구성을 수정할 수 있습니다.