내 mailq
편지함은 보낸 이메일에 대한 보고서로 가득 차 있습니다(예:[이메일 보호됨]) 존재하지 않는 로컬 사용자(예:[이메일 보호됨])
mailq
예:
8F979561A3 1440 Thu Aug 25 13:54:32 [email protected]
(delivery temporarily suspended: connect to 127.0.0.1[127.0.0.1]:10024: Connection refused)
[email protected]
어떻게 막을 수 있나요?
내 main.cf
것은:
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
# Debian specific: Specifying a file name will cause the first
# line of that file to be used as the name. The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
readme_directory = /usr/share/doc/postfix
# TLS parameters
smtpd_tls_cert_file = /etc/postfix/smtpd.cert
smtpd_tls_key_file = /etc/postfix/smtpd.key
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.
myhostname = faster2.jbmd.com
alias_maps = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases
alias_database = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases
myorigin = /etc/mailname
mydestination = localhost, localhost.localdomain
relayhost =
mynetworks = 127.0.0.0/8 [::1]/128
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
html_directory = /usr/share/doc/postfix/html
virtual_alias_domains =
virtual_alias_maps = hash:/var/lib/mailman/data/virtual-mailman, proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, proxy:mysql:/etc/postfix/mysql-virtual_email2email.cf
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_mailbox_base = /var/vmail
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
inet_protocols = all
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_recipient_access mysql:/etc/postfix/mysql-virtual_recipient.cf
smtpd_tls_security_level = may
transport_maps = hash:/var/lib/mailman/data/transport-mailman, proxy:mysql:/etc/postfix/mysql-virtual_transports.cf
relay_domains = mysql:/etc/postfix/mysql-virtual_relaydomains.cf
relay_recipient_maps = mysql:/etc/postfix/mysql-virtual_relayrecipientmaps.cf
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks
smtpd_sender_restrictions = reject_non_fqdn_sender, reject_unlisted_sender, reject_unknown_sender_domain,check_sender_access regexp:/etc/postfix/tag_as_originating.re, permit_mynetworks, permit_sasl_authenticated, check_sender_access mysql:/etc/postfix/mysql-virtual_sender.cf, check_sender_access regexp:/etc/postfix/tag_as_foreign.re
smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unknown_client_hostname, check_client_access mysql:/etc/postfix/mysql-virtual_client.cf reject_rbl_client cbl.abuseat.org, reject_rbl_client b.barracudacentral.org
smtpd_client_message_rate_limit = 100
maildrop_destination_concurrency_limit = 1
maildrop_destination_recipient_limit = 1
virtual_transport = dovecot
header_checks = regexp:/etc/postfix/header_checks
mime_header_checks = regexp:/etc/postfix/mime_header_checks
nested_header_checks = regexp:/etc/postfix/nested_header_checks
body_checks = regexp:/etc/postfix/body_checks
owner_request_special = no
smtp_tls_security_level = may
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_protocols = !SSLv2,!SSLv3
smtp_tls_protocols = !SSLv2,!SSLv3
dovecot_destination_recipient_limit = 1
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
content_filter = amavis:[127.0.0.1]:10024
receive_override_options = no_address_mappings
message_size_limit = 0
default_process_limit = 150
local_recipient_maps = proxy:unix:passwd.byname $alias_maps
답변1
가장 좋은 시나리오는 한 명 이상의 사용자가 손상되는 것입니다. 예를 들어 악의적인 행위자가 비밀번호를 추측/피싱하는 경우입니다.
인증된 사용자가 이메일을 보낼 수 있도록 허용하고 있으므로 탐지를 피하기 위해 "보낸 사람" 필드를 위조할 가능성이 높습니다.
몇 가지 관련 메시지의 전체 텍스트를 편집하면 피해를 입은 사용자에 대한 힌트를 얻을 수 있습니다.
시작점으로 "보낸 사람" 필드를 알려진 사용자로 제한하는 것이 좋습니다. 이 스레드를 확인하세요.Postfix: 사용자가 실제 이메일 주소를 변경하지 못하도록 방지
중간 시나리오로 웹 서버의 일부 페이지/CGI를 활용할 수 있습니다.postfix 서버가 Apache를 실행 중인 경우.
최악의 경우 상자가 손상될 수 있습니다.
postfix와 Apache 액세스 로그(Apache가 있는 경우)를 살펴보면 무슨 일이 일어나고 있는지에 대한 보다 합리적인 아이디어를 얻을 수 있습니다.
편집: @P.Masher가 지연된 메시지의 예를 게시한 후:
참고할 관련 줄은 다음과 같습니다.
X-PHP-Originating-Script: 5015:alias.php(1944) : eval()'d code
alias.php
이는 웹 서버(Apache?)에 액세스할 수 있는 덜 안전한 디렉토리에 심어졌을 수 있는 스크립트 이름이 있다는 것입니다 . 이는 이메일을 보내는 원인입니다.
스크립트를 제거해야 하며 디렉터리는그리고스패머가 이 스크립트를 심기 위해 사용하는 다른 모든 수단(기존 WordPress, SQL 삽입, 기존 웹메일 인터페이스)을 닫아야 합니다.
임시 해결책은 웹 서버를 완전히 중지하는 것일 수 있습니다.
또한 방문한 웹 서버 로그를 수집하여 alias.php
로컬 CERT로 보냅니다. (자주 사용하는 제품이 있는 경우)
더 많은 보안 고려 사항에 대해 말하자면, eval()을 통해 코드를 실행한다는 사실은 기본적으로 vhost/Apache를 실행하는 사용자가 액세스할 수 있는 모든 파일에 액세스할 수 있음을 의미합니다. 즉,외딴서버의 쉘 계정.
서버가 오래되었거나 업데이트되지 않은 경우 최악의 경우 루트 수준 권한을 악용할 수도 있습니다. 최선의 경우 웹 서버에서 권한이 없는 사용자와 동등한 액세스 권한만 갖게 되지만 암호 악용을 시도했을 수도 있습니다. HTML/PHP 파일이며 postfix 사용자에 대해 해시된 비밀번호를 수집했을 수 있습니다.
나는 다음을 추천한다:
1) 서버가 너무 오래되었거나 보안 업데이트가 없으면 서버를 다시 설치하십시오.
2) DB/root 비밀번호를 변경하십시오.
3) 만일을 대비하여 postfix 사용자는 비밀번호를 변경하는 것이 좋습니다.