Báo cáo đề tài Hardening Linux Computer

28 1.1K 9
Báo cáo đề tài Hardening Linux Computer

Đ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

Báo cáo đề tài Hardening Linux Computer

Trang 1

Đại Học Quốc Gia Tp.Hcm Đại Học Công Nghệ Thông Tin

Báo Cáo Đề Tài:

Hardening Linux Computer

Trang 2

I.Tổng quan Hệ Điều Hành Linux1 Giới thiệu:

Linux là hệ điều hành mở.Mọi người đều có thể có source code của mã nguồn mở, chỉnh sửa, biên dịch theo ý riêng.Mã nguồn mở đã chỉnh sửa có thể dùng cho mục đích riêng hoặc công khai Nếu công khai phải cung cấp đầy đủ source code Linux là hệ điều hành mã nguồn mở, được phân phối theo quy định của GNU GPL Có thể tính phí khi phân phối một sản phẩm có nguồn gốc là mã nguồn mở.

Có thể tính phí khi phân phối một sản phẩm có nguồn gốc là mã nguồn mở Tuy nhiên, khi phân phối phải kèm theo source code Khi người sử dụng đã có một phần mềm mã nguồn mở, họ được tự do chỉnh sửa, chia sẻ, phân phối lại…

Linux được Linus Torvalds viết năm 1991 Được cộng đồng Internet đón nhận Nhiều người tình nguyện tham gia phát triển Linux

Trang 3

• Linux không yêu cầu giao diện đồ họa.

Ngôn ngữ lập trình: C, C++, FORTRAN, Java, Perl, Python, PHP… Dễ dàng quản lý từ xa:

• Dễ dàng remote từ xa bằng commandline hoặc GUI.

2 Nhược điểm :

• Khó sử dụng cho người mới bắt đầu.

• Không có hỗ trợ, không có document đầy đủ • Bug vẫn tồn tại.

• Khi phát sinh lỗi, không phải ai cũng có khả năng hiểu lỗi.

3 Ưu điểm :

• Tính ổn định cao: Linux có thể chạy nhiều năm, không cần reboot

• Unix là hệ điều hành được kế cho multi users Nhiều người cùng chạy một chương trình trên một máy tính vào cùng một thời điểm

• Linux có sự tách biệt giữa GUI và Kernel, GUI là thành phần chiếm nhiều memory nhất, và rất phức tạp, dễ bị lỗi Với Windows, GUI và kernel là không thể tách rời Với Linux, GUI tách biệt với kernel Người sử dụng có thể không sử dụng GUI, hoặc sử dụng những GUI khác nhau.

• Cho phép tùy biến, phù hợp với server, vốn không cần GUI, tiết kiệm được memory, và ít bị lỗi

• Cấu hình của Linux là file text, vì vậy dễ dàng chỉnh sửa theo ý muốn Có thể xóa bỏ hoàn toàn những cấu hình cũ khi không cần, không có một chuẩn cấu hình.

Trang 4

• Mỗi dịch vụ định nghĩa một chuẩn cấu hình riêng Tính ổn định cao và hầu như không có virus Nhiều ý kiến cho rằng ai cũng có thể kiểm soát source code khiến nó không an toàn Tuy nhiên, bí mật không phải là an toàn Code của linux được hàng ngàn programer kiểm tra Nếu có bug, dễ dàng được tìm thấy hơn mã nguồn đóng

II.Tổng quan về hệ thống File1 Tổng quan.

Như đã nói về hệ điều hành thì tập tin chỉ là một chuổi các byte liên tốc như vậy có thể dùng khái niệm tập tin cho các thiết bị và các tính năng khác Điều này làm đơn giản hóa sự tổ chức và trao đổi các dữ liệu, vì có thể thực hiện ghi dử liệu vào tập tin, chuyển dữ liệu lên các thiết bị và trao đổi dữ liệu giữa các tiến trình bằng cách tương tác với nhau Trong tất cả các trường hợp này sử dụng cùng một phương pháp dựa trên ý tưởng chứa các byte Do đó ngoài các tập tin thông thường va thư mục, những thành phần như /boot, /dev… cũng được gọi là tập tin.

 Linux có 4 kiểu File cơ bản: Thư mục(container), File đặc biệt(device, socket,pipe…), liên kết symbolic link(symlinks), file thông

