isas semina

38
NHÓM 3: Đỗ Xuân Hoàng Đào Đại Dương HỌC VIỆN NIIT ICT-HÀ NỘI SECURITY OF LINUX

Upload: hoangtti22

Post on 14-Dec-2014

542 views

Category:

Documents


10 download

DESCRIPTION

Security

TRANSCRIPT

Page 1: Isas semina

NHÓM 3:Đỗ Xuân HoàngĐào Đại Dương

HỌC VIỆN NIIT ICT-HÀ NỘI

SECURITY OF LINUX

Page 2: Isas semina

SECURITY OF LINUX

M C L CỤ ỤI. Mở đầu................................................................................................................4

1. Giới thiệu......................................................................................................4

2. Định nghĩa các thuật ngữ, từ viết tắt..........................................................4

3. Tài liệu tham khảo.......................................................................................4

II. Nội dung trình bày............................................................................................4

1. Firewalls........................................................................................................4

1.1. Tổng quan..............................................................................................4

1.2. Mục đích sử dụng..................................................................................5

1.3. Các loại firewall.....................................................................................5

1.4. Cách cài đặt.........................................................................................10

2. Host security...............................................................................................14

3. Server security............................................................................................16

4. Cryptography.............................................................................................16

4.1. Mật khẩu..............................................................................................16

4.2. PGP và các mã hóa công khai............................................................16

4.3. SSL, S-HTTP, HTTPS, S/MIME.......................................................17

4.4. IPSec và triển khai mã hóa................................................................17

4.5. SSH.......................................................................................................18

4.6. Cryptographic IP (CIPE)...................................................................25

4.7. Mật khẩu bóng tối...............................................................................25

4.8. Sử dụng CFS, các hệ thống tập tin mã hóa.......................................25

5. Network security........................................................................................26

5.1. Bảo mật theo máy chủ (Host Based Security)..................................26

5.2. Bảo mật theo cổng (Port Based Security).........................................27

Trang 2

Page 3: Isas semina

SECURITY OF LINUX

I. Mở đầu1. Giới thiệu

Hiện nay, trên môi trường máy chủ Linux ngày càng chiếm một vị trí quan trọng. Nguyên nhân khiến Linux trở thành một đối thủ tiền năng của hệ điều hành Microsoft Window là do tính ổn định, độ linh hoạt và khả năng chịu tải lớn: Đây là những đặc điểm quan trọng hàng đầu của một hệ thống máy phục vụ.

Tính bảo mật tốt cũng là một trong những đặc điểm nổi bật của Linux. Tuy nhiên, để một hệ thống Linux có khả năng chống lại các cuộc tấn công người quản trị phải nắm được một số kỹ năng nhất định. Trong bài viết này nhóm chúng tôi xin giới thiệu một số cơ chế bảo mật của Linux nhằm nâng cao tính an toàn cho hệ thống.

2. Định nghĩa các thuật ngữ, từ viết tắt3. Tài liệu tham khảo

[1]- http://www.aboutdebian.com/security.htm

[2]- Giáo trình Quản trị hệ thống Linux, LPI, năm 2006

[3]- http://www.linux.ie/articles/cryptography/img25.php

[4]- Maximum Linux Security second edition, June 21, 2001

[5]- http://www.linuxsecurity.com/docs/SecurityAdminGuide/SecurityAdminGuide-9.html

II. Nội dung trình bày1. Firewalls

1.1. Tổng quan

Để bảo vệ từ xa một máy tính hay cho cả một mạng nội bộ (Intranet), người ta thường dùng các hệ thống đặc biệt gọi là tường lửa (Firewall). Chức năng của tường lửa là ngăn chặn các truy nhập trái phép (theo danh sách truy nhập đó xỏc định trước) và thậm chí có thể lọc các gói tin mà ta không muốn gửi đi hoặc nhận vào với một lý do nào đó. Phương thức bảo vệ này được dùng nhiều trong môi trường liên mạng Internet.

Mọi người thường nghĩ firewall cung cấp an toàn tuyệt đối, nhưng họ sai. Trong hầu hết trường hợp cấu hình firewall sai sẽ giảm độ an toàn hơn cả không cài đặt firewall. Firewall cũng là một phần mềm và nên được coi như một phần mềm bình thường như mọi phần mềm khác, vì nó cũng có thể gặp lỗi như thường.

Trang 3

Page 4: Isas semina

SECURITY OF LINUX

Vậy hãy suy nghĩ trước khi cài đặt firewall! Bạn có thật sự cần không? Nếu bạn cần nghĩ mình cần, bạn nên viết ra những quy tắc hoặt động của nó, loại firewall nào, và thao tác với nó như thế nào.

Trên hết hiểu biết về firewall sẽ giúp bạn trở nên bảo mật tốt cho toàn bộ máy tính,mạng cơ sở hay là cả 1 server.

1.2. Mục đích sử dụng Bảo vệ người dùng khỏi worm và những kẻ tấn công Giữ người dùng ở trong phạm vi kiểm soát

1.3. Các loại firewall

Có ba loại firewall:

Packet-filtering router Curcuit-Level Gateway Application-Level Gateway

Cách thức hoạt động ưu nhược điểm của từng loại tường lửa:

Packet-filtering router:

Packet-filtering router áp dụng một bộ quy tắc để mỗi gói tin IP vào và ra và sau đó là chuyển đi hay loại bỏ các gói tin. Router thường được cấu hình để lọc các gói tin theo cả hai hướng ( từ trong và ngoài vào mạng nội bộ). Quy tắc lọc dựa trên các thông tin chứa trong một gói tin mạng ( packet):

Địa chỉ IP nguồn (Source IP address): Địa chỉ IP của hệ thống là nguồn gốc của các gói tin (sender). Ví dụ: 192.178.1.1

Địa chỉ IP đích ( Destination IP address): Địa chỉ IP của hệ thống mà gói tin IP đang cần được chuyển tới. Ví dụ 192.168.1.2

Địa chỉ nguồn và đích của tầng giao vận: gói tin là TCP hay UDP, port number, xác định các ứng dụng như SNMP hay TELNET.

Trang 4

Page 5: Isas semina

SECURITY OF LINUX

IP protocol field: Xác định giao thức vận chuyển.

Interface : Đối với một router có nhiều port, các gói tin sẽ đến từ interface nào và đi đến interface nào.

Packet-filtering thường được thiết lập là một danh sách các quy tắc dựa trên phù hởp cho các trường trong IP header hoặc TCP header. Nếu có tương ứng với một trong các quy tắc, quy tắc này sẽ được gọi để xác định xem sẽ chuyển tiếp hay loại bỏ các gói tin. Nếy không phù hợp với bất kỳ một quy tắc nào thì hành động mặc định sẽ được thực hiện. Hai hành động được mặc định đó là:

Default = discard: gói tin sẽ bị cấm và bị loại bỏ.

