Bảo mật truy cập từ xa đối với các máy trạm

Federico Kereki

Việc truy cập vào máy chủ nội bộ của bạn có thể khó giải quyết, đặc biệt nếu không có một địa chỉ IP cố định, tuy nhiên với Linux, DynDNS, PAM và NX Free bạn hoàn toàn có thể tạo một đường dẫn truy cập an toàn cho máy tính của mình.

Cách đây một vài tháng, khi tác giả của bài viết này có chuyến đi từ Montevideo, Uruguay đến New York. Trong lúc ở trên thuyền một vài tuần, anh ta phải bảo đảm rằng có thể truy cập máy về máy chủ nội bộ một cách an toàn.

Anh ta phải giải quyết ba vấn đề để đưa mọi thứ về hoạt động một cách trơn tru. Đầu tiên đó là phải có một kết nối Asymmetric Digital Subscriber Line (ADSL) không có địa chỉ IP cố định, điều đó có nghĩa địa chỉ IP của anh ta có thể thay đổi, vậy có nghĩa là phải truy cập vào máy tính mà không cần biết địa chỉ IP. Thứ hai là việc sử dụng SSH, nhưng rất nhiều kẻ luôn cố gắng tấn công vào các máy tính có cổng SSH mở, vì vậy anh ta không muốn máy tính của mình trở thành một mục tiêu mở. Cuối cùng là những thông tin anh có được về NX Free Edition của NoMachine và muốn thử sử dụng nó, nhưng phải bảo đảm rằng thực hiện việc đó là an toàn.

Truy cập máy tính không có địa chỉ IP cố định

Việc không có địa chỉ IP cố định là một vấn đề, tuy nhiên có một giải pháp dễ dàng: DynDNS từ Dynamic Network Services. Dịch vụ miễn phí này cho phép bất cứ ai có tên miền phụ trỏ đến một máy tính có địa chỉ IP thay đổi. Bạn chỉ cần cài đặt một nâng cấp máy khách làm sao giữ cho tên máy chủ được cập nhật với địa chỉ IP hiện hành của máy khách bằng cách báo cho máy chủ trung tâm mỗi lần có thay đổi địa chỉ. Với nhiều router hiện đại, bạn còn có thể thực hiện việc này mà không cần máy khách bằng cách cấu hình router thực hiện việc tự thông báo.

Vào trang DynDNS, đăng ký một tài khoản miễn phí và chọn một miền (tác giả bài này đã chọn là remotekereki.homelinux.com). Cuối cùng, thực hiện theo các hướng dẫn để lấy được chương trình Ddclient, đó chính là một kịch bản Perl nhằm giúp cập nhật DynDNS. Việc cài đặt Ddclient hoàn toàn dễ dàng: bạn chỉ cần lấy mã, extract nó vào /usr/sbin (bạn sẽ phải làm việc như một root), và chỉnh /etc/ddclient/ddclient.conf để cung cấp các thông tin chi tiết về trang:

pid=/var/run/ddclient.pid
daemon=600
protocol=dyndns2
use=web, web=support.easydns.com/utils/get_ip.php
server=members.dyndns.org
login=yourOwnUserAccount
password=yourOwnPassword
yourOwnDomainName

Tại root, tác giả đã chạy chkconfig ddclient sau /etc/init.d/ddclient, chuẩn bị thẩm định mọi thứ đang làm việc, tác giả đã thử ping remotekereki.homelinux.com và được trả lời, điều đó có nghĩa là đã tìm thấy địa chỉ này. Vấn đề đầu tiên đã được giải quyết!

Bảo vệ truy cập SSH

Modul thẩm định (PAM) là một khóa tạo khả năng linh động cho vấn đề bảo mật. Nó thường được sử dụng theo cách tạo sự thẩm định với mật khẩu người dùng, sau đó kiểm tra xem mật khẩu đó có hợp lệ với mật khẩu chính thống được lưu trữ trong file /etc/passwd hay không. Hiện có rất nhiều phương pháp khác cho vấn đề này, kể đến trong đó gồm có những thay thế của file /etc/passwd, các thẻ thông minh, thiết bị phần cứng. Thay vì việc ghi lại tất cả các chương trình để hỗ trợ phương pháp này, bạn có thể cài đặt một PAM và kiểm tra các cần thiêt trước khi được thực hiện.

