Tải bản đầy đủ (.doc) (59 trang)

ĐỀ TÀI : GIẢI PHÁP XÂY DỰNG HỆ THỐNG MẠNG MÃ NGUỒN MỞ CHO DOANH NGHIỆP

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 (6.91 MB, 59 trang )

ĐẠI HỌC ĐÀ NẴNG

TRƯỜNG ĐẠI HỌC BÁCH KHOA

KHOA CÔNG NGHỆ THÔNG TIN
Tel. (84-511) 736 949, Fax. (84-511) 842 771
Website: E-mail:

LUẬN VĂN TỐT NGHIỆP KỸ SƯ
NGÀNH CÔNG NGHỆ THÔNG TIN
MÃ NGÀNH : 05115

ĐỀ TÀI :
GIẢI PHÁP XÂY DỰNG HỆ THỐNG MẠNG
MÃ NGUỒN MỞ CHO DOANH NGHIỆP
Mã số :

09TLT-022
09TLT-072

Ngày bảo vệ : 15/06/2011 - 16/06/2011

SINH VIÊN : Phan Vũ Kim Hùng
Trang Nguyễn Anh Vũ
LỚP
: 09TLT
CBHD
: PGS.TS. Phan Huy Khánh

ĐÀ NẴNG, 06/2011


1


LỜI CẢM ƠN
Trước hết, chúng con xin chân thành cảm ơn ba mẹ, những người đã có
công sinh thành, dưỡng dục chúng tôi đến ngày hôm nay.
Chúng tôi xin chân thành cảm ơn các thầy cô trong khoa Công nghệ
thông tin, các thầy cô giảng dạy tại trường Bách khoa Đà Nẵng đã truyền
đạt những kiến thức quý báu cho chúng tôi trong những năm học vừa qua.
Đặt biệt, chúng tôi xin chân thành cảm ơn thầy PGS.TS.Phan Huy Khánh
thuộc khoa Công nghệ Thông tin trường Đại học Bách khoa Đà Nẵng đã
tận tình, động viên và giúp đỡ chúng tôi trong suốt thời gian thực hiện đề
tài.
Chúng tôi xin chân thành cảm ơn anh Nguyễn Hồng Nhân và các anh
công tác tại phòng Tích hợp dữ liệu thuộc Trung tâm tin học – Văn phòng
UBND tp Đà nẵng đã giúp đỡ, tư vấn, hỗ trợ số liệu và tạo điều kiện thuận
lợi cho chúng tôi làm việc tại phòng thí nghiệm tích hợp dữ liệu trong thời
gian làm đề tài.
Cuối cùng, xin chân thành cảm ơn bạn bè đã giúp đỡ hỗ trợ thiết bị,
chia sẻ tài liệu cho chúng tôi trong quá trình nghiên cứu thực hiện đề tài
này.
Một lần nữa xin chân thành cảm ơn!

Đà Nẵng, ngày 05 tháng 06 năm 2011

LỜI CAM ĐOAN
Tôi xin cam đoan :
1 Những nội dung trong luận văn này là do tôi thực hiện dưới sự
hướng dẫn trực tiếp của thầy PSG.TS.Phan Huy Khánh
2 Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên

tác giả, tên công trình, thời gian, địa điểm công bố.
3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá,
tôi xin chịu hoàn toàn trách nhiệm.
Sinh viên,
Phan Vũ Kim Hùng, Trang Nguyễn Anh Vũ

MỤC LỤC


TỔNG QUAN ĐỀ TÀI....................................................................................7
.I Bối cảnh đề tài...............................................................................................................8
.II Mục đích.......................................................................................................................8
.III Hướng nghiên cứu.......................................................................................................9
.III.1. Hướng nghiên cứu............................................................................................9
.III.2. Dự kiến kết quả đạt được.................................................................................9

CƠ SỞ LÝ THUYẾT.....................................................................................10
.I Tường lửa(Firewall).....................................................................................................11
.I.1. Bảo vệ mạng máy tính bằng firewall................................................................11
.I.2. Gateway............................................................................................................11
.I.3. NAT động (Network Address Translation).......................................................12
.I.4. Đóng giả địa chỉ IP (masquerade)....................................................................13
.I.5. Pfsense Firewall................................................................................................13
.I.6. Netfilter/Iptable.................................................................................................14
.I.6.1. Tổng quan......................................................................................................14
.I.6.2. Cấu trúc bảng Iptable....................................................................................14
.I.6.3. Các thông số, lệnh thường gặp.....................................................................15
.II Quản lý tập trung với LDAP......................................................................................17
.II.1. Giao thức Lighweight Directory Access Protocol(LDAP).............................17
.II.1.1. Dịch vụ thư mục(Directory Service)............................................................17

.II.1.2. LDAP là gì?.................................................................................................17
.II.1.3. Phương thức hoạt động LDAP....................................................................18
.II.2. OpenLDAP......................................................................................................19
.III Dịch vụ chia sẻ tài nguyên mạng Samba..................................................................20
.III.1. Giao thức SMB(Server Message Block)........................................................20
.III.2. Dịch vụ Samba...............................................................................................20
.III.2.1. Tệp tin cấu hình..........................................................................................21
.III.2.2. Một số thông số được dùng trong tệp tin....................................................21

PHÂN TÍCH HỆ THỐNG VÀ GIẢI PHÁP...............................................25
.I Giới thiệu mạng Trung tâm tích hợp dữ liệu(TTTHDL).............................................25
.II Mô hình và chức năng mạng......................................................................................26
.II.1. Mô hình............................................................................................................26
.II.2. Phân tích chức năng........................................................................................26
.II.2.1. Vùng Hosting................................................................................................27
.II.2.2. Vùng truy cập...............................................................................................27
.II.2.3. Vùng LAN và ứng dụng................................................................................27
.II.2.4. Vùng dữ liệu.................................................................................................28
.II.3. Đánh giá...........................................................................................................28
.III Giải pháp...................................................................................................................29