Default = forward: gói tin được cho phép đi qua.

Tuy nhiên, default là discart thường được dùng hơn. Vì như vậy, ban đầu, mọi thứ đều bị chặn và các dịch vụ phải được thêm vào trong từng trường hợp cụ thể. Chính sách này rõ ràng hơn cho người dùng, những người mà ko am hiểu nhiều lắm về firewall( cấm hết là xong, cho phép thằng nào thì mở lối thoát cho nó). Còn cách thứ hai thì liên quan đến vấn đề bảo mật nhiều hơn, đòi hỏi người quản trị phải thường xuyên kiểm tra để có phản ứng với những kiểu đe dọa mới ( sớm bạc đầu

Mình thấy cái này thì gần như cài đặt ACLs.

Ưu điểm :

Đơn giản của nó và packet-filtering thường là trong suốt cho người sử dụng và rất nhanh.

Có thể cảnh báo trước các cuột tấn công (vd, phát hiện quét cổng). Ngăn cản SYN attack.

Hạn chế :

Thông tin địa chỉ trong gói có thể bị làm giả IP (hoặc ta nói là spoof) từ phía người gửi.

Dữ liệu hoặc request trong gói được phép có thể chứa dữ liệu không mong muốn mà kẻ tấn công có thể dùng để khai thác các lỗi đã biết của các dịch vụ nằm trên hoặc nằm sau firewall.Thường là nguồn gốc của lỗi.

Tường lửa loại này không thể kiểm tra dữ liệu lớp trên, không thể ngăn chặn các cuộc tấn công có sử dụng các lỗ hổng ứng dụng cụ thể. Ví dụ, một bức tường lửa loại này không thể ngăn chặn các lệnh ứng dụng cụ thể, nếu nó cho phép một ứng dụng nhất định, tất cả các chức năng có sẵn trong ứng dụng đó sẽ được cho phép.

Trang 5

Page 6: Isas semina

SECURITY OF LINUX

Do các thông tin có sẵn hạn chế cho tường lửa, hiện tại thì chức năng đăng nhập vào tường lửa bị hạn chế. Packet-filtering lọc các bản log thông thường chứa các thông tin tương tự được sử dụng để đưa ra quyết định kiểm soát truy cập ( địa chỉ nguồn, địa chỉ đích, và loại hình lưu lượng).

Hầu hết các tường lửa loại này không hỗ trợ các chương trình xác thực người dùng cao cấp. Một lần nữa hạn chế này chủ yếu là do thiếu chức năng lớp trên của tường lửa.

Chúng thường bị tấn công và khai thác bằng cách tận dụng các problem của các đặc điểm kỹ thuật TCp/IP và chồng giao thức, chẳng hạn như giả mạo địa chỉ lớp network. Nhiều tường lửa packet-filtering không thể phát hiện một gói tin mà trong đó các thông tin của lớp 3 đã bị thay đổi. Các cuộc tấn công giả mạo thường được sử dụng bởi những kẻ xâm nhập để vượt qua kiểm soát an ninh được thực hiện bên trong tường lửa.

Cuối cùng, do số lượng nhỏ của các biến được sử dụng trong quyết định kiểm soát truy cập, packet-filtering dễ bị vi phạm an ninh gây ra bởi các cấu hình không phù hợp. Nói cách khác, rất dễ cấu hình tường lửa cho phép các loại lưu lượng, nguồn và đích đáng lẽ nên bị từ loại bỏ dựa trên chính sách đặt ra của tổ chức.

Từ đó, có một số cách tấn công có thể được thực hiện trên các tường lửa packet-filtering và một số biện pháp đối phó với chúng:

IP address spoofing ( Giả mạo địa chỉ IP): Kẻ xâm nhập truyền các gói dữ liệu từ bên ngoài với địa chỉ nguồn là địa chỉ IP của một máy nội bộ. Kẻ tấn công hy vọng rằng việc sử dụng một địa chỉ giả mạo sẽ co phép xâm nhập vào các hệ thống chỉ sử dụng bảo mật đơn giản địa chỉ nguồn, trong đó, các gói tin từ máy nội bộ sẽ đực chấp nhận. Biện pháp đối phó là loại bỏ các gói tin với địa chỉ nguồn ở nội bộ nếu như gói tin này đến từ interface bên ngoài.

Source routing attack: Các trạm nguồn quy định các đường đi mà một gói tin sẽ được đưa vào khi đi trên mạng Internet, với mong muốn rằng điều này sẽ bỏ qua các biện pháp an ninh mà không phân tích các thông tin định tuyến nguồn. Biện pháp đối phó là để lựa chọn loại bỏ tất cả các gói dữ liệu sử dụng tùy chọn này.

Tiny fragment attack: Kẻ xâm nhập loại này sử dụng tùy chọn cho phép phân mảnh của gói tin IP để tạo ra các mảnh cực kỳ nhỏ và ép các TCP header vào một đoạn gói tin riêng biệt. Tấn công loại này được thiết kế để phá vỡ các quy tắc lọc phụ thuộc vào thông tin tiêu đề TCP. Thông thường, một packet-filtering sẽ đưa ra quyết định lọc trên đoạn đầu tiên của một gói. Tất cả các đoạn tiếp theo của gói tin được lọc ra chỉ duy nhất trên cơ sở đó là một phần của gói có đoạn đầu tiên bị loại bỏ. Kẻ tấn công hy vọng rằng các router chỉ lọc xem xét đoạn đầu tiên và các đoạn còn lại

Trang 6

Page 7: Isas semina

SECURITY OF LINUX

được đưa qua. Cách chống lại tấn công loại này là nguyên tắc thực thi đoạn đầu tiên của một gói tin phải có một số xác định trước tối thiểu của TCP header. Nếu đoạn đầu tiên bị loại bỏ, packet-filtering có thể ghi nhớ các gói tin và loại bỏ tất cả các đoạn tiếp theo.

Mọi lưu thông mạng đều được gửi dạng packet. Một lượng lớn lưu thông được chia ra thành những phần nhỏ dễ xử lý và được tập hợp lại khi đến đích. Packet header của mọi packet chứa thông tin cách đến và nơi đến. Và thông tin này chính xác là những thông tin firewall packing filtering dùng. Filter dựa trên.

Application-Level Gateway :

Application-Level Gateway, còn được gọi là một proxy server, hoạt động như một chuyển tiếp của các lưu lượng lớp ứng dụng. Người sử dụng sẽ liên lạc với gateway sử dụng các ứng dụng TCP/IP như TELNET hay FTP và gateway sẽ hỏi user tên của máy chủ từ xa sẽ được truy cập. Khi user đáp lại và cung cấp một ID người dùng hợp lệ và xác thực thông tin, gateway sẽ liên lạc đến cổng ứng dụng tương ứng trên máy chủ từ xa và chuyển tiếp các đoạn TCP chứa các dữ liệu giữa hai thiết bị đầu cuối này.Nếu các cổng không thực hiện các proxy code cho một ứng dụng cụ thể, dịch vụ không được hỗ trợ và không thể được chuyển tiếp qua tường lửa. Hơn nữa, gateway có thể được cấu hình để chỉ hỗ trợ tính năng cụ thể của một ứng dụng mà người quản trị xem xét chấp nhận được trong khi từ chối tất cả các tính năng khác.

Application-Level gateway có xu hướng an toàn hơn packet-filtering router. Thay vì cố gắng để đối phó với hàng loạt kết hợp có thể có từ việc cấm và cho phép ở tầng TCP/IP, application-level gateway chỉ cần rà soát lại một vài ứng dụng cho phép. Ngoài ra, nó rất dễ dàng cho ghi lại và theo dõi tất cả các lưu lượng đến ở tầng ứng dụng.

Trang 7

Page 8: Isas semina

SECURITY OF LINUX

Một nhược điểm chính của loại này là chi phí xử lý bổ sung trên mỗi kết nối. Trong thực tế, có hai kết nối ghép giữa các người dùng đầu cuối, với các cổng ở điểm kết nối và gateway phải kiểm tra lưu lượng trên cả hai chiều.

Curcuit-Level Gateway :

Dạng thứ 3 của firewall đó là Circuit-level gateway. Nó có thể là một hệ thống độc lập hoặc có thể là một hoạt động chuyên biết được thực hiện bởi một application-level gateway cho các ứng dụng nhất định. Circuit-level gateway không cho phép một kết nối TCP end-to-end mà thay vào đó, gateway sẽ thiết lập hai kết nối TCP, một là giữa nó và TCP user bên torng và một giữa nó và TCP user bên ngoài. Khi hai kết nối này được thiết lập, gateway sẽ chuyển tiếp các TCP segment từ đầu cuối này đến đầu cuối khác mà không kiểm tra nội dung các segment này. Các chức năng bảo mật bao gồm vệc xác định mà kết nối sẽ được cho phép.

Một điển hình của Circuit-level gateway là một tình huống mà trong đó người quản trị hệ thống tin tưởng các user nội bộ. Gateway có thể được cấu hình để hỗ trợ application-level hay dịch vụ proxy cho các kế nối bên trong và chức năng circuit-level cho các kế nối bên ngoài. Trong trường hợp này , gateway có thể phải chịu các chi phí kiểm tra các incoming data cho các chức năng bị cấm nhưng không chịu chi phí của outgoing data.

Một ví dụ nữa về việc thực hiện của circuit-level gateway là gói SOCKS; phiên bản 5 của SOCKS được địng nghĩa trong RFC 1928. RFC định nghĩa SOCKS như sau:

Các giao thức được thiết kế để cung cấp một framework cho các ứng dụng client-server trong cả TCP và UDP để thuận tiện và an toàn bằng việc sử dụng các dịch vụ của network firewall. Giao thức được khải niệm nư một “shim-layer” giửa các lớp ứng dụng và lớp vận chuyển, và như vậy không cung cấp dịch vụ ở lớp network, ví dụ như không forwarding các gói ICMP.

Trang 8

Page 9: Isas semina

SECURITY OF LINUX

SOCKS bao gồm các thành phần sau đây:

* Máy chủ SOCKS, chạy trên tường lửa nền UNIX.

* Thư viện SOCKS client, chạy trên các host bên trong được bảo vệ bởi tường lửa.

* Các phiên bản SOCKS của rất nhiều các chương trình client như FTP và TELNET. Việc hiện thực giao thức trong SOCKS thường liên quan đến việc biên dịch lại hoặc tái liên kết của các ứng dụng client dựa trên TCP (TCP-based client) để sử dụng các dịch vụ đóng gói tương ứng trong thư viện SOCKS.

Khi một TCP-based client muốn thiết lập một kết nối đến một đối tượng có thể truy cập chỉ thông qua một tường lửa, nó phải mở một kết nối TCP đến port SOCKS tương ứng trên hệ thống SOCKS server. Dịch vụ SOCKS được dùng trên TCP port 1080. Nếu yêu cầu kết nối thành công, client sẽ bắt đầu một cuộc thương lượng về các phương pháp xác thực được lựa chọn và gửi một yêu cầu được chuyển tiếp. SOCKS server sẽ xem xét các yêu cầu và sau đó cho phép thiết lập kết nối hoặc từ chối nó. Các gói UDP cũng được xử lý tương tự. Về bản chất, một kết nối TCP được mở ra để xác thực người dùng để gửi và nhận các UDP segment, các UDP segement sẽ dược chuyển tiếp khi kết nối TCP được mở.

1.4. Cách cài đặt

Có 3 cách cài đặt chính cho 1 tường lửa :

Trang 9

Page 10: Isas semina

SECURITY OF LINUX

Dual homed host

Firewall kiến trúc kiểu Dual-homed host được xây dựng dựa trên máy tính dual-homed host. Một máy tính được gọi là dual-homed host nếu nó có ít nhất hai network interface, có nghĩa là máy đó có gắn hai card mạng giao tiếp với hai mạng khác nhau và như thế máy tính này đóng vai trò là Router mềm. Kiến trúc dual-homed host rất đơn giản. Dual-homed host ở giữa, một bên được kết nối với Internet và bên còn lại nối với mạng nội bộ (LAN).

Dual-homed host chỉ có thể cung cấp các dịch vụ bằng cách ủy quyền (proxy) chúng hoặc cho phép users đăng nhập trực tiếp vào dual-homed host. Mọi giao tiếp từ một host trong mạng nội bộ và host bên ngoài đều bị cấm, dual-homed host là nơi giao tiếp duy nhất

Trang 10

Page 11: Isas semina

SECURITY OF LINUX

Screenedhost:

Screened Host có cấu trúc ngược lại với cấu trúc Dual-homed host. Kiến trúc này cung cấp các dịch vụ từ một host bên trong mạng nội bộ, dùng một Router tách rời với mạng bên ngoài. Trong kiểu kiến trúc này, bảo mật chính là phương pháp Packet Filtering. Bastion host được đặt bên trong mạng nội bộ. Packet Filtering được cài trên Router. Theo cách này, Bastion host là hệ thống duy nhất trong mạng nội bộ mà những host trên Internet có thể kết nối tới.Mặc dù vậy, chỉ những kiểu kết nối phù hợp (được thiết lập trong Bastion host) mới được cho phép kết nối. Bất kỳ một hệ thống bên ngoài nào cố gắng truy cập vào hệ thống hoặc các dịch vụ bên trong đều phải kết nối tới host này. Vì thế Bastion host là host cần phải được duy trì ở chế độ bảo mật cao.Packet filtering cũng cho phép bastion host có thể mở kết nối ra bên ngoài. Cấu hình của packet filtering trên screening router như sau:

Cho phép tất cả các host bên trong mở kết nối tới host bên ngoài thông qua một số dịch vụ cố định.

Không cho phép tất cả các kết nối từ các host bên trong (cấm những host này sử dụng dịch proxy thông qua bastion host).

Bạn có thể kết hợp nhiều lối vào cho những dịch vụ khác nhau:

Một số dịch vụ được phép đi vào trực tiếp qua packet filtering. Một số dịch vụ khác thì chỉ được phép đi vào gián tiếp qua proxy.

Bởi vì kiến trúc này cho phép các packet đi từ bên ngoài vào mạng bên trong, nó dường như là nguy hiểm hơn kiến trúc Dual-homed host, vì thế nó được thiết kế để không một packet nào có thể tới được mạng bên trong. Tuy nhiên trên thực tế thì kiến trúc dual-homed host đôi khi cũng có lỗi mà cho phép

Trang 11

Page 12: Isas semina

SECURITY OF LINUX

các packet thật sự đi từ bên ngoài vào bên trong (bởi vì những lỗi này hoàn toàn không biết trước, nó hầu như không được bảo vệ để chống lại những kiểu tấn công này). Hơn nữa, kiến trúc dual-homed host thì dễ dàng bảo vệ Router (là máy cung cấp rất ít các dịch vụ) hơn là bảo vệ các host bên trong mạng.Xét về toàn diện thì kiến trúc Screened host cung cấp độ tin cậy cao hơn và an toàn hơn kiến trúc Dual-homed.

So sánh với một số kiến trúc khác, chẳng hạn như kiến trúc Screened subnet thì kiến trúc Screened host có một số bất lợi. Bất lợi chính là nếu kẻ tấn công tìm cách xâm nhập Bastion Host thì không có cách nào để ngăn tách giữa Bastion Host và các host còn lại bên trong mạng nội bộ. Router cũng có một số điểm yếu là nếu Router bị tổn thương, toàn bộ mạng sẽ bị tấn công. Vì lý do này mà Sceened subnet trở thành kiến trúc phổ biến nhất.

Screened Subnet:

Nhằm tăng cường khả năng bảo vệ mạng nội bộ, thực hiện chiến lược phòng thủ theo chiều sâu, tăng cường sự an toàn cho bastion host, tách bastion host khỏi các host khác, phần nào tránh lây lan một khi bastion host bị tổn thương, người ta đưa ra kiến trúc firewall có tên là Sreened Subnet.

Kiến trúc Screened subnet dẫn xuất từ kiến trúc screened host bằng cách thêm vào phần an toàn: mạng ngoại vi (perimeter network) nhằm cô lập mạng nội bộ ra khỏi mạng bên ngoài, tách bastionhost ra khỏi các host thông thường khác. Kiểu screened subnet đơn giản bao gồm hai screened router:

Trang 12

Page 13: Isas semina

SECURITY OF LINUX

Router ngoài (External router còn gọi là access router): nằm giữa mạng ngoại vi và mạng ngoài có chức năng bảo vệ cho mạng ngoại vi (bastion host, interior router). Nó cho phép hầu hết những gì outbound từ mạng ngoại vi. Một số qui tắc packet filtering đặc biệt được cài đặt ở mức cần thiết đủ để bảo vệ bastion host và interior router vì bastion host còn là host được cài đặt an toàn ở mức cao. Ngoài các qui tắc đó, các qui tắc khác cần giống nhau giữa hai Router.

Interior Router (còn gọi là choke router): nằm giữa mạng ngoại vi và mạng nội bộ, nhằm bảo vệ mạng nội bộ trước khi ra ngoài và mạng ngoại vi. Nó không thực hiện hết các qui tắc packet filtering của toàn bộ firewall. Các dịch vụ mà interior router cho phép giữa bastion host và mạng nội bộ, giữa bên ngoài và mạng nội bộ không nhất thiết phải giống nhau. Giới hạn dịch vụ giữa bastion host và mạng nội bộ nhằm giảm số lượng máy (số lượng dịch vụ trên các máy này) có thể bị tấn công khi bastion host bị tổn thương và thoả hiệp với bên ngoài. Chẳng hạn nên giới hạn các dịch vụ được phép giữa bastion host và mạng nội bộ như SMTP khi có Email từ bên ngoài vào, có lẽ chỉ giới hạn kết nối SMTP giữa bastion host và Email server bên trong.

1.5. Giới hạn của Firewall (tường lửa)

Tường lửa-Firewall cũng là một phần mềm và nó nên được coi là một phần mềm hơn là một lá chắn siêu việt.Vận hành tường lửa là một nghệ thuật,nó có thể giúp cho hệ thống an toàn hơn hoặc kém an toàn hơn đều dựa vào tay người cài đặt và quản trị.Trên hết tường lửa an toàn nhưng không phải là 1 lá chắn đa năng nên vẫn cần bàn tay con người can thiệp vào việc bảo mật hệ thống.Tường lửa có thể ngăn chặn Dos nhưng DDos thì không thể,vì vậy để cuộc chiến giữa bảo mật và hacker cân bằng thì cuộc chiến giữa người và máy nên được chuyển thành cuộc chiến giữa người và người…

2. Host security

Server là một máy chủ chứa dữ liệu và cho phép các máy trạm có thể kết nối đến qua một cổng nhất định để đọc và lấy dữ liệu,...

Server Linux mà chủ yếu là ubuntu hoạt động trên cơ chế bảo mật cấp quyền phân tán cho các user và user có quyền tối cao là Admin,khi tạo mới 1 user muốn chạy bất kì lệnh gì quan trọng hay cài đặt phần mềm trên server linux thì cần gõ lệnh sudo.Cụ thể như:

Trang 13

Page 14: Isas semina

SECURITY OF LINUX

Ubuntu không cho phép đặt mặc định root, administrator, account. Nó có cách xử lý lợi ích bảo mật khá hay và một số phương án giảm cấp đáng kinh ngạc. Đó là văn bản hoá tất cả trong các trang chính của file gốc sudo_root.

Trong quá trình cài đặt, bạn thêm vào người dùng nào thì mặc định người dùng đó sẽ được đặt trong nhóm admin và có thể dùng sudo để thực hiện các nhiệm vụ quản trị hệ thống. Sau khi thêm tên người dùng mới vào hệ thống, bạn có thể đưa họ vào nhóm admin bằng câu lệnh:

- $ sudo adduser username admin- Nếu muốn loại một người nào ra khỏi nhóm admin, đơn giản bạn chỉ cần đặt

lệnh deluser thay thế adduser. Bảo mật hệ thống filetrong server

Mô hình bảo mật file được chuẩn hoá trong hầu hết các hệ thống tựa Unix và được gọi là mô hình POSIX. Mô hình này có 3 quyền truy cập file và thư mục mở rộng cho: người sở hữu, nhóm và các đối tượng khác. Tất cả đều được thực hiện giống nhau tại bất kỳ phân phối Linux nào. Đó là lý do vì sao chúng ta không tập trung phân tích kỹ vấn đề này. Các bạn có thể tham khảo thêm tại các trang “chmod” và “chown” trong phần trợ giúp của Linux hoặc trên Internet.Bây giờ chúng ta sẽ tập trung vào việc phân vùng bảo mật thông qua các tuỳ chọn lắp ghép, một vấn đề quan trọng cần chú ý khi xử lý bảo mật hệ thống. Việc phân vùng sẽ có tác động mạnh nếu được dùng thích hợp. Khi giải thích cách thức phân vùng hệ thống chúng tôi đã nhấn mạnh ưu điểm của Linux trong việc cung cấp các thư mục “/home”, “/tmp”, “/var” cho các phân vùng riêng. Các thư mục này đề cập đến cách dùng các tuỳ chọn đặc biệt khi ghép các phần vùng vào hệ thống file.Nhiều tuỳ chọn lắp ghép là kiểu hệ thống file phụ thuộc. Nhưng những tuỳ chọn chúng ta xét đến không phải loại này. Chúng ta có một số tuỳ chọn sau:

nodev: Một hệ thống file lắp ghép với tuỳ chọn nodev sẽ không cho phép sử dụng hay tạo các file “device” đặc biệt. Chẳng có lý do tốt đẹp nào khi cho phép hệ thống file biên dịch các ổ đặc biệt block, character vì như thế tức là cho phép chúng tạo ra các nguy hiểm bảo mật tiềm ẩn.nosuid Các file trong Unix nói chung và trong Linux nói riêng đều có thể được đánh dấu bằng cờ để cho phép một người nào đó thực thi file bằng quyền của người khác hay nhóm khác, thông thường là của người quản trị hệ thống. Cờ này được gọi là setuid (suid) hay cờ nhị phânsetgid bit. Nó cũng cho phép thực thi file bên ngoài thư mục chứa các mã nhị phân hệ thống không cần thiết, làm giảm độ an toàn. Nếu một người dùng được quyền sử dụng thì anh ta có thể tạo hoặc lấy một cờ nhị phân suid theo cách chọn riêng. Sau đó có thể sử dụng hệ thống một cách hiệu quả.noexec: nếu một hệ thống file được đánh dấu cờ là noexec, người dùng sẽ không thể chạy bất kỳ chương trình thực thi nào nằm trong nó.noatime cờ này nói rằng hệ thống file không giữ bản ghi lần truy cập cuối cùng của các file. Nếu sử dụng một cách bừa bãi có thể khiến giảm an toàn hệ thống. Vì nó giới hạn thông tin ghi sự cố bảo mật. Cờ này cũng cung cấp các lợi ích thực thi cho

Trang 14

Page 15: Isas semina

SECURITY OF LINUX

bất kỳ kiểu dùng nào. Bạn nên dùng trên các phân vùng, nơi bảo mật cân bằng với tốc độ.Quyết định sử dụng tuỳ chọn lắp ghép nào trong phân vùng nào là một kỹ thuật cao. Bạn sẽ thường xuyên phải phát triển các tham chiếu khi trở nên quen thuộc hơn với cơ chế quản trị. 3. Server security

Host Linux an toàn hơn host window rất nhiều nhờ cơ chế phân quyền rõ ràng bằng câu lệnh chmod giúp tránh việc hack local ngay cả khi có shell trên host.

Hơn hết nhờ cơ chế bảo mật cùng một nhân khỏe host Linux có thể chạy trên một máy chủ yếu hơn host window rất nhiều giúp tránh lãng phí tài nguyên đầu tư cho máy chủ.

Host Linux có nhân khỏe chạy không để lại nhiều “rác” nên thường chạy lâu bền lên tới hàng năm mà không cần restart.

Kết hợp với tường lửa host Linux vô cùng an toàn.

4. Cryptography

Một phần không thể tách rời đối với máy chủ lưu trữ và an ninh mạng là mã hóa dữ liệu.

4.1. Mật khẩu

Một trong những tính năng quan trọng nhất trong việc bảo mật hiện này là mật khẩu. Hầu hết các bản phân phối Linux gần đây bao gồm các chương trình mật khẩu không cho phép bạn thiết lập một mật mẩu dễ dàng đoán.

Hầu hết các hệ điều hành Linux chủ yếu sử dụng một thuật toán mã hóa hai chiều được gọi là DES để mã hóa mật khẩu của bạn. Sau đó mật khẩu mã hóa này thông thường được lưu trữ trong /etc/passwd hoặc /etc/shadow. Khi bạn đăng nhập thì tất cả các nhưng gì bạn gõ vào ô đăng nhập sẽ được mã hóa một lần nữa và so sánh với các mục nhập trong tệp tin lưu trữ mật khẩu của bạn. Nếu phù hợp bạn sẽ được truy cập. Mặc dù DES là một thuật toán mã hóa hai chiều(Bạn có thể mã hóa và giải mã). Điều này có nghĩa rằng nó không nên có thể đảo ngược mã hóa để có được mật khẩu từ các nội dung của / etc / passwd (hoặc / etc / shadow ).

4.2. PGP và các mã hóa công khai

Mật mã công khai chẳng hạn như là sử dụng PGP, liên quan đến mật mã sử dụng một chìa khóa để mã hóa và một chìa khóa để giải mã. Theo truyền thống, mật mã

Trang 15

Page 16: Isas semina

SECURITY OF LINUX

liên quan đến đều sử dụng cùng một khóa cho quá trình mã hóa và giải mã. “Chìa khóa bí mật” được biết đến bởi các bên có liên quan. Bằng cách nào đó có thể chuyển tới các bên liên quan một cách an toàn.

Mã hoá bằng khoá công khai (MHKCK - public-key) dùng để gửi dữ liệu một cách an toàn qua các mạng không an toàn như Internet. Cách mã hoá này làm cho những cặp mắt tò mò không thể đọc được dữ liệu. Mỗi người dùng đều có hai khoá, một khoá công khai, một khoá riêng. Khoá công khai được giữ trong một thư mục. Ai cũng có thể truy cập khoá này để mã hoá một thông điệp trước khi gửi tới người có khoá riêng tương ứng. Còn khoá riêng thì chỉ người nhận mới có thể truy cập được và dùng nó để giải mã thông điệp.

4.3. SSL, S-HTTP, HTTPS, S/MIMESSL: SSL, hoặc Secure Sockets Layer, là một phương pháp mã hóa được phát triển bởi Netscape để cung cấp an ninh trên Internet. Nó hỗ trợ các giao thức mã hóa khác nhau, và cung cấp cho khách hàng và xác thực máy chủ. SSL hoạt động tại tầng giao thông vận tải, tạo ra một kênh an toàn được mã hóa dữ liệu, và do đó liên tục có thể mã hóa dữ liệu của nhiều loại. Điều này là phổ biến nhất là nhìn thấy khi đi đến một trang web an toàn để xem một tài liệu trực tuyến an toàn với Communicator, và phục vụ như là cơ sở cho truyền thông an toàn với Communicator.

S-HTTP: S-HTTP là một giao thức cung cấp dịch vụ bảo mật trên Internet . Nó được thiết kế để cung cấp bảo mật, xác thực, toàn vẹn, và repudiability không (không thể nhầm lẫn cho người khác và tôi không thể phủ nhận hành động của tôi sau) trong khi hỗ trợ cơ chế quản lý nhiều chìa khóa và thuật toán mã hóa thông qua đàm phán lựa chọn giữa các bên trong mỗi giao dịch . S-HTTP được giới hạn trong các phần mềm cụ thể là thực hiện nó, và mã hóa mỗi tin nhắn cá nhân. 

S / MIME: S / MIME, hoặc Secure Internet Mail Extension, đa năng là một tiêu chuẩn mã hóa được sử dụng để mã hóa thư điện tử, hoặc các loại tin nhắn trên Internet. Nó là một tiêu chuẩn mở được phát triển bởi RSA.

4.4. IPSec và triển khai mã hóa IPSec là một nỗ lực của IETF để tạo ra các thông tin liên lạc mã hóa an toàn ở mức độ mạng IP, mà còn cung cấp xác thực, tính toàn vẹn, kiểm soát truy cập, và bảo mật. IPsec là cơ chế bảo mật cơ bản host-to-host. Thích hợp để sử dụng bất kỳ thời điểm nào bảo vệ dựa trên địa chỉ sẽ được sử dụng, bao gồm cả với các chương trình như rsh , rlogin.

Trang 16

Page 17: Isas semina

SECURITY OF LINUX

4.5. SSHSSH là một bộ các chương trình được sử dụng như là một thay thế an toàn cho rlogin, rsh và rcp. Nó sử dụng mật mã khóa công khai để mã hóa các thông tin liên lạc giữa hai máy, cũng như cho người sử dụng xác thực. Điều này có thể được sử dụng để bảo mật đăng nhập vào một máy chủ từ xa hoặc sao chép dữ liệu giữa các máy, trong khi ngăn chặn các cuộc tấn công man-in-the-middle (cướp quyền đăng nhập) và giả mạo DNS

Với cơ chế mã hóa mạnh nhằm ngăn chặn các hiện tượng nghe trộm, đánh cắp thông tin trên đường truyền

Trước đây khi thực hiện một kết nối từ máy tính này đến máy tính khác, chúng ta thường sử dụng các giao thức đơn giản dễ sử dụng như Telnet và FTP. Chúng ta sẽ gửi thông tin đến máy chủ từ xa, sau đó xác nhận về các kết nối. Để an toàn, các giao thức này thường sử dụng username và password. Điều này có nghĩa là an toàn? Nhưng đây là một điều hoàn toàn không đúng.

Quá trình kết nối như email bằng cách sử dụng FTP hay Telnet giống như tấm bưu thiếp. Nếu một ai đó đứng ở giữa, họ có thể nhìn thấy toàn bộ thông tin, bao gồm địa chỉ hai bên và cả username, password được gửi ra. Do đó họ có thể thay đổi nội dung tin nhắn, giữ lại thông tin và mạo danh một trong hai bên. Bạn không thể chắc chắn rằng mình đang thực sự nói chuyện với người gửi hay không, và ngay cả khi đang làm điều đó, bạn cũng không thể chắc chắn không có ai đang nhòm ngó giữa hai người.

Còn đối với SSH, không có một trung tâm nào xác thực ở đây. Bạn sẽ gửi thư cho người mình đã biết bằng cách sử dụng một thuật toán mã hóa, chỉ khi người nhận dùng đúng thuật toán phù hợp để giải mã mới nhận được. Sau đó bạn sẽ nhận được thư hồi âm cũng được bảo vệ bằng thuật toán tuyệt vời này. Cuối cùng thông tin của bạn sẽ được để ở trong một phong bì áp dụng thuật toán bí mật tới đích. Nếu thuật toán không phù hợp, người nhận sẽ xác minh lại địa chỉ lần nữa.

Trang 17

Page 18: Isas semina

SECURITY OF LINUX

Các tính năng quan trọng nhất của SSH

Các hostkey

Máy chủ chứng thực về bản chất là một người nào đó mà bạn tin tưởng có phong bì được đóng dấu bằng thuật toán và xác nhận địa chỉ của người nhận giúp bạn. Đó là một sự mô tả khá chi tiết về địa chỉ, dựa trên thuật toán phức tạp. Có một vài điều quan trọng cần lưu ý:

Do không có trung tâm xác thực nên sự bảo mật an ninh nằm trong các host key này, key public và private.(Hai key này sẽ được cấu hình khi bạn truy cập vào hệ thống ).

Thông thường khi bạn kết nối máy tính khác thông qua SSH, host key được lưu trữ. Điều này giúp cho các hành động sau này nhanh hơn( hoặc ít rườm rà).

Nếu các host key bị thay đổi bạn sẽ nhận được cảnh báo nên thận trọng!

Từ khi host key được sử dụng trước khi thiết lập sự xác minh danh tính của máy chủ SSH, bạn phải chắc chắn việc kiểm tra các key trước khi kết nối. Bạn sẽ thấy một hộp thoại xác nhận như dưới đây:

Trang 18

Page 19: Isas semina

SECURITY OF LINUX

Chúng ta không cần lo lắng về điều này. Thường thì khi vấn đề bảo mật trở thành mối quan tâm, host key sẽ có vị trí đặc biệt (trên cả nhận dạng vân tay ECDSA). Trong kinh doanh trực tuyến, thường nó sẽ có một sự đăng nhập an toàn duy nhất trên website. Bạn có thể phải( hoặc chọn) điện thoại cho bộ phận IT để xác nhận key này qua điện thoại.

Kiểm tra host key trong hệ thống:

Có 4 loại thuật toán mã hóa được sử dụng cho các key nhưng mặc định cho OpenSSH là ECDSA. Sau đây là dòng lệnh bạn có thể chạy trên máy chủ SSH mà bạn truy cập:

ssh-keygen -f /etc/ssh/ssh_host_ecdsa_key.pub -l

Đầu ra của bạn sẽ có dạng như thế này:

256 ca:62:ea:7c:e4:9e:2e:a6:94:20:11:db:9c:78:c3:4c /etc/ssh/ssh_host_ecdsa_key.pub

Con số đầu tiên là độ dài bit của key, sau đó là key của chính nó, cuối cùng bạn sẽ có một tập tin được lưu trữ. Bạn cần so sánh phần giữa của dòng trên khi được nhắc nhở đăng nhập từ xa. Chúng phải phù hợp với nhau, nếu không sẽ có một vài sự khác biệt xảy ra.

Bạn có thể xem toàn bộ các host được kết nối thông qua SSH bằng cách nhìn vào tập tin known_hosts:

~/.ssh/known_hosts

Bạn có thể mở nó bằng bất cứ trình soạn thảo văn bản nào. Nếu sát, hãy chú ý đến những key được lưu trữ. Chúng sẽ được lưu lại với tên máy chủ (hoặc địa chỉ trang web và địa chỉ ip của nó).

Sự thay đổi host key và các vấn đề phát sinh

Có một vài lý do tại sao host key bị thay đổi hoặc không phù hợp với những gì được đăng nhập trong tập tin knows_hosts của bạn:

Hệ thống đã được cài đặt/cấu hình lại (re-installed/re-configured). Các host key đã được thay đổi thủ công do giao thức bảo mật. IP hoặc DNS bị thay đổi. Hệ thống bị xâm nhập khiến host key bị thay đổi.

Trang 19

Page 20: Isas semina

SECURITY OF LINUX

Nhiều khả năng lý do là ở ba câu đầu tiên, và bạn có thể bỏ qua sự thay đổi đó. Nếu IP/DNS bị sửa đổi, bạn sẽ được chuyển đến một máy chủ khác. Nếu bạn không chắc chắn 3 lý do trên, rất có thể lý do cuối cùng đã dẫn đến sự cố các host key bị đổi.

Làm thế nào để OpenSSH xử lý các host “vô danh”?

OpenSSH được thiết lập để xử lý các host chưa được biết đến, được phản ánh trong biến “StrictHostKeyChecking” (không có dấu nháy kép).

Tùy thuộc vào sự cấu hình của bạn, SSH sẽ được kết nối với các host này (không có các key thuộc file know_host của bạn) theo ba cách:

StrictHostKeyChecking được thiết lập là “no”: OpenSSH sẽ tự động kết nối tới bất kỳ máy chủ SSH nào mà không phụ thuộc vào tình trạng của nó. Điều này là không an toàn và không được khuyến cáo, trừ khi bạn đang thêm một loạt các host sau khi cài đặt lại hệ điều hành, sau đó bạn sẽ thay đổi lại cho nó.

StrictHostKeyChecking được thiết lập là “ask”: OpenSSH sẽ hiển thị cho bạn thấy các host key mới và yêu cầu bạn xác nhận chúng trước khi thêm vào. Nó sẽ ngăn chặn các kết nối từ việc thay đổi host key. Đây là điều mặc định.

StrictHostKeyChecking được thiết lập là “yes”: Ngược lại với “no”, điều này sẽ ngăn chặn mọi kết nối tới bất kỳ host nào mà không có trong file known_hosts của bạn.

Bạn có thể dễ dàng thay đổi các biến này bằng cách sử dụng dòng mô hình dòng lệnh sau:

ssh -o 'StrictHostKeyChecking [option]' user@host

Hãy đổi [option] thành “no”, “ask”, “yes”. Tương tự bạn cũng thay đổi user@host thành username và tên host của máy chủ bạn kết nối tới. Ví dụ:

Trang 20

Page 21: Isas semina

SECURITY OF LINUX

ssh -o 'StrictHostKeyChecking ask' [email protected]

Ngăn chặn host dựa vào sự thay đổi các key

Nếu bạn có một máy chủ và đang thử truy cập vào key đã tự thay đổi, các cấu hình OpenSSH mặc định sẽ ngăn chặn bạn truy cập vào nó. Bạn có thể thay đổi giá trị của StrictHostKeyChecking cho host này, nhưng không được triệt để hoàn toàn. Thay vào đó, đơn giản là chúng ta chỉ cần thay đổi giá trị của tập tin known_hosts.

Hình ảnh hiển thị trên màn hình có thể khiến bạn rối mắt. Đừng hoang mang vội, hãy tập trung nhìn vào dòng mà chúng ta cần (đối với một hệ điều hành được cài đặt lại):

Nó sẽ cho ta thấy trích dẫn file cần chỉnh sửa, thậm chí là cả sổ dòng. Vì thế hãy mở file này trong Nano:

Trang 21

Page 22: Isas semina

SECURITY OF LINUX

Dưới đây là key gây ra lỗi, trong dòng 1. Việc chúng ta cần làm lúc này là nhấn Ctrl + K để cắt ra toàn bộ dòng.

Tiếp theo nhấn Ctrl + O để ghi lại (save) tập tin, sau đó nhấn Ctrl + X để thoát.

Một nhắc nhở hiện ra, bạn có thể phản hồi lại với “yes.”

Trang 22

Page 23: Isas semina

SECURITY OF LINUX

Tạo Host Key mới

Đối với các bản ghi, không có quá nhiều lý do khiến bạn cần thay đổi toàn bộ host key, nhưng nếu cần thiết bạn có thể làm điều đó rất dễ dàng.

Đầu tiên, cần thay đổi hệ thống thư mục phù hợp:

cd /etc/ssh/

Tiếp theo chúng ta sẽ xóa toàn bộ key cũ:

sudo rm /etc/ssh/ssh_host_*

Ngoài ra bạn cũng có thể di chuyển chúng tới đường dẫn sao lưu an toàn nếu muốn.Sau đó chúng ta có thể báo cho máy chủ OpenSSH để cấu hình lại chính nó:

sudo dpkg-reconfigure openssh-server

Bạn sẽ nhận được một thông báo trong khi máy tính tạo key mới.

Trang 23

Page 24: Isas semina

SECURITY OF LINUX

4.6. Cryptographic IP (CIPE)

Mục tiêu chính của phần mềm này là cung cấp một cơ sở an toàn (chống nghe trộm, bao gồm phân tích lưu lượng truy cập, và tiêm giả mạo tin nhắn) mạng con kết nối qua một mạng gói như Internet không an toàn.

CIPE mã hóa dữ liệu ở cấp độ mạng. Các gói tin di chuyển giữa các host trên mạng được mã hóa. Các công cụ mã hóa được đặt gần các trình điều khiển gửi và nhận các gói tin.

Điều này là không giống như SSH, mã hóa dữ liệu bằng cách kết nối, ở cấp ổ cắm. Một kết nối hợp lý giữa các chương trình đang chạy trên máy chủ khác nhau được mã hóa.

CIPE có thể được sử dụng trong đường hầm, để tạo ra một mạng riêng ảo. Mã hóa ở mức độ thấp có lợi thế mà nó có thể được thực hiện để làm việc minh bạch giữa hai mạng kết nối VPN, mà không có bất kỳ thay đổi phần mềm ứng dụng.

4.7. Mật khẩu bóng tối

Mật khẩu bóng tối là một phương tiện giữ thông tin bí mật mật khẩu của bạn được mã hóa từ những người dùng bình thường. Bình thường mật khẩu sẽ được mã hóa và lưu trong tập tin /etc/filepaswd cho tất cả mọi người đều đọc được. Những người đó có thể chạy các công cụ, chương trình để cố gắng xác định xem nó là gì. Mật khẩu bóng tối lưu các thông tin mã hóa mật khẩu vào một tập tin /etc/shadow mà chỉ có người sử dụng đọc quyền có thể đọc.

4.8. Sử dụng CFS, các hệ thống tập tin mã hóa

Nếu bạn muốn giữ các tập tin riêng tư cá nhân như nhật ký, số điện thoại,…bạn có thể giữ chúng trong một thư mục ẩn có tên ~/tin với chế độ 0700 duy nhất chỉ có bạn mới có thể đọc tệp tin. Tóm lại CFS cho phép bạn để bảo vệ các tập tin của bạn ở dạng mã hóa trong một thư mục bình thường.

Trang 24

Page 25: Isas semina

SECURITY OF LINUX

Gi i thi u t ng quan v TrueCrypt đ mã hóa d li u trong Linuxớ ệ ổ ề ể ữ ệTrueCrypt là phần mềm hệ thống cho phép thiết lập những ổ đĩa được mã hóa tốc hành có nghĩa là dữ liệu sẽ được mã hóa hoặc giải mã ngay lập tức trước khi chúng được mở ra hoặc lưu lại, không cần sự can thiệp của người sử dụng. Khi ổ đĩa được mã hóa người khác không thể xem được dữ liệu mà không có mật khẩu hoặc chìa khóa giải mã. Toàn bộ hệ thống tệp tin được mã hóa. Khi giải mã một ổ đĩa được mã hóa bởi TrueCrypt, chúng ta có làm việc như những thư mục hay những tập tin thông thường . Mọi thao tác đó sẽ được TrueCrypt thực hiện trên Ram những không phải toàn bộ tập tin mã hóa được lưu trữ trên Ram trước khi nó được mã hóa, giải mã. Do đó TrueCrypt không ngốn thêm Ram khi hoạt động.

Gi i thi u t ng quan v eCryptfs công c mã hóa h u hi u trong Linuxớ ệ ổ ề ụ ữ ệTrueCrypt là một phần mềm mã hóa tệp tin một cách tuyệt vời. Tuy nhiên TrueCrypt lại yêu cầu phải chỉ định trước một vùng không gian nhất định để chứa các tệp tin trước khi lưu trữ dữ liệu. Nếu bạn chỉ sử dụng 10% không gian thì 90% sẽ lãng phí. Với eCryptfs sẽ linh hoạt hơn giúp chúng ta có thể tiết kiệm dung lượng. Tất cả các tệp tin mã hóa đều được thực hiện ở các tệp tin đơn nghĩa là không phải tạo vùng không gian để chỉ định để chứa các tệp tin đó.

5. Network security

Bảo mật mạng có thể chia làm 2 loại chính sau:

5.1. Bảo mật theo máy chủ (Host Based Security)

Quyền truy cập vào các nguồn tài nguyên có thể được cho phép dựa vào yêu cầu dịch vụ của host. Điều này được thực hiện bởi tcp_wrappers. Thư viện libwrap cũng đóng vai trò như tcp_wrappers cung cấp danh sách truy cập, kiểm soát host đối với các dịch vụ mạng khác nhau. Một số dịch vụ như xinetd, sshd và portmap được biên dịch dựa vào thư viện libwrap do đó có kích hoạt tcp_wrapper hỗ trợ cho các dịch vụ này.

Khi một client kết nối tới một dịch vụ với hỗ trợ tcp_wrapper, file /etc/hosts.allow và /etc/hosts.deny được phân tích (parse) để kích thích yêu cầu dịch vụ host. Dựa vào kết quả mà dịch vụ có thể cho phép hoặc không.

File host_access có 2 hoặc 3 (lựa chọn) dấu hai chấm ngăn cách các trường. Trường đầu tiên là tên của tiến trình, tiếp theo là tên host hoặc domain bị hạn chế hoàn toàn với một “dấu chấm đầu” địa chỉ IP hoặc subnet với dấu chấm sau. Các đại diện như ALL và EXCEPT cũng được chấp nhận.

Cú pháp của file /etc/host.{allow|deny} như sau:

Trang 25

Page 26: Isas semina

SECURITY OF LINUX

Service: hosts [EXCEPT] hosts

Ví dụ:

Tcp_wrappers có thể chạy một lệnh cục bộ dựa vào host tương ứng với các file host_access.

Công việc được hoàn thành với lệnh spawn. Bằng cách sử dụng ký tự %, việc thay thế có thể được sử dụng đối với tên của host và dịch vụ.

Ví dụ:

Để biết thêm các thông tin về ký tự thay thế %, xem trang trợ giúp host_access bằng lệnh man.

5.2. Bảo mật theo cổng (Port Based Security)

Với chức năng lọc gói tin trong nhân của Linux, có thể giới hạn truy cập tới nguồn tài nguyên bằng cách tạo ra tập luật với các tiện ích như ipchains và iptables, sẽ xác định một gói tin khi đi qua hoặc giao diện mạng của nó và cũng chỉ ra điều gì sẽ diễn ra đối với gói tin này.

Có ba chuỗi trong ipchains và iptables, đó là:

Input, forward và output cho ipchains

Input, forward và output cho iptables

Trang 26

Page 27: Isas semina

SECURITY OF LINUX

Ví dụ: Khi sử dụng ipchains tất cả các gói tin đi vào một giao diện mạng sẽ đi qua chuỗi input. Tất cả các gói tin không có đích là host này sẽ đi qua chuối forward.

Tất cả các gói tin được sinh ra bởi host và các gói tin chuyển tiếp sẽ đi qua chuỗi output.

Luật ipchains và iptables có thể xác định các thông tin như nguồn source(s), đích(d), giao thức(p), và cổng.

Ví dụ: Tất cả các gói tin từ địa chỉ 192.168.0.254 sẽ bị cấm

Các luật ipchains và iptables có thể được thực thi theo các thông số lựa chọn sau:

-A thêm vào cuối (Append )

-D Xóa ( Delete )

-P thay đổi chính sách mặc định đối với một chuỗi( chain )

-I Chèn ( Insert )

-F In các luật ra một chuỗi

-N tạo một chuỗi do người dùng định nghĩa

-L Liệt kê

Trong dự án phát triển nhân Linux 2.4 và dự án Netfilter cũng sử dụng tiện ích bảng iptables để quản lý các luật firewall. Điểm khác biệt lớn nhất giữa iptable và ipchain là iptables hỗ trợ cho việc đánh giá các gói tin dựa trên trạng thái của chúng dựa theo các gói tin khác đã được truyền qua nhân.

Trang 27