이 름 : 바다아이
|
조회수 : 11044
짧은 주소 : https://www.bada-ie.com/su/?721591972978
기본적인 릴레이 방식은 모두 같겠지만 가상호스트 설정 부분은 qmail-
mysql을 이용한 가상호스트 구현 위주로 설명하였다
주요 차이점은 qmail-mysql은 virtualdomains 설정파일을 사용하지 않는
다, 그것은 qmail 데이터베이스의 users 테이블의 mbox_host 필드와
locals 설정파일이 그것을 대신해 주기 때문이다
개인적으로 qmail-mysql 가상호스트메일을 선호하는 가장 큰 이유는 시
스템계정과 mysql 메일계정이 중복될 경 우 mysql 메일계정을 먼저 처
리하도록 qmail-getpw.c를 패치함으로서 더 이상 그것으로 고민할 필요가
없어졌 기 때문이다
예를들면,
master 라는 시스템계정이 존재하더라도 master@xexx.net master@test1.xexx.net master@test2.xexx.net
등과 같이 가상 메일 계정을 같은 아이디로 얼마든지 사용가능하기 때문
이다.
그리고 이것은 별 관계가 없지만 또 한가지 이유는 qmail-smtp-auth 의
출현으로 vpopmail의 로밍서비스를 대 신 할수 있기 때문이다..
편의상 qmail에서 기본적인 릴레이 설정을 각 설정 파일별로 구분하여
설명하였으며 일단 smtp-auth 인증은 제 외하고 언급한후 마지막 부분
에서 smtp-auth 인증방식이 추가됨으로서 편리해진점과 같이 비교하여 설
명하였다
원래 작문실력이 없어서 횡설수설하는 부분도 있겠지만 나름대로는 최대
한 알아듣기 쉽게 설명한 것입니다
10-1)/etc/tcp.smtp
여기에 등록하는 아이피에 대해서 smtp 접속 허용/불허/rcpthosts참고
등을 결정하며 기본적인 사용법은 아래와 같다
IP:deny <-- 해당 IP로 부터는 smtp 접속을 아예 거부하겠다는 뜻이다
따라서 여기에 지정된 IP는 smtp 접속자체가 거부 되므로 아무것도 할
수 가 없게 된다
IP:allow,RELAYCLIENT="" <-- 해당 IP로 부터는 smtp 접속을 허용하며
모든 릴레이를 허용한다는 뜻이다
따라서 여기에 지정된 IP는 smtp 로 접속하여 아무런 제약없이 어디던
지 메일을 보낼수 있게 된다
:allow <-- 그외 모든 IP로 부터는 smtp 접속은 허용하되 릴레이는
rcpthosts 에 등록된 서버에 대해서만 허용 한다는 뜻이다
따라서 그밖의 모든 IP는 일단 smtp 로 접속은 할수 있지만
rcpthosts 에 등록된 호스트로만 메일을 보낼수 있으며 다른 곳으로
는 메일을 보낼수가 없게 된다
그리고 주의할 것은 이 설정파일을 수정한후 적용시키기 위해서는 반드
시 DB를 업데이트 해 주어야 한다
#tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp 또는
#qmail cdb <-- DB 업데이트 방법
일반적인 설정예>>
#vi /etc/tcp.smtp
127.0.0.1:allow,RELAYCLIENT=""
192.168.:allow,RELAYCLIENT=""
:allow
위의 설정을 쉽게 설명하면....,
먼저 로컬과 192.168.xxx.xxx 범위에 속하는 내부사설IP들은 smtp 에 접
속하여 어디든지 메일을 보낼수 있다.
그밖의 모든 IP들은 일단 smtp 에 접속은 허용하지만 rcpthosts 에 등록
된 호스트로만 메일을 보낼수 있다
일단은 위의 설정만으로 충분하며 스펨메일이 자주들어오는 IP 나 특정
한 곳에서의 접근을 차단하고 싶다면 아 래처럼 추가해주면 된다
#vi /etc/tcp.smtp
127.0.0.1:allow,RELAYCLIENT=""
192.168.:allow,RELAYCLIENT=""
61.255.223.:deny <-- 이런식으로 접근 거부할 곳을 지정해 주면 된다
:allow
10-2)/var/qmail/control/rcpthosts
이 파일은 tcp.smtp 에서 RELAYCLIENT="" 옵션이 없을 경우에만 동작하
며 릴레이를 허용할 호스트들을 등록 하는데 일반적으로 localhost 와
메인호스트 및 내부 가상호스트들을 모두 등록한다
그리고 여기서 중요한 것이 rcpthosts 파일을 지워 버리게 되면
tcp.smtp에서 :allow 로 설정한 부분
이 :allow,RELAYCLIENT="" 로 설정한것처럼 처리가 된다, 쉽
게 말하면 smtp 에 접속하여 rcpthosts 파일을 참고 하려는데 이파일
이 없으니까 그냥 아무제약없이 어디로든 메일을 보낼수가 있게 돼 버리
는 것이다, 이렇게 되면 오픈릴레이가 돼기 때문에 절대로 rcpthosts
파일을 삭제해서는 안된다
또한 이 설정파일을 수정한후 적용시키기 위해서는 반드시 qmail 데몬
을 재시작 해야한다
일반적인 설정예>>
#vi /var/qmail/control/rcpthosts
localhost <-- 로컬호스트
xexx.net <-- 메인호스트
test1.xexx.net <-- 가상호스트1
test2.xexx.net <-- 가상호스트2
위의 10-1) 과 연결하여 설명하면...,
먼저 로컬과 192.168.xxx.xxx 범위에 속하는 내부사설IP들은 smtp 에 접
속하여 어디든지 메일을 보낼수 있다.
그밖의 모든 IP들은 일단 smtp 에 접속은 허용하지만 rcpthosts 에 등록
된 호스트로만 메일을 보낼수 있다
여기에서 그밖의 모든 IP들은 smtp로 접속하여 locathost, xexx.net,
test1.xexx.net, test2.xexx.net 로만 메일을 보낼수 있게된다
만일 관리자의 실수? 로 내부가상호스트등록이 누락이 된다면 쉽게 예를
들면 test2.xexx.net을 rcpthosts에 등록 하지 않았다면 외부메일계정
(rcpthosts를 참고해야 하는곳에 한함)에서 test2.xexx.net 으로 릴레이
가 허용이 되 지않기 때문에 결과적으로 test2.xexx.net 메일계정 사
용자들은 메일 보내기는 잘되는데 외부메일계정(rcpthosts 를 참고해
야 하는곳에 한함)으로 부터오는 메일은 받을수 없게 된다
10-3)/var/qmail/control/locals
이 설정파일은 릴레이 문제를 다룰 때 잘 언급이 않되었는데, mysql로
가상호스트를 설정하여 메일계정을 관리 한다면 반드시 수정이 필요하
다
이 설정파일의 특징은 mysql로 가상호스트메일을 구현시 내부 가상호스
트간의 릴레이를 설정한다, 쉽게 말하면 rcpthosts가 외부에서 접근하
는 IP들을 대상으로 릴레이를 설정한다면 locals 는 내부 가상호스트간의
릴레이를 설정한다고 생각하면 되며 일반적으로 localhost 와 메인호스
트 및 내부 가상호스트들을 모두 등록한다
그리고 주의할 것은 이 설정파일을 수정한후 적용시키기 위해서는 반드
시 qmail 데몬을 재시작 해야 한다
일반적인 설정예>>
#vi /var/qmail/control/locals
localhost <-- 로컬호스트
xexx.net <-- 메인호스트
test1.xexx.net <-- 가상호스트1
test2.xexx.net <-- 가상호스트2
위의 설정을 쉽게 설명하면,
locals 는 내부 가상호스트간의 릴레이 즉, locathost, xexx.net,
test1.xexx.net, test2.xexx.net 상호간의 릴레이에 관여한다
쉽게 설명하면 위 설정에서 관리자의 실수? 로 test2.xexx.net 이라는
내부가상호스트를 locals 에 등록하지 않았 다면, xexx.net 이나
test1.xexx.net에서 test2.xexx.net 으로 메일을 보내면 아래와 같은 오
류 메시지와 함께 메 일이 리턴될 것이다
Sorry. Although I'm listed as a best-preference MX or A for that
host,
it isn't in my control/locals file, so I don't treat it as local.
(#5.4.6)
결과적으로 test2.xexx.net 메일계정 사용자들은 메일 보내기는 잘되는
데 내부 가상호스트로 부터오는 메일은 받 을수 없게 된다
10-4)smtp-auth 인증방식 출현으로 달라진점들..
새롭게 추가된 smtp-auth 인증 방식은 위와 같은 기존의 릴레이 방식에
융통성을 둔것이라 할수 있다
smtp-auth 인증 방식은 rcpthosts 파일과 함께 작동되므로 반드시
rcpthosts 파일이 있어야 한다
동작원리는 일단 rcpthosts 에 등록된 서버에 대해서는 smtp-auth 인증
절차 없이 바로 릴레이를 허용시키며,
rcpthosts 에 없는 곳으로의 릴레이는 smtp-auth 인증을 통해서 이루어
진다.
만일 rcpthosts 파일을 삭제해 버린다면 이것 역시 오픈릴레이가 되기
때문에 절대로 삭제해서는 안된다
사실상 릴레이 설정은 기존의 방법으로도 충분했다,
하지만 메일계정을 아웃룩에 설정하고 싶을 때, 고정IP라면 간단하게
tcp.smtp 에 한줄 더 추가해 줌으로서 해결 할수 있지만 유동 IP라면
어떻게 할것인가? 이제 더 이상 이런 걱정을 할 필요가 없다
위의 10-1)과 10-2)의 설정예를 smtp-auth 인증방식을 사용했을때에 적
용시켜보면...,
먼저 로컬과 192.168.xxx.xxx 범위에 속하는 내부사설IP들은 smtp 에 접
속하여 어디든지 메일을 보낼수 있다.
그밖의 모든 IP들은 일단 smtp 에 접속은 한 후 rcpthosts 에 등록된
호스트로는 smtp-auth 인증 과정 없이 메 일을 보낼수 있지만 그밖의
곳으로 메일은 smtp-auth 인증을 거친 후 발송되게 된다.
위의 릴레이설정을 정리해보면,
먼저 로컬과 192.168.xxx.xxx 범위에 속하는 내부사설IP들은 smtp 에 접
속하여 어디든지 메일을 보낼수 있다.
그밖의 모든 IP들은 일단 smtp 에 접속은 한 후 rcpthosts 에 등록된
호스트로는 smtp-auth 인증 과정 없이 메 일을 보낼수 있지만 그밖의
곳으로 메일은 smtp-auth 인증을 거친 후 발송되게 된다.
주의사항>>
rcpthosts 파일이 삭제되었다면 오픈릴레이다
rcpthosts 에서 test2.xexx.net 이 등록이 않되었다면
메일보내기 : test2.xexx.net->내부메일계정(o), test2.xexx.net->외부
메일계정(o)
메일받기 : 내부메일계정->test2.xexx.net(o), 외부메일계정-
>test2.xexx.net(x, rcpthosts를참고해야하는곳에한함)
locals 에서 test2.xexx.net 이 등록이 않되었다면
메일보내기 : test2.xexx.net->내부메일계정(o), test2.xexx.net->외부
메일계정(o)
메일받기 : 내부메일계정->test2.xexx.net(x), 외부메일계정-
>test2.xexx.net(o)
단순히 위의 설정만으로도, 스펨방지 효과는 상당히 있으나 스펨메일이
차단이 그렇게 쉬운것만은 아닌 것 같 다.. 항상 주의 깊게 메일서버
를 채크해야 할 것이다
하하,,, 여기까지 읽느라 수고하셨습니다,
그런데 이런것도 팁이 될수 있을려나... 관리자님 게시판에 맞지 않는
글이라면 삭제해 주세요.,
그리고 혹시 오타외에 내용상 잘못된부분이 있으면 지적해 주시면 감사
하겠습니다...
Copyright ⓒ 2001.12. bada-ie.com. All rights reserved.
이 사이트는 리눅스에서 firefox 기준으로 작성되었습니다. 기타 브라우저에서는 다르게 보일 수 있습니다.
[ Ubuntu + GoLang + PostgreSQL + Mariadb ]
서버위치 : 오라클 클라우드 춘천 실행시간 : 0.05965 초 to webmaster... gogo sea. gogo sea.