Tải bản đầy đủ (.docx) (23 trang)

Báo cáo BTL Linux và Phần mềm mã nguồn mở

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1012.74 KB, 23 trang )

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
HỌC PHẦN: LINUX VÀ PHẦN MỀM MÃ NGUỒN MỞ

GVHD
Sinh viên thực hiện
MSSV

: ThS. Bành Thị Quỳnh Mai
: Nguyễn Trung Anh
: 20150120

Hà Nội, T3/2017


2|

LINUX VÀ PHẦN MỀM MÃ NGUỒN MỞ

MỤC LỤC:

BÁO CÁO BÀI TẬP LỚN

GVHD: THS. BÀNH THỊ QUỲNH MAI


3|

LINUX VÀ PHẦN MỀM MÃ NGUỒN MỞ



LỜ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ủa
cá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ềm
UNIX.
Linux ngoài việc trao cho người sử dụng quyền sử dụng miễn
phí, còn có quyền sao chép, nghiên cứu, sửa đổi. Vì vậy, phần
mềm mã nguồn mở Linux ngày càng phát triển do có sự phát
triển của cả cộng đồng. Nước ta đang trong quá trình hội nhập
cù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ủa
nước ta đang có những bước tiến hoà cùng thế giới. Với mong
muốn có những hiểu biết chính xác về những vấn đề cơ bản cốt
lõi của phần mềm mã nguồn mở, bài báo cáo của em sẽ đề cập
tớ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ực
hiệ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ững
sai sót, rất mong nhận được sự đóng góp ý kiến từ thầy cô để bài
báo cáo của em được hoàn thiện hơn.


BÁO CÁO BÀI TẬP LỚN

GVHD: THS. BÀNH THỊ QUỲNH MAI


4|

BÁO CÁO BÀI TẬP LỚN

LINUX VÀ PHẦN MỀM MÃ NGUỒN MỞ

GVHD: THS. BÀNH THỊ QUỲNH MAI


5|

LINUX VÀ PHẦN MỀM MÃ NGUỒN MỞ

NỘI DUNG BÁO CÁO:
Phần 1: Triển khai dịch vụ DNS trên Ubuntu

1.
1.1.

Tổng quan về DNS.
Khái niệm:
Domain Name System (DNS) một hệ thống cho phép thiết lập tương

ứng giữa địa chỉ IP và tên miền trên Internet.
Hệ thống tên miền (DNS) về căn bản là một hệ thống giúp cho việc

chuyển đổi các tên miền mà con người dễ ghi nhớ (dạng ký tự, ví dụ
www.example.com) sang địa chỉ IP vật lý (dạng số, ví dụ 123.11.5.19) tương
ứng của tên miền đó. DNS giúp liên kết với các trang thiết bị mạng cho các
1.2.

mục đích định vị và địa chỉ hóa các thiết bị trên Internet.
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ông
qua 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ột
DNS server. Các DNS giúp người sử dụng chỉ cần nhớ "tên", không cần phải
nhớ đị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ạng cây, chứ
nhiều nốt (node); mỗi nốt sẽ có một nhãn và có không hoặc nhiều resource



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ách nhau bởi
dấu chấm (.), ví dụ nhom50120.com. Tên miền còn được chia theo cá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.
BÁO CÁO BÀI TẬP LỚN


GVHD: THS. BÀNH THỊ QUỲNH MAI


6|


LINUX VÀ PHẦN MỀM MÃ NGUỒN MỞ

Máy chủ tên miền (name servers) chứa thông tin lưu trữ của không gian 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ỗi mộ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ó hai dạ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

-

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

BÁO CÁO BÀI TẬP LỚN

GVHD: THS. BÀNH THỊ QUỲNH MAI


7|

LINUX VÀ PHẦN MỀM MÃ NGUỒN MỞ

2.4.
Cấu hình DNS phân giải thuận
- Cấu hình file named.conf.local:

và nghịch:

$ nano /etc/bind/named.conf.local

BÁO CÁO BÀI TẬP LỚN

GVHD: THS. BÀNH THỊ QUỲNH MAI


8|

-