XÂY DỰNG VÀ THỬ NGHIỆM HỆ THỐNG..........................................30
.I Yêu cầu hệ thống.........................................................................................................30
.I.1. Bảng phân chia địa chỉ IP.................................................................................30
.I.2. Yêu cầu phần cứng cho hệ thống......................................................................31
.I.3. Yêu cầu về phần mềm và các dịch vụ..............................................................31
.II Xây dựng hệ thống.....................................................................................................32
.II.1. Cài đặt pfsense : Phụ lục A.............................................................................32



.II.2. Cấu hình tường lửa..........................................................................................32
.II.2.1. Pfsense firewall............................................................................................32
.II.2.2. Iptables.........................................................................................................36
.II.3. Cấu hình và tạo user trong OpenLDAP..........................................................37
.II.3.1. Cấu hình OpenLDAP...................................................................................37
.II.3.2. Tạo user bằng LDAP Administrator............................................................40
.II.4. Cấu hình DHCP...............................................................................................48
.II.5. Cấu hình Samba...............................................................................................49
.III Kết quả đạt được.......................................................................................................50
.III.1. Kết nối VPN qua pfsense...............................................................................51
.III.2. Truy cập dữ liệu bằng tài khoản trên LDAP qua samba...............................53
.III.3. LDAP cung cấp cơ sở dữ liệu tài khoản phục vụ chat nội bộ.......................54

KẾT LUẬN.....................................................................................................55
TÀI LIỆU THAM KHẢO.............................................................................56
[1] Christopher M.Buechler and Jim Pingle. Definitive Guide to the pfSense Open Source
Firewall and Router Distribution. Publication date 2009.- Ebooks...............................56
[2] Nguyễn Hồng Thái. Cài đặt và cấu hình IPTABLES. – Ebooks..............................56
[3] Jelmer R. Vernooij, John H. Terpstra, and Gerald (Jerry) Carter. The Official Samba.
HOWTO anh Reference Guide. - Ebooks.......................................................................56
[4] M.B.G.Suranga De Silva. Installing and Configuring Samba.- Ebooks...................56
[5] VietHung soft group. Shell cơ bản. - Ebooks............................................................56
[6] Trang web :................................................................................................................56
/> />.........................................................................................................................................56
/> />.........................................................................................................................................56

PHỤ LỤC.......................................................................................................56


DANH MỤC HÌNH ẢNH

HÌNH 1: MÔ HÌNH TƯỜNG LỬA CƠ BẢN.............................................11
HÌNH 2: MÔ HÌNH NHIỆM VỤ GATEWAY............................................12
HÌNH 3: BẢNG NAT ĐỘNG.......................................................................12
HÌNH 4: BẢNG NAT ĐÓNG GIẢ ĐỊA CHỈ IP.........................................13
HÌNH 5: QUÁ TRÌNH LỌC VÀ XỬ LÝ GÓI TIN TRONG IPTABLES15
HÌNH 6: MÔ HÌNH HẾT NỐI GIỮA CLIENT/SERVER........................18
HÌNH 7: THAO TÁC TÌM KIẾM CƠ BẢN TRONG LDAP...................18
HÌNH 8: THÔNG ĐIỆP CLIENT GỞI CHO SERVER............................19
HÌNH 9: KẾT QUẢ TÌM KIẾM SERVER TRẢ VỀ CHO CLIENT.......19
HÌNH 10: QUÁ TRÌNH TRAO ĐỔI THÔNG TIN GIỮA 2 MÁY QUA
GIAO THỨC SMB........................................................................................20
HÌNH 11: SƠ ĐỒ KẾT HỢP GIAO THỨC SMB VÀ CÁC GIAO THỨC
KHÁC.............................................................................................................20
HÌNH 12: SƠ ĐỒ MẠNG TTTHDL............................................................26
HÌNH 13: MÔ HÌNH GIẢI PHÁP HỆ THỐNG MẠNG TẠI PHÒNG THÍ
NGHIỆM........................................................................................................29
HÌNH 14: RULE CẤM TẤT CẢ..................................................................33
HÌNH 15: MỞ CỔNG DỊCH VỤ DNS........................................................34
HÌNH 16: TẠO KHOẢNG THỜI GIAN TRONG SCHEDULES............34
HÌNH 17: TẠO RULE CÓ ADD SCHEDULE...........................................35
HÌNH 18: TẤT CÁC RULE ĐƯỢC ĐƯỢC ĐỊNH NGHĨA.....................36
HÌNH 19: MỞ FILE CẤU HÌNH BẰNG DÒNG LỆNH...........................37
HÌNH 20: CẤP QUYỀN CHO ROOTDN ADMIN VÀ ANONYMOUS...37
HÌNH 21: CẤU HÌNH SUFFIX VÀ ROOTDN..........................................38


HÌNH 22: KHỞI ĐỘNG DỊCH VỤ LDAP.................................................38
HÌNH 23: KẾT NỐI MÁY CHỦ BẰNG WINSCP.....................................39
HÌNH 24: TẠO FILE .LDIF.........................................................................39
HÌNH 25: TẠO ORGANNIZATION...........................................................39

HÌNH 26: IMPORT FILE LDAP VÀO DATABASE.................................40
HÌNH 27: THÔNG BÁO ADDING THÀNH THÔNG..............................40
HÌNH 28: XEM THÔNG TIN DATABASE................................................40
HÌNH 29: GIAO DIỆN LDAP ADMINISTRATOR...................................41
HÌNH 30: TẠO TÊN LDAP ADMIN...........................................................41
HÌNH 31: CUNG CẤP THÔNG TIN DÒ TIM BASE DN.........................42
HÌNH 32: CHỨNG THỰC THÔNG TIN USER........................................42
HÌNH 33: KẾT NỐI OPENLDAP...............................................................43
HÌNH 34: TẠO NEW ENTRY.....................................................................43
HÌNH 35: CHỌN PHƯƠNG THỨC CHO NEW ENTRY........................44
HÌNH 36: CHỌN ENTRY............................................................................44
HÌNH 37: ĐẶT TÊN CHO OU.....................................................................45
HÌNH 38: NHẬP THÔNG TIN CHO OU...................................................45
HÌNH 39: TẠO PERSON.............................................................................46
HÌNH 40: KHAI BÁO CN CHO ENTRY PERSON..................................46
HÌNH 41: KHÁI BÁO THÔNG TIN CHO ENTRY PERSON.................47
HÌNH 42: GIAO DIỆN THÔNG TIN OU VÀ PERSON VỪA TẠO........47
HÌNH 43: THÔNG TIN KIỂM TRA...........................................................48
HÌNH 44: FILE CẤU HÌNH DHCP............................................................49
HÌNH 45: CẤU HÌNH TRỎ ĐỊA CHỈ TỚI MÁY CHỦ LDAP................49
HÌNH 46: CẤU HÌNH FILE NSSWITCH.CONF......................................50
HÌNH 47: TẠO TÀI KHOẢN CHO LDAP................................................50
HÌNH 48: KHAI BÁO ĐỊA CHỈ IP CỦA PUBLIC CỦA HỆ THỐNG CẦN
VPN.................................................................................................................51
HÌNH 49: KHAI BÁO USER VÀ PASSWORK CHỨNG THỰC............51
HÌNH 50: XEM ĐỊA CHỈ IP VPN................................................................52
HÌNH 51: THỰC HIỆN PING THÀNH CÔNG VỚI MÁY TRONG MẠNG
NỘI BỘ...........................................................................................................52



