Đang thiết lập Gửi thư. Cài đặt và cấu hình Sendmail trong môi trường Ubuntu

Cuốn sách thảo luận chi tiết về cài đặt của các dịch vụ mạng cho phép bạn tạo một máy chủ có cấu hình và chức năng cần thiết dựa trên HĐH Linux. Bạn có thể thiết lập bất kỳ loại máy chủ nào: từ máy chủ mạng nội bộđến máy chủ Internet và máy chủ Truy cập từ xa. Quản trị Linux được mô tả chi tiết.

Việc trình bày tài liệu dựa trên các bản phân phối của Red Hat và Mandrake. rất nhiều thông tin độc đáo: khởi chạy trò chơi Windows cho Linux và tạo một máy chủ Linux cho phòng chơi game, thiết lập phần mềm diệt virus Dr. Web và AVP cho Linux, chương trình tính toán lưu lượng MRTG, hệ thống phát hiện tấn công và bảo mật LIDS, v.v. Đặc biệt chú ý tập trung vào tính bảo mật của máy chủ Linux. Bản thân hệ điều hành Linux được mô tả đầy đủ chi tiết và cung cấp sách tham khảo về các lệnh của nó. Sau khi đọc cuốn sách, bạn sẽ có kiến ​​thức về cách cấu hình và biên dịch kernel, tạo các gói vòng/phút, lệnh của riêng mình thông dịch viên bash, sử dụng mảng RAID. Bạn sẽ làm quen với thế giới bên trong của Linux. Cuốn sách phù hợp cho cả quản trị viên chuyên nghiệp và người mới làm quen, vì phần trình bày của tài liệu bắt đầu bằng việc cài đặt hệ điều hành Linux và chương đầu tiên mô tả các bước chính công nghệ mạng và các giao thức (Khóa học quản trị viên trẻ).

Tất cả các danh sách đưa ra trong cuốn sách đều đã được kiểm nghiệm trên thực tế và được đính kèm trên đĩa CD đính kèm. Ngoài ra nó còn chứa rất nhiều Tài liệu tham khảo( HOWTO, RFC), cũng như các bài viết về Linux. Có tập hợp tiện ích phụ trợ phong phú và phần mềm cho máy chủ (Apache, MySQL, MRTG, v.v.).

Sách:

Nếu bạn đang sử dụng bản phân phối tương thích với RedHat, bạn sẽ cần cài đặt các gói thích hợp. Tôi đang sử dụng sendmaiI-8.11.0 và imap-4.7c2. Phiên bản mới nhất sendmail có thể được tải xuống từ Internet tại http://www.sendmail.org.

Trước khi bắt đầu thiết lập sendmail, bạn cần định cấu hình DNS chính xác. Việc thiết lập máy chủ DNS đã được thảo luận chi tiết ở Chương. 10. Nếu bạn chỉ thiết lập máy chủ thư, bạn không cần thiết lập máy chủ DNS trên cùng một máy tính. Chỉ cần chỉ định máy chủ DNS của mạng của bạn trong tệp /etc/resolv.conf là đủ để hệ thống phân giải tên hoạt động chính xác. Tuy nhiên, sendmail có thể được cấu hình để hoạt động mà không cần sử dụng DNS, nhưng tôi sẽ không xem xét lựa chọn này.

Để bắt đầu thiết lập sendmail cơ bản, hãy chạy tiện ích netconf (xem Hình 13.1). Nó hoạt động cả từ X-Window và từ bảng điều khiển. Tiện ích netconf có sẵn trong RedHat Linux, Mandrake, ASPLinux và các bản phân phối khác; nó chắc chắn không có trong KSI Linux. Đương nhiên, bạn phải đăng nhập bằng root. Nếu không có netconf, bạn sẽ dễ dàng chỉnh sửa tệp /etc/sendmail.cf bằng tay. Trong tệp này tất cả các cài đặt gửi thư được lưu trữ.


Quả sung. 13.1. cấu hình netconf

Chọn Hệ thống gửi thư từ menu, sau đó chọn Cấu hình gửi thư cơ bản. Trong trường Trình bày hệ thống của bạn dưới dạng, chỉ cần nhập Tên miền. Sau đó hãy nhớ chọn hộp kiểm “Chấp nhận email cho your_domain.com” (xem Hình 13.2). Nếu bạn không làm điều này, tin nhắn có thể được chuyển hướng qua máy chủ của bạn đến một máy chủ khác. Đồng thời, lưu lượng truy cập bổ sung sẽ chảy qua máy chủ của bạn, điều này không có ích gì cho bạn. Ngày xưa thậm chí còn có kiểu tấn công từ chối này qua email. Nguyên tắc của nó như sau: một lá thư được gửi từ một người dùng không tồn tại [email được bảo vệ] một người dùng khác không tồn tại [email được bảo vệ]. Thư được gửi qua máy tính hosting, cho phép bạn chuyển hướng thư (chế độ “Chấp nhận email cho miền.com” không được bật). Máy chủ thư của miền B.com gửi tin nhắn đến địa chỉ [email được bảo vệ] rằng người dùng [email được bảo vệ] không tồn tại. Đổi lại, người gửi thư tên miền A.com báo cáo rằng người dùng [email được bảo vệ] cũng không tồn tại và gửi tin nhắn đến địa chỉ [email được bảo vệ]. Đệ quy gián tiếp xảy ra. Bây giờ hãy tưởng tượng rằng không chỉ có một tin nhắn như vậy mà có tới 100 tin nhắn và dung lượng của mỗi tin nhắn ít nhất là 1 MB! Kết quả là một trong các máy chủ trong chuỗi Domain1.com - Host.com - Domain2.com sẽ “rơi”.


