Đăng ký Đăng nhập

Tài liệu Giới thiệu openssh

.PDF
20
445
70

Mô tả:

Giới thiệu OpenSSH GIỚI THIỆU OpenSSH là một chương trình mã nguồn mở (Open Source) được sử dụng để các giao dịch giữa các host với nhau bằng cách sử dụng Secure Shell (SSH). N thế an toàn cho những chương trình được sử dụng để kết nối như: Telnet, rlogi luôn mã hoá (encrypt) tất cả các giao dịch, ẩn đi, che dấu username và passwor cho những phiên đăng nhập từ xa. Sau khi phiên đăng nhập được thực hiện, nó (encrypt) tất cả những dữ liệu giao dịch giữa 2 host Dự án OpenSSH được phát triển dựa trên nền tảng của dự án Open BSD (một Unix). Nó được thiết kế để sử dụng những thuật toán mã hoá mạnh để nâng ca ngăn chặn sự phá hoại của các hacker. Mặc dù được xây dựng và phát triển bở OpenBSD, nó cũng có khả năng tương thích và có thể hoạt động trên hầu hết c họ Unix: Linux, HP-UX, AIX, Irix, SCO, MacOS X, Cygwin, Digital Unix/ SNI/Reliant Unix, NeXT, Solaris... OpenSSH không phải là một chương trình. Nó là một bộ các chương trình kết - OpenSSH Client (ssh): Chương trình được sử dụng cho các đăng nhập từ xa. và mã hoá (encrypt) trong mỗi phiên đăng nhập ở mức độ cao. Nó là sự thay th rlogin và telnet đã tỏ ra lỗi thời và kém an toàn. - Secure Copy Program (scp): Được sử dụng cho việc copy file từ xa, copy cá khác nhau trên Internet. Nó hỗ trợ username và password. - Secure File Transfer Program (sftp): Được sử dụng để phục các yêu cầu FT toàn. - OpenSSH Deadmon (shhd): Đặt OpenSSH chạy ở chế độ daemon trên các h ……………. Trên đây là những Tools chính không thể thiếu trong bộ OpenSSH. Ngoài ra c Plugin, Addin nữa... CÀI ĐẶT Để lấy OpenSSH bạn lên Homepage chính của nó:http://www.openssh.org Download một version phù hợp với hệ thống của mình. Tôi dùng Linux nên tô *.rpm. Sau đó sử dụng lệnh [email protected]#: rpm -Uvh *.rpm Nếu bạn sử dụng các hệ thống khác thì việc cài đặt nó cũng tương tự. Bạn dow với hệ thống của mình. Nó có thể là *.tar, *.tar.gz, *.gz...etc. Bung nén nó vào [email protected] #: ./configure [email protected] #: make [email protected] #: make install Tiếp đó theo làm theo các chỉ dẫn của script. Công việc cài đặt không mấy khó hãy dành thời gian và công sức cho công việc cấu hình. CÁC TÍNH NỔI BẬT CỦA OPEN SSH Open SSH cung cấp khá nhiều tính năng để giúp cho việc truyền thông giữa 2 toàn. Dưới đây là một số tính nổi bật: 1) Khả năng mã hoá mạnh bởi việc sử dụng chuẩn mã hoá 3 DES và Blow mã hoá trên đều đuợc cung cấp miễn phí và sử dụng rộng rãi ở nhiều nước trên cung cấp khả năng mã hoá chứng thực thời gian. Blowfish cung cấp khả năng Cũng như những chuẩn mã hoá khác cả 2 chuẩn nêu trên đều cung cấp khả năn liệu trước khi nó được đưa vào đường truyền một cách an toàn. 2) Khả năng chứng thực mạnh bởi việc sử dụng các cơ chế Public Key, OP Password), Kerberos: Có tác dụng bảo vệ chống lại tính dễ tổn thương trong thực bởi việc khai thác và sử dụng các kỹ thuật như: IP Spoof, DNS Spoof, Fa phương pháp chứng thực được Open SSH sử dụng : - Chỉ chứng thực Public Key - Sự chứng thực host bởi việc sử dụng Public Key kết hợp với .rhost - Sự chứng thực dựa trên OPTs kết hợp với s/key - Sự chứng thực dựa trên cơ chế Kerberos 3) Mã hoá giao thức X11 cho việc sử dụng X Window: Mã hoá dữ liệu trong X Window giữa 2 host. Được sử dụng để chống lại những cuộc tấn công từ xa như Snooping, Hjacking… 4) Mã hoá cho quá trình chuyển đổi cổng (Port Forwarding): Cho phép qu các port TCP/IP tới một hệ thống khác thông qua một kênh được mã hoá. Nó đ những giao thức Internet chuẩn không cung cấp khả năng mã hoá dữ liệu trên đ SMTP, POP, FTP, Telnet… 5) Đại diện chuyển tiếp cho những đăng nhập vào các mạng đơn: Một Key người dùng có thể và thường được lưu giữ trên PC của họ, nó có thể trở thành chứng thực. Khi người sử dụng hệ thống truy cập từ một hệ thống mạng khác. được chuyển tới cho trạm đại diện chứng thực này. Nó có tác dụng cho phép n cập đến hệ thống của bạn một cách an toàn từ bất kỳ hệ thống nào. 6) Nén dữ liệu: Cung cấp khả năng nén dữ liệu một cách an toàn. Nó rất có ý n thống mạng không được nhanh. 7) Chứng thực chung cho Kerberos và Andrew File System bằng cách sử d Những người sử dụng Kerberos và AFS sẽ được cung cấp một password chung truy cập 2 dịch vụ trên trong một thời gian nhất định. NGUYÊN LÝ HOẠT ĐỘNG CỦA OPEN SSH Trước hết chúng ta cùng tìm hiểu về cơ chế chứng thực cho các lệnh r* (rlogin dụng rlogin, điều kiện đầu tiên là người dùng đó phải có một account trên hệ t đăng nhập từ xa đó. Chẳng hạn trên hệ thống từ xa đã có account binhnx2000. cục bộ tôi kết nối tới một hệ thống từ xa, thì sẽ không có bất cứ yêu cầu hỏi pa truy nhập vào hệ thống từ xa này. Đơn giản bởi account binhnx2000 của tôi đã bởi file .rhost đươc đặt trong thư mục /home/binhnx2000 trên hệ thống từ xa. File .rhost chứa đựng hostname và username yêu cầu cho các account cần để s tới hệ thống. Chẳng hạn hostname của tôi là vnzone.net và username của tôi là truy cập đến hệ thống không cần Passowd thì các thông tin về tôi trong file .rh sau: Hostname Username Đối với hostname phải là hostname đầy đủ của hệ thống. Đối với username ph hợp lệ đang tồn tại trên hệ thống mà bạn muốn login vào. Một ví dụ cụ thể: nếu tôi muốn sử dụng rlogin. Thì admin phải tạo một file .rhost trong /home/binhnx2000 với nội dung: domain.com binhnx2000 Mọi việc xong xuôi! Bây giờ khi tôi muốn đăng nhập vào hệ thống tôi chỉ việc Hạn chế của giao thức này là các dữ liệu thông tin đi đến host không hề được m thể bị đánh hơi được bởi các chương trình sniffer. Đặc biệt là rất dễ bị tổn thươ tấn công: IP Spoof, DNS Spoof, Router Spoof… Vì những tính dễ tổn thương trên các chuyên gia security khuyến cáo bạn lên l r* service (rlogin, rsh…) trên hệ thống. Thông thường thì trên các hệ thống Lin thể hoạt động chung cho các service được cấu hình trong file /etc/xinet.d , để v service: - Bạn dùng vi, emacs…hay bất cứ trình soạn thảo văn bản nào mà bạn m mở /etc/init.d/xinet.d - Tìm đoạn “service login“ xoá chúng đi. Ghi lại mọi sự thay đổi và thoá - Khởi động lại xinetd.d daemon : /etc/init.d/xinet.d restart - Nếu có thể bạn hãy vô hiệu hoá luôn telnet service bằng cách trên. Sau bằng Open SSH. Chúng ta đã tìm hiểu qua nguyên lý hoạt động của r* service. Bây giờ chúng ta nguyên lý hoạt động của Open SSH. Điều đầu tiên mà tôi có thể khẳng định vớ SSH cung cấp một cơ chế chứng thực khá an toàn bởi việc sử dụng những Pub Key. Các Private Key chỉ được sử dụng bởi người sở hữu, còn Public Key có bởi mọi người . Muốn Open SSH tạo ra các DSA Private/Public Key bạn dùng lệnh: shh-keygen -d Các DSA Private Key thường được lưu trữ ở $HOME/.ssh/id_dsa file. Còn c Key thường được lưu trữ ở $HOME/.ssh/id_dsa.pub … Các Public Key cần và copy đến thư mục thích hợp trên hệ thống ở xa muốn sử dụng Open SSH. Dưới đây liệt kê vị trí cũng những Public Key mà Open SSH sử dụng trong q thực: SSH Local System Default Version Location Remote Host Loc 2 Keys Private $HOME/.ssh/id_dsa Key Public $HOME/.ssh/id_dsa.pub $HOME/.ssh/auth Key SSH Local System Default Version Location 1 Key Private Key $HOME/.ssh/identity Remote Host Lo Public $HOME/.ssh/identity.pub $HOME/.ssh/aut Key Dưới đây là những file quan trọng được Open SSH sử dụng để xác định những - $HOME/.ssh/known_hosts: Danh sách các Public Key cho tất cả các nhập. Thường thì các danh sách các host Public Key được liệt kê ở /etc/ssh_kn - /etc/ssh_known_hosts: Chứa danh sách các RSA Generated Public K host mà hệ thống được biết. Bất cứ host nào muốn đăng nhập đến hệ thống đều Key được liệt kê trong file này. Admin trên hệ thống của bạn cần phải liệt kê c những người sử dụng trong hệ thống mạng đó - /etc/ssh_known_hosts2: Cũng như ssh_know_host nó chứa danh sách Generated Public Keycho tất cả các host mà hệ thống biết. - $HOME/.ssh/config: File cấu hình cho mỗi người sử dụng. Trong một mỗi người sử dụng sẽ có một file cấu hình đặc biệt. Nó sẽ được sử dụng bởi SS - /etc/ssh/ssh_config: File cấu hình cho toàn bộ hệ thống. Nó cũng có thể những người sử dụng không có File cấu hình hay tạm thời chưa có file cấu hìn khởi tạo khi cài đặt Open SSH lần đầu và được gọi để sử dụng mỗi khi Open S - $HOME/.ssh/rc: Liệt kê những lệnh đã được thực thi trong suốt quá trì đăng nhập, những lệnh này được thực thi trước khi shell của người dùng được - /etc/sshrc: Tương tự như /.ssh/rc nó được dùng trên những hệ thống lớ SỬ DỤNG OPEN SSH ĐỂ ĐẢM BẢO AN TOÀN DỮ LIỆU TRÊN MỘT MẠNG KHÔNG AN TOÀN Trước khi sử dụng Open SSH bạn phải chắc chắn rằng hệ thống cục bộ của bạ có cài đặtOpen SSH. Lệnh ssh-keygen được sử dụng để tạo và quản lý sự chứng thực các SSH Key SSH trước hết bạn phải tạo các DSA hay RSA Private Key, Public Key…Tiế hiện theo các chỉ dẫn dưới đây. Bản thân tôi sử dụng hệ thống Debian Linux v Đầu tiên bạn hãy tạo một user trên hệ thống [email protected]#: useradd binhnx2000 Đừng quên thiết lập password cho user này [email protected]#: passwd binhnx2000 Changing password for user binhnx2000 New UNIX password: ***** Retype new UNIX password: ***** passwd: all authentication tokens updated successfully Đăng nhập vào account binhnx2000 mà tôi vừa tạo: Bây giờ tôi sẽ tiếp tục tạo các Private Key và Public Key. Lưu ý: Từ Open SSH v 2.0 trở đi khi bạn yêu cầu tạo Key mới. Mặc định nó s Key RSA. Nếu muốn tạo Key DSA bạn phải sử dụng tuỳ chọn -d [email protected]$: ssh-keygen -d Generating DSA parameter and key. Enter file in which to save the key (/home/binhnx2000/.ssh/id_dsa): Nhấn Enter nếu bạn muốn lưu Key vào thư mục mặc định của nó: Created directory '/home/binhnx2000/.ssh'. Enter passphrase (empty for no passphrase): Bạn nhập vào passphrase (đây là password sẽ được mã hoá bằng thuật toán 3 Private Key). Lưu ý: pasphrase không thể phục hồi. Nếu bạn quên, bạn sẽ phải tạo và phân Điều này rất phiền phức. Nhấn Enter khi mọi việc đã hoàn thành. Your identification has been saved in /home/binhnx2000/.ssh/id_dsa. Your public key has been saved in /home/binhnx2000/.ssh/id_dsa.pub. The key fingerprint is: ca:3b:f9:80:5a:91:e5:c1:1e:5b:30:02:2f:d5:53:13 [email protected] Xem qua nội dung Private Key bạn sẽ thấy : -----BEGIN DSA PRIVATE KEY----Proc-Type: 4,ENCRYPTED DEK-Info: DES-EDE3-CBC,D40D902FF5666C7B DlyufhXG5shn/JblF4iY67nMAHG5AUtBvpdBZKiMnq6bKLPQ5nFmDBVx p/XL6IoJOeyeHDf3txtCkFymujibeO203uMwQ/yvH1VrENkywj1uglAYBxF5 44Y5Mab04tQPVKLd1Jgxs/O/23bghYNJyCw9j9uP/G/6dkrYB5EAMZ/HnD UPSrOTLwxfIOq7RbJGthgejosVvSFCEfNOu1OyhTF0FqM9po6uGbzVra36L EnNbG7Bs0Z91v9hgyb0w0TwA4jnX/uP2lUdYxuCgpRyg3jDoYZFsa37GBZ 4TjsuSKuE4oNLnr6Kx5dcg6ZedHRx+ggaSRZ+4VTP43RgEj0CsqY9wB8kN z7oj4o8EtrN4xFcT3C9Jl2sd+nJA085wFCFktdtI6zN7i6gMXMhTvTi/w/gPF+ 4pAzP9Z5NHN5v8/UHBmkytwx4f5uofYovM8hHQzUZGs/3yEsUPBrxCQgW XyZyF0ryleid62feGNbbvgLEIZMZvNSCmJpYgD60CFskBemg/02htaIVwdlg JoZuLBBKpkRb4UXNb0IRG2NvtZKQ8h98 -----END DSA PRIVATE KEY----- Đây là nội dung của Public Key : ssh-dss AAAAB3NzaC1kc3MAAACBAL4qF1YLu6l/zhhmgBJfFOgAqc635u/DRes/b Rey5nZb2AA8rdCZzwMyMdreCD34HRCVSblirirhSZ3r9qld1fipT6NPsOr+A 1euJoPYEm62+subVKWHQoNAwb7gIjNlMqNjaRuwNyBCLPwb7EcUjAAA CTQ5bmP7ztr1LME/UjMQAAAIEAlyiJs4CazMnGB6mguefOZHI1BJPmPdO nDoLK6ScxPpclQu0uwh8CEFuIjl/oMBf1rIHwONC7kxIIY6U82B3cZcBOL7 quG2Mq23lWsPeAH3ElfijOr15rgb4PQPV1bYoNlQPmb3zb6n4uoe3WQAAA mHk3GCqn40u1WKtMLzpwowCtv24VZ/v4yQV4fY3CvrbgsAEnBD3mSEp 6ayJ40ZS2zN3bhBZos+Jp53tq8Eni1pSELS5wlw5NkkoY+F4lmda+sK5gTOO 7hkOQuxcLbvc9GR+ywibz [email protected] Tất cả thông tin quan trọng đã được mã hoá bằng thuật toán DSA SỬ DỤNG Private Key & Public Key Sử dụng Public Key, trước hết bạn phải phân phát nó. Hay nói một cách dễ hiể hoạt các Public Key này vào các vị trí thích hợp trên remote server. Như đã nó có thể được phân phát tuỳ thích và miễn phí. Bởi vậy bạn có thể send nó đến b mà bạn muốn truyền thông bằng Open SSH.- Tạo thư mục Public Key ở Apache: [email protected]#: mkdir /var/html/pubkeys - Copy Binhnx2000’s Public Key vào thư mục vừa tạo và đổi tên chúng: [email protected]#: cp /home/binhnx2000/.ssh/id_dsa.pub var/html/pubkeys - Trên hệ thống host ở xa: Bạn cần tham chiếu các thông số như trên host nhập với tư cách root và tạo tiếp một account binhnx2000: [email protected]#: useradd binhnx2000 passwd binhnx2000 Changing password for user binhnx2000 New UNIX password: ***** Retype new UNIX password: ***** passwd: all authentication tokens updated successfully - Tiếp đến tạo một thư mục con “.ssh” trong thư mục chủ của acc binhnx [email protected]#: mkdir /home/binhnx2000/.ssh Bạn lên địa chỉ đã upload binhnx2000’s Public Key và download nó về ở: Lưu nó vào /home/binhnx2000/.ssh = = > Đây chính là Public Key của domain thông tin về ID được mã hoá bằng thuật toán DSA. Mọi việc đã ổn, bây giờ bạ thống 2 qua hệ thống 1 bằng Public Key xem sao: [email protected]$: ssh domain.com Nếu mọi việc ổn định bạn có thể ssh vào hệ thống 1 từ xa qua Open SSH một c các giao dịch giữa hệ thống 1 và 2 đều được nén và mã hoá nhằm đảm bảo an truyền Ví dụ như VeriSign một hãng chuyên cung cấp Digital ID để mã hoá và bảo m khách hàng. Digital ID thực chất là các Public Key được nhúng các thông tin I đó. VeriSign sẽ tự động gửi Public Key của người sử dụng lên Site của nó. Bất nào muốn truy cập Public Key của một người sử dụng khác. Họ có thể tải xuốn người dùng từ site của VeriSign: https://digitalid.verisign.com/services/client/index.html. Đối với Private Key. Tôi sẽ Upload nó lên Web server của tôi. Các host từ xa s Key xuống và tự động kích hoạt chúng. Bạn tiếp tục thực hiện các bước sau nếu như hệ thống của bạn đã cài đặt Apach Tuy nhiên! cuộc sống không phải lúc nào cũng tốt đẹp như chúng ta tưởng ;-( B thông báo: The authenticity of host domain.com' can't be established. DSA key fingerprint is ca:3b:f9:80:5a:91:e5:c1:1e:5b:30:02:2f:d5:53:13. Are you sure you want to continue connecting (yes/no) ? Thông báo trên nói rằng bạn chưa thể thiết lập một kết nối an toàn từ hệ thống bằng Open SSH. Bạn tiếp tục nhấn Yes nối như muốn tiếp tục kết nối. Sẽ có m rằng Public Key của hệ thống từ xa đã được thêm vào một vị trí hợp lý trên hệ Công việc cập nhật Public Key đã thành công. Lần sau bạn sẽ không phải gặp này nữa. Bạn thử ssh đến hệ thống từ xa lại một lần nữa xem sao (Sẽ không có hỏi password nào cả, vì nó đã sử dụng và chứng thực Public Key) /home/binhnx2000/.ssh/know_host . Warning: Permanently added ‘domain.com,24.130.8.170' (DSA) to the list of known hosts. [[email protected] binhnx2000]$ Nếu các thông tin về Public Key không chính xác. Hay nói một cách khác là qu Public Key bị thất bại. Open SSH sẽ yêu cầu bạn cung cấp password của ngườ binhnx2000: [email protected]'s password: Password ở đây chính là password của account binhnx2000 được tạo trên hệ th nhập username và password tương tự như Telnet nhưng điểm khác là nó đã đư Open SSH. Nếu bạn gặp phải yêu cầu truy vấn password, hãy xem lại quá trình dụng Public Key. VẤN ĐỀ AN TOÀN DỮ LIỆU Cho đến nay các RSA và DSA Key được coi là có tính an toàn và khả năng mã cao (Key RSA hiện đã lên đến độ dài mã hoá 256 bit). Trung tuần tháng 7 cộng phát hiện được một Bug về khai thác tính dễ tổn thương của những passphrase tự. Nhưng nó đã nhanh chóng được khắc phục và tính thực dụng của Bug này c Open SSH vẫn được cộng đồng *nix coi là một phương tiện truyền thông có tí Lưu ý: Bài viết này chỉ mang tính chất học hỏi và trao đổi kinh nghiệm. Các b dụng nó, nhưng mong các bạn tôn trọng Copyright một chút. Khi cần trích dẫn tài liệu vui lòng ghi rõ nguồn và tên người viết…Rất cảm ơn bạn đã quan tâm tôi. (Power by: binhnx2000==(=========> ^($)^ Supporter Of VTF) (E-mail: [email protected] | Home: http://www.vieteam.com/) Tài liệu tham khảo - Using OpenSSH to Encrypt Network Traffic between Two Hosts - Deutsch Unix/Linux Gruppen (DUG) - Information Bibliothek Frei Universität Berlin (FU Berlin) Lưu ý: binhnx2000 Public Key có thể được phân phát tuỳ thích. Bất cứ ai, hệ truyền thông một cách an toàn với binhnx2000 đều có thể nhận Public Key. B của Public Key thoải mái. Cho mục đích an toàn các Security khuyên bạn lên tên Public Key trước khi phân phát cho từng người. [email protected] binhnx2000 vnzone.net
- Xem thêm -

Tài liệu liên quan