Báo cáo BTL Linux và phần mềm mã nguồn mở Giảng viên: ThS Bành Thị Quỳnh Mai Cấu hình DNS, Mail service, Iptable, Web server
Trang 1VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
BÁO CÁO BÀI TẬP LỚN HỌC PHẦN: LINUX VÀ PHẦN MỀM MÃ NGUỒN MỞ
Sinh viên thực hiện : Nguyễn Trung Anh
Trang 2MỤC LỤC:
LỜI MỞ ĐẦU 3
NỘI DUNG BÁO CÁO: 4
Phần 1: Triển khai dịch vụ DNS trên Ubuntu 4
1 Tổng quan về DNS 4
2 Triển khai dịch vụ DNS trên Linux 5
Phần 2: Triển khai Web server 9
1 Tổng quan về Web server 9
2 Triển khai Web server trên Linux bằng Apache2: 9
Phần 3: Triển khai dịch vụ Mail 15
1 Tổng quan về hệ thống E-mail: 15
2 Triển khai dịch vụ e-mail: 15
Phần 4: Triển khai dịch vụ Firewall iptables: 19
1 Tìm hiểu về Iptables: 19
2 Triển khai dịch vụ Iptables trên Linux: 20
DANH MỤC TÀI LIỆU THAM KHẢO: 22
Trang 3LỜI MỞ ĐẦU
Trong thời đại bùng nổ công nghệ thông tin như hiện nay,con người ngày càng được hưởng nhiều tiện ích từ sự hỗ trợ củacác phần mềm và đặc biệt là những phần mềm mã nguồn mở.Linux là một trong số những phần mềm mã nguồn mở được sửdụng và ứng dụng rộng rãi nhất được phát triển từ phần mềmUNIX
Linux ngoài việc trao cho người sử dụng quyền sử dụng miễnphí, còn có quyền sao chép, nghiên cứu, sửa đổi Vì vậy, phầnmềm mã nguồn mở Linux ngày càng phát triển do có sự pháttriển của cả cộng đồng Nước ta đang trong quá trình hội nhậpcùng với thế giới, công nghệ thông tin của nước ta đang trong giaiđoạn học hỏi, phát triển và cộng đồng sử dụng mã nguồn mở củanước ta đang có những bước tiến hoà cùng thế giới Với mongmuốn có những hiểu biết chính xác về những vấn đề cơ bản cốtlõi của phần mềm mã nguồn mở, bài báo cáo của em sẽ đề cậptới những nội dung:
Phần 1: Triển khai dịch vụ DNS
Phần 2: Triển khai dịch vụ Web server
Phần 3: Triển khai dịc vụ Mail
Phần 4: Triển khai dịch vụ Iptables
Em chân thành cảm ơn sự giúp đỡ của giảng viên Bành ThịQuỳnh Mai đã cung cấp những kiến thức và tài liệu môn học để
em hoàn thành báo cáo của mình Trong quá trình tìm hiểu thựchiện và hoàn thành báo cáo, do kiến thức còn chưa chuyên sâu
và phạm vi nghiên cứu còn hạn hẹp nên không tránh khỏi nhữngsai sót, rất mong nhận được sự đóng góp ý kiến từ thầy cô để bàibáo cáo của em được hoàn thiện hơn
Trang 5NỘI DUNG BÁO CÁO:
Phần 1: Triển khai dịch vụ DNS trên Ubuntu
1.2 Chức năng:
Mỗi website có một tên và một địa chỉ IP Khi mở một trình duyệt Web
và nhập tên website, trình duyệt sẽ đến thẳng website mà không cần phải thôngqua việc nhập địa chỉ IP của trang web Quá trình "dịch" tên miền thành địa chỉ
IP để cho trình duyệt hiểu và truy cập được vào website là công việc của mộtDNS server Các DNS giúp người sử dụng chỉ cần nhớ "tên", không cần phảinhớ địa chỉ IP (địa chỉ IP là những con số rất khó nhớ)
1.3 Kiến trúc DNS:
Không gian tên miền (Domain name space): là một kiến trúc dạngcây, chứ nhiều nốt (node); mỗi nốt sẽ có một nhãn và có không hoặc nhiềuresource record (RR) giữ thông tin liên quan đến tên miền (nốt root không cónhãn)
Tên miền (Domain name): được tạo thành từ các nhãn và phân cáchnhau bởi dấu chấm (.), ví dụ nhom50120.com Tên miền còn được chia theo
Trang 6các cấp độ như top level, cấp 1, cấp 2,… hệ thống tên miền được tính theo
hướng từ phải qua trái, ví dụ www.nhom50120.com có nhom50120 là tên miền con của miền com, và www là tên miền con của miền nhom50120.com.
Máy chủ tên miền (name servers) chứa thông tin lưu trữ của khônggian tên miền Hệ thống tên miền được vận hành bởi hệ thống dữ liệu phân tán,dạng client-server Các nốt của hệ dữ liệu này là các máy chủ tên miền Mỗimột tên miền sẽ có ít nhất một máy chủ DNS chứa thông tin của tên miền đó.Các thông tin của Máy chủ tên miền sẽ được lưu trữ trong các zone Có haidạng NS là primary và secondary
2 Triển khai dịch vụ DNS trên Linux.
2.1 Cập nhật và cài đặt gói dịch vụ bind9:
$ sudo apt-get update
$ sudo apt-get install bind9
2.2 Cấu hình file /etc/network/interfaces
$ sudo gedit /etc/network/interfaces
Trang 7- Khởi động lại BIND, khởi động máy tính để áp dụng cấu hình mạng:
$ sudo systemctl restart bind9
2.3 Cấu hình file /etc/bind/named.conf.options
$ sudo nano /etc/bind/named.conf.options
2.4 Cấu hình DNS phân giải thuận và nghịch:
- Cấu hình file named.conf.local:
$ nano /etc/bind/named.conf.local
Trang 8- Cấu hình file db.nhom50120.com.
Trang 92.5 Khởi động lại dịch vụ bind9 và khởi động lại máy tính
$ systemctl restart bind9
2.6 Kiểm tra DNS server đã hoạt động chưa
$ dig nhom50120.com
$ nslookup 192.168.1.123
$ nslookup nhom50120.com
Trang 10Phần 2: Triển khai Web server.
1 Tổng quan về Web server
1.1 Khái niệm:
Máy chủ web (web server) là một hệ thống máy tính xử lý các yêu cầuthông qua http - một giao thức mạng cơ bản được sử dụng để phân phối thôngtin trên world wide web
Web server là một máy chủ có dung lượng lớn, tốc độ cao, được dung đểlưu trữ thông tin như một ngân hàng dữ liệu, chứa các website đã được thiết kế
và các thông tin khác
1.2 Chức năng:
Chức năng chính của một web server là để lưu trữ, xử lý và cung cấp cáctrang web cho khách hàng Giao tiếp giữa máy khách và máy chủ diễn ra bằngcách sử dụng Giao thức truyền siêu văn bản (HTTP – Hypertext TransferProtocol) Các trang được phân phối thường là tài liệu HTML , có thể baogồm hình ảnh , các trang tính và các tập lệnh ngoài nội dung văn bản
2 Triển khai Web server trên Linux bằng Apache2:
2.1 Cài đặt Apache2:
$ sudo apt-get install apache2
Trang 112.2 Triển khai Name-base Web Server
- Tạo Virtual Host File
$ sudo nano /etc/apache2/sites-available/nhom50120.com.conf
- Tạo file html cho trang chính
$ sudo nano /var/www/nhom50120.com/html/index.html
- “enable” file Virtual Host vừa tạo, khởi động lại apache2
$ sudo a2ensite nhom50120.com.conf
$ sudo systemctl restart apache2
Trang 12- Kiểm tra bằng Web Browser (Firefox)
2.3 Triển khai IP-based Web Server
- Chỉnh sửa file Virtual Host tạo ở phần 2.1: thay * bằng địa chỉ IP củaserver:
$ sudo nano /etc/apache2/sites-available/nhom50120.com.conf
- Test IP-based Web Server
Trang 132.4 Triển khai HTTPS Web Server
- Kích hoạt SSL Module và khởi động lại apache2:
$ sudo a2enmod ssl
$ sudo systemctl restart apache2
- Tạo một Selt-Signal SSL Certificate:
$ sudo mkdir /etc/apache2/ssl
$ sudo openssl req –x509 –nodes –days 365 –newkey rsa:2048 –keyout /etc/apache2/ssl/apache.key –out /etc/apache2/ssl/apache.crt
- Cấu hình cho apache sử dụng SSL:
$ sudo nano /etc/apache2/sites-available/default-ssl.conf
- Kích hoạt SSL Virtual host
$ sudo a2ensite default-ssl.conf
$ sudo systemctl restart apache2
- Test HTTPS Web Server
Trang 142.5 Thêm khả năng truy cập vào tên miền www.nhom50120.com:
- Chỉnh sửa file /etc/bind/db.nhom50120.com
$ sudo nano /etc/bind/db.nhom50120.com
- Vào trình duyệt và kiểm tra:
Trang 152.6 Cài đặt User Directory trên Web Server
- Bật userdir Module:
$ sudo a2enmod userdir
- Cấu hình file /etc/apache2/mods-enable/userdir.conf
- Tạo file public_html trong thư mục home của người dùng, tạo file muốn
chia sẻ
- Test trong trình duyệt:
Trang 16Phần 3: Triển khai dịch vụ Mail
1 Tổng quan về hệ thống E-mail:
Thành phần chính của hệ thống E-mail:
- Mail User Agent (MUA): là chương trình mà người dùng sử dụng để đọc
và gửi e-mail Nó đọc e-mail được gửi vào mail box của người dùng vàgửi e-mail tới MTA để gửi đến nơi nhận Các MUA thường được sửdụng trên Linux là elm, pine, mutt
- Mail Tranfer Agent (MTA): hoạt động cơ bản giống như một “mailrouter”, nó nhận e-mail từ các MUA hay từ một MTA khác, dựa vàothô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: sendmail, postfix, qmail
- Mail Delivery Agent (MDA): nhận e-mail từ MTA và thực hiện việc gửie-mail đến đích thực sự
2 Triển khai dịch vụ e-mail:
2.1 Cài đặt sendmail:
$ sudo apt-get update
$ sudo apt-get install sendmail
$ sudo sendmailconfig
$ sudo systemctl restart sendmail
Trang 17- Kiểm tra hòm thư của người dùng “trung”
$ sudo cat /var/mail/trung
2.3 Triển khai dịch vụ mail gửi ra 1 địa chỉ gmail bất kì:
- Bước 1: sao lưu cấu hình sendmail, để khôi phục lại cấu hình trước đótrong trường hợp có lỗi xảy ra:
$ cd / etc / mail
$ cp sendmail.cf sendmail.cf.orig
$ cp sendmail.mc sendmail.mc.orig
Trang 18- Bước 2: Xác thực SMTP
+ Tạo một tệp để lưu trữ thông tin xác thực Gmail để truy cập vào smtp
server, tạo thư mục /etc/mail/auth:
$ mkdir -m 700 -p /etc/mail/auth
+ Tạo file auth-info để lưu trữ thông tin đăng nhập Gmail:
$ touch /etc/mail/auth/auth-info
+ Chỉnh sửa file /etc/mail/auth/auth-info Thêm dòng sau vào:
AuthInfo:smtp.gmail.com “U:root” “I:anhngtrung@gmail.com” “antxxx”
+ Lưu file và tạo database-map, kết thúc sẽ tạo ra file auth-info.db
$ cd / etc / mail / auth
$ makemap hash auth-info < auth-info
+ Để bảo mật, đặt quyền read-write cho người quản trị root:
$ chmod 0600 /etc/mail/auth/*
- Bước 3: Định cấu hình sendmail.mc: sao chép các dòng bên dưới và dán
vào trước dòng MAILER đầu tiên:
Trang 19- Bước 5: Test mail:
$ echo “TEST G-MAIL” | /usr/lib/sendmail –v abc@gmail.com
Trang 20Phần 4: Triển khai dịch vụ Firewall iptables:
1 Tìm hiểu về Iptables:
1.1 Khái niệm:
Iptables là Firewall được cấu hình và hoạt động trên nền Console rấtnhỏ và tiện dụng, Iptables do Netfilter Organiztion viết ra để tăng tính năngbảo mật trên hệ thống Linux
1.2 Tính năng của Iptables:
- Tích hợp tốt với kernel của Linux
- Có khả năng phân tích package hiệu quả
- Lọc package dựa vào MAC và một số cờ hiệu trong TCP Header
- Cung cấp chi tiết các tùy chọn để ghi nhận sự kiện hệ thống
- Cung cấp kỹ thuật NAT
- Có khả năng ngăn chặn một số cơ chế tấn công theo kiểu DoS
1.3 Xử lý gói trong iptables
Tất cả mọi gói dữ liệu đều được kiểm tra bởi iptables bằng cách dùngcác bảng tuần tự xây dựng sẵn Có 3 loại bảng này gồm:
- Mangle: chịu trách nhiệm thay đổi các bits chất lượng dịch vụ trong TCPheader như TOS (type of service), TTL (time to live), và MARK
Trang 212 Triển khai dịch vụ Iptables trên Linux:
2.1 Kiểm tra iptables đã được thiết lập chưa:
$ sudo iptables –L –v
Qua trên, ta thấy chưa có lệnh nào được áp dụng, iptables chia làm 3nhóm với 3 kiểu quy tắc:
- Input: áp dụng cho các kết nối đi vào
- Forward: áp dụng cho các kết nối đã được trỏ đến một vị tríkhác
- Output: áp dụng cho các kết nối đi ra từ một máy chủ
2.2 Thiết lập các lệnh:
Xoá cấu hình tường lửa cài sẵn:
$ sudo iptables -F
Mặc định drop tất cả các gói tin bên ngoài vào mạng:
$ sudo iptables –P INPUT DROP
Không cho phép ping ra bên ngoài:
$ sudo iptables –A OUTPUT –p icmp –icmp-type echo-request –j DROP
Không cho phép bên ngoài ping tới:
$ sudo iptables –A INPUT –p icmp –icmp-type echo-request –j REJECT
Không cho phép truy cập web:
$ sudo iptables –A INPUT –p tcp –dport 80 –j DROP
Cho phép truy cập vào hanu.vn:
$ sudo iptables –I INPUT –p tcp –d 113.171.23.52 - - dport 80 –j ACCEPT
Chặn giao thức FTP:
$ sudo iptables –A INPUT –p tcp –dport 21 –j DROP
Mở port 25 cho phép gửi SMTP Mail ra bên ngoài:
$ sudo iptables -A INPUT -p tcp -m tcp dport 25 -j ACCEPT
$ sudo iptables –I INPUT –s 192.168.100.100 –j DROP
$ sudo iptables –A OUTPUT –d 192.168.2.0/24 –j DROP
Lưu các rules đã thiết lập ra 1 file:
Trang 22$ sudo iptables-save > iptables-rules.txt
Sau này có thể nạp các rules đã thiết lập sẵn từ file đã lưu:
$ sudo iptables-restore < iptables-rules.txt
Test thử rules
Trang 23DANH MỤC TÀI LIỆU THAM KHẢO:
1 Bài giảng Linux và phần mềm mã nguồn mở, Ths Bành Thị Quỳnh Mai
2 Giáo trình Linux và phần mềm mã nguồn mở, Hà Quốc Trung
3 Bài giảng Linux và phần mêm mã nguồn mở, aseancu.org
4 04-lts/
https://www.ostechnix.com/install-and-configure-dns-server-ubuntu-16-5 and-configure-dns
https://sites.google.com/site/dhnhanctu/home/system-manager/install-6 https://thachpham.com/linux-webserver/iptables-linux-toan-tap.html
7 http://vinadata.vn/virtual-host-apache-ubuntu-16-04-phan-1/
8 ubuntu-16-04/
http://nguyenhuuhoang.com/huong-dan-trien-khai-server-lamp-tren-9 https://www.sitecuatui.com/virtual-host-apache-ubuntu/
10 Iptables-Firewall.html