Cơm. 13.2. Cấu hình gửi thư cơ bản

Tôi xin lỗi, tôi đã lạc đề một chút, hãy tiếp tục cấu hình sendmail. Đặt giao thức gửi tin nhắn thành smtp (Giao thức cổng thư).

Thông tin này đã khá đủ để sendmail của bạn hoạt động. Bạn có thể cài đặt tùy chọn bổ sung chương trình gửi thư bằng netconf.

Bây giờ hãy đặt sendmail chỉ chấp nhận thư từ các địa chỉ được phép. Để thực hiện việc này, bạn thậm chí không cần phải tự cấu hình sendmail - bạn chỉ cần chỉnh sửa các tệp /etc/hosts.allow và /etc/hosts.deny. Cái đầu tiên chứa danh sách các máy chủ được phép truy cập vào máy này và cái thứ hai chứa danh sách các máy chủ bị từ chối. Xin lưu ý: mặc dù tên - “Được phép” hoặc “bị từ chối”, các hạn chế do tệp đầu tiên đặt ra sẽ chặt chẽ hơn nhiều. Ví dụ: để từ chối quyền truy cập vào tất cả các máy chủ ngoại trừ các máy tính trên mạng của bạn, hãy thêm dòng: 192.168.1 vào tệp /etc/hosts.allow.

Điều này có nghĩa là mạng có địa chỉ 192.168.1.0 và mặt nạ là 255.255.255.0. Bạn có thể đọc thêm về định dạng của tệp Hosts.allow và Hosts.deny bằng cách nhập lệnh man Hosts.allow.

Bây giờ đến lượt POP3. Sau khi cài đặt gói imap, bạn đã cấu hình hầu hết mọi thứ, tức là. Tôi muốn nói rằng bạn đã có thể kiểm tra cấu hình. Khởi động lại daemon inetd hoặc xinetd, tùy thuộc vào loại bạn đang sử dụng và nhập thông tin sau:

telnet<имя_только_созданного_почтовика> 25

Bạn sẽ thấy một cái gì đó như thế này để phản hồi:

Đang thử 192.168.1.1. . .
Đã kết nối với 192.168.1.1
Ký tự thoát là
220 de.dhsilabs.com ESMTP Gửi thư 8.11.0/8.8.7 Chủ nhật, ngày 17 tháng 6
2001 10:54:22 +300

Điều này có nghĩa là sendmail đang hoạt động, tất cả những gì còn lại là kiểm tra xem nó hoạt động chính xác như thế nào. Để làm điều này, hãy nhập một cái gì đó như sau:

thư đến từ: [email được bảo vệ]
220 2.1.0 [email được bảo vệ]…. Người gửi đồng ý
RCpt tới: [email được bảo vệ]
220 2.1.5 [email được bảo vệ]…. Người nhận đồng ý

Sau đó, nhập lệnh dữ liệu, sau đó là nội dung tin nhắn và để kết thúc mục nhập, hãy đặt dấu chấm vào dòng trống. Sendmail sẽ báo tin nhắn đã được gửi đi (chính xác hơn là được xếp vào hàng chờ gửi). Ghi [email được bảo vệ]- tên của người dùng mà bạn đang gửi thư. Người dùng phải thực sự tồn tại. Mục den.dhsilabs.com là tên người gửi thư của bạn.

Ghi chú. Tên [email được bảo vệ] và dhsilabs.com được lấy làm ví dụ. Thay vào đó, bạn phải chỉ định các giá trị của mình.

Xin lưu ý rằng nút my.host.com về bản chất không tồn tại và chương trình sendmail báo cáo rằng “Người gửi Ok”. Đó là lý do tại sao nên bật tùy chọn này trong cài đặt gửi thư Chờ DNS.

Bây giờ bạn cần chạy một số ứng dụng thư, ví dụ như kmail và nhận thư. Sử dụng cài đặt sau mạng trong chương trình kmail: Mạng? Gửi thư, đặt SMTP, cổng 25, tên máy chủ - tên người gửi thư của bạn, trong ví dụ này là den.dhsilabs.com. Sau đó thêm tài khoản cho POP3:

