LỜI CẢM ƠN Lời đầu tiên chúng em xin chân thành cảm ơn Ban giám hiệu trường Đại Học Công Nghiệp Thành Phố Hồ Chí Minh đã tạo điều kiện để sinh viên chúng em có một môi trường học tập thoải mái về cơ sở hạ tầng cũng như cơ sở vật chất. Chúng em xin cảm ơn khoa Công nghệ thông tin đã giúp chúng em được mở mang tri thức. Chúng em chân thành cảm ơn thầy Nguyễn Xuân Lô đã hướng dẫn tận tình để nhóm chúng em hoàn thành tiểu luận này. Hi vọng thông qua những nỗ lực tìm hiểu của tất cả các thành viên, nhóm 6 chúng em sẽ hoàn thành được đề tài tiểu luận: ‘‘ Nghiên cứu cơ chế bảo mật và cài bảo mật server samba chia sẻ dữ liệu.” Với những giới hạn về kiến thức và thời gian, trong quá trình tìm hiểu nhóm 6 chúng em không tránh khỏi thiếu sót, mong thầy và các bạn tận tình góp ý để chúng em hoàn thiện hơn nữa những kiến thức của mình. Chúng em xin chân thành cảm ơn I. LÝ DO CHỌN ĐỀ TÀI Samba là một dịch vụ cho phép Windows đọc được các tài nguyên mạng của Linux, Vì Windows share tài nguyên ra mạng theo cơ chế Server Message Block (SMB) nên Linux chơi chữ lấy chữ Samba làm tên service luôn. Trên Linux nếu bạn active dịch vụ Samba thì bạn có thể tạo các share resource mà Windows có thể truy cập được. Rất tiện nếu như chúng ta có nhiều máy tính cùng chạy song song Windows và Linux. Trước đây chưa có Samba, việc chia xẻ các tài nguyên giữa Linux và Windows fải thông wa FTP, mà cấu hình FTP thì hơi nặng hơn so với Samba. Samba có thể đưa Linux box của bạn vào Windows Primary Domain Controller (PDC) hay một server cho Windows Workgroup. Một trong những cấu hình này cho phép bất kì ai tại nhà cũng có thể: • Log on vào tất cả các box windows tại nhà trong khi các file của họ trên Linux box nằm trên một drive Windows. • Chia sẻ truy cập đến các máy in trên Linux box. • Các file chia sẻ chỉ có thể truy cập được bởi những thành viên của nhóm người dùng Linux. Đâu là khác biệt giữa của PDC và một thành viên của Windows Workgroup? Chương này sẽ không mô tả chi tiết, nhưng chỉ cần đơn giản thế này là đủ: • Một PDC lưu giữ thông tin đăng nhập trên một cơ sở dữ liệu trung tâm trên đĩa cứng của nó. Điều này cho phép có một tên truy cập và password chung cho toàn hệ thống khi đăng nhập từ tất cả máy tính trong hệ thống • Trong Windows Workgroup, mỗi máy tính lưu giữ tên truy cập và password cục bộ để chúng là duy nhất cho mỗi máy tính. Chính vì những tiện ích to lớn này mà nhóm 6 chúng em xin chọn đề tài: ‘‘Nghiên cứu cơ chế bảo mật và cài bảo mật server samba chia sẻ dữ liệu” làm đề tài nghiên cứu cho bài tiểu luận môn Bảo vệ hệ thống máy tính. II. NỘI DUNG 1. Giới thiệu về Samba Samba là phần mềm có thể chạy trên nền tảng các hệ điều hành khác với Microsoft Windows, ví dụ như: UNIX, Linux, IBM System 390, OpenVMS, và các hệ điều hành khác. Samba sử dụng giao thức TCPIP và được cài đặt trên máy chủ. Nếu bạn cấu hình đúng, nó cho phép máy chủ tương tác với các client và server của Microsoft Windows như thể là một File and Print Server của MS. Windows. Samba cung cấp dịch vụ file and print cho những máy con sử dụng hệ điều hành Microsoft Windows. Những dịch vụ này có thể chạy trên bất kỳ máy nào dùng TCPIP làm nền tảng. Đầu tiên nó được triển khai trên nền tảng là UNIX và Linux, ngày nay nó dược dùng cho nhiều hệ điều hành khác nhau. Samba không chỉ bao gồm những nét đặc trưng lớn thiết lập trên file and printf server mà còn mở rộng hơn với các chứa năng của client, các tiện ích dễ dàng thay đổi trên Samba, các công cụ để giúp cho các thao tác giữa các phần trong Microsoft Windows và các công cụ quản trị. Samba chạy trên nền giao thức SMB (Server Message Block) cho phép chia sẻ file hệ thống, máy in với các máy chạy Win95, 98 hoặc NT. SMB là giao thức được các hệ điều hành của Microsoft sử dụng để chia sẻ dữ liệu qua mạng. Với Linux, Samba cũng dựa vào giao thức SMB để viết ra một số tiến trình điển hình như smbd, nmbd, để “nói chuyện” với các hệ điều hành của Microsoft, để người dùng có thể làm việc với máy Linux qua Network Neighborhood. Gói phần mềm Samba có thể lấy từ đĩa CD của hệ điều hành Red Hat Linux hoặc download từ website www.samba.org . Phiên bản của Samba cũng được thay đổi thường xuyên. Mặc dù mục tiêu chính là chia sẻ file, các chức năng bổ sung của SMB bao gồm cả: • Đàm phán, dàn xếp để tương thích giữa các hình thái SMB • Phát hiện các máy chủ sử dụng SMB trên mạng (browse network) • In qua mạng • Xác thực truy cập file, thư mục chia sẻ • Thông báo sự thay đổi file và thư mục • Xử lý các thuộc tính mở rộng của file • Hỗ trợ Unicode • Khóa file đang truy cập tùy theo cơ hội (oplock) Microsoft sử dụng SMB cùng với giao thức xác thực NTLM để cung cấp dịch vụ gọi là chia sẻ file và máy in ở mức user. Khi một user đã đăng nhập thực hiện kết nối tới tài nguyên chia sẻ trên máy tính khác (\servershare), Windows tự động gửi thông tin đăng nhập của user đó tới SMB server trước khi hỏi username hoặc password. Trong mô hình mạng OSI, SMB thường được coi là giao thức ở tầng Application (L7) hoặc Presentation (L6), và được truyền tải (transport) dựa trên các giao thức cấp thấp hơn. Giao thức truyền tải (L4) mà SMB thường dùng trước đây là NetBEUI (Netbios Extended User Interface), và hiện nay là NBT hoặc NetBT (NetBIOS over TCPIP). Tuy vậy, giao thức SMB cũng có thể sử dụng không cần một giao thức truyền tải xác định bổ trợ riêng bằng cách kết hợp SMB với NBT để đảm bảo tính tương thích giữa nhiều phiên bản Windows khác nhau. Giao thức SMB trên Windows buộc phải sử dụng truyền tải qua NetBT với các cổng 137, 138 (UDP), 139 (TCP). Từ Windows 2000XP, Microsoft cấp thêm khả năng chạy SMB trực tiếp trên TCPIP, chỉ sử dụng cổng 445 (TCP). Nhưng Samba không chỉ là giao thức. Khi được sử dụng trong ngữ cảnh linux ngày nay, bạn sẽ phát hiện rằng nó còn là 1 server (sử dụng để connect tới máy Windows hay Linux khác), một client và thậm chí là một chức năng cho workgroup printer sharing. Điều quan trong nhất, một máy tính khác kết nối với server qua client và dễ dàng chia sẻ file chỉ bằng cách kéo và thả vì sử dụng giao diện đồ họa. Gói phần mềm Samba có chứa hai daemon dịch vụ và nhiều chương trình tiện ích. một daemon là smbd cung cấp các dịch vụ tập tin và in ấn cho các hệ thống khác có hỗ trợ SMB. Một daemon là nmbd cung cấp chức năng phân giải tên NetBIOS và hỗ trợ dịch vụ duyệt thư mục. Samba cung cấp bốn dịch vụ chính: dịch vụ chia sẻ tập tin và máy in, xác thực và cấp phép, phân giải tên và thông báo dịch vụ. Daemon SMB, smbd, cung cấp các dịch vụ chia sẻ tập tin và máy in, cũng như xác thực và cấp phép cho những dịch vụ này. Điều này có nghĩa là người dùng trên mạng có thể dùng chung các tập tin và máy in. Người dùng có thể điều khiển truy nhập tới những dịch vụ này bằng cách yêu cầu người dùng phải nhập mật mã truy nhập, Điều khiển truy nhập có thể được thực hiện ở hai chế độ : chế độ dùng chung (share mode) và chế độ người dùng (user mode). Chế động dùng chung sử dụng một mật mã truy nhập tài nguyên chung cho nhiều người dùng . Chế độ người dùng cung cấp cho mỗi tài khoản người dùng mật mã truy nhập tài nguyên khác nhau. Vì lý do phải quản lý mật mã truy nhập, Samba có sử dụng tập tin etcsambasmbpassword để lưu trữ các mật mã truy nhập người dùng 2. Cơ chế bảo mật. • Chế độ bảo mật là gì? Chế độ bảo mật như là một phương tiện để thông báo cho máy chủ như thế nào khi một máy khách sẽ xác thực. Bây giờ, từ góc độ Windows (và lý do tại sao Samba tồn tại) chỉ có hai loại mức độ bảo mật: Chia sẻ mức độ và cấp độ người dùng. Nhưng bởi vì Windows có nhiều cách xác thực nên Samba cần phải phá vỡ các mức người dùng xuống thấp hơn nữa. Vì vậy, theo như Samba thì các cấp độ được gọi là chế độ và có năm chế độ: người sử dụng, chia sẻ, tên miền, quảng cáo, và máy chủ. Để máy chủ Samba có thể chống lại lỗ hổng bảo mật nếu người dùng không thể (hoặc cho đến khi có thể) nâng cấp các bản vá, thì chúng ta cần nghiên cứu một số phương pháp. • Hạn chế số lượng kết nối đồng thời Samba có thể giới hạn số lượng kết nối đồng thời khi smbd được đưa ra như một daemon (không từ inetd). Lựa chọn smb.conf của smbd tối cho phép quản trị viên xác định số lượng tối đa của các quá trình smbd chạy ở bất kỳ thời điểm nào. Bất kỳ sự cố gắng kết nối tới máy chủ của máy khách đều sẽ bị từ chối. • Sử dụng bảo vệ dựa trên máy chủ Trong nhiều cài đặt của Samba, mối đe dọa lớn nhất chính là kết nối mạng của bạn. Theo mặc định Samba sẽ chấp nhận kết nối từ bất kỳ máy chủ, có nghĩa là nếu bạn chạy một phiên bản không an toàn của Samba trên một máy chủ được kết nối trực tiếp với Internet bạn có thể gặp phải mối đe dọa vô cùng to lớn. Một trong những bản sửa lỗi đơn giản nhất trong trường hợp này là sử dụng các hosts cho phép và hosts từ chối tùy chọn trong tập tin cấu hình smb.conf để chỉ cho phép truy cập vào máy chủ của bạn từ một phạm vi cụ thể của host. Một ví dụ có thể là: Hosts allow = 127.0.0.1 192.168.2.024 192.168.3.024 Hosts deny = 0.0.0.0 0 Ở trên sẽ chỉ cho phép các kết nối SMB từ localhost (máy tính của bạn) và từ hai mạng riêng và 192.168.2 192.168.3. Tất cả các kết nối khác sẽ bị từ chối kết nối ngay sau khi client gửi gói tin đầu tiên. Việc từ chối sẽ được đánh dấu như là không lắng nghe được tập tin bị lỗi. • Sử dụng bảo vệ giao diện Theo mặc định Samba sẽ chấp nhận kết nối trên bất kỳ giao diện mạng mà nó tìm thấy trên hệ thống của bạn. Điều đó có nghĩa nếu bạn có một đường ISDN hoặc kết nối PPP với Internet sau đó Samba sẽ chấp nhận kết nối trên các liên kết. Bạn có thể thay đổi hành vi này bằng các tùy chọn như sau: interfaces = eth lo bind interfaces only = yes Mà với Samba để chỉ lắng nghe cho các kết nối trên giao diện với một tên bắt đầu bằng chữ ETH như eth0, eth1, cộng với trên giao diện loopback được gọi là “lo”. Tên mà bạn sẽ cần phải sử dụng phụ thuộc vào hệ điều hành bạn đang sử dụng. Ở trên chúng ta sử dụng tên gọi chung cho bộ điều hợp Ethernet trên Linux. • Sử dụng tường lửa Nhiều người sử dụng tường lửa để từ chối truy cập vào dịch vụ mà họ không muốn tiếp xúc với bên ngoài mạng của họ. Điều này có thể là một ý tưởng rất tốt, mặc dù chúng ta nên sử dụng nó kết hợp với các phương pháp trên để có được bảo vệ ngay cả khi tường lửa của bạn không hoạt động đối với một số lý do. Nếu bạn đang thiết lập một bức tường lửa thì bạn cần phải biết các cổng TCP và UDP cho phép và ngăn chặn. Samba sử dụng: UDP137 được sử dụng bởi nmbd UDP138 được sử dụng bởi nmbd TCP139 được sử dụng bởi smbd TCP445 được sử dụng bởi smbd • Sử dụng một IPC từ chối chia sẻ Nếu các phương pháp trên là không phù hợp, sau đó bạn cũng có thể đặt một phủ nhận cụ thể hơn về IPC chia sẻ được sử dụng trong các lỗ hổng bảo mật mới được phát hiện. Điều này cho phép bạn để cung cấp truy cập vào các cổ phiếu trong khi từ chối truy cập đến IPC từ máy chủ có khả năng không đáng tin cậy. Để làm điều đó bạn có thể sử dụng: Ipc Host allow = 192.168.115.024 127.0.0.1
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP HỒ CHÍ MINH
CƠ SỞ THANH HÓA – KHOA KINH TẾ
NGHIÊN CỨU CƠ CHẾ BẢO MẬT VÀ CÀI BẢO MẬT
SERVER SAMBA CHIA SẺ DỮ LIỆU
TIỂU LUẬN BẢO VỆ HỆ THỐNG MÁY TÍNH 1
Trang 2GIẢNG VIÊN HD : NGUYỄN XUÂN LÔ SINH VIÊN TH : NHÓM 06
LỚP : DHTH6TH
THANH HÓA, THÁNG 10 NĂM 2013
TIỂU LUẬN BẢO VỆ HỆ THỐNG MÁY TÍNH 2
Trang 4Chúng em chân thành cảm ơn thầy Nguyễn Xuân Lô đã hướng dẫn tận tình để nhóm chúng em hoàn thành tiểu luận này Hi vọng thông qua những nỗ lực tìm hiểu của tất cả các thành viên, nhóm 6 chúng em
sẽ hoàn thành được đề tài tiểu luận: ‘‘ Nghiên cứu cơ chế bảo mật và cài bảo mật server samba chia sẻ dữ liệu.”
Với những giới hạn về kiến thức và thời gian, trong quá trình tìm hiểu nhóm 6 chúng em không tránh khỏi thiếu sót, mong thầy và các bạn tận tình góp ý để chúng em hoàn thiện hơn nữa những kiến thức của mình
Chúng em xin chân thành cảm ơn!
Trang 5I LÝ DO CHỌN ĐỀ TÀI
Samba là một dịch vụ cho phép Windows đọc được các tài nguyên mạng của Linux, Vì Windows share tài nguyên ra mạng theo cơ chế Server Message Block (SMB) nên Linux chơi chữ lấy chữ Samba làm tên service luôn Trên Linux nếu bạn active dịch vụ Samba thì bạn có thể tạo các share resource mà Windows có thể truy cập được Rất tiện nếu như chúng ta có nhiều máy tính cùng chạy song song Windows và Linux Trước đây chưa có Samba, việc chia xẻ các tài nguyên giữa Linux và Windows fải thông wa FTP, mà cấu hình FTP thì hơi nặng hơn so với Samba Samba có thể đưa Linux box của bạn vào Windows Primary Domain Controller (PDC) hay một server cho Windows Workgroup Một trong những cấu hình này cho phép bất kì ai tại nhà cũng có thể:
• Log on vào tất cả các box windows tại nhà trong khi các file của họ trên Linux box nằm trên một drive Windows
• Chia sẻ truy cập đến các máy in trên Linux box
• Các file chia sẻ chỉ có thể truy cập được bởi những thành viên của nhóm người dùng Linux
Đâu là khác biệt giữa của PDC và một thành viên của Windows Workgroup? Chương này sẽ không mô tả chi tiết, nhưng chỉ cần đơn giản thế này là đủ:
• Một PDC lưu giữ thông tin đăng nhập trên một cơ sở dữ liệu trung tâm trên đĩa cứng của nó Điều này cho phép có một tên truy cập và password chung cho toàn hệ thống khi đăng nhập
từ tất cả máy tính trong hệ thống
• Trong Windows Workgroup, mỗi máy tính lưu giữ tên truy cập
và password cục bộ để chúng là duy nhất cho mỗi máy tính.Chính vì những tiện ích to lớn này mà nhóm 6 chúng em xin chọn
đề tài: ‘‘Nghiên cứu cơ chế bảo mật và cài bảo mật server samba chia
sẻ dữ liệu” làm đề tài nghiên cứu cho bài tiểu luận môn Bảo vệ hệ thống máy tính
Trang 6II NỘI DUNG
1. Giới thiệu về Samba
Samba là phần mềm có thể chạy trên nền tảng các hệ điều hành khác với Microsoft Windows, ví dụ như: UNIX, Linux, IBM System
390, OpenVMS, và các hệ điều hành khác Samba sử dụng giao thức TCP/IP và được cài đặt trên máy chủ Nếu bạn cấu hình đúng, nó cho phép máy chủ tương tác với các client và server của Microsoft Windows như thể là một File and Print Server của MS Windows
Samba cung cấp dịch vụ file and print cho những máy con sử dụng hệ điều hành Microsoft Windows Những dịch vụ này có thể chạy trên bất kỳ máy nào dùng TCP/IP làm nền tảng Đầu tiên nó được triển khai trên nền tảng là UNIX và Linux, ngày nay nó dược dùng cho nhiều hệ điều hành khác nhau
Samba không chỉ bao gồm những nét đặc trưng lớn thiết lập trên file and printf server mà còn mở rộng hơn với các chứa năng của client, các tiện ích dễ dàng thay đổi trên Samba, các công cụ để giúp cho các thao tác giữa các phần trong Microsoft Windows và các công
“nói chuyện” với các hệ điều hành của Microsoft, để người dùng có thể làm việc với máy Linux qua Network Neighborhood
Gói phần mềm Samba có thể lấy từ đĩa CD của hệ điều hành Red Hat Linux hoặc download từ website www.samba.org Phiên bản của Samba cũng được thay đổi thường xuyên
Mặc dù mục tiêu chính là chia sẻ file, các chức năng bổ sung của SMB bao gồm cả:
• Đàm phán, dàn xếp để tương thích giữa các hình thái SMB
• Phát hiện các máy chủ sử dụng SMB trên mạng (browse network)
• In qua mạng
• Xác thực truy cập file, thư mục chia sẻ
Trang 7• Thông báo sự thay đổi file và thư mục
• Xử lý các thuộc tính mở rộng của file
• Hỗ trợ Unicode
• Khóa file đang truy cập tùy theo cơ hội (oplock)
Microsoft sử dụng SMB cùng với giao thức xác thực NTLM để cung cấp dịch vụ gọi là chia sẻ file và máy in ở mức user Khi một user đã đăng nhập thực hiện kết nối tới tài nguyên chia sẻ trên máy tính khác (\\server\share), Windows tự động gửi thông tin đăng nhập của user đó tới SMB server trước khi hỏi username hoặc password Trong mô hình mạng OSI, SMB thường được coi là giao thức ở tầng Application (L7) hoặc Presentation (L6), và được truyền tải (transport) dựa trên các giao thức cấp thấp hơn Giao thức truyền tải (L4) mà SMB thường dùng trước đây là NetBEUI (Netbios Extended User Interface), và hiện nay là NBT hoặc NetBT (NetBIOS over TCP/IP) Tuy vậy, giao thức SMB cũng có thể sử dụng không cần một giao thức truyền tải xác định bổ trợ riêng bằng cách kết hợp SMB với NBT để đảm bảo tính tương thích giữa nhiều phiên bản Windows khác nhau
Giao thức SMB trên Windows buộc phải sử dụng truyền tải qua NetBT với các cổng 137, 138 (UDP), 139 (TCP) Từ Windows 2000/XP, Microsoft cấp thêm khả năng chạy SMB trực tiếp trên TCP/IP, chỉ sử dụng cổng 445 (TCP)
Nhưng Samba không chỉ là giao thức Khi được sử dụng trong ngữ cảnh linux ngày nay, bạn sẽ phát hiện rằng nó còn là 1 server (sử dụng để connect tới máy Windows hay Linux khác), một client và thậm chí là một chức năng cho workgroup printer sharing Điều quan trong nhất, một máy tính khác kết nối với server qua client và dễ dàng chia sẻ file chỉ bằng cách kéo và thả vì sử dụng giao diện đồ họa Gói phần mềm Samba có chứa hai daemon dịch vụ và nhiều chương trình tiện ích một daemon là smbd cung cấp các dịch vụ tập tin và in
ấn cho các hệ thống khác có hỗ trợ SMB Một daemon là nmbd cung cấp chức năng phân giải tên NetBIOS và hỗ trợ dịch vụ duyệt thư mục
Samba cung cấp bốn dịch vụ chính: dịch vụ chia sẻ tập tin và máy
in, xác thực và cấp phép, phân giải tên và thông báo dịch vụ Daemon SMB, smbd, cung cấp các dịch vụ chia sẻ tập tin và máy in,
Trang 8cũng như xác thực và cấp phép cho những dịch vụ này Điều này có nghĩa là người dùng trên mạng có thể dùng chung các tập tin và máy
in Người dùng có thể điều khiển truy nhập tới những dịch vụ này bằng cách yêu cầu người dùng phải nhập mật mã truy nhập, Điều khiển truy nhập có thể được thực hiện ở hai chế độ : chế độ dùng chung (share mode) và chế độ người dùng (user mode) Chế động dùng chung sử dụng một mật mã truy nhập tài nguyên chung cho nhiều người dùng Chế độ người dùng cung cấp cho mỗi tài khoản người dùng mật mã truy nhập tài nguyên khác nhau Vì lý do phải quản lý mật mã truy nhập, Samba có sử dụng tập tin /etc/samba/smbpassword để lưu trữ các mật mã truy nhập người dùng
2. Cơ chế bảo mật
• Chế độ bảo mật là gì?
Chế độ bảo mật như là một phương tiện để thông báo cho máy chủ như thế nào khi một máy khách sẽ xác thực Bây giờ, từ góc độ Windows (và lý do tại sao Samba tồn tại) chỉ có hai loại mức độ bảo mật: Chia sẻ mức độ và cấp độ người dùng Nhưng bởi vì Windows có nhiều cách xác thực nên Samba cần phải phá vỡ các mức người dùng xuống thấp hơn nữa Vì vậy, theo như Samba thì các cấp độ được gọi là chế độ và có năm chế độ: người sử dụng, chia sẻ, tên miền, quảng cáo,
và máy chủ
Để máy chủ Samba có thể chống lại lỗ hổng bảo mật nếu người dùng không thể (hoặc cho đến khi có thể) nâng cấp các bản vá, thì chúng ta cần nghiên cứu một số phương pháp
• Hạn chế số lượng kết nối đồng thời
Samba có thể giới hạn số lượng kết nối đồng thời khi smbd được đưa ra như một daemon (không từ inetd) Lựa chọn smb.conf của smbd tối cho phép quản trị viên xác định số lượng tối đa của các quá trình smbd chạy ở bất kỳ thời điểm nào Bất kỳ sự cố gắng kết nối tới máy chủ của máy khách đều sẽ bị từ chối
• Sử dụng bảo vệ dựa trên máy chủ
Trong nhiều cài đặt của Samba, mối đe dọa lớn nhất chính là kết nối mạng của bạn Theo mặc định Samba sẽ chấp nhận kết nối từ bất kỳ máy chủ, có nghĩa là nếu bạn chạy một phiên bản không an toàn của Samba trên một máy chủ được kết nối trực tiếp với Internet bạn có thể gặp phải mối đe dọa vô cùng to lớn Một trong những bản sửa lỗi đơn giản nhất trong trường hợp này là sử dụng các hosts cho phép và hosts
Trang 9từ chối tùy chọn trong tập tin cấu hình smb.conf để chỉ cho phép truy cập vào máy chủ của bạn từ một phạm vi cụ thể của host Một ví dụ có thể là:
Hosts allow = 127.0.0.1 192.168.2.0/24 192.168.3.0/24
Hosts deny = 0.0.0.0 / 0
Ở trên sẽ chỉ cho phép các kết nối SMB từ 'localhost' (máy tính của bạn) và từ hai mạng riêng và 192.168.2 192.168.3 Tất cả các kết nối khác sẽ bị từ chối kết nối ngay sau khi client gửi gói tin đầu tiên Việc
từ chối sẽ được đánh dấu như là không lắng nghe được tập tin bị lỗi
• Sử dụng bảo vệ giao diện
Theo mặc định Samba sẽ chấp nhận kết nối trên bất kỳ giao diện mạng mà nó tìm thấy trên hệ thống của bạn Điều đó có nghĩa nếu bạn
có một đường ISDN hoặc kết nối PPP với Internet sau đó Samba sẽ chấp nhận kết nối trên các liên kết
Bạn có thể thay đổi hành vi này bằng các tùy chọn như sau:
interfaces = eth* lo
bind interfaces only = yes
Mà với Samba để chỉ lắng nghe cho các kết nối trên giao diện với một tên bắt đầu bằng chữ ETH 'như eth0, eth1, cộng với trên giao diện loopback được gọi là “lo” Tên mà bạn sẽ cần phải sử dụng phụ thuộc vào hệ điều hành bạn đang sử dụng Ở trên chúng ta sử dụng tên gọi chung cho bộ điều hợp Ethernet trên Linux
• Sử dụng tường lửa
Nhiều người sử dụng tường lửa để từ chối truy cập vào dịch vụ mà
họ không muốn tiếp xúc với bên ngoài mạng của họ Điều này có thể là một ý tưởng rất tốt, mặc dù chúng ta nên sử dụng nó kết hợp với các phương pháp trên để có được bảo vệ ngay cả khi tường lửa của bạn không hoạt động đối với một số lý do
Nếu bạn đang thiết lập một bức tường lửa thì bạn cần phải biết các cổng TCP và UDP cho phép và ngăn chặn Samba sử dụng:
UDP/137 - được sử dụng bởi nmbd
UDP/138 - được sử dụng bởi nmbd
TCP/139 - được sử dụng bởi smbd
Trang 10TCP/445 - được sử dụng bởi smbd
• Sử dụng một IPC $ từ chối chia sẻ
Nếu các phương pháp trên là không phù hợp, sau đó bạn cũng có thể đặt một phủ nhận cụ thể hơn về IPC $ chia sẻ được sử dụng trong các lỗ hổng bảo mật mới được phát hiện Điều này cho phép bạn để cung cấp truy cập vào các cổ phiếu trong khi từ chối truy cập đến IPC $
từ máy chủ có khả năng không đáng tin cậy
Để làm điều đó bạn có thể sử dụng:
[Ipc $]
Host allow = 192.168.115.0/24 127.0.0.1
Host deny = 0.0.0.0 / 0
Điều này sẽ cho Samba là IPC $ kết nối không được phép từ bất
cứ nơi nào trừ hai địa điểm định sẵn (localhost và một localsubnet) Kết nối với client khác vẫn sẽ được cho phép Như IPC $ chia sẻ là phần duy nhất luôn luôn có thể truy cập nặc danh này cung cấp một mức độ bảo vệ chống lại những kẻ tấn công mà không biết tên người dùng / mật khẩu cho máy chủ của bạn Nếu bạn sử dụng phương pháp này sau đó khách hàng sẽ nhận được một "truy cập bị từ chối 'trả lời khi họ cố gắng
để truy cập vào IPC $ chia sẻ Điều đó có nghĩa rằng những khách hàng
sẽ không thể duyệt chia sẻ, và cũng có thể không thể truy cập một số các nguồn tài nguyên khác
Trang 113. Cài bảo mật server samba chia sẻ dữ liệu.
Mặc định, Samba giả theo Windows PDC trong hầu hết mọi thứ cần
để đơn giản việc chia sẻ file Chức năng của Linux không xuất hiện khi chúng ta làm như vậy Samba Domain và Linux chia sẻ cùng username
để có thể đăng nhập và Samba dựa trên domain Windows dùng password Linux và ngay lập tức có quyền truy cập các file trên directory của người dùng Linux Để đảm bảo tính bảo mật, bạn nên dùng password Samba và Linux khác nhau
a. Cài đặt
Thông thường, khi bạn cài Linux Fedora Core 1+ , trong CD có sẵn gói Samba Bạn có thể kiểm tra xem liệu gói Samba đã được cài hay chưa bằng dòng lệnh:
#rpm – q samba hoặc #locate samba
Nếu Samba đã được cài đặt rồi thì câu lệnh trên sẽ báo cho biết version của gói Samba bạn đã cài, còn nếu chưa thì sẽ có thông báo: package not install
Version của Samba
Trường hợp chưa tồn tại gói Samba, bạn có thể download gói Samba
từ trang web Samba FPT Servers: www.samba.org hay www.rpmfind.net Nếu lần đầu tiên Samba được cài trên máy thì dùng dòng lệnh:
#rpm -i samba.rpmNếu Samba đã được cài trên máy, bạn muốn nâng cấp lên một version mới thì dùng lệnh:
#rpm -U samba.rpm
Trang 12a. Khởi động.
Công việc tiếp theo sau khi cài đặt là khởi động Samba
Nếu Samba đã được cài, tồn tại một file cấu hình Samba, cách start Samba như sau:
Trong terminal windows gõ lệnh:
#service smb start
Hay vào Main Menu (hình cái nón) \ chọn System Settings \ chọn Server Settings \ sau đó chọn Services
Trong bảng Service Configuration, chọn file smb, đánh dấu check vào
và dùng biểu tưởng Start trên thanh công cụ để khởi động Samba
Sau khi khởi động xong, có thể kiểm tra lại
Trang 13Khi vào smb.conf, sẽ xuất hiện bảng:
Vào Open with gedit để chỉnh sửa các thông số theo nhu cầu
Trang 14File smb.conf là file chứa tất cả cấu hình chính của Samba, có thể xem, sửa,… tùy theo nhu cầu của chúng ta Trong file này có hai kiểu chú thích được xác định bằng dấu (;) và (#) đặt ở đầu các dòng Dấu (#) là dấu chú thích thực và bạn không thể bỏ dấu này đi được nhưng dấu (;) là dấu chú thích xác định thuộc tính ở hàng tương ứng có được chọn hay không, kiểu chú thích này có thể bỏ đi được.
Trong smb.conf được chia làm 2 thành phần chính: global settings và share definitions, chúng được đặt giữa 2 dấu [] Các thành phần khác sau global và share được xác định bằng phép gán “=”
Global Settings: chứa thông số điều khiển của Samba server
Password server: tùy chọn này xác định cho chúng ta sử dụng tài khoản và mật khẩu của máy chủ vùng đăng nhập vào máy server Linux.Security: kiểu bảo mật trong việc chia sẻ dữ liệu Samba hỗ trợ 4 kiểu bảo mật là: USER, SHARE, DOMAIN VÀ SERVER
Nếu bạn muốn sử dụng account và password trên máy chủ điều khiển vùng để truy nhập vào máy Linux thì đặt tham số DOMAIN và password server
Chúng ta dùng kiểu USER khi máy con yêu cầu kết nối thông qua username/password, đây là dạng bảo mật đơn giản nhất
Trong cấp độ bảo mật SHARE, các máy con xác nhận quyền của nó trên mỗi đối tượng chia sẻ
Printing, local master, encrypt password,… bạn có thể tham khảo thêm ở tài liệu Samba 3.2.x HOWTO
Trang 15Share definitions: khi có yêu cầu truy xuất từ máy trạm, Samba sẽ tìm các thư mục này trong phần Share definitions Nếu thư mục tồn tại nó
sẽ kiểm tra mật khẩu mà máy trạm cung cấp với mật khẩu Samba, nó sẽ chia sẻ thư mục này qua mạng nếu mật khẩu thỏa mãn
[Tên folder chia sẻ]
Common: lời giải thích về folder chia sẻ
Path: đường dẫn đến folder cần được chia sẻ trên server Nên thiết lập đường dẫn tuyệt đối cho folder chia sẻ (thêm / trước tên folder)
Valid users: xác định quyền hạn (của một user hay nhóm user) truy cập vào folder Các user được cách bởi khoảng trắng “ ”, nhóm user thì trước tên nhóm là dấu “@”
Browseable: có 2 tùy chọn là yes/no, nghĩa là hiện/không hiện thư mục này trên trình duyệt mạng (Windows Explorer)
Read only: cho phép người dùng máy trạm có thể thay đổi nội dung file hay không Nếu bỏ dấu chú thích tại dòng read only = no thì người dùng có thể thay đổi nội dung file, ngược lại (vẫn để dấu ;) thì người dùng chỉ có thể xem nội dung mà không thể tạo thêm hay thay đổi bất
cứ gì trong thư mục đó
Trong file smb.conf có một số thông số không thể gán giá trị bằng
“yes”, ví dụ: read only Nếu read only = yes thì smbd không hiểu giá trị
và phát sinh lỗi cấu hình Thực chất giá trị read only = yes chính là ;read only = no
Writeable,write list, public, printable, … bạn có thể tham khảo thêm ở tài liệu Samba 3.2.x HOWTO
a. Kiểm tra cấu hình
Sau khi thiết lập file cấu hình chúng ta nên kiểm tra lại, Samba cung cấp 2 công cụ là testparm và smbstatus Để kiểm tra chính xác bạn phải đảm bảo máy trạm và máy chủ phải nối được với nhau
• Kiểm tra bằng công cụ Testparm:
Testparm là chương trình cho phép kiểm tra giá trị của thông số trong file cấu hình Cấu trúc của câu lệnh này là:
Testparm configfile [hostname hostIP]
Configfile là đường dẫn và tên file cấu hình, mặc định nó lấy file smb.conf cất trong thư mục /etc/Samba/smb.conf