sendmail.cf 설정

2014/05/28 09:52 / Linux/Etc
이 문서를 다른 웹이나 출판물에 게시할 때는 반드시 출처를 밝혀 주시기 바랍니다.

최종 수정일 : 2001년 8월 14일
글쓴이 : 윤 일(admin@rootman.org)
참고 서적 : Linux 네트워크 서버(출판사 : 삼각형 프레스)

HOW-TO Configuration sendmail.cf

SMTP(Simple Mail Transport Protocol)는 TCP/IP 메일 전송 프로토콜입니다. Linux 에서는 기본적으로 sendmail프로그램을
통해 SMTP를 완벽하게 지원합니다. 간혹 sendmail데몬과 pop3데몬의 역할에 대해 잘못 알고 계시는 분이 계신데 sendmail
은 메일의 발신, 수신, 중계의 역할을 합니다. 즉 sendmail데몬은 메일을 보내고 받고 하는 역할을 합니다.
pop3데몬은 sendmail이 수신한 사용자의 메일을 사용자의 메일 클라이언트에서 받아 볼 수 있는 역할을 합니다.

0. 들어가기 전에
sendmail.cf파일을 다루는 능력이 안된다고 해서 sendmail을 사용할 수 없는건 아닙니다. sendmail을 설치하면 기본적으로 설정되어 있는 sendmail.cf파일만으로도 충분히 아니 만족스러울 정도로 sendmail을 가동할 수 있습니다.
이번 강좌에서 다루는 sendmail.cf 설정들의 설명은 쉽고 자주 이용되는 설정에 대해서만 다룰려고 합니다. 하지만 이번 강좌에서 다루는 내용만으로도 sendmail을 사용하는데 아무런 지장이 없을 것입니다. 센드메일 관련 질문들을 봐도 이 범위에 벗어난 질문은 없는 것 같군요. 사실 더 이상 자세히 다룰 실력도 안되고, 워낙 sendmail의 기능이 많아서...
(800페이지 분량의 sendmail만을 다룬 책도 있습니다)
사실 sendmail.cf 파일에 대해서 공부하는것이 무척 부담스러울 것이다. 부담 되시는 분이나 처음부터 이해가 되지 않아 이 페이지를 닫으실 분들은 "1.3 Options 섹션" 부분만이라도 한번 읽어 보길 바란다.


1. sendmail.cf(sendmail 환경설정)
1.1-1 sendmail.cf의 규칙
-->>sendmail.cf의 각 행들은 다음과 같은 규칙이 적용됩니다.
1) 빈행은 무시한다.
2)
#로 시작하는 행은 주석행이다.
3)
C, D, F, H, K, M, O, P, R, S, V로 시작하는 행은 설정행이다.
4)
하나이상의 빈 공간으로 시작하는 행은 앞 행의 연장이다.

sendmail.cf 파일은 7개의 색션으로 나누어져 있는 아주 복잡한 파일이다.
아마 초보 분들은 sendmail.cf파일을 열고 그 내용의 방대함에 놀라 그냥 파일을 닫는 분도 있을 겁니다. 저도 첨에sendmail.cf 파일을 열어봤을 땐 짜증이 확 밀려 왔으니까.....
우선 간략하게 7개의 섹션들에 대해서 잠깐 살펴보고 넘어 갑니다.. 아주 간략하게.. 지금부터 바짝 긴장 하시길.. ^^;

Local Info

--->> 0이 섹션은 해당 로컬 호스트의 구성 정보를 정의합니다.
Options
--->> sendmail 환경을 정의하는 옵션을 정의 한다.
Message Precedence
--->> sendmail 메시지 순서 값을 정의 합니다.
Trusted Users
--->> 발신인의 주소를 변경할 권한을 갖는 사용자를 정의합니다.
Format of Headers
--->> 메일에 삽입도는 메일 헤더를 정의합니다.
Rewriting Rules
--->> 사용자의 메일 프로그램에 있는 e-mail 주소를 메일 배달 프로그램에 필요한 폼으로 다시 작성하는 명령이 들어 있습니다.
Mailer Definitions
--->> 메일을 배달하는데 사용되는 프로그램을 정의합니다. Mailer가 사용하는 재작성 규칙도 이 섹션에 정의되어
있습니다
.