Tên người dùng - den

Mật khẩu - mật khẩu dùng để đăng nhập vào hệ thống.

Máy chủ - den.dhsilabs.com

Kết quả là bạn sẽ nhận được thông báo mà bạn đã nhập sau dữ liệu. Điều này có thể gây ra vấn đề với việc phân giải tên. Để tránh chúng, bạn cần cấu hình DNS chính xác hoặc thay tên máy chủ thư sử dụng địa chỉ IP của nó. Khi thêm người dùng mới, hãy nhớ đặt mật khẩu đăng nhập của họ. Nếu bạn không làm điều này và cố gắng nhận thư mà không chỉ định mật khẩu, bạn sẽ nhận được thông báo “Xác thực không thành công”.

Thiết lập cơ bản Chương trình sendmail rất dễ sử dụng bằng cách sử dụng bộ cấu hình, nhưng đôi khi cấu hình cơ bản là không đủ. Để biết thêm tinh chỉnh Bạn cần làm quen với các tập tin cấu hình của chương trình sendmail.

Ghi chú. Trong hầu hết các trường hợp, bạn sẽ hài lòng với thiết lập cơ bản cho đến khi những kẻ gửi thư rác đưa bạn vào "sự bảo vệ" của họ - khi đó bạn sẽ cần phải đọc Chương. 23 về các phương pháp chống thư rác. Tuy nhiên, một trong những định luật của Murphy có thể có hiệu lực - bộ cấu hình sendmail sẽ không được phát triển cho hệ thống của bạn và khi đó bạn vẫn sẽ phải xử lý các tệp cấu hình.

Tệp cấu hình sendmail chính là /etc/sendmail.cf. Trên một số bản phân phối, tệp này nằm trong thư mục /etc/mail. File này được cho là dài hơn chiếc limousine của Bill Gates và được chỉnh sửa ở chế độ "mắt sợ, tay làm". Nếu bạn không tin tôi, hãy mở tập tin này và bạn sẽ tự mình xem. Biên tập tập tin này Chỉ những quản trị viên chuyên nghiệp hoặc nhà phát triển chương trình sendmail mới có thể thực hiện việc này một cách thủ công.

Thông thường bộ xử lý macro m4 được sử dụng để chỉnh sửa tệp này. Đầu tiên bạn chuẩn bị một file mc đặc biệt. Tệp này chứa các cài đặt .sendmail, nhưng ở dạng “dễ đọc” hơn. Khi chỉnh sửa tập tin cấu hình, kích thước của chúng cũng ảnh hưởng. Để so sánh: kích thước tệp mc của tôi là 2459 byte và kích thước của tệp sendmail.cf là 46302 byte. Chỉnh sửa tệp 2 kilobyte là một chuyện, nhưng lại là chuyện khác nếu kích thước tệp là 46 kilobyte. không giống tập tin cấu hình sendmail, bạn sẽ hiểu ngay tệp mc này hoặc tệp mc kia nhằm mục đích gì. Sau đó, sau khi chỉnh sửa tệp mc, bạn cần chạy bộ xử lý macro m4 để tạo tệp cấu hình sendmail:

m4 my_config.mc > /etc/sendmail.cf

Trước khi chạy lệnh này, tôi khuyên bạn nên lưu ở đâu đó tập tin gốc sendmail.cf. Khi cài đặt không chính xác bạn luôn có thể khôi phục nó.

Tệp cấu hình mặc định, được bộ xử lý macro T4 sử dụng để tạo tệp cấu hình chương trình sendmail (sendmail.cf), nằm trong thư mục /usr/share/sendmail-cf/cf. Trong các phiên bản cũ hơn của sendmail, nó có thể nằm trong thư mục /usr/lib/sendmail.

Thông thường tập tin này được gọi là sendmail.mc. Đôi khi nó có thể được gọi bằng tên khác, chẳng hạn như redhat.mc nếu bạn đang sử dụng Red Hat hoặc hệ điều hành tương thích.

Một ví dụ về tệp tiêu chuẩn /usr/share/sendmail-cf/cf/redhat.mc được hiển thị trong Liệt kê 13.1.

Liệt kê 13.1. Tệp redhat.mc tiêu chuẩn

