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

Triển khai IPtable

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 (934.01 KB, 13 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN

Đồ án
Triển khai IPtables/Firewalld trên Linux

Tên nhóm: Nhóm 8
Thành viên: 19521317 - Nguyễn Khải Đăng
19520368 - Nguyễn Khánh An
19520617 - Võ Đức Khải

TP. Hồ Chí Minh, năm 2021

Nội dung


2


Phần I: Giới thiệu đề tài
Ngày nay qua mạng Internet, có thể truy cập tới mọi nơi trên thế giới, khi ngồi trước
máy vi tính con người có thể biết mọi thơng tin trên tồn cầu, có thể giải trí, con
người có thể kinh doanh tiếp thị trên tồn cầu và tiếp cận đươc khối lượng thông tin
khổng lồ, luôn cập nhật trong thời gian tương đối nhanh. Tuy nhiên, cùng với những
lợi ích mà Internet đem lại thì vấn đề an ninh mạng cần được đưa ra xem xét một
cách nghiêm túc vì khi tham gia vào mạng có rất nhiều nguy hiểm. Nguy hiểm chính
là các tin tặc trên Internet ln rình rập để ăn trộm các thơng tin.Vấn đề này là mối
đe dọa lớn đối với mỗi cá nhân, một doanh nghiệp, một tổ chức hay một quốc gia về
sự hư hỏng và mất mát thông tin.
Thông tin là sự sống còn của một doanh nghiệp, một tổ chức hay một quốc gia hay


gần gủi hơn nó là một bí mật của người dùng. Do đó, phải bảo vệ thông tin từ các
mối đe dọa, một trong các giải pháp tốt nhất hiện nay là sử dụng bức tường lửa
(firewall). Trong hệ thống Unix/Linux có rất nhiều FIREWALL, trong đó có một
Firewall được cấu hình và hoạt động trên nền Console rất nhỏ và tiện dụng đó là
Iptable và Ipchains.

Phần II: Giới thiệu tổng quan Iptables/ Firewalld trên Linux
2.1 Giới thiệu
IPtables là ứng dụng tường lửa miễn phí trong Linux, cho phép thiết lập các
quy tắc riêng để kiểm sốt truy cập, tăng tính bảo mật.
2.2 Chức năng, thành phần
2.2.1 Chức năng:

Quản lý lưu lượng gói tin được gửi ra vào một mạng, hay nói cách khác là cho
phép người dùng thiết lập các quyền truy cập để kiểm soát một cách chọn lọc trên
máy chủ.
2.2.2 Thành phần

Tables (bảng): là các tệp tham gia các hành động được IPtables sử dụng để
định nghĩa các rules (quy tắc) dành cho các gói tin. Cụ thể gồm các table sau:
• Filter Table: Bảng Filter là một trong những bảng được sử dụng rộng rãi
nhất trong iptables. Bảng Filter được sử dụng để đưa ra quyết định về việc
có nên để gói tin tiếp tục đến đích dự định hay từ chối u cầu của nó hay
khơng. Theo cách nói tường lửa, đây được gọi là gói “lọc”. Bảng này cung
cấp phần lớn các chức năng mà mọi người nghĩ đến khi thảo luận về tường
lửa.
• NAT Table: Bảng NAT được sử dụng để thực hiện các quy tắc dịch địa chỉ
mạng. Khi các gói vào network stack, các quy tắc trong bảng này sẽ xác
định xem và cách sửa đổi địa chỉ nguồn hoặc đích của gói để tác động đến
cách gói và bất kỳ lưu lượng phản hồi nào được định tuyến. Điều này

thường được sử dụng để định tuyến các gói đến các mạng khi khơng thể
truy cập trực tiếp.
3


-

• Mangle Table: Bảng mangle được sử dụng để thay đổi các tiêu đề IP của
gói theo nhiều cách khác nhau. Chẳng hạn, có thể điều chỉnh giá trị TTL
(Thời gian để sống) của một gói, kéo dài hoặc rút ngắn số bước nhảy mạng
hợp lệ mà gói có thể duy trì. Các tiêu đề IP khác có thể được thay đổi theo
cách tương tự. Bảng này cũng có thể đặt “dấu” nhân bên trong trên gói để
xử lý thêm trong các bảng khác và bằng các công cụ mạng khác. Dấu này
khơng chạm vào gói thực tế, nhưng thêm dấu vào kernel’s representation
của gói.
• Raw Table: Tường lửa iptables có trạng thái, nghĩa là các gói được đánh giá
liên quan đến mối quan hệ của chúng với các gói trước đó. Các tính năng
theo dõi kết nối được xây dựng trên đỉnh của bộ lọc mạng cho phép iptables
xem các gói như một phần của kết nối hoặc phiên liên tục thay vì như một
luồng các gói rời rạc, không liên quan. Theo dõi kết nối một cách logic
thường được áp dụng rất sớm sau khi gói truy cập vào giao diện mạng.
Bảng có chức năng được xác định rất hẹp. Mục đích duy nhất của nó là
cung cấp một cơ chế đánh dấu các gói để từ chối theo dõi kết nối.
• Security Table: Bảng Security được sử dụng để đặt các dấu hiệu bối cảnh
bảo mật của Selinux bên trong trên các gói, điều này sẽ ảnh hưởng đến cách
thức Selinux hoặc các hệ thống khác có thể diễn giải bối cảnh bảo mật của
Selinux xử lý các gói. Các dấu này có thể được áp dụng trên cơ sở mỗi gói
hoặc mỗi kết nối.
Chains (chuỗi): là một dãy các quy tắc được tạo ra với một số lượng nhất định
ứng với mỗi table, giúp lọc gói tin tại các thời điểm khác nhau.

Targets (mục tiêu): là quyết định phải làm gì với 1 gói tin. Thơng thường gồm có
chấp nhận gói tin (accept), bỏ gói tin (drop) hoặc từ chối gói tin (reject) (điều này
sẽ gửi lại lỗi cho thiết bị gửi).
2.2.3 Cách thức hoạt đợng

Vì dữ liệu được chia thành các phần nhỏ hơn gọi là gói ở thiết bị gửi, được gửi
qua mạng, sau đó được ghép lại với nhau ở thiết bị nhận. Iptables xác định các gói
nhận được và sau đó sẽ tìm bảng thích hợp, và dị gói tin với các chuỗi quy tắc cho
đến khi tìm thấy bảng phù hợp sẽ đưa ra quyết định nên làm gì với gói tin đã nhận.
Hình sau mơ tả chi tiết thứ tự xử lý các table và các chain trong flow xử lý gói:

4


PHẦN III: Triển khai
3.1 Mơ hình





Bảng bộ lọc có 3 chuỗi bộ quy tắc:
INPUT – được sử dụng để điều khiển các gói tin đến tới máy chủ. Có thể chặn
hoặc cho phép kết nối dựa trên cổng, giao thức hoặc địa chỉ IP nguồn.
FORWARD – được sử dụng để lọc các gói dữ liệu đến máy chủ nhưng sẽ được
chuyển tiếp ở một nơi khác.
OUTPUT – được sử dụng để lọc các gói tin đi ra từ máy chủ.

3.2 Triển khai
3.2.1 Cài đặt


Iptables thưởng được cài đặt sẳn trong máy, để kiểm tra Iptables có được
cài đặt trong máy hay không, dùng câu lệnh:
iptables –version

-

Nhưng nếu chưa được cài đặt, sử dụng câu lệnh để install để cài đặt:

apt-get install iptables

3.2.2 Kiểm tra trạng thái IP/Tables

Câu lệnh:
sudo iptables -L -v
-L là liệt kê tất cả các quy tắc
-v hiện thêm các danh sách bổ trợ
5


sudo iptables -L -v
Hiện cả ba chains được thiết lập mặc định

3.2.3
các chain rules:

Định

nghĩa


Thực hiện thêm các chain rules vào danh sách chain hiện tại.
sudo iptables -A -i <interface> -p -s <source> -dport
-j <target>
-A: thêm chain rules
-i <interface> là cổng mạng cần thực hiện lọc các gói tin
-p là giao thức mạng thực hiện lọc (tcp/udp)
--dport là cổng mà muốn đặt bộ lọc
-

1. Cho phép lưu lượng truy cập trên localhost:
Cho phép giao tiếp giữa ứng dụng mà database của nó trên server như bình
thường:
sudo iptables -A INPUT -i lo -j ACCEPT
-A thêm rules vào chains INPUT cho phép tất cả các kết nối ở interface lo

-

Cho phép truy cập trên các cổng HTTP, SSH, SSL:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

6


Cho phép tất cả các truy cập TCP trên các cổng 22 (SSH), HTTP (80), HTTPS
(443)
2. Lọc các gói tin dựa trên nguồn của nó
Cho phép hay từ chối các gói tin dựa trên một IP nguồn bằng cách sữ dụng
tham số -s

sudo iptables -A INPUT -s INPUT -j [ACCEPT/DROP]
INPUT: nguồn muốn chặn học cho phép
ACCEPT: cho phép
DROP: chặn
Ví dụ:
- Cho phép các gói tin từ IP 192.168.1.5
sudo iptables -A INPUT -s 192.168.1.5 -j ACCEPT

-

Từ
192.168.1.5

chối các gói tin từ IP

sudo iptables -A INPUT -s 192.168.1.5 -j DROP

-

Từ chối các gói tin từ một dãy IP

sudo iptables -A INPUT -m iprange --src-range 192.168.1.100-192.168.1.200
-j DROP
Sử dụng tham số iprange -m với dãy IP đặt sau –src-range

7


3. Xóa các rules
- Xóa tất cả các rules:

sudo iptables -F
-F : xóa tất cả các rules

-

Xóa từng rules khác nhau
Bước 1: Kiểm tra liệt kê các rules tương ứng với từng số
sudo iptables -L --line-numbers

Bước 2: Dựa vào số chỉ mục để xóa
sudo iptables -L --line-numbers
3.2.4 Lưu các thay đổi

Các Iptables rules tạo ra đều được lưu ở bộ nhớ, nếu reboot máy chủ thì cần
thực hiện tạo lại các rules này.
-

Để lưu giữ vào cấu hình hệ thống:
8


sudo /sbin/iptables-save

-

Tắt firewall:

sudo iptables -F
sudo /sbin/iptables-save


3.3 Mở rộng

3.3.1 Đặt rules filter chặn ko cho client đi https

Cấu hình IP cho Client và Server với cổng NAT bật chế độ DHCP còn 2 cổng
Host-only tắt chế độ DHCP và đặt thử cơng sẽ được như hình

Sau đó sử dụng lệnh:
echo "1" > /proc/sys/net/ipv4/ip_forward
hoặc
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward

9


Nhằm mục đích enable Forwarding, có thể hiểu đơn giản là nó giúp forward
các packet qua các interface sau khi nhậm lệnh trên , sẽ sử dụng NAT tables nhằm
mục đích cho phép Client truy cập Internet bằng câu lệnh:
iptables -t nat -A POSTROUTING -o ens38 -j MASQUERADE
-t nat: chọn bảng "nat" để cấu hình các quy tắc NAT.
-A POSTROUTING: Nối quy tắc vào chuỗi POSTROUTING (A là viết tắt của "append").
-o ens38: quy tắc này hợp lệ cho các gói rời khỏi giao diện mạng thứ hai (-o
là viết tắt của "đầu ra")
-j MASQUERADE: hành động sẽ xảy ra là 'giả mạo' các gói, tức là thay thế
địa chỉ của người gửi bằng địa chỉ của bộ định tuyến.
Sau khi nhập xong sẽ kiểm tra bảng NAT bằng câu lệnh:
sudo iptables -L -t nat
-L: liệt kê (viết tắt của “list”)
-t nat: là xác định bảng cần là nat
3.3.2 Configure NAT để client đi đc Internet


Sau khi NAT thành công sẽ được kết quả như sau với cả hai thiết bị là Client và
Server đều kết nối được Internet:

Mục tiêu chặn không cho Client truy cập các trang web https sử dụng câu lệnh
sau:
sudo iptables -A FORWARD -p tcp –dport 443 -s 192.168.150.129 -j DROP
-A FORWARD: xác định chain sử dụng là FORWARD
-p tcp : xác định giao thức là tcp (-p việt tắt của “protocol”)
-dport 443: xác định cổng đích của giao thức là 443 ứng với https
10


-s 192.168.150.129: xác định nguồn bị chặn là Client (với -s là viết tắt của
“source” và 192.168.150.129 là IP cổn Host-Only trên Client)
-j DROP: là xác định trạng thái là huỷ bỏ gói tin
Sau khi nhập câu lệnh trên sẽ nhận được kết quả là

Phần IV: Kết quả và kết luận
Đề tài về Firewall luôn là mối quan tâm hàng đầu của các nhà quản trị mạng
nói riêng và của những nhà tin học nói chung. Để có thể xây dựng được một mạng
riêng mà có thể tránh khỏi mọi sự tấn cơng là khơng thể, nhưng có thể xây dựng
được những mạng có tính an tồn cao theo những yêu cầu cụ thể. Để có thể xây
dựng được những mạng như vậy, người quản trị mạng phải nắm rõ được những
kiến thức cơ bản về Firewall. Thực hiện đề tài xây dựng chương trình Firewall
Iptables trong Linux sau quá trình học tập và tìm hiểu, đề tài này đã minh hoạ
phần nào những kiến thức cơ bản đó và những ví dụ rất cụ thể giúp cho người đọc
có thể trực tiếp thực hiện một cách dễ dàng.
Trong phần ứng dụng đã minh hoạ được một số chức năng của hệ thống
Firewall: IP Masquerading, IP NAT. Nhưng do thời gian có hạn, lượng

kiến thức liên quan đến đề tài rất nhiều, nên những ứng dụng trên chỉ mang
tính chất minh hoạ.
Với hệ thống Firewall sử dụng Iptables trên Linux đạt được sự ổn định cao của
hệ điều hành Linux và một Iptables với nhiều chức năng đáp ứng được cho nhu
cầu của các đơn vị có nhu cầu xây dựng hệ thống Firewall khi có mạng nội bộ kết
nối Internet. Hệ thống Firewall này mang tính ứng dụng thực tế cao vì:
* Phần cứng sử dụng cho hệ thống này khơng cần có cấu hình mạnh.
* Tất cả các phần mềm sử dụng cho hệ thống này đều là phần mềm mã nguồn
mở.
* Tài liệu hỗ trợ cho các phần mềm này có đầy đủ trên Internet và miễn phí.
* Trên Internet có nhiều diễn đàn về chủ đề này.
* Hệ thống được thiết kế mềm dẻo tuỳ vào chính sách an tồn của đơn vị.
* Sử dụng hệ điều hành có độ ổn định cao và bảo mật tốt.
11


Phần V: File đính kèm
1. Slide Powerpoint:
2. Video demo:
/>K?usp=sharing

Phần VI: Trả lời câu hỏi
1. Làm thế nào để chặn một web cụ thể ?

Muốn chặn một vài trang web cũng chạy trên https, như facebook, twitter và
gmail, …
Cách 1: Chặn toàn bộ kết nối qua port: (80 – http; 443 - https)
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
Cách 2: Chặc bằng tên miền
iptables -I FORWARD -m string --string "facebook.com" \

--algo bm --from 1 --to 600 -j REJECT
2. Chặn từ ngồi vào thì sẽ như thế nào?

IPtables -A INPUT -j DROP
3. Ưu và nhược điểm của Iptable?

Iptables là firewall rất mạnh do được tích hợp sẵn trong nhân của hệ điều hành
Linux Iptables có tốc độ nhanh hơn nhiều so với các firewall khác. Có thể nói đây
là một trong những firewall chi tiết nhất vì các rule của nó áp dụng chi tiết cho
từng gói tin. Nhưng cũng chính vì vậy mà cách tạo rule trong Iptables rất phức tạp.
Ngoài việc phải ghi nhớ những tham số và câu lệnh khá dài thì người quản trị cịn
phải hiểu rõ phương thức xử lý gói tin trong Iptables. Người quản trị còn phải nắm
vững lý thuyết về phương thức tạo kết nối cũng như các công làm việc của từng
ứng dụng. Vì vậy việc quản trị loại firewall này khơng phải dễ Iptables có nhiều
ưu điểm nhưng cũng khơng ít nhược điểm. Do đó chúng ta nên cân nhắc kỹ trước
khi sử dụng loại firewall nay.

12


Phụ lục
4.1. Bảng tự đánh giá
- Nguyễn Khải Đăng
4

3

2

1


Điểm/9

Hình thức báo cáo (1 điểm)

x

1

Thuyết trình (1 điểm)

x

1

Phần cơ sở lý thuyết (2 điểm)

x

2

Phần thực hiện (5 điểm)

x

5

Điểm tổng

9


- Võ Đức Khải
4

3

2

1

Điểm/9

Hình thức báo cáo (1 điểm)

x

1

Thuyết trình (1 điểm)

x

1

Phần cơ sở lý thuyết (2 điểm)

x

2


Phần thực hiện (5 điểm)

x

5

Điểm tổng

9

- Nguyễn Khánh An
4

3

2

1

Điểm/9

Hình thức báo cáo (1 điểm)

x

1

Thuyết trình (1 điểm)

x


1

Phần cơ sở lý thuyết (2 điểm)

x

2

Phần thực hiện (5 điểm)

x

5

Điểm tổng

9

4.2. Bảng phân công
Tên
Nguyễn Khải Đăng

Phân công
Nghiên cứu và triển khai IPtables đặt rules trên Server

Võ Đức Khải

Tìm hiểu về lý thuyết về IPTable, thuyết trinh và làm
power point


Nguyễn Khánh An

Nghiên cứu và triển khai NAT giúp Client có thể truy cập
Internet

13



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×