thường(program, text, library,…)  Đường dẫn :

 Đường dẫn tuyệt đối  Đường dẫn tương đối  Đường dẫn đặc biệt  Đĩa cứng và phân vùng :

 Mọi đĩa cứng (disk) đều cần được phân chia partition.

 Mỗi partition được xem như một phân vùng độc lập Khi dữ liệu đầy, partition này không thể “overflow” (lấn chiếm) kích thước của partition khác.

 Có thể cài các hệ điều hành khác nhau lên các partition khác nhau  Sau đó, dùng một một trình quản lý boot loader để quản lý quá trình

boot.

Trang 5

Một trong những mục tiêu của việc phân vùng là để việc bảo mật dữ liệu đạt được kết quả cao hơn trong trường hợp có thảm họa hoặc phân vùng bị hư hại Bằng cách chia đĩa cứng trong phân vùng, dữ liệu có thể được phân vùng và tách biệt nhau Khi có vấn đề xảy ra, chỉ có các dữ liệu trong phân vùng đó trong phân vùng sẽ bị hư hại, trong khi dữ liệu trên những phân vùng khác không bị tổn hại  Phân loại và bố trí phân vùng:

 Phân vùng dữ liệu: /usr, /home, /var ,/opt  Phân vùng trao đổi.

 Điểm lắp.

 Những ổ đĩa IDE sẽ có tên là hdX.

X có giá trị từ [a-z] đại diện cho một ổ đĩa vật lý Vd: hda, hdb…

 Khi được chia partition, partition sẽ có dạng: hdXY  X là kí tự ổ đĩa.

 Y là số thứ tự.

Vd: hda1, hda2, hdb1, hdb2…

 CDROM cũng được hiểu như một ổ đĩa IDE  Ổ đĩa SCSI sẽ có tên là sdX.

Trang 6

2 Tổ Chức Hệ Thống File trên Linux

Trên một máy chủ, hệ thống dữ liệu có xu hướng tách biệt với dữ liệu người dùng Các chương trình mà dịch vụ cung cấp được lưu giữ ở một nơi khác với dữ liệu được xử lý bởi dịch vụ này Phân vùng khác nhau sẽ được tạo ra trên hệ thống như :

 một phân vùng với tất cả các dữ liệu cần thiết để khởi động máy

 một phân vùng chứa dữ liệu cấu hình và các chương trình máy chủ

 một hoặc nhiều phân vùng chứa dữ liệu máy chủ như các bảng cơ sở dữ liệu, thư của người dùng, một kho lưu trữ ftp vv

 một phân vùng với các chương trình người dùng và các ứng dụng

 một hoặc nhiều phân vùng cho các tập tin người dùng cụ thể (thư mục home)

 một hoặc nhiều phân vùng swap (bộ nhớ ảo)

Trang 7

Để thuận tiện, hệ thống tập tin Linux được săp xếp theo dạng tree ,các thư mục con tiếp theo dc ký hiệu = 1 dấu (/)

Dưới đây là một số phân vùng được sử dụng trong hệ thống File Linux : • /swap: virtual memory

Trang 8

• /bin: lệnh quan trọng, chứa hầu hết các lệnh người dùng • /boot: file cấu hình boot loader

• /dev: chứa các tập tin thiết bị

• /etc: file cấu hình hệ thống cục bộ theo máy • /home: chứa dữ liệu tập tin của users

• /lib: file thư viện quan trọng, chứa các tập tin thư viện người dùng • /man :chứa các tài liệu trực tuyến

• /include :chứa các tập tin include chuẩn của C

• /var/log : các tập tin lưu giữ thông tin làm việc hiệ hành của người dùng

III.QUẢN LÝ TẬP TIN

Trang 9

 Trong hệ điều hành Linux chúng ta có thể dùng command line để thao tác tạo, sao chép, di chuyển, đổi tên, xóa hoặc xem nội dung của thư mục.

 Tập lệnh cơ bản :

Passwd (đổi mật khẩu đăng nhập), pwd(in thư mục làm việc hiên hành), cd(chuyển đổi thư mục làm việc), ls(liệt kê nội dung thư mục) …