HÌNH 52: KIỂM TRA FILE LOG PPTP VPN...........................................53
HÌNH 53: DÙNG TÀI KHOẢN TRÊN LDAP ĐỂ CHỨNG THỰC........53
HÌNH 54: KẾT QUẢ ĐĂNG NHẬP THÀNH CÔNG VÀO MÁY CHỦ
SAMBA...........................................................................................................54
HÌNH 55: CHƯƠNG TRÌNH CHAT SỬ DỤNG TÀI KHOẢN LDAP....54

TỔNG QUAN ĐỀ TÀI


.I

Bối cảnh đề tài

Sự phát triển không ngừng của công nghệ thông tin và internet đã và đang ảnh
hưởng sâu sắc đến mọi lĩnh vực trong đời sống kinh tế, văn hóa, xã hội của con
người. Công nghệ thông tin trở thành phương tiện chính để đảm bảo hiệu quả, năng
suất và tính cạnh tranh, làm giàu ý tưởng mới và phát triển ngày càng nhiều giá trị
mới trong các tổ chức, doanh nghiệp. Do đó đưa ứng dụng công nghệ thông tin vào
các tổ chức, doanh nghiệp là điều cốt yếu và cấp bách.
Hầu hết các doanh nghiệp đã ứng dụng CNTT vào việc quản lý, điều hành và phát
triển nguồn nhân lực, quản bá thương hiệu, tiếp thị, mở rộng thị trường…bằng các
phần mềm quen thuộc có trả phí hoặc dùng các phần mềm đã được bẻ khóa, hay các
phần thiết bị phần cứng với chi phí cao.
Nhưng sau cuộc khủng hoảng kinh tế đã ảnh hưởng không nhỏ đến ngân sách
dành dành riêng cho CNTT trong các tổ chức, doanh nghiệp. Bên cạnh đó, nhà cung
cấp cũng bắt đầu tăng lệ phí dành cho các phần mềm bản quyền, các quyết định xiết
chặt về vấn đề vi pham bản quyền phần mềm đã tạo nhiều áp lực từ chi phí cho CNTT
trong mỗi tổ chức, doanh nghiệp. Do đó, mã nguồn mở với nhiều….sẽ là giải pháp
hiệu quả và hấp dẫn cho các doanh nghiệp khi phải giải quyết bài toán: tăng hiệu quả
công việc với mức chi phí ít hơn cho CNTT

Bài toán đặt ra lúc này là tìm giải pháp xây dựng một hệ thống mạng đảm bảo
được các tính năng về bảo mật, độ ổn định trong quá trình vận hành mà vẫn đáp ứng
được các tiêu chí về chi phí, bản quyền...Bên cạnh đó, hệ thống phải đảm bảo tính
tương thích với hệ thống đã có sẵn. Cụ thể, hệ thống phải có những chức năng sau:
- Hệ thống tường lửa bảo mật cho thông tin, dữ liệu của doanh nghiệp.
- Quản lý tập trung các tài khoản người dùng tương tự như chức năng của
window server của microsoft
- Đảm bảo trong giai đoạn chuyển đổi từ sử dụng phần mềm nguồn đóng sang
sử dụng phần mềm nguồn mở, các máy ở phía client đang sử dụng nguồn đóng
vẫn tương tác được với hệ thống nguồn mở mới xây dựng.
- Cung cấp các dịch vụ, tiện ích trên hệ thống và cho người sử dụng trong doanh
nghiệp: dịch vụ phân giải tên miền(DNS), dịch vụ cấp phát ip động(DHCP),
cân bằng tải đường truyền(load balancing), chia sẻ dữ liệu trong mạng, chat
trong mạng nội bộ, email….

.II Mục đích
Trong bối cảnh trên, bằng những kiến thức đã học và sự hướng dẫn tận tình của
giáo viên, chúng tôi thực hiện đề tài này nhằm mục đích nghiên cứu những vấn đề
gặp phải khi xây dựng và vận hành hệ thống mạng cho doanh nghiệp. Từ đó chúng tôi


đưa ra những giải pháp khắc phục và cuối cùng là cụ thể hóa bằng việc xây dựng một
hệ thống mạng hoàn toàn bằng mã nguồn mở với đầy đủ các chức năng đáp ứng nhu
cầu sử dụng của một doanh nghiệp.

.III Hướng nghiên cứu
.III.1. Hướng nghiên cứu
Tìm hiểu mô hình hệ thống mạng của doanh nghiệp đang vận hành hiện nay.
Nghiên cứu những vấn đề gặp phải của doanh nghiệp khi sử dụng phần mềm nguồn
đóng.

Nghiên cứu lý thuyết về tính năng của các phần mềm nguồn mở để xây dựng hệ
thống. Cụ thể là các tính năng của tường lửa pfsense, iptables trong redhat, các dịch
vụ quản lý thư mục, tài khoản người dùng..v..v. phục vụ quá trình sử dụng của người
dùng trong hệ thống mạng..
Đưa ra các định hướng phát triển đề tài.

