bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

63
ĐẠ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: itf.ud.edu.vn, E-mail: [email protected] BÁO CÁO THỰC TẬP TỐT NGHIỆP NGÀNH CÔNG NGHỆ THÔNG TIN MÃ NGÀNH : 05115 ĐỀ TÀI : TÌM HIỂU VÀ CẤU HÌNH IPTABLES TRÊN HỆ ĐIỀU HÀNH LINUX SINH VIÊN : LÃ XUÂN TÂM (11TLT) TRẦN CANH NGỌ ĐƠN VỊ : VDC Training CBHD : Th.s NGUYỄN SONG TÙNG ĐÀ NẴNG, 01/2013

Upload: hate-to-love

Post on 02-Jul-2015

187 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

ĐẠ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: itf.ud.edu.vn, E-mail: [email protected]

BÁO CÁO THỰC TẬP TỐT NGHIỆP

NGÀNH CÔNG NGHỆ THÔNG TIN

MÃ NGÀNH : 05115

ĐỀ TÀI :

TÌM HIỂU VÀ CẤU HÌNH IPTABLES TRÊN HỆ ĐIỀU

HÀNH LINUX

SINH VIÊN : LÃ XUÂN TÂM (11TLT)

TRẦN CANH NGỌ

ĐƠN VỊ : VDC Training

CBHD : Th.s NGUYỄN SONG TÙNG

ĐÀ NẴNG, 01/2013

Page 2: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

LỜI CẢM ƠN

Trong đợt thực tập vừa qua, chúng em đã nhận đƣợc sự huớng dẫn, giúp đỡ và

động viên tận tình từ nhiều phía. Tất cả những điều đó đã trở thành một động lực rất

lớn giúp chúng em có thể hoàn thành tốt mọi công việc đƣợc giao. Với tất cả sự cảm

kích và trân trọng, chúng em xin đƣợc gửi lời cảm ơn đến tất cả mọi ngƣời.

Trƣớc tiên cho chúng em đƣợc gửi lời cảm ơn đến Ban lãnh đạo Trung tâm đào

tạo VDC Training Đà Nẵng đã tạo điều kiện cho chúng em đƣợc tham gia thực tập tại

công ty cũng nhƣ cung cấp tất cả các cơ sở vật chất và trang thiết bị có thể cho chúng

em trong thời gian vừa qua. Xin cảm ơn thầy Th.s Nguyễn Song Tùng và các anh chị

trong công ty đã tận tình hƣớng dẫn giúp đỡ chúng em trong suốt thời gian em tham

gia thực tập.

Em cũng xin đƣợc gửi lời cảm ơn đến lãnh đạo trƣờng Đại học Bách Khoa Đà

Nẵng, lãnh đạo khoa Công nghệ thông tin đã tổ chức các buổi giao lƣu giửa các doanh

nghiệp và sinh viên thật sự bổ ích, giúp chúng em có cơ hội tìm đƣợc một đơn vị thực

tập tốt.

Xin đƣợc cảm ơn tất cả các sinh viên tham gia thực tập tại VDC Training Đà

Nẵng trong đợt thực tập vừa qua, những ngƣời đã luôn sát cánh cùng chúng mình, chia

sẻ, ủng hộ và giúp đỡ mình trong thời gian thực tập vừa qua.

Xin trân trọng cảm ơn!

Page 3: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

LỜI CAM ĐOAN

Tôi xin cam đoan :

1. Những nội dung trong báo cáo 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 Th.s Nguyễn Song Tùng.

2. Mọi tham khảo dùng trong báo cáo này đề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,

Lã Xuân Tâm

Trần Canh Ngọ

Page 4: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

NHẬN XÉT CỦA GIẢNG VIÊN HƢỚNG DẪN

..........................................................................................................................................

..........................................................................................................................................

..........................................................................................................................................

..........................................................................................................................................

..........................................................................................................................................

..........................................................................................................................................

..........................................................................................................................................

..........................................................................................................................................

..........................................................................................................................................

..........................................................................................................................................

..........................................................................................................................................

..........................................................................................................................................

..........................................................................................................................................

..........................................................................................................................................

..........................................................................................................................................

..........................................................................................................................................

..........................................................................................................................................

..........................................................................................................................................

..........................................................................................................................................

..........................................................................................................................................

..........................................................................................................................................

..........................................................................................................................................

Page 5: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

MỤC LỤC

MỞ ĐẦU ........................................................................................................................ 1

GIỚI THIỆU CHUNG ................................................................................................... 1

I. Giới thiệu về đơn vị thực tập ................................................................................... 1

II. Bối cảnh đề tài........................................................................................................ 4

III.Mục đích và ý nghĩa của đề tài .............................................................................. 5

IV.Nội dung của đề tài gồm 4 phần chính .................................................................. 6

CHƢƠNG 1 .................................................................................................................... 7

CÁC NHIỆM VỤ ĐƢỢC GIAO ................................................................................... 7

I.Tìm hiểu về đơn vị thực tập ..................................................................................... 7

II. Đề tài nghiên cứu ................................................................................................... 7

CHƢƠNG 2 .................................................................................................................... 9

CÁC CÔNG NGHỆ ĐÃ NGHIÊN CỨU ...................................................................... 9

I.TỔNG QUAN VỀ HỆ ĐIỀU HÀNH LINUX ......................................................... 9

I.1 Giới thiệu về hệ điều hành Linux ...................................................................... 9

I.2 Kiến trúc hệ điều hành Linux .......................................................................... 10

I.2.1 Hạt Nhân (kernel) ..................................................................................... 10

I.2.2 Shell .......................................................................................................... 11

I.2.3 Các tiện ích ............................................................................................... 12

I.2.4 Chƣơng trình ứng dụng ............................................................................. 12

I.3 Các đặc tính cơ bản của Linux ........................................................................ 12

I.3.1 Đa tiến trình .............................................................................................. 12

I.3.2 Tốc độ cao ................................................................................................. 13

I.3.3 Bộ nhớ ảo .................................................................................................. 13

Page 6: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

I.3.4 Sử dụng chung thƣ viện ............................................................................ 13

I.3.5 Sử dụng các chƣơng trình xử lý văn bản .................................................. 13

I.3.6 Sử dụng giao diện cửa sổ .......................................................................... 13

I.3.7 Network Information Service (NIS) ........................................................ 14

I.3.8 Lập lịch hoạt động chƣơng trình, ứng dụng.............................................. 14

I.3.9 Các tiện ích sao lƣu dữ liệu ....................................................................... 14

I.3.10 Hỗ trợ nhiều ngôn ngữ lập trình.............................................................. 14

I.4 Cấu trúc hệ thống tập tin/thƣ mục trong Linux ............................................... 15

I.5 Quản lý tài khoản và phân quyền trên Linux .................................................. 15

I.5.1 Quản lý tài khoản trong Linux .................................................................. 15

I.5.2 Phân quyền ngƣời dùng trên hệ thống tập tin ........................................... 16

I.6 Ƣu và nhƣợc điểm của hệ điều hành Linux ..................................................... 20

I.7 Một số bản phân phối(Distro) Linux phổ biến ................................................ 21

II. TỔNG QUAN VỀ FIREWALL ......................................................................... 27

II.1 Khái niệm tƣờng lửa(firewall) ....................................................................... 27

II.2. Chức năng của tƣờng lửa .............................................................................. 27

II.3. Phân loại tƣờng lửa ....................................................................................... 28

II.3.1 Packet Filtering ( tƣờng lửa lọc gói tin) .................................................. 28

II.3.2 Application firewall ( Tƣờng lửa ứng dụng ) .......................................... 29

II.3.3 Statefull Firewall (Tƣờng lửa trạng thái)................................................. 31

CHƢƠNG 3 .................................................................................................................. 32

TÌM HIỂU VỀ IPTABLES TRÊN HỆ ĐIỀU HÀNH LINUX .................................... 32

I.Giới thiệu về Iptables ............................................................................................. 32

I.1 Khái niệm Iptables ........................................................................................... 32

Page 7: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

I.2 Cài đặt Iptables ................................................................................................ 33

I.3 Cú pháp Iptables .............................................................................................. 33

I.4 Cấu trúc của Iptables ....................................................................................... 34

I.5 Quá trình chuyển dữ liệu qua Netfilter ............................................................ 36

I.6 Target và Jumps trong iptables ........................................................................ 39

I.7 Các tham số dòng lệnh thƣờng dùng trong iptables ........................................ 41

I.8 Sử dụng các chuỗi tự định nghĩa ..................................................................... 44

I.9 NAT trong iptables .......................................................................................... 45

I.10 Ví dụ về một số rule trên Iptables ................................................................. 47

II.Triển khái iptables trên Redhat ............................................................................. 48

II.1 Mô hình triển khai .......................................................................................... 48

II.2 Thiết lập iptables trên redhat .......................................................................... 48

II.2.1 Cấm ssh đến firewall ................................................................................... 48

II.2.2 Cấm Ping đến Firewall ................................................................................ 50

KẾT LUẬN .................................................................................................................. 53

TÀI LIỆU THAM KHẢO ............................................................................................ 54

Page 8: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

DANH MỤC HÌNH ẢNH , BẢNG BIỂU

Hình 2. 1 Kiến trúc hệ điều hành linux ........................................................................ 10

Hình 2. 2 Cấu trúc thƣ mục hệ thống của Linux .......................................................... 15

Hình 2. 3 Quyền trên tập tin ......................................................................................... 17

Hình 2. 4 Quyền đƣợc biểu diễn dƣới dạng số ............................................................. 18

Hình 2. 5 Red Hat ......................................................................................................... 22

Hình 2. 6 Debian .......................................................................................................... 23

Hình 2. 7 Ubuntu .......................................................................................................... 23

Hình 2. 8 Gentoo .......................................................................................................... 24

Hình 2. 9 Knoppix ........................................................................................................ 24

Hình 2. 10 Slackware ................................................................................................... 25

Hình 2. 11 Mô hình tƣởng lửa cơ bản .......................................................................... 27

Hình 2. 12 Packet Filtering .......................................................................................... 29

Hình 2. 13 Application firewall .................................................................................... 30

Hình 2. 14 Statefull Firewall ........................................................................................ 31

Hình 3. 1 Vị trí của Iptables ......................................................................................... 33

Hình 3. 2 Quá trình xử lý gói tin bảng filter ................................................................ 35

Hình 3. 3 Quá trình xử lý gói tin trong bảng NAT ....................................................... 35

Hình 3. 4 Quá trình xử lý gói tin trong bảng Mangle................................................... 35

Hình 3. 5 Mô hình hoạt động của Iptables ................................................................... 36

Hình 3. 6 Trình tự xử lý gói tin trên Iptables ............................................................... 38

Hình 3. 7 Sơ đồ mạng công ty A .................................................................................. 48

Page 9: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Bảng 1. Miêu tả các target mà Iptables thường dùng nhất .......................................... 39

Bảng 2. Các tham số chuyển mạch quan trọng của iptables ....................................... 41

Bảng 3. Các điều kiện TCP và UDP thông dụng ......................................................... 41

Bảng 4. Điều kiện ICMP ............................................................................................. 42

Bảng 5. Các điều kiện mở rộng thông dụng ................................................................. 43

Bảng 6. Danh sách các lệnh (Queues) ......................................................................... 45

Bảng 7 NAT trong iptables ........................................................................................... 45

Page 10: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 1

MỞ ĐẦU

GIỚI THIỆU CHUNG

I. Giới thiệu về đơn vị thực tập

Tên đơn vị thực tập

Trung tâm Đào tạo VDC Training Đà Nẵng

Địa chỉ,điện thoại trung tâm VDC

Tầng 2,3 tòa nhà số 59 Trần Phú – Thành Phố Đà Nẵng

Điện thoại : 0511.3840.842 – Email: [email protected]

Hoạt động của trung tâm

Trung tâm Đào tạo VDC Training là đơn vị thuộc VDC - công ty thành viên