LINUX VÀ PHẦN MỀM MÃ NGUỒN MỞ

Cấu hình file db.nhom50120.com.
$ cp /etc/bind/db.local /etc/bind/db.nhom50120.com
$ nano /etc/bind/db.nhom50120.com

-

Cấu hình file db.192:
$ cp /etc/bind/db.127 /etc/bind/db.192
$ gedit /etc/bind/db.192

2.5.

Khởi động lại dịch vụ bind9 và khởi động lại máy tính
$ systemctl restart bind9

BÁO CÁO BÀI TẬP LỚN

GVHD: THS. BÀNH THỊ QUỲNH MAI


9|
2.6.

LINUX VÀ PHẦN MỀM MÃ NGUỒN MỞ

Kiểm tra DNS server đã hoạt động chưa

$ dig nhom50120.com
$ nslookup 192.168.1.123
$ nslookup nhom50120.com

BÁO CÁO BÀI TẬP LỚN

GVHD: THS. BÀNH THỊ QUỲNH MAI


10 |

LINUX VÀ PHẦN MỀM MÃ NGUỒN MỞ

Phần 2: Triển khai Web server.

1.
1.1.

Tổng quan về Web server
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ầu
thông qua http - một giao thức mạng cơ bản được sử dụng để phân phối thông
tin 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ác
trang web cho khách hàng . Giao tiếp giữa máy khách và máy chủ diễn ra bằng

cách sử dụng Giao thức truyền siêu văn bản (HTTP – Hypertext Transfer
Protocol) . Các trang được phân phối thường là tài liệu HTML , có thể bao
gồ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

Triển khai Name-base Web Server
Tạo Virtual Host File
2.2.

-

$ sudo nano /etc/apache2/sites-available/nhom50120.com.conf
BÁO CÁO BÀI TẬP LỚN

GVHD: THS. BÀNH THỊ QUỲNH MAI


11 |

-

LINUX VÀ PHẦN MỀM MÃ NGUỒN MỞ

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

-

Kiểm tra bằng Web Browser (Firefox)

BÁO CÁO BÀI TẬP LỚN

GVHD: THS. BÀNH THỊ QUỲNH MAI


12 |

LINUX VÀ PHẦN MỀM MÃ NGUỒN MỞ

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ủa server:
2.3.

-

$ sudo nano /etc/apache2/sites-available/nhom50120.com.conf

-

Test IP-based Web Server


BÁO CÁO BÀI TẬP LỚN

GVHD: THS. BÀNH THỊ QUỲNH MAI


13 |

LINUX VÀ PHẦN MỀM MÃ NGUỒN MỞ

Triển khai HTTPS Web Server
Kích hoạt SSL Module và khởi động lại apache2:
2.4.

-

$ 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

BÁO CÁO BÀI TẬP LỚN

GVHD: THS. BÀNH THỊ QUỲNH MAI


14 |

LINUX VÀ PHẦN MỀM MÃ NGUỒN MỞ

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
2.5.

-

$ sudo nano /etc/bind/db.nhom50120.com

-

Vào trình duyệt và kiểm tra:


BÁO CÁO BÀI TẬP LỚN

GVHD: THS. BÀNH THỊ QUỲNH MAI


15 |

LINUX VÀ PHẦN MỀM MÃ NGUỒN MỞ

Cài đặt User Directory trên Web Server
Bật userdir Module:
2.6.

-

$ 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:

BÁO CÁO BÀI TẬP LỚN


GVHD: THS. BÀNH THỊ QUỲNH MAI


16 |

LINUX VÀ PHẦN MỀM MÃ NGUỒN MỞ

Phầ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 email 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 “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 đó email sẽ được gửi đến một MDA phù hợp để gửi e-mail đó. Các MTA thường

2.

đượ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ửi email đến đích thực sự.
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

Sau câu lệnh thứ 3, tuỳ chọn y với mọi yêu cầu xác nhận hiện ra.
Ví dụ test gửi mail tới người dùng “”
Tạo người dùng với tên “trung”:
2.2.

-

$ sudo adduser trung
-

Test mail với thư gửi tới
$