.III.2. Dự kiến kết quả đạt được
Với những công cụ và kiến thức tìm hiểu được, chúng tôi sẽ đưa ra những giải
pháp và xây dựng hệ thống mạng mã nguồn mở dành cho doanh nghiệp. Hệ thống sẽ
đáp ứng những chức năng như sau:
- Tính năng bảo mật: xây dựng hệ thống bảo mật tường lửa 2 lớp là pfsense và
iptable
- Cung cấp và phần giải ip: dịch vụ DNS, DHCP
- Cơ sở dữ liệu người dùng OpenLdap, quản lý và phân quyền tài khoản người
dùng LdapAmin
- Truy cập từ ngoài internet vào hệ thống: VPN
- Chia sẻ tài nguyên mạng: dịch vụ Samba
- Chat server Openfire, mail server.
- Hosting và webserver, hệ quản trị cơ sở dữ liệu MySQL
Với kết quả dự kiến đạt được, đề tài được tổ chức thành các chương cụ thể như
sau:
Chương 1: Cơ sở lý thuyết: giới thiệu tổng quan lý thuyết và công cụ xây dựng
đề tài.
Chương 2: Phân tích hệ thống và giải pháp: trong chương này chúng tôi trình bày
về phân tích hiện trạng , phân tích hệ thống mạng của doanh nghiệp và đưa ra giải
pháp hệ thống mạng mã nguồn mở.


Chương 3: Xây dựng và thử nghiệm hệ thống : trong chương này chúng tôi trình
bày về các bước xây dựng hệ thống và kết quả đạt được.


CHƯƠNG 1

CƠ SỞ LÝ THUYẾT


.I

Tường lửa(Firewall)

.I.1.

Bảo vệ mạng máy tính bằng firewall

Khi kết nối mạng máy tính nội bộ của mình (ví dụ mạng LAN) với mạng bên
ngoài (ví dụ mạng Internet), mọi tổ chức đều cài đặt các công cụ phần cứng, các phần
mềm và thiết lập các chính sách an toàn thông tin, trong đó xác định những dịch vụ
nào được sử dụng và bị cấm sử dụng trên mạng, cách thức sử dụng dịch vụ, xác lập
các hạn chế trong việc sử dụng những dịch vụ này. Mục tiêu của việc này là để bảo vệ
tài nguyên của hệ thống mạng nội bộ khỏi những hiểm hoạ từ mạng bên ngoài. Hệ
thống này gọi là Firewall.
Nói một cách khác, việc bảo vệ mạng bằng Firewall có nghĩa là sử dụng các công
cụ kỹ thuật để thiết lập các quy tắc bảo vệ mạng dựa trên chính sách an toàn thông tin
của tổ chức.

Hình 1: Mô hình tường lửa cơ bản

Firewall được chia làm 2 loại:
- Firewall cứng: được tích hợp sẵn trong các router
- Firewall mềm: do người quản trị cài đặt trên các server

Trong đề tài này chúng tôi tìm hiểu hai loại firewall mềm là firewall Pfsense và
Iptable.

.I.2.

Gateway

Thuật ngữ Gateway dùng để chỉ máy tính chuyên dụng nằm giữa mạng nội bộ của
tổ chức (mạng LAN) với bên ngoài (mạng Internet). Các yêu cầu của các máy tính
trong mạng nội bộ sẽ được chuyển ra ngoài thông qua máy tính Gateway, các gói tin
từ bên ngoài cũng thông qua Gateway rồi mới được chuyển tới máy tính trong mạng
nội bộ.


Hình 2: Mô hình nhiệm vụ gateway

.I.3.

NAT động (Network Address Translation)

NAT là một trong những kĩ thuật chuyển đổi địa chỉ IP (Network Address
Translation). Các địa chỉ IP nội bộ được chuyển sang IP NAT như sau:

Hình 3: Bảng NAT động

NAT Router đảm nhận việc chuyển dãy IP nội bộ 169.168.0.x sang dãy IP mới
203.162.2.x. Khi có gói liệu với IP nguồn là 192.168.0.200 đến router, router sẽ đổi IP
nguồn thành 203.162.2.200 sau đó mới gởi ra ngoài. Quá trình này gọi là SNAT
(Source-NAT, NAT nguồn). Router lưu dữ liệu trong một bảng gọi là bảng NAT động.
Ngược lại, khi có một gói dữ liệu gởi từ ngoài vào với IP đích là 203.162.2.200,

router sẽ căn cứ vào bảng NAT động hiện tại để đổi địa chỉ đích 203.162.2.200 thành
địa chỉ đích mới là 192.168.0.200. Quá trình này gọi là DNAT (Destination-NAT,
NAT đích). Liên lạc giữa 192.168.0.200 và 203.162.2.200 là hoàn toàn trong suốt
(transparent) qua NAT router. NAT router tiến hành chuyển tiếp (forward) gói dữ liệu
từ 192.168.0.200 đến 203.162.2.200 và ngược lại.


.I.4.

Đóng giả địa chỉ IP (masquerade)

NAT Router chuyển dãy IP nội bộ 192.168.0.x sang một IP duy nhất là
203.162.2.4 bằng cách dùng các số hiệu cổng (port-number) khác nhau. Chẳng hạn
khi có gói dữ liệu IP với nguồn 192.168.0.168:1204, đích 211.200.51.15:80 đến
router, router sẽ đổi nguồn thành 203.162.2.4:26314 và lưu dữ liệu này vào một bảng
gọi là bảng masquerade động.
Khi có một gói dữ liệu từ ngoài vào với nguồn là 221.200.51.15:80, đích
203.162.2.4:26314 đến router, router sẽ căn cứ vào bảng masquerade động hiện tại để
đổi đích từ 203.162.2.4:26314 thành 192.168.0.164:1204. Liên lạc giữa các máy trong
mạng LAN với máy khác bên ngoài hoàn toàn trong suốt qua router.

Hình 4: Bảng NAT đóng giả địa chỉ IP

.I.5.

Pfsense Firewall

Phần mềm Pfsense là một phần mềm hoàn toàn mã nguồn mở, được xây dựng dựa
trên freeBSD và giao thức Common Address Redundancy Protocol (CARP) của
FreeBSD được sử dụng như một tường lửa và định tuyến.

