Thứ hai, 24/03/2014 | 00:00 GMT+7

Cách xác thực danh tính server SSH với Monkeysphere trên VPS Ubuntu

Việc quản lý số lượng lớn các khóa và server SSH có thể rất khó khăn khi tổ chức của bạn phát triển. Việc xác định chính xác các khóa hợp lệ và xóa các khóa không hợp lệ trong toàn tổ chức có thể chứa đầy lỗi và gây ra những hậu quả lớn đối với bảo mật server của bạn.

Ngoài ra, khi có thay đổi server , đôi khi user của bạn sẽ nhận được cảnh báo về việc không thể cài đặt tính xác thực của server của bạn. Hầu hết user sẽ không kiểm tra lại dấu fingerprint chính của server trước khi kết nối, cho phép ai đó có khả năng giả mạo server và thực hiện một cuộc tấn công trung gian.

Một dự án có tên là Monkeysphere đã được tạo ra để giải quyết những vấn đề này. Nó thực hiện điều này bằng cách tận dụng các khóa GPG và mô hình web tin cậy để xác thực thông tin đăng nhập của server và cung cấp khả năng quản lý user dễ dàng.

Trong hướng dẫn này, ta sẽ thảo luận về cách cài đặt Monkeysphere để xác thực server của bạn với user . Điều này sẽ giải quyết vấn đề user phải đoán xem server họ đang kết nối có thực sự là server mà họ đang cố gắng truy cập hay không. Thông thường, khi bạn kết nối với server lần đầu tiên, bạn sẽ thấy một cái gì đó giống như sau:

The authenticity of host '107.170.43.127 (107.170.43.127)' can't be established. ECDSA key fingerprint is 10:14:75:d6:42:a3:c5:59:d1:83:6d:cf:52:61:4a:52. Are you sure you want to continue connecting (yes/no)? 

Ta sẽ làm việc trong bài viết này để tránh hiển thị những thông báo này cho user của ta . Trong một hướng dẫn trong tương lai, ta sẽ thảo luận cách giải quyết vấn đề dễ dàng xác định và xác thực user .

Ta sẽ sử dụng các version VPS Ubuntu 12.04 để cấu hình hệ thống này. Ta sẽ có một server SSH mà ta sẽ cố gắng xác thực cho user của bạn . Ta cũng cần hai máy khác để chứng minh (dù là máy tính local hay version VPS). Một sẽ là máy tính của administrator và một sẽ là client mà ta sẽ sử dụng làm máy kiểm tra để xem liệu web tin cậy của ta có cho phép nó xác minh danh tính của server hay không.

Chiến lược cơ bản

Toàn bộ hệ thống Monkeysphere dựa vào các khóa GPG và các server chính để hoạt động. Bạn sẽ phải cấu hình các khóa này cho từng hệ thống trước khi ta có thể bắt đầu. Phần lớn cấu hình thực tế cũng sẽ được thực hiện thông qua các phím này.

Trước khi bắt đầu làm việc với GPG, bạn có thể cần xem bài viết của ta về cách sử dụng các khóa GPG . Ta sẽ cung cấp cho bạn các lệnh cụ thể cần thiết, nhưng kiến thức sâu hơn về những gì đang diễn ra có thể giúp bạn khắc phục sự cố trong trường hợp có sự cố.

Ba máy của ta và công dụng của chúng sẽ là:

  • server.example.com : Server SSH mà ta muốn xác thực cho client .
  • admin.example.com : Máy tính administrator của ta sẽ sử dụng để cấu hình quyền truy cập. Đây thường là máy tính gia đình của bạn, nhưng ta sẽ sử dụng một server khác trong hướng dẫn của ta .
  • client.example.com : Đây là ứng dụng mà ta sẽ sử dụng để kiểm tra xác thực của ta . Ta muốn máy tính này có thể kết nối với server mà không nhận được cảnh báo server không xác định.