1.1-2 sendmai.cf에서 사용되는 명령
C : 클래스 정의(문자열)
D
: 메크로 정의
E
: 환경변수 지정
F
: 클래스 정의(file, pipe)
H
: Herder 정의
K
: Key file 정의(map 정의)
M
: mailer 정의
O
: 옵션
P
: Message precedences
R
: 덮어쓰기
S
: Ruleset(새로운 규칙 시작)
T
: Truseted users(사용자 지정)
V
: 설정파일 버젼

1.2 local info 섹션

Cwlocalhost
localhost를 w클래스로 정의 한겁니다.
다음에 나오는 Fw와의 차이점은 C는 문자열을 정의하고 F는 파일을 정의합니다.

Fw/etc/mail/local-host-names
Cwlocalhost와 같이 w클래스를 정의하는데 문자열 대신 파일을 정의합니다.
즉 /etc/mail/local-host-names에 추가할 내용을 Cwlocalhost aaa.com bbb.com 으로 설정해도 같은 효과가 납니다..

FR-o /etc/mail/relay-domains
Relay를 허용할 도메인을 설정합니다.
그러나 /etc/mail/access에서 Relay 제어를 할 수 있기 때문에 이 파일은 거의 쓰기 않는 파일입니다.


DnMAILER-DAEMON
sendmail이 return 메일을 보낼 때 사용하는 사용자 이름을 정의한다.
sendmail로부터 return 메일을 받아 본 사람들은 MAILER-DAEMON의 메일을 받아본 기억이 있을 겁니다.


Kmailertable hash -o /etc/mail/mailertable
Mailer 테이블을 작성하는 파일을 정의합니다.
K 명령은 모든 정보와 내부 이름, 데이터베이스의 유형, 이 데이터베이스를 가지고 있는 파일을 정의할 때 사용한다.
K명령은 "mailertable"라는 이름의 데이터 베이스를 선언하는데 이 데이터 베이스는 표준 Unix 데이터베이스 포맷인 hash 포맷으로 되었있다는 것을 정의한다.


Kvirtuser hash -o /etc/mail/virtusertable
가상 유저 테이블을 정의하고 있다.


Kaccess hash -o /etc/mail/access
메일 수신자 데이터 베이스 파일을 정의하고 있다.

1.3 Options 섹션
아마 서버 관리자의 취향에 따라 가장 많이 수정되어 지는 부분이 Options 섹션의 설정들이 아닌가 생각된다.
모든 옵션에 대해서 설명을 하지 않았지만 특별한 경우가 아니면 이 밖의 설정들을 건드릴 일은 없을 것이라고 생각된다.

O SevenBitInput=False
7비트로 받아 들이지 않게 설정하고 있다.


O EightBitMode=pass8
8비트 데이트로 처리하게 설정하고 있다.


O AliasFile=/etc/aliases
aliases파일의 위치를 정의하고 있다.


O MaxMessageSize=1000000
메일의 최대 용량을 제한하는 옵션이다. 기본적으로 주석처리 되어 있어 무제한으로 설정되어 있다.
메일 박스 용량과는 무관한 설정이다.


O DeliveryMode=background
센드메일을 백그라운드로 작동하게 설정하고 있다.


O MaxHopCount=17
최대 메일 포워딩 수를 정의하고 있다.
큐잉 서버를 만들 때 사용되는 것으로 기본적으로 주석 처리 되어 있다.


O HelpFile=/usr/lib/sendmail.hf
help파일의 위치를 정의하고 있다.


