46
BÀI TẬP LỚN Nhập môn phần mềm mã nguồn mở và LINUX Giáo viên hướng dẫn: Bành Thị Quznh Mai Thành viên: Trần Nam Hiếu Đặng Quốc Khánh Nguyễn Anh Quang

BTL Linux Pro

Embed Size (px)

Citation preview

Page 1: BTL Linux Pro

BÀI TẬP LỚN

Nhập môn phần mềm mã

nguồn mở và LINUX

Giáo viên hướng dẫn: Bành Thị Quznh Mai

Thành viên: Trần Nam Hiếu

Đặng Quốc Khánh

Nguyễn Anh Quang

Page 2: BTL Linux Pro

P a g e | 2

Lời mở đầu

Page 3: BTL Linux Pro

P a g e | 3

Mục lục

Page 4: BTL Linux Pro

P a g e | 4

DNS Server

1. Khái niệm về DNS

- Mỗi máy tính, thiết bị mạng tham gia vào mạng Internet đều giao tiếp với nhau

bằng địa chỉ IP (Internet Protocol) . Để thuận tiện cho việc sử dụng và dễ nhớ ta

dùng tên (domain name) để xác định thiết bị đó. Hệ thống tên miền (Domain

Name System) được sử dụng để ánh xạ tên miền thành địa chỉ IP. Vì vậy, khi

muốn liên hệ tới các máy, chúng chỉ cần sử dụng chuỗi ký tự dễ nhớ (domain

name) như: www.microsoft.com, www.ibm.com..., thay vì sử dụng địa chỉ IP là

một dãy số dài khó nhớ.

- Ban đầu, khi DNS chưa ra đời, người ta sử dụng một file tên Host.txt, file này sẽ

lưu thông tin về tên host và địa chỉ của host của tất cả các máy trong mạng, file

này được lưu ở tất cả các máy để chúng có thể truy xuất đến máy khác trong

mạng. Khi đó, nếu có bất kz sự thay đổi về tên host, địa chỉ IP của host thì ta phải

cập nhật lại toàn bộ các file Host.txt trên tất cả các máy. Do vậy đến năm 1984

Paul Mockpetris thuộc viện USC’s Information Sciences Institute phát triển một hệ

thống quản lý tên miền mới lấy tên là Hệ thống tên miền – Domain Name

- Hệ thống tên miền này cũng sữ dụng một file tên host.txt, lưu thông tịn của tất

cả các máy trong mạng, nhưng chỉ được đặt trên máy làm máy chủ tên miền

(DNS). Khi đó, các Client trong mạng muốn truy xuất đến các Client khác, thì nó

chỉ việc hỏi DNS.

- Như vậy, mục đích của DNS là :

+ Phân giải địa tên máy thành địa chỉ IP và ngược lại.

+ Phân giải tên domain.

Page 5: BTL Linux Pro

P a g e | 5

- DNS là Domain Name System, dns là Domain Name Server chạy Domain Name

Service.

2. Cấu trúc hệ thống tên miền

- Hiện nay hệ thống tên miền được phân thành nhiêu cấp :

- Gốc (Domain root) : Nó là đỉnh của nhánh cây của tên miền. Nó có thể biểu diễn

đơn giản chỉ là dấu chấm "."

- Tên miền cấp một (Top-level-domain) : gồm vài kí tự xác định một nước, khu vưc

hoặc tổ chức. Nó đươc thể hiện là ".com" , ".edu" ….

- Tên miền cấp hai (Second-level-domain): Nó rất đa dạng rất đa dạng có thể là

tên một công ty, một tổ chức hay một cá nhân.

- Tên miền cấp nhỏ hơn (Subdomain) : Chia thêm ra của tên miền cấp hai trở

xuống thường được sử dụng như chi nhánh, phòng ban của một cơ quan hay chủ

đề nào đó.

3. DNS Server - Là một máy tính có nhiệm vụ làDNS Server, chạy dịch vụ DNS service.

- DNS Server là một cơ sở dữ liệu chứa các thông tin về vị trí của các DNS domain

và phân giải các truy vấn xuất phát từ các Client.

- DNS Server có thể cung cấp các thông tin do Client yêu cầu, và chuyển đến một

DNS Server khác để nhờ phân giải hộ trong trường hợp nó không thể trả lời được