Server SSH phải có domain có thể truy cập . Sử dụng hướng dẫn này để cài đặt domain trên DigitalOcean .

Đối với phần đầu tiên, ta muốn tạo khóa trên cả máy tính quản trị và client . Sau đó, ta sẽ tải các khóa này lên server khóa tập trung. Ta sẽ kéo khóa của administrator xuống từ server và ký tên và tin cậy nó bằng cách sử dụng khóa khách, cho thấy rằng khách hàng của ta tin tưởng administrator của ta .

Đây là cơ sở của toàn bộ kế hoạch xác minh. Thay vì tin tưởng một máy tính hoặc một key , ta đang tận dụng mô hình web tin cậy của GPG. Nếu bạn coi một người là người hiểu biết và tin cậy về server mà bạn đang cố gắng kết nối, bạn có thể hoãn lại với người đó để cho bạn biết server có hợp lệ hay không. Trong trường hợp này, khách hàng của ta sẽ tin tưởng rằng administrator server có thể xác thực danh tính của server .

Sau đó, ta có thể cấu hình Monkeysphere để sử dụng khung GPG để kéo thông tin xuống nhằm xác minh administrator mà ta tin tưởng xác nhận cho server mà ta đang cố gắng kết nối.

Cài đặt khóa GPG và xác thực

May mắn là GPG được cài đặt trên Ubuntu theo mặc định.

Ta sẽ bắt đầu bằng cách tạo một số khóa GPG trên cả hệ thống khách hàng và hệ thống administrator của ta . Các khóa này được liên kết với một user duy nhất và được sử dụng để xác định user đó trên phạm vi global . Mỗi người cần truy cập vào server SSH của bạn phải có các khóa GPG nhận dạng họ. Đây là cách ta xây dựng trang web tin cậy của bạn .

Tạo khóa GPG

Ta cần tạo khóa GPG trên cả client và máy quản trị. Thực hiện các hành động sau trên cả hai máy tính này:

gpg --gen-key 

Điều này sẽ nhắc bạn với một số câu hỏi để tạo cặp khóa của bạn. Đầu tiên, nó hỏi loại khóa nào bạn muốn tạo. Chọn “1” để tạo hai khóa RSA. Chấp nhận giá trị mặc định trong câu hỏi tiếp theo để tạo khóa 2048-bit. Chọn “0” để khóa không bao giờ tự động hết hạn, sau đó nhập “Y” để xác nhận thông tin là chính xác.

Tiếp theo, bạn cần cung cấp thông tin của bạn cho từng user này. Ta sẽ sử dụng tên “admin” và địa chỉ email “ admin@fakedomain.com ” cho các khóa administrator của ta . Đối với khách hàng của ta , ta sẽ sử dụng tên “khách hàng” và email “ client@fakedomain.com ”. Bạn có cơ hội thêm một comment tùy chọn, và sau đó bạn nên gõ “O” để cho biết rằng thông tin là ổn.

Nhập và xác nhận passphrase (password bảo vệ) để bảo vệ các phím.

Bây giờ máy tính sẽ tạo khóa bằng cách sử dụng các phần dữ liệu ngẫu nhiên được thu thập từ hệ thống. Điều này được gọi là "entropy" và được sử dụng để tạo một khóa thực sự ngẫu nhiên. Nó có thể mất một thời gian. Đôi khi, đăng nhập bằng một phiên SSH riêng biệt sẽ hữu ích để thực hiện một số công việc nhằm tăng tốc quá trình.

Khi khóa đã được tạo, nó sẽ được lưu trữ trong khóa GPG của bạn. Bạn có thể thấy nó bằng lệnh vào:

<pre>
gpg –list-key
</pre>
<pre>

/root/.gnupg/pubring.gpg

pub 2048R / <span class = “highlight”> 08D014B3 </span> 2014-03-14
khách hàng uid < client@fakedomain.com >
phụ 2048R / 4C73683E 2014-03-14
</pre>

