Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 54 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
54
Dung lượng
2,37 MB
Nội dung
Mục lục Bài 1: Giới thiệu, cài đặt Redhat, tổng quan lệnh thông thường Bài 2: Cài đặt Cấu hình DHCP Server 17 Bài 3: Cài đặt Cấu hình DNS Server 20 Bài 4: Cài đặt Cấu hình Samba Server .24 Bài 5: Cài đặt Cấu hình Squid Server 33 Bài 6: Cài đặt Cấu hình Apache Server 37 Bài 7: Cài đặt Cấu hình Sendmail .53 Bài 8: Cài đặt Cấu hình RAS 57 Chương I:- Giới thiệu – cài đặt Giới thiệu LINUX Linux miễn phí (free) Đối với hơm khơng quan trọng WindowsNT server “free” Nhưng tương lai, muốn hòa nhập vào giới, muốn có thu nhập đáng cho người lập trình, tượng chép trộm phần mềm cần phải chấm dứt Khi đó, free thông số quan trọng để chọn Linux Linux ổn định Trái với suy nghĩ “truyền thống” “của rẻ ôi “, Linux từ phiên cách 5-6 năm ổn định Ngay server Linux mạng lớn (hàng trăm máy trạm) hoạt động ổn định Linux đầy đủ Tất bạn thấy IBM, SCO, Sun … có Linux C compiler, perl interpeter, shell , TCP/IP, proxy, firewall, tài liệu hướng dẫn đầy đủ có chất lượng Hệ thống chương trình tiện ích đầy đủ Linux HDH hoàn toàn 32-bit Như Unix khác, từ đầu, Linux HDH 32 bits Linux mềm dẻo cấu hình Linux cho người sử dụng cấu hình linh động, ví dụ độ phân dải hình Xwindow tùy ý, dễ dàng sửa đổi kernel … Linux chạy nhiều máy khác từ PC 386, 486 tự lắp SUN Sparc Linux trợ giúp Ngày nay, với server Linux sử dụng liệu quan trọng, người sử dụng hồn tồn tìm trợ giúp cho Linux từ Trang công ty lớn IBM thức chào bán IBM server chạy Linux Tài liệu giới thiệu Linux ngày nhiều, không thua HDH khác Cài đặt Redhat 7.3 Thiết bị cần thiết : a Server : yêu cầu cấu hình : + CPU : Intel PII 400 cao + RAM : 128MB cao + HDD : 10GB cao + NIC card : 100 Mbps + External Modem + …… b Swicth có tốc độ 100 Mbps c Cable thiết bị cần thiết khác d Các máy client có cấu hình : + CPU từ 486 trở lên + RAM : 64 MB + HDD : 4.3GB cao + NIC card : 100 Mbps + ……… Cài đặt cấu hình : Bước đầu tiên, cài đặt khởi động từ CDROM Đưa đĩa Red Hat 7.3 thứ vào, dấu nhắc “boot : ”, nhấn ENTER Khi vào bên trong, bỏ qua bước kiểm tra CDROM, hình xuất sau : Default ngôn ngữ tiếng Anh, Click Next Trang Hãy lựa chọn thiết bị phần cứng cho thích hợp, sau Click Next, hình sau Click NEXT để tiếp tục Trang Hãy lựa chọn loại hình muốn sử dụng, chọn “Custom System” để thêm số package cần thiết Click NEXT Ở có lựa chọn cho mục chọn thứ 1, hệ điều hành xóa hết DATA máy tự động chọn phân vùng để cài đặt Cịn mục chọn thứ ta định phân vùng muốn cài cài với dung lượng Chúng ta có sơ đồ : Ví dụ tạo phân vùng sau : Lưu ý với / boot nơi chứa toàn ảnh kernel, partition Swap nơi làm nhớ ảo Linux, phân vùng Swap có dung lượng gấp đơi số dung lượng RAM có Phân vùng /home nơi chứa dung lượng user, nghĩa user có dung lượng 100MB, /home số user x 100 Trang Khi có giao diện : Server có phân vùng sau : + /boot : 100MB + swap : RAM x + /home : tuỳ theo số user + /var : GB + /opt : 512 MB +/ : sử dụng toàn dung lượng cịn lại Ngồi có số phân vùng khác tuỳ theo package sử dụng chúng làm nơi lưu trữ nào.( ví dụ : /cache, /chroot, ……) Sau tạo xong phân vùng, hình : Hệ điều hành đánh dấu phân vùng cần format, click NEXT Trang Click NEXT hệ điều hành dùng LILO làm phần mềm boot default Linux Tiếp theo quy định thơng số mạng theo hình Click NEXT Trang Tới đây, quy định chế độ bảo mật cho hệ thống, theo tuỳ chọn “No Firewall”, chức này, thay đổi dễ dàng vào giao diện Linux Click NEXT _ Đây tuỳ chọn để quy định ngôn ngữ mà hệ thống cung cấp Click NEXT Chọn múi khu vực nơi cài đặt Click NEXT Ở đây, quy định mật user root( Administrator), việc tạo số account khác Click NEXT Cuối nơi quy định chế độ bảo mật sử dụng chế mã hoá MD5 Shadow passwords, mặc định default Click NEXT Trang Tuỳ theo mục đích sử dụng mà cài đặt package cần thiết Click NEXT hệ điều hành bắt đầu cài đặt Sau cài đặt xong, hệ điều hành bảo khởi động lại máy Xem trình cài đặt hồn tất Trang Các lệnh file cấu hình: init Linux cho phép khởi động từ chế độ khác nhau: Chế độ (Run level) Cú pháp: # init [run level] Trường hợp sử dụng (Common Usages) Tắt máy – shutdown chế độ người dùng (single user) Đa người dùng – không hỗ trợ Network Đa người dùng – có hỗ trợ Network Chưa sử dụng Đa người dung, network, Graphic Restart Ví dụ: để vào chế độ Graphic Redhat : # init để vào chế độ textmode đa người dung: # init - Trong trình khởi động, mặc định init chạy tập tin /etc/inittab chế độ Bạn chỉnh sửa chế độ khởi động tập tin Trong thư mục /etc/rc.d/rcX.d lưu trữ files, file script mà tên file bắt đầu chữ K có nghĩa file khơng kích hoạt, bắt đầu chữ S file kích hoạt chế độ Shutdown Cú pháp: # shutdown –h Ví dụ: # shutdown –h 22:00 (tới 10:00pm tiến hành shutdown máy) # shutdown –h now (shutdown lập tức) # shutdown –r now ( restart ) # shutdown –h+10 (tiến hành shutdown sau 10 phút ) vi Cú pháp: # vi Ví dụ: # vi /etc/issue Sau vào chương trình soạn thảo vi có chế độ cần quan tâm: Chế độ soạn thảo chế độ nhập lệnh Mặc định vào Vi bạn chế độ nhập lệnh, muốn vào chế độ soạn thảo nhấn phím “i” “a” Sau chế độ soạn thảo mà muốn thoát chế độ nhập lệnh nhấn “ESC” Các chức Vi bạn cần quan tâm: - “i” dùng để bắt đầu chế độ soạn thảo văn - Ở chế độ nhập lệnh có chức sau + “:w” dùng để lưu đoạn văn vừa thay đổi Trang + “:q” dùng để thoát khỏi Vi + “dd” dùng để xóa dịng dấu nhắc trỏ thời + “/string” dung để tìm kiếm chuỗi đoạn văn + “u” undo + Ctrl + F cuộn xuống trang hình Vi + Ctrl + B cuộn lên trang hình Vi cat : lệnh dung xem nội dung tập tin Cú pháp: # cat Ví dụ: # cat myfile.txt # cat /tmp/temp.text Logging in and out of a Linux System Tại dấu nhắc hệ thống phải nhập tên bạn Password để đăng nhập vào hệ thống Linux Dấu nhắc : “#” nghĩa là account root “$” nghĩa là account thường Linux hệ điều hành đa người dùng, cho phép nhiều người lúc sử dụng hệ thống nhiều đường khác nhau: Có loại console để người dùng vào hệ thống Linux: Telnet (vc) Linux Terminal (tty) Mỗi loại có 11 đường: vc/1vc/11 tty1tty11 Để bảo mật hơn, nên giới hạn cịn đường cho loại mà Cách thức để giới hạn sau: Dùng vi để modify file /etc/securetty sau: vc/1 vc/2 #vc/3 #vc/4 #vc/10 #vc/11 tty1 tty2 #tty3 #tty4 #tty10 #tty11 man : hiển thị thông tin chi tiết công dụng cách dung lệnh khác Cú pháp: # man < tên_lệnh_khác> Ví dụ: # man ls # man man ( Để kết thúc lệnh man gõ kí tự “q” ) Trang 10 index.cgi AccessFileName htaccess Order allow,deny Deny from all UseCanonicalName On TypesConfig /etc/mime.types DefaultType text/plain MIMEMagicFile conf/magic HostnameLookups Off ErrorLog /var/log/httpd/error_log LogLevel warn LogFormat “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\”” combined LogFormat “%h %l %u %t \”%r\” %>s %b” common LogFormat “%{Referer}i -> %U” referer LogFormat “%{User-agent}i” agent CustomLog /var/log/httpd/access_log combined ServerSignature On Alias /icons/ “/var/www/icons/” Options Indexes MultiViews AllowOverride None Order allow,deny Allow from all ScriptAlias /cgi-bin/ “/var/www/cgi-bin/” AllowOverride None Options ExecCGI Order allow,deny Allow from all IndexOptions FancyIndexing AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip AddIconByType (TXT,/icons/text.gif) text/* AddIconByType (IMG,/icons/image2.gif) image/* AddIconByType (SND,/icons/sound2.gif) audio/* AddIconByType (VID,/icons/movie.gif) video/* AddIcon /icons/binary.gif bin exe AddIcon /icons/binhex.gif hqx AddIcon /icons/tar.gif tar AddIcon /icons/world2.gif wrl wrl.gz vrml vrm iv AddIcon /icons/compressed.gif Z z tgz gz zip AddIcon /icons/a.gif ps eps AddIcon /icons/layout.gif html shtml htm pdf AddIcon /icons/text.gif txt AddIcon /icons/c.gif c AddIcon /icons/p.gif pl py AddIcon /icons/f.gif for AddIcon /icons/dvi.gif dvi AddIcon /icons/uuencoded.gif uu AddIcon /icons/script.gif conf sh shar csh ksh tcl AddIcon /icons/tex.gif tex AddIcon /icons/bomb.gif core Trang 40 AddIcon /icons/back.gif AddIcon /icons/hand.right.gif README AddIcon /icons/folder.gif ^^DIRECTORY^^ AddIcon /icons/blank.gif ^^BLANKICON^^ DefaultIcon /icons/unknown.gif ReadmeName README.html HeaderName HEADER.html IndexIgnore ??* *~ *# HEADER* README* RCS CVS *,v *,t AddEncoding x-compress Z AddEncoding x-gzip gz tgz AddLanguage en en AddLanguage fr fr AddLanguage de de AddLanguage da da AddLanguage el el AddLanguage it it LanguagePriority en fr de AddType application/x-httpd-php php4 php3 phtml php AddType application/x-httpd-php-source phps AddType application/x-httpd-php3 php3 AddType application/x-httpd-php3-source phps AddType application/x-httpd-php phtml AddType application/x-tar tgz AddType text/html shtml AddHandler server-parsed shtml AddHandler imap-file map BrowserMatch “Mozilla/2” nokeepalive BrowserMatch “MSIE 4\.0b2;” nokeepalive downgrade-1.0 force-response-1.0 BrowserMatch “RealPlayer 4\.0” force-response-1.0 BrowserMatch “Java/1\.0” force-response-1.0 BrowserMatch “JDK/1\.0” force-response-1.0 Alias /perl/ /var/www/perl/ SetHandler perl-script PerlHandler Apache::Registry Options +ExecCGI Alias /doc/ /usr/share/doc/ order deny,allow deny from all allow from localhost localdomain Options Indexes FollowSymLinks - Tham số User Group cho biết apache chủ Child Server Điều an tồn không cần quyền root Trang 41 - Tham số ServerName rõ tên trả cho Client Ví dụ: tên Server DNS webbeast.mydomain.com bạn đặc tên Server www.mydomain.com , lúc Server trả lời yêu cầu gửi đến www.mydomain.com - DocumentRoot /var/www/html xác định thư mục chứa trang Web Server Ví dụ: tên server www.mydomain.com Client truy cập trang www.mydomain.com/index.html ,server trả tập tin /var/www/html/index.html cho Client Mỗi thẻ cấu hình quyền thư mục hay thư mục Thẻ đặt quyền cho tất thư mục: - Options FollowSymLinks AllowOverride None + Thẻ tác dụng lên /var/www/html, /var/www/icons /var/www/cgi-bin + Dưới Options áp dụng lên thư mục là: • All : chấp nhận tất Option trừ MultiViews All giá trị mặc định • ExecCGI : cho phép thực thi CGI • FollowSymLinks : cho phép Link symbolic thư mục • Includes : cho phép SSI (server-side includes) • IncludesNOEXEC : cho phép SSI không cho phép lệnh #exec #include cho CGI scripts • Indexes : cho Server trả danh sách list thư mục tập tin khơng có index.html • MultiViews : cho phép tìm kiếm MultiViews Nếu Server nhận yêu cầu cho tài ngun khơng tồn ví dụ /doc/resource, sau Server scans thư mục tên resouces.* ,nếu có lựa chọn phù hợp trả cho Client • None : tắt hết option cho thư mục thư mục • SymLinksIfOwnerMatch : cho Server đường dẫn đại diện tập tin thư mục UID + Ở phần có Option cho tất thư mục từ / (root) FollowSymLinks Từ trở tất khác biệt với Option / (root) có tác dụng thư mục bạn qui định Options Indexes Includes FollowSymLinks AllowOverride None Order allow.deny Allow from all + Mục AllowOverride nói cho Server biết có quyền truy cập tập tin qui định AccessFileName (AccessFileName htaccess trường hợp trên) Nếu chọn None Server lờ tập tin access file Nếu chọn All tập tin AccessFileName htaccess có hiệu lực + Order điều khiển thứ tự áp đặc quyền hạn cho tài ngun Order có giá trị: Trang 42 • - Order Deny.Allow : Xét quyền Deny trước Allow sau, mặc định cho phép truy cập Client không bị Deny Allow truy cập • Order Allow.Deny : Xét quyền Allow trước Deny sau mặc định Deny Client khơng Allow bị Deny khơng truy cập • Order Mutual-failure : Client có danh sách Allow khơng có danh sách Deny truy cập Cài đặt quyền hạn cho file thư mục quan trọng cho Apache chạy ổn định bảo mật Root làm chủ file httpd.conf thư mục bin Những User (web) làm chủ thư mục log v.v Cấu hình Virtual Hosts - Bản hướng dẫn sau dùng cho cấu hình Vitual Server Tham số directives NameVirtualHost ipaddr[:port] ServerName fqdn ServerAlias altname - Miêu tả Xác định địa IP Virtual host Directives tham số cấu hình default server Địa IP Vitual Host Tên đầy đủ Server VitualHost Cho phép Vitual Host trả lời host names khác Cấu hình chuẩn Vitual Server : Port 80 ServerName webbeast.domain.com NameVirtualHost 192.168.0.1 DocumentRoot /var/www/thisdomain ServerName www.domain.com DocumentRoot /var/www/thatdomain ServerName www.that.domain.com - Trong ví dụ www.domain.com www.that.domain.com aliases (CNAME records) cho địa 192.168.0.1 , có nghĩa tên miền webbeast.domain.com trỏ đến 192.168.0.1 NameVirtualHost qui định địa 192.168.0.1, tên ServerName tên máy tính chạy Server webbeast.domain.com Yêu cầu gửi đến www.that.doamain.com đáp ứng tứ /var/www/thatdomain, yêu cầu gửi đến www.domain.com đáp ứng tứ /var/www/thisdomain III Cài đặt cấu hình kết hợp bảo mật Apache hỗ trợ PHP A Chiến lược bảo mật sử dụng Apache Trang 43 - Việc bảo mật Apache gắn liền với việc bảo mật PHP, ngơn ngữ lập trình sử dụng để tạo trang web động tương tác với người dùng liệu người dùng lưu sở liệu local Việc bảo mật mang lại : • PHP cấu hình tối ưu chế bảo mật tốt • Đoạn mã PHP thực thi môi trường chrooted • Apache Server từ chối yêu cầu (Get Post) chứa thẻ HTML ( bị cơng phương pháp Cross-Site-Scripting) kí tự (‘) hay (“) ( chống lại công phương pháp SQL Injection ) • Khơng có lời cảnh báo PHP thông báo lỗi B Cài đặt cấu hình Apache - Cần đảm bảo MYSQL cài Server đặt thư mục “/usr/local/mysql” tích hợp SQL với PHP Trước tiên cần tải phiên mã nguồn Apache, PHP, modules mod_security ( www.modsecurity.org ) module dùng bảo vệ CSS cơng SQL injection Tiến hành giải nén chương trình vào thư mục HOME, mod_security chép vào apache_1.3.27/src/modules/extra/ gzip -dc apache_1.3.27.tar.gz | tar xvf gzip -dc php-4.3.2.tar.gz | tar xvf gzip -dc mod_security_1.5.tar.gz | tar xvf cp mod_security_1.5/apache1/mod_security.c apache_1.3.27/src/modules/extra/ - Trước biên dịch chương trình cần định phương pháp mà PHP cài : • • • Một Web Server với module tĩnh Một Web Server với module động Thể CGI Các cách có ưu điểm nhược điểm riêng Biên dịch PHP module tĩnh cải thiện họat động Web Server nâng cấp phiên PHP cần biên dịch lại hồn toàn Lựa chọn thứ biên dịch module động nâng cấp không cần biên dịch lại họat động web server giảm 5% Phương pháp thứ cài PHP CGI liên kết chế suEXEC Apache, hồn tồn giải pháp tốt, không cài đặt trở thành lỗi bảo mật nghiêm trọng Lựa chọn tốt cho việc bảo mật tối ưu dùng phương pháp thứ Phần hướng dẫn sau làm theo phương pháp thứ - Quá trình cài đặt Apache có PHP giống với cài q trình cài Apache phần có thêm modules mod_php mod_security Cần tạo User Group “apache” trước biên dịch Apache Làm theo bước sau: cd apache_1.3.27 Trang 44 ./configure + Biên dịch module PHP cd /php-4.3.2 /configure with-mysql=/usr/local/mysql with-apache= /apache_1.3.27 enable-safe-mode make su make install + Chuyển vào thư mục Apache tiếp tục cài đặt cd /apache_1.3.27 /configure prefix=/usr/local/apache disable-module=all serveruid=apache server-gid=apache enable-module=access enablemodule=log_config enable-module=dir enable-module=mime enablemodule=auth activate-module=src/modules/extra/mod_security enable-module=security activate-module=src/modules/php4/libphp4.a make su make install chown -R root:sys /usr/local/apache “./configure” module cần thiết cho bảo mật cài + Bước chuyển vào thư mục PHP chép tập tin cấu hình PHP mặc định cd /php-4.3.2 mkdir /usr/local/lib chmod 755 /usr/local/lib cp php.ini-recommended /usr/local/lib/php.ini chown root:sys /usr/local/lib/php.ini chmod 644 /usr/local/lib/php.ini + Cấu hình /usr/local/apache/conf/httpd.conf điều khiển PHP Script AddType application/x-httpd-php php + Lúc tiến hành chạy thử kiểm tra PHP giao tiếp với MySQL chưa, Tạo tập tin “test.php” thư mục /var/www/html Nếu không chạy cần kiểm tra lại trình cài đặt Apache MySQL C Bảo mật Apache Chrooting Server Trang 45 - Bước bảo mật tạo môi trường chrooted cho Apache với module PHP Để tạo môi trường “Chrooting Server” xem tài liệu hường dẫn kèm Phần thêm vào sau dùng cho PHP Trước chạy Apache lần đầu môi trường chrooted cần chép thêm vào thư viện sau: cp /usr/local/mysql/lib/mysql/libmysqlclient.so.12 /chroot/httpd/usr/lib/ cp /usr/lib/libm.so.2 /chroot/httpd/usr/lib/ cp /usr/lib/libz.so.2 /chroot/httpd/usr/lib/ - Chép tập tin cấu hình PHP mặc định umask 022 mkdir -p /chroot/httpd/usr/local/lib cp /usr/local/lib/php.ini /chroot/httpd/usr/local/lib/ - Tạo thư mục “/chroot/httpd/tmp” Thư mục phải Root chmod 1777 Sau tạo môi trường kiểm tra Apache hoạt động tốt: chroot /chroot/httpd /usr/local/apache/bin/httpd - Trước cấu hình PHP cần phải cẩn thận kiểm tra lại giao tiếp PHP MySQL Bởi giao tiếp PHP MySQL local việc sử dụng socket “/tmp/mysql.sock” Sau dùng PHP môi trường chrooted cần tạo hard link đến môi trường chrooted ln /tmp/mysql.sock /chroot/httpd/tmp/ Cấu hình PHP - Để Apache tích hợp PHP cần thêm vào tập tin httpd.conf AddModule mod_php4.c AddType application/x-httpd-php php AddType application/x-httpd-php inc AddType application/x-httpd-php class - Có thể thêm phần mở rộng khác html, dhtml tùy thuộc vào Server Những thay đổi quan trọng cải thiện bảo mật PHP cho tập tin “/chroot/httpd/usr/local/lib/php.ini” Tham số Safe_mode= on Miêu tả PHP Script truy cập tập tin mà Owner tập tin Owner PHP Script Đó kĩ thuật bảo mật quan trọng cho PHP Ngăn chặn hiệu việc truy cập file hệ thống (/etc/passwd) Safe_mode_gid=off Khi safe_mode on safe_mode_gid off, PHP script truy cập tập tin Owner group Open_basedir = Khi open_basedir thiết lập PHP truy cập directory[: ] tập tin thư mục định ( thư mục con) safe_mode_exec_dir Khi safe_mode on, hàm system(), exec() hoạt = directory[: ] động thực thi chương trình bị từ chối ,nếu khơng đặt Trang 46 expose_php = Off register_globals = Off display_errors = Off log_errors = On Error_log = filename vào thư mục định Tắt “expose_php” PHP từ chối cho HTTP Headers gửi đến Client trả lời yêu cầu Khi register_global on tất biến EGPCS ( Environment, Get, Post, Server ) tự động đăng kí biến global, tạo lỗi bảo mật nghiêm trọng Nên tắt register_global ( Mặc định từ phiên 4.2.0 tham số off ) Nếu display_errors tắt, PHP error lời cảnh báo khơng xuất Bởi lời cảnh báo thường để lộ thông tin đường dẫn, câu truy vấn SQL v.v Khi log_errors bật, tất lỗi cảnh báo ghi nhận vào tập tin khai báo error_log Nếu không khia báo error_log thông tin Apache server ghi nhận lại Chỉ định tên tập tin dùng ghi lại cảnh báo lỗi (User group Apache có quyền ghi) Chống lại cách cơng CSS SQL Injection - Bước cuối cho việc bảo mật thực việc logging GET POST, đồng thời thực việc bảo vệ CSS SQL injection Chúng ta sử dụng module mod_security Thêm vào tập tin httpd.conf AddModule mod_security.c - Bật chế độ logging GET POST, thêm vào tập tin httpd.conf AddHandler application/x-httpd-php php SecAuditEngine On SecAuditLog logs/audit_log SecFilterScanPOST On SecFilterEngine On - Những lệnh bật chức Audit Engine có nhiệm vụ logging lại yêu cầu, lọc POST Engine log lại yêu cầu POST Để bảo vệ ứng dụng Web chống lại CSS cần thêm vào trước “” SecFilterDefaultAction "deny,log,status:500" SecFilter "" - Dòng Server trả thong báo “Internal Server Error” yêu cầu tìm kiếm cụm từ biến SecFilter gửi đến Dòng thứ thiết lập cho lọc tìm thẻ HTML yêu cầu GET POST Một kí hiệu điển hình việc công SQL Injection dấu (‘) (“) yêu cầu GET hay POST Bằng việc từ chối yêu cầu chứa kí tự làm cho việc công SQL Injection trở nên khó hơn, thêm vào tập tin httpd.conf Trang 47 SecFilter "'" SecFilter "\"" - Việc lọc kí tự ,’,” giúp chống lại việc công CSS SQL Injection, ứng dụng PHP hoạt động không tốt, người dùng khơng thể sử dụng kí tự forms HTML Để giải vấn đề ngơn ngữ JavaScript dùng cho phía Client, thay kí tự với thẻ < > " … IV Những liên kết tham khảo - Apache HTTP Server Project: http://httpd.apache.org/ - Sample httpd.conf: www.securityfocus.com/data/tools/httpd.conf - Sample apache.sh: www.securityfocus.com/data/tools/apache.sh - Securing Apache: Step-by-Step: www.securityfocus.com/infocus/1694 - Sample httpd.conf with PHP support: www.securityfocus.com/unix/linux/images/maj_httpd.conf - PHP: www.php.net - mod_security : www.modsecurity.org Trang 48 Chương VII: DỊCH VỤ THƯ ĐIỆN TỬ (Sendmail) Khái niệm: Thư điện tử, Electronic mail, Email, dịch vụ nói quan trọng người sử dụng Internet Do tính phổ cập email, việc cấu hình tốt Mail server, tạo điều kiện cho người sử dụng trao đổi Email cơng việc quan trọng người quản trị Một cấu hình sai email dẫn đấn tình trạng không gửi nhận thư, tệ thư mà khơng có phản hồi Hoạt động dịch vụ mail gắn chặt chẽ với cầu hình DNS Chúng ta thử hình dung trình gửi mail để hiểu chế hoạt động hệ thống Email Đầu tiên, bạn phải có chương trình cho phép bạn soạn thảo mail Có nhiều chương trình thực nhiệm vụ : Internet Explorer, Eudora, Netscape cho Windows; eml, netscape, mail cho Unix … Các chương trình cho phép bạn đánh địa Email người nhận Địa ngày có dạng recepient_name@domain_name.top_domain , ví dụ tuanql@hcmutrans.edu.vn Sau bạn soạn thảo nội dung thư gửi lệnh hay nhấp chuột Khi đó, chương trình mail client theo cấu hình mà bạn làm, tìm SMTP server, outgoing server SMTP viết tắt Simple Mail Transfer Protocol server sử dụng giao thức SMTP gọi SMTP server Người ta thường quen dùng mail server Khi bạn khai báo SMTP server bạn thường dùng tên bạn phải sử dụng DNS server mà máy bạn phải khai báo từ trước để nhờ phân giải tìm địa IP tương ứng Sau tìm địa IP SMTP server, chương trình mail bạn thực kết nối TCP/IP với SMTP server vào cổng 25, cổng quy định cho SMTP server Hai tiến trình mail client mail server trao đổi thơng tin với thông qua SMTP protocol Nếu việc thông suốt, email bạn chấp nhận lưu trữ SMTP server chương trình mail client bạn kết thúc phiên làm việc Công việc SMTP server bạn tìm cách gửi mail bạn tới người nhận Để làm việc này, SMTP server bạn thực thao tác : + Tìm mail server người nhận email bạn + Gửi email bạn đến mail server người nhận email bạn Thao tác hoàn toàn dựa vào DNS servers Cụ thể SMTP bạn đóng vai trị DNS client để hỏi DNS server miền bạn xem “ai mail server miền hcmutrans.edu.vn ?” Quá trình tra hỏi đưa đến việc tìm record có dạng hcmutrans.edu.vn IN MX 10 mailserver.hcmutrans.edu.vn nằm CSDL DNS server đó, thường DNS server miền hcmutrans.edu.vn Nếu q trình khơng thành cơng, thư bạn không gửi bạn nhận thông báo trả lời email bạn không “host unknown” Nếu ngược lại, SMTP bạn mở kết nối TCP/IP đến mailserver.hcmutrans.edu.vn vào cổng 25 để gửi email bạn Lúc SMTP bạn đóng vai trị mail client Giao thức SMTP lại sử dụng để chuyển thư khâu Trang 49 Nếu thứ thành công, email bạn lưu trữ mailserver.hcmutrans.edu.vn người nhận tuanql phải kết nối với mailserver.hcmutrans.edu.vn để lấy thư máy đọc thư Trên miêu tả trình gửi mail điển hình Internet Trên thực tế, q trình phức tạp thay đổi nhiều phụ thuộc vào cấu hình mạng Đó yếu tố làm phức tạp hóa nhiều hệ thống Email khó khăn công tác quản trị dịch vụ Email Các bạn nhận thấy có máy tính tham gia vào trình chuyển mail, nhiều lần DNS server tham gia vào hệ thống DNS server không chạy hồn hảo, khơng thể gửi Email Dịch vụ mail server Linux (Sendmail): Có nhiều chương trình SMTP server, Sendmail có lẽ chương trình SMTP server tiếng Unix từ lâu tính mạnh tính phức tạp Chương trình Sendmail viết Eric Allman ông sinh viên University of California at Berkeley vào năm 1979 RedHat Linux có hai chương trình mail server smail sendmail Nhìn chung smail thích hợp cho mạng đơn giản, cịn sendmail dùng cho hai Trong khn khổ viết này, nghiên cứu chương trình sendmail Chương trình sendmail gọi lên nhớ hai cách Cách thứ sendmail gọi lên chương trình mail client, ví dụ chương trình tên mail Khi sendmail mở kết nối để gửi mail Đây cấu hình sendmail máy bạn khơng phải SMTP server Cách thứ hai sendmail hoạt động theo kiểu daemon, tức thường trú nhớ Khi đó, daemon sendmail “nghe“ sau cổng 25 kết nối đến Mỗi có kết nối đến cổng 25, sendmail daemon sinh tiến trình sendmail để tiếp nhận kết nối này, cịn thân tiếp tục chờ đợi kết nối khác Với lệnh netstat –n ta hiển thị kết nối thực Sendmail sử dụng tập tin cấu hình thư mục sau: - Đầu tiên, Sendmail sử dụng tập tin cấu hình /etc/sendmail.cf gọi lên nhớ Tập tin thích hợp cho cơng tác sendmail khó hiểu người đọc Ví dụ đoạn sau sendmail.cf: R$- $@ $1@${HUB} user -> user@hub R$-@$w $@ $1@${HUB} user@local -> user@hub - Đây nhược điểm đồng thời ưu điểm sendmail cho phép cấu hình sendmail uyển chuyển thỏa mãn yêu cầu dù éo le mail server Nếu bạn chưa lần phải “vỡ đầu” ký tự ả rập bạn chưa phải quản trị viên thực thụ - Trong tập tin sendmail.cf có số trường quan trọng : # Alias for this host CwITdep.hcmutrans.edu.vn tuanql.ittvn.com Cwlocalhost linuxsrv.hcmutrans.edu.vn - Dòng thứ xác định tất email với địa user@ITdep.hcmutrans.edu.vn, user@tuanql.ittvn.com thuộc máy mà chương trình sendmail chạy, cần phải đưa cho chương trình chuyển mail máy local phải thử xem user có tồn máy không Tất mail với phần domain Cw coi cho miền phải chuyển qua mạng sendmail # Smart host Dssrv.hcmutrans.edu.vn # Use this mailer to reach the Smart host Trang 50 DNsmtp - Dịng thứ ví dụ với tất mail không local, cần chuyển đến trạm mail trung chuyển (mail relay) tên mail relay chuỗi ký tự nằm sau DS - Để thử xem sendmail có phân giải địa chuyển thư theo ý định hay khơng, bạn dùng lệnh sendmail –bt mail –v địa_chỉ [root@linuxsrv root]$ /usr/sbin/sendmail -bt ADDRESS TEST MODE (ruleset NOT automatically invoked) Enter > 3,0 a@ITdep.hcmutrans.edu.vn rewrite: ruleset input: a @ ITdep.hcmutrans.edu.vn rewrite: ruleset 96 input: a < @ ITdep.hcmutrans.edu.vn > rewrite: ruleset 96 returns: a < @ ITdep.hcmutrans.edu.vn > rewrite: ruleset returns: a < @ ITdep.hcmutrans.edu.vn > rewrite: ruleset input: a < @ ITdep.hcmutrans.edu.vn > rewrite: ruleset 196 input: a < @ ITdep.hcmutrans.edu.vn > rewrite: ruleset 196 returns: a < @ ITdep.hcmutrans.edu.vn > rewrite: ruleset 98 input: a < @ ITdep.hcmutrans.edu.vn > rewrite: ruleset 98 returns: a < @ ITdep.hcmutrans.edu.vn > rewrite: ruleset 195 input: a < @ ITdep.hcmutrans.edu.vn > rewrite: ruleset 195 returns: $# local $: a rewrite: ruleset returns: $# local $: a > > 3,0 a@yahoo.com rewrite: ruleset input: a @ yahoo com rewrite: ruleset 96 input: a < @ yahoo com > rewrite: ruleset 96 returns: a < @ yahoo com > rewrite: ruleset returns: a < @ yahoo com > rewrite: ruleset input: a < @ yahoo com > rewrite: ruleset 196 input: a < @ yahoo com > rewrite: ruleset 196 returns: a < @ yahoo com > rewrite: ruleset 98 input: a < @ yahoo com > rewrite: ruleset 98 returns: a < @ yahoo com > rewrite: ruleset 195 input: a < @ yahoo com > rewrite: ruleset 90 input: < yahoo com > a < @ yahoo com > rewrite: ruleset 90 input: yahoo < com > a < @ yahoo com > rewrite: ruleset 90 returns: a < @ yahoo com > rewrite: ruleset 90 returns: a < @ yahoo com > rewrite: ruleset 95 input: < srv.hcmutrans.edu.vn > a < @ yahoo com > rewrite: ruleset 95 returns: $# smtp $@ srv.hcmutrans.edu.vn $: a < @ yahoo com > rewrite: ruleset 195 returns: $# smtp $@ srv.hcmutrans.edu.vn $: a < @ yahoo com > rewrite: ruleset returns: $# smtp $@ srv.hcmutrans.edu.vn $: a < @ yahoo com > Cài đặt cấu hình Sendmail: + Cài đặt : - Để cài đặt Sendmail từ package rpm, ta dùng lệnh : rpm –ivh sendmail-x.xx.x-xx.rpm + Cấu hình : Trang 51 - Để cấu hình Sendmail, ta cấu hình file /etc/mail/sendmail.cf Trong file này, ta cấu hình số tham số thường dùng sau : Các tham số cần điều chỉnh Cwlocalhost hcmutrans.edu.vn # "Smart" relay host (may be null) Dslinuxsrv.hcmutrans.edu.vn # maximum number of recipients per SMTP envelope O MaxRecipientsPerMessage=50 # maximum message size O MaxMessageSize=3000000 Giải thích Cấu hình cho sendmail nhận mail cho miền linuxsrv.hcmutrans.edu.vn Các mail chuyển lên máy linuxsrv.hcmutrans.edu.vn để gởi Giới hạn số người nhận mail Giới hạn kích thước tối đa mail, tính theo đơn vị bytes - Ngồi phải cấu hình cho sendmail nhận relay mail cho miền khai báo(linuxsrv.hcmutrans.edu.vn) file /etc/mail/sendmail.cf ta thêm tên miền (linuxsrv.hcmutrans.edu.vn) vào file /etc/mail/access sau : Linuxsrv.hcmutrans.edu.vnRELAY - Dòng khai báo cho phép client gửi mail thông qua mail server sendmail này, mặt khác mail server nhận mail cho miền linuxsrv.hcmutrans.edu.vn gọi chế chóng relay : ngồi miền này, sendmail không nhận chuyển mail cho miền - Sau thêm dòng vào, ta phải chuyển file dạng text sang dạng chuẩn sendmail đọc lệnh sau : Cd /etc/mail/ Makemap hash access