Luận Văn Tìm hiểu và cài đặt hệ thống firewall kết hợp với proxy để bảo vệ hệ thống mạng bên trong

Thảo luận trong 'Công Nghệ Thông Tin' bắt đầu bởi Thúy Viết Bài, 5/12/13.

  1. Thúy Viết Bài

    Thành viên vàng

    Bài viết:
    198,891
    Được thích:
    170
    Điểm thành tích:
    0
    Xu:
    0Xu
    Đồ án tốt nghiệp
    Đề tài: TÌM HIỂU VÀ CÀI ĐẶT HỆ THỐNG FIREWALL KẾT HỢP VỚI PROXY ĐỂ BẢO VỆ HỆ THỐNG MẠNG BÊN TRONG


    MỤC LỤC
    Chương 1: Giới thiệu về Firewall 17
    1.1. Firewall là gì? 17
    1.2. Chức năng chính 17
    1.2.1. Bộ lọc gói tin 18
    1.2.1.1. Ưu điểm 19
    1.2.1.2. Nhược điểm . 20
    1.2.2. Bộ lọc gói tin có trạng thái . 20
    1.2.2.1. Ưu điểm 21
    1.2.2.2. Nhược điểm . 22
    1.2.3. Firewall default policy 22
    1.2.3.1. Lựa chọn chính sách mặc định . 22
    1.2.3.2. Rejecting so với Denying 24
    1.3. Perimeter Networks . 25
    1.3.1. Bastion host 26
    1.3.2. Three-legged configuration 27
    1.3.3. Back to Back . 28
    Chương 2: Linux Firewall iptables 30
    2.1. Giới thiệu iptables 30
    2.2. Tính năng trong iptables 30
    2.2.1. Bảng filter . 30
    2.2.2. Bảng mangle . 32
    2.2.3. Bảng nat 32
    2.3. Tính năng NAT 33
    2.4. Tính năng Mangle 34
    2.5. Cú pháp lệnh iptables . 36
    2.5.1. Những lệnh thao tác bảng filter 37


    2.5.1.1. Những thao tác tác động đến chain . 37
    2.5.1.2. Những thao tác tác động đến luật . 38
    2.5.1.3. Bảng thao tác match cơ bản 39
    2.5.1.4. Những thao tác match với tcp filter 40
    2.5.1.5. Những thao tác match với udp filter . 40
    2.5.1.6. Những thao tác match với icmp filter . 40
    2.5.2. Target của bảng filter 40
    2.5.3. Bổ trợ match trong bảng filter 42
    2.5.3.1. Bổ trợ match multiport filter . 42
    2.5.3.2. Bổ trợ match limit filter 43
    2.5.3.3. Bổ trợ match dstlimit filter . 44
    2.5.3.4. Bổ trợ match state filter 45
    2.5.3.5. Match mở rộng mac filter . 47
    2.5.3.6. Match mở rộng owner filter 48
    2.5.3.7. Match mở rộng mark filter 48
    2.5.3.8. Match mở rộng tos filter . 49
    2.5.3.9. Match mở rộng addrtype filter 49
    2.5.3.10. Match mở rộng iprange filter 50
    2.5.3.11. Match mở rộng length filter 50
    2.5.4. Những lệnh thao tác bảng nat . 50
    2.5.4.1. Target SNAT . 50
    2.5.4.2. Target MASQUERADE . 51
    2.5.4.3. Target DNAT 52
    2.5.4.4. Target REDIRECT . 52
    2.5.4.5. Target BALANCE 53
    2.5.5. Những lệnh thao tác bảng mangle 53
    2.6. Xây dựng firewall iptables . 54
    2.6.1. Định nghĩa các biến đại diện 54
    2.6.2. Cho phép sự hỗ trợ của nhân 54


    2.6.3. Xóa luật hiện tại 55
    2.6.4. Đặt lại chính sách mặc định và ngắt Firewall . 56
    2.6.5. Cho phép interface loopback 56
    2.6.6. Xác định lựa chọn chính sách mặc định . 56
    2.6.7. Kiểm tra nhanh tính match lệ của gói tin 57
    2.6.8. Sử dụng kết nối có trạng thái để giảm xét luật . 57
    2.6.9. Ngăn giả mạo địa chỉ 58
    2.7. Cho phép một số dịch vụ mạng cơ bản 59
    2.7.1. Dịch vụ phân giải tên miền . 59
    2.7.1.1. Cho phép người dùng phân giải địa chỉ 60
    2.7.1.2. Cho phép làm một DNS server trung chuyển . 61
    2.7.2. Cho phép một số dịch vụ TCP thông dụng . 62
    2.7.2.1. Email . 62
    2.7.2.2. Telnet 63
    2.7.2.3. SSH . 64
    2.7.2.4. FTP 64
    2.7.2.5. Web . 65
    2.7.3. Lọc chặn một số thông điệp ICMP . 66
    2.8. Logging 67
    2.9. Tối ưu Firewall 67
    2.9.1. Tổ chức luật 67
    2.9.2. Sử dụng module trạng thái 69
    2.9.3. Sử dụng chain tự định nghĩa . 69
    2.10. Một số cấu hình đối với Perimeter Network 70
    2.11. Ánh xạ địa chỉ 71
    Chương 3: SQUID Proxy . 73
    3.1. Biên dịch và cài đặt chương trình 73
    3.1.1. Configure Script 73
    3.1.2. make Install . 73


    3.1.3. Cài đặt Squid từ một Repository 73
    3.2. Những lưu ý trước khi khởi động 74
    3.2.1. Những tham số tùy chọn khi khởi động . 74
    3.2.2. Khởi tạo cache 75
    3.3. Chạy thử chương trình . 75
    3.4. Access Control trong Squid . 76
    3.4.1. Access Control Elements cơ sở 77
    3.4.1.1. Địa chỉ IP 77
    3.4.1.2. Tên miền . 78
    3.4.1.3. Tên người dùng . 79
    3.4.1.4. Biểu thức chính quy (regular expression) . 80
    3.4.1.5. Số hiệu cổng TCP . 80
    3.4.1.6. Số hiệu của hệ thống tự trị 80
    3.4.2. Phương thức (method) 81
    3.4.3. Giao thức (proto) 81
    3.4.4. Thời gian (time) 81
    3.4.5. Xác thực (ident) 83
    3.4.6. Số lương kết nối tối đa (maxconn) . 83
    3.4.7. Trình duyệt (browser) . 84
    3.4.8. Nội dung trong request (req_mine_type) 84
    3.4.9. Nội dung trong response (rep_mine_type) . 84
    3.4.10. External ACL 85
    3.4.11. Luật kiểm soát truy cập . 86
    3.4.12. Phương thức match luật trong Squid 87
    3.4.13. Một số tình huống sử dụng Squid . 89
    3.5. Những vấn đề cơ bản về đĩa cache 90
    3.5.1. Chỉ thị cache_dir . 90
    3.5.2. Chỉ thị cache_swap_low và cache_swap_high . 92
    3.5.3. Chỉ thị minimum_object_size và maximum_object_size . 92


    3.5.4. Chỉ thị store_dir_select_algorithm . 92
    3.5.5. Chỉ thị cache_replacement_policy 92
    3.5.6. Chỉ thị refresh_pattern 93
    3.6. Interception Caching 94
    3.6.1. Vì sao, khi nào dùng interception caching . 94
    3.6.2. Cấu hình interception caching cho Squid . 96
    3.7. Sử dụng nhiều proxy 96
    3.7.1. Xác định các proxy hàng xóm 97
    3.7.2. Giới hạn truy cập đến hàng xóm . 97
    3.7.3. Giao thức ICP . 99
    3.7.3.1. ICP server 99
    3.7.3.2. ICP client 99
    3.8. Bộ điều hướng 100
    3.9. Chứng thực . 101
    3.9.1. Chứng thực bằng HTTP Basic 101
    3.9.2. Chứng thực bằng HTTP Digest 102
    3.9.3. Chứng thực bằng NTLM 103
    3.9.4. External ACLs 104
    3.9.4.1. ip_user . 104
    3.9.4.2. ldap_group 105
    3.9.4.3. unix_group 105
    3.9.4.4. winbind_group 105
    3.10. Log . 105
    3.10.1. Tập tin cache.log . 106
    3.10.2. Tập tin access.log 106
    3.10.3. Tập tin store.log 108
    Chương 4: Mô hình thử nghiệm 109
    4.1. Môi trường thử nghiệm 109
    4.2. Mô hình thử nghiệm . 109


    4.3. Cấu hình Firewall và proxy . 110
    4.3.1. Yêu cầu và cấu hình Firewall . 111
    4.3.2. Yêu cầu và cấu hình proxy . 113
    4.4. Cấu hình chia sẽ tập tin và máy in . 115
    4.4.1. Phân quyền chia sẽ tập tin bằng Samba 115
    4.4.2. Phân quyền chia sẽ máy in 118
    4.4.3. Phân tích log của Squid băng Webzlizer 119
    Chương 5: Tổng kết . 123
    5.1. Kết quả đạt được 123
    5.2. Những hạn chế . 123
    5.3. Hướng nghiên cứu tiếp theo . 124
    Tài liệu tham khảo 125


    LỜI MỞ ĐẦU
    Song song với việc xây dựng nền tảng về công nghệ thông tin, cũng như phát
    triển các ứng dụng máy tính trong sản xuất, kinh doanh, khoa học, giáo dục, xã
    hội, . thì việc bảo về những thành quả đó là một điều không thể thiếu. Sử dụng các
    bức tường lửa (Firewall) để bảo vệ mạng nội bộ (Intranet), tránh sự tấn công từ bên
    ngoài là một giải pháp hữu hiệu, đảm bảo được các yếu tố:
     An toàn cho sự hoạt động của toàn bộ hệ thống mạng
     Bảo mật cao trên nhiều phương diện
     Khả năng kiểm soát cao
     Đảm bảo tốc độ nhanh
     Mềm dẻo và dễ sử dụng
     Trong suốt với người sử dụng
    Ngày nay, Internet, một kho tàng thông tin khổng lồ, phục vụ hữu hiệu trong sản
    xuất kinh doanh. Internet đang ngày càng trở nên quan trọng. Nó mang lại rất nhiều
    tiện ích cho mọi người. Internet vừa là nguồn tài nguyên khổng lồ, vừa là nơi chia
    sẽ thông tin. Việc sử dụng Internet dần đã trở thành một nhu cầu của mọi người.
    Nhu cầu chia sẽ thông tin của con người thông qua Internet ngày càng cao. Tuy
    nhiên, Internet là một nơi công cộng, mọi người đều có quyền tham gia đóng góp
    nhưng đồng thời đó cũng là nơi để trở mà bất kỳ người nào cũng có thể trở thành
    đối tượng cho nhiều người khác tấn công với các mục đích khác nhau. Internet
    mang lại nhiều lợi ích nhưng cũng đồng thời cũng mang lại nhiều nguy cơ tiềm ẩn.
    Cùng với sự phát triển không ngừng của Internet và các dịch vụ trên Internet, số
    lượng các vụ tấn công trên Internet cũng tăng theo cấp số nhân. Trong khi các
    phương tiện thông tin đại chúng ngày càng nhắc nhiều đến Internet với những khả
    năng truy nhập thông tin dường như đến vô tận của nó, thì các tài liệu chuyên môn
    bắt đầu đề cập nhiều đến vấn đề bảo đảm và an toàn dữ liệu cho các máy tính được
    kết nối vào mạng Internet.


    Không chỉ số lượng các cuộc tấn công tăng lên nhanh chóng, mà các phương
    pháp tấn công cũng liên tục được hoàn thiện. Điều đó cũng là một phần lý do các
    nhân viên quản trị hệ thống được kết nối với Internet ngày càng đề cao cảnh giác.
    Theo CERT, những cuộc tấn công thời kỳ 1988-1989 chủ yếu đoán tên người người
    dùng, mật khẩu (UserID-password) hoặc sử dụng một số lỗi của các chương trình và
    hệ điều hành (security hole) làm vô hiệu hệ thống bảo vệ, tuy nhiên các cuộc tấn
    công vào thời gian gần đây bao gồm cả các thao tác như giả mạo địa chỉ IP, theo dõi
    thông tin truyền qua mạng, tấn công từ chối dịch vụ, chiếm các phiên làm việc từ xa
    (telnet hoặc rlogin). Cứ như vậy, phương thức tấn công ngày càng tinh vi và nguy
    hiểm.
    Vì vậy, mọi người dùng, cơ quan tổ chức, đều có nhu cầu bảo vệ thông tin của
    mình trước khi tham gia vào Internet. Nhu cầu bảo vệ thông tin trên Internet có thể
    chia thành ba loại gồm:
     Bảo vệ dữ liệu.
     Bảo vệ các tài nguyên sử dụng trên mạng.
     Bảo vệ danh tiếng của cơ quan.
    Để tổ chức một hệ thống mạng có khả năng bảo mật cao, một công ty, tổ chức
    có thể phải đầu tư một khoảng tài chính khá lớn. Tuy nhiên, với sự phát triển ngày
    càng mạnh mẽ của phần mềm nguồn mở, đặt biệt là hệ điều hành nguồn mở đã giúp
    các công ty, tổ chức tiết kiệm được một khoảng tài chính lớn. Hơn thế nữa, ngày
    nay, các phát hành hệ điều hành dựa trên nhân Linux đã có rất nhiều. Người dùng
    có thể hoàn toàn sử dụng hệ điều hành nguồn mở thay cho hệ điều hành thương mại
    đắt tiền. Không những thế, hệ điều hành nguồn mở có khả năng bảo mật cao, và
    được xem là miễn nhiễm với virus.
    Cùng với sự ra đời của hệ điều hành Ubuntu. Một phát hành của Linux được
    xem là sẽ thay thế cho Window trong những năm tiếp theo, công ty, tổ chức, doanh
    nghiệp có thể tiết kiệm được tài chính và đầu tư vào hệ thống hạ tầng mạng, cũng
    như tăng cường khả năng bảo mật hệ thống mạng của mình.
    Khóa luận này với mục tiêu tìm hiểu hệ điều hành nguồn mở Ubuntu Linux,
    Firewall iptables, một Firewall được tích match sẵn trong nhân của Linux, Proxy
    Squid, một web cache proxy, và các phần mềm nguồn mở khác nhằm thay thế cho
    hệ điều hành mạng Window Server và các máy trạm hệ điều hành Window vốn rất
    được sử dụng thông dụng hiện nay.

    Chương 1
    TỔNG QUAN VỀ FIREWALL
    1.1. Firewall là gì?
    Thuật ngữ Firewall có nguồn gốc từ một kỹ thuật thiết kế trong xây dựng để
    ngăn chặn, hạn chế hoả hoạn. Trong công nghệ mạng thông tin, Firewall là một kỹ
    thuật được tích match vào hệ thống mạng để chống sự truy cập trái phép, nhằm bảo
    vệ các nguồn thông tin nội bộ và hạn chế sự xâm nhập không mong muốn vào hệ
    thống. Cũng có thể hiểu Firewall là một cơ chế để bảo vệ mạng tin tưởng (Trusted
    network) khỏi các mạng không tin tưởng (Untrusted network).
    Thông thường Firewall được đặt giữa mạng bên trong (Intranet) của một công
    ty, tổ chức, hay một quốc gia, và Internet. Vai trò chính là bảo mật thông tin, ngăn
    chặn sự truy nhập không mong muốn từ bên ngoài (Internet) và cấm truy nhập từ
    bên trong (Intranet) tới một số địa chỉ nhất định trên Internet.
    Trong trường lợp lý tưởng, một Firewall cần phải cung cấp sự tách biệt về mặt
    vật lý giữa các mạng với nhau. Ngày nay, sự tách biệt đó đã trở nên mờ dần bởi việc
    sử dụng những mạng ảo. Sự ảo hóa giúp phân chia các mạng ở mức logic, điều này
    không được khuyến khích trong xây dựng một hệ thống Firewall.
    Với vai trò là một hệ thống bảo mật, Firewall tạo một bức tường bao quanh máy
    tính hoặc một mạng với Internet. Bức tường đó quyết định những luồng thông tin
    nào được phép trong một máy tính hay trong một mạng cục bộ. Firewall giúp bảo
    vệ máy tính hay một mạng khỏi hackers, viruses, và những hoạt động mang tính
    nguy hiểm.
    1.2. Chức năng chính
    Chức năng chính của Firewall là kiểm soát luồng thông tin từ giữa Intranet và
    Internet. Thiết lập cơ chế điều khiển dòng thông tin giữa mạng bên trong (Intranet)
    và mạng Internet. Cụ thể là:
     Firewall quyết định những dịch vụ nào ở bên trong được phép truy cập từ
    bên ngoài và ngược lại những dịch vụ bên ngoài nào được phép truy cập từ
    bên trong.
     Tất cả việc trao đổi thông tin giữa trong và ngoài đều được thực hiện thông
    qua Firewall.
     Chỉ có những trao đổi nào thõa mãn chính sách an ninh của Firewall mới
    được phép lưu thông qua Firewall.
    Những thành phần chủ yếu của Firewall gồm:
    1.2.1. Bộ lọc gói tin
    Nhiệm vụ chính của Firewall là ngăn chặn luông lưu lượng mạng xâm nhập
    vào mạng bên trong ngoại trừ những luồng lưu lượng được cho phép. Có một
    cách để bảo đảm vấn đề này là cho lưu lượng mạng đó đi qua bộ lọc gói tin.
    Bộ lọc gói tin sẽ điều khiển truy cập mạng ở tầng mạng bằng cách kiểm tra và
    cho phép hoặc không cho phép những gói tin Internet Protocol (IP). Khi
    Firewall kiểm tra gói tin, nó chỉ kiểm tra thông tin phần header của tầng mạng
    và tầng vận chuyển.
    Bộ lọc gói tin có thể đánh giá một gói tin IP dựa vào những yếu tố sau đây:
    1. Địa chỉ đích, là địa chỉ có thể là địa chỉ thật của một máy trong một
    mạng khác trong trường match hai mạng được định tuyến bởi Firewall.
    Địa chỉ đích còn có thể là địa chỉ card mạng ngoài của Firewall trong
    trường match hai mạng này có quan hệ ánh xạ địa chỉ (Network
    Address Translation - NAT).
    2. Địa chỉ nguồn, là địa chỉ của máy chuyển gói tin đi.
    3. Giao thức mạng giao tiếp mạng (IP) và số hiệu giao thức. Một gói tin có
    thể được gởi bởi một số giao thức như Transmission Control Protocol
    (TCP), User Datagram Protocol (UDP), Internet Control Message
    Protocol (ICMP) hay bằng bất kỳ một giao thức nào khác. Mỗi giao
    thức đều được gán một số hiệu. Ví dụ, TCP có số hiệu giao thức là 6.


    TÀI LIỆU THAM KHẢO
    Sách tham khảo
    [1]. Stain Reimer, Orin Thomas
    MCSA/MCSE Self-Paced Training Kit (Exam 70-350): Implementing
    Microsoft Internet Security and Acceleration Server 2004, Microsoft Press,
    2005
    [2]. Christopher Negus
    Linux® Bible 2008 Edition: Boot Up to Ubuntu®, Fedora®, KNOPPIX,
    Debian®, openSUSE®, and 11 Other Distributions, Wiley Publishing, Inc,
    2008
    [3]. Michael Jang
    Ubuntu ® Server Administration, McGraw-Hill, 11/2008
    [4]. William von Hagen
    Ubuntu® Linux® Bible, Wiley Publishing, Inc, 2007
    [5]. Sander van Vugt
    Beginning Ubuntu Server Administration From Novice to Professional,
    Apress, 2007
    [6]. Keir Thomas, Andy Channelle, Jaime Sicam
    Beginning Ubuntu Linux: From Novice to Professional, Fourth Edition,
    Apress, 2009
    [7]. Steve Suehring, Robert Ziegler
    Linux Firewalls, Third Edition, Sams Publishing, September 14, 2005
    [8]. Roderick W. Smith
    Advanced Linux Networking, Addison Wesley, June 11, 2002
    [9]. John H. Terpstra
    Samba-3 by Example: Practical Exercises to Successful Deployment,
    Second Edition, Prentice Hall PTR, August 08, 2005
    [10]. Lucian Gheorghe
    Designing and Implementing Linux Firewalls and QoS using netflter,
    iproute2, NAT, and L7-flter, Packt Publishing, 2006
    [11]. Duane Wessels
    Web Caching, O'Reilly & Associates, Inc, 2001
    [12]. Duane Wessels
    Squid: The Definitive Guide, O'Reilly, January 2004
    Websites
    [1]. http://squid-cache.org
    [2]. http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_
    Ch14_:_Linux_Firewalls_Using_iptables
    [3]. http://iptables-tutorial.frozentux.net/iptables-tutorial.html
    [4]. http://www.kmasecurity.net/xforce/showthread.php?t=4877
    [5]. http://www.linuxlinks.com/article/20080429140249467/Security.html
    [6]. http://www.asianuxvietnam.vn/forum/viewtopic.php?f=23&p=47
    [7]. http://www.cyberciti.biz/tips/linux-unix-squid-proxy-server-authentication.html
    [8]. http://patchlog.com/security/squid-digest-authentication/
     

    Các file đính kèm:

Đang tải...