O ForwardPath=$z/.forward.$w:$z/.forward
.forward 파일의 위치를 정의하고 있다.
$w는 호스트 이름을 가리키는 매크로 값이고 $z는 사용자 홈 디렉토리를 가리킨다.


O QueueDirectory=/var/spool/mqeue
센드메일의 큐 디렉토리의 위치를 지정한다.
큐 디렉토리는 메일 발송 실패 또는 대기 하고 있는 메일들이 임시로 저장되는 곳이다.


O Timeout.connect=1m
타임 아웃을 1분으로 설정하고 있다.


O Timeout.queuereturn=5d
Return메일이 발송될 시간을 설정하고 있다.
특정 이유로 메일이 5일동안 발송되지 않으면 메일을 보낸 사람에게 반송된다.


O Timeout.queuewarn=4h
메일이 최종 발신지까지 4시간동안 발송되지 않으면 메일을 보낸 사람에게 경고 메일을 보낸다.
sendmail.cf 파일에는 위 3가지 Timeout 설정외에 많은 Timeout 설정들이 있다.


O StatusFile=/var/log/sendmail.st
센드메일의 status 파일의 위치를 지정한다.


O DefaultUser=8:12
Mailer 의 UID와 GID를 설정한다. (UID : 8 , GID : 12)


O MinQueueAge=30m
메일을 바로 발송하지 않고 최소한 30분동안 큐잉 상태로 대기 시킨다. 기본적으로 주석 처리 되어 있다


O


1.4 Mesage Procedure 섹션
메시지 대기열에 들어가는 메시지의 우선 순위를 할당할 때 사용한다. 디폴트로 메일은 "1종 우편물"로 간주되어 0이라는 우선 순위가 할당된다. 우선 순위를 나타내는 수가 음수일 경우 메일로 보낼 에러 메시지가 만들어지지 않기 때문에 대량 메일링에는 낮은 우선 순위를가 유리하다. 아래의 우선 순위 설정들은 수정하지 말고 기본값으로 사용하길 바란다.
Pfirst-class=0
Pspecial-delivery=100
Plist=-30
Pbulk=-60
Pjunk=-100


1.5 Trusted Users 섹션
Trust된 사용자는 메일을 보낼 때 발신의의 주소를 변경할 수 있다. 단 trust된 사용자는 /etc/passwd 파일에 존재하는 사용자이어야 된다. 기본적으로 root, daemon, uucp가 설정되어 있다. 보안상 아래의 값을 변경하는 일은 없기 바란다.
Troot
Tdaemon
Tuucp


1.6 Format of Headers 섹션
메일 헤더를 정의하는 부분이다.
H?P?Return-Path: <$g>
HReceived: $?sfrom $s $.$?_($?s$|from $.$_)
$.$?{auth_type}(authenticated$?{auth_ssf} (${auth_ssf} bits)$.)
$.by $j ($v/$Z)$?r with $r$. id $i$?{tls_version}
(using ${tls_version} with cipher ${cipher} (${cipher_bits} bits) verified ${verify})$.$?u
for $u; $|;
$.$b
H?D?Resent-Date: $a
H?D?Date: $a
H?F?Resent-From: $?x$x <$g>$|$g$.
H?F?From: $?x$x <$g>$|$g$.
H?x?Full-Name: $x
# HPosted-Date: $a
# H?l?Received-Date: $b
H?M?Resent-Message-Id: <$t.$i@$j>
H?M?Message-Id: <$t.$i@$j>

#^L


1.7 Rewritng Rules 섹션
R$* $#error $@ 5.7.1 $: "550 Relaying denied"
이 설정은 localhost에서만 RELAY를 허용하라는 설정이다. 절대 주석 처리 되어 있으면 안된다.
만약 주석 처리 되어 있을 경우 스패머들의 놀리터가 될 수 있다.


Mlocal, P=/usr/bin/procmail, F=lsDFMAw5:/|@qSPfhn9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL,
M=1000000, T=DNS/RFC822/X-Unix, A=procmail -Y -a $h -d $u
위의 "M=1000000" 설정을 통해서 사용자가 사용할 수 있는 전체 메일 용량이 아니라 들어오는 메일 용량을 제한 할 수
있다. 기본적으로 설정이 되어 있지 않다. (단위: bytes)