Tác giả đã bổ sung thêm một số hạn chế truy cập bằng vài dòng phía dưới đây trong file etc/pam.d/sshd:

#%PAM-1.0 auth include common-auth auth required pam_nologin.so account include common-account password include common-password session include common-session account required pam_access.so

Những thực thi của modul pam_access đã bổ sung thêm các điều khiển dựa trên file /etc/security/access.conf. Tác giả đã tự soạn thảo nó để chỉ ra những ai có thể truy cập máy chủ anh ta:

+ : ALL : 192.168. + : remote1776 : ALL + : nx : ALL - : ALL : ALL

Dòng đầu tiên có nghĩa rằng bất cứ ai (“ALL”) cũng đều có thể đăng nhập vào máy tính. Dòng thứ hai cho phép người dùng remote1776 có thể truy cập vào máy tính vào bất kỳ điểm nào trên thế giới và dòng thứ ba đồng ý cho phép các quyền tương tự nhau đối với những người dùng nx mà NX Free sử dụng. Dòng cuối cùng vô hiệu hóa truy cập với tất cả người dùng không có trong các thành phần trên.

Ngườ dùng remote1776 là một tài khoản có các quyền tối thiểu mà tác giả đã tạo để chỉ cho phép bản thân tác giả có lối vào máy tính, vì vậy tác giả có thể thực thi và tự làm việc nếu cần. Nếu ai đó đoán đúng được mật khẩu cho remote1776, thì người đó vẫn phải đoán thêm một số mật khẩu cho các thành phần khác; nó là một hàng rào chắn mở rộng trước khi một kẻ xâm phạm có thể gây ra những hỏng hóc nghiêm trọng.

Bạn cần cấu hình SSH để sử dụng tất cả. Tác giả đã soạn thảo /etc/ssh/sshd_config gồm có:

Port 16949
Protocol 2
PermitRootLogin no
MaxAuthTries 3
UsePAM yes

Lưu ý rằng các dòng đó ảnh hưởng đến toàn file; bạn sẽ phải xem xét vè chúng. Dòng đầu tiên thay đổi chuẩn SSH, cổng 22 đã thành một số khác, vì vậy nó sẽ khó khăn hơn trong việc đóan đúng số cổng. Ở đây bạn phải cẩn thận không sẽ chọn phải số cổng đã được sử dụng. Tác giả cũng đã mở cổng này trong tường lửa của anh ta.

Dòng “protocol 2” tránh sử dụng giao thức nào đó kém hơn. Dòng thứ ba có tính chất giải thích: tác giả không muốn bất cứ ai có thể đăng nhập với tư cách root; chúng ta hãy làm cho chúng an toàn hơn trước những hacker! Chỉ cho phép 3 lần thực hiện. Dòng cuối cùng làm cho SSH sử dụng cấu hình PAM.

Tất cả điều đó có nghĩa rằng tác giả phải khởi động lại SSH với /etc/init.d/sshd restart, và có thể phải chạy ssh remote1776@remotekereki.homelinux.com:9622 để truy cập vào máy của anh ta.

Sử dụng NX Free

Sau khi đã thực hiện tất cả những điều trên, cho NX Free làm việc với những hạn chế được bổ sung là không cần thiết. NX Free bản thân nó đã có những bổ sung về phương pháp bảo mật, tuy nhiên tác giả đã bổ sung thêm một số điều chỉnh. Đầu tiên, anh thêm người dùng nx vào danh sách những người dùng được phép. Thứ đến là định nghĩa kết nối, thay đổi cổng 22 thành cổng mới 16949. Đó là tất cả những gì anh đã thực hiện.

Thứ Ba, 09/10/2007 09:42
31 👨 1.202