Phần có màu đỏ ở trên là ID khóa rút gọn. Ta có thể sử dụng hàm băm này để tham chiếu đến khóa này.

Ta nên tải key của bạn lên server . Những server key này được nhân rộng trên khắp thế giới và cho phép bất kỳ ai lấy thông tin quan trọng của ta . Đây là những gì ta muốn, vì nó cho phép hai user của ta và server SSH tương tác với nhau và cài đặt mối quan hệ tin cậy.

Để tải các khóa của ta lên server bàn phím, trên client và máy tính quản trị của ta , ta cần nhập thông tin như thế này. Ta cần ID khóa mà ta đã đề cập ở trên:

<pre>
gpg –send-key <span class = “highlight”> key_id </span>
</pre>

Vì vậy, đối với khóa ứng dụng của ta ở trên, ta có thể tải nó lên server bằng lệnh :

gpg --send-key 08D014B3 

Ký các Key

Như vậy, cả administrator và khách hàng của ta đều có khóa GPG và đã tải chúng lên server khóa, chúng sẽ bắt đầu phổ biến tới các server khóa khác trên toàn thế giới. Có thể mất một khoảng thời gian để mỗi khóa được sao chép vào các server GPG trên khắp thế giới, vì vậy bạn có thể phải đợi một vài phút để các bước này hoạt động.

Sau khi đợi một vài phút, bạn có thể thử kéo phím đối diện trên mỗi máy tính của bạn xuống. Điều này nghĩa là , trên máy tính khách, hãy thử kéo khóa administrator xuống. Bạn cũng nên kéo xuống khóa client cho máy tính administrator .

Ta sẽ ký các khóa này, nghĩa là ta coi chúng là hợp lệ và đã xác minh chúng là khóa chính xác cho người mà ta đang cố gắng xác định. Để đảm bảo tuyệt đối rằng bạn đang nhận được key chính xác, ta sẽ thực hiện việc này mà không cần tìm kiếm và chỉ định khóa chính xác bằng cách nhận dạng bằng dấu fingerprint của nó.

Trên server khách hàng của bạn, lấy dấu fingerprint của khóa GPG của bạn bằng lệnh vào. “Khách hàng” là tên hoặc địa chỉ email bạn đã chọn khi tạo khóa của bạn :

<pre>
ứng dụng client gpg –with-dấu hai chấm –fingerprint
</pre>
<pre>
tru :: 1: 1394819815: 0: 3: 1: 5
pub: u: 2048: 1: 4B3F73E208D014B3: 2014-03-14 ::: u: client < client@fakedomain.com > :: scESC:
fpr :::::::::: <span class = “highlight”> 85ECDB498FB0CAB5F02989E64B3F73E208D014B3 </span>:
sub: u: 2048: 1: 254105194C73683E: 2014-03-14 :::::: e:
</pre>

Phần kết quả được đánh dấu ở trên là dấu fingerprint mà bạn đang tìm kiếm.

Giờ bạn đã có fingerprint này, trên máy tính của administrator , bạn có thể yêu cầu GPG tìm kiếm khóa có fingerprint đó và kéo nó xuống máy tính local , như sau:

gpg --recv-keys 85ECDB498FB0CAB5F02989E64B3F73E208D014B3 

Thao tác này sẽ kết nối với server bàn phím mặc định và yêu cầu khóa được nhận dạng bằng fingerprint đó. Nó sẽ được chuyển vào hệ thống local của ta .

Bây giờ ta có quyền truy cập vào khóa, ta có thể ký vào nó để cho biết rằng ta , với quyền là administrator , tin tưởng khóa thuộc về ứng dụng client :

gpg --sign-key 85ECDB498FB0CAB5F02989E64B3F73E208D014B3 

Bây giờ, ta đã ký khóa trên hệ thống local của ta . Bây giờ ta nên gửi lại key của khách hàng cho server . Người cung cấp khóa sẽ cập nhật thông tin của bạn trên khóa khách hàng để cho biết rằng account administrator của ta đã ký vào khóa và coi nó là hợp lệ.

Để gửi lại khóa đã ký cho server , ta nhập:

gpg --send-key 85ECDB498FB0CAB5F02989E64B3F73E208D014B3 

Server khóa hiện có khóa administrator của ta và khóa khách hàng, giống như trước đây. Sự khác biệt là server khóa bây giờ cũng có chữ ký từ khóa administrator trên khóa client .

Bây giờ ta cần thực hiện thao tác ngược lại (ký tên vào khóa administrator bằng khóa khách hàng). Để thực hiện việc này, trên máy của administrator , ta nhận được fingerprint của khóa administrator :

gpg --with-colons --fingerprint admin 

Bây giờ, trên client , ta sử dụng dấu fingerprint mà ta đã thu thập từ kết quả để kéo xuống, ký và sau đó tải lên khóa của administrator , giống như ta đã làm trước đây:

gpg --recv-keys 7C873BB244245CB13BFEFC31F7C66E2FF945A061 gpg --sign-key 7C873BB244245CB13BFEFC31F7C66E2FF945A061 gpg --send-key 7C873BB244245CB13BFEFC31F7C66E2FF945A061 

Sau đó, trên cả hai máy, ta cần làm mới các phím của bạn . Điều này là do mỗi user của ta đã có khóa của họ được ký, nhưng họ không có chữ ký đó trên máy tính của chính họ, chỉ trên máy tính đối diện và trong server khóa. Bạn cần đợi một vài phút tại đây để cho phép các thay đổi có hiệu lực, sau đó nhập:

gpg --refresh-keys 

Bạn cần xác minh bản cập nhật đã được xử lý. Đầu ra phải có một dòng cho biết “chữ ký mới: 1”. Nếu điều này không xuất hiện, hãy thử lại cho đến khi nó hiển thị.

Bây giờ, mỗi máy tính của bạn phải có cả hai khóa đã ký.

Tin tưởng vào Phán quyết của Administrator

Để web tin cậy của ta thực sự hoạt động, ta sẽ không chỉ phải yêu cầu khách hàng ký vào khóa administrator , ta còn phải cài đặt rằng khách hàng “tin tưởng” vào phán đoán của administrator .

Điều này nghĩa là khi administrator nói rằng server SSH là máy mà nó nói, ta , với quyền là khách hàng, có thể tin tưởng vào chữ ký mà người khác , administrator , tạo ra.

Đầu tiên, ta có thể xem cài đặt hiện tại trên ứng dụng client của bạn bằng lệnh :

gpg --check-trustdb 

gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model gpg: depth: 0  valid:   1  signed:   1  trust: 0-, 0q, 0n, 0m, 0f, 1u gpg: depth: 1  valid:   1  signed:   0  trust: 1-, 0q, 0n, 0m, 0f, 0u 

Đây là một tập hợp thông tin rất khó hiểu. Dòng đầu tiên cho biết mô hình ủy thác mà ta đang vận hành. Về cơ bản, nếu ta có một khóa được ký bởi một user mà ta hoàn toàn tin tưởng, thì ta sẽ coi khóa đó cũng hợp lệ. Ta cũng có thể tin tưởng một khóa nếu nó được ký bởi ít nhất 3 người mà ta chỉ tin tưởng một chút.

Dòng thứ hai cho ta biết về mức độ tin cậy "độ sâu 0" của ta . Về cơ bản đây là thông tin về private key của ta . Ta coi nó là hợp lệ và đã ký. Và phần "tin cậy" cho ta biết rằng khóa nằm trong danh mục "u", nghĩa là cuối cùng được tin cậy.