==============================================================================================
출처 :
https://www.linux.co.kr/home/lecture/index.php?cateNo=6&leccode=390&secNo=65&theNo=389

2014/05/28 09:52 2014/05/28 09:52
샤이 이 작성.

당신의 의견을 작성해 주세요.

/proc 설명

2014/02/04 10:09 / Linux/Etc
/proc 내부 내용 설명

loadavg 지난 1,5,15 분간의 평균 시스템 부하
uptime 부트 이래로 총 가동 시간(초) 과 프로세스에 의해 사용된 총 시간
meminfo 메모리와 스왑의 사용 및 프리 바이트
kmsg 커널에 의해 읽혀질 커널 메시지
version 커널 또는/그리고 배포본의 버전
cpuinfo 프로세서(CPU) 파라메터
pci 현재의 PCI 슬롯 사용 정보
self/ 현재 /proc를 억세스하고 있는 프로세스 정보
net/ 네트워크 계층 설명
scsi/ 개개의 scsi 장치에 관한 정보를 갖는 파일들이 위치함.
malloc kmalloc 과 kfree 운영 정보 모니터링
kcore 커널 코어 덤프
modules 단일 적재 모듈에 관한 정보
stat 일반 리눅스 통계
devices 커널에 등록된 시스템 장치에 관한 정보
interrupts 인터럽트 할당 정보
filesystems 현재의 파일시스템 구현
ksyms 커널에의해 익스포트된 심볼
dma 사용중인 DMA 채널
ioports 현재 사용중인 입출력 포트
smp SMP가 활성화 돼 있을 경우 각 CPU 정보
cmdline 부트시에 커널에 넘겨진 파라메터
sys/ 중요한 커널과 네트워크 정보
mtab 현재 마운트된 파일 시스템
md 다중 디바이스 드라이버 정보(활성화 되었을 경우)
rc 확장 리얼타임 클럭
locks 현재 락(locked)된 파일
Numbered Directories - 숫자로 된 디렉터리는 그 PID의 실행 프로세서 정보이다.

=====================================================================================
출처:https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=linuxserver&wr_id=20850
2014/02/04 10:09 2014/02/04 10:09
샤이 이 작성.

당신의 의견을 작성해 주세요.

현재 위치의 하위에서 용량이 1MB 이상인 파일 찾는 명령어

find . -xdev -size +2048 -ls |sort -r +6
2013/12/31 11:30 2013/12/31 11:30
샤이 이 작성.

당신의 의견을 작성해 주세요.

apache LogFormat에서 사용되는 %변수



































































































%a


원 격 IP-주소


%A


(서버) IP-주소


%B


HTTP 헤더를 제외한 전송 바이트수.


%b


HTTP 헤더를 제외한 전송 바이트수. CLF 형식과 같이 전송한 내용이 없는 경우 0 대신 '-'가 나온다.


%C


서 버가 수신한 요청에서 Foobar 쿠키의 내용.


%D


요청을 처리하는데 걸린 시간 (마이크로초 단위).


%e


환경변수 FOOBAR의 내용


%f


파일명


%h


원 격 호스트


%H


요청 프로토콜


%i


서버가 수신한 요청에서 Foobar: 헤더의 내용.


%l


(있 다면 identd가 제공한) 원격 로그인명. mod_ident가 있고 IdentityCheck On이 아니면 빼기기호를 기록한다.


%m


요청 메써드


%n


다른 모듈이 기록한 Foobar 노트(note) 내용.


%o


응 답의 Foobar: 헤더 내용.


%p


요청을 서비스하는 서버의 정규 포트


%P


요청을 서비스하는 자식의 프로세스 ID.


%P


요청을 서비스하는 자식의 프로세스 ID 혹은 쓰레드 ID. format에는 pid tid가 가능하다.


