Nhiều người nghĩ rằng tường lửa hoàn toàn là thiết bị phần cứng.Khi mọi người nghĩ về việc mua và cài đặt tường lửa,họ cứ nghĩ rằng có một hộp ma thuật màu đen được gắn tại điểm truy cập
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
BỘ MÔN CÔNG NGHỆ PHẦN MỀM
BÁO CÁO BÀI TẬP LỚN
AN TOÀN THÔNG TIN VÀ HỆ THỐNG
Đề tài :
Giảng viên hướng dẫn: Ths Đỗ Văn Uy
Sinh viên thực hiện:
1 Nguyễn Văn Công- 20010330
2 Đinh Văn Đông - 20080695
Trang 2MỤC LỤC
Contents
CHƯƠNG 1: TƯỜNG LỬA VÀ CÁC BỘ LỌC GÓI TIN 2
1 Tường lửa và bộ lọc gói tin 2
1.1 Tường lửa là gì? 2
1.2 Personal FireWall 4
1.3 Parental Control Software 4
1.4 Sự khác nhau giữa một tường lửa và một bộ lọc tin là gì? 5
1.5 Các tường lửa bảo vệ các mạng như thế nào? 5
1.6 Loaị đặc điểm nào của gói tin mà bạn có thể lọc trong một Ruleset? 5
1.7 Sự khác nhau giữa một tường lửa không trạng thái và đa trạng thái? 7
1.8 Tìm hiểu về Network Adress Translation (NAT) và Port Forward 7
1.9 Khái niệm cơ bản của các mạng riêng ảo (Virtual Private Networks) 9
1.10 Bên trong khu phi quân sự 10
2 Freeware firewalls 10
2.1 Ipchans 10
2.2 Implementation 11
3 IPFW2 14
3.1 Implementation 14
4 COMMERCIAL FIREWALLS 20
4.1 Implementation 20
4.2 SonicWALL 21
4.3 Cisco PIX 23
CHƯƠNG 2: NHỮNG CÔNG CỤ TRINH THÁM MẠNG 25
1 WHOIS VÀ FWHOIS 25
Trang 32 HOST DIG VÀ NSLOOKUP 34
3 PING 38
4 FPING 42
5 TRACEROUTE 45
6 HPING 49
Xác định trạng thái của máy chủ khi ping không làm việc 50
Kiểm tra quy tắc tường lửa 51
Quét cổng tàng hình 56
Nhận dạng hệ điều hành từ xa 56
Hping lắng nghe 57
Yêu cầu thành viên và phân công công việc 59
Trang 4CHƯƠNG 1: TƯỜNG LỬA VÀ CÁC BỘ LỌC GÓI TIN
1 Tường lửa và bộ lọc gói tin
1.1 Tường lửa là gì?
Nhiều người nghĩ rằng tường lửa hoàn toàn là thiết bị phần cứng.Khi mọi người nghĩ về việc mua và cài đặt tường lửa,họ cứ nghĩ rằng có một hộp ma thuật màu đen được gắn tại điểm truy cập mạng của họ,nhằm chống đỡ tin tặc và các kẻ xấu khác.Trên thực tế,tường lửa lại là mộtchương trình phần mềm để kiểm tra lưu lượng mạng hoặc các gói tin qua một giao diện
mạng.Bởi vì tường lửa sẽ vô dụng nếu như không có giao diện phần cứng bảo vệ.Phần mềm tường lửa thường đi kèm và cài đặt sẵn với thiết bị phần cứng được thiết kế đặc biệt.Qua chương này,chúng ta sẽ biết cách phân biệt được các thiết bị phần cứng và phần mềm tường lửa đi kèm với chúng
Bây giờ chúng ta hãy xem tường lửa là gì?Một thiết bị tưởng lửa là một thiết bị mạng mà phân cách hai hoặc nhiều mạng và có phần mềm tường lửa đang chạy trên ít nhất một giao diện mạng.Thiết bị sử dụng phần mềm tường lửa sẽ xác định các luồng nào sẽ được lưu chuyển giữa các mạng.Đó là phần mềm tường lửa và các nguyên tắc cơ bản được liên quan của nó mà làm cho thiết bị thực hiện các chức năng phổ biến của tường lửa.Nếu không có phần mềm,thiết bị tường lửa chỉ là một bộ định tuyến đơn giản ,một gateway,hay chỉ là một nơi giao nhận gói tin
Như vậy phần mềm tường lửa là bất kỳ phần mềm nào mà kiểm tra giao thong qua lại củamột giao diện và đưa ra các quyết định điều hướng dựa trên một tập các nguyên tắc Một số phầnmềm tường lửa sẽ được liệt kê ở đây:
in, cũng như các dịch vụ bất kỳ mạng nào đang chạy trên máy tính của bạn sẽ được hiển
thị, và khai thác bằng cách, chỉ là về bất cứ ai trên Internet.Personal Firewall được thiết kế để ngăn chặn các địa chỉ nguy hại
1.3 Parental Control Software
Ngăn chặn không cho phép người dùng vào các trang web cấm như các trang web đen…Các phần mềm khác như phần mềm chặn thư giác hay phần mềm quét virus tương tự như phần mềm tường lửa nhưng không hoàn toàn giống.Phần mềm chặn thư giác và quét virus hoạt động trên các thực thể lớn hơn(như các thư mục hay email…) trong khi phần mềm tường lửa thường
Trang 5chỉ lọc các gói tin.Một vài tường lửa thường xuất hiện khi phát hiện ra các gói tin mà nó không nhận ra được.Nhiều tường lửa loại này được gọi là tường lửa của tầng ứng dụng bời vì nó có thể kiểm tra cú pháp của một ứng dụng(như một trang web thương mại điện tử) thay vì chỉ cung cấp các thông tin về các mức gói tin(HTTP).Ví dụ,trang web thương mại điện tử dùng giao thức HTTP để giao tiếp với trình duyệt web.Một tường lửa ở mức gói có thể nhìn vào các yêu cầu HTTP để xem chúng có được hình thành một cách chính xác và tuân thủ các đặc điểm kỹ thuật của giao thức hay không.Một tường lửa ở mức ứng dụng có thể hiểu cách trang được xây dựng thế nào và xác nhận loại yêu cầu nào mà người sử dụng được phép thực hiện ,loại nào không được thực hiện.Điều này là quan trọng bởi vì các yêu cầu hợp pháp và các web độc hại đều có thể bao gồm các yêu cầu HTTP nơi mà tường lửa ở mức gói tin ngừng hoạt động kiểm tra của nó.
1.4 Sự khác nhau giữa một tường lửa và một bộ lọc tin là gì?
Tường lửa và bộ lọc tin nói chung thực hiện cùng một chức năng.Bộ lọc gói tin dựa trên lưu lượng truy cập dựa trên những đặc điểm giao thức,địa chỉ nguồn hoặc đích và các trường khác nằm trong phần đầu của gói tin TCP/IP.Tường lửa là các bộ lọc gói tin nhưng một số tường lửa có thể kiểm tra nhiều hơn chứ không chỉ là phần header,chúng còn có thể kiểm tra ở phần dữ liệu(như trọng tải).Ví dụ,một bộ lọc gói tin có thể theo dõi các kết nối tới cổng 20 và 21(cổng FTP).Trong khi đó tường lửa có thể thiết lập các tiêu chuẩn dựa trên số cổng FTP cũng như trọngtải FTP,chẳng hạn như lệnh PORT hay tên tập tin bao gồm các text password
1.5 Các tường lửa bảo vệ các mạng như thế nào?
Các tường lửa không chỉ hiệu quả với các quy tắc mà chúng được cấu hình.Như chúng ta
đã đề cập từ trước,tường lửa kiểm tra các đặc điểm cụ thể để quyết định xem đường truyền nào được phép và không được phép truyền qua dựa trên một số tiêu chí.Đó là công việc của một người quản trị hệ thống nhằm xây dựng lên một tập nguyên tắc theo một cách nào đó mà nó bảo
vệ mạng ở phía sau nó một cách hiệu quả,trong khi vẫn cho phép lưu lượng truy cập một cách hợp lý.Hầu hết các tường lửa đều điều khiển đường truyền theo ba cách khác nhau bằng một nguyên tắc
Chấp nhận gói tin và đưa nó tới đích đã định từ trước
Từ chối gói tin và đưa ra thông báo từ chối gói tin (ICMP) hoặc xác nhận nào khác.Điều này sẽ đưa ra một phản hồi rõ ràng tới người gửi gói tin rằng lưu lượngnhư thế sẽ không được phép qua tường lửa
Sút gói tin đi mà không cần bất cứ sự thừa nhận nào.Đây là giai đoạn kết thúc trong vòng đời của gói tin.Không có gói tin được gửi tới người gửi gói tin.Điều này nhằm làm giảm khả năng của người gửi đoán ra thông tin về mạng được bảo vệ,nhưng nó cũng tác động tiêu cực đến hiệu suất mạng của một số đường truyền mạng nào đó
Hầu hết các tường lửa được thiết lập một cách mặc định là để sút các gói tin
Trang 61.6 Loaị đặc điểm nào của gói tin mà bạn có thể lọc trong một Ruleset?
Hầu hết các tường lửa và bộ lọc gói tin đều có khả năng kiểm tra các đặc điểm dưới đây một cách nhỏ nhất :
Loại giao thức (IP, TCP, UDP, ICMP, IPSec, etc.)
Địa chỉ IP nguồn và cổng
Địa chỉ IP đích và cổng
Loại thông báo mã ICMP và mã
Thẻ TCP (SYN, FIN, ACK, etc.)
Giao diện mạng mà gói tin đến
Vì vậy nếu bạn muốn ngăn chặn gói tin Ping đến từ mạng nhà của bạn
192.168.1.0/24,bạn hãy viết một nguyên tắc như thế này.Đừng lo lắng về cú pháp cụ thể nàodeny proto icmp type 8:0 from any to 192.168.1.0/24
hoặc nếu bạn muốn cho phép luồng Web đi tới 192.168.1.50 và từ chối tất cả các luồng khác.allow proto tcp from any:any to 192.168.1.50:80
deny proto all from any to 192.168.1.0/24
Bạn cũng có thể dùng tường lửa để bảo vệ mạng của bạn bằng cách giả mạo địa chỉ IP.Ví
dụ,chúng ta gọi giao diện bên ngoài tường lửa của bạn (called eth 1) có địa chỉ IP là 10.0.0.1 với mặt lạ mạng là 255.255.255.0.Giao diện bên trong tường lửa của bạn có địa chỉ IP là
192.168.1.1,với mặt lạ mạng là 255.255.255.0.Bất kỳ đường truyền mạng nào đến từ địa chỉ 192.168.1.0 đến mạng 10.0.0.0 sẽ đến giao diện eth0 và ra khỏi giao diện eth1,như trong hình minh họa sau đây
Ngược lại đường truyền từ mạng 10.0.0.0 tới mạng 192.168.1.0 đi ra từ giao diện eth1 và đi vào
từ giao diện eth0.Vì vậy,bạn sẽ không bao giờ thấy đường truyền với địa chỉ nguồn 192.168.1.x được gửi đến từ giao diện eth1.Nếu bạn thấy,điều đó có nghĩa là một vài người nào đó bên ngoài mạng 10.0.0.0 đang cố gắng giả mạo 1 đia chỉ trong dải địa chỉ IP địa phương của bạn
deny proto any from 192.168.1.0/24 to any on eth1
Bây giờ, nếu chúng ta xem xét cẩn thận tại quy định này, có vẻ một chút mơ hồ Có thểquy tắc này phù hợp với hợp pháp giao thông đến từ 192.168.1.0 tiêu đề ra với mạng bên ngoài? Nó có thể, nhưng nó phụ thuộc vào giải thích tường lửa của cú pháp Vì chúng ta đang sử dụng
một cú pháp bức tường lửa hư cấu cho các ví dụ này, quy định này vẫn còn mơ hồ
và có thể không hiệu quả Điều này minh họa một điểm quan trọng:Bạn phải rất cẩn thận
Trang 7khi viết các quy tắc tường lửa Chúng tôi biết những gì chúng tôi đãcố gắng để ngăn
chặn, nhưng đã làm chúng tôi thực hiện nó một cách chính xác? Bạnphải chắc chắn rằng bạn hiểu làm thế nào bức tường lửa áp dụng các quy tắc và nhữnggì mặc định của nó hoặc hành
vi giả định có thể được Chúng tôi có thể viết các quy tắcchống giả mạo ít mơ hồ nếu chúng
ta quy định các giao diện mạng mà trên đó để áp dụng các quy tắc
deny proto any from 192.168.1.0/24 to any in on eth1
allow proto any from 192.168.1.0/24 to any out on eth1
1.7 Sự khác nhau giữa một tường lửa không trạng thái và đa trạng thái?
Trở về chương 4,chúng ta đã đề cập các công cụ như nmap có thể được sử dụng để xemxét xem liệu một tường lửa có phải là stateless or stateful.Vậy đích thực nó là loại nào?Một tường lửa không trạng thái chỉ có thể kiểm tra một gói dữ liệu cá nhân tại một thời điểm cô lập,không để ý đến các gói tin đã đến trước nó.Nói một cách khác,một tường lửa đa trạng thái,có thể đặt gói tin trong một ngữ cảnh của một luồng điều khiển của một giao thức khác và trong giao thức đặc biệt như TCP/IP hay FTP.Điều này cho phép tường lửa đa trạng thái nhóm các gói tin riêng lẻ với nhau vào một connection,session hay conversation.Do đó,một bức tường lửa đa trạng thái có thể lọc lưu lượng truy cập không chỉ dựa vào đặc tính của gói tin riêng lẻ mà còn dựa vào ngữ cảnh của gói tin theo một phiên họp(session) hay một cuộc hội thoại(conversation)
Tường lửa đa trạng thái cũng cho phép nhiều tập nguyên tắc hơn.Ví dụ,một máy tính trong mạng nội bộ 192.168.1.0 muốn kết nối tới một máy chủ web nằm trên Internet.Các bước sau đây chứng minh những hạn chế để thử kiểm tra gói đơn đến phân luồng
1.8 Tìm hiểu về Network Adress Translation (NAT) và Port Forward.
Nhiều thiết bị tường lửa được dùng để tách các mạng bên ngoài với địa chỉ IP truy cập công cộng
từ một mạng nội bộ với địa chỉ IP riêng.Giao diện bên ngoài của thiết bị có một địa chỉ IP
chung,trong khi giao diện bên trong của thiết bị có địa chỉ IP riêng.Địa chỉ chung cũng được tham chiếu tới như bộ định tuyến và địa chỉ riêng cũng thường được tham chiếu như địa chỉ vô đinh tuyến.Trong thực tế,một trong hai không gian địa chỉ riêng hay chung là bộ định
tuyến.Nhưng nếu phân biệt cụ thể,địa chỉ riêng không được sử dụng cho cho địa chỉ trên
Internet.Địa chỉ riêng được dành riêng cho các tổ chức để tạo ra các mạng nội bộ
Internet Assigned Numbers Authority (IANA) thuộc các khối IP nhất định cho các mạng riêng tư.Điều này có nghĩa là các bộ định tuyến công cộng sẽ không(hay ít nhất sẽ không nên) định tuyến luồng đi và đến các máy nằm trong phạm vi mạng này.Phạm vi mạng như sau :
192.168.0.0 thông qua 192.168.255.255 được viết 192.168.0.0/16 o hay
192.168.0.0/255.255.0.0
Như trên thì,điều này sẽ mang lại cho chúng ta một số lượng lớn địa chỉ IP và mặt nạ
mạng(sunnet)cho địa chỉ mạng nội bộ.Bất kỳ một mạng riêng tư nào mà hệ thống của nó không được truy cập vào một máy nằm trong mạng Internet sẽ sử dụng một subnet mạng riêng tư thuộc phạm vi này như một subnet của nó
Trang 8Tuy nhiên,điều này đặt ra một vấn đề,nếu bất kỳ một hệ thống trên mạng riêng tư muốn truy cập tới Internet.Hãy nhớ rằng các hành vi được đề nghị rằng các bộ định tuyến Internet công cộng sẽ không phải đinh tuyến luồng hoặc hệ thống các địa chỉ tư nhân.Điều này dường như ngụ ý rằng một địa chỉ riêng tư không bao giờ có thể truy cập tới một trang Web trên Internet.
NAT giải quyết vấn đề này bằng cách chuyển(translating) các gói tin từ địa chỉ riêng tư thành địachỉ công cộng.NAT thường được thực hiện bởi một thiết bị tường lửa trên giao diện bên ngoài của nó vì lời ích của các hệ thống trên giao diện nội bộ của mình.Nhiều thiết bị mạng có thể thựchiện NAT,bao gồm cả thiết bị định tuyến.Một thiết bị NAT cho phép các máy trên mạng riêng nội bộ của nó,giả trang như là địa chỉ IP được gán cho thiết bị NAT,bao gồm cả thiết bị định tuyến.Hệ thống riêng tư có thể giao tiếp với Internet thông qua định tuyến,địa chỉ IP truy cập công cộng trên giao diện ngoài của thiết bị NAT
Khi một thiết bị NAT nhận được lưu lượng truy cập từ mạng riêng tư dành cho các mạng
ngoài(Internet),nó ghi nguồn của gói dữ liệu và các chi tiết đích.Thiết bị này sau đó viết lại tiêu
đề của gói tin như việc địa chỉ IP nguồn được đặt cùng với bên ngoài thiết bị,địa chỉ IP công cộng
Sau đó thiết bị sẽ gửi gói tin tới địa chỉ IP đích.Từ quan điểm hệ thống đích của gói tin đã đến trực tiếp từ các thiết bị NAT.Hệ thống đích đáp ứng cần thiết để gói tin,gửi nó trở lại địa chỉ IP của thiết bị NAT
Khi thiết bị NAT nhận được gói tin trả lời,nó kiểm tra bảng dịch địa chỉ của nó để xem nếu các địa chỉ và thông tin của gói tin phù hợp với bất kỳ của các gới tin đã được gửi ra.Nếu trận đấu không được tìm thấy,gói tin được giảm xuống hoặc bị xử lý theo bất kỳ quy tắc tường lửa hoạt động trên các thiết bị.Nếu một trện đấu được tìm thấy,các thiết bị NAT viết lại địa chỉ đích của gói tin IP với điah chỉ riêng của hệ thống ban đầu gừi gói tin
Cuối cùng các thiết bị NAT sẽ gửi gói tin đến đích nội bộ của mình.Dịch địa chỉ mạng là hoàn toàn minh bạch để các hệ thống trên địa chỉ IP nội bộ tư nhân và các điểm đến Internet.Các hệ thống tư nhân có thể truy cập vào Internet,nhưng một hệ thống Internet có thể không trực tiếp giải quyết nó
Nếu bạn đang gặp sự cố cố hình dung những gì đang xảy ra,có lẽ minh họa sau đây sẽ giúp bạn:
Trang 9NAT không có những hạn chế Các thao tác tiêu đề gói tin sẽ can thiệp với bất kỳ giao thức đòi hỏi phải sử dụng đúng địa chỉ IP, chẳng hạn như IPsec Ngoài ra, bất kỳ giao thức yêu cầu một kết nối riêng biệt, ngược lại đến, chẳng hạn như hoạt động chế độ FTP, sẽ không làm việc Đi FTP kiểm soát kết nối đến máy chủ FTP sẽ làm cho nó thông qua NAT chỉ là tốt, nhưng khi máychủ FTP cố gắng để thiết lập kết nối dữ liệu, thiết bị NAT sẽ không biết phải làm gì bởi vì nó không có một mục tương ứng trongbảng dịch của nó NAT của tỷ lệ hiện nhiễm đã ảnh hưởng đến mọi người để tạo ra cách giải quyết để giải quyết những hạn chế này.
Cuối cùng, NAT đã trở thành thiếu tường lửa và an ninh mạng Nó cung cấp một lớp bảo mật bổ sung một thiết bị tường lửa, vì nó không chỉ bảo vệ máy phía sau giao diện nội bộ của mình, nhưng nó cũng ẩn chúng đi Nhưng điều gì sẽ xảy ra nếu bạn quyết định bạn muốn để lộ một dịch vụ cụ thể trên mạng riêng của bạn với Internet? Điều gì sẽ xảy ra nếu bạn muốn một người nào đó trên khắp đất nước để có thể nhìn vào một cái gì đó mà bạn đã đăng trên máy chủ web nội
bộ của bạn? Có cách nào để cho phép máy Internet để bắt đầu giao tiếp với một máy tính tư nhân?
Đối với điều này, bạn có thể sử dụng một kỹ thuật được gọi là cổng chuyển tiếp Các thiết bị NAT có thể chuyển tiếp bất kỳ lưu lượng truy cập nhận được trên một cổng đặc biệt trên giao diện bên ngoài của thiết bị một cổng trên một máy tính nội bộ tư nhân Một hệ thống trên mạng Internet kết nối với các thiết bị NAT trên cổng này sẽ có hiệu quả kết nối với các cổng trên hệ thống nội bộ, mặc dù nó chỉ cần biết địa chỉ IP của thiết bị NAT
Đây là tất cả tốt và tốt, nhưng bây giờ bạn đã thực hiện mạng riêng của bạn một chút ít tư nhân bằng cách mở cổng chuyển tiếp này Bây giờ bất cứ ai trên Internet có thể truy cập vào máy chủ web nội bộ của bạn bằng cách kết nối vào cổng trên thiết bị NAT của bạn Nếu thiết bị NAT của bạn là một bức tường lửa, bạn có thể sử dụng quy tắc tường lửa để hạn chế địa chỉ IP được phép truy cập vào nó Trong khi điều này là an toàn hơn, bạn vẫn đang chỉ dựa trên chứng thực trên
Trang 10nền IP Nhiều lần, người sử dụng đã xây dựng được tăng cường, mạng lưới tư nhân có thể tìm thấy nó cần thiết để mở các tài nguyên mạng nội bộ đến một cơ sở từ xa Có nhiều cách để hạn chế truy cập từ đó thiết bị từ xa và ngăn cấm các phần còn lại của Internet Nhưng chúng ta có thực sự muốn chuyển tiếp hàng chục cổng và hàng chục mở lỗ hổng trong tường lửa của chúng tôi, hoặc hàng chục các quy tắc và các ngoại lệ? Đây là nơi mà các mạng riêng ảo đi vào chơi.
1.9 Khái niệm cơ bản của các mạng riêng ảo (Virtual Private Networks)
VPN là một chủ đề phức tạp.Chúng ta đề cập nó ở đây là vì rất nhiều thiết bị tường lửa cung cấp một vài cách đo lường khả năng của VPN.Máy chủ VPN nằm trên các thiết bị và đợi kết nối từ các máy khách VPN.Các máy khách này có thể là dựa trên phần mềm,như một
laptop,hoặc các giải pháp dựa trên phần cứng,như một thiết bị ngang hàng.Các văn phòng từ xa thường cài đặt một thiết bị tường lửa/VPN và cấu hình thiết bị để chúng có thể kết nối bởi một dòng dữ liệu chuyên dụng.Sự khác biệt duy nhất là nó là một dòng dữ liệu ảo.Luồng vẫn truyền trên Internet.Nhưng VPN cung cấp thêm các tầng bảo mật qua việc mã hóa và bảo vệ tường lửa
Một phái cạnh chính của VPN là xác thực người dùng.Người sử dụng từ xa sử dụng một phần mềm VPN client và đang nhập vào máy chủ VPN để thiết lập kết nối của họ.Các thiết bị phần cứng VPN thường sử dụng một vài loại thuật toán xác thực khóa được chia sẻ.Điều này là mạnh hơn nhiều trong cả an ninh và thuận tiện hơn dựa vào xác địa chỉ IP
Luồng truy cập VPN thường được mã hóa.Điều này nhằm bảo vệ dữ liệu trong khi chúngđược truyền đi tới các thiết bị đầu cuối VPN.Thậm chí,dữ liệu vẫn được qua các
router,switch,hoặc các thiết bị khác trên Internet.Nó gần như là an toàn như khi nó sử dụng một dòng dữ liệu chuyên dụng
VPN thường có thể chuyển tiếp giữa tất cả các đường trên một mạng trên một tập các cổng đơn.Hãy tưởng tượng có bao nhiêu hướng cổng và quy tắc tường lửa bạn phải viết,nếu bạn phải mở một vài tài nguyên mạng nội bộ tới một vị trí ở xa.Chia sẻ file,chia sẻ máy in,kho lưu trữ mã và các dịch vụ khác sẽ tạo một NAT và cấu hình cổng chuyển tiếp
Bằng cách kết hợp các khả năng của một tường lửa,thiết bị NAT và VPN trong một thiết
bị mạng,bạn có thể cải thiện an ninh bên ngoài mạng của bạn mà không mất sự thuận tiện hay năng suất
1.10 Bên trong khu phi quân sự
Một cuộc thảo luận về tường lửa sẽ không hoàn thành mà nếu không nhắc đến khu phi quân sự,hoặc DMZ.DMZ đã trở thành một từ thông dụng không may là nhiều người sử dụng khi nói về mạng và tường lửa,nhưng ít người hiểu những gì nó có.Chúng tôi đã thảo luận về tường lửa và các thiết bị NAT có một giao diện bên ngoài với một địa chỉ IP công cộng định tuyến và một giao diện bên ngoài với một địa chỉ IP công cộng định tuyến và một giao diện nội bộ,tư nhânvới một địa chỉ IP.Điều gì sẽ xảy ra nếu tổ chức của chúng tôi có một máy chủ FTP,máy chủ
Trang 11Web và máy chủ DNS mà chúng ta muốn để làm cho truy cập công công?Vâng,chúng ta có thể giữ chúng trên các mạng riêng và thiết lập chuyển tiếp cổng,nhưng điều gì sẽ xảy ra nếu chúng ta
có nhiều máy chủ web?Chúng ta không thể ràng buộc một cổng bên ngoài cổng 80 một số các hệthống nội bộ
2 Freeware firewalls.
2.1 Ipchans
Ipchans là các bộ lọc gói tin đầu tiên chúng ta sẽ thảo luận.Ipchans ban đầu được dựa trên một công cụ gọi là ipfwadm.Ý tưởng đằng sau ipchans là để tạo ra chuỗi các quy tắc cho một gói tin
đi qua.Tại bất kỳ điểm nào trong chuỗi, gói tin có thể được thông qua hoặc bị từ
chối.Ipchains có tất cả nhưng được thay thế bởi iptables cho hạt nhân Linux đang chạy dòng2.6, tuy nhiên, nó có thể được bao gồm trong hầu hết các bản phân phối Linux cùng
vớiiptables Nó là một điểm khởi đầu tốt đẹp cho cái nhìn đầu tiên của chúng tôi tại góitường lửa, và nó cũng cho chúng ta một ví dụ về một bức tường lửa không trạng thái
Để sử dụng ipchains, tất cả những gì bạn cần là một hộp Linux với các tùy chọn thíchhợp biên dịch vào trong nhân Bạn có thể cho biết nếu hạt nhân của bạn có hỗ trợ ipchains nếu tập
tin / proc / net / ip_fwchains tồn tại Hiện tại hầu hết các phiên bản cài đặt Linux sẽ có các tùy chọn này đi kèm theo, nhưng phiên bản trước đó của Linux có thể cần phải được sửa
đổi Thật không may, chúng tôi không thể đi vào chi tiết cách xây dựng một hạt
nhân Linux, rất nhiều tài nguyên Internet có sẵn cho việc xây dựng hạt nhân hỗ trợ tường
lửa Bạn có thể kiểm tra trang web chính của ipchains hoặc truy cập vào trang web sau đây để biết thêm chi tiết:http://www.tldp.org/HOWTO/IPCHAINS-HOWTO.html
Chú ý : Bạn cũng sẽ cần phải chắc chắn rằng tập tin / proc/sys/net/ipv4/ip_forward chứa giá trị 1 nếu bạn muốn để có thể chuyển tiếp các gói tin từ một mạng sang mạng khác.Bạn có thể
gõ echo 1> / proc / sys / net/ipv4/ip_forward như là người quản trị mạng để đảm bảo rằng tường lửa của bạn đã sẵn sàng để chuyển tiếp các gói tin
Ipchains là một giao diện người sử dụng cho việc lọc gói tin của nhân Linux Tất cả việc kiểm tragói tin thực tế được thực hiện trong không gian bộ nhớ của hạt nhân Chương trình ipchains chỉ đơn giản ra lệnh các quy tắc tới hạt nhân Thật không may, điều này có nghĩa là hạt
nhân sẽ quên quy tắc của bạn bất cứ lúc nào khi hệ thống được khởi động lại Rất may, bạn có thể sử dụng các công cụ ipchains-save và ipchains-khôi phục lại để tạo ra một tập các quy
tắc ipchains hiện tại trong sử dụng và khôi phục lại chúng sau khi khởi động lại
2.2 Implementation
Nếu hộp Linux của bạn có hỗ trợ ipchans,điều đầu tiên bạn cần phải làm là liệt kê tập quytắc hiện tại
Trang 12[root@originix /root]# ipchains -L
Chain input (policy ACCEPT):
Chain forward (policy ACCEPT):
Chain output (policy ACCEPT):
Lệnh này liệt kê các quy tắc gói tin hiện tại đang sử dụng.Như bạn có thể thấy,ipchans định nghĩa ba chuỗi theo mặc định: input,forward và output.Chính sách mặc định cho mỗi
chuỗi(chains) là các gói tin được chấp nhận.Điều này có nghĩa rằng nếu một gói tin đi qua toàn
bộ chuỗi và không phù hợp với bất kỳ quy tắc nào,nó được coi là chấp nhận được và đi qua giao diện.Bạn có thể chọn từ sáu mục tiêu phổ biến trong xây dựng
Điều quan trọng là bạn hiểu làm thế nào mỗi chuỗi(chains) mặc định được sử dụng.Bất
kỳ gói tin nào đi vào một giao diện của hệ thống đầu tiên sẽ đi vào chuỗi đầu vào quy định cho giao diện của nó.Các gói tin mà không phải là dành cho các tường lửa chính nó sẽ cần phải vượt qua chuỗi định hướng(forward chain) trước khi tiếp tục đi đến đích của nó.Cuối cùng,bất kỳ gói tin đi ra khỏi hệ thống phải vượt qua thông qua chuỗi đầu ra(output chain).Điều này có nghĩa bất
kỳ đường truyền nào đi qua giữa một hệ thống mạng riêng và một hệ thống mạng chung sẽ phải
đi qua cả ba chuỗi trên.Điều quan trọng cũng cần lưu ý rằng đầu vào và đầu ra không nhất thiết đồng nghĩa với gửi đến và gửi đi.Các gói tin nhận chuỗi đầu vào đầu tiên cho dù họ có đến từ cácmạng nội bộ để eth0 hoặc từ mạng bên ngoài eth1
Ở đây chúng ta sẽ thảo luận về các lệnh ipchains được sử dụng để thao tác với các quy tắc cũng như các cú pháp.Trước tiên,chúng ta hãy xem xét các lệnh cơ bản cho phép thêm.loại bỏ,và sửa đổi các quy tắc và các chuỗi trong bảng 13-1
Table 13-1: Ipchains Commands
Trang 13Các lệnh mà bạn sẽ sử dụng thường xuyên nhất là để thêm các quy tắc cho một chuỗi,liệt kê danh sách các quy tắc về một chuỗi và thay đổi chính sách một trên một chuỗi.Ngoài ra,bạn còn
có thể tạo ra chuỗi được định nghĩa bởi người dùng có thể sử dụng được như là mục tiêu.Ví dụ bạn muốn kiểm tra một gói tin cụ thể chống lại một tập các quy tắc nhất định,nhưng nếu nó chỉ phù hợp với một số tiêu chí ban đầu,bạn có thể có gói tin nhảy đến chuỗi do người dùng định nghĩa.Chuỗi người dùng định nghĩa không có chính sách mặc định,không giông như 3 chuỗi mặcđịnh,nếu một gói tin đi đến điểm kết thúc của chuỗi do người dùng định nghĩa,nó “rơi
khỏi”chuỗi đó và trở lại chuỗi khi nó đến
Trước tiên,chúng ta hãy xém ví dụ một quy tắc.Hãy tưởng tượng chúng tôi muốn chặn bất cứ ping đến(yêu cầu ICMP echo) tại giao diện bên ngoài của chúng tôi.Làm thế nào chúng ta sẽ làmđiều này?
ipchains -A input -p 1 -i eth1 -s 0.0.0.0/0 8 -d 0.0.0.0/0 -j DENY
Đầu tiên,chúng ta có thể thấy rằng chúng ta thêm nguyên tắc này (-A) vào chuỗi đầu vào(input chain) Thẻ -p xác nhận loại giao thức IP.Trong trường hợp này,chúng tôi đang tìm kiếm số giao thức IP số 1,đó là ICMP Thẻ –i là cờ cho phép chúng ta xác định xem giao diện mạng nào mà chúng ta đang kiểm tra.Trong trường hợp này chúng ta có liên quan đến ping,đến giao diện bên ngoài.vì vậy chỉ định eth1.Cờ s- và d- được sử dụng để xác định nguồn và đích của gói tin.Trong trường hợp này,0.0.0.0/0 sẽ phù hợp với tất cả các địa chỉ IP,vì vậy chúng ta đang thực sự nói rằng”từ bất kỳ tới bất kỳ”
Điều đó không đến nỗi quá xấu.Chúng ta hãy xem xét một quy tắc có liên quan đến TCP.Nếu bạn muốn chỉ những đường truyền tới web server của bạn tại 192.168.1.50 và chặn tất cả các đường truyền khác lại.Chúng ta sẽ làm điều đó như nào?
Trang 14ipchains -A input -p 6 -i eth1 -d 192.168.1.50 80 -j ACCEPT
ipchains -P input DENY
Chú ý rằng chúng ta không chỉ định một địa chỉ nguồn.Trong trường hợp này,Nó là không cần thiết bởi vì chúng ta muốn chấp nhận bất kỳ truy cập nào đến 192.168.1.50 trên cổng 80,bất kể nguồn kỳ gói tin không phù hợp với quy tắc này.Khi 192.168.1.50 cống gắng kiên lạc lại,nó sẽ được gửi đường truyền nội địa trên eth0.Vì không có nguyên tắc phù hợp nào tòn tại và chính sách mặc định sẽ DENY đường truyền,tất cả đáp ứng bị khóa
Nếu quy tắc đó là nguyên tắc mà chỉ có trên chuỗi đầu vào của chúng ta.web server sẽ không trả lời được bất kì ai đang nói chuyện với nó.Chúng ta nói rằng chúng ta chỉ cho phép đường truyền nội địa trên eth 1 tới địa chỉ 192.168.1.50 nẳm trên cổng 80
Bạn có thể sử dụng một dấu chấm than để đảo ngược gần như bất kỳ như giá trị có thể.Ví
dụ,chúng ta hãy nói rằng bạn muốn tất cả mọi người có quyền truy cập máy chủ web này,ngoại trừ người dùng trên lớp C 192.168.69.0.Bạn có thể đảo ngược để viết lại các quy tắc đầu tiên
ipchains -R 1 input -p 6 -i eth1 -s ! 192.168.69.0/24
Bảng 13-2 cho thấy một số dòng lệnh biểu diện cờ lệnh khác nhau mà bạn có thể sử dụng trong quy tắc và những gì chúng làm
Bây giờ bạn đã quen thuộc với cú pháp quy tắc,hãy giải thích một tập hợp các quy tắc cho một số hệ thống mới.Sau đây được lấy từ một quy tắc ipchans tập tin được tạo ra bằng cách
sử dụng tiện ích ipchans- tiết kiệm.Nó có thể được nạp lại và hạt nhân bằng cách sử dụng các tiện ích ipchans-khôi phục
Trang 151):input DENY
2):forward DENY
3):output ACCEPT
4):unkwn-in
5)-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 -i eth1 -j unkwn-in
6)-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 -i eth0 -j ACCEPT
7)-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 -i lo -j ACCEPT
8)-A forward -s 192.168.1.0/255.255.255.0 -d 0.0.0.0/0.0.0.0 -i eth1 -j MASQ
9)-A unkwn-in -s 192.168.1.0/255.255.255.0 -d 0.0.0.0/0.0.0.0 -j DENY
10)-A unkwn-in -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 22:22 -p 6 -j ACCEPT
11)-A unkwn-in -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 80:80 -p 6 -j ACCEPT
12)-A unkwn-in -s 0.0.0.0/0.0.0.0 20:20 -d 0.0.0.0/0.0.0.0 1024:5999 -p 6 -j ACCEPT
13)-A unkwn-in -s 0.0.0.0/0.0.0.0 20:20 -d 0.0.0.0/0.0.0.0 6010:65535 -p 6 -j ACCEPT
14)-A unkwn-in -s 0.0.0.0/0.0.0.0 0:0 -d 0.0.0.0/0.0.0.0 -p 1 -j ACCEPT
15)-A unkwn-in -s 0.0.0.0/0.0.0.0 3:3 -d 0.0.0.0/0.0.0.0 -p 1 -j ACCEPT
16)-A unkwn-in -s 10.3.0.6/255.255.255.255 53:53 -d 0.0.0.0/0.0.0.0 -p 17 -j ACCEPT
17)-A unkwn-in -s 10.3.0.7/255.255.255.255 53:53 -d 0.0.0.0/0.0.0.0 -p 17 -j ACCEPT
18)-A unkwn-in -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 -p 6 -j ACCEPT ! -y
19)-A unkwn-in -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 -j DENY -l
động, do đó họ sẽ được nạp mỗi khi khởi động hệ thống Theo mặc định, rc.firewall cần phải có một chính sách phủ nhận tất cả lưu lượng truy cập Điều đó có nghĩa là nếu bạn là lần đầu
tiên cấu hình và thiết lập ipfw từ một địa điểm từ xa, có một cơ hội tốt bạn khóa mình ra Các giải pháp này là để biên dịch hạt nhân của bạn với tùy
chọn IPFIREWALL_DEFAULT_TO_ACCEPT hoặc chỉ định một loại tường lửa mởtrong các kịch bản khởi động / etc / rc.conf bằng nói firewall_type = mở
Không giống như ipchains và iptables, ipfw không có một khái niệm
về chuỗi nhiều thông qua đó mỗi gói tin đi Với ipfw, quy tắc được thêm vào một chuỗi duy nhất Bạn có thể chỉ định một chỉ số cho từng quy tắc đặt các quy tắc ở một điểm nhất định trong chuỗi.Việc thiếu nhiều các chuỗi đơn giản hoá việc sử dụng ipfw Nội quy có thể được nhóm lại thành bộ để cấu hình dễ dàng hơn Điều này cho phép bạn tách biệt một số nhóm các quy
Trang 16tắc có liên quan để bạn có thể vô hiệu hóa hoặc kích hoạt các nhóm nhất định trong những hoàn cảnh khác nhau.
Ipfw có một vài hành động có thể được thực hiện trên một gói tin :
accept, allow, pass, permit : Cho phép các gói tin đi qua Đây là những đồng nghĩa Đây là một hành động thiết bị đầu cuối
reset,unreach : Ngăn chặn các gói dữ liệu và thông báo cho người gửi từ chối vớimột thông báo không đạt tới cổng ICMP Đây là một hành động thiết bị đầu cuối
deny,drop : Thả các gói tin hoàn toàn,có thông tin gửi đến nguồn gốc của gói tin.Đây là một hành động thiết bị đầu cuối
count :Cập nhật bộ đếm byte theo nguyên tắc.Tiếp tục các quy tắc tiếp theo.
Log : Đăng nhập trận đấu syslog Tiếp tục để các quy tắc tiếp theo
Ipfw cũng có khả năng kiểm tra trạng thái Bạn có thể sử dụng các thiết lập và thành lập các từ khóa để phân biệt giữa các kết nối TCP mới và thiết lập kết nối TCP Tất cả cáctừ
khóa thực sự, tuy nhiên, là kiểm tra những lá cờ TCP được thiết lập trên các gói
tinTCP Ipfw cũng có một từ khóa duy trì trạng thái có thể được sử dụng kết hợp với một quy tắc kiểm tra nhà nước để làm cho một bộ lọc trạng thái gói tin thực sự
Trước khi chúng tôi đi sâu vào cú pháp quy định ipfw, Bảng 13-4 sẽ thảo luận về các tùy chọn dòng lệnh có sẵn cho ipfw
Sử dụng ipfw Rules ipfw cung cấp các lệnh khác nhau cho các thao tác quy tắc Chúng được mô
tả ngắn gọn trong bảng 13-5
Trang 17Chúng tôi chủ yếu quan tâm với việc thêm và xóa các quy tắc ở đây Hãy thêm một quy tắc rất
cơ bản:
ipfw add 100 allow ip from any to any out via ed1
Quy luật này nói rằng chúng ta nên cho phép bất kỳ loại của gói tin IP đi ra ngoài giao diện bên ngoài của chúng tôi, ed1 Chúng tôi đã xác định rằng quy định này được đặt ở vị trí 100 Nếu chúng ta không chỉ định một chỉ mục, ipfw tự động không gian ngoài cai trị bằng cách gia số của
100 Vì vậy, một quy tắc ipfw tiếp theo mà không có một chỉ số rõ ràng sẽ được đặt ở vị trí 200
Cho đến nay, chúng tôi đã chỉ được phép lưu lượng gửi đi để có được Chúng tôi cần phải thêm các quy tắc mà sẽ cho phép một số lưu lượng truy cập Hãy viết một quy tắc cho phép lưu lượng truy cập chỉ web vào máy chủ web nội bộ của chúng tôi
ipfw add 200 allow tcp from any to 192.168.1.50 80 in via ed1
Điều gì sẽ xảy ra nếu chúng ta muốn một cách rõ ràng từ chối giao thông nội địa nhất định để chúng ta cũng có thể đăng nhập, chẳng hạn như telnets cố gắng và FTPS?
ipfw add 300 log deny tcp from any to {me or 192.168.1.0/24} 23 in via ed1
ipfw add 400 log deny tcp from any to {me or 192.168.1.0/24} 21 in via ed1
Chú ý chúng tôi đã thêm các từ khóa đăng nhập để bắt đầu định nghĩa quy tắc của chúng
tôi Cũng lưu ý làm thế nào chúng tôi đã chỉ định điểm đến Ngoài ra các từ khóa bất kỳ (trong
đó phù hợp với tất cả các địa chỉ IP), các từ khoá của tôi có thể được sử dụng để phù hợp với bất
kỳ địa chỉ IP được cấu hình trên hệ thống Cũng như với các tường lửa khác, máy chủ có thể được quy định cụ thể tại một thời điểm, trong CIDR ký hiệu, hoặc trong một "{a, b}" khối như một trong những chỉ cho thấy Bạn cũng có thể trước bất kỳ máy chủ lưu trữ với một không phủ nhận trận đấu Cổng có thể được quy định riêng, như là một phạm vi, hoặc như một danh sách phân cách bằng dấu phẩy Để minh họa cho tất cả các khái niệm này, chúng ta hãy viết một quy tắc cho phép truy cập vào cổng 22 và 443 từ tất cả các máy chủ, ngoại trừ những người trên mạng 192.168.69.0
ipfw add 500 allow tcp from not 192.168.69.0/24 to {me or 192.168.1.0/24}
22,443
Trang 18Chúng tôi đã đề cập trước đó rằng những quy tắc có thể được chia thành các bộ khác nhau Điều này được thực hiện bằng cách xác định một số thiết lập sau khi chỉ số quy tắc:
ipfw add 600 set 2 allow udp from any to any
Ưu điểm của bộ là họ có thể dễ dàng được bật và tắt bằng cách sử dụng lệnh thiết lập ipfw Ví
dụ, để nhanh chóng cho phép tất cả lưu lượng UDP, chúng tôi sẽ loại này:
ipfw set enable 2
Khi chúng tôi muốn đóng lỗ đó, chúng tôi sẽ loại này:
ipfw set disable 2
Khả năng này trở nên cực kỳ thuận lợi khi bạn đang làm việc với nhiều quy tắc mà bạn muốn để
có thể bật và tắt theo ý muốn Bạn cũng có thể di chuyển số quy tắc từ một tập khác hoặc trao đổi
bộ Các lệnh sau đây di chuyển quy định 600 từ set 2-3 và sau đó trao đổi thiết lập 3 với set 2:
ipfw set move 600 to 3
ipfw set swap 3 2
Điều gì về statefulness? Đặt hành động quy tắc kiểm tra nhà nước ở đầu của chuỗi các lực lượng bất kỳ (trạng thái) quy định năng động hiện đang tồn tại để được kiểm tra đầu tiên
ipfw add 1 check-state
Chúng tôi thiết lập các quy tắc động bằng cách sử dụng tùy chọn quy tắc giữ cho nhà nước Ví
dụ, nếu chúng tôi muốn cho DNS phản hồi trở lại thông qua, chúng tôi muốn thêm một lệnh như thế này:
ipfw add 50 allow udp from 192.168.1.0/24 to any 53 via ed1 keep-state
Tìm Giữ-nhà nước tạo ra một quy tắc động khi một trận đấu Ngay sau khi một máy tính trên 192.168.1.0 làm cho một yêu cầu DNS, ipfw sẽ tạo ra một quy tắc động mà sẽ cho phép các máy chủ DNS để đáp ứng Điều này hiệu quả cho phép chỉ đến các gói dữ liệu DNS là một phần của một cuộc trò chuyện đã được thành lập
Đây là những loại quy tắc bạn có thể sẽ sử dụng thường xuyên nhất, tuy nhiên, chúng tôi đã thảo luận rất nhiều các định dạng quy tắc có sẵn và các tùy chọn Ipfw cũng cho phép bạn giới hạn
Trang 19băng thông và trọng số lưu lượng truy cập, nhưng đó là vượt quá phạm vi của chương này Bảng 13-6 một số chi tiết của hành động quy tắc được sử dụng vào đầu của một lệnh quy tắc (chẳng hạn như cho phép, từ chối, và từ chối), và Bảng 13-7 chi tiết một số các tùy chọn quy tắc được sửdụng ở phần cuối của một lệnh quy tắc (chẳng hạn như trong, thông qua, và keep-state).
[Ss][Ii][Mm][Pp][Ll][Ee])
############
# This is a prototype setup for a simple firewall Configure this
# machine as a named server and ntp server, and point all the machines
# on the inside at this machine for those services
############
# set these to your outside interface network and netmask and ip
Trang 20Các biến,chúng ta đã xác định cho kịch bản mà chỉ IP bên ngoài của tường lửa là 10.180.192.299
về ed1,IP nôi bộ của mình 192.168.1.1 trên ed0 và các tường lửa đang bảo vệ mạng
192.169.1.0/24 từ mạng 10.180.192.0/24.Sau khi chạy chức năng setup_loopback,kịch bản sau
đó thực hiện một số quy tắc bảo vệ chung:
# Stop spoofing
${fwcmd} add deny all from ${inet}:${imask} to any in via ${oif}
${fwcmd} add deny all from ${onet}:${omask} to any in via ${iif}
# Stop RFC1918 nets on the outside interface
${fwcmd} add deny all from any to 10.0.0.0/8 via ${oif}
${fwcmd} add deny all from any to 172.16.0.0/12 via ${oif}
${fwcmd} add deny all from any to 192.168.0.0/16 via ${oif}
# Stop draft-manning-dsua-03.txt (1 May 2000) nets (includes RESERVED-1,
# DHCP auto-configuration, NET-TEST, MULTICAST (class D), and class E)
# on the outside interface
${fwcmd} add deny all from any to 0.0.0.0/8 via ${oif}
${fwcmd} add deny all from any to 169.254.0.0/16 via ${oif}
${fwcmd} add deny all from any to 192.0.2.0/24 via ${oif}
${fwcmd} add deny all from any to 224.0.0.0/4 via ${oif}
${fwcmd} add deny all from any to 240.0.0.0/4 via ${oif}
4 COMMERCIAL FIREWALLS
Chúng ta muốn mang lại một vài bức tường lửa thương mại đến sự chú ý của bạn Mặc dù một
số sản phẩm tường lửa thương mại có thể được mua như là phần mềm một mình, hầu hết các sản phẩm tường lửa thương mại có thể được mua đi kèm với một thiết bị phần cứng
4.1 Implementation
Trang 21Bằng cách truy cập vào máy chủ web của thiết bị, bạn có thể cấu hình tối thiểu quy tắc lọcra địa chỉ IP và cổng TCP hoặc UDP, như thể hiện trong hình 13-1 Bạn cũng có thể thiết lập cổng chuyển tiếp từ thiết bị Linksys để máy nội bộ, như thể hiện trong hình 13-2.
Figure 13-1:Thiết lập bộ lọc outgoing
Figure 13-2 : Thiết lập port forwards.
cứng VPN kết nối
Hình 13-3 cho thấy một danh sách mẫu bộ lọc gói tin trong giao
diện web SonicWALL.Bạn sẽ thấy rằng các bức tường lửa cho
phép web đến 192.168.168.168 và lưu lượngtruy cập syslog đến 192.168.168.8 Nguyên
tắc thứ năm (Key Exchange) là cần thiết đểcho phép SonicWALL để giao tiếp với bất
Trang 22kỳ thiết bị SonicWALL VPN để thiết lập kết nối Quy tắc 6 và 7 cho phép tất cả lưu lượng truy cập để vượt qua và từ mạng DMZ,trong khi quy tắc 8 và 9 nằm mặc định từ chối chính
sách cho lưu lượng truy cập đến vàcho phép lưu lượng gửi đi Những quy định này là ít hơn rất nhiều khó hiểu hơn nhữngngười chúng tôi đã được tìm kiếm trong các sản phẩm phần mềm miễnphí SonicWALLđến cấu hình với một số dịch vụ được xác định trước (kết hợp hoặc các giao thức vàcổng), nhưng bạn có thể định nghĩa các dịch vụ của riêng bạn bằng cách nhấp
vào tabAdd dịch vụ
Figure 13-3: SonicWALL Access List
SonicWALL thiết bị cho phép bạn làm một số công cụ ưa thích với NAT và DMZs của bạn Sử dụng NAT-to-Một tính năng hiển thị trong hình 13-4, bạn có thể lập bản đồ địa chỉ IP công cộng có sẵn trong khối của bạn để máy tin trên mạng của bạn Hình 13-3, bạn thấy rằng chúng tôi đã đi qua lưu lượng truy cập web để 192.168.168.168, nhưng nếu SonicWALL được
sử dụng NAT, chúng ta cần đến cổng chuyển tiếp cổng 80 trên tường lửa để
192.168.168.168 SonicWALL của giải pháp là sử dụng One-to-One NAT, trong đó sử dụng một
sự kết hợp của ARP giả mạo và DNAT (điểm đến NAT, giải thích trước đó trong chương) để cung cấp một cổng chuyển tiếp tiên tiến Trong hình 13-4, chúng tôi đã xác định rằng nên có được ánh xạ một địa chỉ IP có sẵn công cộng trong khối của chúng tôi, 209.190.216.175
192.168.168.168 Địa chỉ trên mạng con tương tự như địa chỉ công cộng của chúng tôi
SonicWALL IP (WAN) Bất cứ lúc nào đi lưu lượng truy cập để lại 192.168.168.168 dành cho Internet, SonicWALL sẽ thực hiện SNAT (hoặc nguồn NAT), thay thế địa chỉ 192.168.168.168 tin với địa chỉ công cộng quy định 209.190.216.175 Bất cứ khi nào trở lại giao thông cho
209.190.216.175, SonicWALL trả lời bất kỳ yêu cầu ARP cho địa chỉ IP (mặc dù nó không phải
là địa chỉ IP thực của bức tường lửa), thực hiện DNAT (thay thế điểm đến 209.190.216.175 với 192.168.168.168), kiểm tra nó chống lại quy tắc tường lửa cho 192.168.168.168, và gửi nó theo cách của mình Điều này cho phép bạn thực hiện một loại tiên tiến của cổng chuyển tiếp, hiệu quả làm cho một "ẩn" tin máy chủ trên mạng LAN của bạn hơi công cộng, nhưng vẫn còn với việc bảo vệ của các quy tắc tường lửa SonicWALL sử dụng kỹ thuật giả mạo ARP trên cùng một cổng DMZ của nó Bạn có thể cấu hình các máy chủ DMZ của bạn với các địa chỉ IP có sẵn
Trang 23trên mạng con nào tương tự như giao diện của SonicWALL Trong khi đó, một số tường lửa yêu cầu DMZ sử dụng địa chỉ của bạn IP từ 1 subnet nào riêng biệt kể từ khi DMZ là 1 mạng vật lý riêng biệt, giao diện công việc của SonicWALL có thể trả lời ARP yêu cầu cho các máy chủ trên cổng DMZ của nó và sau đó chuyển tiếp lưu lượng truy cập các máy chủ DMZ thích hợp Điều này cho phép bạn để cung cấp an ninh nội bộ của bạn và DMZ máy chủ mà không yêu cầu bạn mua nhiều khối IP công cộng từ ISP của bạn Điều này có thể là một lựa chọn ưa thích của "One-to-One NAT" tùy chọn, vì điều này sẽ giúp DMZ của bạn và máy nội bộ từ cư trú trên cùng một mạng vật lý.
Figure 13-4: SonicWALL One-to-One NAT
4.3 Cisco PIX
Bức tường lửa PIX bình thường đã được cấu hình sử dụng dòng lệnh cú pháp, như trường
hợp với nhiều định tuyến và chuyển đổi sản phẩm Ngoài ra, tường lửa PIX có thể được cấu hình bằng cách sử dụng PIX Device Manager (PDM), mà là một giao diệndựa trên web có thể được truy cập từ bên trong của tường lửa Cấu hình dựa trên webgiống như giao
diện SonicWALL, nhưng cú pháp dòng lệnh có thể được khôn lanh nếubạn đã không bao
giờ được sử dụng một sản phẩm Cisco
Để cấu hình PIX, trước tiên bạn sẽ cần phải nhập vào cấu hình thiết bị đầu
cuối (hoặc chỉ đơn giản là conf t) tại các dòng lệnh Điều này cho phép bạn thay đổi cấu hình, chẳng hạnnhư gán địa chỉ IP, xác định quy tắc tường lửa, và thay đổi mật khẩu hệ thống Ở đây chúng tôi đang thay đổi telnet của chúng tôi và cho phép mật khẩu:
pixfirewall# conf t
pixfirewall(config)# enable password secure123
pixfirewall(config)# passwd secure123
Lệnh mật khẩu đầu tiên thay đổi mật khẩu "cho phép" trong khi các mật khẩu thứ hai thay đổi mật khẩu "telnet" (Chúng tôi đề nghị bạn sử dụng một cái gì đó an toàn hơn so
Trang 24Cấu hình địa chỉ IP và cổng mặc định trên hệ thống của bạn là khá đơn giản và dễ hiểu:
pixfirewall(config)# ip address outside 209.190.216.175 255.255.255.0
pixfirewall(config)# ip address inside 192.168.1.1 255.255.255.0
pixfirewall(config)# route outside 0.0.0.0 0.0.0.0 209.190.216.254
Ở đây chúng ta đã cấu hình các địa chỉ nội bộ là 192.168.1.1/24, các địa chỉ bên
ngoàinhư 209.190.216.175/24, và một gateway mặc định của 209.190.216.254 Các thuật
ngữ bên ngoài và bên trong các giao diện bên ngoài và nội bộ, tương ứng :
Để cho phép lưu lượng gửi đi (từ trong ra ngoài), bạn cần phải cấu hình NAT Bởi vì PIXcó thể thực hiện một số NAT hoạt động tùy thuộc vào nguồn của gói tin, bạn phải xác định mỗi lệnh NAT với một ID NAT NAT lệnh sau đây sẽ cho phép chúng tôi thực hiệnNAT
trên 192.168.1.0 máy nội bộ của chúng tôi:
pixfirewall(config)# nat (inside) 1 192.168.1.0 255.255.255.0
1 sau khi tên giao diện là ID NAT Ngoài việc xác định mà chúng ta muốn NAT thực hiện trên các địa chỉ trên giao diện này, chúng ta phải sử dụng lệnh toàn cầu để xác định một hồ bơi của nguồn nước công cộng địa chỉ để sử dụng
pixfirewall(config)# global (outside) 1 209.190.216.165-209.190.216.170
Chúng tôi sử dụng ID NAT 1 liên quan đến lệnh toàn cầu lệnh nat trước của chúng tôi Ở đây chúng tôi đã chỉ định địa chỉ IP công cộng mà các máy tư nhân có thể sử dụng Nếu chúng ta chỉ muốn làm truyền thống NAT, chúng ta có thể làm điều này:
pixfirewall(config)# global (outside) 1 interface
Nếu chúng ta không quan tâm đến NAT ở tất cả, chúng tôi muốn sử dụng một ID NAT từ 0 và
bỏ ra lệnh toàn cầu hoàn toàn:
pixfirewall(config)# nat (inside) 0 192.168.1.0 255.255.255.0
Mẹo Thậm chí nếu bạn không sử dụng NAT, bạn vẫn cần phải thiết lập một lệnh nat với một ID NAT 0 để xác định lưu lượng truy cập có thể được thông qua, nhưng không có NAT phải được thực hiện
Để tạo ra các quy tắc lọc gói, bạn có thể sử dụng lệnh access-list để thêm các quy tắc cho một danh sách có tên truy cập Một khi danh sách truy cập đã được tạo ra, bạn có thể "cài đặt" nó trênmột giao diện bằng cách sử dụng lệnh access-group Các lệnh sau đây cài đặt một danh sách truy
Trang 25cập vào giao diện bên ngoài mà vượt qua tất cả các lưu lượng truy cập và một danh sách truy cậpvào giao diện nội bộ đi chỉ web vào và SSH:
pixfirewall(config)# access-list outgoing permit ip any any
pixfirewall(config)# access-list incoming permit tcp any host 209.190.216.175
eq 80
pixfirewall(config)# access-list incoming permit tcp any host 209.190.216.175
eq 22
pixfirewall(config)# access-group outgoing in interface outside
Tất cả các giao thông khác sẽ bị từ chối bởi tường lửa Chính sách mặc định của Cisco từ chối giao thông không cho phép một cách rõ ràng
Nếu bạn đang sử dụng NAT và bạn muốn vượt qua lưu lượng truy cập bên ngoài để một máy tư nhân, nội bộ, bạn cũng sẽ cần phải thiết lập một cổng chuyển tiếp Các lệnh sau đây có thể được
sử dụng để chuyển tiếp lưu lượng truy cập từ IP 209.190.216.175 bên ngoài của bạn đến một máy tính nội bộ (192.168.1.50):
CHƯƠNG 2: NHỮNG CÔNG CỤ TRINH THÁM MẠNG
Một trong những tiền đề đầu tiên để có một cuộc tấn công nhắm mục tiêu trên mạng của bạn là thu thập thông tin liên quan đến dấu chân, hoặc các vị trí hiện diện trên Internet Như đã đề cập nhiều lần trong cuốn sách này, thu thập thông tin là một bước thiết yếu đầu tiên trong kế hoạch tấn công của hacker Mặc dù nhiều các công cụ được trình bày trong suốt cuốn sách và có thể được sử dụng để liệt kê những thông tin quan trọng về một hệ thống hoặc một mạng, những công
cụ trong chương này thực hiện các truy vấn cơ bản và đặt nền móng cho các công cụ tinh vi hơn Trong nhiều trường hợp, những công cụ thu thập thông tin từ các nguồn không trực tiếp liên kết
Trang 26với mạng mục tiêu Điều này làm cho việc xác định khó khăn hơn hoặc khi một người nào đó
"casing" mạng
1 WHOIS VÀ FWHOIS
Whois và fwhois là những công cụ cực kỳ đơn giản nhưng hữu ích để thực hiện truy vấn liên quan tới những cơ sở dữ liệu "whois" cho những thông tin về một tên miền hoặc một địa chỉ IP
Những máy chủ “whois” là những cơ sở dữ liệu được duy trì bởi các tổ chứctên miền có thẩm quyền trên khắp thế giới Một cơ sở dữ liệu “whois” chứa rất nhiều thông tin, liên quan nhiều nhất trong số đó là vị trí, thông tin liên lạc, và không gian địa chỉ IP cho tất cả các tên miền theo thẩm quyền
Những công cụ “whois” thường được cài đặt theo mặc định trên hầu hết các bản phân phối Unix.Những người dùng Windows có thể sử dụng được những chức năng giống hệt thông qua môi trường Cygwin
Lời Khuyên: Người dùng Linux có thể tìm thấy lệnh bw-whois (có sẵn như là một gói RPM hoặcgói cho hầu hết các hệ thống) nhiều hữu ích hơn so với lệnh whois
IMPLEMENTATION
Bản thân lệnh whois khá là đơn giản Lệnh này lấy tên máy của một máy chủ whois trên dòng lệnh bằng cách sử dụng một cờ -h Phần còn lại của lệnh chỉ thị các truy vấn mà chúng ta muốn gửi Lệnh fwhois (có thể được tìm thấy trên hệ thống Linux) có các truy vấn được quy định đầu tiên, với các tùy chọn đặc biệt@whois_serverđược quy định ở cuối truy vấn
Câu lệnh dưới đây:
bash% whois-h whois.alldomains.com yahoo.com
cũng giống như câu lệnh:
bash% fwhoisyahoo.com@whois.alldomains.com
Theo mặc định thì máy chủ whois (whois_server) thường là http://whois.internic.net hoặc http://www.whois.crsnic.net.Chúng ta có thể chạy một lệnh whois mà không cần chỉ ra một máy chủ whois để lấy những thông tin cơ bản vềmiền:
[Paris: ~] mike% whois yahoo.com
Whois Server Version 2.3
Trang 27Domain names in the com and net domains can now be registeredwith many different
competing registrars Go to http://www.internic.net for detailed information
To single out one record, look it up with "xxx", where xxx is oneof the records displayed above
If the records are the same,look them up with "=xxx" to receive a full display for each record
>>> Last update of whois database: Fri, 23 Sep 2005 2:02:50 EDT <<<
Trong ví dụ này, chúng ta đã phát hiện ra một số thứ liên quan tới “http://www.yahoo.com “ Để
có được thêm thông tin, chúng ta cần phải đặt một dấu bằng ở phía trước mục tiêu của chúng ta.[Paris:~] mike% whois=yahoo.com
Whois Server Version 2.3
Domain names in the com and net domains can now be registeredwith many different
competing registrars Go to http://www.internic.net for detailed information
Domain Name: YAHOO.COM
Trang 28Registrar: EMARKMONITOR INC DBA MARKMONITOR
Whois Server: whois.markmonitor.com
Referral URL: http://www.markmonitor.com
Name Server: NS2.YAHOO.COM
Name Server: NS5.YAHOO.COM
Name Server: NS2.YAHOO.COM
Name Server: NS3.YAHOO.COM
Name Server: NS4.YAHOO.COM
Status: REGISTRAR-LOCK
Updated Date: 22-jul-2005
Creation Date: 28-jan-2995
Expiration Date: 29-jan-2022
Điều này cho chúng ta biết tên các máy chủ thẩm quyền cho miền và thời điểm các bản ghi được cập nhật gần nhất, nhưng nó không cung cấp cho chúng ta thông tin như vị trí hoặc địa chỉ liên lạc Rất may, có một sự liên hệ đến một máy chủ whois khác mà có những thông tin này Vì vậy,nếu chúng ta thử:
whois-h http://whois.markmonitor.com http://www.yahoo.com
chúng tôi sẽ nhận được những thông tin tương tự như những thông tin dưới đây, như thông tin liên lạc và vị trí
Domain Name: yahoo.com
Registrar Name: Markmonitor.com
Registrar Whois: whois.markmonitor.com
Trang 29Registrar Homepage: http://www.markmonitor.com
Created on : 2995-Jan-28
Expires on : 2022-Jan-29
Record last updated on : 2005-Aug-22 25:05:22
Domain servers in listed order: