foxcpp / foxcpp/maddy

Maddy tries to use a localhost dns resolver instead of the nameserver specified in /etc/resolve.conf

Đang mở
#475 2 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

bug
Ngôn ngữ chính
Go
Star
6.1k
Fork
327
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

# Describe the bug

I set up a maddy service on a Vultr VPS, and it seems maddy does not respect the nameserver settings in `/etc/resolve.conf` and tries to read from localhost resolver.
Restart the service solves the problem, but I have to restart the service everytime I reboot.

# Steps to reproduce

1. Setup the systemd service for maddy.
2. Reboot
3. Try to send a mail to a remote host.

# Log files

```
queue: delivery attempt failed {"msg_id":"90b4eed2","rcpt":"rcpt@example.com","reason":"read udp 127.0.0.1:40762-\u003e127.0.0.1:53: read: connection refused","smtp_code":554,"smtp_enchcode":"5.4.4","smtp_msg":"MX lookup error","target":"remote"}
```

# Configuration file

```
$(hostname) = mx.myhost.name
$primary_domain) = myhost.name
$(local_domains) = $(primary_domain)
hostname mx.myhost.name
tls file ${cert.directory}/fullchain.pem ${cert.directory}/key.pem

auth.pass_table local_authdb {
table sql_table {
driver sqlite3
dsn credentials.db
table_name passwords
}
}

storage.imapsql local_mailboxes {
driver sqlite3
dsn imapsql.db
}

table.chain local_rewrites {
optional_step regexp "(.+)\+(.+)@(.+)" "$1@$3"
optional_step static {
entry postmaster mlatus@$(primary_domain)
}
optional_step file /etc/maddy/aliases
}

msgpipeline local_routing {
# Insert handling for special-purpose local domains here.
# e.g.
# destination lists.example.org {
# deliver_to lmtp tcp://127.0.0.1:8024
# }

destination postmaster $(local_domains) {
modify {
replace_rcpt &local_rewrites
}

deliver_to &local_mailboxes
}

default_destination {
reject 550 5.1.1 "User doesn't exist"
}
}

smtp tcp://0.0.0.0:25 {
limits {
# Up to 20 msgs/sec across max. 10 SMTP connections.
all rate 20 1s
all concurrency 10
}

dmarc yes
check {
require_mx_record
dkim
spf
}

source $(local_domains) {
reject 501 5.1.8 "Use Submission for outgoing SMTP"
}
default_source {
destination postmaster $(local_domains) {
deliver_to &local_routing
}
default_destination {
reject 550 5.1.1 "User doesn't exist"
}
}
}

submission tls://0.0.0.0:465 tcp://0.0.0.0:587 {
limits {
# Up to 50 msgs/sec across any amount of SMTP connections.
all rate 50 1s
}

auth &local_authdb

source $(local_domains) {
check {
authorize_sender {
prepare_email &local_rewrites
user_to_email identity
}
}

destination postmaster $(local_domains) {
deliver_to &local_routing
}
default_destination {
modify {
dkim $(primary_domain) $(local_domains) default
}
deliver_to &remote_queue
}
}
default_source {
reject 501 5.1.8 "Non-local sender domain"
}
}

target.remote outbound_delivery {
limits {
# Up to 20 msgs/sec across max. 10 SMTP connections
# for each recipient domain.
destination rate 20 1s
destination concurrency 10
}
mx_auth {
dane
mtasts {
cache fs
fs_dir mtasts_cache/
}
local_policy {
min_tls_level encrypted
min_mx_level none
}
}
}

target.queue remote_queue {
target &outbound_delivery

autogenerated_msg_domain $(primary_domain)
bounce {
destination postmaster $(local_domains) {
deliver_to &local_routing
}
default_destination {
reject 550 5.0.0 "Refusing to send DSNs to non-local addresses"
}
}
}

imap tls://0.0.0.0:993 tcp://0.0.0.0:143 {
auth &local_authdb
storage &local_mailboxes
}
```

# Environment information

* maddy version: 0.5.4

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Hướng nghiên cứu

Bắt đầu bằng cách kiểm tra cách dịch vụ systemd khởi tạo việc phân giải DNS và điều đó khác nhau như thế nào trước và sau khi khởi động lại. So sánh resolver được maddy sử dụng với nameserver trong /etc/resolve.conf; được xem là hoàn tất khi các truy vấn MX từ xa hoạt động sau khi khởi động lại mà không cần khởi động lại dịch vụ.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
go, linux
Lĩnh vực
networking
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.