DỊCH VỤ MẠNG MAIL-ANTISPAM
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA: CÔNG NGHỆ THÔNG TIN BÁO CÁO CHUYÊN ĐỀ S1 Đề tài: DỊCH VỤ MẠNG:MAIL-ANTISPAM GVHD: NGUYỄN THỊ THANH VÂN SVTH: HUỲNH VĂN BẢO - 09910001 TRẦN QUANG VŨ - 09910097 TP Hồ Chí Minh Ngày 20-11-2012 Trang | MỤC LỤC PHẦN 1: MỤC TIÊU VÀ ĐỐI TƯỢNG PHẦN 2: GIỚI THIỆU 2.1 Giới Thiệu Mơ Hình Mạng Tổng Qt 2.1.1 Ví dụ mơ hình mạng tổng quát 2.1.2 Các bước chuẩn bị cài đặt 2.2 Cấu hình DNS 2.2.1 Triển khai DNS cho server2 2.2.2 Cài đặt DNS với gói bind server2 2.2.3 Cấu hình Primary Name Server: 2.2.4 Cài đặt client 12 2.2.5 Kiểm tra hoạt động Server DNS: 13 2.3 Giới thiệu cấu trúc hệ thống e-mail 14 2.4 Mơ hình mail server với postfix 15 2.4.1 Các giả i pháp cho mail server 15 2.4.2 Giới Thiệu Các Thành Phần 16 2.4.2.1 Giới Thiệu Postfix .16 2.4.2.2 Giới Thiệu Dovecot 17 2.4.2.3 Giới Thiệu SquirrelMail .17 2.4.2.4 Giới Thiệu Thunderbird .17 2.4.3 Yêu cầu hệ thống .17 2.5 Vấn đề bảo mật cho hệ thống e-mail 17 2.5.1 AntiSpam: 18 2.5.1.1 Giới th iệu DNS-Base Blocklists .18 2.5.1.2 Giới th iệu SpamAsssassin .18 2.5.2 AntiVirus 18 2.5.2.1 Giới th iệu ClamA V .18 PHẦN 3: TRIỂN KHAI & CÀI ĐẶT ĐƠN GIẢN 19 3.1 Cài đặt Postfix Dovecot 19 3.1.1 Cài đặt cấu hình Postfix 19 3.1.2 Cài đặt cấu hình Dovecot 24 3.1.3 Cài đặt cấu hình Thunderbird linu x .25 3.1.4 Cài Đặt Cấu Hình OutLook Exp ress XP 26 3.2 Cài Đặt Webmail với SquirrelMail 27 PHẦN : TRIỂN KHAI & CÀI ĐẶT CÓ B ẢO MẬT 29 4.1 CÀI ĐẶT VÀ CẤU HÌNH W EBMAIL SSL .29 4.2 CẤU HÌN H DOVECOT VÀ POSTFIX VỚI SSL 34 4.3 CẤU HÌN H SMTP AUTHENTICATION SỬ DỤN G DEVEC OT SASL 36 4.4 Cài Đặt Bộ Lọc Spam 40 4.4.1 Lọc Spam Dùng SpamAssassin 40 4.5 Cài Đặt AntiVirus 42 Trang | 4.5.1 4.5.2 Cài Đặt ClamA V 42 Cài Đặt Procmail (dùng để lọc mail server) 48 PHẦN 4: KẾT LUẬN 51 Danh mục ảnh Hình 1.1 – Kiến Trúc Mail Server 14 Hình 1.2 – Kiến trúc Mail Server với Postfix 15 Trang | PHẦN 1: MỤC TIÊU VÀ ĐỐI TƯỢNG Mục tiêu báo cáo hướng dẫn người đọc hiểu kiến trúc nguyên lý làm việc Mail Server, đồng thời biết cách triển khai hệ thống Mail hồn chỉnh mơi trường Linux – Với đầy đủ thành phần SMTP/POP3/IMAP Server, AntiVirus, AntiSpam, Mail Store Cụ thể cài đặt Mail Server với Postfix hệ điều hành CentOS 5.8 PHẦN 2: GIỚI THIỆU Với tốc độ tin học hóa diễn nhanh nay, E-mail ngày trở thành phương tiện liên lạc thiếu người, doanh nghiệp Chính nhu cầu việc xây dựng mail server cần thiết Nhưng việc chọn xây dựng mail server cho phù hợp, hiệu tốn chi phí nhất, đồng thời đảm bảo tính sẵn sàng (Availability – Hoạt động ổn định, dễ dàng nâng cấp bảo trì … ) tính riêng tư (Private – Bảo mật, bí mật … ) cho doanh nghiệp 2.1 Giới Thiệu Mơ Hình Mạng Tổng Qt 2.1.1 Ví dụ mơ hình mạng tổng qt Trong đó: Ta có lớp mạng LAN: 10.0.0.0/8; Máy server1 có eth0 IP=10.0.0.1 (IP mặt trong) eth1 IP=192.168.1.10 (IP mặt ngồi) đóng vai trị Fiewall Proxy có nhiệm vụ chia sẻ kết nối máy LAN Internet thông qua đường line ADSL triển khai chế Firewall để giới hạn kết nối từ bên bên ngồi Trên Trang | Fiewall cịn đóng vai trị Public server2 để lient bên ngồi truy cập WEB-Mail bên LAN Máy server2 có IP=10.0.0.2 đóng vai trị DNS có nhiệm vụ phân giải tên miền bên mạng LAN môi trường Internet đồng thời cấp phát IP động cho client LAN thông qua dịch vụ DHCP Máy server3 có IP=10.0.0.3 triển khai dịch vụ Apache làm Web server triển khai dịch vụ Postfix làm Mail server Trong phạm vi báo cáo dùng server2 server3 không dùng đến server1 không triển khai dịch vụ DHCP server2 mà cấu hình IP tĩnh cho máy lớp mạng 10.0.0.0/8 2.1.2 Các bước chuẩn bị cài đặt 1.1.1 Cấu hình hostname Lần lượt đặt tên máy cho máy server2, server3: Trên server2: Dùng lệnh: Đăt tên máy: Restart lại hệ thống: [root@thuchanh ~]# init Kiểm tra tên: root@thuchanh ~]# hostname server2.thuchanh.com 1.1.2 Đặt IP cho LAN card Dùng lệnh: root@thuchanh ~]# vi /etc/sysconfig/network-scrips/ifcfgeth0 Hoặc: [root@thuchanh ~]# setup Khởi động lại dịch vụ: [root@thuchanh ~]# service network restart 1.1.3 Kiểm tra IP: [root@thuchanh ~]# ifconfig Trên server3: Dùng lệnh: Đăt tên máy: Trang | Restart lại hệ thống: [root@thuchanh ~]# init Kiểm tra tên: root@thuchanh ~]# hostname server3.thuchanh.com 1.1.4 Đặt IP cho LAN card Dùng lệnh: root@thuchanh ~]# vi /etc/sysconfig/network-scrips/ifcfgeth0 Hoặc: [root@thuchanh ~]# setup Khởi động lại dịch vụ: [root@thuchanh ~]# service network restart 1.1.5 Kiểm tra IP: [root@thuchanh ~]# ifconfig Kiểm tra máy: root@thuchanh ~]# ping 10.0.0.3 2.2 Cấu hình DNS 2.2.1 Triển khai DNS cho server2 Các file cần thiết để cấu hình File cấu hình chính: named.conf File phân giải thuận: thuchanh.db File phân giải nghịch: 0.0.10.in-addr.arpa.db File phan giải thuận local: localhost.db File phân giải nghịch: 0.0.127.in-addr.arpa.db File named.root Nội dung chi tiết bên 2.2.2 Cài đặt DNS với gói bind server2 - Kiểm tra cài chưa: Trang | [root@thuchanh ~]# rpm –qa | grep bind - Cài đặt (nếu chưa cài đặt): Kiểm tra lại sau cài:[root@thuchanh CentOS]# rpm –qa | grep bind 2.2.3 Cấu hình Primary Name Server: Tạo tạo file cấu hình named.conf thư mục /var/named/chroot/etc/ nhu sau: [root@thuchanh CentOS]# vi /var/named/chroot/etc/named.conf acl mynet { 10.0.0.0/8; 127.0.0.1; }; options { allow-transfer {none;}; directory "/var/named"; query-source port 53; query-source-v6 port 53; dump-file "var/named/data/cache_dump.db"; statistics-file "var/named/data/named_mem_stats.txt"; notify yes; }; Trang | zone "." IN { type hint; file "named.root"; }; zone "localhost" IN { type master; file "localhost.db"; }; zone "0.0.127.in-addr.arpa" IN { type master; file "0.0.127.in-addr.arpa.db"; }; zone "thuchanh.com" IN { type master; file "thuchanh.db"; }; zone "0.0.10.in-addr.arpa" { type master; file "0.0.10.in-addr.arpa.db"; }; Tạo file phân giải thuận chính: thuchanh.db thư mục: /var/named/chroot/var/named/ nhu sau: [root@thuchanh CentOS]# vi /var/named/chroot/var/named/thuchanh.db $TTL 86400 ; @ IN SOA server2.thuchanh.com root ( 42 ; serial (d adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum IN NS server2.thuchanh.com IN MX 10 server3 1D IN A 10.0.0.3 server3 1D IN A 10.0.0.3 server2 1D IN A 10.0.0.2 server1 1D IN A 10.0.0.1 www 1D IN CNAME server3 mail 1D IN CNAME server3 ftp 1D IN CNAME server3 Trang | Tạo file phân giải thuận local: localhost.db thư mục: /var/named/chroot/var/named/ nhu sau: [root@thuchanh CentOS]# vi /var/named/chroot/var/named/localhost.db $TTL 86400 ; @ IN SOA server2.thuchanh.com root ( 42 ; serial (d adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum IN NS @ IN A 127.0.0.1 Tạo file phân giải nghịch local: 0.0.127.in-addr.arpa.db thư mục: /var/named/chroot/var/named/ nhu sau: [root@thuchanh CentOS]#vi /var/named/chroot/var/named/0.0.127.in-addr.arpa.db $TTL 86400 ; @ IN SOA localhost root.localhost ( 42 ; serial 3H ; refresh 15M ; retry 1W ; expire 1D ; minium ); IN IN NS PTR localhost localhost Tạo file phân giải nghịch : 0.0.10.in-addr.arpa.db thư mục: /var/named/chroot/var/named/ nhu sau: [root@thuchanh CentOS]# vi /var/named/chroot/var/named/0.0.10.in-addr.arpa.db $TTL 86400 @ IN SOA server2.thuchanh.com root ( ; serial Trang | 3H ; refresh 15M ; retry 1W ; expire 1D ; minimum ); @ IN IN IN IN NS PTR PTR PTR server2.thuchanh.com server1.thuchanh.com server2.thuchanh.com server3.thuchanh.com Tạo file named.root thư mục: /var/named/chroot/var/named/ nhu sau: Nếu có kết nối mạng: [root@thuchanh CentOS]# cd /var/named/chroot/var/named [root@thuchanh CentOS]# wget http://www.internic.net/zones/named.root Nếu khơng có mạng: [root@thuchanh CentOS]# vi /var/named/chroot/var/named/named.root ; This file holds the information on root name servers needed to ; initialize cache of Internet domain name servers ; (e.g reference this file in the "cache " ; configuration file of BIND domain name servers) ; ; This file is made available by InterNIC ; under anonymous FTP as ; file /domain/named.cache ; on server FTP.INTERNIC.NET ; -ORRS.INTERNIC.NET ; ; last update: Jun 8, 2011 ; related version of root zone: 2011060800 ; ; formerly NS.INTERNIC.NET ; 3600000 IN NS A.ROOT-SERVERS.NET A.ROOT-SERVERS.NET 3600000 A 198.41.0.4 A.ROOT-SERVERS.NET 3600000 AAAA 2001:503:BA3E::2:30 Trang | 10 11 -o smtpd_enforce_tls=yes 12 -o smtpd_sasl_auth_enable=yes 13 -o smtpd_client_restrictions=permit_sasl_authenticated,reject Cấu hình dovecot [root@server3 ]# vi /etc/dovecot.conf Chỉnh dịng sau sau: 758 auth default { 762 mechanisms = plain login 796 passdb pam { } 897 userdb passwd { } 960 user = root 979 socket listen { 990 client { 994 path = /var/spool/postfix/private/auth 995 mode = 0660 996 user = postfix 997 group = postfix } } } Bước 2: Khởi động lại dịch dịch vụ [root@server3 nv1]# service dovecot restart [root@server3 nv1]# service postfix restart Bước 3: kiềm tra lại [root@server3 ~]# ls -lh /var/spool/postfix/private/auth Trang | 37 srw-rw postfix postfix Nov 26 17:04 /var/spool/postfix/private/auth [root@server3 ~]# Bước 4: Tiến hành encode user: nv1, pass 123456 [root@server3 plugins]# perl -MMIME::Base64 -e 'print encode_base64("\000nv1\000123456");' AG52MgAxMjM0NTY= Chép AG52MgAxMjM0NTY= dùng để chứng thực Bước 5: Kiểm tra [root@server3 awstats]# telnet mail.thuchanh.com 25 Trying 10.0.0.3 Connected to mail.thuchanh.com (10.0.0.3) Escape character is '^]' 220 mail.thuchanh.com ESMTP Postfix EHLO thuchanh.com 250-mail.thuchanh.com 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-STARTTLS 250-AUTH PLAIN LOGIN 250-AUTH=PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN AUTH PLAIN AG52MgAxMjM0NTY= 235 2.0.0 Authentication successful mail from:nv2@thuchanh.com 250 2.1.0 Ok rcpt to:nv1@thuchanh.com 250 2.1.5 Ok data 354 End data with . chao nv1 250 2.0.0 Ok: queued as 183AC27F2E quit Trang | 38 221 2.0.0 Bye Connection closed by foreign host Kiểm tra chi tiết file maillog [root@server3 awstats]# tail /var/log/maillog Nov 26 17:33:32 server3 postfix/smtpd[16811]: 183AC27F2E: client=server3.thuchanh.com[10.0.0.3], sasl_method=PLAIN, sasl_username=nv2 Bước 6:Khởi động lại Postfix kiểm tra cổng [root@server3 nv1]# openssl s_client -connect thuchanh.com:587 -starttls smtp SSL handshake has read 1758 bytes and written 354 bytes New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA Server public key is 2048 bit Secure Renegotiation IS supported Compression: NONE Expansion: NONE SSL-Session: Protocol : TLSv1 Cipher : DHE-RSA-AES256-SHA Session-ID: 7FA0C5124BA796B9F03B3FECF20AFDC95D826DDCCF4FD5DDF61D5FCAF379 E4C5 Session-ID-ctx: Master-Key: 973BF6A5238BDF1181E19870151CB9CA09DAABEFACF34A4A0E54CD75850E33 7A5566D5701406E9A32E63783105AF38EC Key-Arg : None Krb5 Principal: None Start Time: 1353930966 Timeout : 300 (sec) Verify return code: 18 (self signed certificate) 250 DSN Trang | 39 AUTH PLAIN AG52MgAxMjM0NTY= 235 2.0.0 Authentication successful quit 221 2.0.0 Bye read:errno=0 4.4 Cài Đặt Bộ Lọc Spam 4.4.1 Lọc Spam Dùng SpamAssassin Kiểm tra spamassassin cài đặt chưa: Cài đặt spamassassin lệnh: Cấu hình spamassassin: Dùng lệnh vi để sửa file cấu hình /etc/postfix/master.cf Sửa dịng 11: –o content_filter=spamassassin (cái thơng số nói với postfix mail mà mail gởi đến postfix chuyển đến cho spamassassin để thực việc quét nội dung, header mail) Thêm vào dòng 80: (dòng thực việc tạo service có kiểu unix file master.cf thực gọi deamon dạng piple postfix để phân phát mail thông qua lệnh spamc để tiến hành quét mail phát spam sau dùng lệnh sendmail để gửi ngược mail cho postfix Lưu lại file cấu hình Kiểm tra port 783: Trang | 40 Khởi động lại postfix: Khởi động dịch vụ spamassassin: Khởi động spamassassin khởi động hệ thông linux Tiến hành gởi mail có nội dung spam Dùng lệnh tree để kiểm tra hộp mail Dùng lệnh vi để xem nội dung mail Trang | 41 Khi spamassassin phát mail spam chèn vào phần subject email chuỗi nhận diện spam: “ [SPAM]” Ta dùng lệnh vi để xem: 4.5 Cài Đặt AntiVirus 4.5.1 Cài Đặt ClamAV Dùng lệnh rpm để cài đặt gói clamav-db, clamav, clamd Trang | 42 Dùng lệnh tar để giải nén file clamsmtp Duy chuyển vào thư mục clamsmtp-1.10 Trang | 43 Cài gói clamsmtp Dùng lệnh make để bắt đầu chương trình Sau biên dịch xong ta gõ lệnh make install để tiến hành cài đặt Trang | 44 Dùng lệnh freshclam để tiến hành đặt lịch qt virus Ta cấu hình đặt lịch qt virus tự động Dùng lệnh clamscan để tiến hành quét quét virus Trang | 45 Tích hợp antivirus với hệ thống mail postfix: Dùng lệnh vi /etc/posfix/main.cf để chỉnh sửa file cấu hình main.cf Ta thêm hai dịng sau vào file main.cf Dịng 669 có ý nghĩa thực việc chuyển mail postfix đến port 10025 để thực việc qt virus Dịng 700 dịng có ý nghĩa ngăn cản postfix mở rộng đến alias mail group để tránh trường hợp buket cache mail nhận Dùng lệnh vi /etc/postfix/master.cf để chỉnh sửa file cấu hình master.cf Dịng có ý nghiã tạo dịch vụ scan để quét thông tin từ smtp gửi đến Dịng có ý nghĩa gửi trả mail lại postfix, option lại ngăn cản việc loop sảy Trang | 46 Copy file clamsmtpd.conf vào thư mục etc cp /Sofware/clamsmtp-1.10/doc/clamsmtpd.conf /etc/ Dùng lệnh vi để cấu hình file clamsmtpd.conf vi /etc/clamsmtpd.conf Khi có mail có virus Action: bounce gửi trả lại cho người gửi, „pass‟ chấp nhận mail, „drop‟ hủy mail Sau cấu hình xong lưu lại Chạy lệnh clamsmtpd để cập nhật lại Tiến hành gởi mail để kiểm tra Trang | 47 4.5.2 Cài Đặt Procmail (dùng để lọc mail server) Người quản trị thơng qua procmail kết hợp với tiện ích Spamassassin Khi mail đến phát spam xóa hẳn mail move vào folder đặc biệt, giải pháp xóa hẳn mail mang tính rủi ro cao mail bị phát spam khơng phải mail spam, thể người ta thường chọn giải pháp move vào folder đặc biệt đọc sau Ta tiến hành tạo hệ thống thư mục cho hệ thống mail phát spam Dùng lệnh tree –a để kiểm tra: Đối với user tạo ta tao thu mục templex Trang | 48 Dùng lệnh ls để kiểm tra: Dùng lệnh tree để xem: Ta tiến hành tạo User nv4 để kiểm tra: Trang | 49 Ta thấy nv4 tạo có thư mục spam để chứa mail spam Dùng lệnh vi /etc/postfix/main.cf để chỉnh sửa file cấu hình postfix Sửa dịng 439: Mailbox_command nói với postfix sử dụng procmail để chuyển thư với thông số để xác định thư mục maildir chứa thư hộp thư cá nhân Dùng lệnh vi để tạo file procmailrc thu mục etc file tự tạo khơng có sẵn Đây đoạn script procmailrc tiến hành quét header email để nhận biết mail spam sau move vào thư mục spam Xóa ln mail spam Trang | 50 Khởi động lại postfix Khởi động spamassassin Gởi mail, mail spam, mail không spam để kiểm tra Mail spam nằm thư mục spam, cịn mail khơng spam nằm thư mục thư mục spam PHẦN 4: KẾT LUẬN Bài báo cáo hoàn thành việc cài đặt dịch vụ mail server hệ thống LINUX cịn nhiều thiếu sót chưa gửi mail domain, chưa khai thác triệt để option file cấu hình dịch vụ Do thời gian khơng nhiều nên việc tìm hiểu cịn hạn chế Chúng em cố gắng khắc phục báo cáo Trang | 51 ... trị DNS có nhiệm vụ phân giải tên miền bên mạng LAN môi trường Internet đồng thời cấp phát IP động cho client LAN thông qua dịch vụ DHCP Máy server3 có IP=10.0.0.3 triển khai dịch vụ Apache làm... triển khai dịch vụ Postfix làm Mail server Trong phạm vi báo cáo dùng server2 server3 không dùng đến server1 không triển khai dịch vụ DHCP server2 mà cấu hình IP tĩnh cho máy lớp mạng 10.0.0.0/8... Transfer Agent, or SMTP Daemond): Là dịch vụ máy tính có nhiệm vụ chuyển Email từ máy tính đến nơi khác (Mail Delivery Agent) Các chương trình cung cấp dịch vụ MTA tiêu biểu là: Qmail, Sendmail,