서버를 통해 이메일을 릴레이하려는 클라이언트가 단일 비밀번호를 제공해야 하는 방식으로 Exim을 구성해 보았습니다. 파일에는 /etc/exim4/conf.d/auth/30_exim4-config_examples
다음과 같이 주석 처리된 구성 줄이 포함되어 있습니다.
# plain_server:
# driver = plaintext
# public_name = PLAIN
# server_condition = "${if crypteq{$auth3}{${extract{1}{:}{${lookup{$auth2}lsearch{CONFDIR/passwd}{$value}{*:*}}}}}{1}{0}}"
# server_set_id = $auth2
# server_prompts = :
# .ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
# server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}}
# .endif
여기서 무슨 일이 일어나고 있는지 완전히 이해하고 있는지 잘 모르겠습니다.
예제에 사용자 이름과 비밀번호에 대한 프롬프트가 포함되어 있는데 왜 비어 있습니까
server_prompts
?login_server
여기에 비밀번호를 입력하라는 메시지가 표시되지 않습니까?비밀번호는 실제로 어디에 설정되어 있나요?
나는 클라이언트와 서버 사이의 통신을 보호하기 위해 TLS를 사용할 계획입니다. 내가 이해한 바에 따르면 위 코드 조각의 마지막 세 줄은 AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
TLS가 활성화되거나 설정된 경우에만 인증 방법이 광고되도록 합니다.
답변1
그대로 두면 server_prompts
기본(RFC 호환) 동작이 제공됩니다. 그렇지 않으면 다른 값을 제공하기 위해 클라이언트를 수정해야 할 수도 있습니다.
CONFDIR/passwd
비밀번호 는 데비안에서 CONFDIR
와 마찬가지로 파일에서 조회됩니다 ./etc/exim4
모든 사용자가 공통 비밀번호를 사용하도록 하시겠습니까? 그런 다음 다음과 같이 변경할 수 있습니다 server_condition
.
server_condition = ${if {eq{$auth3}{mysecret}{yes}{no}}
훌륭한 exim 문서를 확인하십시오.여기