tập đoàn VNPT. VDC là doanh nghiệp hàng đầu trong lĩnh vực cung cấp dịch vụ

Internet, có nhiều kinh nghiệm trong lĩnh vực tƣ vấn, thiết kế, triển khai các hệ thống

hạ tầng công nghệ thông tin và chuyển giao công nghệ.

VDC Training đã có hơn 7 năm kinh nghiệm trong lĩnh vực đào tạo CNTT

đẳng cấp cao. Khởi đầu từ hoạt động đào tạo triển khai lắp đặt, hỗ trợ các dịch vụ

Internet, Truyền số liệu, Tin học của VNPT/VDC cho các khách hàng, đại lý, đối tác

và các viễn thông tỉnh/thành phố, VDC Training đã thành công trong việc phát triển

thành một trung tâm đào tạo CNTT có uy tín hàng đầu ở khu vực miền Trung và Tây

Nguyên nói riêng và cả nƣớc nói chung, không ngừng khẳng định là một đơn vị đào

tạo đẳng cấp chuyên nghiệp, mang đến các chƣơng trình đào tạo theo chuẩn mực quốc

tế cũng nhƣ đáp ứng tốt các chƣơng trình đào tạo theo yêu cầu của các tổ chức lớn,

cung cấp nhiều khoá học khác nhau nhằm giúp học viên nâng cao kỹ năng làm việc

cũng nhƣ mang lại lợi ích đáng kể cho các tổ chức của họ. Tính đến thời điểm hiện

nay, VDC Training là đối tác đào tạo ủy quyền chính thức của Cisco, CompTIA,

Pearson VUE, Prometric tại Việt Nam và cũng là thành viên mạng lƣới đối tác

Microsoft.

Page 11: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 2

Tiếp nối thành công ở mảng đào tạo các chƣơng trình IT quốc tế và đặc biệt là

để đáp ứng nhu cầu của khách hàng, từ năm 2011 VDC Training triển khai đào tạo các

chƣơng trình về quản trị, kỹ năng mềm và ISO 27001, ISO 20000.

VDC Training tự hào có đội ngũ giảng viên là các chuyên gia có trình độ

chuyên môn cao, hiểu và nắm rõ phƣơng pháp sƣ phạm, nhiệt tình trong công tác đào

tạo; đã đƣợc cấp các chứng chỉ Quốc tế của các tổ chức hàng đầu nhƣ Cisco,

Microsoft, Oracle, Sun, CompTIA, SCP, EC Council ... tuy nhiên sự khác biệt cũng là

tài sản quý nhất của VDC Training chính là kinh nghiệm làm việc thực tế của giảng

viên trong môi trƣờng của một đơn vị cung cấp dịch vụ IP/Internet/Tin học hàng đầu.

Đội ngũ giảng viên của VDC Training với nhiều năm kinh nghiệm làm việc trong môi

trƣờng thực tế không những cung cấp cho học viên đầy đủ kiến thức lý thuyết mà còn

tƣ vấn, hỗ trợ học viên vận dụng và giải quyết các tình huống thực tế. Sau khi tốt

nghiệp, học viên có khả năng đáp ứng ngay các yêu cầu công việc thực tiễn. Chất

lƣợng đào tạo thể hiện rõ qua kết quả thi của học viên: sau khi hoàn thành các chƣơng

trình đào tạo, trên 90% học viên thi đạt điểm cao các chứng chỉ quốc tế ở ngay lần thi

đầu tiên.

Hiện nay, đội ngũ giảng viên của VDC Training đã đạt các chứng chỉ: CCSI,

CCNA, CCNP, CCSP, CCAI, CCDP, CCIE Writtten, CWNA, SCSA, MCSE,

MCITP, MCTS, MCT, CCSE, CompTIA Linux+, CompTIA Security+, SCNS,

SCNP, SCNA, SCPI, CEH, CEI, Oracle DBA 10g, 11g v.v... Không dừng lại và

không thỏa mãn với những gì đạt đƣợc, các giảng viên VDC Training vẫn thƣờng

xuyên học tập, tham dự các khóa đào tạo nâng cao, các hội thảo công nghệ chuyên sâu

trong và ngoài nƣớc để cập nhật kiến thức mới và trau dồi kỹ năng mềm, nghiệp vụ sƣ

phạm.

Đội ngũ giảng viên giỏi chuyên môn nghiệp vụ, nhiều kinh nghiệm, cơ sở vật

chất đạt tiêu chuẩn quốc tế cùng với nội dung đào tạo bổ ích đã giúp cho VDC

Training trở thành đối tác đào tạo nguồn nhân lực cho nhiều đơn vị hoạt động trong

các lĩnh vực khác nhau nhƣ

Tập đoàn Bƣu chính Viễn thông Việt Nam – VNPT

Page 12: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 3

Trung tâm Thông tin Di động khu vực III - VMS3

Trung tâm Viễn thông Quốc tế khu vực III - VTI3

Các Viễn thông tỉnh/thành phố

Cụm cảng hàng không miền Trung

Cục Hải quan Thành phố Đà Nẵng

Viện Tin học Doanh nghiệp - CN miền Trung

Trung tâm Viễn thông Điện lực miền Trung

Công ty Cổ phần Phần mềm FPT

Tập đoàn Dƣợc phẩm Viễn Đông

Thành ủy Đà Nẵng

Sở Giáo dục và Đào tạo Thành phố Đà Nẵng

Cục thuế Đà Nẵng

Ban Quản lý Dự án Phát triển CNTT& TT - Sở Thông tin và Truyền

thông thành phố Đà Nẵng

Công ty TNHH MTV Lọc hóa dầu Bình Sơn

Ban quản lý dự án CNTT-TT thuộc Sở Thông tin và Truyền thông Đà

Nẵng

Sở Thông tin và Truyền thông Khánh Hòa

Sở Thông tin và Truyền thông tỉnh Thừa Thiên Huế

Sở Thông tin và Truyền thông Bình Định

Sở Thông tin và Truyền thông tỉnh Kon Tum

Trung tâm tích hợp dữ liệu tỉnh Phú Yên

Các tổ chức ngân hàng, khác v.v...

Page 13: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 4

Sứ mệnh

- Truyền đạt, hƣớng dẫn học viên/khách hàng các kiến thức, kỹ năng

CNTT chuyên sâu ở đẳng cấp quốc tế về chƣơng trình và chất lƣợng đào

tạo. Góp phần phát triển nguồn nhân lực CNTT Việt Nam đạt tiêu chuẩn

quốc tế.

- Xây dựng một môi trƣờng học tập thân thiện, cởi mở với cơ sở vật chất

hiện đại, đủ sức hấp dẫn để quy tụ đƣợc nhân lực CNTT trong và ngoài

nƣớc về cộng tác nghiên cứu, thử nghiệm, trao đổi học thuật, kinh nghiệm

với nhau.

- Tạo điều kiện cho mọi thành viên của VDC Training phát triển tối đa

năng lực cá nhân, có cuộc sống sung túc về vật chất, hạnh phúc về tinh thần.

Tầm nhìn

VDC Training trở thành:

Một tổ chức hàng đầu ở Việt Nam nói riêng và ở khu vực Đông Nam Á

nói chung trong lĩnh vực tƣ vấn và đào tạo CNTT theo các chƣơng trình quốc

tế.

Một trong những môi trƣờng làm việc tốt nhất cho nhân lực CNTT Việt

Nam.

II. Bối cảnh đề tài

Nhƣ chúng ta đã biết, Internet cho phép chúng ta truy cập tới các nơi

trên thế giới thông qua một số dịch vụ. Khi máy tính kết nối với Internet từ môi

trƣờng mạng cục bộ, khi đó tất cả các giao tiếp của mạng nội bộ với thế giới

bên ngoài coi nhƣ là bỏ ngỏ, mọi thông tin dữ liệu trên máy tính của mạng nội

bộ không có sự bảo vệ. Điều này đƣợc ví nhƣ nhà không có khóa cửa, khi đó

mọi đồ đạc trong nhà dĩ nhiên không an toàn.. Do vậy việc bảo vệ hệ thống là

một vấn đề chúng ta đáng phải quan tâm.Khi nói đến vấn đề bảo mật, hầu hết

các chuyên gia bảo mật đều chú trọng đến sự an toàn của hệ thống mạng và hệ

Page 14: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 5

điều hành. Để hạn chế tình trạng này và cũng là để góp phần làm tăng khả năng

bảo mật thì việc xây dựng hệ thống tƣờng lửa là điều kiện không thể thiếu.

Tƣờng lửa có thể đƣợc tích hợp với phần cứng hoặc phần mềm giúp bạn

tránh đƣợc sự tấn công của các hacker, kiểm soát truy cập... Khi truy cập vào

mạng Internet. Nếu bạn sử dụng máy tính cá nhân tại nhà hoặc bạn là một

doanh nghiệp nhỏ, sử dụng tƣờng lửa là cách quan trọng và hiệu quả nhất để

bảo vệ máy tính của bạn.

III.Mục đích và ý nghĩa của đề tài

Có rất nhiều loại tƣờng lửa khác nhau nhƣng chúng em đã quyết định

chọn đề tài về tìm hiểu và cấu hình Iptables trên hệ điều hành linux. Bởi vì hệ

điều hành Linux ngày càng trở lên phổ biến,đƣợc sử dụng nhiều trên các hệ

thống máy chủ.Mặt khác Iptables là một tƣờng lửa ứng dụng lọc gói dữ liệu rất

mạnh, miễn phí và có sẵn trên Linux..Nó 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 gói tin hiệu quả.

Lọc gói tin dựa vào địa chỉ MAC (Media Access Control) 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 (Network Address Translation)

Có khả năng ngăn chặn một số cơ chế tấn công theo kiểu DoS

Page 15: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 6

IV.Nội dung của đề tài gồm 4 phần chính

Tìm hiểu tổng quan về hệ điều hành linux

Tổng quan về hệ thống tƣờng lửa

Tìm hiểu và cấu hình Iptables trên hệ điều hành linux

Kết luận

Page 16: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 7

CHƢƠNG 1

CÁC NHIỆM VỤ ĐƢỢC GIAO

I.Tìm hiểu về đơn vị thực tập

Trong ngày thực tập đầu tiên, chúng em đƣợc làm quen với các thầy,

anh chị tham gia hƣớng dẫn chúng em trong quá trình thực tập. Chúng em đƣợc

đi tham quan các phòng ban,phòng học,thực hành và các trang thiết bị máy

móc ở trung tâm. Trong buổi gặp gỡ, ngoài việc đƣợc giới thiệu về VDC

Training/VDC - đơn vị thuộc VDC - công ty thành viên tập đoàn VNPT cũng

nhƣ phổ biến một số nội quy, quy định của VDC Training - nơi chúng em sẽ

thực tập tại đây. Chúng em còn đƣợc giới thiệu về một số định hƣớng nghiên

cứu, trải nghiệm trong thời gian thực tập tại VDC Training.

Chúng em rất hào hứng với những xu hƣớng nghiên cứu khoa học mà

giảng viên VDC Training giới thiệu, bởi đây là những xu hƣớng mới và đang

đƣợc quan tâm nghiên cứu nhiều trên thế giới.

Cũng trong buổi gặp gỡ, chúng em đã thoải mái trao đổi, bày tỏ mong

muốn tham gia nghiên cứu những đề tài đầy mới mẻ này cũng nhƣ cơ hội tiếp

cận môi trƣờng thực tế, năng động trong lĩnh vực công nghệ thông tin - viễn

thông trong thời gian các bạn thực tập tại VDC Training.

II. Đề tài nghiên cứu

Sau khi đƣợc thầy Th.S Nguyễn Song Tùng giới thiệu về một số định

hƣớng nghiên cứu đang đƣợc quan tâm hiện nay. Chúng em đã chọn cho mình

hƣớng nghiên cứu về tìm hiểu hệ điều hành linux mà cụ thể là tìm hiểu và cấu

hình iptables trên hệ điều hành linux.