Dòng thứ ba cho ta biết về các phím ở “độ sâu 1”. Đây là những key mà ta đã tự mình ký. Ta có thể thấy rằng ta coi một khóa là hợp lệ ( ta đã ký khóa quản trị để làm cho nó hợp lệ) và khóa quản trị chưa ký bất kỳ khóa bổ sung nào mà ta quan tâm.

Trong phần tin cậy của dòng đó, ta có một trường có "1-". Điều này nghĩa là một khóa mà ta có ở cấp độ này (khóa quản trị) chưa được cung cấp cài đặt tin cậy. Ta không biết mức độ tin tưởng để đặt vào key này.

Ta muốn hoàn toàn tin tưởng vào khóa quản trị. Bằng cách này, bất kỳ khóa nào mà administrator ký (như server SSH mà ta đang cố gắng xác minh danh tính) sẽ được ta coi là hợp lệ . Để thực hiện việc này, ta có thể cập nhật database tin cậy của bạn trên client bằng lệnh :

gpg --update-trustdb 

Bạn cần chỉ định xếp hạng tin cậy cho bất kỳ khóa nào bạn đã ký mà hiện không có giá trị tin cậy. Nó sẽ trông giống thế này:

gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model gpg: depth: 0  valid:   1  signed:   1  trust: 0-, 0q, 0n, 0m, 0f, 1u No trust value assigned to: 2048R/49E95F19 2014-03-14       "admin <admin@fakedomain.com>"  Primary key fingerprint: A612 56B8 5307 B7ED 9AD8  D93E 9E06 881E 49E9 5F19  Please decide how far you trust this user to correctly verify other users' keys (by looking at passports, checking fingerprints from different sources, etc.)    1 = I don't know or won't say   2 = I do NOT trust   3 = I trust marginally   4 = I trust fully   s = skip this key   q = quit  Your decision? 

Ta muốn hoàn toàn tin tưởng vào khóa này, vì vậy hãy nhập “4”.

Bây giờ, vì ta tin tưởng vào đánh giá của administrator , ta có thể chắc chắn một cách hợp lý rằng các khóa mà administrator ký được liên kết hợp lệ với user hoặc dịch vụ được đề cập (thường ta sẽ sử dụng tên thật thay vì khách hàng hoặc administrator ).

Cài đặt Monkeysphere và cấu hình server SSH

Bây giờ ta đã cài đặt các client và máy tính administrator bằng các khóa GPG của chúng, ta có thể bắt đầu cài đặt và cấu hình Monkeysphere thực tế.

Có một gói Monkeysphere trong repository lưu trữ mặc định của Ubuntu. Nó chứa cả tiện ích server và client cần thiết để SSH sử dụng GPG để xác thực. Như vậy, ta cần cài đặt gói trên mỗi máy tính của bạn .

Trên tất cả các máy tính của bạn trong mô hình này ( administrator , client , server SSH), hãy cài đặt Monkeysphere bằng lệnh :

sudo apt-get update sudo apt-get install monkeysphere 

Bây giờ ta có các thành phần cần thiết để ghép các mảnh này lại với nhau. Trên server SSH, ta sẽ tạo một khóa GPG đặc biệt bằng cách sử dụng một tiện ích shell bọc có trong Monkeysphere. Khóa được tạo sẽ dựa trên ssh_host_rsa_key được sử dụng để xác định server cho client .

Trên server SSH, nhập:

<pre>
Monkeysphere-host import-key / etc / ssh / ssh host rsa_key ssh: // <span class = “highlight”> server.example.com </span>
</pre>

Thành phần thứ hai ở trên phải chỉ ra domain của server SSH. Điều này sẽ giúp client tìm đúng khóa server khi cố gắng xác minh kết nối server .

Bây giờ, ta có thể reload khóa vừa tạo lên server public key . Lần này, ta sẽ lại sử dụng một chương trình wrapper có trong bộ Monkeysphere:

monkeysphere-host publish-key 

Thao tác này sẽ tải lên khóa server của bạn và cung cấp cho khách hàng có nhu cầu kết nối.

