컴퓨터 / Computer

sendmail 이 동작하지 않을때

Sendmail.org small logo.gif



어느날 갑자기 sendmail이 동작하지 않는다. 아니 "어느날 갑자기"는 해킹 당한 경우일 것이고 보통은 뭔가 작업을 했는데 그 작업이 시스템 설정을 변경한 경우일 것이다.


보통은 보안 설정을 강화했는데 그 설정이 예상하지 못한 결과를 가져온 경우다.


 Sep 23 17:41:25 cronos sendmail[1804]: accepting connections again for daemon MTA

Sep 23 18:02:28 cronos sendmail[1524]: starting daemon (8.14.4): SMTP+queueing@01:00:00

Sep 23 18:02:30 cronos sm-msp-queue[1533]: starting daemon (8.14.4): queueing@01:00:00

Sep 23 18:03:31 cronos sendmail[1547]: x8N93VmZ001547: from=checkbox, size=213, class=0, nrcpts=1, msgid=<201909230903.x8N93VmZ001547@cronos.checkbox.co.kr>, relay=root@localhost

Sep 23 18:03:34 cronos sendmail[1548]: NOQUEUE: tcpwrappers (localhost, 127.0.0.1) rejection

Sep 23 18:03:34 cronos sendmail[1547]: x8N93VmZ001547: to=soneus, ctladdr=checkbox (500/500), delay=00:00:03, xdelay=00:00:02, mailer=relay, pri=30213, relay=[127.0.0.1] [127.0.0.1], dsn=5.0.0, stat=Service unavailable



뭐든 동작이 잘 안된다면 로그를 살펴야 한다. sendmail의 경우 /var/log에 maillog 라는 파일로 로그를 남긴다. 위 예제는 보안 설정을 강화한 후에 이메일 발송이 안되어 나타난 경우다. 위 경우에 어느 부분에 중점을 두어야 할까? 이것저것 찾아보니 아래 문구가 핵심이었다.



 tcpwrappers (localhost, 127.0.0.1) rejection


무엇이 문제이길래 저런 오류가 났을까. 어떤 부분의 설정을 바꾸었는지 곰곰히 생각해보니 /etc 아래의 hosts.allow 와 hosts.deny 를 바꾸었다. 잘못된 사례는 아래와 같다.


* hosts.allow

 sshd: xxx.xxx.xxx.xxx


* hosts.deny

 ALL: ALL


위 사례는 모든 서비스에 모든 ip를 다 막아 둔 상태에서 sshd 포트에 접속할 수 있는 ip만 할당을 한 것이다. CentOS 6이하 버전에서 서비스할때는 아래와 같이 바꿔야 한다.



* hosts.allow

 sshd: xxx.xxx.xxx.xxx

 sendmail: ALL

 httpd: ALL

 ALL: 127.0.0.1


* hosts.deny

 ALL: ALL



이렇게 하면 hosts.deny 에 의해 강화된 항목에 예외처리로 sendmail 발송 기능을 살릴 수 있다. 그리고 sendmail이 동작하지 않는 사례에 대해서는 링크로 건 네이버 블로그를 참고하시기 바란다. 




Comments

이야기꾼 2020.02.23 16:06
한 가지 더 추가하자면, .forward 의 파일 속성도 관계가 있습니다.

-rw-rw-r-- 1 checkbox checkbox  22 Feb 23 00:54 .forward


위와 같으면 발송이 되는데 "x" 권한이 있거나 젤 뒤쪽에 "w"가 있으면 발송이 되지 않습니다.

고무줄 넓은생 노랑 1000 0159 7x1 500 1개입
칠성상회
당기는 1초 완성 리본장식 9cm 포장재료
칠성상회
앱코 COX CH60 사운드플러스 (화이트)
칠성상회
3M 810 매직테이프 50mm x 65M
바이플러스