Iptables là một phần mềm tƣờng lửa phổ biến và cơ bản nhất trong HĐH

Linux. Iptables là một tƣờng lửa ứng dụng lọc gói dữ liệu rất mạnh 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 để đẩy các luật của ngƣời dùng

Page 17: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 8

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.

Page 18: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 9

CHƢƠNG 2

CÁC CÔNG NGHỆ ĐÃ NGHIÊN CỨU

Trong quá trình thực tập tại VDC Training Đà Nẵng, sau tuần đầu tiên

đƣợc tham quan và tìm hiểu về trung tâm. Sang tuần thứ hai, chúng em đƣợc

giao nhiệm vụ học tập và nghiên cứu công nghệ. Chúng em đƣợc phân vào các

nhóm khác nhau tùy theo công nghệ đã lựa chọn. Nhóm em có 2 thành viên

nghiên cứu về iptables trên hệ điều hành linux.

I.TỔNG QUAN VỀ HỆ ĐIỀU HÀNH LINUX

I.1 Giới thiệu về hệ điều hành Linux

Linux là tên gọi của một hệ điều hành máy tính và cũng là tên hạt

nhân của hệ điều hành.

Phiên bản Linux đầu tiên do Linus Torvalds viết vào năm 1991, lúc ông

còn là một sinh viên của Đại học Helsinki tại Phần Lan. Ông làm việc một cách

hăng say trong vòng 3 năm liên tục và cho ra đời phiên bản Linux 1.0 vào năm

1994. Bộ phận chủ yếu này đƣợc phát triển và tung ra trên thị trƣờng dƣới bản

quyền GNU General Public License. Do đó mà bất cứ ai cũng có thể tải và xem

mã nguồn của Linux.

Một cách chính xác, thuật ngữ ―Linux‖ đƣợc sử dụng để chỉ Nhân Linux,

nhƣng tên này đƣợc sử dụng một cách rộng rãi để miêu tả tổng thể một hệ điều

hành giống Unix (còn đƣợc biết đến dƣới tên GNU/Linux) đƣợc tạo ra bởi việc

đóng gói nhân Linux cùng với các thƣ viện và công cụ GNU, cũng nhƣ là các

bản phân phối Linux. Thực tế thì đó là tập hợp một số lƣợng lớn các phần mềm

nhƣ máy chủ web, các ngôn ngữ lập trình, các hệ quản trị cơ sở dữ liệu, các

môi trƣờng làm việc desktop nhƣ GNOME và KDE, và các ứng dụng thích hợp

cho công việc văn phòng nhƣ OpenOffice hay LibreOffice.

Khởi đầu, Linux đƣợc phát triển cho dòng vi xử lý i386 Intel, hiện tại hệ

điều hành này hỗ trợ một số lƣợng lớn các kiến trúc vi xử lý, và đƣợc sử dụng

Page 19: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 10

trong nhiều ứng dụng khác nhau từ máy tính cá nhân cho tới các siêu máy tính

và các thiết bị nhúng nhƣ là các máy điện thoại di động.

Ban đầu, Linux đƣợc phát triển và sử dụng bởi những ngƣời say mê. Tuy

nhiên, hiện nay Linux đã có đƣợc sự hỗ trợ bởi các công ty lớn nhƣ IBM và

Hewlett-Packard, đồng thời nó cũng bắt kịp đƣợc các phiên bản Unix độc

quyền và thậm chí là một thách thức đối với sự thống trị của

Microsoft Windows trong một số lĩnh vực. Sở dĩ Linux đạt đƣợc những thành

công một cách nhanh chóng là nhờ vào các đặc tính nổi bật so với các hệ thống

khác: chi phí phần cứng thấp, tốc độ cao (khi so sánh với các phiên bản Unix

độc quyền) và khả năng bảo mật tốt, độ tin cậy cao (khi so sánh với Windows)

cũng nhƣ là các đặc điểm về giá thành rẻ, không bị phụ thuộc vào nhà cung

cấp. Một đặc tính nổi trội của nó là đƣợc phát triển bởi một mô hình phát triển

phần mềm nguồn mở hiệu quả.

Tuy nhiên, hiện tại số lƣợng phần cứng đƣợc hỗ trợ bởi Linux vẫn còn rất

khiêm tốn so với Windows vì các trình điều khiển thiết bị tƣơng thích với

Windows nhiều hơn là Linux. Nhƣng trong tƣơng lai số lƣợng phần cứng đƣợc

hỗ trợ cho Linux sẽ tăng lên.

I.2 Kiến trúc hệ điều hành Linux

Hình 2. 1 Kiến trúc hệ điều hành linux

I.2.1 Hạt Nhân (kernel)

Page 20: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 11

Là trung tâm điều khiển của hệ điều hành Linux, chứa các mã nguồn điều

khiển hoạt động của toàn bộ hệ thống. Hạt nhân đƣợc phát triển không ngừng,

thƣờng có 2 phiên bản mới nhất, một bản dạng phát triển mới nhất và một bản

ổn định mới nhất. Kernel đƣợc thiết kế theo dạng module, do vậy kích thƣớc

thật sự của Kernel rất nhỏ. Chúng chỉ tải những bộ phận cần thiết lên bộ nhớ,

các bộ phận khác sẽ đƣợc tải nếu có yêu cầu sử dụng. Nhờ vậy so với các hệ

điều hành khác Linux không sử dụng lãng phí bộ nhớ nhờ không tải mọi thứ

lên mà không cần quan tâm nó có sử dụng không.

Kernel đƣợc xem là trái tim của hệ điều hành Linux, ban đầu nhân đƣợc

phát triển cho các CPU Intel 80386. Điểm mạnh của loại CPU này là khả năng

quản lý bộ nhớ. Kernel của Linux có thể truy xuất tới toàn bộ tính năng phần

cứng của máy. Yêu cầu của các chƣơng trình cần rất nhiều bộ nhớ, trong khi hệ

thống có ít bộ nhớ, hệ điều hành sử dụng không gian đĩa hoán đổi (swap space)

để lƣu trữ các dữ liệu xử lý của chƣơng trình. Swap space cho phép ghi các

trang của bộ nhớ xuất các vị trí dành sẵn trong đĩa và xem nó nhƣ phần mở

rộng của vùng nhớ chính. Bên cạnh sử dụng swap space, Linux còn hỗ trợ các

đặc tính sau:

- Bảo vệ vùng nhớ giữa các tiến trình, điều này không cho phép một tiến

trình làm tắt toàn bộ hệ thống.

- Chỉ tải các chƣơng trình khi có yêu cầu.

I.2.2 Shell

Cung cấp các tập lệnh cho ngƣời dùng thao tác với kernel để thực hiện

công việc. Shell đọc các lệnh từ ngƣời dùng và xử lý. Ngoài ra shell còn cung

cấp một số đặc tính khác nhƣ : chuyển hƣớng xuất nhập, ngôn ngữ lệnh để tạo

các tập tin tƣơng tự nhƣ bat trong DOS.

Có nhiều Shell đƣợc sử dụng trong Linux. Có nhiều loại shell đƣợc dùng

trong Linux. Điểm quan trọng để phân biệt các shell khác nhay là bộ lệnh của

mỗi shell. Ví dụ , C shell thì sử dụng các lệnh tƣơng tự ngôn ngữ C, Bourne thì

dùng ngôn ngữ lệnh khác…

Page 21: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 12

Shell sử dụng chính trong Linux là GNU Bourne Again Shell ( bash ).

Shell này là shell phát triển từ Bourne Shell, là shell sử dụng chính trong các hệ

thông Unix, với nhiều tính năng mới nhƣ : điều khiển các tiến trình, các lệnh

history, tên tập tin dài….

I.2.3 Các tiện ích

Các tiện ích đƣợc ngƣời dùng thƣờng xuyên sử dụng. Nó dùng cho nhiều

thứ nhƣ thao tác tập tin, đĩa, nén, sao lƣu tập tin, … Tiện ích trong Linux có thể

là các lệnh thao tác hay các chƣơng trình giao diện đồ họa. Hầu hết các tiện ích

dùng trong Linux là sản phẩm của chƣơng trình GNU. Linux có sẵn rất nhiều

tiện ích nhƣ trình biên dịch, trình gỡ lỗi, soạn văn bản,… Tiện ích có thể đƣợc

sử dụng bởi ngƣời dùng hoặc hệ thống. Một số tiện ích đƣợc xem là chuẩn

trong hệ thống Linux nhƣ passwd, ls, pa, vi …

I.2.4 Chƣơng trình ứng dụng

Khác với các tiện ích, các ứng dụng nhƣ chƣơng trình word, hệ quản trị cơ

sở dữ liệu,… là các chƣơng trình có độ phức tạp lớn và đƣợc các nhà sản xuất

viết ra.

I.3 Các đặc tính cơ bản của Linux

Linux hỗ trợ các tính năng cơ bản thƣờng thấy trong các hệ điều hành

Unix và nhiều tính năng khác mà không hệ điều hành nào có đƣợc. Linux cung

cấp môi trƣờng phát triển một cách đầy đủ bao gồm các thƣ viện chuẩn, các

công cụ lập trình, trình biên dịch, debug,… nhƣ bạn mong đợi ở các hệ điều

hành Unix khác. Hệ thống Linux trội hơn các hệ thống khác trên nhiều mặt mà

ngƣời dùng quan tâm nhƣ sự phát triển tốc độ, dễ sử dụng và đặc biệt là sự phát

triển và hỗ trợ mạng. Một số đặc điểm của Linux chúng ta cần quan tâm:

I.3.1 Đa tiến trình

Là đặc tính cho phép ngƣời dùng thực hiện nhiều tiến trình đồng thời. Ví

dụ bạn vừa in, vừa soạn văn bản, vừa nghe nhạc,… cùng một lúc. Máy tính sử

dụng chỉ một CPU nhƣng xử lý đồng thời nhiều tiến trình cùng lúc. Thực chất

Page 22: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 13

là tại một thời điểm CPU chỉ xử lý đƣợc một mệnh lệnh, việc thực hiện cùng

lúc nhiều công việc là giả tạo bằng cách làm việc xen kẽ và chuyển đổi trong

thời gian nhanh. Do đó ngƣời dùng cứ ngỡ là thực hiện đồng thời.

I.3.2 Tốc độ cao

Hệ điều hành Linux đƣợc biết đến nhƣ một hệ điều hành có tốc độ xử lý

cao, bởi vì nó thao tác rất hiệu quả đến tài nguyên nhƣ: bộ nhớ, đĩa,…

I.3.3 Bộ nhớ ảo

Khi hệ thống sử dụng quá nhiều chƣơng trình lớn dẫn đến không đủ bộ

nhớ chính (RAM) để hoạt động. Trong trƣờng hợp đó, Linux dung bộ nhớ từ

đĩa vào partition swap. Hệ thống sẽ đƣa các chƣơng trình hoặc dữ liệu nào

chƣa có yêu cầu truy xuất xuống vùng swap này, khi có nhu cầu thì hệ thống

chuyển lên lại bộ nhớ chính.

I.3.4 Sử dụng chung thư viện

Hệ thống Linux có rất nhiều thƣ viện dùng chung cho nhiều ứng dụng.

Điều này sẽ giúp hệ thống tiết kiệm đƣợc tài nguyên cũng nhƣ thời gian xử lý.

I.3.5 Sử dụng các chương trình xử lý văn bản

Chƣơng trình xử lý văn bản là một trong những chƣơng trình rất cần thiết

đối với ngƣời sử dụng. Linux cung cấp nhiều chƣơng trình cho phép ngƣời

dùng thao tác với văn bản nhƣ vi, emacs, nroff.

I.3.6 Sử dụng giao diện cửa sổ

Giao diện cửa sổ dùng hệ thống X Window, có giao diện nhƣ hệ điều hành

Windows. Với hệ thống này ngƣời dùng rất thuận tiện khi làm việc trên hệ

thống. X Window System hay còn gọi tắt là X đƣợc phát triển tại viện