Xác thực Khóa server với quyền là Administrator server

Bây giờ, ta có khóa của server SSH đang được truyền cho các server trên thế giới. Nhưng điều này giúp ta như thế nào?

Chà, cách GPG hoạt động là thông qua việc cài đặt cái mà nó gọi là “mạng tin cậy”. Nói một cách đơn giản, nó hoạt động bằng cách cài đặt một mạng lưới cá nhân gồm những người mà bạn biết và danh tính của họ mà bạn có thể xác minh ở mức độ chắc chắn. Sau đó, nó sử dụng các mối quan hệ tin cậy đó để cho phép bạn giảm bớt trách nhiệm biết thông tin cho những người bạn tin tưởng.

Trong trường hợp của ta , ta ( với quyền là khách hàng trong ví dụ này) đang giảm bớt trách nhiệm biết liệu server có hợp lệ hay không cho administrator của ta , người mà ta tin tưởng. Administrator của server nên biết rõ liệu thông tin đăng nhập của server có được kiểm tra hay không.

Vì vậy, những gì ta cần làm bây giờ là ký khóa GPG của server SSH với quyền là administrator server , điều này sẽ cho phép user client của ta xác minh danh tính của server bằng administrator tin cậy.

Trên server SSH, lấy fingerprint GPG bằng lệnh :

monkeysphere-host show-key 

pub   2048R/0D281337 2014-03-14 uid                  ssh://fakedomain.com OpenPGP fingerprint: E06A426459E584F272DB708AD2D462790D281337 ssh fingerprint: 2048 61:1e:a7:66:1d:04:64:80:3f:27:81:34:31:78:8d:df (RSA) 

“ Fingerprint OpenPGP” giống với fingerprint GPG của ta . Đây là những gì ta sẽ sử dụng để kéo khóa xuống máy tính của administrator của ta và ký tên.

Trên máy tính của administrator của ta , hãy nhập mã này để lấy khóa của server SSH. , bạn có thể cần đợi một vài phút:

gpg --recv-key E06A426459E584F272DB708AD2D462790D281337 

Ta sẽ ký khóa, giống như ta đã làm ở trên với khóa khách hàng:

gpg --sign-key E06A426459E584F272DB708AD2D462790D281337 

Cuối cùng, ta cần nhớ reload khóa đã ký vào server :

gpg --send-key E06A426459E584F272DB708AD2D462790D281337 

Xác minh Danh tính của Server SSH từ Máy khách

Bây giờ, ta có mọi thứ để xác thực danh tính của server SSH từ client .

Để làm điều này, ta sẽ phải gói các lệnh SSH trong một tiện ích Monkeysphere. Điều này sẽ yêu cầu khách hàng của ta sử dụng Monkeysphere để kiểm tra khóa GPG của server mà ta đang cố gắng truy cập. Sau đó, nó sẽ xem liệu ta có tin tưởng bất kỳ ai đã xác nhận server hợp lệ hay không.

Ta sẽ thực hiện việc này theo cách thủ công lần đầu tiên để cho bạn thấy điều gì đang xảy ra. Sau đó, ta có thể thêm nó vào một file để thực hiện việc này tự động.

Trên client , gõ lệnh thủ công như sau:

<pre>
ssh -oProxyCommand = 'Monkeysphere ssh-proxycommand% h% p' <span class = “highlight”> server.example </span> .com
</pre>
<pre>
——————– Cảnh báo Monkeysphere ——————-
Monkeysphere đã tìm thấy các khóa OpenPGP cho tên server này, nhưng không có khóa nào có hiệu lực đầy đủ.
Đã tìm thấy khóa OpenPGP trùng với khóa ssh do server cung cấp:

quán rượu 2048R / 0D281337 2014-03-14
uid [không xác định] ssh: //server.example.com
sig! 3 0D281337 2014-03-14 ssh: //fakedomain.com
Fingerprint khóa RSA là 61: 1e: a7: 66: 1d: 04: 64: 80: 3f: 27: 81: 34: 31: 78: 8d: df.

