Debian Linux systemd가 종료되고 Shorewall 서비스가 Fail2ban 서비스를 기다립니다.

Debian Linux systemd가 종료되고 Shorewall 서비스가 Fail2ban 서비스를 기다립니다.

Debian 안정적인 방화벽을 실행하고shorewall을 사용하여 Fail2ban을 실행합니다. 시작할 때 Fail2ban 로그에서 "shorewall not running error"를 받았으나 수정되었습니다.

After=network.target

/lib/systemd/system/fail2ban.service에 있습니다. 그러나 종료하거나 다시 시작할 때 여전히 이러한 오류가 발생합니다. 종료되기 전에 Fail2ban이 완료될 때까지 기다리도록 Shorewall에 어떻게 지시합니까?

답변1

나는 한동안 이 질문에 대한 답을 찾고 있었습니다. @Munir (첫 번째 답변에 대한 의견)은 거의 이미 가지고 있습니다. 편집 내용이 패키지 업그레이드 후에도 유지되도록 하려면 /lib/systemd/system/fail2ban.service를 편집하지 말고 대신 systemd의 재정의 메커니즘을 사용하십시오. 예를 들어 /etc/systemd/system/fail2ban.service.d/override.conf 파일을 생성합니다. 이 파일에

[Unit]
Requires=shorewall.service
After=shorewall.service

이로 인해 Shorewall.service가 Requires 및 After에 추가되고(/lib/systemd/system/fail2ban.service에 지정될 수 있는 항목에 추가로) 실패2ban이 업그레이드될 때 덮어쓰여지지 않습니다.

내 경우에는 개인 reprepro 저장소를 설정했기 때문에 이 파일을 삽입하는 패키지를 만들었고(또한 /etc/fail2ban/jail.d/local.conf에 표준 실패 2ban 구성을 추가했습니다) 실패 2ban에 대한 패키지 종속성이 있습니다. 그리고 해안벽. 패키지 이름을 f2b-shorewall로 지정합니다. 서버에서 이 작업을 수행하려면 f2b-shorewall을 설치하기만 하면 Fail2ban 및shorewall을 가져올 수 있었고 표준 Fail2ban Jail 구성이 이미 있었으며 Shorewall만 구성하면 됩니다(일반적으로 서버마다 다릅니다). 그래도) ).

답변2

로 시작해야 fail2ban하는 서비스 파일에 명시적으로 추가하면 어떨까요?shorewallAfter=shorewall.service

답변3

Debian Stretch와 최신 Shorewall에서 이것을 찾았습니다.

[Unit]
Description=Fail2Ban Service
Documentation=man:fail2ban(1)
After=network.target iptables.service firewalld.service shorewall.service
PartOf=iptables.service firewalld.service shorewall.service

관련 정보