Massachusetts Institute of Technology. Nó đƣợc phát triển để tạo ra môi trƣờng

làm việc không phụ thuộc phần cứng. X chạy dƣới dạng client – server. Hệ

thống X Window hoạt động qua hai bộ phận:

- Phần server còn gọi là X server.

Page 23: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 14

- Phần client đƣợc gọi là X Window manager hay desktop environment.

- X Server sử dụng trong hầu hết các bản phân phối của Linux là Xfree86.

Client sử dụng thƣờng là KDE (K Desktop Environment) và GNOME (GNU

Network Object Model Environment).

Dịch vụ Samba sử dụng tài nguyên đĩa, máy in với Windows. Tên Samba

xuất phát từ giao thức Server Message Block (SMB) mà Window sử dụng để

chia sẻ tập tin và máy in. Samba là chƣơng trình sử dụng giao thức SMB chạy

trên Linux. Sử dụng Samba bạn có thể chia sẻ tập tin và máy in với các máy

Windows

I.3.7 Network Information Service (NIS)

Dịch vụ NIS cho phép chia sẻ các tập tin password và group trên mạng.

NIS là một hệ thống cơ sở dữ liệu dạng client – server, chứa các thông tin của

ngƣời dùng và dùng để chứng thực ngƣời dùng. NIS xuất phát từ hãng Sun

Microsystem với tên là Yellow Pages.

I.3.8 Lập lịch hoạt động chương trình, ứng dụng

Chƣơng trình lập lịch trong Linux xác định các ứng dụng, script thực thi

theo một sự sắp xếp của ngƣời dùng nhƣ: at, cron, batch.

I.3.9 Các tiện ích sao lưu dữ liệu

Linux cung cấp các tiện ích nhƣ tar, cpio và dd để sao lƣu và backup dữ

liệu. Red Hat Linux còn cung cấp tiện ích Backup and Restore System Unix

(BRU) cho phép tự động backup dữ liệu theo lịch.

I.3.10 Hỗ trợ nhiều ngôn ngữ lập trình

Linux cung cấp một môi trƣờng lập trình Unix đầy đủ bao gồm các thƣ

viện chuẩn, các công cụ lập trình, trình biên dịch, chƣơng trình debug mà bạn

có thể tìm thấy trong các hệ điều hành Unix khác. Ngôn ngữ chủ yếu sử dụng

trong các hệ điều hành Unix là C và C++. Linux dùng trình biên dịch cho C và

C++ là gcc, chƣơng trình biên dịch này rất mạnh, hỗ trợ nhiều tính năng. Ngoài

Page 24: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 15

C, Linux cũng cung cấp các trình biên dịch, thông dịch cho các ngôn ngữ khác

nhƣ Pascal, Fortan, Java, …

I.4 Cấu trúc hệ thống tập tin/thƣ mục trong Linux

Trong Linux không có khái niệm ổ đĩa. Sau quá trình khởi động, toàn bộ

các thƣ mục và tập tin đƣợc kết gắn và tạo thành một hệ thống tập tin thống

nhất, bắt đầu từ gốc ―/‖.

Hình 2. 2 Cấu trúc thƣ mục hệ thống của Linux

I.5 Quản lý tài khoản và phân quyền trên Linux

I.5.1 Quản lý tài khoản trong Linux

a) Tài khoản ngƣời dùng

Cũng giống nhƣ Windows,Linux cũng có các loại tài khoản khác nhau,

thƣờng đƣợc chia làm 2 loại chính : tài khoản ngƣời dùng bình thƣờng và tài

khoản quản trị (root ).

Root là tài khoản quản trị có ảnh hƣởng rất lớn đối với an toàn của hệ

thống, tài khoản root có các các quyền nhƣ: tạo tài khoản ngƣời dùng, cài đặt

phần mềm, thêm, xóa, sửa đổi các tài khoản…

Mỗi ngƣời sử dụng trên hệ thống đƣợc mô tả qua các thông tin sau:

- username : tên ngƣời sử dụng

- password : mật khẩu (nếu có)

Page 25: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 16

- uid : số nhận dạng (user identify number )

- gid : số của nhóm(group identify number )

- comment : chú thích

- Thƣ mục chủ của tài khoản (home directory )

- Shell đăng nhập (chƣơng trình chạy lúc bắt đầu phiên làmviệc)

Các thông tin trên đƣợc chứa trong tập tin /etc/passwd

b) Tài khoản nhóm ngƣời dùng

Một nhóm ngƣời sử dụng đƣợc mô tả bằng các thông tin sau:

- groupname : tên của nhóm

- gid : số của nhóm (gid: group identify number)

- danh sách các tài khoản thuộc nhóm

Các thông tin trên đƣợc chứa trong tập tin /etc/group

I.5.2 Phân quyền ngƣời dùng trên hệ thống tập tin

Một trong những thành phần chính của họ *nix là hệ thống quyền hạn

truy cập (Permission) cho mọi đối tƣợng (file (-), thƣ mục (d), link (l)). Hệ

thống này đóng 1 vai trò quan trọng trong việc cung cấp mức an ninh cao và

tính ổn định cho HDH Linux.

Mỗi 1 đối tƣợng gắn với 3 loại quyền: read (đọc), write (ghi) và execute

(thực thi). Và mỗi 1 quyền này lại đƣợc chỉ định cho 3 loại user:

+ owner: chủ sở hữu của đối tƣợng – mặc định ban đầu là user tạo ra đối tƣợng

đó

+ group: 1 nhóm các user chia sẻ chung quyền hạn truy cập - mặc định ban đầu

là group mà owner ở trên thuộc về.

+ other: tất cả các user không thuộc 2 nhóm trên.

Page 26: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 17

Hình 2. 3 Quyền trên tập tin

User root có đủ cả 3 quyền đối với mọi đối tƣợng trên hệ thống. Ngoài

ra, root có thể thay đổi (cấp hoặc tƣớc) quyền hạn truy cập đối tƣợng cho bất

kỳ user nào và còn có thể chuyển quyền sở hữu đối tƣợng qua lại giữa các user.

Ý nghĩa của 3 loại quyền này là:

+ đối với thư mục:

- Read: chỉ cho phép xem tên và các thuộc tính của các đối tƣợng mà nó

chứa

- Write: cho phép tạo và xóa các đối tƣợng trong thƣ mục

- Execute: chỉ cho phép truy cập vào thƣ mục sử dụng lệnh cd

+ đối với file:

- Read: chỉ cho phép xem nội dung của file

- Write: cho phép chỉnh sửa nội dung, xóa file

Page 27: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 18

- Execute: chỉ cho phép chạy file này, thƣờng đƣợc gán các file nhị phân

thực thi (đã đƣợc biên dịch từ file mã nguồn) tƣơng tự nhƣ file .exe trong

Windows

Các quyền cho 1 đối tƣợng đƣợc biểu diễn nhƣ sau:

- Read: ký hiệu là r hay số 4 hệ bát phân

- Write: ký hiệu là w hay số 2 hệ bát phân

- Execute: ký hiệu là e hay số 1 hệ bát phân

Vì mỗi đối tƣợng có 3 loại quyền cho mỗi loại user nên có tất cả 9 bit

thông tin về quyền hạn tƣơng ứng với mỗi đối tƣợng. Mỗi bit trong 9 bit này

nhận 1 trong 2 giá trị: đƣợc phép (allow) hoặc bị cấm (deny).

Hình 2. 4 Quyền đƣợc biểu diễn dƣới dạng số

Các quyền cho 1 đối tƣợng đƣợc biểu diễn theo 2 cách

Cách 1 gồm 1 chuỗi 10 ký tự:

- Ký tự đầu thể hiện loại file: d cho thƣ mục (file đặc biệt), - cho

file thông thƣờng, l cho các link (hard link, symbolic link)

- Ba ký tự tiếp là các quyền cho owner, kế đến là 3 ký tự biểu

diễn các quyền cho group, còn lại 3 ký tự cuối dành cho other

- Quyền đƣợc phép read sẽ là r, write là w, e là execute. Các

quyền bị cấm đƣợc biểu diễn bằng dấu –

Page 28: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 19

Sử dụng lệnh ls –l filename để biết thông tin về các quyền. VD

-rwxrw-r--

+ đây là file thông thƣờng

+ owner có quyền read, write, execute; group có thể read, write; other

chỉ read

drwxr-xr-x

+ đây là thƣ mục

+ owner có quyền read+write+execute; cả group và other chỉ

read+excute

C2 ngắn gọn hơn, gồm 3 số hệ bát phân

Số đầu cho owner, số thứ 2 cho group, số còn lại cho other. Mỗi 1 số

nhận 1 trong 8 giá trị sau

+ 0 : cấm tất cả các quyền

+ 1 : execute

+ 2 : write

+ 3 : execute + write

+ 4 : read

+ 5 : read + execute

+ 6 : read + write

+ 7 : read + write + execute

Để thay đổi quyền hạn truy cập cho các user sử dụng lệnh chmod (bạn

phải là owner của file hặc có quyền root)

Để thay đổi owner cho đối tƣợng sử dụng lệnh chown (bạn phải có

quyền root)

chown User_Name File_Name

Page 29: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 20

Để thay đổi group cho đối tƣợng sử dụng lệnh chgrp nhƣng phải thỏa 1

trong 2 điều kiện:

* chạy lệnh chgrp với quyền root

* bạn là owner + thuộc Group (có tên là Group_Name trong lệnh) mà

bạn muốn thay đổi Group cho file

chgrp Group_Name File_Name

I.6 Ƣu và nhƣợc điểm của hệ điều hành Linux

Ƣu điểm

Là hệ điều hành miễn phí và đƣợc rất nhiều ngƣời phát triển nên có

nhiều tính năng ứng dụng hay, cũng nhƣ nhiều ngƣời dùng.

Là hệ điều hành đa nhiệm và đa ngƣời dùng, tận dụng đƣợc sức mạnh

xử lý của máy i386 và đời cao hơn. Chạy đƣợc trên nhiều loại máy khác

nhau.

Có sẵn bộ giao thức TCP/IP giúp cho ngƣời dùng dễ dàng kết nối

internet.

Khả năng tƣơng thích với các hệ thống mở có nghĩa chúng ta có thể

chuyển nó từ hệ điều hành này sang hệ điều hành khác mà vẫn hoạt

động tốt.

Hổ trợ ngƣời dùng. Hiện nay linux có hàng ngàn ứng dụng, bao gồm các

chƣơng trình báo biểu, cơ sở dữ liệu, giải trí, đa phƣơng tiện và rất nhiều

ứng dụng khác.

Lợi ích cho giới chuyên nghiệp điện toán, đến với linux giới điện toán sẽ

có hàng ngàn công cụ phát triển chƣơng trình, báo gồm các bộ biên dịch

cho nhiều ngôn ngữ lập trình hàng đầu hiện nay, chẳng hạn nhƣ C,

C++…

Nhƣợc điểm

Page 30: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 21

Khuyết điểm về hổ trợ kỹ thuật tức là Linux không có một công ty nào

đứng ra chịu trách nhiệm phát triển hệ điều hành này. Nếu gặp trục trặc

thì không có ai có thể giải quyêt miển phí cho bạn.

Khuyết điểm về phần cứng đó chính là Linux không dễ dàng cài đặt và

hổ trợ nhiều thiết bị phần cứng. Các phiên bản phần cứng của Linux đều

hổ trợ theo nguyên tắc phần cứng của nhà phát triển Linux.

Quá trình sử dụng với ngƣời dùng tƣơng đối khó khăn bởi vì Linux hổ

trợ việc giao tiếp bằng đồ họa ít nên chủ yếu phải dùng bằng lệnh nên

dẫn đến làm cho ngƣời dùng cảm thấy kho khăn khi sử dụng.

I.7 Một số bản phân phối(Distro) Linux phổ biến

Phần mềm tự do nguồn mở cho phép ngƣời sử dụng có thể sao chép, sửa

