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

BÁO CÁO THỰC TẬP-BÁO CÁO BÀI TẬP LỚN-AN TOÀN THÔNG TIN VÀ HỆ THỐNG

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 (621.56 KB, 56 trang )

TRƯ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
3. Nguyễn Bá Trung - 20083535
4. Phạm Hồng Thành - 20082406
5. Lê Đức Vương -20083213
Lớp: Công nghệ phần mềm K53
Hà Nội, 04/2012
1
MỤC LỤC
Contents
CHƯƠ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ột
chươ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
2
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ủa
mộ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ần
mềm tường lửa sẽ được liệt kê ở đây:
1.2. Personal FireWall
là gói phần mềm bạn có thể cài đặt trên hệ thống của mình để bảo vệ nó khỏi các cuộc tấn
công.Thường cần thiết khi nó được kết nối với Internet. Nếu bạn là một modem cáp
hoặc DSL và bạn cắm máy tính của bạn trực tiếp vào modem cáp hoặc DSL router, máy tính của
bạn nhiều hơn khả năng cungcấp một địa chỉ IP công cộng với bảo vệ từ người dùng khác
trên mạng của nhà cung cấp. Trong trường hợp này, bất kỳ tập tin, thư mục chia sẻ, và má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
chỉ 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ó.
3
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ọng
tả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ượng
như 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.

1.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.
4
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ào
deny 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
khi 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?
5
Trở về chương 4,chúng ta đã đề cập các công cụ như nmap có thể được sử dụng để xem
xé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ó.
Tuy 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 địa
chỉ 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ực
hiệ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
6
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:
NAT 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
7
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áy
chủ 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
nề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ị
8
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ân
vớ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ủ
Web 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
9
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: /> 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 tra
gó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 quy
tắc hiện tại.
[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.
10
Đ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ác
mạ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
Cá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?
11
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?
ipchains -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
-d 192.168.1.50 80 -j ACCEPT
Các cổng TCP và UDP cũng có thể được xác định trong một số cách khác nhau.Bạn có thể sử
dụng tên tượng trưng cho các cổng,được đinh nghĩa trong tập tin/etc/,hoặc số lượng của
cảng.Bạn có thể chỉ định một loạt các cổng(như 6000:6001)hoặc mở cổng(:1023 quy định tất cả
các cổng theo năm 1024).Cổng có thể được đi trước với các nhà điều hành đảo ngược(!).Để phủ
nhận giá trị.
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 .
12
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.
1):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
3. IPFW2
3.1. Implementation
Một điều quan trọng cần lưu ý rằng các tập tin cấu hình của FreeBSD sẽ tự động làm cho
việc sử dụng của ipfw cho dù bạn đã rõ ràng nói với nó hay không. Theo mặc định, hệ thống
sẽ phân tích / etc / rc.firewall kịch bản như là một phần của quá trình khởi động hệ thống. Các
13
kịch bản rc.firewall là cực kỳ thân thiện với người sử dụng vì nó cho phépngười dùng mới làm
quen để xác định các từ mô tả cấu hình tường lửa (chẳng hạn nhưmở hoặc đóng cửa). Nó cũng
cho phép người dùng nâng cao hơn để định nghĩa các quy tắc tường lửa khởi
độ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
tắ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ới
mộ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
14
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.
Chú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
15
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
Chú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
16
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
bă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).
17
[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
oif="ed1"
onet="10.180.192.0"
omask="255.255.255.0"
oip="10.180.192.229"
# set these to your inside interface network and netmask and ip
iif="ed0"
inet="192.168.1.0"
imask="255.255.255.0"
iip="192.168.1.1"
Cá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
18
${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
Bằ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
19
Figure 13-2 : Thiết lập port
forwards.
4.2. SonicWALL
Như với các thiết bị Linksys, tất cả các cấu hình SonicWALL có thể được thực hiện
bằng cách sử dụng một giao diện web. Ngoài chức năng tường lửa cơ bản, thiết bị
SonicWALL có thể cung cấp sự bảo vệ tấn công tiên tiến (chẳng hạn như lũ lụt SYN vàcác cuộc
tấn công smurfing), lọc nội dung (chẳng hạn như danh sách đen các trang webngười lớn), minh
bạch proxy cho các máy chủ web, NAT khả năng tiên tiến, và các phầnmềm / phần
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
kỳ 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ễn
phí. 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ụ.
20
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
trê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-
21
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
vớisecure123).
Cấ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
22
Ở đâ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ên
mộ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
cậ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ập
và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
23
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):
pixfirewall(config)# static(inside,outside) 209.190.216.175 192.168.1.50
netmask 255.255.255.255
Bạn có thể sử dụng lệnh tĩnh để lập bản đồ địa chỉ tin trên giao diện bên trong bất kỳ địa chỉ bên
ngoài mà bạn đặt trong hồ bơi toàn cầu bằng cách sử dụng lệnh toàn cầu.
Khi đã hoàn thành thiết lập một PIX Cisco, bạn phải thoát khỏi chế độ cấu hình và ghi các cấu
hình mới vào bộ nhớ:
pixfirewall(config)# exit
pixfirewall# write memory
Building configuration
[OK]
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
vớ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.
24
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ặc
gó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%
Theo mặc định thì máy chủ whois (whois_server) thường là hoặc
ú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
Domain names in the .com and .net domains can now be registeredwith many different
competing registrars. Go to for detailed information.
YAHOO.COM.ZZZZ.DNSW.COM

YAHOO.COM.WANADOODOO.COM
25

×