chuyển hướng(-1)
dnl Đây là tệp cấu hình macro sendmail. Nếu bạn thực hiện thay đổi đối với tập tin này,
dnl, bạn cần cài đặt vòng/phút sendmail-cf và sau đó phải tạo một
dnl new /etc/sendmail.cf bằng cách chạy lệnh sau: dnl
dnl m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
không
bao gồm("../m4/cf.m4")
VERSIONID("thiết lập linux cho Red Hat Linux")dnl
OSTYPE("linux")
định nghĩa("confDEF_USER_ID","8:12") dnl
không xác định("UUCP_RELAY")dnl
không xác định("BITNET_RELAY")dnl
định nghĩa("confAUTO_REBUILD")dnl
định nghĩa("confTO_CONNECT", "1m")dnl
định nghĩa("confTRY_NULL_MX_LIST",true)dnl
định nghĩa("confDONT_PROBE_INTERFACES",true)dnl
định nghĩa("PROCMAIL_MAILER_PATH", "/usr/bin/procmail")dnl
định nghĩa("ALIAS_FILE", "/eto/aliases")dnl
dnl xác định("STATUS_FILE", "/etc/mail/statistics")dnl
định nghĩa("UUCP_MAILER_MAX", "2000000")dnl
định nghĩa("conf USERDB_SPEC", "/etc/mail/userdb.db")dnl
định nghĩa("confPRIVACY_FLAGS", "authwarnings,novrfy,noexpn,restrictqrun")dnl
định nghĩa("confAUTH_OPTIONS", "A")dnl
dnl TRUST_AUTH_MECH("DIGEST-MD5 CRAM-MD5 ĐĂNG NHẬP") dnl
dnl định nghĩa("confAUTH_MECHANISMS", "DIGEST-MD5 CRAM-MD5 ĐĂNG NHẬP")dnl
dnl xác định("confTO_QUEUEWARN", "4h")dnl
dnl định nghĩa("confTO_QUEUERETURN", "5d")dnl
dnl định nghĩa("confQUEUE_LA", "12")dnl
dnl định nghĩa("confREFUSE_LA", "18")dnl
ĐẶC ĐIỂM dnl(delay_checks)dnl
TÍNH NĂNG("no_default_msa", "dnl")dnl
TÍNH NĂNG("smrsh",Vusr/sbin/smrsh")dnl
TÍNH NĂNG("mailertable", "hash-o /etc/mail/mailertable.db")dnl
ĐẶC TRƯNG("virtusertable", "hash –o /etc/mail/virtusertable.db")dnl
TÍNH NĂNG(chuyển hướng)dnl
TÍNH NĂNG(always_add_domain)dnl
TÍNH NĂNG(use_cw_file)dnl
TÍNH NĂNG(use_ct_file)dnl
FEATURE(local_procmail, "", "procmail –t –Y –a $h –d $u")dnl
ĐẶC TRƯNG("access_db","hash –o /etc/mail/access.db")dnl
TÍNH NĂNG("danh sách đen_recipients")dnl
EXPOSED_USER("root") dnl
dnl Điều này thay đổi sendmail thành chỉ nghe trên thiết bị loopback 127.0.0.1
dnl chứ không phải trên bất kỳ thiết bị mạng nào khác. Bình luận điều này nếu bạn muốn
dnl để chấp nhận email qua mạng.
DAEMON_OPTIONS("Cổng=smtp,Addr=127.0.0.1, Tên=MTA")
dnl LƯU Ý: việc liên kết cả daemon IPv4 và IPv6 với cùng một cổng yêu cầu
tìm một bản vá kernel
dnl DAEMON_OPTIONS (xport=smtp,Addr=::1, Name=MTA-v6, Family=inet6")
dnl Chúng tôi thực sự khuyên bạn nên bình luận điều này nếu bạn muốn bảo vệ
giúp bạn thoát khỏi thư rác. Tuy nhiên, máy tính xách tay và người dùng trên máy tính
dnl không có DNS 24x7 nên cần cái này.
ĐẶC ĐIỂM("accept_unresolvable_domains")dnl
ĐẶC ĐIỂM dnl("relay_based_on_MX")dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
Cwlocalhost.localdomain

Sử dụng chỉ thị FEATURE, bạn có thể kích hoạt một hoặc một chức năng khác của chương trình gửi thư. Ví dụ: chức năng gửi thư được thiết kế để ghi đè định tuyến cho các miền cụ thể. Bạn có thể dễ dàng mở rộng chức năng chương trình sendmail, thêm các chức năng bạn cần vào file mc.

Giả sử bạn muốn ẩn tên của các máy tính trong một miền. Điều này có thể dễ dàng đạt được bằng cách thêm hàm masquerade_envelope vào tệp mc của bạn. Để thực hiện việc này, hãy sao chép tệp redhat.mc vào tệp Hide_hosts.me và thêm các dòng sau vào cuối tệp Hide_hosts.me:

MASQUERADE_AS(my-domain.ru)dnl
ĐẶC ĐIỂM(masquerade_envelope)dnl

Sau đó chạy lệnh:

m4 /usr/share/sendmail-cf/cf/hide_hosts.me> /etc/sendmail.me

Đó là tất cả! Tên nút sẽ bị ẩn. Một mô tả về các chức năng khác được trình bày trong bảng. 13.1.

Chức năng của chương trình sendmail Bảng 13.1

Chức năng Sự miêu tả
truy cập_db Xác định bảng truy cập. Bảng này liệt kê các máy chủ được phép hoặc bị chặn gửi thư qua máy chủ thư của bạn. Tùy chọn này được sử dụng hiệu quả để chống thư rác. Bảo vệ thư rác được thảo luận chi tiết trong phần cùng tên trong Chương. 23
chấp nhận_unresolvable_domains Cho phép gửi thư đến các miền không thể nhận dạng
bestmx_is-local Thư sẽ chỉ được chấp nhận nếu mục nhập máy chủ MX DNS trỏ đến máy chủ thư này
danh sách đen_recipients "Danh sách đen". Một lựa chọn khác để chống thư rác. Tùy chọn access_db là cần thiết để nó hoạt động.
dnsbl Được sử dụng để đưa vào danh sách đen, dnsbl là viết tắt của Danh sách đen DNS. Trong hơn phiên bản trước tùy chọn này được gọi là (Giải quyết danh sách đen)
bảng tên miền Dùng để phân giải tên miền
có thể nói chung ổn định Dùng để thay đổi địa chỉ gửi trong tin nhắn
local_procmail Chỉ định rằng thư sẽ được gửi bằng cách sử dụng tiện ích địa phương gửi thư
có thể gửi được thư Ghi đè định tuyến cho các miền cụ thể
giả trang_toàn bộ_domain Được sử dụng để che dấu (ẩn) toàn bộ miền. Chức năng này phải được sử dụng cùng với chỉ thị MASQUERADE AS (hoặc MASQUERADE_DOMAIN), ví dụ: MASQUERADE_AS(f117.ru)dnl
giả trang_phong bì Cho phép bạn ẩn tên máy chủ miền. Thay thế trường nhận được của tiêu đề thư trước khi truyền tin nhắn cho người khác
chuyển hướng Được sử dụng để chuyển hướng đến một máy chủ thư khác. Có nghĩa là từ chối nhận thư có tin nhắn vui lòng thử
(thử sử dụng địa chỉ này)
rơle_based_on_MX Chỉ cho phép chuyển hướng thư (chuyển tiếp) đối với các máy chủ được chỉ định trong bản ghi máy chủ MX DNS
tiếp sức_hosts_only Chỉ cho phép chuyển tiếp các nút được chỉ định trong access_db
chuyển tiếp_mail_from Chỉ cho phép chuyển tiếp nếu người gửi được liệt kê trong danh sách RELAY của cơ sở dữ liệu accessdb
chửi rủa Sử dụng shell sendmail giới hạn
sử dụng_cf_file Khi chức năng này được chỉ định, sendmail sẽ tìm trong tệp sendmail.cf để biết danh sách người dùng đáng tin cậy
use_cw_file Khi chức năng này được chỉ định, sendmail sẽ tìm trong tệp sendmail.cw để biết danh sách các máy chủ cục bộ
virtusertable Chuyển đổi địa chỉ của người nhận thành địa chỉ của người dùng cục bộ

Tệp /etc/mail/sendmail.cw liệt kê tất cả các bí danh cho một máy chủ thư nhất định. Giả sử tên máy chủ của bạn là mail.dhsilabs.ru. Nếu người gửi gửi thư đến địa chỉ [email được bảo vệ], bức thư sẽ được gửi đến người dùng mà không gặp vấn đề gì. Và nếu ai đó gửi thư đến địa chỉ [email được bảo vệ], thì việc gửi nó sẽ gây ra một số khó khăn nhất định, vì không rõ tin nhắn được gửi đến nút nào của miền dhsilabs? Để giải quyết vấn đề này, bạn cần đặt một dòng trong tệp sendmail.cw.

Nó xuất hiện vào năm 1983 nhưng vẫn được sử dụng tích cực cho đến ngày nay. Một trong những tính năng chính là nó được hỗ trợ bởi nhiều nền tảng tồn tại ngày nay và cũng miễn phí. Ứng dụng đi kèm với phần mềm nguồn mở. Điều này có nghĩa là bất kỳ ai cũng có thể thêm chức năng của riêng mình vào nó hoặc thay đổi nó theo ý muốn. Trong hệ điều hành Ubuntu, Sendmail được cấu hình bằng dòng lệnh Linux đã root nhờ khả năng hỗ trợ tốt và khả năng phong phú.

Bộ xử lý tin nhắn - Sendmail - đã trở nên phổ biến trong lĩnh vực kinh doanh.

Ngày nay, "bộ xử lý tin nhắn" Sendmail Sentrion, được tạo ra có tính đến nhu cầu của các công ty lớn, khá phổ biến. Tính năng đặc biệt của nó là hiệu suất cao và tích hợp tốt với mọi quy trình kinh doanh. Sentrion cung cấp, cùng với các công nghệ mới, việc sử dụng các ứng dụng cũ đã bén rễ tốt. Ứng dụng này cũng đủ thân thiện để phù hợp với người dùng gia đình.

Cài đặt chương trình

Bạn cần cài đặt Sandmail trên nền tảng Máy chủ cục bộ hoặc máy chủ web. Trong trường hợp thứ hai đại lý bưu điện sẽ có nhiều chức năng hơn. Để có được tất cả các thành phần của máy chủ web, bạn sẽ cần ngăn xếp thành phần LAMP. Nó có thể được tìm thấy trong kho lưu trữ.

QUAN TRỌNG. Trước khi cài đặt phần mềm mới, hãy nhớ cập nhật danh sách gói trong kho lưu trữ cục bộ của bạn bằng lệnh

"$ sudo apt-get cập nhật"

Quá trình cài đặt Sandmail bắt đầu bằng lệnh “sudo apt install sendmail”, lệnh này sẽ tải xuống các gói tác nhân thư.

"mcedit/etc/hosts"
"sudo sendmailconfig"

Sau này, bạn cần khởi động lại các dịch vụ của chính chương trình cũng như web máy chủ Apache:

"sudo /etc/init.d/sendmail khởi động lại"
"sudo /etc/init.d/apache2 khởi động lại"

Nếu cần, bạn có thể cài đặt các tiện ích để làm việc với thư:

"sudo cài đặt mailutils"

Tôi không phải là quản trị viên, vì vậy vui lòng xử lý ghi chú này một cách thận trọng.
Tình huống sau đây đang được xem xét: bạn cần buộc máy chủ sendmail gửi thư nhưng không chấp nhận bất kỳ phản hồi nào. Nghiêm túc đối với các thông báo từ các trang web. Tôi có một VDS được cài đặt sẵn Exim4, theo như tôi hiểu, được “tham chiếu” bởi sendmail. Những thứ kia. Exim4 thực sự hoạt động.

Đầu tiên chúng ta cấu hình máy chủ ( tên máy chủ của tôiđây là tên máy chủ của chúng tôi mà từ đó mọi thứ sẽ di chuyển) sudo mcedit /etc/hosts Tệp phải chứa các dòng như 127.0.0.1 localhost 111.111.111.111 tên máy chủ.my-hoster.net my-host-name Tiếp theo, thay đổi tên máy chủ trong tệp Sudo mcedit / etc/hostname Tệp sẽ trông như thế này (hoàn toàn, tức là chỉ tên máy chủ và thế thôi) my-host-name Bây giờ, chúng tôi làm quá tải dịch vụ, nói một cách đại khái, cập nhật tên máy chủ trên toàn cầu Sudo /etc /init.d/hostname.sh stop sudo /etc/init.d/hostname.sh start # nếu không có tập lệnh nào như vậy thì hãy thử cách khác: khởi động lại tên máy chủ dịch vụ sudo R.E.M. Ngoài ra còn có một tùy chọn như vậy, đối với Debian 9 (kéo dài) tên máy chủ set-hostname my-host-name Bây giờ chúng tôi thực thi các lệnh tên máy chủ tên máy chủ -f Nếu mọi thứ được thực hiện chính xác thì cả hai đều sẽ trả về giá trị tên máy chủ của tôi (tức là tên máy chủ của bạn)

Bây giờ bạn cần cấu hình chính sendmail. Trong trường hợp của tôi, tôi cần cấu hình lại Exim4. Việc này được thực hiện giống như thế này: sudo dpkg-reconfigure exim4-config Sau này, trong trình hướng dẫn, bạn chỉ cần chọn các giá trị ​​( dành riêng cho Exim4)

  • trang web..
  • nhập tên máy chủ của bạn (my-host-name)
  • chỉ đặt ip cho smtp thành 127.0.0.1 vì chúng tôi không cần kết nối bên ngoài qua smtp
  • các bài tập hợp lệ khác được để mặc định
  • tên miền cho phép chuyển tiếp - để trống
  • máy cho rơle - để trống
  • số lượng yêu cầu DNS tùy ý bạn, tôi không giới hạn
  • Tôi vẫn giữ nguyên phương thức giao hàng như cũ, tức là. /var/thư
  • không chia tách các tệp cấu hình - theo ý của bạn, các đối số được mô tả ở đó, tôi không chia nhỏ
Bây giờ, để kiểm tra xem thư có được gửi đến hay không, hãy làm điều này: sendmail -i [email được bảo vệ] Tiếp theo, nhập nội dung tin nhắn kiểm tra. Và khi đã sẵn sàng, hãy nhấn Ctrl+d
Chúng ta hãy đi kiểm tra thư của chúng tôi. Nếu thư đến, mọi thứ đều ổn và vui lên. Nếu không, hãy đi Google xa hơn :)

Tiếp theo, chúng ta cần đảm bảo rằng smtp không có sẵn trên máy chủ của chúng ta, để làm được điều này, chúng ta cần truy cập máy địa phương gõ vào cổng máy chủ 25 và bị đánh đòn. Điều này được thực hiện, ví dụ, như thế này: telnet my-host-name 25 Đang thử 111.111.111.111... telnet: Không thể kết nối với máy chủ từ xa: Kết nối bị từ chối Nếu mọi thứ đều như thế này thì mọi thứ đều tuyệt vời. Cảng đã đóng cửa.

Một mẹo nhỏ khác. Vì lý do nào đó, dịch vụ chạy ứng dụng web cần phải được khởi động lại thường xuyên. Trong trường hợp của tôi, đây là node.js và tôi làm điều này khoảng N lần một lần. Vì vậy, nếu bạn khởi động lại quá trình bằng cron, thì sendmail sẽ ngừng hoạt động, vì ứng dụng không biết nó ở đâu, đơn giản là không có đường dẫn đến nó trong đường dẫn và do đó đơn giản là nó không được định vị. Bạn có thể chuyển bất kỳ cài đặt biến môi trường nào khác theo cách tương tự. Xem cách thực hiện việc này bên dưới.

Trước tiên hãy xem sendmail ở đâu sendmail /usr/local/bin/sendmail Ok, chúng ta thấy đường dẫn. Nếu đột nhiên chúng ta không nhìn thấy nó thì chúng ta hãy đi xem xét điều tương tự nhưng dưới sudo. Bây giờ hãy vào crontab và thêm các biến môi trường vào đó. crontab -e Mở tác vụ chỉnh sửa cho người dùng hiện tại. Nghĩa là, tất cả các nhiệm vụ sẽ được hoàn thành với quyền của người dùng hiện tại và dịch vụ sẽ bắt đầu với quyền của người dùng này, tất nhiên nếu nó được khởi chạy theo kế hoạch của bạn :)

# đây là một biến cho biết nơi tìm sendmail, # các đường dẫn cần thiết khác có thể được viết cách nhau bằng dấu hai chấm # các tiện ích chúng ta cần sẽ được tìm kiếm ở đó PATH=/usr/local/bin # đây là một ví dụ về biến môi trường rằng bản thân ứng dụng sẽ sử dụng NODE_ENV=production # đây thực sự là nhiệm vụ đó, hãy google định dạng crontab để hiểu # trong đó là gì trong trường hợp này tập lệnh sẽ chạy 30 phút mỗi giờ chẵn */30 */2 * * * /home/user/blog/scripts/restart.sh Chà, đại loại như thế này. tôi cầu xin đừng coi ghi chú này là hướng dẫn đầy đủ hành động, rất có thể đối với trường hợp của bạn, mọi thứ sẽ khác biệt đáng kể. Nhưng có thể điều này bằng cách nào đó sẽ giúp ích hoặc ít nhất là khiến bạn suy nghĩ đúng hướng :) Chúc may mắn!

Hướng dẫn cài đặt và cấu hình một trong những bản cũ nhất MTA (Đại lý chuyển thư), chương trình gửi E-mail - gửi thư, có sẵn để cài đặt trên bất kỳ hệ điều hành. Trong nhiều hệ điều hành, sendmail được cài đặt theo mặc định và không cần thiết phải thay đổi MTA tiêu chuẩn này sang MTA tiêu chuẩn khác. Đồng thời, cùng một PHP được cấu hình theo mặc định để hoạt động với MTA này. Nếu việc thiết lập sendmail mất nhiều thời gian, hãy cài đặt postfix (), bạn không nên lãng phí nhiều thời gian.

