Ⅰ. Sendmail 이란?
리눅스에서 Sendmail은 일반적으로 전자 메일을 보내는 데 사용되는 메일 전송 에이전트(MTA)입니다. Sendmail은 유닉스 및 리눅스 운영 체제에서 가장 일반적으로 사용되는 MTA 중 하나입니다.
Sendmail은 기본적으로 텍스트 기반의 구성 파일을 사용하여 구성됩니다. 이 파일은 일반적으로 /etc/mail/sendmail.cf 또는 /etc/sendmail.cf와 같은 경로에 저장됩니다. Sendmail은 이 구성 파일을 사용하여 메일 전송 구성, 인증 및 보안 구성, DNS 구성 등을 지정합니다.
Ⅱ. Senmail 설치
Sendmail은 Unix 계열 운영체제에서 기본적으로 제공되는 메일 전송 에이전트(MTA) 중 하나입니다.
현재는 Postfix, Exim 등의 MTA가 더 많이 사용되고 있지만, 일부 서버에서 Sendmail을 사용하고 있습니다.
Sendmail을 설치하려면 우선 운영체제의 패키지 관리자를 사용하거나 소스 코드를 직접 컴파일하여 설치해야 합니다. 각 운영체제의 패키지 관리자를 사용하는 방법은 운영체제에 따라 다릅니다.
다음과 같은 명령어로 Sendmail을 설치할 수 있습니다.
1) Rocky Linux ( Redhat 계열)
[root@feccle ~]# yum -y install sendmail Last metadata expiration check: 3:41:06 ago on Mon 01 May 2023 07:18:10 PM KST. Dependencies resolved. ================================================================================ Package Architecture Version Repository Size ================================================================================ Installing: sendmail x86_64 8.15.2-34.el8 appstream 767 k Installing dependencies: procmail x86_64 3.22-47.el8 appstream 179 k Transaction Summary ================================================================================ Install 2 Packages Total download size: 946 k Installed size: 2.0 M Downloading Packages: (1/2): procmail-3.22-47.el8.x86_64.rpm 2.2 MB/s | 179 kB 00:00 (2/2): sendmail-8.15.2-34.el8.x86_64.rpm 5.1 MB/s | 767 kB 00:00 -------------------------------------------------------------------------------- Total 1.4 MB/s | 946 kB 00:00 Running transaction check Transaction check succeeded. |
1-1) Rocky Linux ( Redhat 계열) 서비스 등록 및 확인
1. 서비스 시작 [root@feccle ~]# systemctl start sendmail 2. 부팅 시 자동으로 시작 되도록 서비스 등록 [root@feccle ~]# systemctl enable sendmail 3. 서비스 상태 확인 [root@feccle ~]# systemctl status sendmail |
2) Debian/Ubuntu 계열
[root@feccle ~]# sudo apt-get install sendmail |
1) 서비스 시작 [root@feccle ~]# service sendmail start [root@feccle ~]# /etc/init.d/sendmail start 2) 서비스 상태 확인 [root@feccle ~]# service sendmail status |
Ⅲ. Sendmail 구성
Sendmail을 구성하려면 /etc/mail/sendmail.mc 파일을 수정해야 합니다. 이 파일은 Sendmail의 메인 구성 파일로, Sendmail의 동작을 변경하는 데 사용됩니다.
예를 들어, localhost에서만 메일을 수신하고 메일을 외부로 전송할 때 스마트 호스트를 사용하려면 다음과 같이 sendmail.mc 파일을 수정할 수 있습니다.
26 dnl define(`SMART_HOST', `smtp.your.provider')dnl 27 dnl # 28 define(`confDEF_USER_ID', ``8:12'')dnl 29 dnl define(`confAUTO_REBUILD')dnl 30 define(`confTO_CONNECT', `1m')dnl 31 define(`confTRY_NULL_MX_LIST', `True')dnl .... 105 FEATURE(local_procmail, `', `procmail -t -Y -a $h -d $u')dnl 106 FEATURE(`access_db', `hash -T<TMPF> -o /etc/mail/access.db')dnl 107 FEATURE(`blacklist_recipients')dnl 108 EXPOSED_USER(`root')dnl 109 dnl # 110 dnl # For using Cyrus-IMAPd as POP3/IMAP server through LMTP delivery un comment .... 121 DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl 122 dnl # 123 dnl # The following causes sendmail to additionally listen to port 587 for 124 dnl # mail from MUAs that authenticate. Roaming users who can't reach their 125 dnl # preferred sendmail daemon due to port 25 being blocked or redirected find 126 dnl # this useful. 127 dnl # 128 dnl DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl 129 dnl # 130 dnl # The following causes sendmail to additionally listen to port 465,but 131 dnl # starting immediately in TLS mode upon connecting. Port 25 or 587 followed 132 dnl # by STARTTLS is preferred, but roaming clients using Outlook Express can't 133 dnl # do STARTTLS on ports other than 25. Mozilla Mail can ONLY use STARTTLS 134 dnl # and doesn't support the deprecated smtps; Evolution <1.1.1 uses smtps 135 dnl # when SSL is enabled-- STARTTLS support is available in version 1.1.1. 136 dnl # 137 dnl # For this to work your OpenSSL certificates must be configured. 138 dnl # 139 dnl DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=s')dnl |
위의 예제에서는 "smtp.your.provider"을 스마트 호스트로 지정하고, 메일 전송을 위한 다양한 포트를 설정하고 있습니다.
Sendmail을 사용하여 메일을 보내려면 일반적으로 sendmail 명령어를 사용합니다. 예를 들어, 다음과 같이 명령어를 입력할 수 있습니다.
echo "This is a test email" | sendmail -v recipient@example.com
이 명령은 "This is a test email"라는 텍스트를 포함하는 이메일을 reply@feccle.com으로 보냅니다. -v 옵션을 사용하여 보내는 프로세스의 자세한 정보를 표시할 수 있습니다.
[root@feccle ~]# echo "This is a test message." | mail -s "Test Email" reply@feccle.com |
Sendmail은 기본적으로 설정되어 있으면 모든 로컬 사용자가 메일을 보낼 수 있습니다. 따라서 시스템 관리자는 보안상의 이유로 Sendmail을 구성하여 스팸 메일 전송을 방지하고 악성 코드를 차단하도록 설정해야 할 수 있습니다.
Ⅳ. 주요파일
/etc/mail/local-host-names : 메일 서버에 사용하는 도메인을 설정한다.
/etc/mail/access : 메일 서버로 접근하는 호스트에 대한 접근제어(ACL)를 설정한다.
/etc/mail/virtusertable : 특정 메일주소로 들어오는 메일을 다른 계정으로 포워딩한다.
/etc/aliases : 특정 계정으로 들어오는 메일을 다른 계정으로 전송되도록 설정한다.
* virtusertable
리눅스 sendmail 프로그램에서 특정 이메일 주소로 받은 메일을 다른 사용자에게 할당합니다. 다른 여러개의 도메인에서 같은 아이디를 사용하여 메일을 받고자 할 때 사용해야 합니다.
[root@feccle ~]# vi /etc/mail/virtusertable security@fecc.com alpa security@ccle.com beta [메일주소] [받을 유저] ... |
내용 수정 후 makemap hash로 적용시켜 줘야 합니다.
[root@feccle ~]# makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable |
* makemap은 Sendmail과 같은 메일 전송 에이전트(MTA)에서 사용되는 명령어 중 하나입니다. makemap은 Sendmail의 데이터베이스 매핑 유틸리티로, 일반적으로 Sendmail에서 사용되는 데이터베이스 파일을 생성하고 관리하는 데 사용됩니다.
Sendmail에서는 일반적으로 makemap 명령어를 사용하여 access.db, alias.db, virtusertable.db 등과 같은 데이터베이스 파일을 생성합니다. 이러한 데이터베이스 파일은 Sendmail이 메일 전송을 처리하는 데 필요한 정보를 저장합니다.
makemap 명령어의 일반적인 구문은 다음과 같습니다.
makemap [map-type] [options] database-file < input-file |
여기서 [map-type]은 데이터베이스 매핑 유형을 나타내며, 일반적으로 hash, btree, dbm 등이 사용됩니다. [options]는 추가 옵션을 지정하는 데 사용됩니다. database-file은 생성할 데이터베이스 파일의 경로 및 이름을 지정합니다. 마지막으로, < input-file은 데이터베이스 파일에 쓸 데이터를 지정합니다.
예를 들어, 다음과 같은 명령어는 /etc/mail/access 파일에서 데이터를 읽어들여 /etc/mail/access.db 파일을 생성합니다.
makemap hash /etc/mail/access.db < /etc/mail/access |
이 명령어는 hash 매핑을 사용하여 /etc/mail/access.db 파일을 생성하고, /etc/mail/access 파일에서 데이터를 읽어들입니다. 이렇게 생성된 데이터베이스 파일은 Sendmail에서 사용되어 메일 전송을 처리하는 데 필요한 정보를 저장합니다.
'시스템(Linux)' 카테고리의 다른 글
HWclock 에 대해 알아보겠습니다. (0) | 2023.06.17 |
---|---|
로키(Locky) 리눅스 기본 설치에 대해 알아보도록 하겠습니다. (0) | 2023.05.23 |
rsync 에 대해 알아보겠습니다. (0) | 2023.04.19 |
링크파일에 대해 알아보겠습니다. (0) | 2023.02.14 |
권한 및 그룹설정에 대해 알아보겠습니다. (2) | 2023.01.30 |