Upload
linh-barbie
View
72
Download
0
Embed Size (px)
Citation preview
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
P a g e | 2
Lời mở đầu
P a g e | 3
Mục lục
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.
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ỉ
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).
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ý.
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
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;
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.
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
;
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
;
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
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.
P a g e | 15
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.
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.
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.
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.
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
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
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/
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.
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
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
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
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ả.
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
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.
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/
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
P a g e | 32
Điều này chứng tỏ, Mail Server đã hoạt động chính xác.
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
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.
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:
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
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
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
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.
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
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.
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 /
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 .
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
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.
P a g e | 46
Kết quả như trên cho thấy, tường lửa đã hoạt động ổn định.