Sự chuẩn bị

Kiểm tra xem bạn đã cài đặt sendmail chứ không phải Exim4 hoặc MTA khác:

Ls -la ` which sendmail` # lrwxrwxrwx 1 root root 26 2011-01-17 19:58 /usr/sbin/sendmail -> /etc/alternatives/sendmail

Cài đặt

sudo apt-get cài đặt sendmail sasl2-bin

Định cấu hình /etc/hosts

127.0.0.1 localhost localhost.localdomain e5530
Ghi chú

Bạn phải chỉ định máy chủ chính của mình (tên máy tính, của tôi là e5530) và localhost.localdomain nếu không bạn sẽ gặp lỗi: Tên máy chủ không đủ tiêu chuẩn của tôi (myhostname) không xác định; ngủ để thử lại" và "không thể đủ điều kiện tên miền(e5530) – sử dụng tên viết tắt, gửi thư Phải mất một thời gian dài để bắt đầu và gửi thư chậm. Có thể chủ nhà localhost.localdomain Có thể bỏ qua, không chắc chắn.

Sau đó, bạn cần chỉ định tên của các máy chủ cục bộ mà từ đó gửi thư sẽ chấp nhận yêu cầu gửi tin nhắn email, trong tệp /etc/mail/local-host-names:

AuthInfo:smtp.gmail.com "U: [email được bảo vệ]" "TÔI: [email được bảo vệ]" "P:YourPass" "M:PLAIN" AuthInfo:smtp.gmail.com:465 "U: [email được bảo vệ]" "TÔI: [email được bảo vệ]" "P:YourPass" "M:PLAIN"