Ngoài ra để thuận tiện trong việc quản lý file chúng ta có thể sử dụng những tập lệnh để quản lý thư mục như:

 Mkdir: tạo thư mục  Rmdir: xóa thư mục rỗng  Touch,cat: tạo file.

 Mount là biến một partition, một thiết bị (CD-ROM, USB…) thành một thư mục trên cây thư mục Thư mục này được gọi là mount-point.

Xem nội dung của partition vừa được mount bằng xem nội dung của thư mục mount-point

Ví dụ : Tạo một thư mục /mnt/cdrom Thư mục này dùng làm mount-point cho ổ đĩa CD-ROM

Trang 10

IV.User and File system Security Administration

Users được định nghĩa trong một hệ thống để xác định “ai? được quyền dùng cái gì?” trong hệ thống đó.

Với Linux, mỗi user có một định danh duy nhất, gọi là UID (User ID) a 0 – 99: user có quyền quản trị.

b > 99: user khác >= 500: không phải user hệ thống c => UID có khả năng sử dụng lại???

Mỗi user thuộc ít nhất một group Mỗi group cũng có một định danh duy nhất là

 Những file định nghĩa thông tin users:

 /etc/passwd: chứa thông tin user login, password mã hóa, UID, GID, home directory, và login shell Mỗi dòng là thông tin của một user.

 /etc/shadow: chứa thông tin password mã hóa, thời gian sử dụng password, thời gian phải thay đổi password…

 /etc/group: chứa thông tin group  File /etc/passwd

Trang 11

 File /etc/shadow

 File /etc/group

 Quản lý bằng command line • useradd: tạo user.

• usermod: chỉnh sửa thông tin user • userdel: xóa user.

• groupadd: tạo group • groupdel: xóa group.

• groupmod: chỉnh sửa thông tin group  Quản lý bằng giao diện đồ họa

 Tất cả file và thư mục thuộc sở hữu user tạo ra chúng  Mỗi file trong linux được gán quyền theo ba lớp user sau:

Trang 12

• User (owner) • Group.

• Others(everyone)

• Xem quyền truy cập : ls -l  Biểu diễn quyền truy cập

user | group | others r w x r w x r w x  Quyền trong linux được phân chia như sau:

 Quyền đọc: r (read)  Quyền ghi: w (write)  Quyền thực thi: x (excute)  Thay Đổi Quyền

Lệnh chmod : cho phép thay đổi quyền trên tập tin của người dùng • Dùng các ký hiệu tượng trưng

 Cú pháp : chmod{a,u,g,o}{+,-,=}{r,w,x}<file name>  Ví dụ : $chmod +x jdk-6u24-linux-i586.bin

• Dùng thông số tuyệt đối

 Cú pháp : chmod <mode> <file name>  Ví dụ : $chmod 777 *

 Thay Đổi Quyền và Một Số Lệnh Hữu Dụng  Thay đổi người hoặc nhóm sở hữu tập tin

Trang 13

 Xử lý văn bản text:

Head, tail, cut, sort, uniq, tr, tac, wc  Thao tác trên hệ thống file:

File, dd, du, df, sync, find, grep.

Trang 14

Cấu hình mặc định:

 SetUID: program nào được set SUID, khi thực thi sẽ được sở hữu bởi owner của program đó, bất kể user nào gọi thực thi program này.

 SetGID: hiện thực như SUID, nhưng áp dụng cho file group owner  Sticky bit: chỉ cho phép owner, hoặc root được quyền delete file.

 Khi dùng lệnh useradd không có option kèm theo để tạo user, các thuộc tính của user sẽ được tạo theo các cấu hình mặc định.

 Những file định nghĩa cấu hình mặc định:  /etc/default/useradd

 /etc/skel  /etc/login.defs

Trang 15

 Nếu muốn thay đổi cấu hình mặc định, thay đổi trực tiếp trong những file này  /etc/default/useradd: những giá trị mặc định cho việc tạo account.

 /etc/skel: thư mục chứa nội dung mặc định sẽ tạo trong home directory của users  /etc/login.defs: những cấu hình mặc định cho shadow password.

 /etc/default/useradd: những giá trị mặc định cho việc tạo account.

 /etc/skel: thư mục chứa nội dung mặc định sẽ tạo trong home directory của users  /etc/login.defs: những cấu hình mặc định cho shadow password.

