SELinux가 Amavis에서 자신으로의 연결을 차단하고 있습니다. 들어오거나 나갈 수 없습니까?

SELinux가 Amavis에서 자신으로의 연결을 차단하고 있습니다. 들어오거나 나갈 수 없습니까?

여기에서 새로운 CentOS8 설치를 실행하면 MTA는 Amavis에 연결된 Postfix입니다. 저는 Amavis가 (내부) DKIM에 의해 서명된 후 ORIGINATING(포트 587/Postfix에서 10026/Amavis를 통해 들어오는 커밋)의 메시지를 Amavis(포트 10024)에 삽입하기를 원합니다. 그러나 포트 10024는 25/Postfix에서 들어오는 smtp 연결을 수신하도록 이미 할당되어 있으므로 SELinux 구성에서 이를 송신 포트로 추가할 수 없습니다.

메시지 흐름:

  • 25/smtp -> 접미사 -> smtp-amavis/10024
  • 10024 -> 아마비스: 스캔 -> 10025
  • 10025 -> 접미사 -> 배달
  • 587/제출->Postfix->smtp-amavis/10026
  • 10026 -> Amavis Origin: 스캐닝 및 DKIM 서명 -> smtp-amavis/10024

내가 겪고 있는 문제는 SELinux가 마지막 스트림의 메시지를 포트 10024의 smtp-amavis(Amavis에서 Amavis로)로 다시 공급하는 것을 허용하지 않는다는 것입니다. 해당 포트는 이미 수신용으로 할당되어 있기 때문입니다.

[root@services amavisd]# semanage port -l | grep 1002
amavisd_recv_port_t            tcp      10026, 10024
amavisd_send_port_t            tcp      10027, 10025
spamd_port_t                   tcp      783, 10026, 10027

흥미롭게도 SELinux는 amavisd_recv_port_t 및 amavisd_send_port_t에 각각 추가했을 때 spamd에 포트 10026, 10027이 할당되는 것에 대해 불평하지 않았습니다.

[root@services amavisd]# semanage port -lC
SELinux Port Type              Proto    Port Number
amavisd_recv_port_t            tcp      10026
amavisd_send_port_t            tcp      10027

이 문제를 어떻게 해결할 수 있나요? SELinux에서는 10024를 송신 포트로 추가하는 것도 허용하지 않기 때문입니다.

[root@services amavisd]# semanage port -a -t amavisd_send_port_t -p tcp 10024
ValueError: Port tcp/10024 already defined

아니면 제가 완전히 잘못된 길을 가고 있는 것일 수도 있습니다., 그리고 제출된 메시지는 포트 10024를 통해 Amavis로 피드백되어서는 안 됩니다(SELinux 문제가 아니라 Amavis 문제가 됩니다)? 초기 Amavis 구성의 경우 제출된 메시지를 OpenDKIM에 의한 (외부) DKIM 서명을 위해 다음과 같이 포트 10027로 전달하십시오:

# forward to a smtpd service providing DKIM signing service
#forward_method => 'smtp:[127.0.0.1]:10027',
forward_method => 'smtp:[127.0.0.1]:10024',

따라서 마지막 프로세스는 다음과 같습니다.

  • 10026 -> Amavis 시작: 스캔 -> OpenDKIM@10027: 서명 -> 전달

하지만 OpenDKIM은 아직 CentOS8에서 사용할 수 없으며(이전에는 EPEL 저장소를 통해 사용 가능) Amavis는 이제 제가 사용하려는 내부 DKIM 서명 서비스를 지원합니다.

그래서 저는 두 가지 방법이 있다고 생각합니다.

  • 커밋 스트림에서 기본 smtp 스트림으로 다시 DKIM 서명 메시지를 공급할 수 있도록 SELinux를 구성합니다(이 다소 순환적인 설정이 작동한다고 가정).
  • 원래 Amavis 구성을 유지하십시오. 즉, 나가는(예: 커밋) 메시지를 전달하려면 포트 10027 뒤에 서비스가 있어야 함을 의미합니다.

어느 길로 가야 하며 무엇을 해야 합니까?

답변1

나는 가장 확실한 해결책을 찾았습니다(잘못된 온라인 레시피에 따라): Amavis ORIGINATING 흐름을 포트 10025에 다시 공급하여 Postfix가 전달하도록 하는 것입니다(따라서 Amavis에 의해 별도로 처리된 후 25/smtp 및 587/제출 흐름을 수렴합니다). 이는 또한 Amavis의 메시지가 더 이상 자체적으로 피드백될 필요가 없기 때문에 SELinux 문제를 우회합니다.

이제 전체 구성표는 다음과 같습니다.

  • 25/smtp -> 접미사 -> smtp-amavis/10024
  • 10024 -> 아마비스: 스캔 -> 10025
  • 10025 -> 접미사 -> 배달
  • 587/제출->Postfix->smtp-amavis/10026
  • 10026 -> Amavis Origin: 스캐닝 및 DKIM 서명 -> 10025

관련 정보