các truy vấn về những tên miền không thuộc quyền quản l{ và cũng luôn sẵn sàng

trả lời các máy chủ khác về các tên miền mà nó quản l{. DNS Server lưu thông tin

của Zone, truy vấn và trả kết quả cho DNS Client.

- Máy chủ quản lý DNS cấp cao nhấtlà Root Server do tổ chức ICANN quản lý:

+ Là Server quản lý toàn bộ cấu trúc của hệ thống tên miền

+ Root Server không chứa dữ liệu thông tin về cấu trúc hệ thống DNS mà nó chỉ

Page 6: BTL Linux Pro

P a g e | 6

chuyển quyền (delegate) quản lý xuống cho các Server cấp thấp hơn và do đó

Root Server có khả năng định đường đến của một domain tại bất kì đâu trên

mạng.

Primary Server :

- Phân loại DNS Server :

- Được tạo khi ta add một Primary Zone mới thông qua New Zone Wizard.

- Thông tin về tên miền do nó quản l{ được lưu trữ tại đây và sau đó có thể được

chuyển sang cho các Secondary Server.

- Các tên miền do Primary Server quản l{ thì được tạo và sửa đổi tai Primary

Server và được cập nhật đến các Secondary Server.

Secondary Server :

- DNS được khuyến nghị nên sử dụng ít nhất là hai DNS Server để lưu cho mỗi một

Zone. Primary DNS Server quản lý các Zone và Secondary Server sử dụng để lưu

trữ dự phòng cho Primary Server. Secondary DNS Server được khuyến nghị dùng

nhưng không nhất thiết phải có.

- Secondary Server được phép quản l{ domain nhưng dữ liệu về tên miền

(domain), nhưng Secondary Server không tạo ra các bản ghi về tên miền (domain)

mà nó lấy về từ Primary Server.

- Khi lượng truy vấn Zone tăng cao tại Primary Server thì nó sẽ chuyển bớt tải sang

cho Secondary Server .Hoặc khi Primary Server gặp sự cố không hoạt động được

thì Secondary Server sẽ hoạt động thay thế cho đến khi Primary Server hoạt động

trở lại.

- Primary Server thường xuyên thay đổi hoặc thêm vào các Zone mới. Nên DNS

Server sử dụng cơ chế cho phép Secondary lấy thông tin từ Primary Server và lưu

trữ nó. Có hai giải pháp lấy thông tin về các Zone mới là lấy toàn bộ (full) hoặc chỉ

lấy phần thay đổi (incremental).

Page 7: BTL Linux Pro

P a g e | 7

Caching-only Server :

- Tất cả các DNS Server đều có khả năng lưu trữ dữ liệu trên bộ nhớ cache của

máy để trả lời truy vấn một cách nhanh chóng. Nhưng hê thống DNS còn có một

loại Caching-only Server.

- Loại này chỉ sử dụng cho việc truy vấn, lưu giữ câu trả lời dựa trên thông tin có

trên cache của máy và cho kết quả truy vấn. Chúng không hề quản lý một domain

nào và thông tin mà nó chỉ giới hạn những gì được lưu trên cache của Server.

- Lúc ban đầu khi Server bắt đầu chạy thì nó không lưu thông tin nào trong cache.

Thông tin sẽ được cập nhật theo thời gian khi các Client Server truy vấn dịch vụ

DNS. Nếu sử dụng kết nối mạng WAN tốc độ thấp thì việc sử dụng caching-only

DNS Server là giải

Stub Server :

- Là DNS Server chỉ chứa danh sách các DNS Server đã được authoritative từ

Primary DNS

- Sử dụng stub có thể tăng tốc độ phân giải tên và dễ quản lý.

4. DNS Zone :

- DNS Zone là tập hợp các ánh xạ từ host đến địa chỉ IP và từ IP đến host của một

phần liên tục trong một nhánh của domain..

- Thông tin của DNS Zones là những record gồm tên Host và địa chỉ IP được lưu

trong DNS Server, DNS Server quản lý và trả lời những yêu cầu từ Client liên quan

đến DNS Zones này.

- Hệ thống tên miền (DNS) cho phép phân chia tên miền để quản lý và nó chia hệ

thống tên miền thành Zone và trong Zone quản lý tên miền được phân chia

đó.Các Zone chứa thông tin vê miền cấp thấp hơn, có khả năng chia thành các

Zone cấp thấp hơn và phân quyền cho các DNS Server khác quản lý.

Page 8: BTL Linux Pro

P a g e | 8

- Zone file : Lưu thông tin của Zone, có thể ở dạng text hoặc trong Active

Dicrectory.

- Có 2 loại DNS Zone : Standard Primary Zone và Active Directory Integrated

Zones.

5. Resource Records :

- Là hệ thống cơ sở dữ liệu của DNS, được sử dụng để phục vụ cho quá trình trả

lời các truy vấn từ DNS Client.

Host A– Phân giải tên máy thành địa chỉ IP (IPv4)

MX – Chỉ đến mail Server trong domain.

CNAME (Alias) – Cho phép một host có thể có nhiều tên.

NS (Name Server)– Chứa địa chỉ IP của DNS Server cùng với các thông tin về

domain đó.

SOA (Start of Authority) – Bao gồm các thông tin về domain trên DNS Server.

SRV (Service) – Được sử dụng bởi Active Directory để lưu thông tin về vị trí của

Domain Controllers

AAAA Host – Phân giải tên máy thành địa chỉ IP (IPv6)

PTR (Pointer) – Phân giải địa chỉ IP thành tên máy.

6. Cài đặt và cấu hình BIND trên Linux

BIND là một DNS Server rất phổ biến trên Linux. Để cài đặt BIND, người dùng có

thể download và biên dịch từ mã nguồn, hoặc dùng các gói phần mềm có sẵn trên

hệ điều hành Linux. Ở đây, em sử dụng hệ điều hành CentOS.

Để thực hiện download gói BIND, ta dùng lệnh

yum install bind

Page 9: BTL Linux Pro

P a g e | 9

Một số máy tính không có gói bind-chroot. Nếu gặp trường hợp đấy, ta cài thêm

gói bind-chroot bằng câu lệnh

yum install bind-chroot

Thực hiện tạo file named.conf ở trong thư mục /var/named/chroot/etc/ với nội

dung như sau

options {

directory "/etc";

forwarders {208.67.222.222;};

};

zone "." {

type hint;

Page 10: BTL Linux Pro

P a g e | 10

file "/etc/root.db";

};

zone "hut.com" {

type master;

file "/var/named/hut.com.db";

};

zone "147.168.192.in-addr.arpa" {

type master;

file "/var/named/192.168.147.rev.db";

};

File này chỉ ra các zone , kiểu zone và nơi lưu trữ zone của DNS Server. Trong đó

zone “.” là zone root, được lưu ở thư mục /var/named/chroot/etc/, chứa địa chỉ

của 13 máy chủ server DNS trên thế giới. Tham số forwarders trong options chỉ tới

DNS khác. Khi DNS Server nhận được yêu câu phân giải tên miền không có trong

cơ sở dữ liệu, nó sẽ chuyển tiếp tới DNS 208.67.222.222.

Ta tạo file root.db trong thư mục /var/named/chroot/etc/ để chứa thông tin của

root.

; 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

;

; FORMERLY NS1.ISI.EDU

;

. 3600000 NS B.ROOT-

SERVERS.NET.

Page 11: BTL Linux Pro

P a g e | 11

B.ROOT-SERVERS.NET. 3600000 A

192.228.79.201

;

; FORMERLY C.PSI.NET

;

. 3600000 NS C.ROOT-

SERVERS.NET.

C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12

;

; FORMERLY TERP.UMD.EDU

;

. 3600000 NS D.ROOT-

SERVERS.NET.

D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90

;

; FORMERLY NS.NASA.GOV

;

. 3600000 NS E.ROOT-

SERVERS.NET.

E.ROOT-SERVERS.NET. 3600000 A

192.203.230.10

;

; FORMERLY NS.ISC.ORG

;

. 3600000 NS F.ROOT-

SERVERS.NET.

F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241

F.ROOT-SERVERS.NET. 3600000 AAAA

2001:500:2F::F

;

; FORMERLY NS.NIC.DDN.MIL

;

. 3600000 NS G.ROOT-

SERVERS.NET.

G.ROOT-SERVERS.NET. 3600000 A

192.112.36.4

;

; FORMERLY AOS.ARL.ARMY.MIL

;

Page 12: BTL Linux Pro

P a g e | 12

. 3600000 NS H.ROOT-

SERVERS.NET.

H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53

H.ROOT-SERVERS.NET. 3600000 AAAA

2001:500:1::803F:235

;

; FORMERLY NIC.NORDU.NET

;

. 3600000 NS I.ROOT-

SERVERS.NET.

I.ROOT-SERVERS.NET. 3600000 A

192.36.148.17

I.ROOT-SERVERS.NET. 3600000 AAAA

2001:7FE::53

;

; OPERATED BY VERISIGN, INC.

;

. 3600000 NS J.ROOT-

SERVERS.NET.

J.ROOT-SERVERS.NET. 3600000 A

192.58.128.30

J.ROOT-SERVERS.NET. 3600000 AAAA

2001:503:C27::2:30

;

; OPERATED BY RIPE NCC

;

. 3600000 NS K.ROOT-

SERVERS.NET.

K.ROOT-SERVERS.NET. 3600000 A

193.0.14.129

K.ROOT-SERVERS.NET. 3600000 AAAA 2001:7FD::1

;

; OPERATED BY ICANN

;

. 3600000 NS L.ROOT-

SERVERS.NET.

L.ROOT-SERVERS.NET. 3600000 A 199.7.83.42

L.ROOT-SERVERS.NET. 3600000 AAAA

2001:500:3::42

;

Page 13: BTL Linux Pro

P a g e | 13

; OPERATED BY WIDE

;

. 3600000 NS M.ROOT-

SERVERS.NET.

M.ROOT-SERVERS.NET. 3600000 A

202.12.27.33

M.ROOT-SERVERS.NET. 3600000 AAAA

2001:DC3::35

; End of File

Tiếp theo ta tạo file thông tin zone “thuận” (Forward lookup zone). Zone này dùng

để phân giải từ tên miền sang địa chỉ IP. Ở đây ta tạo file hut.com.db lưu trong

/var/named/chroot/var/named/

$ttl 1H

hut.com. IN SOA lpi-01.hut.com. hieutn.hut.com. (

1305740799

15M

10M

1D

1H )

hut.com. IN NS lpi-01.hut.com.

www.hut.com. IN CNAME lpi-01.hut.com.

mail.hut.com. IN MX 10 lpi-01.hut.com.

hut.com. IN A 192.168.147.100

Ở đây, các tham số NS,CNAME,MX, A chính là kiểu record trong DNS.

Đồng thời tạo ra một zone phân giải ngược từ địa chỉ IP sang tên miền. File này

tên là 192.168.147.rev.db. File này cũng được lưu trong

Page 14: BTL Linux Pro

P a g e | 14

/var/named/chroot/var/named/. Tên file ở đây cho biết phân giải ngược dải địa

chỉ 192.168.147.0

$ttl 1H

147.168.192.in-addr.arpa. IN SOA lpi-01.hut.com.

hieutn.hut.com. (

1305741391

15M

10M

1D

1H )

147.168.192.in-addr.arpa. IN NS lpi-01.hut.com

100.147.168.192.in-addr.arpa. IN PTR hut.com

Các tham số NS,PTR chính là các record của DNS Server. Nó cho biết địa chỉ

192.168.147.100 được phân giải thành tên miền lpi-01.hut.com.

Sau khi cấu hình các file xong, ta gõ lệnh service named start để bắt đầu

dịch vụ. Nếu có thông báo như dưới đây thì tức là quá trình cấu hình DNS thành

công

Ta kiểm tra dịch vụ DNS có hoạt động đúng không bằng lệnh nslookup

Nếu kết quả ra được như trên thì tức là DNS đã chạy thành công.

Page 15: BTL Linux Pro

P a g e | 15

Page 16: BTL Linux Pro

P a g e | 16

Web Server

1. Web Server là gì Để hiển thị tài liệu HTML, người sử dụng cần một phần mềm có thể hiểu được

ngôn ngữ HTML và hiển thị thành dạng mà người sử dụng có thể đọc được, phần

mềm đó được gọi là trình duyệt (web browser). Các tài liệu HTML cần được lưu

trữ ở các máy tính trong mạng và có khả năng cung cấp tài liệu HTML cho bất kì ai

yêu cầu, các máy tính đó được gọi là máy chủ Web ( Web Server).

2. Cơ chế hoạt động của một dịch vụ Web - Người sử dụng nhập một địa chỉ web hoặc kích hoạt liên kết tới web.

- Trình duyệt xác định máy chủ Web và gửi yêu cầu tới máy chủ chứa URL

- Máy chủ xác định vị trí vật lí của tài liệu dựa vào đường dẫn và tên. Nếu tìm

thấy thì trả lại cho trình duyệt. Nếu không thì trả lại một tài liệu báo lỗi.

Thông tin phản hồi được đóng gói trong gói tin HTTP.

- Trình duyệt nhận tài liệu HTML và hiển thị web. Trong quá trình hiển thị

web, nếu có yêu cầu thêm tài nguyên gì khác thì sẽ lặp lại bước 2.

3. Cấu hình Web Server trên Linux Web server trên Linux có 2 kiểu cấu hình. Một là sử dụng Apache Server có sẵn,

hai là sử dụng gói phần mềm XAMPP. Về cơ bản là hai cách như nhau, tuy nhiên

XAMPP đóng gói các gói PHP,apache,MySQL luôn trong phần mềm nên khi cài là

chạy được dịch vụ luôn mà không cần download thêm các gói khác. Ở đây, nhóm

em sẽ sử dụng 2 cách cấu hình Web Server.

Cài đặt Apache Server Một số bản Linux yêu cầu phải cài đặt thêm gói apache bằng câu lệnh

yum install apache2

Còn ở đây em sử dụng hệ điều hành CentOS Server nên đã tích hợp sắc gói

Apache.

Page 17: BTL Linux Pro

P a g e | 17

Để bật dịch vụ web server trên CentOS, ta sử dụng lệnh

service httpd start

Nếu kết quả trả về là OK thì tức là dịch vụ Web đã chạy thành công.

Để cấu hình Apache Server, ta sẽ cấu hình file httpd.conf, được lưu trong thư mục

/etc/httpd/conf/httpd.conf.

Trong file httpd.conf có một số thông tin cần phải lưu { như sau.

Giá trị của DocumentRoot cho biết đâu là thư mục gốc của web server. Như hình

trên, ta thấy Web Server có thư mục gốc là /var/www/html.

Giá trị của Directory tương tự DocumentRoot. Nếu ta không muốn sử dụng thư

mục mặc định là /var/www/html/ thì ta phải sửa đường dẫn ở cả 2 tham số

DocumentRoot và Directory.

Giá trị DirectoryIndex cho biết file mặc định sẽ chạy khi truy cập Web. Nếu ta cấu

hình chạy php, thì ta có thể thêm giá trị index.php vào dòng trên.

Page 18: BTL Linux Pro

P a g e | 18

Để thử xem Web Server chạy đúng không, ta tạo 1 file index.html trong thư mục

/var/www/html với nội dung như sau.

Chạy lệnh

service httpd restart

để khởi động lại dịch vụ.

Kết quả ta có được như sau

Trên đây là một số thông số cơ bản của 1 website, ngoài ra có một số tính năng

khác như Virtual Host hoặc Alias sẽ được trình bày dưới đây

Tạo ra một Alias Đầu tiên ta sẽ tìm hiểu về cách tạo ra một Alias cho Web Server.

Các thư mục trong thư mục gốc mặc định được hiểu là các thư mục trong đường

dẫn. Ví dụ ta tạo một thư mục tên là Admin trong thư mục /var/www/html thì

khi truy cập website, để vào thư mục Admin, ta gõ

http://192.168.147.100/Admin . Tuy nhiên, nếu ta muốn một thư mục khác

không nằm trong thư mục gốc thì ta cần tạo ra một Alias.

Page 19: BTL Linux Pro

P a g e | 19

Ta sẽ tạo một thư mục tên là Alias ở thư mục /var/www/ ( không nằm trong thư

mục gốc)

Tạo một file index.html chứa nội dung như sau :

Ta cấu hình Alias bằng cách thêm các dòng sau trong file httpd.conf

Alias /Alias/ "/var/www/Alias/"

<Directory "/var/www/Alias/">

Options Indexes MultiViews

AllowOverride None

Order allow,deny

Allow from all

</Directory>

Dòng đầu tiên chỉ ra rằng khi gõ /Alias thì sẽ dẫn tới thư mục /var/www/Alias.

Dòng thứ hai chỉ ra các thuộc tính của thư mục /var/www/Alias. Ở đây là cho

phép tất cả có quyền truy cập và không ghi đè lên thư mục.

Ta kiểm tra xem Alias có chạy đúng không.

Nếu kết quả trả về như trên tức là Alias đã chạy thành công.

Page 20: BTL Linux Pro

P a g e | 20

Tạo ra một Virtual Host Để lưu trữ nhiều website với nhiều tên miền khác nhau. Server sẽ căn cứ vào tên

miền yêu cầu trong URL để xác định vị trí vật lý của website. Các khai báo của

Virtual host có thể dựa trên tên miền hoặc dựa trên IP. Khi cấu hình một website

ảo, người quản trị cần lưu { tới:

- Tên miền hoặc địa chỉ IP

- Quản trị viên của website

- Thư mục gốc của website

Ta khai báo một website ảo bằng cách thêm các dòng sau vào file httpd.conf

<VirtualHost 192.168.147.100:80>

DocumentRoot /var/www/bkhn

ServerName bkhn.com

ServerAlias www.bkhn.com

</VirtualHost>

Đoạn cấu hình trên chỉ ra thư mục gốc của website có tên miền bkhn.com là ở thư

mục /var/www/bkhn. Vậy nên khi truy cậu www.bkhn.com thì sẽ được dẫn tới

thư mục /var/www/bkhn/

Kết quả như sau

Cài đặt Web Server bằng XAMPP

Tải XAMPP tại địa chỉ http://www.apachefriends.org/en/xampp-linux.html#374

Thực hiện giải nén XAMPP tại thư mục /opt/

Đổi tên thư mục htdocs thành một cái tên khác ( ở đây ta đổi thành htdocs1) và

tạo một thư mục htdocs mới

Page 21: BTL Linux Pro

P a g e | 21

Truy cập vào thư mục /opt/lampp. Khởi động dịch vụ Web bằng câu lệnh

./lampp start

Như vậy là Web server đã bắt đầu hoạt động. Để kiểm tra xem, XAMPP chạy

thành công hay chưa, ta sẽ thử cài đặt web Joomla.

Tải gói cài đặt Joomla_2.5.7-Stable-Full_Package.zip từ

http://www.joomla.org/download.html

Giải nén file trên vào thư mục /opt/lampp/htdocs/

Truy cập vào đường dẫn http://192.168.147.100/ để kiểm tra xem thành công hay

chưa

Page 22: BTL Linux Pro

P a g e | 22

Nếu nhận được kết quả trên, chứng tỏ máy đã chạy thành công XAMPP.

Để cấu hình thêm cho XAMPP các tính năng như Virtual Host hay Alias, ta cấu

hình file httpd.conf ở thư mục /opt/lampp/etc/

Page 23: BTL Linux Pro

P a g e | 23

Mail Server

1. Giới thiệu hệ thống email Hệ thống thư điện tử cung cấp một phương thức liên lạc hiệu quả bằng cách cung

cấp các dịch vụ như:

- Gửi nhận các thông báo thông qua webmail hoặc các chương trình email

client.

- Có thể gửi đính kèm tài liệu, các dữ liệu đa phương tiện.

- Có thể tích hợp các cơ chế xác thực bằng thực chữ kí số, chữ kí điện tử để

đảm bảo tính xác thực.

2. Các thành phần cơ bản của hệ thống email Một hệ thống thư điện tử gồm các thành phần sau

- Thành phần giao tiếp với các hệ thống email khác, được gọi là MTA (Mail

Transfer Agent), ví dụ: qmail,postfix,...

- Thành phần phân phối thư điện tử đến hòm mail của người dùng được gọi

là MDA ( Mail Deliver Agent). Ví dụ: procmail,...

- Thành phần giao tiếp người dùng được gọi là MUA (Mail User Agent), ví dụ

Outlook, thunderBird,..

- Thành phần quản lí truy cập của người sử dụng thông qua các giao thức

như POP3/IMAP thường được gọi là MAA (Mail Access Agent). Ví dụ

dovetcot

3. Các giao thức của hệ thống mail

SMTP – Simple Mail Transfer Protocol Đây là giao thức nòng cốt được thiết kế vận chuyển email một cách tin cậy. SMTP

dùng để trao đổi email giữa các thành phần:

- MUA,MTA,MDA : Để gửi nhận và phân phối email.

Page 24: BTL Linux Pro

P a g e | 24

- MX Server: Mail Exchange Server, máy chủ dịch vụ email

- DNS Server : Phân giải địa chỉ IP và tên miền

POP – Post Office Protocol Giao thức này được tạo ra vào năm 1984 như là một phương tiện tải email từ một

server đầu xa.

Quá trình hoạt động của POP:

Kết nối đến server. Nhận toàn bộ mail. Lưu cục bộ như mail mới. Xóa mail trong server. Ngắt kết nối.

Hành vi mặc định của POP là xóa mail khỏi server. Tuy nhiên, hầu hết chương trình khách chạy POP cũng cung cấp một tùy chọn cho phép để lại một bản sao mail tải về trên server.

Ưu điểm của POP

Là giao thức thời đầu, POP tuân theo một { tưởng đơn giản là chỉ một máy khách yêu cầu truy cập mail trên server và việc lưu trữ mail cục bộ là tốt nhất. Điều này dẫn tới những ưu điểm sau: Mail được lưu cục bộ, tức luôn có thể truy cập ngay cả khi không có kết nối Internet.

Kết nối Internet chỉ dùng để gửi và nhận mail. Tiết kiệm không gian lưu trữ trên server. Được lựa chọn để lại bản sao mail trên server. Hợp nhất nhiều tài khoản email và nhiều server vào một hộp thư đến.

IMAP – Internet Message Access Protocol IMAP được thiết kế năm 1986 để cho phép truy cập từ xa đến những email được

lưu trên một server đầu xa. Về cơ bản, sự khác nhau lớn nhất giữa hai giao thức

đó là POP tải email từ server về bộ nhớ cục bộ cố định trong khi IMAP để mail

Page 25: BTL Linux Pro

P a g e | 25

trên server và chỉ lưu đệm (lưu trữ tạm thời) email một cách cục bộ. Nói cách

khác, IMAP là một dạng của lưu trữ đám mây.

Hoạt động của IMAP như sau :

Kết nối đến server. Lấy nội dung được yêu cầu từ người dùng và lưu đệm cục bộ, chẳng hạn

như danh sách mail mới, tổng kết tin nhắn hay nội dung của những email được chọn lựa kỹ càng.

Xử l{ các biên tập từ người dùng, ví dụ như đánh dấu email là mail để đọc hay xóa…

Ngắt kết nối.

Ưu điểm của IMAP

Mail được lưu trên server đầu xa, tức có thể truy cập từ nhiều địa điểm khác nhau.

Cần kết nối Internet để truy cập mail. Xem nhanh hơn khi chỉ có các tiêu đề mail được tải về đến khi nội dung

được yêu cầu rõ ràng. Mail được dự phòng tự động trên server. Tiết kiệm không gian lưu trữ cục bộ. Vẫn cho phép lưu mail cục bộ.

4. Hệ thống Email Hệ thống thư điện tử gồm 2 thành phần chính là Mail Server và Mail Client.

- Mail Server: Máy chủ chứa mailbox của người sử dụng, mail server cũng là

máy chủ lafmnhieemj vụ giao tiếp để gửi nhận thư với các máy chủ bên

ngoài.

- Mail Client: Các chương trình hỗ trợ người sử dụng đọc soạn thảo và quản

l{ thư. Mail client thường tích hợp các giao thức SMTP,POP,IMAP giúp

người sử dụng có thể truy cập vào mail server để đọc, gửi hoặc tải thư về

máy.

- Mail Gateway: Máy chủ thư điện tử được sử dụng trong các mô hình của hệ

thống thư điện tử hiện đại ngày nay, mail gateway đứng ở bên ngoài vùng

Page 26: BTL Linux Pro

P a g e | 26

local, nhận thư và gửi về các mail server local tương ứng cũng như đóng vai

trò định tuyến để các mail server local này gửi thư ra các máy chủ khác bên

ngoài

5. Cấu hình Mail Server trên Linux

Cài đặt và cấu hình cơ bản Postfix Thực hiện cài đặt Postfix bằng yum

Cấu hình postfix thông qua file cấu hình /etc/postfix/main.cf

Trong file main.cf có các thông số sau cần cấu hình.

Myhostname chỉ ra tên miền của Mail Server, ở đây ta cấu hình là hut.com

Page 27: BTL Linux Pro

P a g e | 27

Mydomain chỉ ra tên miền của mail server, mặc định là đặt giống

myhostname.

Myorigin cũng tương tự, đặt giống myhostname

Inet_interface chỉ ra interface nào được dùng để nhận mail, ở đây ta chọn

là tất cả.

Mydestination chỉ ra mail được gửi đi đâu, ở đây ta cũng chọn tất cả.

Page 28: BTL Linux Pro

P a g e | 28

Mynetwork chỉ ra địa chỉ mạng được sử dụng của mail server, ở đây ta

thêm dải mạng 192.168.147.0/24.

Trên đây là các thông số cơ bản để cấu hình postfix, về cơ bản các cấu hình

trên là ta đã có thể sử dụng email. Tuy nhiên, để chạy thêm giao thức IMAP

cho người sử dụng, ta cài thêm gói phần mềm dovecot.

Để chạy dịch vụ postfix, ta gõ lệnh service postfix start

Cài đặt và cấu hình dovecot Thực hiện cài đặt dovecot bằng lệnh yum install dovecot

Cấu hình dovecot qua file dovecot.conf

Tìm đến dòng protocols và bỏ dấu #

Để chạy dịch vụ dovecot, ta gõ lệnh service dovecot start

Page 29: BTL Linux Pro

P a g e | 29

Cài đặt và cấu hình SquirrelMail Để đáp ứng nhu cầu truy cập email thông qua website, ta có thể sử dụng gói phần

mềm SquirrelMail

Thực hiện cài đặt SquirrelMail bằng lệnh yum install squirrelmail

Vào file /etc/squirrelmail/config.php để cấu hình.

Page 30: BTL Linux Pro

P a g e | 30

Ta sửa giá trị domain thành “hut.com” là tên miền của mail server. Lưu file lại.

Kiểm tra cấu hình Mail Server Ta tạo 2 user là user1 và user2 dùng để kiểm tra xem Mail Server có hoạt động

chính xác không. Đăng nhập webmail thông qua

http://192.168.147.100/webmail/

Page 31: BTL Linux Pro

P a g e | 31

Thực hiện gửi email.

Logout tài khoản user1 và đăng nhập user2

Ta thấy user2 đã nhận được mail gửi từ user1

Page 32: BTL Linux Pro

P a g e | 32

Điều này chứng tỏ, Mail Server đã hoạt động chính xác.

Page 33: BTL Linux Pro

P a g e | 33

Log files

1. Khái niệm về Log Trong quá trình hoạt động của hệ thống, cần thiết phải ghi chép, lưu trữ lại thông

tin về các hoạt động của hệ thống. Các thông tin này sẽ giúp ích cho việc giải

quyết sự cố, phát hiện sai sót, các hành động xâm nhập, tác động vào hệ thống. Vi

thế, về lý thuyết, bất cứ một thông tin nào về hoạt động hệ thống đều giúp ích

cho việc phát hiện và khắc phục sự cố. Các thông tin được lưu có thể chia ra các

loại sau:

- Thông tin về hoạt động của các thiết bị phần cứng.

- Thông tin hoạt động của kernel

- Thông tin hoạt động của các dịch vụ

- Thông tin hoạt động của các ứng dụng

- Thông tin các thao tác của người sử dụng.

Căn cứ vào mức độ quan trọng của thông tin, có thể chia ra các mức sau:

- Mức thông tin chi tiết : Thông tin chi tiết liên quan tới nội bộ của các tiến

trình

- Mức thông tin dịch vụ : Thông tin liên quan đến các hoạt động bình thường

của tiến trình

- Thông tin cảnh báo : Thông tin hoạt động bất thường của các tiến trình

- Thông tin báo lỗi : Thông tin về lỗi xảy ra trong tiến trình.

- Thông tin lỗi hệ thống : Thông tin lỗi nghiêm trọng trong các tiến trình hệ

thống, tất cả tiến trình trong hệ thống đều bị ảnh hưởng.

2. Cơ chế log trong Linux Trong Linux, log file được ghi chép theo cả 2 cách tiếp cận trên. Một só ophaanf

mềm độc lập như apache, posfix thực hiện ghi log file trực tiếp và tự quản lí. Một

số khác thì gửi thông báo đến một tiến trình quản lý chung là syslogd. Căn cứ vào

Page 34: BTL Linux Pro

P a g e | 34

cấu hình do quản trị viên thiêt lập, syslogd sẽ tiến hành lưu các thông tin xảy ra

vào cac tệp tương ứng.

Cơ chế trao đổi thông tin giữa các tiến trình được mô tả trong hình sau

Syslogd luôn chờ các thông báo từ các ứng dụng khác trên cổng 514. Sau khi nhận

được thông báo, căn cứ vào cấu hình của mình, syslogd lọc và ghi các thông báo

vào các tệp đầu ra phù hợp.

Page 35: BTL Linux Pro

P a g e | 35

Trên đây là file cấu hình của syslogd, được lưu ở /etc/syslog.conf . Cú pháp của

các trường thứ nhất có dạng xxx.yyy, trong đó xxx là nguồn của thông

báo(facility), yyy là mức độ ưu tiên xử lí của thông báo (priority). Linux phân ra các

loại facility sau:

- Auth: các thông báo liên quan bảo mật hệ thống.

- Authprive: Các thông báo liên quan đến kiểm soát truy cập.

- Daemon: các thông báo từ các tiến trình hệ thống và các chương trình chạy

thường trú.

- Kern: Thông báo từ kernel hệ điều hành

- Mark: Thông báo từ syslogd, đảm bảo thứ tự thời gian

- User: thông báo từ các ứng dụng.

- Local7: Thông báo do quá trình khởi động sinh ra

- * : Bất cứ thông báo nào.

- None: Không có thông báo nào.

Có 7 mức độ ưu tiên (priority) khác nhau của thông báo:

Page 36: BTL Linux Pro

P a g e | 36

- Debug: Các thông báo cho việc gỡ lỗi trong chương trình.

- Info: các thông tin về hoạt động bình thường của các tiến trình.

- Notice: Thông tin về các hoạt động bình thường.

- Warning: Cảnh báo có khả năng xảy ra lỗi. Thông thường đây là các thoogn

báo về các lỗi phần mềm tự xử lí được, tuy nhiên có thể ảnh hưởng tới các

tiến trình khác.

- Err: Có lỗi xảy ra, không xử lí được.

- Crit: Có lỗi nghiêm trọng xảy ra, không xử lí được, ảnh hưởng tới nhiều tiến

trình khác.

- Alert: Cảnh báo có lỗi nghiêm trọng xảy ra, không xử lí được, chắc chắn ảnh

hưởng tới đa số tiến tình khác.

- Emerg: Có lỗi nghiêm trọng xảy ra, không xử lí được, ảnh hưởng hoạt động

hệ thống.

Trường thứ 2 của mỗi dòng chỉ ra thao tác của syslog. Các thao tác có thể là :

- Ghi vào một tệp

- Chuyển đến một đường ống (để thực hiện lệnh khác)

- Chuyển đến một tệp thiết bị.

- Chuyển đến một máy tính ở xa.

- Hiển thị thông báo cho người sử dụng.

3. Các tệp log cần quan tâm /var/log/message: thông tin chung về hệ thống /var/log/auth.log: các log về xác thực /var/log/kern.log: các log về nhân của hệ điều hành /var/log/cron.log: các log về dịch vụ Crond (dịch vụ lập lịch chạy tự động) /var/log/maillog: Các log của máy chủ email /var/log/qmail/ : Thư mục log của phân mềm Qmail /var/log/httpd/: Thư mục log truy cập và lỗi của phần mềm Apache /var/log/lighttpd: Thư mục log truy cập và lỗi của phần mềm Lighttpd /var/log/boot.log : Log của quá trình khởi động hệ thống /var/log/mysqld.log: Log của MySQL /var/log/secure: Log xác thực /var/log/utmp hoặc /var/log/wtmp : file lưu bản ghi đăng nhập

Page 37: BTL Linux Pro

P a g e | 37

/var/log/yum.log: các log của Yum log files

4. Log file Rotation Phần lớn các distro sẽ cài đặt một cấu hình syslog mặc định cho bạn, bao gồm

logging to messages và các log files khác trong /var/log. Để ngăn cản những files

này ngày càng trở nên cồng kềnh và khó kiểm soát, một hệ thống quay vòng log

file (a log file rotation scheme) nên được cài đặt. Hệ thống cron đưa ra các lệnh

để thiết lập những log files mới, những file cũ được đổi tên bằng cách thay một

con số ở hậu tố. Với loại quay vòng này, /var/log/messages của ngày hôm qua sẽ

trở thành messages.1 của ngày hôm nay và một messages mới được tạo. Sự luân

phiên này được cấu hình cho một số lượng lớn các file, và các log files cũ nhất sẽ

được xoá khi sự luân phiên bắt đầu chạy.

Tiện ích thi hành rotation là logrotate. Lệnh này được cấu hình sử dụng cho một

hoặc nhiều files - được xác định bởi các tham số đi cùng. File cấu hình mặc định là

/etc/logrotate.conf. Nội dung file lograte.conf như sau:

# see "man logrotate" for details

# rotate log files weekly

weekly

# keep 4 weeks worth of backlogs

rotate 4

# create new (empty) log files after rotating old ones

create

# uncomment this if you want your log files compressed

Page 38: BTL Linux Pro

P a g e | 38

#compress

# RPM packages drop log rotation information into this

directory

include /etc/logrotate.d

# no packages own wtmp -- we'll rotate them here

/var/log/wtmp {

monthly

minsize 1M

create 0664 root utmp

rotate 1

}

/var/log/btmp {

missingok

monthly

minsize 1M

create 0600 root utmp

rotate 1

}

# system-specific logs may be also be configured here.

Trong ví dụ này, ta sẽ thấy :

Hệ thống sẽ quay vòng log files hàng tuần Lưu lại những thông tin logs đáng giá trong 4 tuần Sử dụng định dạng Ngày tháng thêm vào để làm hậu tố của log files Thông tin về sự quay vòng log của các gói RPM nằm trong /etc/logrotate.d rotation được thiết lập cho 2 files: /var/log/wtmp và /var/log/btmp

Page 39: BTL Linux Pro

P a g e | 39

Back up trong Linux

1. Tổng quan về các loại Back up Backup dữ liệu là một trong những công việc rất cơ bản từ những người sử

dụng bình thường sao lưu dữ liệu cá nhân đến các Network Admin sao lưu

hàng GB dữ liệu của doanh nghiệp.

Đây cũng là tác vụ bắt buộc nhằm đảm bảo an toan dữ liệu khi xảy ra các sự

cố như Virus phá hoại dữ liệu, hư hỏng phần cứng, bất cẩn dẫn đến xóa

nhầm data, thay đổi Server cần chuyển data từ Server cũ sang…nhờ backup

đầy đủ theo thời gian được sắp đặt (scheduling), cũng như chọn kiểu

backup phù hợp mà chúng ta có thể phục hồi kịp thời các dữ liệu này một

khi xảy ra các sự cố kể trên.

Loại

backup

Mô tả Ưu điểm Nhược điểm

Full backup Backup toàn bộ các Files

trong Folder mà bạn xác

định để backup.Tóm lại

đây là kiểu backup

thông thường

Dễ dàng xác định dữ

liệu để backup và phục

hồi.

Tốn thời gian và tốn

không gian lưu trữ dữ

liệu.

Page 40: BTL Linux Pro

P a g e | 40

Incremental

backup

Một xác lập để backup

những file có sự thay

đổi kể từ lần backup

cuối cùng (thuộc bất cứ

loại backup nào).

Mất ít thời gian và

không gian lưu trữ nhất.

Khi phục hồi lại mất khá

nhiều thời gian do cần

phải restore bản full

backup lần cuối cùng

trước, sau đó theo trình

tự tìm các incremential

backups của những ngày

sau đó để phục hồi.

Differential backup

Một xác lập để backup những file có sự thay đổi kể từ lần backup cuối cùng full backup.

Mất ít thời gian và không gian lưu trữ hơn so với một full backup; Khi phục hồi lại khá nhanh so với Incremential backup.

Thông tin backup còn bị lặp lại. Backup tốn nhiều thời gian hơn so với incremential backup.

2. Các công cụ hỗ trợ Backup trong Linux

- Tar

- Partimage

- Sbackup

- Fwbackups

- Bacula

- Rsync

- Mondorescue

- Simple Backup Solution

Page 41: BTL Linux Pro

P a g e | 41

- Amanda

- Arkeia Network Backup

- Back In Time

- Box Backup

- Kbackup

3. Sao lưu với câu lệnh Tar Cơ chế là dùng lệnh tar để nén tất cả các file ở thư mục / thành file backup.tgz và

khi phục hồi thì thực hiện ngược lại.

Thực hiện backup với lệnh tar

tar cvpzf backup.tgz --exclude=/proc --

exclude=/lost+found --exclude=/backup.tgz --

exclude=/mnt --exclude=/sys /

Giải thích: tar là chương trình mà chúng ta sử dụng, cvpzf là các tùy chọn mà

chúng ta cung cấp cho tar bao gồm các tùy chọn chính như c (create archive) là

tạo file nén lưu trữ, p (preserve permissions) là giữ lại permisssion của file và thư

mục và z (gzip) để nén file.

Tùy chọn --exclude= nghĩa là loại trừ các file hoặc thư mục mà chúng ta không

muốn backup. Ví dụ như --exclude=/home nghĩa là không backup các thư mục của

người dùng...

Khi đã backup xong, chúng ta sẽ có file backup ở đường dẫn /backup.tgz

Vào cuối quá trình backup, chúng ta có thể nhận được thông báo : Exiting with

failure status due to previous errors . Thông thường có thể bỏ qua lỗi không quan

trọng này.

Page 42: BTL Linux Pro

P a g e | 42

Có thể dùng lệnh backup dưới đây nếu không muốn định dạng nén là gzip mà là bzip2. Đơn giản chỉ cần thay tùy chọn z bằng j tar cvpjf backup.tar.bz2 --exclude=/proc --

exclude=/lost+found --exclude=/backup.tar.bz2 --

exclude=/mnt --exclude=/sys /

Để restore, ta dùng câu lệnh

tar xvpfz backup.tgz-C /

Page 43: BTL Linux Pro

P a g e | 43

Iptables

1. Định Nghĩa : Iptables do Netfilter Organiztion viết ra để tăng tính năng bảo mật trên hệ thống Linux. Iptables cung cấp các tính năng sau:

- 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 ( Denial Of Service )

Mặc định iptables đã được cài đặt sẵn trên CentOS.

Để bật dịch vụ iptables, ta gõ lệnh

Service iptables start

2.Cấu hình Iptables

- Có 2 cách cấu hình iptables. Một là cấu hình bằng dòng lệnh, hai là chỉnh sửa

file /etc/sysconfig/iptables .

Page 44: BTL Linux Pro

P a g e | 44

Cấu hình file /etc/sysconfig/iptables

Trên đây là nội dung file iptables. Mỗi dòng trong file là một rule.

Để cấu hình chặn không cho các máy tính khác ping tới, ta sửa dòng

RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT

Thành

RH-Firewall-1-INPUT -p icmp --icmp-type any -j DROP

Đoạn cấu hình trên có nghĩa là tất cả các gói tin ping từ bên ngoài tới đều sẽ bị

DROP. Giá trị INPUT cho biết luồng dữ liệu là từ bên ngoài vào. Giá trị -p cho biết

kiểu giao thức. Giá trị -j DROP thể hiện hành động của tường lửa khi gặp gói tin

khớp với các điều kiện được đưa ra.

Để kiểm tra tưởng lửa hoạt động tốt không, ta thực hiện ping tới 192.168.147.100

Page 45: BTL Linux Pro

P a g e | 45

2. Cấu hình bằng dòng lệnh Để cấu hình cấm ping từ máy khác tới bằng dòng lệnh, ta gõ

Iptables –A INPUT –p icmp –icmp-type echo-request –j

DROP

Cú pháp câu lệnh tương tự cú pháp trong file /etc/sysconfig/iptables. Giá trị -A

INPUT cho biết luồng dữ liệu đi từ bên ngoài vào, -p cho biết kiểu giao thức, -j cho

biết cách thức xử lí của tường lửa.

Để kiểm tra câu lệnh chạy được không, ta thử ping từ ngoài vào.

Page 46: BTL Linux Pro

P a g e | 46

Kết quả như trên cho thấy, tường lửa đã hoạt động ổn định.