Iptables Firewall

21 1.6K 25
Iptables Firewall

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

“BACHKHOA-NPOWER” − HỆ THỐNG ĐÀO TẠO CHUYÊN GIA MẠNG QUỐC TẾ o0o ĐỀ TÀI HOÀN THÀNH MÔN HỌC “CompTIA Security+ Certification (Security +)” Iptables Firewall Giảng viên hướng dẫn: Vũ Quý Hòa Học viên: Đào Quang Chiến Dương Tiến Mạnh Lớp: S0808H Tháng 1, 2011 [1] Mục lục Iptables Firewall Chương I.Giới thiệu về iptables Iptables do Netfilter Organiztion viết ra để tăng tính năng bảo mật trên hệ thống Linux. Iptables cung cấp các tính năng sau: • Tính năng lọc gói (packet filtering) • Tính năng NAT (network address translation) • Và một số tính năng quản lý chất lượng gói tin (packet mangling) • Iptables hoạt động ở tầng 3 trong mô hình OSI 1.Cơ chế xử lý package trong iptables Iptables được chia làm 3 bảng: NAT table: thực thi chức năng NAT (Network Address Translation), bao gồm ba loại built-in chains sau đây: [2] • Pre-routing chain: NAT từ ngoài vào trong nội bộ. Quá trình NAT sẽ thực hiện trước khi thực thi cơ chế routing. Điều này thuận lợi cho việc đổi địa chỉ đích để địa chỉ tương thích với bảng định tuyến của firewall, khi cấu hình ta có thể dùng khóa DNAT để mô tả kỹ thuật này. • Post-routing chain: NAT từ trong ra ngoài. Quá trình NAT sẽ thực hiện sau khi thực hiện cơ chế định tuyến. Quá trình này nhằm thay đổi địa chỉ nguồn của gói tin. Kỹ thuật này được gọi là NAT one-to- one hoặc many-to-one, được gọi là Source NAT hay SNAT. • OUTPUT: Trong loại này firewall thực hiện quá trình NAT. Hình 1 : Quá trình xử lý gói tin trong bảng NAT Filter table: chịu trách nhiệm thiết lập bộ lọc packet (packet filtering), có ba loại built-in chains : • Forward chain: Cho phép packet nguồn chuyển qua firewall. • Input chain: Cho phép những gói tin đi vào từ firewall. • Output chain: Cho phép những gói tin đi ra từ firewall. [3] Hình 2 :Quá trình xử lý gói tin trong bảng Filter Mangle table: chịu trách nhiệm biến đổi quality of service bits trong TCP header. Hình 3 :Quá trình xử lý gói tin trong bảng Mangle [4] 2.Một số khái niện trong Iptables • Chain : là một chuỗi bao gồm nhiều Rule ,mặc định các bảng có sẵn các chain như INPUT , OUTPUT • Rule : là các luật đưa ra các điều kiện so sánh , tập hợp nhiều rule tạo thành Chain • 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à quá trình xử lý khi các gói tin đủ điều kiện. Các target được xây dựng sẵn trong iptables như:  ACCEPT: chấp nhận chuyển gói tin di qua.  DROP: chặn những gói tin.  REJECT: chặn những gói tin và báo lại cho người gửi  DNAT: thay đổi địa chỉ đích của gói tin  SNAT: thay đổi địa chỉ nguồn của gói tin  MASQUERADING: là một kỹ thuật đặc biệt của SNAT (Many to One NAT). Chương II.Cấu hình Iptables Trong Centos , file cấu hình Iptables nằm trong /etc/sysconfig/iptables. Một số lệnh để bật Iptables: #chkconfig levels 345 iptables on #service iptables start Một số file cấu hình khác • /etc/sysctl.conf • /proc/sys/net/ipv4/ip_forward • /proc/net/ip_conntrack • /proc/sys/net/ipv4/ip_conntrack_max Iptables yêu cầu load một số module sau: • iptable_nat module cho NAT. • ip_conntrack_ftp module cần cho FTP support • ip_conntrack module để theo dõi trạng thái của TCP connect. • ip_nat_ftp module cần cho việc load FTP servers sau NAT firewall. [5] 1.Network Address Translation (NAT) NAT có thể hoạt động trên nhiều chức năng khác nhau dựa trên thao tác với địa chỉ ( đích hoặc nguồn ) và các cổng. NAT trong iptables hỗ trợ các module để giúp nhúng địa chỉ vào các gói dữ liệu được trao đổi theo các giao thức. Nếu không có các module giúp đỡ, các gói dữ liệu sẽ được sửa đổi để đi đến các host khác nhau, nhưng dữ liệu của ứng dụng được trao đổi vẫn sẽ sử dụng Pre-NAT (DNAT) . Helper Protocol ip_nat_amanda Amanda backup protocol (cần cấu hình file CONFIG_IP_NF_NAT_AMANDA) ip_nat_ftp File Transfer Protocol (cần cấu hình file CONFIG_IP_NF_NAT_FTP ) ip_nat_irc Internet Relay Chat (cần cấu hình file CONFIG_IP_NF_NAT_IRC ) ip_nat_snmp_basic Simple Network Management Protocol (cần cấu hình file CONFIG_IP_NF_NAT_SNMP_BASIC) ip_nat_tftp Trivial File Transfer Protocol (cần cấu hình file CONFIG_IP_NF_NAT_TFTP) Bảng 4 : Những module giúp đỡ của NAT Nếu muốn một số gói tin nào đó vượt qua bảng NAT, chúng ta sử dụng lệnh: #iptables -t nat -i eth1 -j ACCEPT 2. Source NAT , Destination NAT and Masquerading Source NAT (SNAT) và Destination NAT (DNAT) thường được dùng để chia sẻ kết nối internet giữa các máy tính trong mạng nội bộ . Máy tính kết nối internet được coi là gateway . Source NAT (SNAT) sẽ thay đổi địa chỉ nguồn của các gói tin [6] di ra internet bằng địa chỉ Ip internet tĩnh của gateway. Khi gateway nhận được các gói tin trả về từ internet , Destination NAT (DNAT) sẽ thay đỗi địa chỉ đích của các gói tin rồi chuyển đến các máy tính trong mạng nội bộ. Trong Iptables POSTROUTING chain của bảng NAT sẽ đảm nhận công việc Source SNAT. Source NAT có hai phần mở rộng đó là SNAT và MASQUERADE. SNAT dùng cho các máy tính gateway có địa chỉ IP tĩnh . Còn MASQUERADE dùng cho các máy tính gateway có địa chỉ IP động. Chúng ta có thể thiết lập SNAT trên giao diện eth1 bằng lệnh : #iptables -t nat -A POSTROUTING -o eth1 -j SNAT Và với MASQUERADE : #iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE Tương tự như vậy PREROUTING chain của bảng NAT sẽ đảm nhận công việc Destination NAT (DNAT) . Ví dụ # iptables -t nat -A PREROUTING -i eth1 -p tcp dport 80 -j DNAT to- destination 192.168.1.3:8080 Câu lệnh trên cho phép những gói tin di vào từ interface eth1 với giao thức tcp cổng được chuyển đến địa chỉ IP 192.168.1.3 cổng 8080 . 3. Transparent Proxying Transparent proxy là một cách để ngăn chặn những kết nối ra ngoài và chuyển hướng chúng vào một máy tính thay thế vị trí của các máy tính đích ban đầu. Kỹ thuật này cho phép chúng ta thiết lập proxy cho các dịch vụ mà không cần phải cấu hình mỗi máy tính trong mạng nội bộ. Ví dụ có một proxy HTTP ( Squid) được cấu hình lắng nghe trên cổng 8888, chúng ta có thể thêm một rule để chuyển hướng lưu lượng HTTP ra ngoài thông qua Proxy : #iptables -t nat -A PREROUTING -i eth0 -p tcp dport 80 -j REDIRECT to-port 8888 [7] 4.Các câu lệnh trong Iptables a,Các câu lệnh trợ giúp: #iptables -h #iptables -m match -h #iptables -j TARGET -h #man iptables b,Các Tùy chọn Tùy chọn Giải thích -A ( append) Ghi thêm một rule vào chain -D ( delete) Xóa rule -E ( rename-chain) Đổi tên chain -F ( flush) Xóa tất cả rule trong một chain -I ( insert) Chèn thêm rule vào chain tại vị trí được xác định -L ( list) Xem các rule trong chain -N ( new-chain) Tạo một chain mới -P ( policy) Tạo rule mặc định cho chain -R ( replace) Thay thế một rule bằng một rule khác tại vị trí xác định -V ( version) Xem phiên bản của Iptables -X ( delete-chain) Xóa chain -Z ( zero) Xóa bộ đếm trong chain -t Chỉ định bảng cho iptables bao gồm: filter, nat, mangle tables -j Nhảy đến một target -p Mô tả các giao thức bao gồm: icmp, tcp, udp và all -s Chỉ định địa chỉ nguồn -d Chỉ định địa chỉ đích -i Chỉ định địa chỉ interface cho các gói tin đi vào -o Chỉ định địa chỉ interface cho các gói tin đi ra [8] -m multiport Chỉ định nhiều dãy cổng -m state state Kiểm tra trạng thái:  ESTABLISHED: đã thiết lập connection  NEW: bắt đầu thiết lập connection  RELATED: thiết lập connection thứ 2 c,Các câu lệnh lưu và phục hồi Iptables • iptables-restore : lệnh phục hồi iptables có hai tùy chọn : Tùy chọn Giải thích -c ( counters) Phục hồi bộ đếm gói và byte cho các rule -n ( noflush) Tắt chức năng xóa (-flush) trong tables trước khi phục hồi • iptables-save : lệnh ghi lại Iptables có hai tùy chọn Tùy chọn Giải thích -c ( counters) Hiện bộ đếm gói và byte cho các rule -t ( table) Chỉ hiện bảng được chỉ định Chương III, Các kiểu chặn và một số ví dụ về Iptables 1,Ví dụ về mô hình firewall [9] 2,Các kiểu chặn Iptables • Chặn theo giao thức : Dựa trên giao thức TCP , UDP và các port Sử dụng với tùy chọn –p tcp hoặc - udp Giải thích sport <port> Địa chỉ nguồn : có thể là một port [10] [...]... trong chain iptables flush iptables -t nat flush iptables -t mangle flush #Xóa tất cả các chain iptables delete-chain iptables -t nat delete-chain iptables -t mangle delete-chain # Tạo rule mặc định cho các chain là Drop iptables policy INPUT DROP iptables policy OUTPUT DROP iptables policy FORWARD DROP [13] # Cho phép tất cả được qua loopback interface iptables -A INPUT -i lo -j ACCEPT iptables. .. trên Iptables • Cho phép DNS hoạt động: # iptables -A OUTPUT -p udp -o eth0 dport 53 sport 1024:65535 -j ACCEPT #iptables -A INPUT -p udp -i eth0 sport 53 dport 1024:65535 -j ACCEPT • Mở cổng cho phép WEB và SSL hoạt động : #iptables -A OUTPUT -o eth0 -m state state ESTABLISHED,RELATED -j ACCEPT #iptables -A INPUT -p tcp -i eth0 dport 22 –sport 1024:65535 -m state state NEW -j ACCEPT # iptables. .. sports 1024:65535 -j ACCEPT COMMIT Chương IV.Kết luận Iptablesfirewall rất mạnh do được tích hợp sẵn trong nhân của hệ điều hành Linux Iptables có tốc độ nhanh hơn nhiều so với các firewall khác Có thể nói đây là một trong những firewall chi tiết nhất vì các rule của nó áp dụng chi tiết cho từng gói tin Nhưng cũng chính vì vậy mà cách tạo rule trong Iptables rất phức [20] tạp Ngoài việc phải ghi nhớ... 1024:65535 -m state state NEW -j ACCEPT • Cho phép máy firewall vào WEB: #iptables -A OUTPUT -j ACCEPT -m state state NEW -o eth0 –p tcp -m multiport dport 80,443 #iptables -A INPUT -j ACCEPT -m state state ESTABLISHED,RELATED -i eth0 –p tcp • Cho phép máy tính mạng nội bộ vào internet: #iptables -A INPUT -j ACCEPT -p all -s 192.168.1.0/24 -i eth1 [14] #iptables -A OUTPUT -j ACCEPT -p all -d 192.168.1.0/24... địa chỉ của WEB Server #iptables -t nat -A PREROUTING -d 0/0 -o eth0 -p tcp dport 80 -j DNAT to-destination 10.0.0.10 (địa chỉ WEB Server) #iptables -A POSTROUTING -s 10.0.0.0/24 -j SNAT -o eth1 to-source 203.162.1.10 (địa chỉ internet của firewall) #iptables -A FORWARD -p tcp -i eth0 -o eth1 -d 10.0.0.10 -p tcp dport 80 sport 1024:65535 -m state state NEW -j ACCEPT [16] #iptables -A FORWARD -t... #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 fast-output-queue -p icmp -j icmp-queue-out [12] #iptables -A icmp-queue-out -p icmp icmp-type echo-request -m state state NEW -j ACCEPT #iptables -A icmp-queue-in -p icmp icmp-type echo-reply -j ACCEPT... fast-input-queue fast-output-queue icmp-queue-out icmp-queue-in • Giải thích Chain có sẵn trong Iptables Chain có sẵn trong Iptables Xác định giao thức vào Xác định giao thức ra Xác định giao thức ICMP vào Xác định giao thức ICMP ra Tạo Iptables scripts: một ví dụ điển hình là file /etc/rc.d/rc.local Đây chính là file firewall scripts được chạy mỗi khi hệ điều hành khởi động Ví dụ: #!/bin/bash # Load modules... NEW,ESTABLISHED,RELATED -j ACCEPT #iptables -A FORWARD -t filter -i eth0 -m state state ESTABLISHED,RELATED -j ACCEPT 5.Mô hình bài lab Yêu cầu : • • Cho PC1 ra Internet Public DNS ,WEB, FTP Server File /etc/sysconfig /iptables sau khi cấu hình xong: • Firewall 1: *nat :PREROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] #Đổi địa chỉ nguồn của các gói tin ra eth0 thành địa chỉ của firewall (eth0) [17]... nguồn các gói tin của máy tính trong mạng nội bộ đi ra ngoài (eth0) thành địa chỉ của Firewall #iptables -t nat -A POSTROUTING -o eth0 -s 10.0.0.0/24 -j MASQUERADE Cho phép các kết nối đã thành lập, kết nối mới ,kết nối thứ hai: #iptables -A FORWARD -t filter -i eth1 -m state state NEW,ESTABLISHED,RELATED -j ACCEPT [15] #iptables -A FORWARD -t filter -i eth0 -m state state ESTABLISHED,RELATED -j ACCEPT... quản trị còn phải hiểu rõ phương thức sử lý gói tin trong Iptables. Người quản trị còn phải nắm vũng lý thuyết về phương thức tạo kết nối cũng như các cổng làm việc của từng ứng dụng Vì vậy việc quản trị loại firewall này không phải dễ Iptables có nhiều ưu điểm nhưng cũng không ít nhược điểm Do đó chúng ta nên cân nhắc kỹ trước khi sử dụng loại firewall này [21] . chain iptables flush iptables -t nat flush iptables -t mangle flush #Xóa tất cả các chain iptables delete-chain iptables -t nat delete-chain iptables. II.Cấu hình Iptables Trong Centos , file cấu hình Iptables nằm trong /etc/sysconfig /iptables. Một số lệnh để bật Iptables: #chkconfig levels 345 iptables

Ngày đăng: 08/01/2014, 11:10

Mục lục

  • Chương I.Giới thiệu về iptables

    • 1.Cơ chế xử lý package trong iptables

    • 2.Một số khái niện trong Iptables

    • Chương II.Cấu hình Iptables

      • 1.Network Address Translation (NAT)

      • 2. Source NAT , Destination NAT and Masquerading

      • 3. Transparent Proxying

      • 4.Các câu lệnh trong Iptables

        • a,Các câu lệnh trợ giúp:

        • b,Các Tùy chọn

        • c,Các câu lệnh lưu và phục hồi Iptables

        • Chương III, Các kiểu chặn và một số ví dụ về Iptables

          • 1,Ví dụ về mô hình firewall

          • 2,Các kiểu chặn Iptables

          • 3. Ví dụ tạo chain và Iptables Scripts

          • 4. Ví dụ về một số rule trên Iptables

          • 5.Mô hình bài lab

          • Chương IV.Kết luận

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan