Giới thiệu - Firewall Tường lửa là rào chắn mà một số cá nhân, tổ chức, doanh nghiệp, cơ quan nhà nước lập ra nhằm ngăn chặn người dùng mạng Internet truy cập các thông tin không mong mu
Trang 1Trường Đại học Bách Khoa Hà Nội
Viện CNTT-TT
Quản trị mạng
Đề tài: Tìm hiểu về tường lửa và Netfilter
1 Đậu Văn Thắng 20112678
2 Vũ Văn Hưng 20111656
Giáo viên hướng dẫn: Trần Hoàng Hải
Hà Nội : 10/07/2015
Trang 2Nội Dung
I Tìm hiểu về firewall 3
1 Giới thiệu 3
2 Các tính năng bảo vệ 3
2.1 Bảo vệ máy tính cá nhân 3
2.2 Thiết lập phạm vi an ninh mạng 3
3 Các hoạt động của Firewall 3
3.1 Quản lý và kiểm soát luồng dữ liệu trên mạng 3
3.2 Xác thực quyền truy cập 4
3.3 Hoạt động như một thiết bị trung gian 5
3.4 Bảo vệ tài nguyên 5
3.5 Ghi nhận và báo cáo các sự kiện 5
4 Firewall mềm 5
5 Firewall cứng 6
6 Các loại Firewall 6
6.1 IP Packet Filtering – Bộ lọc gói tin 6
6.2 Circuit-Level Gateway 8
6.3 Application Level Firewalls - Cổng ứng dụng 8
7 Cấu hình Firewall 10
II Tìm hiểu về Netfilter 12
1 Định nghĩa 12
2 Cơ sở của Netfilter 13
3 Lịch sử 14
4 Các module chính của Netfilter 14
4.1 Giới thiệu về Iptables 15
4.2 Tìm hiểu về Nat (Network address translation) 16
4.3 Tìm hiểu về Connection Tracking 17
Trang 3I Tìm hiểu về firewall
1 Giới thiệu
- Firewall( Tường lửa) là rào chắn mà một số cá nhân, tổ chức, doanh nghiệp, cơ quan nhà nước lập ra nhằm ngăn chặn người dùng mạng Internet truy cập các thông tin không mong muốn hoặc/và ngăn chặn người dùng từ bên ngoài truy nhập các thông tin bảo mật nằm trong mạng nội bộ
- Là thiết bị phần cứng hoặc phần mềm hoạt động trong môi trường máy tính nối mạng để ngăn chặn một số liên lạc bị cấm bởi chính sách an ninh của cá nhân hay
tổ chức
2 Các tính năng bảo vệ
2.1 Bảo vệ máy tính cá nhân
- Cách gọi khác là “Tường lửa bảo vệ” nhằm bảo vệ cho máy tính cá nhân hay mạng cục bộ, tránh sự xâm nhập, tấn công từ bên ngoài
2.2 Thiết lập phạm vi an ninh mạng
- Hay còn gọi là “Tường lửa ngăn chặn” thường được các nhà cung cấp dịch vụ Internet thiết lập và có nhiệm vụ ngăn chặn không cho máy tính truy cập một số trang web hay máy chủ nhất định, thường dùng với mục đích kiểm duyệt Internet
3 Các hoạt động của Firewall
3.1 Quản lý và kiểm soát luồng dữ liệu trên mạng
Việc đầu tiên và cơ bản nhất mà tất cả các firewall đều có là quản lý và kiểm soát luồn dữ liệu trên mạng, firewall kiểm tra các gói tin và giám sát các kết nối đang thực hiện và sau
đó lọc các kết nối dựa trên kết quả kiểm tra gói tin và các kết nối được giám sát
Trang 4– Packet inspection (kiểm tra gói tin) là quá trình chặn và xử lý dữ liệu trong một gói tin
để xác định xem nó được phép hay không được phép đi qua firewall Kiểm tra gói tin có thể dựa vào các thông tin sau:
- Địa chỉ IP nguồn
- Port nguồn
- Địa chỉ IP đích
- Port đích
- Giao thức IP
- Thông tin trong header (sequence numbers, checksums, data flags, payload
information…)
– Connections và state: Khi hai TCP/IP host muốn giao tiếp với nhau, chúng cần thiêt lập một số kết nối với nhau Các kết nối phục vụ hai mục đích Thứ nhất, nó dùng để xác thực bản thân các host với nhau Friewall dùng các thông tin kết nối này để xác định kết nối nào được phép và các kết nối nào không được phép.Thứ hai, các kết nối dùng để xác định cách thức mà hai host sẽ liên lạc với nhau (dùng TCP hay dùng UDP…)
– Stateful Packet Inspection (giám sát gói tin theo trạng thái): Statefull packet inspection 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
3.2 Xác thực quyền truy cập
- Firewall có thể xác thực quyền truy cập bằng nhiều cơ cấu xác thực khác nhau Thứ nhất, firewall có thể yêu cầu username và password của người dùng khi người dùng truy cập (thường được biết đến như là extended authentication hoặc xauth) Sau khi firewall xác thực xong người dùng, firewall cho phép người dùng thiết lập kết nối và sau đó không hỏi username và password lại cho các lần truy cập sau (thời gian firewall hỏi lại username và password phụ thuộc vào cách cấu hình của người quản trị) Thứ hai, firewall có thể xác thực người dùng bằng certificates và public key Thứ ba, firewall có thể dùng pre-shared keys (PSKs) để xác thực người dùng
Trang 53.3 Hoạt động như một thiết bị trung gian
Khi user thực hiện kết nối trực tiếp ra bên ngoài sẽ đối mặt với vô số nguy cơ về bảo mật như bị virus tấn công, nhiễm mã độc hại… do đó việc có một thiết bị trung gian đứng ra thay mặt user bên trong để thực hiện kết nối ra bên ngoài là cần thiết để đảm bảo an toàn Firewall được cấu hình để thực hiện chức năng này và firewall được ví như một proxy trung gian
3.4 Bảo vệ tài nguyên
Nhiệm vụ quan trọng nhất của một firewall là bảo vệ tài nguyên khỏi các mối đe dọa bảo mật Việc bảo vệ này được thực hiện bằng cách sử dụng các quy tắc kiểm soát truy cập, kiểm tra trạng thái gói tin, dùng application proxies hoặc kết hợp tất cả để bảo vệ tài nguyên khỏi bị truy cập bất hợp pháp hay bị lạm dụng Tuy nhiên, firewall không phải là một giải pháp toàn diện để bảo vệ tài nguyên của chúng ta
3.5 Ghi nhận và báo cáo các sự kiện
Ta có thể ghi nhận các sự kiện của firewall bằng nhiều cách nhưng hầu hết các firewall sử dụng hai phương pháp chính là syslog và proprietaty logging format Bằng cách sử dụng một trong hai phương pháp này, chúng ta có thể dễ dàng báo cáo các sự kiện xẩy ra trong
hệ thống mạng
4 Firewall mềm
- Là những firewall được cài đặt trên một hệ điều hành Firewall mềm bao gồm các sản phẩm như SunScreen firewall, IPF, Microsoft ISA server, Check Point NG, Linux’s IPTables …Firewall mềm thường đảm nhận nhiều vai trò hơn firewall cứng, nó có thể đóng vai trò như một DNS server hay một DHCP server
- Ưu điểm: việc thay đổi và nâng cấp thiết bị phần cứng là tương đối dễ dàng và
nhanh chóng
- Nhược điểm: được cài đặt trên một hệ điều hành và do đó khả năng có lỗ hổng
trên hệ điều hành này 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ì firewall 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 firewall từ nhà cung cấp sản phẩm firewall
Trang 6- Do hệ điều hành mà firewall mềm chạy trên nó không được thiết kế tối ưu cho firewall nên firewall mềm có hiệu suất thấp hơn firewall cứng
5 Firewall cứng
– Là những firewall được tích hợp sẵn trên các phần cứng chuyên dụng, thiết kế dành riêng cho firewall Các sản phẩm firewall cứng đáng chú ý như Cisco PIX, NetScreen firewall, SonicWall Appliaces, WatchGuard Fireboxes, Nokia firewall…
- Ưu điểm:
● Trong nhiều trường hợp firewall cứng cung cấp hiệu suất tốt hơn so firewall mềm
vì hệ điều hành của firewall cứng được thiết kế để tối ưu cho firewall
● Lợi ích điển hình khi sử dụng firewall cứng là hiệu suất tổng thể tốt hơn firewall mềm, tính bảo mật được nâng cao, tổng chi phí thấp hơn so với firewall mềm
- Nhược điểm:
● Firewall cứng không được linh hoạt như firewall mềm ( không thể thêm chức năng, thêm các quy tắc như trên firewall mềm)
● Khả năng tích hợp thêm các chức năng bổ sung khó khăn hơn firewall mềm, chẳng hạn như chức năng kiểm soát thư rác đối với firewall mềm chỉ cần cài đặt chức năng này như một ứng dụng còn đối với firewall cứng phải có thiết bị phần cứng
hỗ trợ cho chức năng này
6 Các loại Firewall
6.1 IP Packet Filtering – Bộ lọc gói tin
- Bộ lọc gói tin cho phép hay từ chối packet mà nó nhận được Nó kiểm tra toàn bộ đoạn dữ liệu để quyết định xem đoạn dữ liệu đó có thỏa mãn một trong các số các rules hay không Các rules này dựa trên các thông tin ở packet header bao gồm các thông tin sau:
❖ Địa chỉ IP nguồn (IP Source Address)
❖ Địa chỉ IP đích (IP Destination Address)
❖ Protocol (TCP, UDP, ICMP, IP tunnel)
Trang 7❖ TCP/UDP source port
❖ TCP/UDP destination port
❖ Dạng thông báo ICMP (ICMP message type)
❖ Cổng gói tin đến (Incomming interface of packet)
❖ Cổng gói tin đi (Outcomming interface of packet)
Packet filtering router
Nếu rules lọc gói được thỏa mãn thì packet được chuyển qua firewall, nếu không packet
sẽ bị bỏ đi Nhờ vậy mà firewall có thể ngăn cản được các kết nối vào các máy chủ hoặc mạng nào đó được xác định, hoặc khóa việc truy cập vào hệ thống mạng nội bộ từ những địa chỉ không cho phép Ngoài ra, việc kiểm soát các cổng làm cho firewall có khả năng chỉ cho phép một số loại kết nối nhất định vào các loại máy chủ nào đó hoặc những dịch
vụ nào đó (SSH, SMTP, FTP…) được phép mới chạy được trên hệ thống mạng cục bộ
● ưu điểm:
- Phương pháp dùng bộ lọc gói có chi phí thấp vì cơ chế lọc gói đã có sẵn trong các router
- Bộ lọc gói trong suốt với người sử dụng nên không yêu cầu người sử dụng phải thao tác gì
● Nhược điểm
- Việc định nghĩa các chế độ lọc gói là một việc khá phức tạp, nó đòi hỏi người quản trị mạng cần có hiểu biết chi tiết về các dịch vụ internet, các dạng packet header
- Do làm việc dựa trên header của các packet nên bộ lọc không kiểm soát được nội dung thông tin của packet Các packet chuyển qua vẫn có thể mang theo những hành động với ý đồ ăn cắp thông tin hay phá hoại của kẻ xấu
Trang 86.2 Circuit-Level Gateway
Circuit Level Gateway – cổng vòng – là một chức năng đặc biệt có thể thực hiện bởi một cổng ứng dụng Cổng vòng đơn giản chỉ là chuyển tiếp các kết nối TCP mà không thực hiện bất kì một hành động xử lý hay lọc gói nào
Hình sau minh họa một hành động sử dụng kết nối telnet qua cổng vòng Cổng vòng đơn giản chuyển tiếp kết nối telnet qua firewall mà không thực hiện một sự kiểm tra, lọc hay điều khiển các thủ tục telnet nào Cổng vòng làm việc như một sợi dây, sao chép các byte giữa kết nối bên trong (inside connection) và các kết nối bên ngoài (outside connection) Tuy nhiên vì sự kết nối này xuất hiện từ hệ thống firewall nên nó che dấu thông tin về mạng nội bộ
Circuit Level Gateway - Cổng vòng
Cổng vòng thường được sử dụng cho những kết nối ra ngoài Ưu điểm lớn nhất là một Bastion host có thể được cấu hình như là một hỗn hợp cung cấp cổng ứng dụng cho những kết nối đến và cổng vòng cho các kết nối đi Điều này làm cho hệ thống firewall
dễ dàng sử dụng cho người dùng trong mạng nội bộ muốn trực tiếp truy câp tới các dịch
vụ internet, trong khi vẫn cung cấp chức năng bảo vệ mạng nội bộ từ những sự tấn công bên ngoài
6.3 Application Level Firewalls - Cổng ứng dụng
Đây là một loại firewall được thiết kế dể tăng cường chức năng kiểm soát các loại dịch
vụ, giao thức truy cập vào hệ thống mạng Cơ chế hoạt động của nó dựa trên cách thức gọi là proxy service Proxy service là các bộ code đặc biệt cài đặt trên cổng ra (gateway) cho từng ứng dụng Nếu người quản trị mạng không cài đặt proxy service cho một ứng
Trang 9dụng nào đó, dịch vụ tương ứng sẽ không được cung cấp và do đó không thể chuyển thông tin qua firewall Ngoài ra, proxy code có thể được định cấu hình để hỗ trợ chỉ một
số đặc điểm trong ứng dụng mà người quản trị cho là chấp nhận được trong khi từ chối những đặc điểm khác
Application gateway
Một cổng ứng dụng thường được coi như là một Bastion host bởi vì nó được thiết kế đặt biệt để chống lại sự tấn công từ bên ngoài Những biện pháp đảm bảo an ninh của một Bastion host là:
– Bastion host luôn chạy các version an toàn (secure version) của các phần mềm hệ điều hành (Operating system) Các version an toàn này được thiết kế chuyên cho mục đích chống lại sự tấn công vào hệ điều hành (Operating system) cũng như là đảm bảo sự tích hợp firewall
– Chỉ những dịch vụ mà người quản trị mạng cho là cần thiết mới được cài đặt trên
Bastion host, đơn giản chỉ vì nếu một dịch vụ không được cài đặt, nó không thể bị tấn công Thông thường, chỉ một số giới hạn các ứng dụng cho các dịch vụ telnet, DNS, FTP, SMTP và xác thực user là được cài đặt trên Bastion host
– Bastion host có thể yêu cầu nhiều mức độ khác nhau ví dụ như username và password hay smart card
Mỗi proxy được cài đặt cấu hình để cho phép truy nhập chỉ một số các máy chủ nhất định Điều này có nghĩa rằng bộ lệnh và đặc điểm thiết lập cho mỗi proxy chỉ đúng với một số máy chủ trên toàn hệ thống
Trang 10Mỗi proxy duy trì một quyển nhật ký ghi chép lại toàn bộ chi tiết của dữ liệu mạng đi qua
nó Điều này có nghĩ là bộ lệnh và đặc điểm thiết lập cho mỗi proxy chỉ đúng với một số máy chủ trên toàn hệ thống
Mỗi proxy đều độc lập với các proxy khác trên Bastion host Điều này cho phép dễ dàng cài đặt một proxy mới hay tháo gỡ một proxy
Ưu điểm:
– Cho phép người quản trị hoàn toàn điều khiển được từng dịch vụ trên mạng, bởi vì ứng dụng proxy hạn chế bộ lệnh và quyết định những máy chủ nào có thể truy cập bởi các dịch vụ
– Cổng ứng dụng cho phép kiểm tra độ xác thực rất tốt và nó có nhậy ký ghi chép lại thông tin về truy cập hệ thống
– Rule lọc cho cổng ứng dụng dễ dàng cấu hình và kiểm tra hơn so với bộ lọc gói
Nhược điểm:
– Cần phải có sự cấu hình trên máy user để user truy cập vào các dịch vụ proxy Ví dụ telnet
7 Cấu hình Firewall
- Mô tả cho việc cấu hình Firewall trên Ubuntu
B1: Tường lửa mặc định bị vô hiệu hóa Để kích hoạt tường lửa, nhập câu lệnh sau từ cửa
sổ lệnh:
sudo ufw enable
Trang 11B2: Đặt luật cho Firewall
Giả sử ta muốn cho phép lưu lượng SSH qua cổng 22 Để làm điều này, hãy sử dụng một trong số những câu lệnh sau:
sudo ufw allow 22 (Cho phép cả lưu lượng UDP và TCP)
sudo ufw allow 22/tcp (Chỉ cho phép lưu lượng TCP)
sudo ufw allow ssh (Kiểm tra trong file /etc/services trên hệ thống để tìm cổng mà SSH
yêu cầu và cho phép nó Nhiều service phổ biến được liệt kê trong file này)
- để chặn lưu lượng SSH ra mạng, gõ câu lệnh sau:
sudo ufw reject out ssh
Để xem tất cả những luật đã được tạo ra, ta sử dụng câu lệnh sau:
sudo ufw status
Trang 12Để xóa một luật, thêm từ khóa delete trước luật đó Ví dụ như, để dừng hành động chặn lưu lượng SSH ra ngoài mạng, sử dụng câu lệnh sau:
sudo ufw delete reject out ssh
Để đặt lại tường lửa về trạng thái mặc định, sử dụng câu lệnh:
sudo ufw reset
II Tìm hiểu về Netfilter
1 Định nghĩa
Netfilter là một khung bên trong của nhân Linux giúp cung cấp sự linh hoạt cho các hoạt động mạng khác nhau để phù hợp với các xử lý khác nhau Netfilter có các lựa chọn như: packet filtering, network address translation, và port translation Các phương thức của Netfilter sẽ cung cấp các hướng dẫn cho các packets đi qua mạng cũng như việc tiến hành ngăn chặn các packet trong phạm vi dễ bị ảnh hưởng trong mạng máy tính
Netfilter đại diện cho một tập các hooks trong mạng máy tính (trong lập trình hooks bao gồm một loạt các kỹ thuật sử dụng để thay đổi hoặc tăng cường hành vi của một hệ điều hành, các ứng dụng, hoặc các thành phần phần mềm khác bằng cách chặn các chức năng như cuộc gọi, tin nhắn hay các sự kiện giữa các thành phần phần mềm) do đó nó cho phép xác định các modules để đăng ký hàm “callback” với ngăn xếp kernel's network (hàm callback là hàm của người dùng được triệu gọi trong một hàm khác hay một thủ tục
Trang 13trong tiến trình hoạt động, một hàm viết để triệu gọi hàm callback thì đối số của nó phải
là kiểu con trỏ cho phép khai báo hàm callback)
Sau đây là mô hình cơ bản của một một chuỗi các hooks
Phần bên trái là nơi mà gói Packets tới: qua các kiểm tra đúng đắn đơn giản (chẳng hạn như IP checksum), chúng sẽ qua netfilter framework là hook NF_IP_PRE_ROUTING [1]
Sau đó chúng vào đoạn mã chuyển tiếp, chúng sẽ được quyết định sẽ được gắn vào
interface khác hay sẽ được xử lý luôn Đoạn mã chuyển tiếp cũng có thể tiến hành xóa packets
Nếu nó được gắn vào interface của ban đầu, netfilter framework sẽ được gọi tới hook NF_IP_LOCAL_IN [2], trước khi qua để được xử lý
Nếu nó được gắn vào một interface khác, netfilter framework sẽ gọi tới hook
NF_IP_FORWARD [3]
Packet sau đó sẽ qua netfilter hook cuối cùng, hook NF_IP_POST_ROUTING [4], trước khi được đưa vào chuỗi một lần nữa
Hook NF_IP_LOCAL_OUT [5] sẽ được gọi cho packets được tạo ra tại địa phương Ở đây bạn có thể thấy sự định tuyến sau khi hook được gọi: thực tế đoạn mã chuyển tiếp sẽ được gọi đầu tiên (để cấu hình cho IP address và một số IP options) Nếu bạn muốn thay đổi việc chuyển tiếp, bạn phải thay đổi trường ‘skb dst’ của bạn, có thể thực hiện bởi
mã NAT
2 Cơ sở của Netfilter
Hiện tại chúng ta có một số ví dụ về netfilter cho IPv4, bạn có thể nhìn thấy khi mỗi hook được kích hoạt Nó là bản chất của netfilter