đổi, phân phối một cách tự do và không phụ thuộc vào bất kỳ nhà cung cấp

công nghệ nào.

Phần mềm tự do nguồn mở đƣợc phát triển từ lâu và đến nay đã xuất

hiện khá phổ biến trong các tổ chức chính phủ, doanh nghiệp.Thu hút sự chú ý

của cộng đồng do sự tự nguyện của những ngƣời đóng góp cho cộng đồng giúp

phát hiện và thông báo các lỗi mà họ gặp phải khi trải nghiệm.

Điểm sáng của phần mềm mã nguồn mở chính là khái niệm distro, có

thể tạm dịch là bản phân phối phần mềm mã nguồn mở. Kể từ lúc Linux ra đời,

cho đến nay đã có rất nhiều distro khác nhau, một phần là do tính "mở" của nó.

Một số distro có thể kể đến nhƣ: Ubuntu, Fedora, LinuxMint, openSUSE,

PCLinuxOS, Debian, Mandriva…

Sự khác nhau giữa các distro chủ yếu dựa vào 2 yếu tố

- Thị trƣờng mà distro muốn nhắm đến, ví dụ dành cho máy chủ,

doanh nghiệp, siêu máy tính, ngƣời dùng đầu cuối…

- Tùy thuộc vào triết lí phần mềm của từng distro mà những

ngƣời phát triển quyết định gắn bó lâu dài với distro đó hay

không.

Page 31: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 22

Các distribution phổ biến

Redhat,Fedora & CentOS (Redhat, Inc): Redhat, Fedora,CentOS là

các Distro dựa trên RPM, đƣợc nhiều ngƣời biết đến nhất và rất phổ biến tại

Việt Nam. Chúng phù hợp với mọi mục đích, từ Desktop, Workstation, đến

Server, cho những ngƣời mới dùng, đến những ngƣời đã giàu kinh nghiệm.

Điểm mạnh của Redhat, Fedora,CentOS là việc hỗ trợ cài đặt, đến giao diện sử

dụng rất thân thiện. Tuy nhiên điểm yếu chung của những Distro tựa RPM này

là cách quản lý gói tin gây không ít khó khăn cho ngƣời dùng. Việc phân chia

mỗi ứng dụng bao gồm nhiều gói rpm, và sự liên kết giữa chƣơng trình với thƣ

viên, gây cho việc cài đặt, gỡ bỏ, cập nhật bất kỳ một gói nào cũng liên quan

đến nhiều gói khác. Tuy nhiên, đến Distro Fedora,CentOS và Redhat

Enterprise, trình quản lý gói yum đƣợc đƣa vào, đã giải quyết đƣợc đáng kể

vấn đề trên. Fedora,CentOS là Distro xuất hiện miễn phí cho ngƣời dùng bởi

Công ty Redhat từ khi phiên bản Redhat đã đƣợc thƣơng mại hóa. Redhat

Enterprise thực sự là một Distro phổ biến cho dòng Máy chủ của các công ty,

doanh nghiệp lớn trên toàn thế giới.

Hình 2. 5 Red Hat

Debian: là Distro khá phổ biến bởi trình quản lý gói tin rất mạnh, tiện

ích APT và số lƣợng gói phần mềm khổng lồ (số lƣợng CD lƣu trữ hết các gói

tin khoảng 15 CD - 8000 gói), cung cấp cho ngƣời dùng rất nhiều tính năng lựa

chọn. Debian là lựa chọn cho sự ổn định và tin cậy. Gói tin DEB trên Debian

Page 32: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 23

luôn đặt mục tiêu stable (vững chắc, ổn định) lên hàng đầu, so với một số hệ

thống gói tin khác là mục tiêu newest (cập nhật mới nhất)

Hình 2. 6 Debian

Ubuntu: Cái tên Ubutun chỉ mới xuất hiện vào khoảng 2005, nhƣng đã

trở nên rất phổ biến cho ngƣời dùng khắp nơi trên thế giới. Trong trang chuyên

đề về tập hợp các Distro là DistroWatch, Ubuntu luôn đứng đầu về số lƣợng

ngƣời dùng ghé thăm. Ubuntu đƣợc thiết kế chuyên cho ngƣời dùng Desktop,

rất nhỏ gọn (chỉ gồm 1 đĩa cài đặt), và dựa trên hệ thống quản lý gói mạnh mẽ

APT của Debian. Ngƣời dùng Ubuntu thực sự thấy đƣợc sự tự do, tùy biến cao

trong sử dụng, quản lý hệ thống.

Hình 2. 7 Ubuntu

Gentoo: Là một Distro của sự linh hoạt, và tốc độ, đƣợc thiết kế chuyên

cho developer và network professional. Khác với các Distro khác, Gentoo sử

dụng hệ thống quản lý gói cũng rất mạnh Portage. Việc cài đặt hệ thống và các

phần mềm hoàn toàn từ mã nguồn (source code) sao cho phù hợp nhất với đặc

Page 33: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 24

điểm của hệ thống. Khi cài đặt Gentoo, hệ thống của ngƣời dùng chỉ đƣợc cài

đặt một mức tối thiểu các gói tin cần thiết, sau đó tùy mục đích mà ngƣời dùng

có thể cài đặt thêm. Chính vì những lý do trên, Gentoo đem đến cho hệ thống

sự ổn định và chạy rất nhanh. Để cài đặt và sử dụng Gentoo, ngƣời dùng sẽ mất

khá nhiều thời gian, tuy nhiên nó đáng để đƣợc nhƣ vậy.

Hình 2. 8 Gentoo

Knoppix: Đây là một LiveCD rất thân thiện, với sự hỗ trợ cao về phần

cứng và nhiều phần mềm chuyên dụng. Knoppix giúp ngƣời dùng có thể làm

quen với Linux, các ứng dụng Mã nguồn mở mà không phải cài đặt. Đây cũng

là Distro phù hợp với vài trò Rescue

Hình 2. 9 Knoppix

Page 34: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 25

Slackware: Đây là sự lựa chọn tốt cho những ngƣời dùng muốn học,

nghiên cứu kỹ và sâu về hệ điều hành Linux. Tuy nhiên, từ công việc cài đặt,

cho đến sử dụng ngƣời dùng cũng phải mất khá nhiều thời gian, mà ngay cả

ngƣời dùng có kinh nghiệm cũng cảm thấy khó dùng. Tuy nhiên đánh đổi lại,

khi bạn đã sử dụng thành thạo Slackware, ngƣời dùng có thể yên tâm về trình

độ của mình. Đây cũng là Distro lựa chọn cho Máy chủ lớn bởi tính ổn định,

cập nhật và tùy biến cao của nó.

Hình 2. 10 Slackware

Các Linux Distribution có rất nhiều, vì vậy ngƣời dùng cần xác định mục tiêu

sử dụng và lựa chọn một Distro phù hợp. Tiêu chí lựa chọn distribution cũng là

các mặt khác nhau giữa các Linux distribution bao gồm:

- Chƣơng trình cài đặt (Graphical, Text mode)

- Hệ thống quản lý gói tin (dpkg với Debian, RPM với Fedora...)

- Giao diện đồ họa đƣợc cài đặt mặc định.

- Phƣơng tiện cài đặt (Đĩa mềm, LiveCD, CD/DVD).

- Tính bản địa hóa của Distro (Bao gồm font chữ, ngôn ngữ....)

- Ứng dụng (Desktop, Workstation, Server, Firewall and Security,

Router, etc)

- Hỗ trợ phần cứng.

- Chi phí. (Đa phần Linux Distribution là miễn phí, nhƣng cũng có một

Page 35: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 26

số Distro đã đƣợc thƣơng mại hóa: Redhat, Xandros Desktop OS, etc)

- Sự hỗ trợ từ các hãng, công ty: tài liệu, diễn đàn, tin tức, cập nhật.

- Cuối cùng, một yếu tố cũng rất quan trọng đó là trình độ của ngƣời

dùng. Đối với ngƣời mới dùng, đa phần Linux Distribution khó sử dụng, đặc

biệt trong đó có nhiều Distro kể cả những ngƣời giàu kinh nghiệm, việc sử

dụng nó cũng vất vả. Vì lý do đó, đã xuất hiện nhiều Distro hƣớng dẫn ngƣời

dùng, thân thiện với ngƣời dùng hơn, phù hợp cho ngƣời mới bắt đầu. Vì vậy,

xác định trình độ của mình và lựa chọn Distro cũng là rất cần thiết

Page 36: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 27

II. TỔNG QUAN VỀ FIREWALL

II.1 Khái niệm tƣờng lửa(firewall)

Tƣờng lửa là một kỹ thuật đƣợc tích hợp vào hệ thống mạng để chống

lại sự truy cập trái phép nhằm bảo vệ các nguồn thông tin nội bộ cũng nhƣ hạn

chế sự xâm nhập vào hệ thống nhằm mục đích phá hoại, gây tổn thất cho tổ

chức, doanh nghiệp.Cũng có thể hiểu tƣờng lửa là một cơ chế để đảm bảo an

toàn cho mạng máy tính giữa mạng nội bộ với mạng bên ngoài(Internet).

Hình 2. 11 Mô hình tƣởng lửa cơ bản

II.2. Chức năng của tƣờng lửa

Chức năng chính của tƣờng lửa là kiểm soát luồng thông tin giữa mạng

cần bảo vệ (Trusted Network) và Internet thông qua các chính sách truy nhập

đã đƣợc thiết lập.

- Cho phép hoặc cấm các dịch vụ truy nhập từ trong ra ngoài và từ ngoài

vào trong.

- Kiểm soát địa chỉ truy nhập, và dịch vụ sử dụng.

- Kiểm soát khả năng truy cập ngƣời sử dụng giữa 2 mạng.

- Kiểm soát nội dung thông tin truyền tải giữa 2 mạng.

- Ngăn ngừa khả năng tấn công từ các mạng ngoài.

Page 37: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 28

Xây dựng tƣởng lửa là một biện pháp khá hữu hiệu, nó cho phép bảo vệ

và kiểm soát hầu hết các dịch vụ do đó đƣợc áp dụng phổ biến nhất trong các

biện pháp bảo vệ mạng.

II.3. Phân loại tƣờng lửa

Tƣờng lửa đƣợc chia làm nhiều loại,tùy thuộc vào nhu cầu và cách nhìn

nhận từ ngƣời sử dụng.Mỗi loại có ƣu và nhƣợc điểm riêng của nó.Chúng ta

phân ra các loại nhƣ sau:

II.3.1 Packet Filtering ( tƣờng lửa lọc gói tin)

Kiểu tƣờng lửa này thƣờng hoạt động ở tầng mạng và tầng liên kết dữ

liệu trong mô hình OSI.Nó có thể tích hợp hoặc không tích hợp với Router, nó

tạo ra các luật cho phép quyền truy nhập mạng dựa trên mức mạng.Mô hình

này hoạt động theo nguyên tắc lọc gói tin (packet filtering).

Ở kiểu hoạt động này các gói tin đều đƣợc kiểm tra địa chỉ nguồn nơi

chúng xuất phát. Sau khi địa chỉ IP nguồn đƣợc xác định thì nó đƣợc kiểm tra

với các luật đã đƣợc đặt ra trên tƣờng lửa. Ví dụ ngƣời quản trị firewall quyết

định rằng không cho phép bất kỳ một gói tin nào xuất phát từ mạng

microsoft.com đƣợc kết nối với mạng trong thì các gói tin xuất phát từ mạng

này sẽ không bao giờ đến đƣợc mạng trong.

Các tƣờng lửa hoạt động ở lớp mạng (tƣơng tự nhƣ một router)

thƣờng cho phép tốc độ xử lý nhanh bởi nó chỉ kiểm tra địa chỉ IP nguồn mà

không có một lệnh thực sự nào trên router, nó không cần một khoảng thời gian

nào để xác định xem là địa chỉ sai hay bị cấm. Nhƣng điều này bị trả giá bởi