Pfsense Firewall là một trong những chức năng chính của Pfsense. Hỗ trợ lọc bởi
địa chỉ nguồi và địa chỉ đích, cổng nguồn hoặc cổng đích hoặc địa chỉ IP. Pfsense
Firewall cũng hỗ trợ chính sách định tuyến và có thể hoạt động trong các chế độ
bridge hoặc transparent, cho phép chỉ cần cài đặt pfsense ở giữa các thiết bị mạng mà
không cần đòi hỏi việc cấu hình bổ sung. Cũng giống như các phần mềm tưởng lửa
thương mại khác, pfsense firewall cung cấp tính năng WEBGUI để quản lý và cấu
hình trên giao diện web một cách dễ dàng.
Các tính năng cơ bản của pfsense firewall:
- Pfsense Aliases: cho phép bạn sử dụng nhóm các port, host, hay networks thay
thế thành một cái tên để tiện sử dụng trong quá trình tạo các rule của pfsense
firewall.


- Network Address Translation(NAT): cho phép kết nối nhiều máy tính từ
internet thông qua một ip public. Firewall pfsense cho phép triển khai dịch vụ
này đơn giản, tuy nhiên nếu trong mạng có nhiều địa chỉ IP public sẽ yêu cầu
cấu hình phức tạp hơn.
- Firewall Rules: là nơi định nghĩa, lưu trữ các rule(qui luật) của firewall
pfsense. Đây là chức năng quan trọng giúp cho người quản trị dễ dàng quản lý
hệ thống.
- Firewall Schedules: giúp cho người quản trị quản lý, quy định các rule hoạt
động theo một thời gian cụ thể được định nghĩa trước.
- Traffic shaper: Traffic Sharper giúp người quản trị theo dõi, quản lí băng thông
mạng dễ dàng và hiệu quả hơn. Trong đó, Traffic Shaping là phương pháp tối
ưu hóa kết nối Internet. Phương pháp này làm tăng tối đa tốc độ trong khi đảm
bảo tối thiểu thời gian trễ. Khi sử dụng những gói dữ liệu ACK được sắp xếp
thứ tư ưu tiên trong đường truyền tải lên, điều này cho phép tiến trình tải về
được tiếp tục với tốc độ tối đa.

.I.6.

.I.6.1.

Netfilter/Iptable
Tổng quan

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 từ chối dịch vụ DoS
Netfilter/Iptables gồm 2 phần là Netfilter ở trong nhân Linux và Iptables nằm
ngoài nhân. Iptables chịu trách nhiệm giao tiếp giữa người dùng và Netfilter, tiếp
nhận yêu cầu của người sử dụng và đẩy các luật của người dùng vào cho Netfiler xử
lí. Netfilter tiến hành lọc các gói dữ liệu ở mức IP. Netfilter làm việc trực tiếp trong
nhân, nhanh và không làm giảm tốc độ của hệ thống.
.I.6.2.

Cấu trúc bảng Iptable

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(queues). Có 3 loại bảng này gồm:
- Bảng Mangle: chịu trách nhiệm thay đổi các bít chất lượng dịch vụ trong TCP
header như TOS (type of service), TTL(time to live),..


- Bảng Filter: chịu trách nhiệm lọc gói dữ liệu. Gồm 3 quy tắc nhỏ(chain) để
giúp bạn thiết lập các nguyên tắc lọc gói gồm:

+ Forward chain: lọc gói tin khi đến đến các server khác
+ Input chain: lọc gói tin khi đi vào trong server
+ Output chain: lọc gói tin khi ra khỏi server
- Bảng NAT: gồm hai 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
Mỗi bảng gồm nhiều mắc xích (chain). Chain gồm nhiều luật (rule) để thao tác với
các gói dữ liệu. Rule có thể là ACCEPT (chấp nhận gói dữ liệu), DROP (thả gói),
REJECT (loại bỏ gói) hoặc tham chiếu (reference) đến một chain khác.

Hình 5: Quá trình lọc và xử lý gói tin trong iptables

.I.6.3.

Các thông số, lệnh thường gặp

a. Trợ giúp: để gọi trợ giúp trong Iptables sử dụng lệnh sau: $ man iptables
hoặc $ iptables --help.
Ví dụ: nếu bạn cần biết về các tùy chọn của match limit gõ lệnh:
$ iptables -m limit --help
b. Tùy chọn để chỉ định thông số
- Chỉ định tên table: -t <tên_table>, ví dụ -t filter, -t nat, .. nếu không chỉ định
table, giá trị mặc định là filter
- Chỉ đinh loại giao thức: -p <tên giao thức>, ví dụ -p tcp, -p udp hoặc -p ! udp
để chỉ định các giao thức không phải là udp
- Chỉ định card mạng vào: -i <tên_card_mạng_vào>, ví dụ: -i eth0.
- Chỉ định card mạng ra: -o <tên_card_mạng_ra>, ví dụ: -o eth0


- Chỉ định địa chỉ IP nguồn: -s <địa_chỉ_ip_nguồn>, ví dụ: -s 192.168.0.0/24

(mạng 192.168.0 với 24 bít mạng), -s 192.168.0.1-192.168.0.3 (các IP
192.168.0.1, 192.168.0.2, 192.168.0.3).
- Chỉ định địa chỉ IP đích: -d <địa_chỉ_ip_đích>, tương tự như –s
- Chỉ định cổng nguồn: --sport <cổng_nguồn>, ví dụ: --sport 21 (cổng 21),
--sport 22:88 (các cổng 22 .. 88), --sport :80 (các cổng <=80), --sport 22: (các
cổng >=22)
- Chỉ định cổng đích: --dport <cổng_đích>, ví dụ tương tự như –sport
c. Tùy chọn để thao tác với chain
- Tạo chain mới: iptables -N <tên_chain>
- Xóa hết các luật đã tạo trong chain: iptables -X <tên_chain>
- Đặt chính sách cho các chain “built-in” (INPUT, OUTPUT & FORWARD):
iptables -P <tên_chain_built-in> <tên policy (DROP hoặc ACCEPT)>, ví
dụ: iptables -P INPUT ACCEPT để chấp nhận các packet vào chain INPUT
- Liệt kê các luật có trong chain: iptables -L <tên_chain>
- Xóa các luật có trong chain (flush chain): iptables -F <tên_chain>
- Reset bộ đếm packet về 0: iptables -Z <tên_chain>
d. Tùy chọn thao tác với luật
- Thêm luật: -A (append)
- Xóa luật: -D (delete)
- Thay thế luật: -R (replace)
- Chèn thêm luật: -I (insert)
e. Các lệnh thông thường gặp
- Khởi động iptables: service iptables start
- Tắt iptables: service iptables stop
- Tái khởi động iptables: service iptables restart
- Xác định trạng thái iptables: service iptables status.


