Đề án tốt nghiệp: Công nghệ bảo mật trên đà phát triển của công nghệ thông tin phần 5 pot

5 326 0
Đề án tốt nghiệp: Công nghệ bảo mật trên đà phát triển của công nghệ thông tin phần 5 pot

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

Thông tin tài liệu

Đề tài: An toàn và bảo mật trên hệ điều hành Linux Page 21 GVHD:Nguyễn Tấn Khôi Sinh viên thực hiện: Lê Thị Huyền Trang Nguyễn Huy Chương iptables-N REJECT_PORTSCAN iptables-A REJECT_PORTSCAN -p tcp -m limit limit $LOG_LIMIT limit-burst $LOG_LIMIT_BURST -j LOG log-level $LOG_LEVEL log-prefix "fp=PORTSCAN:tcp a=REJECT " iptables-A REJECT_PORTSCAN -p udp -m limit limit $LOG_LIMIT limit-burst $LOG_LIMIT_BURST -j LOG log-level $LOG_LEVEL log-prefix "fp=PORTSCAN:udp a=REJECT " iptables-A REJECT_PORTSCAN -p tcp -j REJECT reject-with tcp-reset iptables-A REJECT_PORTSCAN -p udp -j REJECT reject-with icmp-port-unreachable Bước 6: phát hiện quét cổng bằng Nmap iptables-N DETECT_NMAP iptables-A DETECT_NMAP -p tcp tcp-flags ALL FIN,URG,PSH -m limit limit $LOG_LIMIT limit-burst $LOG_LIMIT_BURST -j LOG log-level $LOG_LEVEL log-prefix "fp=NMAP:XMAS a=DROP " iptables-A DETECT_NMAP -p tcp tcp-flags ALL SYN,RST,ACK,FIN,URG -m limit limit $LOG_LIMIT limit-burst $LOG_LIMIT_BURST -j LOG log-level $LOG_LEVEL log-prefix "fp=NMAP:XMAS-PSH a=DROP " iptables-A DETECT_NMAP -p tcp tcp-flags ALL ALL -m limit limit $LOG_LIMIT limit- burst $LOG_LIMIT_BURST -j LOG log-level $LOG_LEVEL log-prefix "fp=NMAP:XMAS- ALL a=DROP " iptables-A DETECT_NMAP -p tcp tcp-flags ALL FIN -m limit limit $LOG_LIMIT limit- burst $LOG_LIMIT_BURST -j LOG log-level $LOG_LEVEL log-prefix "fp=NMAP:FIN a=DROP " iptables-A DETECT_NMAP -p tcp tcp-flags SYN,RST SYN,RST -m limit limit $LOG_LIMIT limit-burst $LOG_LIMIT_BURST -j LOG log-level $LOG_LEVEL log-prefix "fp=NMAP:SYN-RST a=DROP " iptables-A DETECT_NMAP -p tcp tcp-flags SYN,FIN SYN,FIN -m limit limit $LOG_LIMIT limit-burst $LOG_LIMIT_BURST -j LOG log-level $LOG_LEVEL log-prefix "fp=NMAP:SYN-FIN a=DROP " iptables-A DETECT_NMAP -p tcp tcp-flags ALL NONE -m limit limit $LOG_LIMIT limit-burst $LOG_LIMIT_BURST -j LOG log-level $LOG_LEVEL log-prefix "fp=NMAP:NULL a=DROP " iptables-A DETECT_NMAP -j DROP iptables-A INPUT -i eth0 -p tcp ! syn -m state state NEW -j DETECT_NMAP Đối với các gói TCP đến eth0 mở kết nối nhưng không đặt SYN=1 chúng ta sẽ chuyển sang chain DETECT_NMAP. Đây là những gói không hợp lệ và hầu như là quét cổng bằng nmap hoặc kênh ngầm. Chain DETECT_NMAP sẽ phát hiện ra hầu hết các kiểu quét của Nmap và tiến hành ghi nhật kí ở mức limit $LOG_LIMIT và limit-burst $LOG_LIMIT_BURST. Ví dụ để kiểm tra quét XMAS, bạn dùng tùy chọn tcp-flags ALL FIN,URG,PSH nghĩa là 3 cờ FIN, URG và PSH được bật, các cờ khác đều bị tắt. Các gói qua chain DETECT_NMAP sau đó sẽ bị DROP hết. Bước 7: chặn ngập lụt SYN Gói mở TCP với cờ SYN được set 1 là hợp lệ nhưng không ngoại trừ khả năng là các gói SYN dùng để ngập lụt. Vì vậy, ở dây bạn đẩy các gói SYN còn lại qua chain CHECK_SYNFLOOD để kiểm tra ngập lụt SYN như sau: iptables-N CHECK_SYNFLOOD iptables-A CHECK_SYNFLOOD -m limit limit $SYN_LIMIT limit-burst $SYN_LIMIT_BURST -j RETURN iptables-A CHECK_SYNFLOOD -m limit limit $LOG_LIMIT limit-burst $LOG_LIMIT_BURST -j LOG log-level $LOG_LEVEL log-prefix "fp=SYNFLOOD:warning a=DROP " iptables-A CHECK_SYNFLOOD -j DROP iptables-A INPUT -i eth0 -p tcp syn -j CHECK_SYNFLOOD Đề tài: An toàn và bảo mật trên hệ điều hành Linux Page 22 GVHD:Nguyễn Tấn Khôi Sinh viên thực hiện: Lê Thị Huyền Trang Nguyễn Huy Chương Bước 8: giới hạn truy cập SSH cho admin SSH_IP="1.1.1.1" iptables -N SSH_ACCEPT iptables -A SSH_ACCEPT -m state state NEW -j LOG log-level $LOG_LEVEL log- prefix "fp=SSH:admin a=ACCEPT " iptables -A SSH_ACCEPT -j ACCEPT iptables -N SSH_DENIED iptables -A SSH_DENIED -m limit limit $LOG_LIMIT limit-burst $LOG_LIMIT_BURST -j LOG log-level $LOG_LEVEL log-prefix "fp=SSH:attempt a=REJECT " iptables -A SSH_DENIED -p tcp -j REJECT reject-with tcp-reset for i in $SSH_IP; do iptables -A INPUT -i eth0 -p tcp -s $i dport 22 -j SSH_ACCEPT done iptables -A INPUT -i eth0 -p tcp dport 22 -m state state NEW -j SSH_DENIED Bước 9: giới hạn FTP cho web-master FTP_IP="2.2.2.2" iptables -N FTP_ACCEPT iptables -A FTP_ACCEPT -m state state NEW -j LOG log-level $LOG_LEVEL log- prefix "fp=FTP:webmaster a=ACCEPT " iptables -A FTP_ACCEPT -j ACCEPT iptables -N FTP_DENIED iptables -A FTP_DENIED -m limit limit $LOG_LIMIT limit-burst $LOG_LIMIT_BURST -j LOG log-level $LOG_LEVEL log-prefix "fp=FTP:attempt a=REJECT " iptables -A FTP_DENIED -p tcp -j REJECT reject-with tcp-reset for i in $FTP_IP; do iptables -A INPUT -i eth0 -p tcp -s $i dport 21 -j FTP_ACCEPT done iptables -A INPUT -i eth0 -p tcp dport 21 -m state state NEW -j FTP_DENIED Bước 10: lọc TCP vào iptables -N TCP_INCOMING iptables -A TCP_INCOMING -p tcp dport 80 -j ACCEPT iptables -A TCP_INCOMING -p tcp -j REJECT_PORTSCAN iptables -A INPUT -i eth0 -p tcp -j TCP_INCOMING Bước 11: lọc UDP vào và chặn ngập lụt UDP iptables -N CHECK_UDPFLOOD iptables -A CHECK_UDPFLOOD -m limit limit $UDP_LIMIT limit-burst $UDP_LIMIT_BURST -j RETURN iptables -A CHECK_UDPFLOOD -m limit limit $LOG_LIMIT limit-burst $LOG_LIMIT_BURST -j LOG log-level $LOG_LEVEL log-prefix "fp=UDPFLOOD:warning a=DROP " iptables -A CHECK_UDPFLOOD -j DROP iptables -A INPUT -i eth0 -p udp -j CHECK_UDPFLOOD iptables -N UDP_INCOMING iptables -A UDP_INCOMING -p udp dport 53 -j ACCEPT iptables -A UDP_INCOMING -p udp -j REJECT_PORTSCAN iptables -A INPUT -i eth0 -p udp -j UDP_INCOMING Để hạn chế khả năng bị DoS và tăng cường tốc độ cho máy chủ phục vụ web, bạn có thể dùng cách tải cân bằng (load-balacing) như sau: Đề tài: An toàn và bảo mật trên hệ điều hành Linux Page 23 GVHD:Nguyễn Tấn Khôi Sinh viên thực hiện: Lê Thị Huyền Trang Nguyễn Huy Chương Cách 1: chạy nhiều máy chủ phục vụ web trên các địa chỉ IP Internet khác nhau. Ví dụ, ngoài máy chủ phục vụ web hiện tại 1.2.3.4, bạn có thể đầu tư thêm các máy chủ phục vụ web mới 1.2.3.2, 1.2.3.3, 1.2.3.4, 1.2.3.5. Điểm yếu của cách này là tốn nhiều địa chỉ IP Internet. Cách 2: đặt các máy chủ phục vụ web trong một mạng DMZ. Cách này tiết kiệm được nhiều địa chỉ IP nhưng bù lại bạn gateway Iptables 1.2.3.4 - 192.168.0.254 có thể load nặng hơn trước và yêu cầu bạn đầu tư tiền cho đường truyền mạng từ gateway ra Internet. Bạn dùng DNAT trên gateway 1.2.3.4 để chuyển tiếp các gói dữ liệu từ client đến một trong các máy chủ phục vụ web trong mạng DMZ hoặc mạng LAN như sau: # iptables -t nat -A PREROUTING -i eth0 -p tcp dport 80 -j DNAT to- destination 192.168.0.1-192.168.0.4 IV. Xây dựng hệ thống mạng Linux Hướng dẫn cài đặt Linux 1.Tạo đĩa boot và tiến trinh boot Điều đầu tiên cần làm là tạo một đĩa mềm cài đặt cũng được hiểu như đĩa khởi động . Nếu máy tính của bạn có hỗ trợ boot trực tiếp từ CD ROM thì bạn có thể đi tiếp dến bước hai ,còn không bạn có thể boot từ đĩa mềm ,bằng cách tạo ra nó như sau : Bước 1: Trước khi tạo đĩa boot , đĩa CD-ROM Red Hat Linux vào trong ổ CD trên máy tính của bạn đang chạy hệ thống windows . Mở Command Prompt dưới windows . C:\d: D:\ cd \ dosutils D:\ cd \ dosutils> rawrite Enter disk image source file name : \images \boot .img Enter target diskette drive : a: Please insert a formatted diskette into A drive; nad press Enter D:\dosutils> Chương trình rawrite.exe hỏi tên tập tin của disk image (ảnh đĩa):Gỏ vào boot.img và đưa đĩa mềm vào đĩa A .Sau đó sẽ hỏi đĩa nào sẽ được ghi vào ,gõ vàp a: bạn dã hoàn thành bước này và bạn có một đĩa mềm với tên là “ Red Hat boot disk” Bước 2 : Đưa đĩa boot vào trong đĩa A trên muốn cài đặt Red Hat Linux và khởi động máy ,sau đó làm các bước sau : Đề tài: An toàn và bảo mật trên hệ điều hành Linux Page 24 GVHD:Nguyễn Tấn Khôi Sinh viên thực hiện: Lê Thị Huyền Trang Nguyễn Huy Chương x Chọn ngôn ngữ . x Chọn kiểu bàn phím x Chọn kiểu chuột . Các cách cài đặt và phương pháp của chúng Red Hat Linux 6.1 và 6.2 có 4 lớp càu đặt khác nhau là; GNOME Workstation KDE Workstation Server Custom Cả 3 cách cài đặt trên đều cho bạn sự lựa chọn đơn giản của tiến trình cài đặt , ở đó máy tính tự động làm hết mọi thứ và bạn mất đi đáng kể tính linh hoạt trong việc cấu hình mà chúng ta không nên bỏ qua và sẽ đề cập chi tiết trong những bước tiếp theo . Vì lý do trên mà chúng ta nên cài đặt custom .Cách này cho phép bạn chọn những dịch vụ nào sẽ được thêm vào và làm thế ào để phân hoạch hệ thống . Cài đặt đĩa (Disk setup) Chúng ta giả sữ bạn đang cài đặc server Linux mới trên một ổ đĩa mới không có hệ điều nào được cìa đặt trước đó .Một chiến lược phân hoạch tốt là tạo từng partion riêng lẻ cho mỗi hệ thống tập tin chính .Việc này làm tăng khả năng bảo mật và ngăn chận tấn công hoặc khai thác của những chương trình SUID. Bước 1: Để đạt hiệu quả cao , ổn định và an toàn bạn nên tạo các partition như những partition được liệt kê dưới đây trên máy tính của bạn .Chúng tôi cũng giả sử rằng thực tế bạn ổ cứng từ 3.2 GB trở lên để phân hoạch và dĩ nhiên bạn chọn kích thước partition tuỳ theo nhu cầu cần. Những partition bạn phải tạo trên hệ thống của bạn : /boot 5MB Tất cả các kernel images thì được lưu giử ở đây . /usr 512MB Partition này cần phải lớn trước khi tất cả các chương trình ở dạng binary được cài đặt ở đây . /home 1146MB Cân đối số người sử dụng bạn có ý định tạo ra trên máy này.Ví dụ 10MB/người như vậy với 114 người cần 1140MB. /chroot 256MB Nếu bạn không muốn cài đặt trong môi trường không tự do chẳng hạn như DNS tức alf môi trường chỉ có root mới có quyền thực thi . /cache 256MB Đây là partition lưu trữ của proxy server(VD Squid) /var 256MB Chứa đựng những tập tin thay đổi khi hệ thống chạy bình thường (VD các tập tin log) <swap> 128MB Đây là Swap partition được coi như bộ nhớ ảo của hệ thống ,bạn nên chia kích thước của partition này lớn hơn hoặc bằng dung lượng Ram hiện có trên máy của bạn /tmp 256MB Partition chứa những tập tin tạm thời / 256MB Root partition của chúng ta . Chúng ta có thể tạo nên hai partition đặc biệt là ”/chroot” và “/cache”, partition /chroot có thể được sử dụng cho DNS server , Apache server và những chương trình khác theo dạng như DNS và Apache .Partition /cache có thể được sử dụng cho Squid proxy server .Nếu bạn không có ý định cài đặt Squid proxy server thì bạn không cần tạo partition /cache. Đặt /tmp và /home trên các partition riêng biệt thì rất hay và có tính chất bắt buột nếu người sử dụng cío shell truy cập tới server (sự bảo vệ chống lại những Đề tài: An toàn và bảo mật trên hệ điều hành Linux Page 25 GVHD:Nguyễn Tấn Khôi Sinh viên thực hiện: Lê Thị Huyền Trang Nguyễn Huy Chương chương trình SUID) ,ngăn chặn chương trình này vào những partition riêng lẻ và ngăn cản người sử dụng làm suy yếu hoạt động của bất kỳ hệ thống nào trên server. Đặt /var và /usr trên các partition riêng lẻ cũng là một ý rất hay vì cách ly partition /var sẽ làm partition root của bạn không bị tràn đầy . Trong cấu hình partition chúng ta sẽ dành riêng 256MB đĩa trống cho những chương trình chuyển đổi root (chrooted program) giống Apache,DNS và những chương trình khác .Việc này cần thiết vì những tập tài liệu gốc ,những tập tin nhị phân ,những chương trình liên quan tới Apache sẽ được cìa đặt trong partition này nếu bạn có ý định chạy Web server Apache trong vùng riêng biệt đó . Nếu bạn không có ý định cài đặt và sử dụng Apache trên server của bạn ,có thể giảm bớt kích thước của partition này xuống khoảng 10MB và chỉ sử dụng cho DNS là dịch vụ luôn cần trong môi trường chroot vì lý do bảo mật. Các kích thước tối thiểu của các partition / 35MB /boot 5MB /chroot 10MB /home 100MB /tmp 30MB /usr 232MB /var 25MB /swap 50MB Disk Druid Disk Druid là chương trình sử dụng để phân chia đĩa cho bạn. Chọn Add để thêm một partition mới Edit để hiệu chỉnh một partition ,Delete để xoá một partition và Reset để xác lập partition về trạng thái ban đầu .Khi bạn thêm một partiton mới ,một cửa sổ sẽ xuất hiện trên màn hình và công việc của bạn là chọn những thông số cho partition đó .Sự khác nhau của các thông số đó là : Mount Point:vị trí trong hệ thống tập tin bạn muốn mount partition mới của bạn tới . Size (Megs) :kích thước của partition mới tính trên megabytes. Partiton Type: có hai là Linux native dùng cho Linux filesystem và Swap dùng cho Linux Swap Partiton . Nếu bạn có đĩa cứng loại SCSI thì tên thiết bị là /dev/sda và nếu bạn có đĩa cứng kiểu IDE thì tên sẽ là /dev/hda .Nếu bạn cần hệ thống có hiệu quả và độ ổn định thì SCSI là sự lựa chọn tốt nhất . Partition Swap được sử dụng để hổ trợ bộ nhớ ảo .Nếu máy tính của bạn có 16 MB Ram hoặc ít hơn thì bạn phải tạo một partition swap ,ngay cả khi bạn có bộ nhớ lớn thì bạn cũng nên tạo partition Swap .Kích thước tối thiểu của partition swap nên bằng hoặc lớn hơn dung lượng Ram có trên máy tính của bạn .Kích thước lớn nhất có thể sử dụng cho partition swap là 1GB cho nên nếu bạn tạo một partition swap lớn hơn 1GB thì phần còn lại trở nên vô ích Sau khi tạo các partition trên hard disk hoàn thành ,bạn sẽ thấy thông tin partition trên màn hình giống như bảng liệt kê dưới đây : Mount Point Device Requested Actual Type /boot sda1 5 MB 5M Linux Native /usr sda5 512MB 512MB Linux Native /home sda6 1146MB 1146MB Linux Native . trên màn hình và công việc của bạn là chọn những thông số cho partition đó .Sự khác nhau của các thông số đó là : Mount Point:vị trí trong hệ thống tập tin bạn muốn mount partition mới của. bộ nhớ ảo của hệ thống ,bạn nên chia kích thước của partition này lớn hơn hoặc bằng dung lượng Ram hiện có trên máy của bạn /tmp 256 MB Partition chứa những tập tin tạm thời / 256 MB Root. /tmp và /home trên các partition riêng biệt thì rất hay và có tính chất bắt buột nếu người sử dụng cío shell truy cập tới server (sự bảo vệ chống lại những Đề tài: An toàn và bảo mật trên hệ điều

Ngày đăng: 29/07/2014, 14:20

Từ khóa liên quan

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

Tài liệu liên quan