Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 63 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
63
Dung lượng
614 KB
Nội dung
ĐỐ án môn SECURITY: IPTABLEStrên LINUX
Mục Lục
Mục Lục 1
CHƯƠNG I: GIỚI THIỆU VỀ IPTABLES 6
1. Iptables là gì? 6
2. Tải về và cài đặt trọn gói Iptables 6
3. Làm thế nào để bắt đầu iptables ? 7
4. Xác định Các trạng thái của iptables 7
5. Cơ chế xử lý package trong iptables 7
Hình 2. Iptables gói lưu lượng Sơ đồ 11
6 Target và Jumps 12
Phân biệt giữa ACCEPT, DROP và REJECT packet 14
Phân biệt giữa NEW, ESTABLISHED và RELATED 14
7. Tùy chọn limit, limit-burst 15
8. Redirect cổng 17
9. Cách đổi địa chỉ IP động (dynamic NAT) 17
10. Cách đóng giả địa chỉ IP (masquerade) 18
11. Quá trình chuyển gói dữ liệu qua Netfilter 19
12. Các tham số dòng lệnh thường gặp của Iptables 20
12.7 Thiết lập những Rule cho Fedora’s iptable: 28
12.8. Tìm lại Đoạn mã bị mất: 28
12.9 Những modun Kernel cần thiết : 29
12.10 Sửa lỗi bảng iptables: 30
13.Những đoạn mã iptables mẫu: 31
13.1 Cơ bản về hoạt động của hệ thống bảo vệ: 31
13.2. Ưu điểm của sự khởi tạo iptables: 33
13.3. Sự cho phép máy chủ DNS truy cập đến Firewall: 35
13.4 Cho phép WWW và SSH truy cập vào firewall: 35
13.5_. Firewall cho phép bạn để truy cập Internet 36
13.6. Cho phép mạng Trang chủ của bạn để truy cập Các Firewall 38
13.7. Mặt nạ (Masquerade_many to one NAT): 38
13.8 Giả mạo (Nhiều NAT) 40
13.9 NAT Port Forwarding (DHCP DSL) 43
13.10 SNAT & MASQUERADE 46
13.11. DNAT 51
CHƯƠNG II: VÍ DỤ VỀ CẤU HÌNH IPTABLES CHO MÁY CHỦ PHỤC VỤ WEB 53
1. Thiết lập các tham số cho nhân 53
2. Nạp các môđun cần thiết cho Iptables 54
3. Nguyên tắc đặt luật là "drop trước, accept sau" 54
4. Lọc ICMP vào và chặn ngập lụt PING 55
5. Reject quét cổng TCP và UDP 56
6. Phát hiện quét cổng bằng Nmap 57
7. Chặn ngập lụt SYN 58
8: Giới hạn truy cập SSH cho admin 58
9. Giới hạn FTP cho web-master 59
10. Lọc TCP vào 60
11. Lọc UDP vào và chặn ngập lụt UDP 60
Lê Thị Thanh Hiền S0809G – BachKhoa-Npower
ĐỐ án môn SECURITY: IPTABLEStrên LINUX
KẾT LUẬN 62
TÀI LIỆU THAM KHẢO 63
Lê Thị Thanh Hiền S0809G – BachKhoa-Npower
ĐỐ án môn SECURITY: IPTABLEStrên LINUX
Lời nhận xét
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
Lê Thị Thanh Hiền S0809G – BachKhoa-Npower
ĐỐ án môn SECURITY: IPTABLEStrên LINUX
Lời Mở Đầu
An ninh mạng được xem là môt điều rất quan trọng trong bất kì quyết định của tổ
chức một trang web như là mối đe dọa thường trực đang ngày càng trở lên phổ
biens rộng rãi hơn. Một trong nhưng các bảo vệ là sử dụng firewall.
Ban đầu, các bức tường lửa phổ biến nhất / NAT gói chạy trênLinux là ipchains,
nhưng nó đã có một số thiếu sót. Để khắc phục điều này, các tổ chức Netfilter
quyết định tạo ra một sản phẩm mới được gọi là iptables, nó cải tiến như:
• Tích hợp tốt hơn với các hạt nhân Linux với khả năng tải hạt nhân iptables
cụ thể phần được thiết kế để cải thiện tốc độ và độ tin cậy.
• Kiểm tra trạng thái gói. Điều này có nghĩa rằng tường lửa theo dõi các kết
nối đi qua nó và trong trường hợp nhất định sẽ xem nội dung của các luồng
dữ liệu trong một nỗ lực để dự đoán các hành động tiếp theo của giao thức
nhất định. Đây là tính năng quan trọng trong việc hỗ trợ các hoạt động FTP
và DNS, cũng như các dịch vụ mạng khác.
• Lọc packet dựa trên địa chỉ MAC và các giá trị của những lá cờ trong phần
đầu TCP. Điều này hữu ích trong việc ngăn chặn các cuộc tấn công bằng
cách sử dụng các gói dữ liệu bị thay đổi và hạn chế truy cập từ các máy chủ
tại địa phương thuộc các mạng khác.
Hệ thống đăng nhập, cung cấp các tùy chọn điều chỉnh mức độ chi tiết của báo cáo.
• Dịch địa chỉ mạng tốt hơn.
• Hỗ trợ cho hội nhập trong suốt với các chương trình như Web proxy như
Squid.
• Một tỷ lệ hạn chế tính năng giúp iptables chặn một số loại từ chối dịch vụ
(DoS) tấn công.
• Được coi là nhanh hơn và an toàn hơn thay thế cho ipchains, iptables đã trở
thành bức tường lửa gói cài đặt mặc định theo RedHat và Fedora Linux.
Lê Thị Thanh Hiền S0809G – BachKhoa-Npower
ĐỐ án môn SECURITY: IPTABLEStrên LINUX
Trong thời gian học tập tại trung tâm đào tao Bách Khoa Npower, dưới sự hướng
dẫn của các thầy giáo chuyên ngành quản trị mạng đặc biêt là thầy Vũ Quý Hòa,
em đã chọn đề tài "IPTABLES trênLINUX " cho đồ án môn học SECURITY.
Mục đích của đề tài là giúp mọi người có được cái nhìn tổng quát nhất về
PTABLES trên LINUX. Với các tài liệu thu thập được em đã hoàn thành đồ án
"IPTABLES trên LINUX" biết được IPTABLES là gì?, cách cài đặt iptables, cơ
chế xử lý package trong iptables, Target và Jumps, các tham số dòng lệnh của
Iptables và ứng dụng IPTABLES cho máy chủ phục vụ Web.
Lê Thị Thanh Hiền S0809G – BachKhoa-Npower
ĐỐ án môn SECURITY: IPTABLEStrên LINUX
CHƯƠNG I: GIỚI THIỆU VỀ IPTABLES
1. Iptables là gì?
Iptables là một tường lửa ứng dụng lọc gói dữ liệu rất mạnh, miễn phí và có sẵn
trên Linux. Netfilter/Iptables gồm 2 phần là Netfilter ở trong nhân Linux và
Iptables nằm ngoài nhân. Iptables chịu trách nhiệm giao tiếp giữa người dùng và
Netfilter để đẩy các luật của người dùng vào cho Netfiler xử lí. Netfilter tiến hành
lọc các gói dữ liệu ở mức IP. Netfilter làm việc trực tiếp trong nhân, nhanh và
không làm giảm tốc độ của hệ thống.
Hình 1: Sơ đồ Netfilter/Iptables
2. Tải về và cài đặt trọn gói Iptables
Trước khi bạn bắt đầu, bạn cần phải chắc chắn rằng các RPM iptables phần mềm
được cài đặt. Khi tìm kiếm các RPM, hãy nhớ rằng tên tập tin thường bắt đầu với
tên gói phần mềm của một số phiên bản, như trong iptables-1.2.9-1.0. i386.rpm.
Lê Thị Thanh Hiền S0809G – BachKhoa-Npower
ĐỐ án môn SECURITY: IPTABLEStrên LINUX
3. Làm thế nào để bắt đầu iptables ?
Để có được cấu hình iptables để bắt đầu lúc khởi động, sử dụng lệnh chkconfig:.
[Root @ bigboy tmp] # chkconfig iptables on
Bạn có thể bắt đầu, dừng lại, và khởi động lại iptables sau khi khởi động bằng cách
sử dụng các lệnh:
[Root @ bigboy tmp] # service iptables start
[Root @ bigboy tmp] # service iptables stop
[Root @ bigboy tmp] # service iptables restart
4. Xác định Các trạng thái của iptables
Bạn có thể xác định xem iptables đang chạy hay không thông qua lệnh iptables
trạng thái dịch vụ. Fedora Core sẽ cung cấp cho một thông báo trạng thái đơn
giản. Ví dụ:
[Root @ bigboy tmp] # service iptables status
[Root @ bigboy tmp] #
5. Cơ chế xử lý package trong iptables
Tất cả gói kiểm tra iptables đi qua một chuỗi các được xây dựng trong các bảng
(hàng đợi) để xử lý. Mỗi hàng đợi là dành riêng cho một loại hình cụ thể của hoạt
động gói và được điều khiển bởi một chuyển đổi gói tin liên quan / dây chuyền lọc.
Lê Thị Thanh Hiền S0809G – BachKhoa-Npower
ĐỐ án môn SECURITY: IPTABLEStrên LINUX
Có ba bàn trong tổng số. Đầu tiên là bảng mangle có trách nhiệm cho những thay
đổi về chất lượng dịch vụ của các bit trong phần đầu TCP. Đây là hầu như không
được sử dụng trong một môi trường nhà hoặc SOHO.
Bảng xếp hàng thứ hai là bộ lọc này có trách nhiệm lọc gói. Nó có ba được xây
dựng trong các chuỗi trong đó bạn có thể đặt các quy tắc chính sách tường lửa của
bạn. Đây là những:
Chuyển tiếp chuỗi: Bộ lọc các gói dữ liệu đến các máy chủ được bảo vệ bởi
tường lửa.
Nhập chuỗi: Bộ lọc gói tin cho tường lửa.
Đầu ra chuỗi: Bộ lọc gói có nguồn gốc từ các bức tường lửa.
Bảng xếp hàng thứ ba là nat có trách nhiệm cho dịch địa chỉ mạng. Nó có hai được
xây dựng trong các dây chuyền, đó là:
Dự bị định tuyến chuỗi: NAT gói tin khi địa chỉ đích của gói tin cần phải
được thay đổi.
Post-routing chain: NAT gói tin khi địa chỉ nguồn của gói tin cần phải được
thay đổi
Bảng 1 : Các loại queues và chain cùng chức năng của
nó.
Loại
hàng
đợi
Chức năng
Queue
Gói chuyển đổi
chuỗi trong
Queue
Chức năng chuỗi
Filter Lọc gói
FORWARD
Bộ lọc các gói dữ liệu đến các máy chủ có thể truy
cập bởi một NIC trên tường lửa.
INPUT
Bộ lọc gói đến tường lửa.
Lê Thị Thanh Hiền S0809G – BachKhoa-Npower
ĐỐ án môn SECURITY: IPTABLEStrên LINUX
OUTPUT
Bộ lọc gói đi ra khỏi tường lửa (gói dữ liệu có
nguồn gốc từ các bức tường lửa).
Nat Network
Address
Translation
( Biên dịch
địa
chỉ mạng)
PREROUTING
Thay đổi địa chỉ đích xảy ra trước khi định
tuyến. Tạo điều kiện cho việc chuyển đổi địa chỉ
IP đích tương thích với bảng định tuyến của tường
lửa. Được sử dụng với NAT của địa chỉ IP đích,
còn được gọi là destination NAT hoặc DNAT.
POSTROUTING
Thay đổi địa chỉ đích xảy ra sau khi định
tuyến. Điều này có nghĩa rằng không có cần phải
thay đổi địa chỉ IP đích của gói tin như trong định
tuyến trước. Được sử dụng với NAT của địa chỉ IP
nguồn bằng cách sử dụng một-một hoặc NAT-một
nhiều. Điều này được gọi là source
NAT, hoặc SNAT.
OUTPUT
NAT sử dụng cho các gói dữ liệu xuất phát từ
tường lửa.Rất hiếm khi được sử dụng trong môi
trường SOHO)
Mangle Chỉnh sửa
TCP header
PREROUTING
POSTROUTING
KẾT QUẢ
INPUT
FORWARD
Điêù chỉnh các bit quy định chất lượng dịch vụ
trước khi dẫn đường. Rất hiếm khi được sử dụng
trong môi trường SOHO (small office – home
office).
Bạn cần xác định các bảng và chuỗi cho mỗi nguyên tắc tường lửa bạn tạo ra. Có
một ngoại lệ: Hầu hết các quy tắc có liên quan đến lọc, do đó, giả định rằng bất kỳ
iptables chuỗi đó là quy định mà không có một bảng có liên quan sẽ là một phần
của bảng lọc. Bảng lọc vì thế là mặc định.
Lê Thị Thanh Hiền S0809G – BachKhoa-Npower
ĐỐ án môn SECURITY: IPTABLEStrên LINUX
Để giúp thực hiện điều này rõ ràng hơn, hãy xem cách các gói dữ liệu được xử lý
bởi iptables. Trong Hình 2 một gói tin TCP từ Internet về đến giao diện của tường
lửa trên mạng A để tạo ra một kết nối dữ liệu.
Gói tin này được kiểm tra bởi các quy tắc đầu tiên trong chuỗi mangle Table
PREROUTING Chain (nếu có). Sau đó nó được kiểm tra bởi các quy tắc trong
chuỗi nat Table PREROUTING Chain để xem liệu gói tin yêu cầu DNAT
không .DNAT sẽ thay đổi địa chỉ đích của gói dữ liêụ .Sau đó nó được định tuyến –
Routing .
Nếu gói dữ liệu được đưa vào một mạng lưới bảo vệ, sau đó nó được lọc theo các
quy tắc trong chuỗi FORWARD của bảng lọc và, nếu cần thiết, gói trải qua SNAT
trong chuỗi POSTROUTING để thay đổi IP nguôn trước khi đến mạng B.
Khi máy chủ đích quyết định trả lời, gói trải qua cùng một trình tự các bước. Cả hai
FORWARD và POSTROUTING chuỗi có thể được cấu hình để thực hiện chất
lượng dịch vụ (QoS) các tính năng trong bảng mangle của họ, nhưng điều này
không thường được thực hiện trong môi trường SOHO.
Nếu gói dữ liệu được định hướng đi vào bên trong bức tường lửa chính nó, nó
đươc kiêtra qua các bảng mangle của chuỗi INPUT. Nếu gói dữ đó
thành công vượt qua các thử nghiệm này sau đó nó được xử lý bởi các ứng dụng
định trên tường lửa.
Tại một số điểm, tường lửa cần phải trả lời. trả lời này được định tuyến và kiểm tra
bởi các quy tắc trong chuỗi OUTPUT của bảng mangle, nếu có. Tiếp theo, các quy
tắc trong chuỗi OUTPUT của bảng nat xác định xem DNAT là cần thiết và các quy
tắc trong chuỗi OUTPUT của bảng này sau đó được kiểm tra bộ lọc để giới hạn
các gói dữ liệu trái phép. Cuối cùng, trước khi gói tin được gửi trở lại vào Internet,
hỏng SNAT và QoS được thực hiện bằng các chuỗi POSTROUTING
Lê Thị Thanh Hiền S0809G – BachKhoa-Npower
[...]... $172.16.0.0/12 -j DROP iptables -A valid-src -s iptables $192.168.0.0/16 $224.0.0.0/4 -j DROP -A valid-src -s -j DROP iptables -A valid-src -s $240.0.0.0/5 -j DROP iptables -A valid-src -s $127.0.0.0/8 iptables -A valid-src -s 0.0.0.0/8 Lê Thị Thanh Hiền S0809G – BachKhoa-Npower -j DROP -j iptables DROP -A ĐỐ án môn SECURITY: IPTABLEStrênLINUX valid-src -d 255.255.255.255 -j DROP iptables -A valid-src... án môn SECURITY: IPTABLES trênLINUX Hình 2 Iptables gói lưu lượng Sơ đồ Lê Thị Thanh Hiền S0809G – BachKhoa-Npower ĐỐ án môn SECURITY: IPTABLES trênLINUX 6 Target và Jumps Jump là cơ chế chuyển một packet đến một target nào đó để xử lý thêm một số thao tác khác Target là cơ chế hoạt động trong iptables, dùng để nhận diện và kiểm tra packet Các target được xây dựng sẵn trong iptables như bảng... Without this we could be crawling around in the dark # iptables -A OUTPUT -j LOG iptables -A INPUT -j LOG iptables -A FORWARD -j LOG iptables -A OUTPUT -j DROP iptables -A INPUT -j DROP iptables -A FORWARD -j DROP 13.Những đoạn mã iptables mẫu: 13.1 Cơ bản về hoạt động của hệ thống bảo vệ: Hệ Điều Hành Linux có cơ chế bảo vệ là các thông số kernel hệ thống trong file hệ thống /proc... SECURITY: IPTABLES trênLINUX # # Initialize our user-defined chains # iptables -N valid-src iptables -N valid-dst # # Verify valid source and destination addresses for all packets # - iptables -A INPUT iptables -i $EXTERNAL_INT -A FORWARD -i $EXTERNAL_INT -A OUTPUT -o -j -j valid-src valid-src iptables. .. khác trên mạng 12 Các tham số dòng lệnh thường gặp của Iptables 12.1 Gọi trợ giúp Để gọi trợ giúp về Iptables, bạn gõ lệnh • $ man iptables • $ iptables help Chẳng hạn nếu bạn cần biết về các tùy chọn của match limit, bạn gõ lệnh $ iptables -m limit help 12.2 Các tùy chọn để thao tác với chain - Tạo chain mới: iptables -N Lê Thị Thanh Hiền S0809G – BachKhoa-Npower ĐỐ án môn SECURITY: IPTABLES. .. IPTABLES trênLINUX - Xóa hết các luật đã tạo trong chain: iptables -X - đặt chính sách cho các chain `built-in` (INPUT, OUTPUT & FORWARD): iptables -P , ví dụ: iptables -P INPUT ACCEPT để chấp nhận các packet vào chain INPUT - liệt kê các luật có trong chain: iptables -L - xóa các luật có trong chain (flush chain): iptables. .. SECURITY: IPTABLES trênLINUX # iptables -P INPUT DROP đặt chính sách cho chain INPUT là DROP # iptables -A INPUT -p tcp syn -m state state NEW -j ACCEPT chỉ chấp nhận các gói TCP mở kết nối đã set cờ SYN=1 # iptables -A INPUT -m state state ESTABLISHED,RELATED -j ACCEPT không đóng các kết nối đang được thiết lập, đồng thời cũng cho phép mở các kết nối mới trong kết nối được thiết lập # iptables. .. sau giúp việc cải tiến tốc độ xử lý: iptables -A INPUT -i eth0 -d 206.229.110.2 -j \ fast-input-queue iptables -A OUTPUT -o eth0 -s 206.229.110.2 -j \ fast-output-queue iptables -A fast-input-queue -p icmp -j icmp-queue-in iptables -A fastoutput-queue -p icmp -j icmp-queue-out iptables -A icmp-queue-out -p icmp icmp-type \ echo-request -m state state NEW -j ACCEPT iptables -A icmp-queue-in -p icmp ... Lệnh input tách riêng cho giao thức ICMP 12.6 Lưu lại những đoạn mã iptables: Đoạn mã iptables được lưu tạm thời ở file “/etc/sysconfig /iptables Định dạng mẫu trong file iptables cho phép giao thức ICMP, IPSec (những gói ESP và AH), thiết lập liên kết, và quay lại SSH [root@bigboy tmp]# cat /etc/sysconfig /iptables # Generated by iptables- save v1.2.9 on Mon Nov 8 11:00:07 2004 *filter :INPUT ACCEPT... “/etc/sysconfig /iptables 12.8 Tìm lại Đoạn mã bị mất: Đoạn mã iptables được lưu trữ trong file “/etc/sysconfig /iptables Ta có thể chình sửa những đoạn mã và tạo lại những thành những rule mới Ví dụ: xuất những lệnh trong iptables đã lưu trữ ra file văn bản với tên firewall-config : [root@bigboy tmp]# iptables- save > firewall-config [root@bigboy tmp]# cat firewall-config # Generated by iptables- save . SECURITY: IPTABLES trên LINUX
Hình 2. Iptables gói lưu lượng Sơ đồ
Lê Thị Thanh Hiền S0809G – BachKhoa-Npower
ĐỐ án môn SECURITY: IPTABLES trên LINUX
6 Target. SECURITY: IPTABLES trên LINUX
KẾT LUẬN 62
TÀI LIỆU THAM KHẢO 63
Lê Thị Thanh Hiền S0809G – BachKhoa-Npower
ĐỐ án môn SECURITY: IPTABLES trên LINUX
Lời