Ghi chú

Thay vì cổng 465, bạn có thể thử trên 587 (nếu bạn gặp vấn đề với việc ủy ​​quyền):

AuthInfo:smtp.gmail.com:587 "U: [email được bảo vệ]" "TÔI: [email được bảo vệ]" "P:YourPass" "M:PLAIN"

Chmod 600 /etc/mail/auth/*

Cấu hình sendmail.mc

Tệp cấu hình /etc/mail/sendmail.mc. So sánh cấu hình của bạn. Nó phải như thế này... Thứ tự của hướng dẫn rất quan trọng!

Dnl # include(`/etc/mail/m4/dialup.m4")dnl include(`/etc/mail/m4/provider.m4")dnl include(`/etc/mail/tls/starttls.m4")dnl include(`/etc/mail/sasl/sasl.m4")dnl FEATURE(`authinfo",`hash /etc/mail/auth/client-info")dnl defin(`SMART_HOST",`smtp.gmail.com" )dnl xác định(`RELAY_MAILER_ARGS", `TCP $h 587")dnl xác định(`ESMTP_MAILER_ARGS", `TCP $h 587")dnl dnl # dnl # Thiết lập trình gửi thư mặc định MAILER_DEFINITIONS MAILER(`local")dnl MAILER(`smtp" )dnl xác định(`confAUTH_MECHANISMS", `GSSAPI BÊN NGOÀI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN")dnl # dnl xác định(`confDOMAIN_NAME", `e5530")dnl

Áp dụng cấu hình sendmail

cd /etc/mail sudo su # chỉ là sudo không hoạt động! m4 sendmail.mc > sendmail.cf makemap -r băm authinfo.db< auth/client-info make /etc/init.d/sendmail restart # Перезагрузка конфига

Vấn đề và giải pháp

Nếu mọi thứ được định cấu hình chính xác nhưng thư lại nằm trong “hàng đợi bị trì hoãn” và không được chuyển tiếp sang một SMTP khác:

  1. Kiểm tra IP của bạn trong danh sách đen. Bạn có thể kiểm tra lệnh cấm IP tại đây smart-ip.net, IP của tôi đã được đưa vào cơ sở dữ liệu spamhaus.
  2. Kiểm tra xem nhà cung cấp của bạn có chặn các gói gửi đi trên cổng 25 hay không.
Sự cố với Intertelecom!

Tôi chưa bao giờ có thể thiết lập chuyển tiếp thư tới GMail qua sendmail trên kết nối Intertelecom - sendmail kiên quyết gõ vào cổng 25, cổng này đã bị nhà cung cấp đóng. Tôi đã phải cấu hình postfix.

Thiết lập PHP (nếu cần)

Chỉ định các tham số khởi chạy sendmail trong cấu hình /etc/php5/apache2/php.ini (/etc/php5/cli/php.ini):

## Định cấu hình sendmail cho PHP: sendmail_path = /usr/sbin/sendmail -t ;sendmail_path = "/usr/sbin/sendmail -t -f [email được bảo vệ]-Tôi"

Hãy kiểm tra cài đặt

echo "Văn bản tin nhắn" | thư -s "Subjet" [email được bảo vệ] gửi thư -t [email được bảo vệ]-f [email được bảo vệ]-v -i< ~/mail-body.txt

Để kiểm tra hậu tố, hãy thử gửi một số tin nhắn từ bảng điều khiển. Tôi đã mô tả cách thực hiện việc này trong bài viết này: "".

Quản lý gửi thư

Xem toàn bộ hàng đợi tin nhắn:

thư Sudo

Xem hàng đợi tin nhắn tại một địa chỉ cụ thể:

Sudo thư | grep " [email được bảo vệ]" | wc -l

Xóa toàn bộ hàng đợi tin nhắn sendmail:

Sudo rm -r /var/spool/mqueue-client/*

Xóa hàng đợi tin nhắn sendmail theo đích:

Cd /var/spool/mqueue ls | xargs -ti sh -c "grep" [email được bảo vệ]" "()" > /dev/null && rm -f "()""

#sendmail, #LAMP, #MTA

tái bút Nếu bạn muốn khám phá Bảng điều khiển Linuxđủ rồi trình độ tốt- Tôi khuyên bạn nên đọc cuốn sách mới nhất của Denis Kolisnichenko “ Đội Chuỗi Linux và tự động hóa các công việc thường ngày».