%q


질 의문자열 (질의문자열이 있다면 앞에 ?를 붙이고, 없다면 빈 문자열)


%r


요청의 첫번째 줄


%s


상 태(status). 내부 리다이렉션된 요청의 경우 *원래* 요청의 상태이다. 최종 요청의 상태는 %>s.


%t


common log format 시간 형식(표준 영어 형식)의 시간


%t


strftime(3) 형식 format의 시간. (지역시간일 수 있음)


%T


요청을 처리하는데 걸린 시간 (초 단위).


%u


원격 사용자 (auth가 제공하며, 상태(%s) 401인 경우 이상한 값을 나올 수 있음)


%U


질 의문자열을 제외한 요청 URL 경로.


%v


요청을 서비스한 서버의 정규 ServerName.


%V


UseCanonicalName 설정에 따른 서버명.


%X


응답을 마쳤을때 연결 상태.
X =
응답을 마치기 전에 연결이 끊어졌다.
+ =
응답을 보낸후에도 연결이 살아있다(keep alive).
- =
응답을 보낸후 연결이 끊어졌다.


%I


요청과 헤더를 포함한 수신 바이트수로 0일 수 없다. 이를 사용하려면 mod_logio가 필요하다.


%O


헤더를 포함한 송신 바이트수로 0 없다. 이를 사용하려면 mod_logio 필요하다.





=====================================================================
출처 : http://sol9501.blog.me/70086719455

2013/09/16 13:55 2013/09/16 13:55
샤이 이 작성.

당신의 의견을 작성해 주세요.

[양평] 두물머리

2013/05/19 23:45 / Travel log

사용자 삽입 이미지

북한강과 남한강이 만나는 양평 두물머리.
일출이 더 이쁘다고 하는 말에 꼭두새벽부터 일어나 도착.. 5시경 이었음에도 사진을 찍으러 온
사람들로 북적거림 생각보다는 아담하고 듣던대로 이쁘다 멋진 풍경과 아침공기로 인해 힐링이 되는기분~

사용자 삽입 이미지
사용자 삽입 이미지

도당할매,할배라고 불린다는 소원나무
일단 소원을 들어준다니 돌맹이 하나 얹어놓고 빌어봄.

사용자 삽입 이미지

소원나무 앞의 포토존.
뒤에 사람을 세워두고 찍으면 멋진 사진이 완성!
(모델은 착한 사람 눈에만 보입니다.)

사용자 삽입 이미지

가장 아름다운 사진을 찍을 수 있는 일출의 매직아워 시간이 지나가자 20여명 남짓 모여있던
진사님들 약속이나 한듯이 흩어져 돌아감.. 난 두물머리가 처음인 관계로 한바퀴 둘러 보았다
사진은 나룻배 5형제..

사용자 삽입 이미지
물속에서 솟아나온 이름모를 식물들..
아침이슬을 받아 멋진 풍경을 만들어 준다.

사용자 삽입 이미지
아니요.. 아쉽게도..

사용자 삽입 이미지
이른 아침임에도 가족단위의 사람들이 눈에 띈다
부지런한 가족인듯..

사용자 삽입 이미지
차가 없다면 일출시간은 맞추기 힘들 듯 하지만 일출이 아니더라도
두물머리는 나도 모르게 힐링이 되는 정말 멋진 곳 입니다~

사용자 삽입 이미지

두물머리 둘레로 볼만한 장소가 한가득~ 이길을 지나면
연꽃이 가득한 물의 정원 세미원으로 갈 수 있는듯 하다..
7월초가 절정이라고 하니 아쉽지만 다음을 위해 아껴 두었다.

사용자 삽입 이미지

일출이 아름다운 명소



2013/05/19 23:45 2013/05/19 23:45
샤이 이 작성.

당신의 의견을 작성해 주세요.

« Prev : 1 : 2 : 3 : 4 : 5 : ... 27 :