——————– ssh tiếp tục bên dưới ——————–
Không thể cài đặt tính xác thực của server 'server.example.com (<no hostip cho lệnh proxy>)'.
Dấu fingerprint của khóa ECDSA là 78: 50: 80: 60: 2a: a3: 51: 51: 37: 9d: 25: 8b: d4: 0c: d1: 15.
Bạn có chắc chắn muốn tiếp tục kết nối (có / không)?
</pre>

Nhập "không" ở đây.

Như bạn thấy , ta có thông báo thông thường về cách không thể cài đặt tính xác thực của server mà ta đang cố gắng kết nối. Ta vẫn chưa khắc phục sự cố và chưa xác minh danh tính của server , vì vậy ta phải nhập “no” để bảo vệ mình khỏi kết nối với server không chính xác.

Tuy nhiên, ta cũng đã được cung cấp một phần thông tin bổ sung trong tiêu đề phần “Cảnh báo của Monkeysphere”. Nó cho ta biết rằng nó có thể truy xuất khóa, nhưng nó không thể xác minh server vì nó không có mối quan hệ tin cậy cần thiết.

Nếu ta nhìn vào các khóa của bạn trong chuỗi khóa của client , ta sẽ nhận thấy rằng ta hiện có khóa của server SSH:

gpg --list-keys 

/root/.gnupg/pubring.gpg ------------------------ pub   2048R/87791BD0 2014-03-14 uid                  client &lt;client@fakedomain.com&gt; sub   2048R/3294D31D 2014-03-14  pub   2048R/54AD641F 2014-03-14 uid                  admin &lt;admin@fakedomain.com&gt; sub   2048R/A87CADCB 2014-03-14  pub   2048R/0D281337 2014-03-14 uid                  ssh://fakedomain.com 

Vì vậy, ta có key trong hệ thống của bạn bây giờ. Bây giờ ta chỉ cần làm mới các phím của bạn . Thao tác này sẽ lấy bất kỳ chữ ký nào cho các khóa trong hệ thống của ta :

gpg --refresh-keys 

Bạn sẽ lại thấy một dòng có nội dung “ new signatures: 1 ”. Ta có thể thấy điều này bằng cách kiểm tra các chữ ký có sẵn trên khóa của server SSH:

<pre>
gpg –list-sigs ssh: // <span class = “highlight”> server.example.com </span>
</pre>
<pre>
quán rượu 2048R / 0D281337 2014-03-14
uid ssh: //server.example.com
sig 3 0D281337 2014-03-14 ssh: //server.example.com
sig 54AD641F 2014-03-14 admin < admin@fakedomain.com >
</pre>

Như bạn thấy , bây giờ ta thấy một dòng "sig" liệt kê khóa của administrator . Vì khách hàng của ta tin tưởng administrator , giờ đây ta có thể tin cậy server SSH bằng proxy.

Hãy thử lại lệnh của ta :

ssh -oProxyCommand='monkeysphere ssh-proxycommand %h %p' server.example.com 

root@server.example.com's password: 

Như bạn thấy , ta hiện đã nhận được dấu nhắc password mà không yêu cầu ta xác minh tính hợp lệ của server SSH. Đó là bởi vì ta đã xác minh danh tính của nó thông qua GPG.

Để tránh phải nhập lệnh dài này mỗi khi ta muốn SSH vào server , ta thêm lệnh này vào file cấu hình trên client của ta :

nano ~/.ssh/config 

Host * ProxyCommand monkeysphere ssh-proxycommand %h %p 

Điều này sẽ cho phép ta kết nối thông qua SSH như bình thường và sẽ thực hiện tất cả xác minh của Monkeysphere trong nền:

ssh server.example.com 