V.Cấu hình firewall1 Giới thiệu

 Filewall là thành phần quan trọng nhất để chống lại các cuộc tấn công từ bên ngoài.

 Một firewall có thể giúp bạn phòng thủ theo ba cách chính • Kiểm soát incoming traffic.

• Kiểm soát outgoing traffic.

• Xử lý các traffic đáng ngờ, có dấu hiệu nguy hiểm

2 Iptables

 Iptables là một tường lửa lọc gói có trạng thái  Được tích hợp sẵn trong nhân Linux

 Gồm 2 phần

• Netfilter: ở trong nhân Linux Xử lí các rule.

• Iptables: ở ngoài, giao tiếp với người dùng nhận các rule và chuyển cho Netfilter xử lý.

 Các tính năng.

• Tích hợp tốt với nhân Linux • Có khả năng phân tích gói • Lọc gói.

• NAT

• Ngăn chặn một số cơ chế tấn công DoS

 Là một bảng chứa tập hợp các rule cấu hình để lọc các gói tin  Các rule được chia ra thành từng nhóm nhỏ gọi là chains  Có ba loại bảng trong iptables

Trang 16

• Mangle: chịu trách nhiệm biến đổi quality of service bits trong TCP header Thông thường loại table này được ứng dụng trong SOHO (Small

Office/Home Office).

• Filter : chịu trách nhiệm thiết lập bộ lọc packet (packet filtering), có ba loại built-in chains được mô tả để thực hiện các chính sách về firewall (firewall policy rules).

- 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

• NAT : thực thi chức năng NAT (Network Address Translation), cung cấp hai loại built-in chains sau đây:

- Pre-routing chain : NAT từ ngoài vào trong Quá trình NAT sẽ thực hiện trước khi khi thực thi cơ chế định tuyến Đ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-to-one, được gọi là Source NAT hay SNAT

3 Target và Jumps

 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à cơ chế hoạt động trong iptables, dùng để nhận diện và kiểm tra packet Các target được xây dựng sẵn trong iptables như:

• ACCEPT: iptables chấp nhận chuyển data đến đích • DROP: iptables khóa các packet

• LOG: thông tin của packet sẽ gởi vào syslog daemon iptables tiếp tục xử lý rule tiếp theo trong iptables Nếu rule cuối cùng không match thì sẽ drop

packet Với tùy chọn thông dụng là log-prefix=”string”, tức iptables sẽ

ghi nhận lại những message bắt đầu bằng chuỗi “string”

• REJECT: ngăn chặn packet và gởi thông báo cho sender Với tùy chọn

thông dụng là reject-with qualifier , tức qualifier chỉ định loại reject message sẽ được gởi lại cho người gởi Các loại qualifer sau:

Trang 17

icmp-port-unreachable (default), icmp-net-icmp-port-unreachable, icmp-host-icmp-port-unreachable,

• MASQUERADING: được sử dụng để thực hiện kỹ thuật NAT (giả mạo địa

chỉ nguồn với địa chỉ của interface của firewall) Tùy chọn là [ to-ports <port>[-<port>]], chỉ định dãy port nguồn sẽ ánh xạ với dãy port ban

đầu

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

 Iptables hoạt động giống như một ACL.

 Kiểm tra tất cả các gói khi đi qua iptables host.

 Dựa vào các rule được cấu hình trong iptable để xử lí các gói này.

 Quá trình xử lí so sánh từ rule đầu tiên đến rule cuối cùng Nếu match rule nào thì sẽ xử lí gói tin đó và không kiểm tra các rule khác nữa • chỉ đinh loại giao thức: -p

– Vd: -p tcp, -p udp hoặc -p ! udp…

 Các tùy chọn để thao tác với chain • Tạo chain mới: iptables -N

Trang 18

• Xóa hết các rule tự định nghĩa trong chain: iptables -X • Thiết lập policy: iptables -P

– Vd : iptables -P INPUT ACCEPT • Liệt kê các rule có trong chain: iptables -L

• Xóa các rule có trong chain (flush chain): iptables -F • reset bộ đếm packet về 0: iptables -Z

 Các tùy chọn để thao tác với rule • Thêm rule: -A (append) • Xóa rule: -D (delete) • Thay thế rule: -R (replace) • Chèn thêm rule: -I (insert)

