Firewall không thể làm được gì?• Không thể chống lại được những nhân tố phá hoại từ bên trong • Không thể bảo vệ mạng chống lại những kết nối không đi qua firewall – VD: Nếu bên trong m
Trang 1an toàn mạng thông tin
Bức tường lửa
(Firewall)
Trang 2Bức tường lửa là gì?
• Thuật ngữ bức tường lửa (firewall) cú nguồn gốc từ một
kỹ thuật thiết kế trong xõy dựng để ngăn chặn, hạn chế hỏa hoạn
• Trong cụng nghệ mạng thụng tin, firewall là một kỹ thuật được tớch hợp vào hệ thống mạng:
– Chống truy cập trỏi phộp vào cỏc tài nguyờn và dịch
vụ của mạng
– Bảo vệ cỏc nguồn thụng tin nội bộ
– Hạn chế cỏc thụng tin khụng mong muốn xõm nhập vào hệ thống
Trang 4• Về mặt chức năng hệ thống, firewall được đặt giữa hai mạng để kiểm soát mọi lưu thông và truy cập giữa chúng với nhau: chỉ những dữ liệu được cho phép bởi chế độ
an ninh của hệ thống mạng bên trong mới được lưu
thông qua firewall
Trang 5Chức năng của bức tường lửa
– Kiểm tra trạng thỏi gúi tin
– Dịch địa chỉ mạng (NAT)
– Đại diện (Proxy)
– Theo dừi và điều khiển
Trang 6Firewall có thể làm được gì?
• Hội tụ các quyết định bảo mật
• Kiểm soát truy cập (tăng cường chính
Trang 7Firewall không thể làm được gì?
• Không thể chống lại được những nhân tố phá
hoại từ bên trong
• Không thể bảo vệ mạng chống lại những kết nối không đi qua firewall
– VD: Nếu bên trong mạng có người sử dụng dịch vụ
dial-up qua modem (không qua firewall), thì firewall
không thể ngăn chặn những lưu thông phá hoại qua dịch vụ đó
• Không thể chống lại một cách toàn diện những mối nguy cơ mới phát sinh
• Không thể bảo vệ một cách toàn diện với virus
• Không thể tự thiết lập các chức năng bảo vệ (cần chi phí cho hoạt động)
Trang 8Các dịch vụ và giao thức internet
cần quan tâm?
• Thư điện tử: simple mail transfer protocol (SMTP)
• Trao đổi file: file transfer protocol (FTP), network file
protocol (NFS)
• Truy cập và thực hiện lệnh đối với đầu cuối ở xa: telnet,
rlogin, ssh
• Usernet news: network news transfer protocol (NNTP)
• WWW: hypertext transfer protocol (HTTP)
• Các dịch vụ real-time conferencing: các công cụ CUseeMe, netmeeting, Nescape Conference, MBone
• Các dịch vụ name: domain name service (DNS)
• Quản lý mạng: simple network management protocol
(SNMP)
• Dịch vụ định thời: network time protocol (NTP)
Trang 9Một số cơ sở về các dịch vụ Internet,
IP, TCP, UDP
• Các dịch vụ Internet thường được hiện thực hóa bởi các
chương trình server và client, và các giao thức ứng dụng
được chạy trên các chương trình này
• Các đơn vị dữ liệu giao thức (PDU) của ứng dụng thường
được truyền trong các TCP segment (phân đoạn) hoặc
các UDP datagram (gam dữ liệu)
• Các TCP segment hoặc các UDP datagram được vận
chuyển trong các gói IP theo các PDU sử dụng các kết nối
(công nghệ data link) giữa nguồn và đích
– Ví dụ: Ethernet, FDDI, ATM,
• Địa chỉ của các ứng dụng được hiện thực hóa bằng các
Trang 10Ví dụ: một gói IP mang một TCP
segment
Trang 11Các trường giao thức quan trọng
đối với firewall (1)
Trang 12Các trường giao thức quan trọng đối
với firewall (2)
• IP:
– Địa chỉ nguồn (source address)
– Địa chỉ đích (destination address)
– Cờ (flag), chỉ số đặc biệt về một IP flagment
– Loại giao thức (protocol type): TCP, UDP, ICMP – Tùy chọn:
• Định tuyến nguồn (source routing):
– bên gửi xác định trước con đường mà một gói IP sẽ đi qua – vì source routing thường bị hacker lợi dụng để tấn công mạng nên hầu hết các firewall loại bỏ tùy chọn này
• Nói chung, các tùy chọn IP ít khi được sử dụng
Trang 13Các trường giao thức quan trọng đối
với firewall (3)
• TCP:
– Cổng nguồn và cổng đích (source/destination port)
• Việc đánh giá cổng nguồn và cổng đích cho phép xác định ứng dụng nào đang gửi và nhận thông tin (với một
độ tin cậy nào đó), vì hầu hết các dịch vụ internet đều sử dụng các cổng đã biết trước
– Điều khiển:
• ACK: bit này giúp nhận biết yêu cầu kết nối (bit ACK được thiết lập trong mọi TCP segment, với bit ACK đầu tiên
được truyền đi trong một kết nối TCP)
• SYN: bit này sử dụng để khẳng định việc kết nối (bit này chỉ được thiết lập trong 2 segment đầu tiên của một kết nối)
• RST: bit này được sử dụng để tắt các thiết bị cùng cấp giao thức(peer) mà không cần gửi thông báo lỗi trở về (việc thiết lập bit này sẽ chỉ ra rằng một kết nối đã bị đóng không đúng)
Trang 14Các trường giao thức quan trọng đối
Trang 15Một số thuật ngữ về firewall (1)
• Bức tường lửa (firewall)
–Một bộ phận của mạng có chức năng hạn chế truy cập giữa một mạng được bảo vệ với Internet hoặc giữa các phần khác nhau của một mạng
• Lọc gói (packet filtering)
–Điều khiển có chọn lọc sự lưu thông dữ liệu vào/ra đố ới v i một mạng
–Lọc gói là một kỹ thuật điều khiển truy cập quan tr ng đối ọvới các mạng chuyển mạch gói (chẳng hạn như Internet)
–Tiếng Anh: packet filtering = screening (lọc gói hoặc đơn giản là lọc)
Trang 16Một số thuật ngữ về firewall (2)
• Máy tiền đồn (bastion host)
–Một máy tính đóng vai trò điểm tiếp xúc chính giữa bên trong và bên ngoài một mạng
–Phải được bảo mật mức độ cao hơn các máy khác trong
mạng vì là điểm nhạy cảm dễ bị tấn công hơn
• Máy hai mang (dual-homed host)
–Một máy tính có hai hoặc nhiều card giao diện mạng, nên
có thể thuộc về hai hoặc nhiều mạng khác nhau
• Mạng vành đai (perimeter network)
–Một mạng con được thêm vào giữa một mạng bên ngoài và mạng bên trong để tăng cường bảo mật
Trang 17Một số thuật ngữ về firewall (3)
• Đại diện (proxy)
–Một chương trình thay mặt cho các máy bên trong mạng làm việc với các máy chủ bên ngoài
–Proxy chuyển tiếp yêu cầu của các máy khách tới máy chủ bên ngoài mạng, và chuyển tiếp đáp ứng của máy chủ bên ngoài tới các máy khách bên trong mạng
–Nếu một proxy có thể dịch và hiểu được các lệnh của một giao thức ứng dụng thì được gọi là proxy mức ứng dụng
(application-level proxy), còn nếu nó chỉ đơn thuần chuyển
tiếp các gói dữ liệu thì được gọi là proxy mức chuyển mạch (circuit-level proxy).
Trang 18Một số thuật ngữ về firewall (4)
• Dịch địa chỉ mạng (Network Address Translation - NAT)
–Một thủ tục mà router dùng để thay đổi dữ liệu trong các gói nhằm thay đổi địa chỉ mạng
–NAT cho phép che giấu địa chỉ thực sự bên trong của mạng (mặc dù NAT không thực sự là một kỹ thuật bảo mật)
Trang 19Các kiến trúc firewall
• Firewall với bộ lọc gói đơn giản
– Sử dụng router hoặc máy tính với phần mềm lọc gói
• Firewall với dual-homed bastion host
– Sử dụng một máy hai mang làm tiền đồn
• Firewall với screened host
– Kết hợp một bộ lọc gói với một máy tiền đồn cung cấp dịch vụ proxy
• Firewall với screened subnet
– Tạo mạng vành đai bằng hai bộ lọc gói và một máy tiền đồn
• Firewall với split screened subnet
– Tách mạng vành đai thành hai mạng riêng biệt bằng hai bộ lọc gói và
một máy tiền đồn
Trang 20Kiến trúc Bộ lọc gói đơn giản
• Đây là kiến trúc đơn giản nhất chỉ gồm một router với chức năng
lọc gói
• Firewall này có thể được thực hiện theo một trong hai cách sau:
– Một máy trạm thông thường với ít nhất hai card mạng kết hợp
với phần mềm định tuyến và lọc – Một router chuyên dụng có khả năng lọc gói
Trang 21Kiến trúc Dual-Homed Host
• Kiến trúc dual-homed host cung cấp:
– Dịch vụ proxy cho các máy khách trong hoặc ngoài mạng
– Khả năng lọc gói nếu dual-homed host cũng đóng vai trò router
• Thuộc tính của dual-homed host:
– Có ít nhất hai card mạng
• Nhược điểm: vì mọi lưu lượng được phép đều đi qua bastion host nên có
thể xảy ra tắc nghẽn mạng
Trang 22Kiến trúc Screened Host
• Lọc gói:
– Cho phép lưu lượng IP được phép lưu thông giữa máy màn chắn (screened
host) và internet – Chặn mọi lưu lượng trực tiếp giữa các máy khác bên trong mạng và
Internet
• Screened host cung cấp các dịch vụ proxy:
– Screened host đóng vai trò như một bastion host, mặc dù mạng đã được
bảo vệ một phần bởi bộ lọc gói
Trang 23Kiến trúc Screened Subnet
• Một mạng vành đai (perimeter) được tạo ra giữa hai bộ lọc gói
• Bộ lọc gói bên trong tăng cường bảo vệ cho mạng trong trường hợp bastion
host bị "qua mặt“ (thoả hiệp).
– Ví dụ, bastion host nếu đã bị thoả hiệp sẽ không thể “nghe ngóng”
(sniff) mạng bên trong
• Mạng vành đai cũng là nơi thích hợp để đặt máy chủ truy cập thông tin
công cộng, chẳng hạn như máy chủ web
Trang 24Kiến trúc Split Screened Subnet
• Một dual-homed bastion host tách mạng vành đai thành hai mạng riêng biệt.
• Kiến trúc này tạo ra mức độ bảo vệ sâu hơn:
– Dual-homed bastion host kiểm soát chặt hơn các kết nối do các dịch vụ
proxy của nó có thể dịch được các giao thức ứng dụng – Bộ lọc gói bên ngoài bảo vệ bastion host khỏi các máy bên ngoài mạng – Bộ lọc gói bên trong bảo vệ các máy bên trong trong trường hợp bastion
host bị thoả hiệp
Trang 25Lọc gói (1)
• Lọc gói có thể làm được điều gì?
– Về mặt lý thuyết, lọc gói có thể lọc được mọi thứ, vì
mọi trao đổi thông tin đều thực hiện bằng các gói – Trong thực tế, cần chú ý đến các điểm sau:
• Các hệ thống proxy thích hợp với việc theo dõi các hoạt
động cần biết chi tiết về các giao thức lớp cao, hoặc các hoạt động được kéo dài từ các sự kiện quá khứ
• Các hệ thống lọc gói thích hợp với việc theo dõi các hoạt
động đơn giản, thực hiện nhanh hoặc các gói độc lập
Trang 26Lọc gói (2)
• Lọc gói cho phép điều khiển việc truyền dữ
liệu trên cơ sở:
– Địa chỉ IP nguồn (source IP address)
– Địa chỉ IP đích (destination IP address)
– Giao thức lớp vận chuyển (transport protocol)
– Cổng ứng dụng của nguồn/đích (source/destination
port) – Các cờ đặc biệt của giao thức (ví dụ: cờ ACK flag
hoặc cờ SYN flag của TCP)– Giao diện mạng (nơi thu được gói)
Trang 27Lọc gói (3)
• Lọc gói một cách chi tiết hơn:
– Lọc gói tĩnh (static) và lọc gói động (dynamic):
• VD1: “chấp nhận các gói incoming UDP (đi vào) chỉ khi chúng
là đáp ứng của các gói outgoing UDP (đi ra) đã được quan sát”
• VD2: “chấp nhận các gói TCP chỉ khi các gói này có bit SYN
đã được thiết lập trong quá trình khởi động kết nối TCP”
– Kiểm tra giao thức:
• VD1: “cho phép các gói tới DNS port chỉ khi chúng có khuôn
Trang 28có thể bị hacker lợi dụng!)
Trang 29Lọc gói (5)
• Các qui tắc lọc gói (1)
– Vì bộ lọc gói bảo vệ một mạng với một mạng khác,
cần định nghĩa các khái niệm sau đây về hướng (direction) của luồng lưu lượng:
• Inbound (đi vào): lưu lượng từ một giao diện nằm
bên ngoài mạng được bảo vệ, hướng tới một giao diện nằm trong mạng được bảo vệ đó
• Outbound (đi ra): ngược với lưu lượng đi vào
• Với mọi qui tắc lọc gói, hướng sẽ được định rõ là
“inbound”, “outbound” hoặc “either” (cả đi vào và
đi ra)
Trang 30Lọc gói (6)
• Các qui tắc lọc gói (2)
– Địa chỉ nguồn và địa chỉ đích thường sử dụng các ký
tự đại diện (wildcard), ví dụ: 125.26.*.* biểu thị mọi địa chỉ bắt đầu bằng 125.26
• Thường biểu thị các địa chỉ là “internal” hoặc “external” khi
không tính đến cấu hình topo của mạng
– Với các cổng nguồn và đích, đôi khi được viết theo
dải địa chỉ, ví dụ “>1023” chỉ các port lớn hơn 1023– Giả thiết răng các qui tắc lọc được áp dụng theo thứ
tự, từ qui tắc đầu tiên đến qui tắc sau cùng
Trang 31Ví dụ về một bộ qui tắc lọc gói (1)
• Qui tắc thứ nhất (direction) qui định rằng e-mail vào/ra là lưu lượng duy
nhất được phép vào/ra mạng được bảo vệ
• Các e-mail được chuyển tiếp giữa hai máy chủ bằng cách chuyển chúng tới
một hệ thống tiếp nhận SMTP (daemon) trên máy chủ đích (server-port 25, client-port >1023)
• Qui tắc A cho phép incoming email đi vào mạng và qui tắc B cho phép hồi
đáp (acknowledgement) đi ra khỏi mạng
• Qui tắc C và qui tắc D áp dụng tương tự với outgoing e-mail
• Qui tắc E từ chối mọi lưu lượng khác
Trang 32Ví dụ về một bộ qui tắc lọc gói (2)
• Xét một gói “muốn” đi vào mạng được bảo vệ, gói này
có một địa chỉ nguồn IP giả mạo từ mạng bên trong (tức
là gói này có địa chỉ nguồn là internal)
– Vì mọi gói inbound phải có địa chỉ nguồn là external và địa chỉ
đích là internal (A,D), do vậy gói này sẽ bị chặn lại – Tương tự với các gói outbound với địa chỉ nguồn là external
(B,C)
• Xét lưu lượng telnet
– Do telnet server thường dùng port 23, mà mọi lưu lượng
inbound phải tới port 25 hoặc tới port >1023, nên các gói incoming khởi động một kết nối telnet sẽ bị chặn lại
– Tương tự với các kết nối telnet outgoing
Trang 33Ví dụ về một bộ qui tắc lọc gói (3)
• Tuy nhiên, bộ qui tắc này có lỗ hổng bảo mật: không
chặn được giao thức X11 đối với các hoạt động từ xa của ứng dụng X-Windows:
– X11-server thường nghe ở port 6000, còn X11-client dùng port
>1023 – Như vậy, yêu cầu X11-incoming sẽ không bị chặn (B); và
tương tự là đáp ứng X11-outgoing (D) – Rõ ràng điều này là không mong muốn, vì giao thức X11 có dễ
bị hacker tấn công, chẳng hạn như hacker có thể dùng giao thức này để đọc các thao tác trên màn hình và bàn phím
Trang 34Ví dụ về một bộ qui tắc lọc gói (4)
• Lỗ hổng bảo mật trên có thể được khắc phục bằng cách đưa các
source port vào bộ qui tắc trên
– Vì lưu lượng outbound tới các port >1023 chỉ được chấp nhận khi
source port là 25 (B), nên lưu lượng từ các client bên trong hoặc server sẽ bị chặn
X-– Tương tự với lưu lượng inbound tới các port >1023 (B)
Trang 35Ví dụ về một bộ qui tắc lọc gói (5)
• Vấn đề trên có thể khắc phục bằng cách chỉ định ACK-bit của TCP
trong các qui tắc B và D:
– Vì ACK-bit phải được thiết lập trong qui tắc B, nên sẽ không thể mở
được một kết nối TCP trên hướng outbound tới các port>1023, do yêu cầu kết nối TCP được báo hiệu bởi ACK-bit không được thiết lập
– Tương tự với hướng inbound, vì qui tắc D yêu cầu ACK-bit phải được
thiết lập
• Theo qui tắc cơ bản, bất kỳ qui tắc lọc nào cho phép các gói
incoming TCP đối với các kết nối outgoing phải yêu cầu ACK-bit
Trang 36Ví dụ về một bộ qui tắc lọc gói (6)
• Nếu firewall bao gồm một bastion host, các qui tắc lọc gói cần phải
hạn chế hơn nữa luồng lưu lượng ( kiến trúc screen host):
– Qui tắc trên được biến đổi chỉ cho phép lưu lượng giữa Internet và
bastion host, hacker không thể tấn công SMTP trên các máy tùy chọn nào đó bên trong mạng nữa
• Trong một screen subnet firewall, 2 router lọc gói được thiết lập:
Trang 37Máy tiền đồn (bastion host)
• Bastion host ®îc đặ ở đ ểt i m ti p xóc gi a m¹ng bªn ngoµi ế ữ
Trang 38Các nguyên tắc xây dựng bastion host (1)
• Cần được thiết kế theo nguyên tắc “hướng ngoại” (bộc lộ cho
mạng bên ngoài) hơn là “hướng nội” (bộc lộ với mạng bên
trong)
• Các máy bên trong mạng được bảo vệ phải được thiết kế không
nên tin tưởng tuyệt đối máy tiền đồn
• Nên kết nối với máy tiền đồn với mạng trên một đường riêng
sao cho nó không thể “nghe ngóng” (sniff) được lưu thông bên trong mạng
• Cần có cơ chế ghi lại được nhật ký phân tích, phát hiện sự kiện
sao cho máy tiền đồn không thể bị giả mạo ngay cả khi đã bị thoả hiệp từ bên ngoài (do hacker gây nên)
Trang 39Các nguyên tắc xây dựng bastion host (2)
• Thiết kế đơn giản, ít "hấp dẫn", ít công cụ (để hacker khó có
thể lợi dụng làm bàn đạp để tấn công mạng)
• Không được thiết kế để có thể theo dõi được lưu lượng bên
trong mạng được bảo vệ
• Cần có cấu hình phần cứng tin cậy
• Nên đặt ở nơi được bảo mật vật lý, cần giám sát chặt chẽ
• Nên loại bỏ mọi tài khoản người dùng không cần thiết
• Cần bảo mật nhật ký hệ thống
• Cần thường xuyên sao lưu nhật ký hệ thống và cấu hình
• Nên định kỳ phục hồi về thi t ế đặt ban đầu
Trang 40Các dịch vụ proxy (1)
• Proxy cung cấp truy cập tới tới một dịch vụ Internet xác định
cho một máy lẻ, rồi cung cấp dịch vụ đó tới mọi máy trong mạng được nó bảo vệ
• Các dịch proxy: FTP, Telnet, DNS, SMTP, HTTP
• Các máy chủ proxy thường chạy trên các máy tiền đồn hai
mang
• Sử dụng dịch vụ proxy dẫn đến những tình huống sau:
– Người dùng dịch vụ proxy tưởng rằng đang trao đổi dữ liệu
với máy chủ thật– Máy chủ thật tưởng rằng đang trao đổi dữ liệu với máy