tính tin cậy của nó. Kiểu tƣờng lửa này sử dụng địa chỉ IP nguồn làm chỉ thị,

điểu này tạo ra một lỗ hổng là nếu một gói tin mang địa chỉ nguồn là địa chỉ giả

thì nhƣ vậy nó sẽ có đƣợc một số mức truy nhập vào mạng trong của bạn.

Các sản phẩm tƣờng lửa cứng đáng chú ý nhƣ Cisco PIX, NetScreen

firewall, SonicWall Appliaces, WatchGuard Fireboxes, Nokia firewall…

Page 38: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 29

Hình 2. 12 Packet Filtering

II.3.2 Application firewall ( Tƣờng lửa ứng dụng )

Kiểu tƣờng lửa này hoạt động dựa trên phần mềm và thƣờng hoạt động

ở tầng ứng dụng của mô hình OSI.Nếu cài đặt trên một máy tính thì đƣợc gọi là

host firewall.Nếu dùng cho hệ thống mạng thì gọi là Network firewall.

Khi một kết nối từ một ngƣời dùng nào đó đến mạng sử dụng tƣờng lửa

kiểu này thì kết nối đó sẽ bị chặn lại, sau đó tƣờng lửa sẽ kiểm tra các trƣờng

có liên quan của gói tin yêu cầu kết nối. Nếu việc kiểm tra thành công, có nghĩa

là các trƣờng thông tin đáp ứng đƣợc các luật đã đặt ra trên tƣờng lửa thì tƣờng

lửa sẽ tạo một cái cầu kết nối giữa hai node với nhau.

Ƣu điểm của kiểu tƣờng lửa loại này là không có chức năng chuyển tiếp

các gói tin IP, hơn nữa ta có thể điểu khiển một cách chi tiết hơn các kết nối

thông qua tƣờng lửa. Đồng thời nó còn đƣa ra nhiều công cụ cho phép ghi lại

các quá trình kết nối. Tất nhiên điều này sẽ làm chậm hệ thống, bởi vì tất cả các

kết nối cũng nhƣ các gói tin chuyển qua tƣờng lửa đều đƣợc kiểm tra

kỹ lƣỡng với các luật trên tƣờng lửa và rồi nếu đƣợc chấp nhận sẽ đƣợc chuyển

tiếp tới node đích.Ngoài ra việc nâng cấp và thay đổi thiết bị tƣờng lửa tƣơng

đối dễ dàng và nhanh chóng.

Nhƣợc điểm của loại tƣờng lửa này là nó đƣợc cài đặt trên một hệ điều

hành hoặc hệ thống mạng và do đó khả năng có lỗ hổng trên hệ điều hành này

Page 39: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 30

là có thể xẩy ra. Khi lỗ hổng đƣợc phát hiện và đƣợc cập nhật bản vá lỗi, rất có

thể sau khi cập nhật bản vá lỗi cho hệ điều hành thì tƣờng lửa không hoạt động

bình thƣờng nhƣ trƣớc, do đó cần tiến hành cập nhật bản vá cho tƣờng lửa từ

nhà cung cấp sản phẩm tƣờng lửa.

Do hệ điều hành mà tƣờng lửa ứng dụng chạy trên nó không đƣợc thiết

kế tối ƣu cho tƣờng lửa nên tƣờng lửa mềm có hiệu suất thấp hơn tƣờng lửa

cứng.

Một số sản phẩm tƣờng lửa ứng dụng nhƣ SunScreen firewall,

IPF,Microsoft ISA server, Check Point NG, Linux’s IPTables…

Hình 2. 13 Application firewall

Page 40: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 31

II.3.3 Statefull Firewall (Tƣờng lửa trạng thái)

Là một dạng tƣờng lửa thông minh,kết hợp đƣợc cả hai dạng tƣờng lửa

phía trên.nó kiểm soát ở cả bảy tầng của mô hình OSI.

Nó không những kiểm tra gói tin bao gồm cấu trúc, dữ liệu gói tin … mà

kiểm tra cả trạng thái gói tin khi đi qua nó.

Hình 2. 14 Statefull Firewall

Page 41: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 32

CHƢƠNG 3

TÌM HIỂU VỀ IPTABLES TRÊN HỆ ĐIỀU HÀNH

LINUX

I.Giới thiệu về Iptables

I.1 Khái niệm Iptables

Iptables là một gói tƣờng lửa ứng dụng lọc gói dữ liệu rất mạnh, miễn

phí và có sẵn trên Linux do Netfilter Organiztion viết ra để tăng tính năng bảo

mật trên hệ thống Linux. 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 để đẩ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.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 gói tin hiệu quả.

Lọc gói tin dựa vào địa chỉ MAC (Media Access Control) 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 (Network Address Translation)

Có khả năng ngăn chặn một số cơ chế tấn công theo kiểu DoS

Page 42: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 33

Hình 3. 1 Vị trí của Iptables

I.2 Cài đặt Iptables

Iptable là một tƣờng lửa cài đặt mặc định trong hệ thống Linux.Nhƣng

nó cho tất cả các Traffic truy cập theo mặc định. Gói của iptables là iptables-

version.rpm hoặc iptables-version.tgz…ta có thể dùng lệnh để cài đặt gói này :

$ rpm –ivh iptables-version.rpm đối Red Hat

$ apt-get install iptables đối với Debian

- Kiểm tra Iptables đã đƣợc cài đặt hay chƣa bằng lênh : #rpm –qa

iptables

- Khởi động iptables: service iptables start

- Cho phép Iptables khởi động cùng lúc với hệ thống : #chkconfig

iptables on

- Tắt iptables: service iptables stop

- Khởi động lại iptables: service iptables restart

- Xác định trạng thái iptables: service iptables status

I.3 Cú pháp Iptables

Cú pháp của Iptables có dạng nhƣ sau:

#iptables [-t table-name] <command><chain-name> match [–j target]

Trong đó :

Page 43: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 34

-t (tables) : xác đinh table sẽ chịu tác động của lệnh. Trong

trƣờng hợp không chỉ ra tên bảng, mặc định iptables sẽ thực hiện các lệnh trên

bảng filter

-command : Tên lệnh sẽ thực hiện trên bảng đƣợc chỉ ra,(thêm

hay xoá một luật trong chuỗi luật nào đó).

-chain-name : Tên của chuỗi luật sẽ chịu tác động của lệnh.

- match : Là nội dung của luật. Match là các cặp điều kiện và giá

trị của nó, xác định gói tin sẽ chịu tác động của luật.

-j target Chỉ ra hành động (target) sẽ tác động vào một gói tin khi

gói tin đó đáp ứng đƣợc luật (match) chỉ ra.

Ví dụ một vài câu lệnh iptables

- Cho phép tất cả các gói tin tcp đi vào cổng 22

#iptables –A INPUT –p tcp –dport 22 –j ACCEPT

- Firewall chấp nhận cho bất kỳ gói tin TCP đi vào từ intafece eth0 đến địa chỉ

192.168.1.1

#iptables –A INPUT –s 0/0 –i eth0 –d 192.168.1.1 –p TCP –j ACCEPT

- Cấm máy tính có địa chỉ ip 192.168.1.2 ping tới server

# iptables –A INPUT –s 192.168.1.2 –p icmp – icmp-type any –j REJECT

I.4 Cấu trúc của Iptables

Trong iptables chia ra thành các bảng (tables), trong mỗi bảng sẽ chia ra

thành nhiều chuỗi(chains) để xử lý packet tùy theo tình huống (hƣớng đi của

packets),trong mỗi chain sẽ có các luật(rules) mà mình sẽ cấu hình để xử lý các

packets tƣơng ứng với mỗi chain.Iptables đƣợc chia làm 4 bảng nhƣ sau:

Filter table: dùng đề lọc gói dữ liệu,trong nó có 3 chains :

Forward chain: xử lý và chuyển tiếp các gói tin.

Input chain: xử lý các gói tin đi vào.

Page 44: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 35

Output chain: xử lý các gói tin đi ra.

Hình 3. 2 Quá trình xử lý gói tin bảng filter

NAT table: thực thi các chức năng NAT (Network Address

Translation), gồm 2 chains sau:

Pre-routing chain: NAT từ ngoài vào trong nội bộ. Quá trình

NAT sẽ thay đổi địa chỉ đích (Destination) của gói dữ liệu khi

cần thiết.

Post-routing chain: NAT từ trong ra ngoài. Quá trình NAT sẽ

thay đổi địa chỉ nguồn (Source) của gói dữ liệu khi cần thiết.

Hình 3. 3 Quá trình xử lý gói tin trong bảng NAT

Mangle table: chịu trách nhiệm biến đổi Qos ( quality of service) bits

trong TCP header.

Hình 3. 4 Quá trình xử lý gói tin trong bảng Mangle

Page 45: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 36

Conntrack table: theo dõi các kết nối

I.5 Quá trình chuyển dữ liệu qua Netfilter

Iptables sẽ kiểm tra tất cả các gói khi nó đi qua iptables host, quá trình

kiểm tra này đƣợc thực hiện tuần tự từ entries đầu tiên đến entries cuối cùng.

Iptables tổ chức phân loại dựa theo cách thức xử lý gói tin. Các gói tin

này đƣợc xử lý qua các bảng, trong mổi bảng có phân biệt gói tin đi vào

(INPUT), đi ra (OUTPUT) hoặc chuyển tiếp (FORWARD). Hay một số cách

thức biến đổi địa chỉ nguồn, đích gọi là NAT bao gồm việc biến đổi địa chỉ

nguồn thành đích gọi là PREROUTING, và đích thành nguồn gọi là

POSTROUTING ngƣời ta gọi đó là các chuỗi(chain). Trong mổi chain sẽ có

những luật để quyết định xử lý gói tin nhƣ thế nào: cho phép chuyển gói tin

(ACCEPT), chặn và báo lại gói tin cho ngƣời gởi (REJECT), chặn gói tin

(DROP).

Hình 3. 5 Mô hình hoạt động của Iptables

Gói dữ liệu (packet) chạy trên cáp, sau đó đi vào card mạng. Đầu tiên

packet sẽ qua chain PREROUTING (trƣớc khi định tuyến). Tại đây, packet có

thể bị thay đổi thông số (mangle) hoặc bị đổi địa chỉ IP đích (DNAT). Đối với

packet đi vào máy, nó sẽ qua chain INPUT.

Tại chain INPUT, packet có thể đƣợc chấp nhận hoặc bị hủy bỏ. Tiếp

theo packet sẽ đƣợc chuyển lên cho các ứng dụng (client/server) xử lí và tiếp

theo là đƣợc chuyển ra chain OUTPUT.

Page 46: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 37

Tại chain OUTPUT, packet có thể bị thay đổi các thông số và bị lọc

chấp nhận ra hay bị hủy bỏ. Đối với packet forward qua máy, packet sau khi rời

chain PREROUTING sẽ qua chain FORWARD.

Tại chain FORWARD, nó cũng bị lọc ACCEPT hoặc DENY. Packet

sau khi qua chain FORWARD hoặc chain OUTPUT sẽ đến chain

POSTROUTING (sau khi định tuyến).

Tại chain POSTROUTING, packet có thể đƣợc đổi địa chỉ IP nguồn

(SNAT) hoặc MASQUERADE. Packet sau khi ra card mạng sẽ đƣợc chuyển

lên cáp để đi đến máy tính khác trên mạng.

Tóm tắt trình tự xử lý gói tin của iptables:

Page 47: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 38

Hình 3. 6 Trình tự xử lý gói tin trên Iptables

Page 48: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 39

Đầu tiên, gói dữ liệu đến mạng A, tiếp đó nó đƣợc kiểm tra bởi bảng

Mangle PREROUTING chain ( nếu cần) . Tiếp theo là kiểm tra gói dữ liệu bởi

bảng NAT PREPROUTING chain để kiểm tra gói dữ liệu có cần DNAT hay

không ?. Nếu cần, DNAT sẽ thay đổi đích đến của packet. Rồi gói packet đƣợc

chuyển đi.

Nếu gói packet đi vào trong mạng đƣợc bảo vệ, thì nó sẽ đƣợc lọc bởi

FORWARD chain của Filte table, và nếu cần gói dữ liệu sẽ đƣợc SNAT trong

POSTROUTING chain để thay đổi IP nguồn trƣớc khi vào mạng B.

Nếu gói dữ liệu đƣợc định hƣớng đi vào bên trong Firewall , nó sẽ đƣợc

kiểm tra bởi INPUT chain trong mangle table, nếu gói dữ liệu qua đƣợc các

chain này trong INPUT chain thì sẽ đƣợc vào trong chƣơng trình của các host

ben trong Firewall.

Khi Firewall cần gởi gói packet ra ngoài, gói packet sẽ đƣợc dẫn và đi

qua sự kiểm tra của OUTPUT chain trong Mangle table ( nếu cần ), tiếp đó là

kiểm tra trong OUTPUT chain của Nat table để xem DNAT có cần thiết hay

không và OUTPUT chain của Filter table sẽ kiểm tra gói dữ liệu nhằm phát

hiện các gói dữ liệu không đƣợc phép gởi đi. Cuối cùng, trƣớc khi packet ra

ngoài, SNAT và Qó sẽ đƣợc kiểm tra trong POSTROUTING chain.

I.6 Target và Jumps trong iptables

Jump là cơ chế chuyển một packet đến một target nào đó để xử lý

thêm một số thao tác khác.

Target là hành động sẽ dễn ra khi một gói dữ liệu đƣợc kiểm tra và phù

hợp với một yêu cầu nào đó. Khi một target đã đƣợc nhận dạng, gói dữ liệu cần

nhảy (Jump) để thực hiện các xử lý tiếp theo. Bảng sau liệt kê các target mà

iptables sẽ sử dụng.

Bảng 1. Miêu tả các target mà Iptables thường dùng nhất

Targets Ý nghĩa Tùy chọn

ACCEPT Iptables ngừng xử lý gói dữ liệu

đó và chuyển tiếp nó vào một ứng

Page 49: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 40

dụng cuối hoặc hệ điều hành để xử

DROP

Iptables ngừng xử lý gói dữ liệu

đó và gói dữ liệu bị chặn, loại bỏ

LOG

Thông tin của gói sẽ đƣợc đƣa

vào syslog để kiểm tra, iptables tiếp

tục xử lý gói với quy luật kế tiếp

--log-prefix "string" iptables

sẽ thêm vào log message một

chuỗi do ngƣời dùng định

nghĩa sẳn. Thông thƣờnglà để

thông báo lý do vì sao gói bị

bỏ.

REJECT

Tƣơng tự nhƣ DROP, nhƣng nó sẽ

trả lại cho phía ngƣời gửi một

thong báo rằng gói đã bị chặn và

loại bỏ

--reject-with qualifier

Than số qualifier sẽ cho biết

loại thông báo gửi trả lại phía

gửi. Qualifier gồm các loại

sau:

icmp-port-unreachable

(default)

icmp-net-unreachable

icmp-host-unreachable

icmp-proto-unreachable

icmp-net-prohibited

icmp-host-prohibited

tcp-reset

echo-reply

DNAT

Dùng để thực hiện Destination

network address translation, địa chỉ

đích của gói dữ liệu sẽ đƣợc viết lại

--to-destination ipaddress

Iptables sẽ viết lại địa chỉ

iptables vào địa chỉ đích của

gói dữ liệu .

SNAT

Dùng để thực hiện Source

network address translation, viết lại

của địa chỉ nguồn của gói dữ liệu .

--to-source <address>[-

<address>][:<port>-

<port>]

Miêu tả IP và port sẽ đƣợc

viết lại bởi iptables

MASQUER

ADE

Dùng để thực hiện Source

Networkaddress Translation.

[--to-ports <port>[-

<port>]]

Page 50: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 41

Ghi rõ tầm các port nguồn

gốc có thể ánh xạ đƣợc .

I.7 Các tham số dòng lệnh thƣờng dùng trong iptables

Các tham số sau sẽ cho phép iptables thực hiện các hành động sao cho

phù hợp với biểu đồ xử lý gói do ngƣời dùng hoạch định sẳn.

Bảng 2. Các tham số chuyển mạch quan trọng của iptables

Lệnh switching quan trọng Ý nghĩa

-t <table>

Nếu bạn không chỉ định rõ là tables nào, thì filter tables

sẽ đƣợc áp dụng. Có 3 loại tables là filter, NAT, mangle

-j <target>

Nhảy đến một chuổi targets nào đó khi gói dữ liệu phù

hợp quy luật hiện tại

-A Nối thêm 1 quy luật nào đó cuối chuổi (chain)

-F Xóa hết tất cả mọi quy luật trong bảng đã chọn

-p <protocol-type>

Phù hợp với giao thức (Protocols) thông thƣờng là icmp,

tcp, udp và all

-s <ip-address>

Phù hợp với ip nguồn

-d <ip-address> Phù hợp với ip đích

-i <interface-name>

Phù hợp điều kiện INPUT khi gói dữ liệu đi vào firewall

-o <interface-name>

Phù hợp điều kiện OUTPUT khi gói dữ liệu đi ra khỏi

firewall

Ví dụ:

iptables -A INPUT -s 0/0 -i eth0 -d 192.168.1.1 -p TCP -j ACCEPT

iptables đƣợc cấu hình cho phép ―firewall ― chấp nhận các gói dữ liệu sử

dụng giao thức (protocols) là TCP, có địa chỉ nguồn bất kỳ( 0/0), đến card

mạng eth0 và đến đích có địa chỉ IP 192.168.1.1 là địa chỉ của firewall.

Bảng 3. Các điều kiện TCP và UDP thông dụng

Lệnh switching Miêu tả

-p tcp --sport <port> Điều kiện TCP port nguồn (source port). Có thể là một

Page 51: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 42

giá trị hoặc một chuỗi có dạng: start-port-number:end-

port-number

-p tcp --dport <port>

Điều kiện TCP port đích (Destination port)

Có thể là một giá trị hoặc một chuổi có dạng: starting-

port:ending-port

-p tcp –syn

Dùng để nhận dạng một yêu cầu kết nối TCP mới .

!—syn, nghĩa là không có yêu cầu cần kết nối mới

-p udp --sport <port>

Điều kiện UDP port đích (source port)

Có thể là một giá trị hoặc một chuổi có dạng: start-port-

number:end-port-number

-p udp --dport <port>

Điều kiện UDP port đích (source port)

Có thể là một giá trị hoặc một chuổi có dạng: starting-

port:ending-port

Ví dụ:

iptables -A FORWARD -s 0/0 -i eth0 -d 192.168.1.58 -o eth1 -p TCP \--

sport 1024:65535 --dport 80 -j ACCEPT

Iptables đƣợc cấu hình cho phép firewall chấp nhận các gói dữ liệu có giao

thức là TCP, có địa chỉ nguồn là bất kỳ (0/0) đi đến card mạng eth0 có địa chỉ

192.168.1.58, đi ra từ card mạng eth1, có source port từ 1024 – 65535 và port

đích là 80.

Bảng 4. Điều kiện ICMP

Lệnh Miêu tả

--icmp-type <type> Thƣờng dùng nhất là echo-reply và eho-request

Một ví dụ về ICMP:

iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT

iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT

iptables đƣợc cấu hình cho phép firewall cháp nhận gởi ICMP eho-

repuests (pings) và gửi trả lời các ICMP echo-replies.

Một ví dụ khác:

Page 52: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 43

iptables -A INPUT -p icmp --icmp-type echo-request -m limit –limit 1/s -i

eth0 -j ACCEPT

Iptables cho phép giới hạn giá trị lớn nhất số lƣợng các gói phù hợp trong

một giây. Có thể định thời gian theo định dạng second, minute, hour hoặc day.

Hoặc xử dụng dạng viết tắt 3/s thay vì 3/second.Trong ví dụ này ICMP echo-

request bị giới hạn không nhiều hơn một yêu cầu trong một giây.Đặc điểm này

của iptables giúp ta giảm bớt các lƣu lƣợng lớn các kết nối trong 1 thời gian

nhất định . Đây chính là đặc tính của tấn công từ chối dịch vụ(DOS) và sâu

Internet

iptables -A INPUT -p tcp --syn -m limit --limit 5/s –I eth0 -j ACCEPT

Bạn có thể mở rộng khả năng giới hạn của iptables để giảm thiểu khả

năng bị tấn công bởi cá loại tấn công từ chối dịch vụ. Đây là cách phòng vệ

chóng lại kiểu tấn công SYN floot bằng cách hạn chế sự chấp nhận các phân

đoạn TCP có bít SYS không nhiều hơn 5 phân đoạn trong 1 giây.

Bảng 5. Các điều kiện mở rộng thông dụng

Lệnh Ý nghĩa

-m multiport --sport <port,

port>

Nhiều port nguồn khác nhau của TCP/UDP đƣợc

phân cách bởi dấu phẩy (,). Đây là liệt kê của các

port chứ không phải là một chuỗi các port.

-m multiport --dport <port,

port>

Nhiều port khác nhau của TCP/UDP đƣợc phân

cách bởi dấu phẩy (,). Đây là liệt kê của các port

chứ không phải là 1 chuổi các port. Không phân

biệt port đích hay port nguồn

-m multiport --ports <port,

port>

Các trạng thái thông dụng nhất đƣợc dùng là:

ESTABLISHED: Gói dữ liệu là một phần của kết

nối đã đƣợc thiết lập bởi cả 2 hƣớng.

NEW: Gói dữ liệu là bắt đầu của một kết nối mới

RELATED: Gói dữ liệu bắt đầu 1 kết nối phụ.

Thông thƣờng đây là đặc điểm của các giao thức

nhƣ FTP hoặc lỗi của ICMP .

INVALID: Gói dữ liệu không thể nhận dạng

đƣợc. Điều này có thể do việc thiếu tài nguyên hệ

thống hoặc do lỗi của ICMP không trùng với một

luồng dữ liệu đã có sẳn .

Page 53: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 44

Đây là phần mở rộng tiếp theo của ví dụ trước :

iptables -A FORWARD -s 0/0 -i eth0 -d 192.168.1.58 -o eth1 -p TCP \--

sport 1024:65535 -m multiport --dport 80,443 -j ACCEPT

iptables -A FORWARD -d 0/0 -o eth0 -s 192.168.1.58 -i eth1 -p TCP \-m

state --state ESTABLISHED -j ACCEPT

Iptables đƣợc cấu hình cho phép firewall chấp nhận các gói dữ liệu có

giao thức là TCP, đến từ card mạng eth0, ip nguồn là bất kỳ, đi đến địa chỉ

192.168.1.58 qua card mạng eth1. Số port nguồn là từ 1024 đến 65535 và port

đích là 80(http) và 443(https). Đến khi các gói dữ liệu nhận, trở lại từ

192.168.1.58, thay vì mở các port nguồn và đích, Chỉ cần cho phép dùng kết

nối cũ đã thiết lập bằng cách dùng tham số --state ESTABLISHED.

I.8 Sử dụng các chuỗi tự định nghĩa

Thay vì sử dụng các chain đã đƣợc xây dựng trong iptables,

ta có thể sử dụng User Defined chains để định nghĩa một chain name mô

tả cho tất cả protocol-type cho packet. Ta có thể dùng User Defined chains thay

thế chain dài dòng bằng cách sử dụng chain chính chỉ đến nhiều chain con.

Ví dụ: ta có thể sử dụng chain này để quyết định loại giao thức cho gói

và sau đó kiểm soát việc xử lý user-defined, protocol-specific chain trong bảng

filter table.

Các lệnh giúp việc cải tiến tốc độ xử lý:

iptables -A INPUT -i eth0 -d 206.229.110.2 -j fast-input-queue

iptables -A OUTPUT -o eth0 -s 206.229.110.2 -j fast-output-queue

