Đồ án tốt nghiệp Mục lục Chơng I: Giới thiệu vÒ Linux 1.1Sơ lợc Linux 1.1.1 Giíi thiệu hệ điều hành Unix 1.1.2 Giíi thiƯu vỊ hƯ ®iỊu hµnh Linux 1.2 Tính Linux 1.3 VÊn ®Ị b¶n qun 1.4 So sánh Linux hệ điều hành khác 1.4.1 So s¸nh Linux víi Windows 95, Windows 98 1.4.2 So s¸nh Linux víi Windows NT 10 1.5 Yêu cầu phần cứng .11 Ch−¬ng II : lệnh Linux 14 2.1 Các phơng thức hoạt động dòng lệnh 14 2.2 Trang Man 15 2.3 C¸c quy −íc .16 2.4 Các lệnh Linux .16 2.4.1 Th− mơc vµ lƯnh vỊ th− mơc 16 2.4.1.1 Một số th mục đặc biệt 16 2.4.1.2 Các lệnh liên quan ®Õn th− môc 18 2.4.2 Tập tin lệnh tập tin .20 2.4.2.1 C¸c kiĨu tËp tin Linux 20 2.4.2.2 C¸c lƯnh vỊ tËp tin 21 2.4.3 LƯnh vỊ Destop 24 2.4.4 Lệnh trình báo hình 25 2.4.5 C¸c lƯnh liên quan đến tài khoản ngời dùng 25 2.4.5.1 Các lệnh liên quan đến ngời dïng 25 2.4.5.2 Thay ®ỉi thuéc tÝnh ng−êi dïng 26 2.4.5.3 Xo¸ bá mét ng−êi dïng .27 2.4.6 Các lệnh liên quan ®Õn nhãm ng−êi dïng 27 2.4.7 Các lệnh khác có liên quan đến ngời dùng 28 2.4.8 Các lệnh liên quan đến quản lý thiết bị .30 2.4.9 Các lệnh phân quyền .32 2.5 Shell 33 Ch−¬ng III: samba 37 3.1 Giíi thiƯu tỉng quan .37 3.2 Cài đặt 37 3.3 cÊu h×nh 38 3.3.1 cÊu h×nh global setting: .39 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp 3.3.2 cấu hình Sharing Setting 42 3.4 Chia sỴ file 43 3.5 KiÓm tra cÊu h×nh võa thiÕt lËp 44 3.5.1 KiĨm tra b»ng c«ng Testparm 44 3.5.2 KiĨm tra b»ng c«ng smbstatus .45 3.6 Ch¹y samba server 46 3.6.1 Sư dơng c©u lƯnh smbclient .47 3.6.2 Truy cËp tõ m¸y Windows 49 Ch−¬ng IV: Squid proxy server 50 4.1 Tầm quan trọng phơng thức hoạt động Squid cache 50 4.2 Cài đặt 52 4.3 TËp tin cÊu h×nh /etc/squid/squid.conf 52 4.4 CÊu hình tùy chọn .53 4.5 Access control list 54 4.6 Khëi ®éng squid 56 Ch−¬ng V: CÊu h×nh WEB SERVER .58 5.1 Cài đặt apache, php, mysql 58 5.1.1 Download vµ cài đặt Apache .58 5.1.2 Download cài đặt php .59 5.1.3 Download vµ cµi ®Ỉt Mysql .60 5.2 Cấu hình Apache .63 5.3 Cấu hình bảo mËt apache 67 5.3.1 Giới hạn địa ip 67 5.3.2 Giới hạn truy cập theo tài khoản sử dụng 69 Chơng VI: Bảo mật với Firewall, ip tables 78 6.1 FireWall 78 6.1.1 Định nghĩa 78 6.1.2 Chức 78 6.1.3 CÊu tróc cđa FireWall 78 6.1.4 Các thành phần FireWall 79 6.1.4.1 Bé läc packet (Packet filtering router) 79 6.1.4.2 Cæng øng dông (application-level getway) 80 6.1.4.3 Cỉng m¹ch (circuit-Level Gateway) 81 6.1.5 Những hạn chế firewall .82 6.2 IpTables 82 6.2.1 Tỉng quan vỊ iptables 82 6.2.2 B¶ng filter 83 6.2.3 B¶ng nat 84 6.2.4 B¶ng mangle 85 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tèt nghiƯp 6.2.5 CÊu h×nh iptables 87 6.2.5.1 Có ph¸p iptables 87 6.2.5.2 C¸c lƯnh cđa iptables 88 6.2.5.3 Các điều kiện luËt .90 6.2.5.3.1 Nhóm điều kiện chung 90 6.2.5.3.2 Nhóm điều kiện ẩn 92 6.2.5.3.3 Nhóm điều hiÖn hiÖn .93 6.2.5.4 Các hành động luật 95 6.2.5.4.1 user-defined-chain 95 6.2.5.4.2 DROP 96 6.2.5.4.3 REJECT .96 6.2.5.4.4 RETURN .96 6.2.5.4.5 SNAT 96 6.2.5.4.6 MASQUERADE 97 6.2.5.4.7 DNAT 98 6.2.5.5 C¸c vÝ dô .99 Tài liệu tham khảo 103 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp Chơng I: Giới thiệu Linux 1.1Sơ lợc Linux 1.1.1 Giới thiệu hệ điều hành Unix Năm 1964, Bell Labs, MIT & General Electric phát triển hệ điều hành gọi MULTICS(Multiplexed Information and Computing System) Sau năm 1969, Ken Thompson (một lập trình hƯ thèng cđa Bell labs) nghÜ r»ng «ng ta cã thể làm hệ điều hành tốt Vì vậy, ông ta đà viết hệ điều hành hệ thông máy tính PDP-7, hệ điều hành đợc gọi Unix Mục tiêu khởi đầu cung cấp môi trờng máy tính hoá để mô trò chơi không gian Nhng có vấn đề xảy phiên Unix chạy đợc hệ thống phần cứng khác Do đến năm 1973 Ritchie Thompson đà viết lại hệ điều hành ngôn ngữ C, khác hẳn với hệ điều hành truyền thống ghi ngôn ngữ máy, Unix dễ cài đặt hệ máy khác Năm 1974 hệ điều hành Unix đà đợc cài đặt máy DEC PDP-11 100 trờng đại học Mục tiêu chủ yếu cung cấp môi trờng cho lập trình viên chuyên nghiệp Vì thế, Unix ngày thông dụng ngày có thêm nhiều đặc tính đợc bổ xung Sau phủ quân đội Mỹ đà sử dụng Unix để nối mạng toàn cầu (Internet) Đến đà có hàng trăm ngàn hệ thống Unix cài đặt khắp giới Hầu hết hÃng sản xuất máy có phiên cho Unix Tuy nhiên để chuẩn hoá hệ điều hành Unix, ngời ta quy ớc tập lƯnh chn vµ gäi lµ Unix System V Release Trên máy PC phổ biến hai hệ điều hành SCO Unix SUN Solaris ã Các đặc điểm hệ điều hành Unix LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiƯp - §a nhiƯm (Multitasking) - NhiỊu ng−êi sư dơng (Multiuser) - Bảo mật(security) - Độc lập phần cứng (multi platform) - KÕt nèi më - Dïng chung thiÕt bÞ - Tổ chức tập tin phân cấp ã Ưu điểm hệ điều hành Unix: - Hệ thống đợc viết ngôn ngữ C nên dễ đọc, dễ hiểu, dễ thay đổi để cài đặt loại máy - Có giao diện ngời dùng đơn giản, cho phép xây dựng chơng trình phức tạp từ chơng trình đơn giản - Đây hệ đa ngời dùng đa tiến trình , ngời dùng thực nhiều chơng trình chơng trình có nhiều tiến trình - Che cấu trúc máy ngời dùng, viết chơng trình chạy điều kiện phần cứng khác - Sử dụng hƯ th«ng file cã cÊu tróc 1.1.2 Giíi thiƯu vỊ hệ điều hành Linux Linux hệ điều hành phổ thông phân phối sở hỗ trợ mở rộng Ban đầu, Linux đợc phát triển dới dạng hệ thống đa nhiệm cho máy tính mini máy chủ vào thập niên 70 Kể từ đến Linux lớn mạnh trở thành hệ điều hành ®−ỵc sư dơng réng r·i nhÊt LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp Linux phiên Unix đợc phân phối miễn phí ban đầu Linus Torvalds thực phát triển Ông bắt đầu nghiên cứu Linux vào năm 1991 sinh viên trờng đại học Helsinki Phần Lan Linux đợc xây dựng phát triển từ hệ điều hành Minix (một phiên Unix) Lúc đầu, Linus tung phiên Linux Internet cho mäi ng−êi sư dơng miƠn phÝ, ®iỊu ®ã vô tình dấy lên tợng phát triển phần mềm lớn Linux đợc xác lập trì nhóm hợp tác gồm vài ngàn nhà phát triển phần mềm tình nguyện làm việc qua Internet Các công ty cung cấp hỗ trợ Linux để phát triển thành loại sản phẩm dễ cài đặt với mục đích kinh doanh trạm làm việc có cài sẵn phần mềm Linux Vào ngày tháng 10 năm 1991, Linus đà công bố phiên Linux thức đầu tiên, phiên 0.02 Bắt nguồn từ hệ điều hành Minix Andrew Tanenbaum, Linux ban đầu dự án mà Linux muốn xây dựng hệ unix đơn giản chạy PC 386 Phiên đợc xác định nh hệ thống hacker Vấn đề phát triển kernel không phải nhằm mục đích hỗ trợ ngời dùng hay để phân phối Nhng đến hoàn thiện thực giới Linux đà giải đợc vấn đề môi trờng ngời sử dụng đồ hoạ, gói sản phẩm dễ dàng cài đặt ứng dụng cao cấp nh: tiện ích đồ hoạ phiên sản phẩm Từ phiên Linux đời đà có nhiều phiên Linux đời với nhiều tính đợc thêm vào nhằm phục vụ, hỗ trợ tiện ích ngày cao ngời dùng Vì Linux đợc phát triển từ hệ điều hành Minix(một phiên Unix) nên Linux có đặc tính u điểm hệ điều hành Unix: - Linux đợc viết C - Linux đa ngời dùng, đa nhiệm, hệ điều hành mạng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp - Linux cung cấp môi trờng đầy đủ cho lập trình phát triển - Linux chạy nhiều hệ thống phần cứng khác nhau: Bé xư lý 86(Celeron/PII/PIII/PIV/Pentium/80386/80486) M¸y Macintosh Bé xư lý Cyrix Bé xö lý AMD Bé xö lý Sun Microsystems Sparc processor Bộ xử lý Alpha(Compaq) 1.2 Tính Linux Linux hệ điều hành đa ngời sử dụng: Nghĩa nhiều ngời sử dụng máy tính có cài Linux thời điểm Linux hệ điều hành đa nhiệm: Tại thời điểm ng−êi sư dơng cã thĨ thùc hiƯn ®ång thêi nhiỊu tác vụ Với hệ điều hành đơn chơng nh MSDOS mét lƯnh thùc hiƯn sÏ chiÕm toµn bé thêi gian CPU xư lý, b¹n chØ cã thĨ thùc hiƯn lƯnh kÕ tiÕp lƯnh tr−íc ®ã ®· thùc hiƯn xong Còn Linux, bạn thực lúc nhiều lệnh Linux gần nh tơng thích với nhiều chuẩn Unix cấp nguồn bao gồm tính BSD, IEEE POSIX.1 System V Linux đợc phát triển trọng tới tính khả chuyển nguồn Do bạn dùng chung nhng tính hệ Linux qua thi hành Unix Linux hỗ trợ cho bàn phÝm tïy biÕn hc theo chn qc gia sư dơng trình điều khiển bàn phím khả tải động Linux hỗ trợ console ảo, cho phép bạn chuyển đổi nhiều phiên đăng nhập từ console hệ thống chế độ văn Linux tồn hệ thống có hệ điều hành khác nh windows 95, Windows 98, Windows NT, Windows XP, OS/2 phiên khác LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp Unix Bộ nạp khởi động Linux cho phép bạn lựa chọn hệ điều hành để bắt đầu vào thời đIểm khởi động Linux tơng thích với nạp khởi động khác Linux chạy nhiều kiến trúc CPU bao gåm: X86(Celeron/PII/PIII/PIV/Pentium/80386/80486), SPARC, Alpha, PowerPc, MIPS vµ m68k Linux hỗ trợ nhiều kiểu file khác để lu liệu Hỗ trợ mạng sức mạnh lớn Linux chức lẫn tính Linux cung cấp cài đặt hoàn hảo mạng TCP/IP, bao gồm trình điều khiển thiết bị cho nhiều card Ethernet thông dụng, PPP SLIP, Parallel Line Internet Protocol (PLIP) vµ Network Fle System (NFS) Cã rÊt nhiều ứng dụng khách dịch vụ TCP/IP đợc hỗ trỵ nh− FTP, Telnet, Simple Mail Transfer Protocol (SMTP) Linux kernel hỗ trợ tờng lửa mạng hoàn hảo, cho phép bạn cấu hình máy Linux dới dạng tờng lửa 1.3 Vấn đề quyền Linux đợc cÊp giÊy phÐp c«ng céng GNU General Public Licence hay GPL.GPL đợc gọi giấy phép không quyền Giấy phép đa điều khoản ràng buộc việc phân phối sửa đổi phần mềm miễn phí(free software) Ban đầu, Linus Torvalds tung Linux với giấy phép hạn chế GPL Giấy phép cho phép tự phân phối sửa đổi phần mềm nhng không cho phép thay đổi giá thành việc sử dụng phân phối sản phẩm GPL cho phép bán thu lợi từ phần mềm miễn phí nhng không cho phép hạn chế quyền phân phối phần mềm ngời khác dới hình thức Mọi tổ chức bán phần mềm miễn phí phải tuân theo giới hạn định đa GPL: LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp - Thứ nhất, họ hạn chế quyền ngời sử dụng tức ngời mua phần mềm Nghĩa bạn mua CD_ROM với phần mềm GPL , bạn chép phân phối miễn phí CD_ROM bán lại - Thứ hai, nhà phân phối phải nói rõ cho ngời sử dụng biết phần mềm thực hoạt động phạm vi giấy phép GPL - Thứ ba, nhà phân phối phải cung cấp miễn phí mà nguồn đầy đủ cho phần mềm phân phối Điều giúp cho mua phần mềm GPL sửa đổi phần mềm Linux phần mềm thuộc GPL nên tuân theo nhng quy tắc GPL Vì Linux đợc coi nh phần mềm có mà nguồn mở (Open source) Nghĩa mà nguồn Linux phải mở với tất ngời muốn sử dụng nó, sửa đổi phát triển cách tự Và thực thay đổi tới chơng trình thay đổi phải mở ngời dùng 1.4 So sánh Linux hệ điều hành khác Vấn đề nói chạy Linux với số hệ điều hành khác nh Windows 95, Windows 98, Windows NT, OS/2 mà không gặp trục trặc 1.4.1 So sánh Linux với Windows 95, Windows 98 Không có lạ chạy Linux lẫn Windows 95/98 mét hƯ thèng NhiỊu ng−êi sư dơng Linux dïng Windows nh công cụ xử lý từ Nghĩa ngời sử dụng dùng Windows để khai thác ứng dụng thơng mại có Windows nh: Microsoft Word, Microsoft Exel mà Linux sẵn LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp Windows 95 Windows 98 không tận dụng hết đợc chức xử lý X86 Mặt khác, Linux hoàn toàn chạy chế độ bảo vệ xử lý khai thác triệt để tính máy, kể đa vi xử lý Có thể khẳng định Windows Linux thực thể hoàn toàn khác biệt Windows có giá hợp lý(so với hệ điều hành thơng mại khác) có vị trí vững giới máy tính PC Không có hệ điều hành cho PC lại đạt đợc mức độ phổ cập nh Windows Tuy nhiên Linux lại hệ điều hành miễn phí điều làm cho ngày trở nên thông dụng 1.4.2 So sánh Linux với Windows NT Cũng nh Linux, Windows NT(và phiên Windows phát triển từ Windows NT) hệ điều hành đa nhiệm đầy đủ, hộ trợ máy đa xử lý, kiến trúc CPU, nhớ ảo, nối mạng, bảo mật Tuy nhiên, khác biệt Linux Windows NT Linux phiên Unix Có nhiều cài đặt từ phía công ty cung cấp nhng có vấn đề nan giải việc chuẩn hoá dới dạng hệ thống mở, nhng không công ty kiểm soát đợc thiết kế Mặt khác, Windows NT hệ thống đặc quyền Giao diện thiết kế công ty kiểm soát, Microsoft công ty cài đặt thiết kế Về ý nghĩa hình thức tổ chức có lợi: thiết lập tiêu chuẩn nghiêm ngặt cho việc lập trình giao diện ngời sử dụng không giống nh cộng đồng hệ thống mở Windows NT sức mạnh đầy đủ máy tiếp thị Microsoft, Linux có cộng đồng hàng nghìn nhà lập trình góp phần cải tiến hệ thống qua mẫu Open Source Những ®iĨm quy chn cđa Linux so víi Windows NT ®· chứng minh hệ thống có điểm mạnh điểm yếu riêng Linux vợt xa Windows NT lĩnh vực mạng Linux nhỏ NT nhng lại thờng ổn định 10 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp Thực gán giá trị đếm số byte gói tin chuỗi luật -Z đợc tất chuỗi luật Thí dụ: iptables -Z INPUT Liệt kê tất luật chuỗi luật đợc Khi không tên bảng hay chuỗi luật lệnh, iptables liệt kê tất luật -L bảng hay chuỗi luật bảng ®−ỵc chØ Khi sư dơng lƯnh –L, ta cã thể lựa chọn -n để hiển thị kết (địa cổng) dới dạng giá trị số thay hiển thị theo tên Thí dụ: iptables Ln INPUT -h Lệnh cung cấp hớng dẫn cách sử dụng lệnh nh lựa chọn tham số lệnh 6.2.5.3 Các điều kiện luật Để xây dựng luật iptables, ta cần điều kiện kiểm tra gói tin sau phải hành động xử lý gói tin thông tin gói tin đáp ứng đợc điều kiện Trong phần này, ta khảo sát số điều kiện thờng đợc sử dụng bảng filter nat iptables thực kiểm tra gói tin dựa vào điều kiện đợc Những điều kiện kiểm tra gói tin đợc chia thành nhóm: Nhóm điều kiện chung , nhóm điều kiện ẩn, nhóm điều hiện 6.2.5.3.1 Nhóm điều kiện chung Nhóm điều kiện chung đợc sử dụng tất luật Nhóm điều kiện chung luôn có hiệu lực, không xét đến giao thức gói tin, không xét đến điều kiện mở rộng Không có tham số đặc biệt cần phải có sử dụng điều kiện Các điều kiện chung: 90 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp -p protocol Điều kiện đợc sử dụng để kiểm tra giao thøc (protocol) cña gãi tin Giao thøc cã thể đợc tên giá trị số giao thức (các giá trị số hợp lệ giá trị đợc khai báo tập tin /etc/protocols), thÝ dơ nh− cã nghÜa lµ giao thøc ICMP Các giá trị điều kiện -p danh sách giao thức, đợc phân cách dấu ',' Giá trị ALL đại diện cho mäi giao thøc ThÝ dô: iptables -A INPUT -p tcp,udp -s source_addr Điều kiện đợc sử dụng để kiểm tra địa nguồn (source_addr) gói tin Giá trị điều kiện này, source_addr, địa IP với netmask đợc ghi dạng CIRD ThÝ dô: iptables -A INPUT -s 192.168.1.1/27 -d dest_addr Điều kiện đợc sử dụng để kiểm tra địa đích (dest_addr) gói tin Giá trị điều kiện này, dest_addr, địa IP với netmask đợc ghi dạng CIRD Thí dụ: iptables -A INPUT -d 192.168.1.1/24 -i in_interface §iỊu kiƯn -i đợc sử dụng để thực kiểm tra gói tin có đến giao tiếp mạng in_interface Điều kiện đợc phép khai báo chuỗi luật INPUT, FORWARD PREROUTING Giá trị điều kiện này, in_interface, tên giao tiếp mạng Có thể sư dơng ký tù thay thÕ + tªn cđa giao tiếp mạng Nếu + đứng đại diện cho tất giao tiếp mạng Nếu + đợc viết liền sau phần tên giao tiếp mạng, thay cho tất giao tiếp mạng có phần tên Thí dụ, điều kiện -i eth+ sÏ ¸p dơng lt 91 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp tiếp mạng có phần tên Thí dụ, điều kiện -i eth+ sÏ ¸p dơng lt cho bÊt kú giao tiÕp Ethernet hệ thống ngoại trừ giao tiếp khác, nh ppp0 Thí dụ: iptables -A INPUT -i eth0 -o out_interface Điều kiện -o đợc sử dụng để thực kiểm tra gói tin xuất phát từ giao tiếp mạng out_interface Điều kiện đợc phép khai báo chuỗi luật OUTPUT, FORWARD POSTROUTING, ngợc với điều kiện -i Cú pháp điều kiện tơng tự nh cú pháp điều kiện -i ThÝ dô: iptables -A FORWARD -o eth0 6.2.5.3.2 Nhãm điều kiện ẩn Các điều kiện ẩn đợc thực hiện, công nhận, tự động đợc nạp cách hoàn toàn Hiện có ba kiểu điều kiện ẩn áp dơng cho ba giao thøc: ®iỊu kiƯn kiĨm tra gãi TCP, kiĨm tra gãi UDP, vµ kiĨm tra gãi ICMP Các điều kiện ẩn: sport source_port Điều kiện hợp lệ luật có điều kiện -p tcp p udp Điều kiện source-port đợc sử dụng để kiểm tra gói tin dựa cổng nguồn (source_port) chúng Nếu không điều kiện này, iptables không kiểm tra cổng nguồn gói tin Giá trị điều kiện này, source_port, cổng tên dịch vụ (tên dịch vụ hợp lệ tên dịch vụ đợc khai báo tập tin /etc/services) source_port dÃy cổng, đợc phân cách dấu ':' 92 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com §å ¸n tèt nghiƯp ThÝ dơ: iptables -A INPUT -p tcp sport 22:80 dport destination_port Điều kiện hợp lệ luật có điều kiện -p tcp p udp Điều kiện dport đợc sử dụng để kiểm tra gói tin dựa cổng đích (destination_port) chúng Cú pháp điều kiện giống nh cú pháp điều kiện source-port ThÝ dô: iptables -A INPUT -p tcp dport 22 icmp-type type Điều kiện hợp lệ lt cã chØ ®iỊu kiƯn -p icmp Điều kiện icmp-type đợc sử dụng để kiểm tra gói tin dựa kiểu giao thức ICMP gãi tin C¸c kiĨu, type, cđa giao thøc ICMP cã thể đợc định dạng số định dạng tên Thí dụ: iptables -A INPUT -p icmp icmp-type syn Điều kiện syn đợc trì từ ipchains để đảm bảo tính tơng thích để tạo chuyển tiếp cách dễ dàng Nó đợc dùng để kiểm tra gói tin chúng có cờ SYN đợc bật cờ ACK RST bị tắt Những gói tin chủ yếu đợc dùng để yêu cầu kết nối từ máy chủ Nếu ta thực loại bỏ gói tin này, tất gói tin 6.2.5.3.3 Nhóm điều hiện Những điều kiện điều kiện phải đợc nạp cách đặc biệt với lựa chọn -m Sự khác điều kiện điều kiện ẩn chỗ điều kiện đợc nạp ẩn tự động đợc nạp kiểm tra thc tÝnh cđa c¸c 93 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp gói tin, điều kiện đợc nạp không đợc nạp cách tự động ngời quản trị tự phát kích hoạt điều kiện Các điều kiện hiện: source-port list Điều kiện hợp lệ luật có điều kiện -p tcp p udp điều kiện -m multiport Điều kiện source-port điều kiện -sport không sử dụng luật Điều kiện source-port tơng tự nh điều kiện sport, nhng giá trị điều kiện danh sách, list (tối đa 15 phần tử), cổng đợc phân cách dấu ',' Thí dụ: iptables -A INPUT -p tcp -m multiport source-port 22,53,80,110 destination-port list Điều kiện destination-port tơng tự nh điều kiện dport, nhng giá trị danh sách cổng Cú pháp điều kiện sử dụng điều kiện tơng tự nh điều kiện -source-port ThÝ dô: iptables -A INPUT -p tcp -m multiport destination-port 22,53,80,110 port list Điều kiện đợc sử dụng để kiểm tra gói tin dựa vào ®Þa chØ ngn lÉn ®Þa chØ ®Ých cđa gãi tin Cú pháp điều kiện giống nh -source-port Thí dụ: iptables -A INPUT -p tcp -m multiport port 22,53,80,110 mac-source mac_addr 94 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp Điều kiện đợc dùng để kiểm tra gói tin dựa địa MAC nguồn chúng Địa MAC, mac_addr, phải đợc ghi định dạng XX:XX:XX:XX:XX:XX Điều kiện mac-source hợp lệ chuỗi PREROUTING, FORWARD INPUT, ®ång thêi lt ph¶i chØ ®iỊu kiƯn -m mac ThÝ dô: iptables -A INPUT -m mac mac-source 00:00:00:00:00:01 Các giá trị điều kiện đợc lấy nghịch đảo cách sử dụng ký tự ! ®øng sau ®iỊu kiƯn ThÝ dơ, nÕu ta khai b¸o ®iỊu kiƯn sau -p ! icmp , iptables sÏ kiĨm tra gói tin không làm việc theo giao thức ICMP 6.2.5.4 Các hành động luật Sau đà điều kiện kiểm tra gói tin, bớc ci cïng cđa c«ng viƯc thiÕt lËp lt iptables hành động xử lý gói tin thông tin gói tin đáp ứng đợc điều kiện luật Tên hành động xử lý gói tin phải đợc đặt sau tham số -j luật Dới số hành động xử lý gói tin bản: 6.2.5.4.1 user-defined-chain Hành động thực chuyển gói tin tới chuỗi luật ngời dùng định nghĩa, đà đợc tạo trớc với tên user-defined-chain, để đợc kiểm tra chịu xử lý theo luật đợc khai báo chuỗi luật ngời dùng định nghĩa Thí dụ: iptables -A INPUT -p tcp -j tcp_packets ACCEPT Ngay sau gãi tin đáp ứng đợc điều kiện luật hành động xử lý gói ACCEPT, gói tin đợc chấp nhận bị kiểm tra thêm qua luật khác chuỗi luật hành hay bị kiểm tra chuỗi luật khác bảng Tuy nhiên, gói tin đợc chấp nhận chuỗi 95 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp luật phải qua chuỗi luật khác bảng khác bị loại bỏ bảng Để sử dụng hành động này, cần j ACCEPT luật 6.2.5.4.2 DROP Hành động DROP loại bá c¸c gãi tin lËp tøc Chó ý r»ng hành động gây số tác động ý muốn, bỏ lại socket không dùng máy Do vậy, giải pháp tốt sử dụng hành động REJECT, đặc biệt muốn ngăn chặn việc quét cổng 6.2.5.4.3 REJECT Hành động REJECT hoạt động tơng tự nh hành động DROP, nhng gửi thông báo lỗi cho máy gửi gói tin bị loại bỏ Hành động đợc phép khai báo chuỗi luật INPUT, FORWARD OUTPUT 6.2.5.4.4 RETURN Khi gói tin gặp hành động RETURN, iptables ngừng kiểm tra gói tin chuỗi luật hành Nếu chuỗi luật hành chuỗi luật khác, gói tin tiếp tục đợc kiểm tra luật chuỗi luật cha hành động khác đợc thực Nếu chuỗi luật chuỗi luật chính, thí dụ INPUT, gói chịu tác động hành động mặc định chuỗi luật 6.2.5.4.5 SNAT Hành động SNAT đợc sử dụng để thực chuyển đổi địa mạng nguồn (Source Network Address Translation), có nghĩa thay đổi địa IP nguồn header gói tin Hành động thờng đợc áp dụng có nhiều máy tính sử dụng chung kết nối Internet Hành động SNAT hợp lệ đợc đặt chuỗi luật POSTROUTING bảng nat Chỉ có gói kết nối đợc thay đổi hành động SNAT, sau tất gói sử dụng kết nối đợc 96 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp đổi địa nguồn Thêm nữa, luật khởi nạp chuỗi luật POSTROUTING đợc áp dụng tới tất gói tin dòng liệu Hành động SNAT đợc sử dụng với lựa chọn to-source Lựa chọn đợc dùng để xác định địa IP vµ cỉng mµ gãi tin sÏ sư dơng Lùa chọn thực thay địa IP ngn header cđa gãi tin b»ng mét nh÷ng địa IP đợc Nếu muốn cân địa IP, ta sử dụng dÃy địa IP, sử dụng ký tự '-' để phân cách Các dòng liệu sử dụng địa dải cách ngẫu nhiên; gói tin dòng liệu sử dụng địa IP Trong SNAT, ta dÃy cổng đợc sử để thay đổi cổng nguồn gói tin Các cổng nguồn hợp lệ điều kiện -p tcp hay -p udp đợc luật Thí dụ: iptables -t nat -A POSTROUTING –p tcp -o eth0 -j SNAT tosource 194.236.50.155-194.236.50.160:1024-32000 6.2.5.4.6 MASQUERADE Hành động MASQUERADE đợc sử dụng nh hành động SNAT, nhng không đòi hỏi phải sử dụng lựa chọn to-source Hành động MASQUERADE đợc sử dụng để làm việc với kết nối sử dụng địa IP động nh kết nối quay số (dial-up) hay DHCP Điều có nghĩa sử dụng hành động MASQUERADE với kết nối IP đợc gán địa động Nếu ta có kết nối IP tĩnh, nên sử dụng hành ®éng SNAT Khi thùc hiÖn masquerade mét kÕt nèi, cã nghĩa sử dụng địa IP giao tiếp mạng thay địa IP nguồn header gói tin Hành động MASQUERADE tác động tới kết nối bị bỏ quên giao tiếp mạng tắt (nếu sử dụng SNAT bị liệu trờng hợp này) 97 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp Hành động MASQUERADE đợc sử dụng thay cho SNAT sử dụng địa IP tĩnh, nhiên việc sử dụng nh lợi phải thực thêm nhiều xử lý có mâu thuẫn tơng lai Chú ý hành động MASQUERADE hợp lệ đợc đặt chuỗi luật POSTROUTING bảng nat Hành động MASQUERADE cã thĨ sư dơng cïng víi lùa chän to-ports Lựa chọn đợc sử dụng để gán lại cổng nguồn cho gói tin Ta cổng hay dÃy cổng, đợc phân cách ký tự '-' Lựa chọn hợp lệ luật có điều kiƯn -p tcp hay -p udp ThÝ dơ: iptables -t nat -A POSTROUTING -p TCP -j MASQUERADE to-ports 1024-31000 6.2.5.4.7 DNAT Hành động DNAT đợc sử dụng để thực chuyển đổi địa mạng đích (Destination Network Address Translation) có nghĩa đợc sử dụng để ghi lại địa IP Destination header gói tin Nếu gói tin thoả điều kiện luật, chịu tác động hành động DNAT, gói tin tất gói tin theo sau dòng liệu đợc chuyển đổi địa IP đích header chúng sau đợc dẫn đờng tới giao tiếp mạng, máy hay mạng đợc yêu cầu Hành động hữu dụng, thí dụ nh trờng hợp ta có máy chủ web nằm LAN địa thật Ta thông báo cho firewall chuyển tiếp tất gói tin vào cổng HTTP thân (có địa thật) tới máy chủ web LAN Hành động DNAT đợc sử dụng chuỗi luật PREROUTING OUTPUT bảng nat Lựa chọn to-destination đợc sử dụng với DNAT để thông báo cho DNAT biết địa IP đợc sử dụng thay cho địa đích đến header 98 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp gói tin Ta dÃy địa đích, phân cách ký tự '', dòng liệu sử dụng ngẫu nhiên địa dÃy địa đợc Tất gói tin dòng liệu sử dụng địa IP Ta bổ sung thêm cổng hay dÃy cổng muốn chuyển hớng gói tin tới cổng Để thêm cổng, khai báo thêm :port vào địa mà ta muốn DNAT gói tin; lựa chọn hợp lệ lt cã chØ ®iỊu kiƯn -p tcp hay -p udp ThÝ dô: iptables -t nat -A PREROUTING -p tcp -d 15.45.23.67 dport 80j DNAT to-destination 192.168.1.1-192.168.1.10 Khi sử dụng DNAT, máy mạng cục không truy nhập đợc máy dịch vụ vấn đề dẫn đờng Do vậy, giải pháp đơn giản cho vấn đề sử dụng hành động SNAT cho tất gói vào firewall Thí dụ: iptables -t nat -A POSTROUTING -p tcp dst $HTTP_IP dport 80 -j SNAT to-source $LAN_IP Ngoài điều kiện, hành động nêu trên, iptables có nhiều điều kiện hành động khác nữa; để biết chi tiÕt vỊ chóng, ta cã thĨ tham kh¶o qua lệnh man 6.2.5.5 Các ví dụ Dới số thí dụ minh hoạ việc sử dụng điều kiện hành động đặc biệt hữu ích công việc xây dựng firewall Giả sử mạng cục có địa $LOCAL_IP, firewall sử dụng hai card m¹ng: mét card m¹ng, $EXT_ETH, nèi Internet card mạng, $INT_ETH, nối với mạng cục Chèng Syn flooding: iptables -A FORWARD -p tcp syn -m limit limit 1/s –j ACCEPT Chèng Scan Port: 99 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com §å ¸n tèt nghiÖp iptables -A FORWARD -p tcp tcp-flags SYN,ACK,FIN,RST RST -m limit limit 1/s -j ACCEPT Chèng Ping of Death: iptables -A FORWARD -p imp icmp-type echo-request -m limit limit 1/s -j ACCEPT Chèng gi¶ mạo địa nội từ bên ngoài: iptables -t nat -A PREROUTING -i $EXT_ETH -s $LOCAL_IP -j DROP ¦u tiên thông lợng cho truy cập web iptables -t mangle -A PREROUTING -p tcp sport 80 -j TOS set-tos Maximize-Throughput ThiÕt lËp Transparent proxy b»ng c¸ch chun h−íng port 80 đến máy chủ proxy 10.0.0.9: iptables -t nat -A PREROUTING -p tcp dport 80 -j DNAT to-destination 10.0.0.9:3128 Ngăn chặn sâu Nimda, Codered iptables -I INPUT -p tcp -s 0/0 -m string string "c+dir" -j DROP iptables -I INPUT -p tcp -s 0/0 -m string string "cmd.exe" -j DROP iptables -I INPUT -p tcp -s 0/0 -m string string "default.exe" -j DROP Script khởi động Để luật iptables đợc tự động thi hành máy tính hay chơng trình iptables đợc khởi động lại, ta cần tạo script chứa luật iptables Script khởi động /etc/sysconfig/iptables có định dạng nh sau: *Tên_bảng_1 :chuỗi_luật_1 Hành_động [số đếm byte:số đếm gói] :chuỗi_luật_2 Hành_động [số đếm byte:số đếm gói] :chuỗi_luật_n Hành_động [số đếm byte:số đếm gói] 100 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp Luật_1 Luật_2 Luật_n COMMIT *Tên_bảng_2 COMMIT Trong chuỗi_luật tên chuỗi luật có bảng Chú ý rằng, danh sách tên chuỗi luật phải đợc liệt kê theo thứ tự Hành_động hành động mặc định chuỗi luật đợc Chú ý: Không đợc phép đặt dòng trắng tập tin script Dòng ghi dòng đợc bắt đầu ký tự # Các dòng ghi không đợc phép đặt phần nội dung khai báo Tên bảng phải đợc viết chữ thờng Tên chuỗi luật hành động phải đợc viết chữ hoa Sau thay đổi nội dung script, cần phải khởi động lại iptables để thực thi thay đổi vừa đợc thực # /etc/rc.d/init.d/iptables restart Dới lµ mét thÝ dơ vỊ néi dung cđa mét script: # Generated by iptables-save v1.2.6a on Tue Feb 11 15:01:54 2003 *nat :PREROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] 101 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiÖp :OUTPUT ACCEPT [0:0] -A POSTROUTING -s 172.16.12.0/255.255.255.0 -o eth0 -j MASQUERADE COMMIT *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -p tcp -m tcp dport 22 syn -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m tcp dport 0:1023 syn -j REJECT COMMIT 102 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp Tài liệu tham khảo Sách tham khảo Làm chủ hệ điều hành Linux- Nhóm tác giả Elicom (NXB Thống Kê) Linux toàn tập Tổng hợp biên dịch VN-GUIDE (NXB Thèng Kª) 100 thđ tht cao cÊp víi Linux- Ks ngun Ngäc Tn & Hång Phóc ( NXB Giao Thông Vận Tải ) Bảo mật tối u hóa Linux- Trần Thạch Tùng Hoàng Đức Hải (NXB Lao Động-Xà Hội) Các địa trang web tham kh¶o www.manguon.com www.quantrimang.com www.fotech.vnu.edu.vn/osg www.hcmc.netnam.vn www.diendantinhoc.net www.vnlinux.org www.redhat.com www.pcworld.com.vn www.echip.com.vn 10 www.apache.org 11 www.samba.org 103 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp Nhận xét giáo viên hớng dẫn …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… 104 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ... luanvanchat@agmail.com Đồ án tốt nghiệp Nếu phần cứng bạn không đợc hỗ trợ cách: Thay đổi phần cứng cho tơng thích Chờ Linux hỗ trợ phần cứng bạn Tốt nên tránh thiết bị mang nhÃn Plug&Play Bởi Linux bắt đầu... luanvanchat@agmail.com Đồ án tốt nghiệp Linux phiên Unix đợc phân phối miễn phí ban đầu Linus Torvalds thực phát triển Ông bắt đầu nghiên cứu Linux vào năm 1991 sinh viên trờng đại học Helsinki Phần Lan Linux. .. luanvanchat@agmail.com Đồ án tốt nghiệp Chơng II : lệnh Linux 2.1 Các phơng thức hoạt động dòng lệnh Các lệnh Linux đợc chia làm hai loại câu lệnh chơng trình Điểm khác câu lệnh chơng trình là: câu lệnh Linux