.II Quản lý tập trung với LDAP
.II.1. Giao thức Lighweight Directory Access Protocol(LDAP)

.II.1.1.

Dịch vụ thư mục(Directory Service)

Thư mục là một cơ sở dữ liệu đặt biệt được tối ưu cho việc đọc, liệt kê và tìm
kiếm thông tin. Thư mục biểu diễn thông tin dựa vào thuộc tính và hỗ trợ khả năng
lọc một cách hiệu quả. Thư mục thiết kế để đọc (read) nhiều hơn ghi (write) do đó
việc cập nhật trên thư mục chỉ đơn giản là thay đổi tất cả hay không thay đổi dữ liệu
tương ứng với việc có quyền hay không.
Mỗi dịch vụ thư mục có 5 tính chất sau:
- Dịch vụ thư mục có khả năng đáp ứng cao nhất cho việc đọc thông tin
- Dịch vụ thư mục hiện thực mô hình phân bố hoá việc lưu trữ thông tin
- Dịch vụ thư mục có thể mở rộng kiểu lưu trữ thông tin
- Dịch vụ thư mục có khả năng mở rộng việc tìm kiếm
- Dịch vụ thư mục thực hiện đồng bộ dữ liệu giữa các máy chủ thư
mục(Directory server) lỏng lẻo về tính nhất quán
.II.1.2.

LDAP là gì?

LDAP – Lighweight Directory Access Protocol – là một giao thức truy cập thư
mục và có thể xem LDAP là một dịch vụ thư mục. Có thể liệt kê những đặc điểm nổi
bật của giao thức này:
- Là một giao thức mạng cho phép truy nhập các thông tin trong một thư mục.
- Là mô hình thông tin cho phép xác định cấu trúc và đặc điểm của thông tin
trong thư mục.
- Không gian tên cho phép xác định cách các thông tin được tham chiếu và tổ
chức.
- Một mô hình các thao tác cho phép xác định cách tham chiếu và phân bố dữ
liệu

- Là một giao thức mở rộng, mô hình thông tin mở rộng.
LDAP không mô tả về cơ chế và nơi lưu trữ dữ liệu. LDAP server có thể sử dụng
bất cứ cơ sở dữ liệu nào thích hợp để lưu trữ dữ liệu. Điều này dẫn đến LDAP không
hỗ trợ giao dịch (transaction) và đặc tính khác của cơ sở dữ liệu và client sẽ không
bao giờ biết về cơ chế lưu trữ thông tin của server.
LDAP có khả năng cung cấp cơ chế đồng bộ dữ liệu giữa các server LDAP khác
nhau cùng cấu trúc cây thư mục và hỗ trợ cơ chế phân bố thư mục. LDAP định nghĩa


4 mô hình gồm: LDAP Informmation, LDAP Naming, LDAP Functional và LDAP
Security.
Các LDAP Server thường sử dụng như: Active Directory, OpenLDAP,
OpenDS...Trong đề tài này chúng tôi sử dụng LDAP Server OpenLDAP để triển khai
trên hệ thống.
.II.1.3.

Phương thức hoạt động LDAP

a. LDAP sử dụng giao thức client/server

Hình 6: Mô hình hết nối giữa client/server
Giao thức giao tiếp client/sever là một mô hình giao thức giữa một chương trình

client chạy trên một máy tính gởi một yêu cầu qua mạng đến cho một máy tính khác
đang chạy một chương trình sever (phục vụ).
Chương trình server này nhận lấy yêu cầu và thực hiện sau đó nó trả lại kết quả
cho chương trình client
Ý tưởng cơ bản của giao thức client/server là công việc được gán cho những máy
tính đã được tối ưu hoá để thực hiện công việc đó.
Một máy server LDAP cần có rất nhiều RAM(bô nhớ) dùng để lưu trữ nội dung

các thư mục cho các thao tác thực thi nhanh và máy này cũng cần đĩa cứng và các bộ
vi xử lý ở tốc độ cao.
b. LDAP là một giao thức hướng thông điệp
Do client và sever giao tiếp thông qua các thông điệp, Client tạo một thông điệp
(LDAP message) chứa yêu cầu và gởi nó đến cho server. Server nhận được thông điệp
và xử lý yêu cầu của client sau đó gởi trả cho client cũng bằng một thông điệp LDAP.

Hình 7: Thao tác tìm kiếm cơ bản trong LDAP


Nếu client tìm kiếm thư mục và nhiều kết quả được tìm thấy, thì các kết quả này
được gởi đến client bằng nhiều thông điệp.

Hình 8: Thông điệp Client gởi cho Server

Do nghi thức LDAP là giao thức hướng thông điệp nên client được phép phát ra
nhiều thông điệp yêu cầu đồng thời cùng một lúc. Trong LDAP, message ID dùng để
phân biệt các yêu cầu của client và kết quả trả về của server.

Hình 9: Kết quả tìm kiếm Server trả về cho Client

.II.2. OpenLDAP
OpenLDAP là phần mềm mã nguồn mở được phát triển bởi nhóm phát triển dự án
OpenLDAP có tên là OpenLDAP Foundation dựa trên nền LDAP server của Đại học
Michigan. OpenLDAP đáp ứng các đặc tả của giao thức LDAP phiên bản 3 (LDAP
v3).
Mã nguồn của Open LDAP được cung cấp miễn phí và có thể tải về từ địa chỉ web
site: . OpenLDAP chạy được trên nhiều hệ điều hành khác
nhau như Linux, Solarisc, Ms OS 10.2, và Windows (bản cho windows có sự cải
tiến).

Với mục tiêu trình bày ở trên, OpenLDAP sử dụng để xây dựng một dịch vụ thư
mục với các chức năng sau:
- Quản lý tập trung thông tin người dùng(username, password, email..)
- Quản lý đăng nhập với tài khoản tập trung tại server LDAP
- Quản lý tài nguyên dùng chung trên mạng(file, máy in..)


.III Dịch vụ chia sẻ tài nguyên mạng Samba
.III.1. Giao thức SMB(Server Message Block)
Giao thức SMB là một giao thức được sử dụng trong hệ thống mạng và các hệ
điều hành như là Windows 95 / 98 / ME, Windows NT, Windows 2000, IBM's OS/2,
NetWare 6,... SMB được sử dụng để điều khiển các phiên làm việc trong hệ thống
mạng về chia sẻ tập tin, máy in, trao đổi tin nhắn,... Nhận các yêu cầu từ các máy tính
trong hệ thống và trả lời lại các yêu cầu.

Hình 10: Quá trình trao đổi thông tin giữa 2 máy qua giao thức SMB

SMB có thể chạy được với nhiều giao thức khác nhau, sơ đồ sau cho thấy điều
này:

Hình 11: Sơ đồ kết hợp giao thức SMB và các giao thức khác

.III.2. Dịch vụ Samba
Samba là một công cụ hiệu quả cho người sử dụng mạng khi có cả hai hệ thống
Windows và Unix (linux) cùng tồn tại trên một mạng. Samba là công cụ được xây
dựng cho hệ thống Unix (Linux) hiểu giao thức SMB. Samba trong các phiên bản mới
( từ 3.0 trở lên) có thể cung cấp các dịch vụ sau:
- File server: dịch vụ chia sẻ tập tin, thư mục



- Printer server: dịch vụ in ấn trên mạng
- Primary domain controller: máy chủ miền, quản trị tập trung tài khoản và tài
nguyên
- Local Master Browser: máy chủ quản lý danh sách các máy tính trong cùng
một subnet trong hệ thống mạng
- Domain Master Browser: máy chủ quản lý danh sách các máy tính trong vùng
làm việc của chính nó
.III.2.1. Tệp tin cấu hình
Để cấu hình cho dịch vụ Samba, cần thiết lập các thông số trong tập tin smb.conf
được đặt tại thư mục “/etc/samba/”. Tập tin này là tập tin cấu hình chính, tạo các thiết
lập tổng thể cho máy Linux như vùng làm việc, chế độ bảo mật, chỉ ra các tập tin
được chia sẻ, quyền hạn được truy cập, giới hạn cho các địa chỉ IP được phép truy
cập,…
Nội dung trong tập tin bao gồm các dòng chú thích và các dòng chứa các thông số
cấu hình:
- Các dòng có ký tự “#” ở đầu là các dòng chú thích có tác dụng giới thiệu, diễn
giải ý nghĩa các thông số hoặc lời khuyên giúp cho việc cấu hình được dễ dàng
- Các dòng còn lại là các dòng chứa thông số cấu hình. Được viết theo cú pháp
sau: TênThôngSố = GiáTrịCủaThôngSố
Các thông số này được chia làm hai dạng: dạng thông số có giá trị đã được kích
hoạt và dạng thông số có giá trị ứng với nó chưa được kích hoạt.
Các thông số có giá trị ứng với nó chưa được kích hoạt là các thông số có đặt dấu
“;” ở đầu dòng. Đối với dạng thông số này, thường thì Samba sẽ sử dụng giá trị ngầm
định.
Ví dụ:
; local master = No - Giá trị ngầm định là Yes.
; os level = 33
- Giá trị ngầm định là 20.
Khi bỏ dấu “;” ở đầu dòng đi thì thông số này sẽ chuyển sang dạng thông số có
giá trị ứng với nó được kích hoạt.

Trong tập tin cấu hình, các giá trị được đặt trong cặp dấu “ [ ] ” là giá trị chỉ định
các vùng, thành phần hoặc có thể là khai báo tên tập tin được chia sẻ:
Ví dụ: [global], [homes], [printers], [Chiase],…
.III.2.2. Một số thông số được dùng trong tệp tin
Các thông số phục vụ cấu hình máy tính:
- workgroup: Là thông số xác định tên workgroup mà máy Linux tham gia vào
(nên đặt tên dưới dạng chữ hoa). Ví dụ: workgroup = TTTH


- netbios name: Tên của máy Linux để các máy khác có thể nhìn thấy trên
mạng. Ví dụ: netbios name = linux_smb
- server string: là thông số mô tả về máy Linux ở trên mạng.
Ví dụ: server string = May chu Linux Samba
- security: lựa chọn kiểu bảo mật trong chia sẻ dữ liệu. Linux có 4 kiểu bảo mật
+ USER: Người dùng phải có tài khoản để đăng nhập vào tài nguyên được
chia sẻ trên máy Linux (tài khoản lưu trong file passwd và smbpasswd).
Nếu lựa chọn mức bảo mật này (với điều kiện là thông số public = no), khi
người dùng truy cập vào máy Linux với tài khoản được chứng thực trên
máy Linux thì người dùng có thể truy cập được tất cả các tài nguyên được
phép mà không cần phải chứng thực lại
+ SHARE: Giống như mức bảo mật User, tuy nhiên người dùng muốn truy
cập vào tài nguyên nào trên máy Linux thì đều phải chứng thực lại.
+ SERVER: Samba sẽ nhờ một SMB Server (hoặc Server NT) khác để chứng
thực username và password trước khi cho phép truy cập tài nguyên của
máy Linux.
+ DOMAIN: Nếu chọn kiểu bảo mật này sẽ cho phép người dùng sử dụng tài
khoản trên máy chủ domain để truy nhập vào máy Linux. Lúc này cần có
thêm thông số password server như bên dưới.
- password server: nhập vào tên máy chủ domain. Hoặc có thể để giá trị * để
máy tự dò tìm máy chủ Domain.

Ví dụ:
security = domain
password server = Linux_domain
- encrypt passwords: Cho phép mã hóa mật khẩu hay không. Với các hệ điều
hành Windows thì các mật khẩu đều được chuyển sang dạng mã hóa, vì vậy để
mật khẩu mã hóa của Windows làm việc được với Samba thì phải đặt thông số
này bằng yes. Ví dụ: encrypt passwords = yes
- smb passwd file: chỉ định đường dẫn nơi lưu file chứa tài khoản Samba. Ví
dụ:
smb passwd file = /etc/samba/smbpasswd
Các thông số phục vụ cấu hình mạng:
- domain master: nếu đặt giá trị là Yes sẽ chỉ định máy chủ Samba trở thành
một Domain Master Browser, thông số này chỉ đặt yes trên một máy Samba
server trong cùng một vùng làm việc trong hệ thống mạng.
Ví dụ:

domain master = yes

- local master: nếu đặt giá trị là Yes sẽ chỉ định máy chủ Samba là một Local
Master Browser, thông số này cũng chỉ đặt yes trên một máy Samba server
trong cùng một subnet trong hệ thống mạng


Ví dụ:

local master = yes

- preferred master: nếu đặt giá trị là Yes sẽ chỉ định máy chủ Samba là một
Master Browser được ưu tiên cho vùng làm việc của chính nó, và cũng chỉ đặt
yes trên một máy Samba server trong cùng một vùng làm việc trong hệ thống

mạng.
Ví dụ:

preferred master = yes

- os level: thông số thiết lập mức ưu tiên trong vùng
Ví dụ:

os level = 33

- domain logons: nếu đặt giá trị là Yes sẽ chỉ định máy Linux trở thành Primary
Domain Controller.
- max log size: nếu trên mạng có máy truy cập vào máy Linux thì Samba sẽ tạo
ra một file là tênmáytruycập.log lưu vào trong thư mục /var/log/samba. Kích
thước của file này được xác định bằng thông số max log, tính bằng Kbyte. Khi
kích thước đạt đến giá trị giới hạn thì tập tin log sẽ quay vòng trở lại như ban
đầu lúc chưa sinh ra các giá trị. Nếu đặt giá trị là 0 thì tập tin log không có
giới hạn quay vòng.
Ví dụ:

max log size = 500

- max xmit: thiết lập tối đa các gói dữ liệu mà Samba sẽ thương lượng khi thực
hiện việc kết nối hay truyền dữ liệu. Tính bằng packet (gói).
Ví dụ:
max xmit = 65500 (nên đặt giá trị nhỏ thì tốt hơn nhưng
không nên nhỏ quá 2048)
- interfaces: thiết lập các Card mạng, bao gồm các cặp ip/netmask
Ví dụ:


192.168.1.1/255.255.255.0

- hosts allow: thông số này cho phép các địa chỉ IP nào được phép truy cập vào
máy Linux (mặc định không có thông số này thì tất cả địa chỉ IP đều được
phép)
Ví dụ:
hosts allow = 192.168.1 (tất cả ip thuộc 192.168.1 đều
truy cập được)
- deny hosts: ngược lại với thông số hosts allow.
Ví dụ:
deny hosts =192.168.1.10
không được phép truy cập máy Linux.

192.168.1.20 (các IP này

Các thông số thiết lập quyền hạn truy cập và thuộc tính của tệp tin chia sẻ:
- public: nếu thông số này bằng yes thì người dùng có thể dùng tài khoản được
định nghĩa ở guest account
Ví dụ:

public = yes


- guest account: tài khoản guest, có hiệu lực khi public = yes.
Ví dụ:

guest account = nobody

- create mask: thông số này thiết lập quyền hạn của tập tin được chép từ
Windows vào Linux

Ví dụ:
create mask = 0644
- directory mask: thiết lập quyền hạn của thư mục được chép từ Windows vào
Linux
Ví dụ:
directory mask = 0755
- path: chỉ ra đường dẫn thư mục trên máy Linux mà người dùng có quyền truy
cập
Ví dụ:
path = /home/chiase
- read only: thông số này nếu được đặt là No sẽ cho phép người dùng ngoài
quyền đọc còn được quyền thực thi sao chép. Nếu muốn người dùng chỉ được
quyền đọc thì chỉ cần bổ sung dấu “;” vào đầu dòng, không đặt giá trị này là
yes vì sẽ phát sinh lỗi cấu hình
Ví dụ:
read only = no ‘ Cho phép đọc, thực thi sao chép’
;read only = no ‘ Chỉ cho phép đọc’
- valid users: khai báo các user được phép truy cập, nếu là nhóm thì thêm dấu
@ trước tên nhóm
Ví dụ: cho phép user01 và nhóm admin được quyền truy cập. Giá trị
cách nhau bởi khoảng trắng hoặc dấu “,”:
valid users = user01 @admin
- browseable: có hiển thị chia sẻ này trên mạng không, nếu là No thì sẽ không
hiện, điều này tương tự như các share ẩn bên Windows
Ví dụ:
browseable = Yes
- writeable: cho phép ghi dữ liệu vào thư mục được chia sẻ
Ví dụ:
writeable = Yes



CHƯƠNG 2

PHÂN TÍCH HỆ THỐNG VÀ GIẢI PHÁP
.I

Giới thiệu mạng Trung tâm tích hợp dữ
liệu(TTTHDL)

Trung tâm tích hợp dữ liệu(TTTHDL) trực thuộc Trung tâm tin học – Văn phòng
UBND Đà Nẵng được thành lập dựa trên các quyết định trong “Đề án tin học hóa
quản lý hành chính Nhà Nước”. Phục vụ cho việc quản lý hành chính, thúc đầy phát
triển kinh tế của thành phố Đà Nẵng.
TTTHDL được kết nối trao đổi thông tin với mạng CPNET theo đường truyền
thông Leased-line tốc độ cao, kết nối với mạng tin học diện rộng thành phố Đà Nẵng
phục vụ nhu cầu cập nhật, khai thác, tra cứu dữ liệu của các sở ban ngành và quận,
huyện trực thuộc thành phố Đà Nẵng.


×