iptables -A fast-input-queue -p icmp -j icmp-queue-in

iptables -A fast-output-queue -p icmp -j icmp-queue-out

iptables -A icmp-queue-out -p icmp --icmp-type echo-request -m state --

state NEW -j ACCEPT

iptables -A icmp-queue-in -p icmp --icmp-type echo-reply -j ACCEPT

Page 54: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 45

Bảng 6. Danh sách các lệnh (Queues)

Chain Description

INPUT Đƣợc xây dƣng trong INPUT chain trong bảng iptables

OUTPUT Đƣợc xây dựng trong OUTPUT chain trong bảng

Fast-input-queue

INPUT chain tách riêng biệt để hổ trợ cho những giao thức

đặc biệt và chuyển các gói đến nhƣng protocol specific

chains.

fast-output-queue

OUTPUT chain tách riêng biệt để hổ trợ cho những giao

thức đặc biệt và chuyển các gói đến nhƣng protocol specific

chains.

icmp-queue-out Lệnh OUTPUT tách rêng cho giao thức ICMP

icmp-queue-in Lệnh INPUT tách rêng cho giao thức ICMP

I.9 NAT trong iptables

NAT ( Network Address Translation ) là một kỹ thuật dùng để giải

quyết vấn đề IP shortage. NAT hoạt động nhƣ một router , công việc của nó là

chuyển tiếp các gói tin giữa các lớp mạng khác nhau trên một hệ thống mạng

lớn.

NAT trong iptables có thể hoạt động trên nhiều chức năng khác nhau

dựa trên thao tác với địa chỉ ( đích hoặc nguồn ) và các cổng. NAT trong

iptables hỗ trợ các module để giúp nhúng địa chỉ vào các gói dữ liệu đƣợc trao

đổi theo các giao thức.

Bảng 7 NAT trong iptables

Helper Protocol

ip_nat_amanda

Amanda backup protocol (cần cấu hình file

CONFIG_IP_NF_NAT_AMANDA)

ip_nat_ftp File Transfer Protocol (cần cấu hình file

CONFIG_IP_NF_NAT_FTP )

ip_nat_irc Internet Relay Chat (cần cấu hình file

CONFIG_IP_NF_NAT_IRC )

Page 55: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 46

ip_nat_snmp_basic Simple Network Management Protocol

(cần cấu hình file

CONFIG_IP_NF_NAT_SNMP_BASIC)

ip_nat_tftp Trivial File Transfer Protocol (cần cấu

hình file CONFIG_IP_NF_NAT_TFTP)

Nếu muốn một số gói tin nào đó vƣợt qua bảng NAT, chúng ta sử dụng lệnh:

#iptables -t nat -i eth1 ... -j ACCEPT

Source NAT (SNAT) và Destination NAT (DNAT) thƣờng đƣợc dùng

để chia sẻ kết nối internet giữa các máy tính trong mạng nội bộ . Máy tính khi

kết nối internet đƣợc xem nhƣ là một gateway . Source NAT (SNAT) sẽ thay

đổi địa chỉ nguồn của các gói tin di ra internet bằng địa chỉ Ip internet tĩnh của

gateway. Khi gateway nhận đƣợc các gói tin trả về từ internet , Destination

NAT (DNAT) sẽ thay đổi địa chỉ đích của các gói tin rồi chuyển đến các máy

tính trong mạng nội bộ.

Trong Iptables POSTROUTING chain của bảng NAT sẽ đảm nhận công

việc Source SNAT.Source NAT có hai phần mở rộng đó là SNAT và

MASQUERADE.SNAT đƣợc sử dụng cho các máy tính gateway có địa chỉ IP

tĩnh, còn MASQUERADE dùng cho các máy tính gateway có địa chỉ IP động.

Chúng ta có thể thiết lập SNAT trên giao diện eth1 bằng lệnh :

#iptables -t nat -A POSTROUTING -o eth1 -j SNAT

Và với MASQUERADE :

#iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

Tƣơng tự nhƣ vậy PREROUTING chain của bảng NAT sẽ đảm nhận

công việc Destination NAT (DNAT) . Ví dụ

#iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j

DNAT --to-destination 192.168.1.3:8080

Câu lệnh trên cho phép những gói tin di vào từ interface eth1 với giao

thức tcp cổng đƣợc chuyển đến địa chỉ IP 192.168.1.3 với số hiệu port 8080

Page 56: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 47

I.10 Ví dụ về một số rule trên Iptables

Cho phép DNS hoạt động

#iptables -A OUTPUT -p udp -o eth0 --dport 53 --sport 1024:65535 -j

ACCEPT

#iptables -A INPUT -p udp -i eth0 --sport 53 --dport 1024:65535

-j ACCEPT

Mở cổng cho phép WEB và SSL hoạt động

#iptables -A OUTPUT -o eth0 -m state --state

ESTABLISHED,RELATED -j ACCEPT

#iptables -A INPUT -p tcp -i eth0 --dport 22 –sport 1024:65535 -m state

--state NEW -j ACCEPT

#iptables -A INPUT -p tcp -i eth0 --dport 80 –sport 1024:65535 -m state

--state NEW -j ACCEPT

Cho phép máy firewall vào WEB

#iptables -A OUTPUT -j ACCEPT -m state --state NEW -o eth0 –p tcp -

m multiport --dport 80,443

#iptables -A INPUT -j ACCEPT -m state --state

STABLISHED,RELATED -i eth0 –p tcp

Cho phép máy tính mạng nội bộ vào internet thông qua interface eth1

#iptables -A INPUT -j ACCEPT -p all -s 192.168.1.0/24 -i eth1

#iptables -A OUTPUT -j ACCEPT -p all -d 192.168.1.0/24 -o eth1

Page 57: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 48

II.Triển khái iptables trên Redhat

II.1 Mô hình triển khai

Giả sử công ty A có mô mình mạng nhƣ sau :

Hình 3. 7 Sơ đồ mạng công ty A

Theo sơ đồ ta thấy :

o Client : card mạng có địa chỉ ip là 192.168.1.2 đƣợc nối vào card

eth0 iptables firewall

o Server : card mạng có địa chỉ ip là 192.168.2.2 đƣợc nối vào card

eth1 của Iptables firewall

o Firewall có 2 card mạng :

Eth0 : có địa chỉ ip là 192.168.1.1 đƣợc kết nối với Client

Eth1 : có địa chỉ ip là 192.168.2.1 đƣợc kết nối với server

II.2 Thiết lập iptables trên redhat

II.2.1 Cấm ssh đến firewall

Theo sự chỉ đạo của giám đốc công ty, chỉ có mỗi quản trị viên với địa

chỉ IP 192.168.1.3/24 mới đƣợc quyền truy cập SSH đến FireWall, còn lại tất

cả các máy nội bộ khác không đƣợc truy cập vào Firewall.

Ta cấu hình Iptables nhƣ sau :

#iptables -A INPUT -s 192.168.1.3 -i eth0 -p tcp -m tcp --dport 22 -j

ACCEPT

#iptables -A INPUT -s 192.168.1.0/24 -i eth0 -p tcp -m tcp --dport 22 -j

DROP

Page 58: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 49

Khi đó, tại máy client thuộc mạng 192.168.1.0/24 có địa chỉ IP 192.168.1.3 của

quản trị viên mới kết nối SSH đƣợc với Firewall. Ta sử dụng SSH Client đển

kết nối với Firewall nhƣ hình vẽ, ta nhập các thông tin của Host Name, User

Name của Firewall vào, Port Number mặc định là 22

Ta nhập Password của User

Sau khi kết nối thành công với câu lệnh ifconfig

Với một địa chỉ IP khác nhƣ 192.168.1.2/24 thì ta sẽ không login đƣợc

Page 59: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 50

II.2.2 Cấm Ping đến Firewall

Quản trị viên sẽ giới hạn độ dài của gói tin.Ví dụ ở đây là gói tin icmp, với

mỗi gói icmp nếu độ dài length <65 thì sẽ đƣợc gởi đến và phản hồi từ Firewall, còn

gói icmp >64 thì sẽ gởi đến Firewall, Firewall sẽ không gởi phản hồi lại.

Ta sử dụng lệnh :

#iptables –A INPUT –p icmp –icmp-type ping –m length 64:65535 –j

ACCEPT

Tại FireWall, ta sử dụng lệnh tcpdum host 192.168.1.1 để xem các gói

tin kết nối với Firewall.

Tại máy Client, ta sử dụng lệnh Ping với length <64 thì đƣợc kết quả :

Page 60: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 51

Tại máy Firewall với lệnh tcpdum host 192.168.1.1:

Với lệnh ping từ máy client có length >100 ta đƣợc hiện thông báo

Request time out ngay.

Tại máy server với lệnh tcpdum host 192.168.1.1:

Page 61: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 52

Page 62: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 53

KẾT LUẬN

Báo cáo này em mới chỉ dừng lại ở mức độ tìm hiểu, qua đó để hiểu rõ

hơn hệ điều hành Linux. Báo cáo đƣơc triển khai một cách khái quát, chƣa đi

vào cụ thể, mô hình mạng chỉ là một mô hình đơn giản, dựa trên các tài nguyên

có sẵn trên Linux.

Những gì mà chúng em vừa trình bày cho thấy việc cấu hình cho

Netfilter/Iptables là công việc không đơn giản. Để cấu hình tốt thì chúng ta

phải hiểu thật sâu về nó. Đa số hệ thống mạng của chúng ta bị tấn công là do

cấu hình không đúng.

Chúng em xin tổng kết lại những mặt đã làm đƣợc và những mặt còn tồn

tại:

Những mặt chúng em đã làm được: Đã đọc và tìm hiểu về

Netfilter/Iptables, có hiểu biết cơ bản để cấu hình một firewall trên hệ

thống linux. Hoàn thành tốt việc thiết lập một số rules trên Redhat.

Những mặt chúng em chưa làm được : Có một số cấu hình chúng em

chƣa thực hiện thành công, Một số dịch vụ chúng em đã đặt Rule nhƣng

chƣa có tác dụng.

Hƣớng phát triển của chúng em trong thời gian tới là tiếp tục tìm hiểu tài

liệu, nghiên cứu sâu hơn để có thể cấu hình tiếp những gì mà chúng em chƣa

hoàn thành. Từ đó có thể tự xây dựng cho mình một hệ thống Firewall an toàn.

Page 63: Bao cao thuc tap vdc tranning da nang la xuan tam,tran canh ngo

Tìm hiểu và cấu hình IPTables trên hệ điều hành linux

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 54

TÀI LIỆU THAM KHẢO

[1] Nguyễn Thị Điệp và Tiêu Đông Nhơn.Giáo trình Dịch vụ mạng Linux.Đại

học Quốc Gia Thành phố Hồ ChíMinh 12/2005.

[2] Nguyễn Hồng Thái. Cài đặt và cấu hình Ipables.2004,96tr

[3] Nguyễn Thanh Thúy, Nguyễn Quang Huy, Nguyễn Hữu Đức, Đinh Lan

Anh .Nhập môn hệ điều hành Linux.NXB Khoa học kỹ thuật 2000.

[4] O'Reilly Media. Linux iptables pocket reference

[5] Christopher Negus and Christine Bresnahan. CentOS Bible.938 trang

[6] Emmett Dulaney.Linux All in One For Dummies.652tr

[4] http://vnexperts.net/bai-viet-ky-thuat/nix/607-linux-distribution-distro.html

[5]http://www.pcworld.com.vn/articles/cong-nghe/cong-

nghe/2011/01/1223414/mot-so-linux-distro-pho-bien/

[6] http://vi.wikipedia.org/wiki/Linux

[7] http://my.opera.com/hautp/blog/

[8]http://www.quantrimang.com.vn/kienthuc/kien-thuc-co-ban/14320_Tim-

hieu-ve-FireWall.aspx

[9] http://docstore.mik.ua/orelly/networking/firewall/

[10]http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_

Ch14_:_Linux_Firewalls_Using_iptables