echo

“TEST

MAIL

SERVICE”

|

/usr/lib/sendmail


–v



BÁO CÁO BÀI TẬP LỚN

GVHD: THS. BÀNH THỊ QUỲNH MAI


17 |

-

LINUX VÀ PHẦN MỀM MÃ NGUỒN MỞ

Kiểm tra hòm thư của người dùng “trung”
$ sudo cat /var/mail/trung

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
2.3.

-

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


BÁO CÁO BÀI TẬP LỚN

GVHD: THS. BÀNH THỊ QUỲNH MAI


18 |
-

LINUX VÀ PHẦN MỀM MÃ NGUỒN MỞ

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:” “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:
define(`SMART_HOST',`smtp.gmail.com')dnl
define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl
define(`ESMTP_MAILER_ARGS', `TCP $h 587')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5
CRAM-MD5 LOGIN PLAIN')dnl
FEATURE(`authinfo',`hash /etc/mail/auth/auth-info')dnl
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN
PLAIN')

+ Lưu file và tạo ra file sendmail.cf:
$ cd /etc/mail
$ m4 sendmail.mc > sendmail.cf
-

Bước 4: Khởi động lại dịc vụ sendmail:
$ sudo systemctl restart sendmail

-

Bước 5: Test mail:
$ echo “TEST G-MAIL” | /usr/lib/sendmail –v

BÁO CÁO BÀI TẬP LỚN

GVHD: THS. BÀNH THỊ QUỲNH MAI


19 |


BÁO CÁO BÀI TẬP LỚN

LINUX VÀ PHẦN MỀM MÃ NGUỒN MỞ

GVHD: THS. BÀNH THỊ QUỲNH MAI


20 |

LINUX VÀ PHẦN MỀM MÃ NGUỒN MỞ

Phầ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ất

nhỏ và tiện dụng, Iptables do Netfilter Organiztion viết ra để tăng tính năng
bả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ùng

cá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 TCP
header như TOS (type of service), TTL (time to live), và MARK.
Filter: chịu trách nhiệm lọc gói dữ liệu. Nó gồm có 3 quy tắc nhỏ (chain)
để giúp bạn thiết lập các nguyên tắc lọc gói:
+ Forward chain : lọc gói khi đi đến đến các server khác.
+ Input chain : lọc gói khi đi vào trong server.
+ Output chain: lọc gói khi ra khỏi server.
NAT: gồm có 2 loại:
+ Pre-routing chain: thay đổi địa chỉ đến của gói dữ liệu khi cần thiết.
+ Post-routing chain: thay đổi địa chỉ nguồn của gói dữ liệu khi cần thiết.

BÁO CÁO BÀI TẬP LỚN

GVHD: THS. BÀNH THỊ QUỲNH MAI


21 |

2.
2.1.

LINUX VÀ PHẦN MỀM MÃ NGUỒN MỞ

Triển khai dịch vụ Iptables trên Linux:
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 3

nhó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ủ.
Thiết lập các lệnh:
Xoá cấu hình tường lửa cài sẵn:

2.2.


$ 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



Chặn 1 IP:
$ sudo iptables –I INPUT –s 192.168.100.100 –j DROP



Chặn 1 mạng:
$ sudo iptables –A OUTPUT –d 192.168.2.0/24 –j DROP



Lưu các rules đã thiết lập ra 1 file:
$ sudo iptables-save > iptables-rules.txt


BÁO CÁO BÀI TẬP LỚN

GVHD: THS. BÀNH THỊ QUỲNH MAI


22 |



LINUX VÀ PHẦN MỀM MÃ NGUỒN MỞ

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

BÁO CÁO BÀI TẬP LỚN

GVHD: THS. BÀNH THỊ QUỲNH MAI


23 |

LINUX VÀ PHẦN MỀM MÃ NGUỒN MỞ

DANH 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/
/>
6.
7.
8.

and-configure-dns
/> /> />
ubuntu-16-04/
9. />10.
/>
BÁO CÁO BÀI TẬP LỚN

GVHD: THS. BÀNH THỊ QUỲNH MAI



×