1. Trang chủ
  2. » Công Nghệ Thông Tin

Using Open Ssh

7 618 3
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 58 KB

Nội dung

Using Open Ssh

Using Open Sshtrang ny ó c c ln Ti liu tham kho- Using OpenSSH to Encrypt Network Traffic between Two Hosts- Deutsch Unix/Linux Gruppen (DUG)- Information Bibliothek Frei Universitọt Berlin (FU Berlin)I Gii thiu.Open SSH l mt chng trỡnh mó ngun m (Open Source) c s dng Encrypt (mó hoỏ) cỏc giao dch gia cỏc Host vi nhau bng cỏch s dng Secure Shell (SSH). Nú l mt s thay th an ton cho nhng chng trỡnh c s dng kt ni nh: Telnet, rlogin, rsh .Bi nú luụn luụn Encrypt tt c cỏc giao dch, n i, che du User v Password c s dng cho nhng phiờn ng nhp t xa. Sau khi phiờn ng nhp c thc hin, nú s tip tc Encrypt tt c nhng d liu giao dch gia 2 Host. D ỏn OpenSSH c phỏt trin da trờn nn tng ca d ỏn Open BSD (mt OS thuc h Unix). Nú c thit k s dng nhng thut toỏn mó hoỏ mnh nõng cao tớnh an ton v ngn chn s phỏ hoi ca cỏc Hacker. Mc dự nú c xõy dng v phỏt trin bi nn tng OpenBSD. Nhng nú cng cú kh nng tng thớch vag cú th hot ng trờn hu ht cỏc OS thuc dũng h Unix: Linux, HP-UX, AIX, Irix, SCO, MacOS X, Cygwin, Digital Unix/Tru64/OSF, SNI/Reliant Unix, NeXT, Solaris .OpenSSH khụng phi l mt chng trỡnh. Nú l mt b cỏc chng trỡnh kt ni an ton:- OpenSSH Client (ssh): Chng trỡnh c s dng cho cỏc ng nhp t xa. Vi s an ton v Encrypt trong mi phiờn ng nhp mc cao. Nú l s thay th an ton cho: rlogin v telnet ó t ra li thi v kộm an ton. - Secure Copy Program (scp): c s dng cho vic Copy file t xa, Copy cỏc file t cỏc Host khỏc nhau trờn Internet. Nú h tr User v Password.- Secure File Transfer Program (sftp): c s dng phc cỏc yờu cu FTP mt cỏch an ton. - OpenSSH Deadmon (shhd): c OpenSSH chy ch Deadmon trờn cỏc h thng Unix .Trờn õy l nhng Tools chớnh khụng th thiu trong b OpenSSH. Ngoi ra cũn rt nhiu Tools, Plugin, Addin na .II Ci t ly OpenSSH bn lờn Homepage chớnh ca nú:http://www.openssh.org/Down mt Version phự hp vi h thng ca mỡnh. Tụi dựng Linux lờn tụi s Down gúi *.rpm. Sau ú phỏt lnhroot@domain.com#: rpm -Uvh *.rpmNu bn s dng cỏc h thng khỏc thỡ vic ci t nú cng tng t. Bn Down gúi phự hp vi h thng ca mỡnh. Nú cú th l *.tar, *.tar.gz, *.gz .etc. Bung nộn nú vo mt th mc.root@domain.com #: ./configureroot@domain.com #: makeroot@domain.com #: 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ó khăn. Chúng ta hãy dành thời gian và công sức cho công việc cấu hình. IV Các tính nổI bật của Open SSHOpen SSH cung cấp khá nhiều tính năng để giúp cho việc truyền thông giữa 2 Host trở lên an 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à Blowfish: Cả 2 chuẩn 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 thế giới. 3DES cung cấp khả năng mã hoá chứng thực thời gian. Blowfish cung cấp khả năng mã hoá nhanh hơn. 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ăng mã hoá các dữ 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, OPTs (One Time Password), Keberos: Có tác dụng bảo vệ chống lại tính dễ tổn thương trong quá trình chứng thực bởi việc khai thác và sử dụng các kỹ thuật như: IP Spoof, DNS Spoof, Fake Router…Có 4 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ế Keberos3) Mã hoá giao thức X11 cho việc sử dụng X Windows: Mã hoá dữ liệu trong quá trình sử dụng X Windows giữa 2 Host. Được sử dụng để chống lại những cuộc tấn công từ xa nhằm vào xterm như Snooping, Hjacking…4) Mã hoá cho quá trình chuyển đổi cổng (Port Forwarding): Cho phép quá trình chuyển đổi 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ó được sử dụng cho những giao thức Internet chuẩn không cung cấp khả năng mã hoá dữ liệu trên đường truyền như: 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 chứng thực của 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 một trạm đại diện 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. Kết nối của họ sẽ đượ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 người sử dụng truy 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ó ý nghĩa trên những hệ thống mạng không được nhanh.7) Chứng thực chung cho Keberos và Andrew File System bằng cách sử dụng Ticket: Những người sử dụng Keberos và AFS sẽ được cung cấp một Password chung để sử dụng và truy cập 2 dịch vụ trên trong một thời gian nhất định.V Nguyên lý hoạt động của Open SSHTrướ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, rsh, rcp). Khi sử dụng rlogin, điều kiện đầu tiên là người dùng đó phải có một Acc trên hệ thống mà họ muốn đăng nhập từ xa đó. Chẳng hạn trên hệ thống của tôi có Acc binhnx2000. Nếu tôi Log vào trên hệ thống cục bộ khi tôi kết nối tới một Host từ xa. Sẽ không có bất cứ yêu cầu hỏi Password nào khi tôi truy nhập vào hệ thống từ xa. Đơn giản bởi Acc binhnx2000 của tôi đã được xác nhận 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 Acc cần để sử dụng đăng nhập tới hệ thống. Chẳng hạn Hostname của tôi là vnzone.net và Username của tôi là binhnx2000. Để truy cập đến hệ thống không cần Passowd thì các thông tin về tôi trong file .rhost có dạng như sau:Hostname Username Đối với Hostname phải là Hostname đầy đủ của hệ thống. Đối với User phải là các User hợp lệ đang tồn tại trên hệ thống mà bạn muốn định nghĩa. 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 binhnx2000Mọ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 phát lệnh:binhnx2000@domain.com$: rlogin -l binhnx2000 vnzone.netHạ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ã hoá. Nó rất có thể bị đánh hơi được bởi các Sniffer. Đặc biệt là rất dễ bị tổn thương bởi các cuộc tấn công: IP Spoof, DNS Spoof, Router Spoof…Vì những tính dễ tổn thương trên các Security khuyến cáo bạn nên vô hiệu hoá các r Service (rlogin, rsh…). Thông thường thì trên các hệ thống Linux cấu hình tổng thể hoạt động chung cho các Service được cấu hình trong file /etc/xinet.d , để vô hiệu hoá các r 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 muốn để 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át trình soạn thảo.- Khởi động lại xinetd.d Deadmon : /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 đó thay thế chúng 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 sẽ tìm hiểu về nguyên lý hoạt động của Open SSH. Điều đầu tiên mà tôi có thể khẳng định với bạn là : Open 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 Public Key.Các Public Key lại tiếp tục sử dụng các Public Key hay Private Key cho sự chứng thực an toàn. Các Private Key chỉ được sử dụng bởi người dung, còn Public Key có thể được sử dụng 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 -dCác DSA Private Key thường được lưu trữ ở /root/.ssh/id_dsa file. Còn các DSA Public Key thường được lưu trữ ở /root/.ssh/id_dsa.pub … Các Public Key cần phải được đổi tê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 quá trình chứng thực:SSH Version 2 Keys Local System Default Location Remote Host LocationPrivate Key $HOME/.ssh/id_dsa Public Key $HOME/.ssh/id_dsa.pub $HOME/.ssh/authorized_keys2SSH Version 1 Key Local System Default Location Remote Host LocationPrivate Key $HOME/.ssh/identity Public Key $HOME/.ssh/identity.pub $HOME/.ssh/authorized_keysDưới đây là những file quan trọng được Open SSH sử dụng để xác định những Public Key:- $HOME/.ssh/known_hosts: Danh sách các Public Key cho tất cả các Host có User đăng nhập. Thường thì các danh sách các Host Public Key được liệt kê ở /etc/ssh_known_hosts - /etc/ssh_known_hosts: Chứa danh sách các RSA Generated Public Key cho tất cả các Host mà hệ thống được biết. Bất cứ Host nào muốn đăng nhập đến hệ thống đều phải có Public 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ác Public Key của 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 các DSA Generated Public Key cho 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 số hệ thống lớn, 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 SSH Client.- /etc/ssh/ssh_config: File cấu hình cho toàn bộ hệ thống. Nó cũng có thể được sử dụng cho 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ình. Nó tự động được khởi tạo khi cài đặt Open SSH lần đầu và được gọi để sử dụng mỗi khi Open SSH Daemon chạy.- $HOME/.ssh/rc: Liệt kê những lệnh đã được thực thi trong suốt quá trình người dùng đăng nhập, những lệnh này được thực thi trước khi Shell của người dùng được mở.- /etc/sshrc: Tương tự như /.ssh/rc nó được dùng trên những hệ thống lớn.VI Sử dụng Open SSH để đảm bảo an toàn dữ liệu trên một hệ thống mạng không an toànTrướ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ạn và hệ thống ở xa có cài đặt Open SSH.Lệnh ssh-keygen được sử dụng để tạo và quản lý sự chứng thực các SSH Key. Để sử dụng Open SSH trước hết bạn phải tạo các DSA hay RSA Private Key, Public Key…Tiếp đến bạn thực 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 2.5.2- Đầu tiên bạn hãy tạo một User trên hệ thốngroot@domain.com#: useradd binhnx2000 - Đừng quên thiết lập Password cho User nàyroot@domain.com#: passwd binhnx2000Changing password for user binhnx2000New UNIX password: *****Retype new UNIX password: *****passwd: all authentication tokens updated successfully- Đăng nhập vào Acc 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ẽ tạo cho bạn các Key RSA. Nếu muốn tạo Key DSA bạn phải sử dụng tuỳ chọn -dbinhnx2000@domain.com$: ssh-keygen -dGenerating 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 DES để kiểm soát 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 phối lại các Key. Đ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:13binhnx2000@domain.comXem qua nội dung Private Key bạn sẽ thấy :-----BEGIN DSA PRIVATE KEY-----Proc-Type: 4,ENCRYPTEDDEK-Info: DES-EDE3-CBC,D40D902FF5666C7BDlyufhXG5shn/JblF4iY67nMAHG5AUtBvpdBZKiMnq6bKLPQ5nFmDBVxZ9jb86BTp/XL6IoJOeyeHDf3txtCkFymujibeO203uMwQ/yvH1VrENkywj1uglAYBxF5FdPt44Y5Mab04tQPVKLd1Jgxs/O/23bghYNJyCw9j9uP/G/6dkrYB5EAMZ/HnD6OG0/5UPSrOTLwxfIOq7RbJGthgejosVvSFCEfNOu1OyhTF0FqM9po6uGbzVra36Lk13M+EnNbG7Bs0Z91v9hgyb0w0TwA4jnX/uP2lUdYxuCgpRyg3jDoYZFsa37GBZm5WeOY4TjsuSKuE4oNLnr6Kx5dcg6ZedHRx+ggaSRZ+4VTP43RgEj0CsqY9wB8kN1wXEWMz7oj4o8EtrN4xFcT3C9Jl2sd+nJA085wFCFktdtI6zN7i6gMXMhTvTi/w/gPF+vM4pAzP9Z5NHN5v8/UHBmkytwx4f5uofYovM8hHQzUZGs/3yEsUPBrxCQgW/MMC5jdXyZyF0ryleid62feGNbbvgLEIZMZvNSCmJpYgD60CFskBemg/02htaIVwdlg85lWJoZuLBBKpkRb4UXNb0IRG2NvtZKQ8h98-----END DSA PRIVATE KEY-----Đây là nội dung của Public Key :ssh-dss AAAAB3NzaC1kc3MAAACBAL4qF1YLu6l/zhhmgBJfFOgAqc635u/DRes/bXiSrCbuV1Rey5nZb2AA8rdCZzwMyMdreCD34HRCVSblirirhSZ3r9qld1fipT6NPsOr+AMct13oPirlWAF01euJoPYEm62+subVKWHQoNAwb7gIjNlMqNjaRuwNyBCLPwb7EcUjAAAAFQD9L07yMFCTQ5bmP7ztr1LME/UjMQAAAIEAlyiJs4CazMnGB6mguefOZHI1BJPmPdOZeee9cvFRSQ1nDoLK6ScxPpclQu0uwh8CEFuIjl/oMBf1rIHwONC7kxIIY6U82B3cZcBOL7SXt2wnPg8mg4I7quG2Mq23lWsPeAH3ElfijOr15rgb4PQPV1bYoNlQPmb3zb6n4uoe3WQAAACBAKiamld09bmHk3GCqn40u1WKtMLzpwowCtv24VZ/v4yQV4fY3CvrbgsAEnBD3mSEpOea7tSNDTxY83D6ayJ40ZS2zN3bhBZos+Jp53tq8Eni1pSELS5wlw5NkkoY+F4lmda+sK5gTOOExI2tWyA0z5V7hkOQuxcLbvc9GR+ywibz binhnx2000@domain.comTất cả thông tin quan trọng đã được mã hoá bằng thuật toán DSALưu ý: binhnx2000 Public Key có thể được phân phát tuỳ thích. Bất cứ ai, hệ thống nào muốn truyền thông một cách an toàn với binhnx2000 đều có thể nhận Public Key. Bạn có thể đổi tên của Public Key thoải mái. Cho mục đích an toàn các Security khuyên bạn lên thường xuyên đổi tên Public Key trước khi phân phát cho từng người. VII Sử dụng Private Key và 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ểu là bạn phải kích hoạt các Public Key này vào các vị trí thích hợp trên Remote Server. Như đã nói ở trên Public Key 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ất cứ hệ thống nào mà bạn muốn truyền thong bằng Open SSH.Ví dụ như VeriSign một hãng chuyên cung cấp Digital ID để mã hoá và bảo mật các E-mail cho khách hang. Digital ID thực chất là các Public Key được nhúng các thôn tin ID cơ bản ở trong đó. VeriSign sẽ tự động gửi Public Key của người sử dụng lên Site của nó. Bất kỳ người sử dụng 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 suống Digital ID của người dung 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ẽ Down Public 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 Apache Web Server:- Tạo thư mục Public Key ở thư mục gốc của Apache:root@domain.com#: mkdir /var/html/pubkeys- Copy Binhnx2000’s Public Key vào thư mục vừa tạo và đổi tên chúng:root@domain.com#: cp /home/binhnx2000/.ssh/id_dsa.pub /var/html/pubkeys/binhnx2000.pub- Trên hệ thống Host ở xa: Bạn cần tham chiếu các thông số như trên Host của bạn. Bạn đăng nhập với tư cách root và tạo tiếp một Acc binhnx2000:root@domain2.com#: useradd binhnx2000passwd dilbertChanging password for user binhnx2000New 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 binhnx2000:root@domain2.com#: mkdir /home/binhnx2000/.sshBạ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.com. Nó chứa các thông tin về ID được mã hoá bằng thuật toán DSA. Mọi việc đã ổn, bây giờ bạn thử ssh từ hệ thống 2 qua hệ thống 1 bằng Public Key xem sao:binhnx2000@domain2.com#: ssh domain.comNế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ách an toàn. Tấ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 toàn trên đường truyền.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ạn sẽ gặp phải thông báo:The authenticity of host domain.com' can't be established.DSA key fingerprint isca: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 2 đến hệ thống 1 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ột thông báo nói 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ệ thống cục bộ. 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 thông báo khó chịu 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ó bất cứ yêu cầu đòi 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.[binhnx2000@domain.com 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á trình chứng thực Public Key bị thất bại. Open SSH sẽ yêu cầu bạn cung cấp Password của người sử dụng binhnx2000:binhnx2000@domain.com's password:Password ở đây chính là Password của Acc binhnx2000 được tạo trên hệ thống từ xa. Khi bạn nhập User và Password tương tự như Telnet nhưng điểm khác là nó đã được mã Encrypt bởi 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 cấp phát và sử dụng Public Key.VII Vấn đề an toàn dữ liệuCho đến nay các RSA và DSA Key được coi là có tính an toàn và khả năng mã hoá dữ liệu khá cao (Key RSA hiện đã lên đến độ dài mã hoá 256 bit). Trung tuần tháng 7 cộng đồng Security đã phát hiện được một Bug về khai thác tính dễ tổn thương của những passphrases dưới 2 ký 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ũng không cao. Open SSH vẫn được cộng đồng *nix coi là một phương tiện truyền thông có tính an toàn cao. . Using Open Sshtrang ny ó c c ln Ti liu tham kho- Using OpenSSH to Encrypt Network Traffic between Two Hosts-. cỏch an ton. - OpenSSH Deadmon (shhd): c OpenSSH chy ch Deadmon trờn cỏc h thng Unix.....Trờn õy l nhng Tools chớnh khụng th thiu trong b OpenSSH. Ngoi ra

Ngày đăng: 02/11/2012, 14:19

Xem thêm

TỪ KHÓA LIÊN QUAN

w