Cụng cụ giỏm sỏ t Linux sXid

Một phần của tài liệu Máy chủ Linux (Trang 50 - 55)

- hệ thống phỏt hiện xõm nhập mạng (NIDS) theo dừi những gúi tin ở trờn mạng và theo dừi phỏt hiện ra hacker/cracker đang xõm nhập hệ thống (hoặc kiểu tấn cụng từ chối dịch

3.4.7Cụng cụ giỏm sỏ t Linux sXid

Giới thiệu tổng quan.

Cỏc tập tin SUID/SGID cú thể trở thành một mối nguy cho vấn đề bảo mật về an toàn hệ thống. Để giảm cỏc rủi ro này, trước đõy chỳng ta đó remove cỏc bit 's' từ cỏc chương trỡnh được sở hữu bởi root mà sẽ khụng yờu cầu nhiều quyền sử dụng, nhưng tương lai cỏc tập tin tồn tại khỏc cú thể được đặt với 's' bits được bật lờn khụng cú sự thụng bỏo. sXid là một trong những chương trỡnh theo dừi hệ thống suid/sgid được thiết kế để chạy từ cron trờn một nguyờn lý cơ bản. Cơ bản là nú theo dừi bất kỳ sự thay đổi nào trong cỏc thư mục và cỏc tập tin s[ug]id. Nếu cú bất kỳ một điều gỡ mới trong cỏc thư mục hay tập tin cỏc thư mục và tập tin này thay đổi cỏc bit hoặc cỏc mode khỏc sau đú nú sẽ bỏo về cỏc thay đổi thụng qua email hoặc trờn dũng lệnh. sXid sẽ tự động thực hiện việc tỡm kiếm tất cả SUID/SGID trờn mỏy server và thụng bỏo về chỳng. Một khi cài đặt xong bạn cú thể quờn nú và nú sẽ làm cụng việc cho ta.

Túm tắt cỏc chỉ thị cài đặt.

Cỏc dũng lệnh là tương thớch với Unix. Đường dẫn nguồn là "/var/tmp" (cỏc đường dẫn khỏc thỡ cũng cú thể). Việc cài đặt được thử nghiệm trờn Red Hat Linux 6.1 và 6.2

Tất cả cỏc bước trong việc cài đặt sẽ xảy ra với người sử dụng cú quyền cao nhất trong hệ thống (root). Số phiờn bản sXid là 4.0.1

Cỏc gúi cần thiết (Packages).

sXid FTP Site: ftp://marcus.seva.net/sxid/

Tải về gúi: sxid_4.0.1.tar,gz

Sự biờn dịch

Giải nộn lưu trữ tarball (tar.gz)

[root@deep /]#cp sxid_version.tar.gz /var/tmp/ [root@deep /]#cd /var/tmp

[root@deep tmp]# tar xzpf sxid_version.tar.gz

Biờn dịch và tối ưu

Chuyển tới cỏc thư mục sXid mới và gừ vào cỏc lệnh sau trờn mỏy trạm (terminal):

[root@deep tmp]# cd sxid-4.0.1 [root@deep sxid-4.0.1]# make install

Cỏc lệnh bờn trờn sẽ cấu hỡnh phần mềm để đảm bảo rằng hệ thống cú chức năng cần thiết và cỏc thư viện cần thiết để biờn dịch tốt cỏc gúi, biờn dịch tất cả cỏc tập tin nguồn sang cỏc tập tin dạng nhị phõn cú thể thi hành được, và sau đú cài đặt cỏc tập tin nhị phõn và cỏc tập tin hỗ trợ bất kỳ vào thư mục cỏc thớch hợp.

Xúa sạch sau khi làm việc.

[root@deep /]#cd /var/tmp

[root@deep tmp]# rm -rf sxid-version/sxid_version.tar.gz

Lệnh "rm" được sử dụng ở trờn sẽ xúa tất cả cỏc tập tin nguồn mà chỳng ta dựng để biờn dịch và cài đặt sXid. Nú cũng sẽ xúa cỏc dạng lưu trữ được nộn từ thư mục "/var/tmp" .

Cấu hỡnh

Để chạy sXid, tập tin sau được yờu cầu và phải được tạo hoặc sao chộp tới thư mục thớch hợp trờn mỏy server. Sao chộp tập tin sxid.conf tới thư mục "/etc/" .

Cấu hỡnh tập tin "/etc/sxid.conf"

Tập tin cấu hỡnh cho sXid ("/etc/sxid.conf") cho phộp đặt cỏc tựy chọn mà hiệu chỉnh cỏc thao tỏc của chương trỡnh. Điều đú được chỳ thớch kỹ lưỡng và rất cơ bản. Soạn thảo lại tập tin sxid.conf (vỡ /etc/sxid.conf) và đặt lại theo cỏc yờu cầu:

# Who to send reports to EMAIL = "root"

# Always send reports, even when there are no changes? ALWAYS_NOTIFY = "no"

# Where to keep interim logs. This will rotate 'x' number of times based on KEEP_LOGS below LOG_FILE = "/var/log/sxid.log"

# How many logs to keep KEEP_LOGS = "5"

# Rotate the logs even when there are no changes? ALWAYS_ROTATE = "no"

# Directories where +s is forbidden (these are searched even if not explicitly in SEARCH), EXCLUDE rules apply FORBIDDEN = "/home /tmp"

# Remove (-s) files found in forbidden directories? ENFORCE = "yes" (adsbygoogle = window.adsbygoogle || []).push({});

# This implies ALWAYS_NOTIFY. It will send a full list of entries along with the changes LISTALL = "no"

# Ignore entries for directories in these paths (this means that only files will be recorded, you can effectively ignore all #directory entries by setting this to "/"). The default is /home since some systems have /home g+s.

IGNORE_DIRS = "/home"

# File that contains a list of (each on it's own line) of other files that sxid should monitor. This is useful for files that #aren't +s, but relate to system integrity (tcpd, inetd, apache...). EXTRA_LIST = "/etc/sxid.list" Mail program. This #changes the default compiled in mailer for reports. You only need this if you have changed it's location and don't want #to recompile sxid. MAIL_PROG = "/usr/bin/mail"

Step 2

Đặt một mục nhập (entry) vào trong tập tin crontab của root để tạo sXid chạy như một cronjob: Sxid sẽ chạy từ crond; cơ bản nú theo dừi bất kỳ sự thay đổi nào trong cỏc thư mục và cỏc tập tin s[ug]id. Nếu cú bất kỳ một điều gỡ mới trong cỏc thư mục hay tập tin, cỏc thư mục và tập tin này thay đổi cỏc bit hoặc cỏc mode khỏc và nú sẽ bỏo cỏo về cỏc thay đổi. Để thờm sxid vào trong cronjob, phải hiệu chỉnh tập tin crontab (nếu khụng cú sẵn tập tin này trờn server) và thờm vào cỏc dũng sau. Để soạn thảo crontab, dựng lệnh sau (cú quyền là root):

[root@deep /]# crontab -e

# Sample crontab entry to run every day at 4am 0 4 * * * /usr/bin/sxid

Tài liệu kỹ thuật chi tiết

Để biết thờm chi tiết, cú một số trang hướng dẫn (man) bạn cú thể đọc:

$ man sxid.conf (5) -configuration settings for sxid

$ man sxid (1) - check for changes in s[ug]id files and directories

Cỏc cụng cụ quản trị sXid

í nghĩa của chương trỡnh này là chạy như một cronjob. Nú phải được chạy một lần một ngày, nhưng đối với busy shell boxes cú thể cần chạy nú hai lần một ngày. Cũng cú thể chạy chương trỡnh này bằng tay cho việc kiểm tra dấu viết(spot-checking) .

• Để Sxid được thực hiện bằng tay, sử dụng lệnh.

[root@deep /]# sxid -k sXid Vers : 4.0.1

Check run : Wed Dec 29 12:40:32 1999 This host : mail.openna.com

Spotcheck : /home/admin

Excluding : /proc/mnt/cdrom/floppy Ignore Dirs: /home

Forbidden : /home/tmp No changes found

Điều này kiểm tra cỏc thay đổi bằng cỏch đệ qui trong thư mục làm việc hiện hành. Cỏc tập tin xuất cỏc kết quả theo dừi (log file) sẽ khụng được đề cập đến và cũng khụng được email gửi đi. Tất cả cỏc kết quả xuất ra thẳng stdout.

Cỏc tập tin cài đặt > /etc/sxid.conf > /usr/bin/sxid > /usr/man/man1/sxid.1 > /usr/man/man5/sxid.conf.5 3.4.8 Cụng cụ giỏm sỏt - Portsentry

Bức tường lửa (firewall) giỳp đỡ chỳng ta bảo vệ mạng khỏi những xõn nhập bất hợp phỏp từ bờn ngoài. Với firewall chỳng ta cú thể chon những ports nào chỳng ta muốn mở và những port nào chỳng ta sẽ đúng. Thụng tin trờn được giữ một cỏch bớ mật bởi những người chịu trỏch nhiệm đến firewall. Tuyệt đối khụng người nào từ bờn ngoài biết thụng tin này, tuy nhiờn cỏc hackers cũng như cỏc spammers biết được một vài cỏch tấn cụng bạn, họ cú thể sử dụng một chương trỡnh đặc biệt để quột tất cả cỏc ports trờn server của bạn nhặt thụng tin quớ giỏ này (port nào mở và port nào đúng). Một chương trỡnh quột port là một dấu hiệu của một vấn đề lớn đang đến. Nú thường là tiền thõn cho một sự tấn cụng và là một bộ phận nguy hiểm trong việc bảo vệ hữu hiệu tài nguyờn thụng tin. PortSentry là một chương trỡnh được thiết kế để phỏt hiện ra và phản hồi tới cỏc port quột nhằm chống lại một host đớch trong thời gian chỳng đang thực hiện quột port và cú một số tựy chọn để phỏt hiện ra cỏc port quột. Khi nú tỡm thấy một port quột nú cú thể phản ứng trong những cỏch sau:

• Một logfile lưu cỏc sự việc xảy ra thụng qua syslog( ).

• Tờn host mục tiờu tự động được bỏ vào trong tập tin "/etc/hosts.deny" cho những trỡnh bao bọc TCP.

• Host nội bộ tự động cấu hỡnh lại để hướng tất cả cỏc lưu thụng tới host mục tiờu trỏ tới một host khụng hoạt động (deal host) làm hệ thống mục tiờu biến mất.

• Local host tự động cấu hỡnh lại để loại bỏ tất cả cỏc gúi thụng tin từ host mục tiờu thụng qua bộ lọc local host.

Mục đớch của Portsentry là để giỳp người quản trị mạng cú được cụng cụ khảo sỏt kỹ lưỡng hệ thống của mỡnh

Cỏc chỉ dẫn cài đặt Portsentry.

- Những lệnh dựng trong phần này đều tương thớch với Unix. (adsbygoogle = window.adsbygoogle || []).push({});

- Đường dẫn nguồn là "/var/tmp" (Cỏc đường dẫn khỏc đều cú thể được). - Quỏ trỡnh cài đặt đó được kiểm tra trờn Red Hat Linux 6.1 và 6.2.

- Tất cả cỏc bước trong quỏ trỡnh cài đặt đều thực hiện với quyền super-user"root" - Phiờn bản của Portsentry là 1.0

Gúi dữ liệu (Package).

Cú thể tỡm thấy Portsentry từ trang chủ: http://www.psionic.com/abacus/portsentry/ tải về file: portsentry-1.0.tar.gz

Biờn dịch

Giải nộn tập tin tarball (tar.gz).

[root@deep /]# cp portsentry-version.tar.gz /var/tmp/

[root@deep /]# cd /var/tmp

[root@deep tmp]# tar xzpf portsentry-version.tar.gz

Biờn dịch và tối ưu húa.

Sửa tập tin "Makefile" để xỏc định đường dẫn cài đặt Portsentry, cỏc cờ hiệu biờn dịch, và tối ưu húa hệ thống, và để tương thớch với cấu trỳc tập tin hệ thống của Red Hat.

Bước 1

Chuyển tới thư mục Portsentry và gừ vào những lệnh sau trờn màn hỡnh terminal: Mở tập tin Makefile (dựng lệnh vi Makefile) và thay đổi cỏc dũng sau:

#CC = cc

Trở thành:

CC = egcs

#CFLAGS = -O -Wall

Trở thành:

CFLAGS = -O9 -funroll-loops -ffast-math -malign-double - cpu=pentiumpro - march=pentiumpro - fomit-frame-pointer - fno-exceptions -Wall

#INSTALLDIR = /usr/local/psionic

Trở thành:

INSTALLDIR = /usr/psionic

Những sự thay đổi ở trờn sẽ cấu hỡnh phần mềm sử dụng trỡnh biờn dịch "egcs", tối ưu húa cỏc cờ hiệu cụ thể cho hệ thống, và xỏc định vị trớ tất cả cỏc tập tin liờn quan đến phần mềm Portsentry đặt vào những thư mục mà chỳng ta đó chọn.

Bước 2.

Trước đõy chỳng ta sử dụng một đường dẫn khụng thớch hợp (vớ dụ /usr/local/psionic). Chỳng ta cần thay đổi đường dẫn tập tin cấu hỡnh PortSentry trong tập tin header chớnh "portsentry_config.h". Chuyển vào trong thư mục PortSentry và soạn thảo tập tin portsentry_config.h (vi portsentry_config.h ) và thay đổi cỏc dũng sau:

#define CONFIG_FILE "/usr/local/psionic/portsentry/portsentry.conf"

Trở thành:

#define CONFIG_FILE "/usr/psionic/portsentry/portsentry.conf"

Bước 3

Cài đặt Portsentry vào hệ thống. (adsbygoogle = window.adsbygoogle || []).push({});

[root@deep portsentry-1.0]# make install

Cỏc lệnh trờn sẽ cấu hỡnh Portsentry cho hệ điều hành Linux, biờn dịch, xõy dựng, và cuối cựng cài đặt cỏc tập tin vào trong thư mục thớch hợp.Xúa cỏc tập tin khụng cần thiết sau khi cài đặt.

[root@deep /]# cd /var/tmp

[root@deep tmp]# rm -rf portsentry-version/ portsentry-version.tar.gz

Lệnh "rm" sẽ xúa tất cả cỏc tập tin nguồn mà chỳng ta đó dựng để biờn dịch và cài đặt Portsentry. Nú cũng xúa tập tin nộn Portsentry trong thư mục "/var/tmp".

Cấu hỡnh

Cấu hỡnh tập tin "/usr/psionic/portsentry/portsentry.conf" File:

"/usr/psionic/portsentry/portsentry.conf" là tập tin cấu hỡnh chớnh của phần mềm

PortSentry, cú thể định rừ những port nào bạn muốn mở, những địa chỉ IP nào bị từ chối, theo dừi, bỏ qua, và vụ hiệu húa chức năng phản hồi tự động và một số tớnh năng khỏc .... để biết thờm chi tiết hóy đọc tập tin "README.install" trong thư mục nguồn của

PortSentry.Soạn thảo tập tin portsentry.conf (vi /usr/psionic/portsentry.conf), sau đú kiểm tra và thay đổi cỏc chọn lựa. Thay đổi quyền mặc định của tập tin portsentry.conf cho mục đớch an toàn:

[root@deep /]# chmod 600 /usr/psionic/portsentry/portsentry.conf

Cấu hỡnh tập tin "/usr/psionic/portsentry/portsentry.ignore"

Tập tin " /usr/psionic/portsentry/portsentry.ignore" là nơi mà bạn cú thể thờm bất kỳ host nào muốn lờ đi nếu nú kết nới tới một tripwired port. Trong tập tin này phải luụn luụn chứa tối thiểu một địa chỉ của localhost (127.0.0.1) và IP của giao tiếp nội bộ (local interface) (Io). Khụng khuyến cỏo đặt mọi địa chỉ IP trong mạng nội bộ. Soạn thảo tập tin

portsentry.ignore (vi /usr/psionic/portsentry.ignore) và thờm vào địa chỉ IP của bất kỳ host nào muốn lờ đi nếu chỳng kết nối tới một tripwired port:

# Put hosts in here you never want blocked. This includes the IP addresses of all local interfaces on the protected host #(i.e virtual host, mult-home) Keep 127.0.0.1 and 0.0.0.0 to keep people from playing games.

127.0.0.1

Bõy giờ, để an toàn cho vấn đề bảo mật bạn cần đổi quyền trờn tập tin này:

[root@deep /]# chmod 600 /usr/psionic/portsentry/portsentry.ignore

Khởi động PortSentry

Chương trỡnh PortSentru cú thể được cấu hỡnh trong sỏu kiểu hoạt động khỏc nhau, nhưng nhận thấy rằng chỉ một kiểu giao thức cú thể được khởi động tại một thời điểm. Chớnh xỏc hơn, ta cú thể khởi động một kiểu TCP và một kiểu UDP, như vậy cú hai kiểu: kiểu TCP và UDP. Những kiểu cú sẵn là:

• portsentry -tcp (basic port-bound TCP mode) • portsentry -udp (basic port-bound UDP mode) • portsentry -stcp (Stealth TCP scan detection)

• portsentry -atcp (Advanced TCP stealth scan detection) • portsentry -sudp ("Stealth" UDP scan detection)

• portsentry -audp (Advanced "Stealth" UDP scan detection)

Trong phần dưới đõy, chỳng ta sẽ khởi động kiểu TCP theo cơ chế "Advanced TCP stealth scan detection" và kiểu UDP theo cơ chế "Stealth UDP scan detection".

Khởi động kiểu TCP theo cơ chế -atcp:

-atcp - Advanced TCP stealth scan detection mode Với kiểu Advanced TCP stealth scan

detection (kiểu giao thức "-atcp"). Đầu tiờn PortSentry sẽ kiểm tra xem cỏc ports nào bạn đang chạy trờn server, sau đú sẽ loại bỏ việc giỏm sỏt những port này và sẽ bắt đầu xem những port này và sẽ bắt đầu xem những port cũn lại. Điều này rất hữu ớch và cú tỏc động

chống lại một cỏch cực kỳ nhanh đối với cỏc chương trỡnh quột port. Cơ chế này sử dụng rất ớt thời gian của CPU.

Khởi động kiểu UDP theo cơ chế -sudp:

-sudp - "Stealth" UDP scan detection mode Với kiểu giao thức Stealth UDP scan (adsbygoogle = window.adsbygoogle || []).push({});

detection mode "-sudp". Cỏc ports UDP sẽ được liệt kờ và sau đú được giỏm sỏt. • Để khởi động PortSentry theo hai mode trờn, dựng lệnh sau:

[root@deep /]# /usr/psionic/portsentry/portsentry -atcp

[root@deep /]# /usr/psionic/portsentry/portsentry -sudp

Ghi chỳ: Cú thể thờm cỏc dũng lệnh ở trờn vào trong tập tin script " /etc/rc.d/rc.local" và phần mềm PortSentry sẽ tự động được khởi động mỗi lần khởi động hệ thống.

Cỏc files của PortSentry được cài đặt trong cỏc thư mục sau:

• /usr/psionic • /usr/psionic/portsentry • /usr/psionic/portsentry/portsentry.conf • /usr/psionic/portsentry/portsentry.ignore • /usr/psionic/portsentry/portsentry 3.5 Đối phú khi hệ thống bị tấn cụng

Gần đõy, một loạt cỏc vụ tấn cụng nhắm vào cỏc site của những cụng ty lớn như Yahoo!, Buy.com, E-Bay, Amazon và CNN Interactive gõy ra những thiệt hại vụ cựng nghiờm trọng. Những tấn cụng này là dạng tấn cụng gõy ngừng dịch vụ "Denial-Of- Service" mà được thiết kế để làm ngưng hoạt động của một mạng mỏy tớnh hay một

website bằng cỏch gửi liờn tục với số lượng lớn cỏc dữ liệu tới mục tiờu tấn cụng khiến cho hệ thống bị tấn cụng bị ngừng hoạt động, điều này tương tự như hàng trăm người cựng gọi khụng ngừng tới 1 số điện thoại khiến nú liờn tục bị bận. Trong khi khụng thể nào trỏnh được mọi nguy hiểm từ cỏc cuộc tấn cụng, một số bước nờn theo khi ta phỏt hiện ra rằng hệ thống bị tấn cụng.

• Tập hợp 1 nhúm để đối phú với sự tấn cụng:

Một phần của tài liệu Máy chủ Linux (Trang 50 - 55)