1. Trang chủ >
  2. Giáo Dục - Đào Tạo >
  3. Cao đẳng - Đại học >

CHƯƠNG 1: TƯỜNG LỬA VÀ CÁC BỘ LỌC GÓI TIN

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 (642.56 KB, 58 trang )


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: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 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



Xem Thêm
Tải bản đầy đủ (.docx) (58 trang)

×