# iptables -A INPUT -s 0/0 -i eth0 -d 172.28.24.199 -p tcp -j ACCEPT

• Ví dụ 2: Firewall chấp nhận TCP packet được định tuyến khi nó đi vào interface eth0 và đi ra interface eth1 để đến đích là 172.28.2.2 với port nguồn bắt đầu 1024->65535 và port đích là 8080

# iptables -A INPUT -s 0/0 -i eth0 -o eth1 -d 172.28.2.2 -p tcp –sport 1024:65535 –dport 8080 -j ACCEPT

Trang 19

• Ví dụ 3: Firewall cho phép gởi icmp echo-request và icmp echo-reply

# iptables -A INPUT -p icmp –icmp-type echo-request -j ACCEPT# iptables -A OUTPUT -p icmp –icmp-type echo-reply -j ACCEPT

• Ví dụ 4: Firewall giới hạn số gói tin icmp echo-request đi vào trên một đơn vị thời gian.(ngăn chặn tấn công DoS)

# iptables -A INPUT-i eth0 -p icmp –icmp-type echo-request -m limit -limit 5/s -j ACCEPT

 Sử dụng chain tự định nghĩa

• Thay vì sử dụng các chain đã được xây dựng trong iptables, ta có thể sử dụng User Defined chains để định nghĩa một chain name mô tả cho tất cả protocol-type cho packet Ta có thể dùng User Defined chains thay thế chain dài dòng bằng cách sử dụng chain chính chỉ đến nhiều chain con • Tạo mới chain.

#ptables -N NEW_CHAIN

• Xóa xóa tất cả chain tự định nghĩa.

#ptables -X

6 Lưu cấu hình iptables

 Lệnh service iptables save để lưu trữ cấu hình iptables trong file

/etc/sysconfig/iptables Khi ta khởi động lại thì chương trình iptables-restore sẽ

đọc lại file script này và kích hoạt lại thông tin cấu hình Định dạng của file như sau:

Trang 20

# Generated by iptables-save v1.2.8 on Thu Nov 9 15:47:54 2006

# Completed on Thu Nov 9 15:47:54 2006

# Generated by iptables-save v1.2.8 on Thu Nov 9 15:47:54 2006*filter

:INPUT DROP [4011:414080]:FORWARD ACCEPT [552:57100]:OUTPUT ACCEPT [393:43195]

-A INPUT -m state state RELATED,ESTABLISHED -j ACCEPT -A INPUT -i ! eth0 -m state state NEW -j ACCEPT

-A FORWARD -d 192.168.1.3 -i eth0 -p tcp -m tcp dport 80 -j ACCEPT COMMIT

# Completed on Thu Nov 9 15:47:54 2006

# Generated by iptables-save v1.2.8 on Thu Nov 9 15:47:54 2006

Ngày đăng: 14/09/2012, 09:14

Hình ảnh liên quan

• một hoặc nhiều phân vùng chứa dữ liệu máy chủ như các bảng cơ sở dữ liệu, thư của người dùng, một kho lưu trữ ftp vv - Báo cáo đề tài Hardening Linux Computer

m.

ột hoặc nhiều phân vùng chứa dữ liệu máy chủ như các bảng cơ sở dữ liệu, thư của người dùng, một kho lưu trữ ftp vv Xem tại trang 6 của tài liệu.
• /etc: file cấu hình hệ thống cục bộ theo má y. • /home: chứa dữ liệu tập tin của users - Báo cáo đề tài Hardening Linux Computer

etc.

file cấu hình hệ thống cục bộ theo má y. • /home: chứa dữ liệu tập tin của users Xem tại trang 8 của tài liệu.
Cấu hình mặc định: - Báo cáo đề tài Hardening Linux Computer

u.

hình mặc định: Xem tại trang 16 của tài liệu.
 Từ các tham số trên ta có thể cấu hình các rule cho firewall. Các ví dụ: - Báo cáo đề tài Hardening Linux Computer

c.

ác tham số trên ta có thể cấu hình các rule cho firewall. Các ví dụ: Xem tại trang 22 của tài liệu.
 Cấu hình demo. - Báo cáo đề tài Hardening Linux Computer

u.

hình demo Xem tại trang 26 của tài liệu.

Từ khóa liên quan

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

Tài liệu liên quan