Để kiểm tra kỹ xem điều này có đang hoạt động hay không, vui lòng xóa file known_hosts hiện tại của bạn:

rm ~/.ssh/known_hosts 

Bây giờ, hãy thử lại lệnh ssh:

ssh server.example.com 

Bạn sẽ được đăng nhập hoặc được yêu cầu nhập password , không bao giờ hỏi bạn có chấp nhận server hay không. Bạn cũng có thể thấy rằng file known_hosts đã được tạo lại tự động và server đó đã được thêm vào:

cat ~/.ssh/known_hosts 

server.example.com ssh-rsa AAAB3NzaC1yc2EAAAADAQABAAABAQC9aTHZmHZSgwNtwichF0AqDI74bCMtI29kqPDZaNn2r86NGIElRUlQiRImmZXs5oEjF0o8VaW6s1cIj0hC5ziDPShJ3VzZTWz9RmJ9xfPPcAPw2JbV1c1Q1bplstQqCZmFcRZyofztnP55HqOiJ4htLMxH+a9lM4AydDZtGHhzU+usxUjHniVbxCUVntpunlwtMk+Mtk9eysVdnJCJyV02/W89HExiO9QRpv+EugKN1eCQYrGvNbKWQKq4gSJ0RDwOSKNgkY/Ii0MsGJ2HuioO9np6IEdeZdgSGHPA23+zZe8asrN62iLUBADDkyIR6FAonCvfh99hbFxpNz2N8Mdb MonkeySphere2014-03-21T21:30:44 

Kết luận

Nếu bạn cấu hình tổ chức của bạn để sử dụng Monkeysphere cho SSH, user SSH sẽ không bao giờ phải đặt câu hỏi về tính hợp lệ của server trong tổ chức của bạn. Sau khi user của bạn tin tưởng các administrator server và đã cấu hình SSH của họ để dựa vào Monkeysphere và giả sử các administrator cảnh giác về việc ký các server mới, user của bạn sẽ không bao giờ được yêu cầu xác minh danh tính server .

Việc chấp nhận một cách mù quáng các server là hợp lệ là một rủi ro lớn và hầu hết user sẽ không có khả năng kiểm tra danh tính của server một cách hợp lệ mà không có sự trợ giúp của administrator . Vì vậy, bằng cách sử dụng Monkeysphere, ta có thể cắt bỏ toàn bộ quy trình này vì sự an toàn của toàn bộ tổ chức.

Điều này có vẻ như rất nhiều công việc, nhưng việc cài đặt mạng tin cậy sẽ trở nên ít công việc hơn khi bạn thực hiện và cho phép bạn tránh các cuộc tấn công nguy hiểm theo kiểu man-in-the-middle.

Trong bài viết tiếp theo, ta sẽ thảo luận về cách sử dụng Monkeysphere để xác thực user của bạn với server SSH .

<div class = “author”> Bởi Justin Ellingwood </div>


Tags:

Các tin liên quan

Cách xác thực người dùng với server SSH bằng Monkeysphere trên VPS Ubuntu
2014-03-24
Cách thiết lập DNSSEC trên server DNS BIND ủy quyền
2014-03-19
Cách thiết lập DNSSEC trên server DNS BIND ủy quyền
2014-03-19
Cách cài đặt TrueCrypt (CLI) trên Linux
2014-03-17
Cách sử dụng Công cụ IPRoute2 để quản lý cấu hình mạng trên VPS Linux
2014-03-11
Cách sử dụng các lệnh và mở rộng lịch sử Bash trên VPS Linux
2014-03-05
Giới thiệu về Bảo mật VPS Linux của bạn
2014-03-04
Cách đọc và đặt các biến Môi trường và Hệ vỏ trên VPS Linux
2014-03-03
Cách đọc và đặt các biến Môi trường và Hệ vỏ trên VPS Linux
2014-03-03
Cách sử dụng cd, pwd và ls để khám phá hệ thống tệp trên server Linux
2014-02-28