TÓM TẮT NỘI DUNG Cài đặt DNS, mail server và Web server trên Linux Giới thiệu và cài đặt DNS trên Linux Giới thiệu và cài đặt mail server trên Linux Giới thiệu và cài đặt Web server trên Linux Cấu hình Virtual Host Cách sao lưu các dữ liệu quan trọng cho Web class Tổng quan về các loại Backup Các công cụ hỗ trợ Backup trong Linux Sao lưu với câu lệnh TarBackup Website Tìm hiểu các log files Cấu hình syslogd Log File Rotation Examining Log Files Cài đặt và triển khai iptable Giới thiệu về iptables Cài đặt iptables Cơ chế xử lý package trong iptables Load kernel module cần cho iptables Thực hiện lệnh trong iptables Một số giá trị khởi tạo của iptables Khắc phục sự cố trên iptables
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG BÁO CÁO BÀI TẬP LỚN LINUX VÀ PHẦN MỀM MÃ NGUỒN MỞ Giáo viên hướng dẫn: BÀNH THỊ QUỲNH MAI Nhóm sinh viên thực hiện: MSSV Lớp: Nguyễn Thế Hà 20121622 CNTT1.02-K57 Vũ Trường Giang 20109257 CNTT2-K55 Bùi Văn Quân 20125730 CN-CNTT K57 Phạm Minh Hiếu 20121693 CNTT1.02-K57 LỜI MỞ ĐẦU Trong năm gần hệ điều hành Linux ngày trở nên phổ biến trường học môi trường công nghiệp. Hệ Unix này, với chức tính ổn định cho phép tồn song song với hệ điều hành thương mại khác. Hơn nữa, phổ biến mã nguồn Linux Internet đóng góp nhiều cho phổ cập linux. Giúp chúng em bước đầu học phương pháp giải toán thực tiễn, phát triển kỹ chuyên nghiệp kỹ xã hội, tạo điều kiện cho chúng em học phương pháp lập nhóm làm việc theo nhóm. Giúp chúng em có say mê tự tin cần thiết học tập đường nghề nghiệp sau này. Được hướng dẫn thầy cô, chúng em tìm hiểu kiến thức cài đặt DNS, mail server Web server Linux, cách lưu liệu quan trọng Web class, tìm hiểu log files, cài đặt triển khai iptable.Đây công cụ để hỗ trợ cho chúng em học tốt kiến thức khác. Với nỗ lực nhóm tận tình giúp đỡ cô Bành Thị Quỳnh Mai, tập lớn linux chúng em hoàn thành.Tuy nhiên trình độ thời gian có hạn, lực nhiều hạn chế, nên tập lớn nhóm em chắn nhiều thiếu sót. Em mong cô bạn đóng góp ý kiến, để tập lớn chúng em hoàn thiện hơn. Em xin chân thành cảm ơn cô! TÓM TẮT NỘI DUNG ( Cài đặt DNS, mail server Web server Linux ( Giới thiệu cài đặt DNS Linux ( Giới thiệu cài đặt mail server Linux ( Giới thiệu cài đặt Web server Linux ( Cấu hình Virtual Host ( Cách lưu liệu quan trọng cho Web class ( Tổng quan loại Backup ( Các công cụ hỗ trợ Backup Linux ( Sao lưu với câu lệnh Tar Backup Website ( Tìm hiểu log files ( Cấu hình syslogd ( Log File Rotation ( Examining Log Files ( Cài đặt triển khai iptable ( Giới thiệu iptables ( Cài đặt iptables ( Cơ chế xử lý package iptables ( Load kernel module cần cho iptables ( Thực lệnh iptables ( Một số giá trị khởi tạo iptables ( Khắc phục cố iptables NỘI DUNG BÁO CÁO Phần I: Cài đặt DNS, mail server Web server Linux 1,Cài đặt DNS Linux A,Khái niệm: DNS từ viết tắt tiếng Anh§ Domain Name System, Hệ thống tên miền phát minh vào năm 1984 cho Internet§, hệ thống cho phép thiết lập tương ứng địa IP§ tên miền§. Hệ thống tên miền (DNS) hệ thống đặt tên theo thứ tự cho máy vi tính, dịch vụ, nguồn lực tham gia vào Internet. Nó liên kết nhiều thông tin đa dạng với tên miền gán cho người tham gia. Quan trọng là, chuyển tên miền có ý nghĩa cho người vào số định danh (nhị phân), liên kết với trang thiết bị mạng cho mục đích định vị địa hóa thiết bị khắp giới. DNS: Domain Name Service, là dịch vụ dùng để phân giải tên miền (Domain) sang địa chỉ IP và ngược lại. Domain: Là tên miền, ví dụ yahoo.com; microsoft.com B,Cài đặt: Tại chúng ta cần DNS: DNS được sử dụng để giúp chúng ta thuận tiện, dễ nhớ cần truy cập đến một trang web nào đó. Ví dụ: thay vì phải nhớ một dãy số dài dòng 192.168.1.10 cần truy cập đến website SaigonCTT forums, chúng ta chỉ cần nhớ địa chỉ forum.saigonctt.com.vn. Các bước cài đặt: B1: Cài đặt bind9 Code: sudo su apt-get install bind9 bind9utils dnsutils B2: Cấu hình DNS phân giải xuôi (phân giải tên miền thành địa IP) 2.1) Cấu hình file named.conf.local , thêm zone Code: gedit /etc/bind/named.conf.local +) “nhom7203.com” : Tên miền +) type master: kiểu master +) file “/etc/bind/db.7203.com”: file cấu hình zone 2.2) Cấu hình file db.7203.com Code: cp /etc/bind/db.local /etc/bind/db.7203.com gedit /etc/bind/db.7203.com +)Thay localhost. tên miền (nhom7203.com) +)Thay 127.0.0.1 địa IP chọn (1.2.3.4) 2.3) Restart bind9 kiểm tra phân giải tên miền service bind9 restart dig nhom7203.com B3: Cấu hình DNS phân giải ngược (phân giải địa IP tên miền) 3.1) Cấu hình file named.conf.local , thêm zone ngược gedit /etc/bind/named.conf.local 3.2) Cấu hình file db.1 Cp /etc/bind/db.127 /etc/bind/db.1 Gedit /etc/bind/db.1 3.3) Restart bind9 kiểm tra phân giải ngược Code Service bind9 restart 10 Để tránh lỗi phần cứng, phần mềm cố xảy ta cần thực backup. Và ta dùng lệnh tar: tar -cvpzf backup.tgz /var/www Câu lệnh thực nén tất file thư mục /var/www thành file backup.tgz Khi cần sử dụng file backup ta thực giải nén file .tgz lệnh: tar -xvzf backup.tgz Câu lệnh thực nén tất file thư mục /var/www thành file backup.tgz Khi cần sử dụng file backup ta thực giải nén file .tgz lệnh: tar -xvzf backup.tgz Phần 3: Tìm hiểu log files 1, Cấu hình syslogd Những hành vi syslogd kiểm soát file cấu hình - /etc/syslog.conf (trên fedora đổi thành rsyslog.conf). File text cho biết log log vào đâu. Mỗi dòng chứa đựng lời dẫn theo dạng facility.level action Lời dẫn định nghĩa sau: - facility: đại diện cho đối tượng tạo thông báo (kernel, process), nhận giá trị sau: • auth: sử dụng cho kiện bảo mật • authpriv: thông báo liên quan đến kiểm soát truy cập bảo mật • cron: cron daemon • daemon: sử dụng tiến trình hệ thống daemons khác • kern: thông báo từ kernel • lpr: hệ thống in ấn • mark: thông báo generated thân syslogd. Nó chứa biến timestamp chuỗi "--MARK--". • news: hệ thống tin tức • syslog: thông báo generated thân syslogd. • user: thông báo cấp người dùng chung • uucp: hệ thống UUCP • local0 to local7: dự trữ cho sử dụng nội 47 Việc sử dụng facility cho phép bạn kiểm soát địa đến messages dựa nguồn gốc nó. level: xác định ngưỡng mà messages logged. level nhận giá trị sau: • • • • • • • • debug: messages chế độ debug info: messages mang thông tin notice: messages mang tính chất thông báo warning (hoặc warn): messages cảnh báo err (hoặc error): messages lỗi crit: messages nguy hiểm alert: messages hành động phải thực emerg (hoặc panic): messages hệ thống dùng Ngoài mức đặc biệt gọi none, mức disable facility cùng. level định nghĩa số lượng ghi chi tiết log file. Dấu [*] sử dụng để miêu tả cho tất facilities tất levels. action: đại diện cho địa messages tương ứng với facility.level. action tên file, host name đứng trước ký tự @, danh sách người dùng ngăn cách dấu phảy, dấu *. Để hiểu rõ tất thành phần tham số này, bạn cần đọc man syslog.conf Ví dụ, để theo dõi daemon bạn thêm dòng vào /etc/syslog.conf sau: Code: # Define a new log file for daemon facility daemon.* /var/log/daemon.log Sau ta cần restart syslog để thay đổi có hiệu lực: Code: $ sudo /sbin/service syslog restart Shutting down kernel logger: Shutting down system logger: Starting system logger: Starting kernel logger: [ OK ] [ OK ] [ OK ] [ OK ] Tiếp theo ta cần reboot để daemon.log tạo /var/log Để test, ta sử dụng tiện ích logger để gửi messages đến facility shell script: Code: $ logger -p daemon.notice "This is a notice" Thông báo "This is a notice" xuất /var/log/daemon.log # cat /var/log/daemon.log | grep notice 48 Dec 20:45:08 localhost quanta: This is a notice 2, Log File Rotation Phần lớn distro cài đặt cấu hình syslog mặc định cho bạn, bao gồm logging to messages log files khác /var/log. Để ngăn cản files ngày trở nên cồng kềnh khó kiểm soát, hệ thống quay vòng log file (a log file rotation scheme) nên cài đặt. Hệ thống cron đưa lệnh để thiết lập log files mới, file cũ đổi tên cách thay số hậu tố. Với loại quay vòng này, /var/log/messages ngày hôm qua trở thành messages.1 ngày hôm messages tạo. Sự luân phiên cấu hình cho số lượng lớn file, log files cũ xoá luân phiên bắt đầu chạy. Ví dụ /var/log tớ có messages sau: messages, messages.1, messages20071111, messages-20071118, . Tiện ích thi hành rotation logrotate. Lệnh cấu hình sử dụng cho nhiều files - xác định tham số cùng. File cấu hình mặc định /etc/logrotate.conf. Ví dụ với Fedora 8: Code: # see "man logrotate" for details # rotate log files weekly weekly # keep weeks worth of backlogs rotate # create new (empty) log files after rotating old ones create # use date as a suffix of the rotated file dateext # uncomment this if you want your log files compressed #compress # RPM packages drop log rotation information into this directory include /etc/logrotate.d # no packages own wtmp and btmp -- we'll rotate them here /var/log/wtmp { monthly create 0664 root utmp rotate } /var/log/btmp { 49 missingok monthly create 0600 root utmp rotate } # system-specific logs may be also be configured here. Trong ví dụ này, ta thấy: • Hệ thống quay vòng log files hàng tuần • Lưu lại thông tin logs đáng giá tuần • Sử dụng định dạng Ngày tháng thêm vào để làm hậu tố log files (20071111, 20071118, .) • Thông tin quay vòng log gói RPM nằm /etc/logrotate.d • rotation thiết lập cho files: /var/log/wtmp /var/log/btmp 3. Examining Log Files Ta học nhiều cách hoạt động hệ thống cách xem lại log files tạo. Một lúc cần thiết để gỡ rối vấn đề gặp phải từ thông tin logged đó. Phần lớn log files có dạng plain text, dễ dàng để xem lại với vài lệnh như: tail, less, grep. Một dòng thông báo log tạo với thông tin sau, ngăn cách khoảng trắng (space) • • • • Date/time Origin hostname Message sender Message text Một đoạn messages điển hình, trông giống sau: Code: openvpn.net/howto.html#mitm for more info. Nov 21 14:42:13 localhost openvpn[1964]: Re-using SSL/TLS context Nov 21 14:42:13 localhost openvpn[1964]: LZO compression initialized Nov 21 14:42:13 localhost openvpn[1964]: Control Channel MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ] Nov 21 14:42:13 localhost openvpn[1964]: Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:135 ET:0 EL:0 AF:3/1 ] Nov 21 14:42:13 localhost openvpn[1964]: Local Options hash (VER=V4): '41690919' Nov 21 14:42:13 localhost openvpn[1964]: Expected Remote Options hash (VER=V4): '530fdded' Nov 21 14:42:13 localhost openvpn[1964]: Socket Buffers: R=[110592->131072] S=[110592>131072] Nov 21 14:42:13 localhost openvpn[1964]: UDPv4 link local: [undef] 50 Nov 21 14:42:13 localhost openvpn[1964]: UDPv4 link remote: 192.168.1.3:1194 Nov 21 14:42:13 localhost openvpn[1964]: read UDPv4 [ECONNREFUSED]: Connection refused (code=111) Trong trường hợp này, hostname localhost messages đến từ dịch vụ openvpn. Bất lúc bạn xem lại nội dung log files bạn cách dùng less Code: $ less /var/log/messages tail Code: $ tail -f /var/log/messages Để tìm kiếm thông báo xác định mouse, bạn dùng grep Code: # grep '[Mm]ouse' /var/log/messages Dec 00:15:28 smp kernel: Detected PS/2 Mouse Port. Dec 10:55:02 smp gpm: Shutting down gpm mouse services: Thông thường, bạn sử dụng grep để tìm kiếm item đặc biệt /var/log/messages, bạn cần phải tìm kiếm tất rotated files với wildcard (tạm dịch: ký tự đại diện). Chẳng hạn, để tìm kiếm tất messages từ sendmail bạn cần: Code: # grep 'sendmail:' /var/log/messages* Khi ta xác định vấn đề từ log files, nhìn vào hostname sender đầu tiên, sau messages text. Trong nhiều trường hợp bạn xác định sai từ thông báo đó. Thi thoảng, thông báo lỗi đầu mối, việc xem lại toàn logs bạn cần thiết. Trong trường hợp này, hữu ích bạn tạm thời thay đổi level /etc/syslog.conf thành debug để log lại nhiều thông tin giúp giải vấn đề. Phần : Cài đặt và triển khai IPtable 1.Giới thiệu iptables 51 Iptables tường lửa (firewall) thông dụng linux. Ban đầu ipchains tường lửa dùng phổ biến, sau phát nhiều thiếu sót nên netfilter phát triển sản phẩm iptables. Iptables Netfilter Organiztion viết để tăng tính bảo mật hệ thống Linux. Iptables cung cấp tính sau: • Tích hợp tốt với kernel Linux. • Có khả phân tích package hiệu quả. • Lọc package dựa vào MAC số cờ hiệu TCP Header • Cung cấp chi tiết tùy chọn để ghi nhận kiện hệ thống • Cung cấp kỹ thuật NAT • Có khả ngăn chặn số chế công theo kiểu DoS. 2. Cài đặt iptables Iptables cài đặt mặc định hệ thống Linux, package iptables iptables- version.rpm iptables-version.tgz …, ta dùng lệnh để cài đặt package này: $ rpm –ivh iptables-version.rpm đối Red Hat $ apt-get install iptables Debian - Khởi động iptables: service iptables start - Tắt iptables: service iptables stop - Tái khởi động iptables: service iptables restart - Để khởi động iptables khởi động máy: chkconfig iptables on - Xác định trạng thái iptables: service iptables status 3. Cơ chế xử lý package iptables Iptables kiểm tra tất package qua iptables host, trình kiểm tra thực cách entry đến entry cuối cùng. Có ba loại bảng iptables: - Mangle table : chịu trách nhiệm biến đổi quality of service bits TCP header. Thông thường loại table ứng dụng SOHO (Small - Office/Home Office). Filter queue: chịu trách nhiệm thiết lập lọc packet (packet filtering), có ba loại built-in chains mô tả để thực sách firewall (firewall policy rules). + Forward chain : Cho phép packet nguồn chuyển qua firewall. + Input chain : Cho phép gói tin vào từ firewall. + Output chain : Cho phép gói tin từ firewall. - NAT queue: thực thi chức NAT (Network Address Translation), cung cấp hai loại built-in chains sau đây: + Pre-routing chain : NAT từ vào nội bộ. Quá trình NAT thực trước khi thực thi chế routing. Điều thuận lợi cho việc đổi địa 52 đích để địa tương thích với bảng định tuyến firewall, cấu hình ta dùng khóa DNAT để mô tả kỹ thuật này. + Post-routing chain : NAT từ ngoài. Quá trình NAT thực sau thực chế định tuyến. Quá trình nhằm thay đổi địa nguồn gói tin. Kỹ thuật gọi NAT one-to-one many-to-one, - gọi Source NAT hay SNAT. OUPUT : Trong loại firewall thực trình NAT. A, Hiển thị danh sách rules iptables [root@trang~#] iptables –L B, Cho phép thiết lập Sessions [root@trang~#] iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT C, Cho phép Traffic truy cập cổng đặc biệt [root@trang~#] iptables -A INPUT -p tcp --dport ssh -j ACCEPT 53 D, Cho phép tất trang web truy cập vào web [root@trang~#] iptables -A INPUT -p tcp --dport 80 -j ACCEPT E, Chặn Traffic [root@trang~#] iptables -A INPUT -p icmp --icmp-type echo-request -j DROP 54 Trước chặn ping Sau chặn không ping được: 55 4, Target Jumps Jump chế chuyển packet đến target để xử lý thêm số thao tác khác. Target chế hoạt động iptables, dùng để nhận diện kiểm tra - packet. Các target xây dựng sẵn iptables như: + ACCEPT: iptables chấp nhận chuyển data đến đích. + DROP: iptables khóa packet. + LOG: thông tin packet gửi vào syslog daemon iptables tiếp tục xử lý luật bảng mô tả luật. Nếu luật cuối không match drop packet. Với tùy chọn thông dụng --log-p refix=”string”, tức iptables ghi nhận lại message bắt đầu chuỗi “string”. + REJECT: ngăn chặn packet gởi thông báo cho sender. Với tùy chọn thông dụng --reject-with qualifier, tức qualifier định loại reject message gởi lại cho người gửi. Các loại qualifer sau: icmp-port-unreachable (default), icmp-net-unreachable, icmp-host-unreachable, icmp-protounreachable, … + DNAT: thay đổi địa đích packet. Tùy chọn --to-estination iparess. + SNAT: thay đổi địa nguồn packet. Tùy chọn --to-source [a ress] [:-] - MASQUERADING: sử dụng để thực kỹ thuật NAT (giả mạo địa nguồn với địa interface firewall). Tùy chọn [--to-po rts [-]] , định dãy port nguồn ánh xạ với dãy port ban đầu. 5. Thực lệnh iptables Bảng 1: Bảng mô tả iptables command Switch Iptables command Switch Mô tả -t Chỉ định bảng cho iptables bao gồm: filter, nat, mangle tables. -j Nhảy đến target chain packet thỏa luật tại. -A Thêm luật vào cuối iptables chain. -F Xóa tất luật bảng lựa chọn -p Mô tả giao thức bao gồm: icmp, tcp, udp all. 56 -s Chỉ định địa nguồn. -d [...]... db.nhomlinux.com 34 *Lưu ý: Phần này chúng ta không cấu hình DNS phân giải ngược B2 : Thêm localhost vào FQDN, thiết lập các sites-available của 2 trang web Code: gedit /etc/apache2/conf-available/fqdn.conf touch /etc/apache2/sites-available/nhom7203.conf gedit /etc/apache2/sites-available/nhom7203.conf 35 touch /etc/apache2/sites-available/nhomlinux.conf gedit /etc/apache2/sites-available/nhomlinux.conf... MUA thường được sử dụng trên • Linux là: elm, pine, mutt Mail Tranfer Agent (MTA): hoạt động cơ bản của nó giống như một "mail router" nó nhận e-mail từ các MUA hay từ một MTA khác, dựa vào thông tin trong phần header của e-mail nó sẽ đưa ra xử lý phù hợp với e-mail đó, sau đó e-mail sẽ được gửi đến một MDA phù hợp để gửi e-mail đó Các MTA • thường được sử dụng trên Linux là: sendmail, postfix, qmail... [root@trang:~]# ln -s /etc/apache2/sites-available/squirrelmail /etc/apache2/sites-enabled/squirrelmail [root@trang:~]# /etc/init.d/apache2 force-reload 27 28 29 30 3, Giới thiệu và cài đặt Web server trên Linux HTTP là một giao thức cho phép trình duyệt Web Browser và servers có thể giao tiếp với nhau Nó chuẩn hoá các thao tác cơ bản mà một Web Server phải làm được HTTP bắt đầu là 1 giao thức đơn giản giống...Dig -x 1.2.3.4 Như vậy ta đã cài thành công DNS 2,Cài đặt mail server trên Linux A,Mô hình hoạt động của hệ thống mail 1 Tổng quan về dịch vụ email : 11 • Gửi và nhận các thong báo • Có thể chứa các dữ liệu đa phương tiện • Được sử dụng rộng rãi trên thế . của cô Bành Thị Quỳnh Mai, bài tập lớn linux của chúng em cũng đã hoàn thành.Tuy nhiên do trình độ và thời gian còn có hạn, năng lực còn nhiều hạn chế, nên bài tập lớn của nhóm em chắc chắn. TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG BÁO CÁO BÀI TẬP LỚN LINUX VÀ PHẦN MỀM MÃ NGUỒN MỞ Giáo viên hướng dẫn: BÀNH THỊ QUỲNH MAI Nhóm sinh viên. kiến, để bài tập lớn của chúng em được hoàn thiện hơn. Em xin chân thành cảm ơn cô! TÓM TẮT NỘI DUNG ( Cài đặt DNS, mail server và Web server trên Linux ( Giới thiệu và cài đặt DNS trên Linux (