Using Open Ssh
trang này đã được đọc ln
Tài 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 chương 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 toàn cho
nhng chương trình được s dng để kết 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 tiếp 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
thiết kế để s dng nhng thut toán mã hoá mnh để nâng cao tính an toàn và ngăn chn s phá hoi ca
các Hacker. Mc dù nó được xây dng và phát trin bi nn tng OpenBSD. Nhưng nó cũng có kh năng
tương thích vag có th hot động trên hu hết 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 chương trình. Nó là mt b các chương trình kết ni an toàn:
- OpenSSH Client (ssh): Chương trình được s dng cho các đăng nhp t xa. Vi s an toàn và Encrypt
trong mi phiên đăng nhp mc độ cao. Nó là s thay thế an toàn cho: rlogin và telnet đã t ra li thi và
kém an toàn.
- 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 toàn.
- 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 thiếu trong b OpenSSH. Ngoài ra còn rt nhiu Tools, Plugin,
Addin na...
II Cài đặ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
lnh
root@domain.com#: rpm -Uvh *.rpm
Nếu bn s dng các h thng khác thì vic cài đặt nó cũng tương 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ó vào mt thư mc.
root@domain.com #: ./configure
root@domain.com #: make
root@domain.com #: make install
Tiếp đó theo làm theo các ch dn ca Script. Công vic cài đặt không my khó khăn. Chúng ta hãy dành
thi gian và công sc cho công vic cu hình.
IV Các tính nI bt ca Open SSH
Open SSH cung cp khá nhiu tính năng để giúp cho vic truyn thông gia 2 Host tr lên an toàn. Dưới
đây là mt s tính ni bt:
1) Kh năng mã hoá mnh bi vic s dng chun mã hoá 3 DES và Blowfish: C 2 chun mã hoá trên đều
đuc cung cp min phí và s dng rng rãi nhiu nước trên thế gii. 3DES cung cp kh năng mã hoá
chng thc thi gian. Blowfish cung cp kh năng mã hoá nhanh hơn. Cũng như nhng chun mã hoá khác
c 2 chun nêu trên đều cung cp kh năng mã hoá các d trước khi nó được đưa vào đường truyn mt
cách an toàn.
2) Kh năng chng thc mnh bi vic s dng các cơ chế Public Key, OPTs (One Time Password),
Keberos: Có tác dng bo v chng li tính d tn thương trong quá trình chng thc bi vic khai thác và
s dng các k thut như: IP Spoof, DNS Spoof, Fake Router…Có 4 phương pháp chng thc được Open
SSH s dng :
- Ch chng thc Public Key
- S chng thc Host bi vic s dng Public Key kết hp vi .rhost
- S chng thc da trên OPTs kết hp vi s/key
- S chng thc da trên cơ chế Keberos
3) Mã hoá giao thc X11 cho vic s dng X Windows: Mã hoá d liu trong quá trình s dng X Windows
gia 2 Host. Được s dng để chng li nhng cuc tn công t xa nhm vào xterm như Snooping,
Hjacking…
4) Mã hoá cho quá trình chuyn đổi cng (Port Forwarding): Cho phép quá trình chuyn đổi các Port TCP/IP
ti mt h thng khác thông qua mt kênh được mã hoá. Nó được s dng cho nhng giao thc Internet
chun không cung cp kh năng mã hoá d liu trên đường truyn như: SMTP, POP, FTP, Telnet…
5) Đại din chuyn tiếp cho nhng đăng nhp vào các mng đơn: Mt Key chng thc ca người dùng có
th và thường được lưu gi trên PC ca h, nó có th tr thành mt trm đại din chng thc. Khi người s
dng h thng truy cp t mt h thng mng khác. Kết ni ca h s được chuyn ti cho trm đại din
chng thc này. Nó có tác dng cho phép người s dng truy cp đến h thng ca bn mt cách an toàn t
bt k h thng nào.
6) Nén d liu: Cung cp kh năng nén d liu mt cách an toàn. Nó rt có ý nghĩa trên nhng h thng
mng không được nhanh.
7) Chng thc chung cho Keberos và Andrew File System bng cách s dng Ticket: Nhng người s dng
Keberos và AFS s được cung cp mt Password chung để s dng và truy cp 2 dch v trên trong mt
thi gian nht định.
V Nguyên lý hot động ca Open SSH
Trước hết chúng ta cùng tìm hiu v cơ chế chng thc cho các lnh *r (rlogin, rsh, rcp). Khi s dng rlogin,
điu kin đầu tiên là người dùng đó phi có mt Acc trên h thng mà h mun đăng nhp t xa đó. Chng
hn trên h thng ca tôi có Acc binhnx2000. Nếu tôi Log vào trên h thng cc b khi tôi kết ni ti mt
Host t xa. S không có bt c yêu cu hi Password nào khi tôi truy nhp vào h thng t xa. Đơn gin bi
Acc binhnx2000 ca tôi đã được xác nhn bi file .rhost đươc đặt trong thư mc /home/binhnx2000 trên h
thng t xa.
File .rhost cha đựng Hostname và Username yêu cu cho các Acc cn để s dng đăng nhp ti h thng.
Chng hn Hostname ca tôi là vnzone.net và Username ca tôi là binhnx2000. Để truy cp đến h thng
không cn Passowd thì các thông tin v tôi trong file .rhost có dng như sau:
Hostname Username
Đối vi Hostname phi là Hostname đầy đủ ca h thng. Đối vi User phi là các User hp l đang tn ti
trên h thng mà bn mun định nghĩa.
Mt ví d c th: nếu tôi mun s dng rlogin. Thì Admin phi to mt file .rhost trong /home/binhnx2000 vi
ni dung:
domain.com binhnx2000
Mi vic xong xuôi! Bây gi khi tôi mun đăng nhp vào h thng tôi ch vic phát lnh:
binhnx2000@domain.com$: rlogin -l binhnx2000 vnzone.net
Hn chế ca giao thc này là các d liu thông tin đi đến Host không h được mã hoá. Nó rt có th b đánh
hơi được bi các Sniffer. Đặc bit là rt d b tn thương bi các cuc tn công: IP Spoof, DNS Spoof,
Router Spoof…
Vì nhng tính d tn thương trên các Security khuyến cáo bn nên vô hiu hoá các r Service (rlogin, rsh…).
Thông thường thì trên các h thng Linux cu hình tng th hot động chung cho các Service được cu hình
trong file /etc/xinet.d , để vô hiu hoá các r Service:
- Bn dùng vi, emacs…hay bt c trình son tho văn bn nào mà bn mun để m /etc/init.d/xinet.d
- Tìm đon “service login“ xoá chúng đi. Ghi li mi s thay đổi và thoát trình son tho.
- Khi động li xinetd.d Deadmon : /etc/init.d/xinet.d restart
- Nếu có th bn hãy vô hiu hoá luôn Telnet Service bng cách trên. Sau đó thay thế chúng bng Open
SSH.
Chúng ta đã tìm hiu qua nguyên lý hot động ca r Service. Bây gi chúng ta s tìm hiu v nguyên lý hot
động ca Open SSH. Điu đầu tiên mà tôi có th khng định vi bn là : Open SSH cung cp mt cơ chế
chng thc khá an toàn bi vic s dng nhng Public Key.
Các Public Key li tiếp tc s dng các Public Key hay Private Key cho s chng thc an toàn. Các Private
Key ch được s dng bi người dung, còn Public Key có th được s dng bi mi người .
Mun Open SSH to ra các DSA Private/Public Key bn dùng lnh:
shh-keygen -d
Cá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 cn phi được đổi tên và Copy đến thư mc thích hp trên h
thng xa mun s dng Open SSH.
Dưới đây lit kê v trí cũng nhng Public Key mà Open SSH s dng trong quá trình chng thc:
SSH Version 2 Keys Local System Default Location Remote Host Location
Private Key $HOME/.ssh/id_dsa
Public Key $HOME/.ssh/id_dsa.pub $HOME/.ssh/authorized_keys2
SSH Version 1 Key Local System Default Location Remote Host Location
Private Key $HOME/.ssh/identity
Public Key $HOME/.ssh/identity.pub $HOME/.ssh/authorized_keys
Dưới đây là nhng file quan trng được Open SSH s dng để xác định nhng Public Key:
- $HOME/.ssh/known_hosts: Danh sách các Public Key cho tt c các Host có User đăng nhp. Thường thì
các danh sách các Host Public Key được lit kê /etc/ssh_known_hosts
- /etc/ssh_known_hosts: Cha danh sách các RSA Generated Public Key cho tt c các Host mà h thng
được biết. Bt c Host nào mun đăng nhp đến h thng đều phi có Public Key được lit kê trong file này.
Admin trên h thng ca bn cn phi lit kê các Public Key ca nhng người s dng trong h thng mng
đó
- /etc/ssh_known_hosts2: Cũng như ssh_know_host nó cha danh sách các DSA Generated Public Key cho
tt c các Host mà h thng biết.
- $HOME/.ssh/config: File cu hình cho mi người s dng. Trong mt s h thng ln, mi người s dng
s có mt file cu hình đặc bit. Nó s được s dng bi SSH Client.
- /etc/ssh/ssh_config: File cu hình cho toàn b h thng. Nó cũng có th được s dng cho nhng người s
dng không có File cu hình hay tm thi chưa có file cu hình. Nó t động được khi to khi cài đặt Open
SSH ln đầu và được gi để s dng mi khi Open SSH Daemon chy.
- $HOME/.ssh/rc: Lit kê nhng lnh đã được thc thi trong sut quá trình người dùng đăng nhp, nhng
lnh này được thc thi trước khi Shell ca người dùng được m.
- /etc/sshrc: Tương t như /.ssh/rc nó được dùng trên nhng h thng ln.
VI S dng Open SSH để đảm bo an toàn d liu trên mt h thng mng không an toàn
Trước khi s dng Open SSH bn phi chc chn rng h thng cc b ca bn và h thng xa có cài đặt
Open SSH.
Lnh ssh-keygen được s dng để to và qun lý s chng thc các SSH Key. Để s dng Open SSH trước
hết bn phi to các DSA hay RSA Private Key, Public Key…Tiếp đến bn thc hin theo các ch dn dưới
đây. Bn thân tôi s dng h thng Debian Linux v 2.5.2
- Đầu tiên bn hãy to mt User trên h thng
root@domain.com#: useradd binhnx2000
- Đừng quên thiết lp Password cho User này
root@domain.com#: passwd binhnx2000
Changing password for user binhnx2000
New UNIX password: *****
Retype new UNIX password: *****
passwd: all authentication tokens updated successfully
- Đăng nhp vào Acc binhnx2000 mà tôi va to:
- Bây gi tôi s tiếp tc to các Private Key và Public Key.
Lưu ý: T Open SSH v 2.0 tr đi khi bn yêu cu to Key mi. Mc định nó s to cho bn các Key RSA.
Nếu mun to Key DSA bn phi s dng tu chn -d
binhnx2000@domain.com$: ssh-keygen -d
Generating DSA parameter and key.
Enter file in which to save the key (/home/binhnx2000/.ssh/id_dsa):
Nhn Enter nếu bn mun lưu Key vào thư mc mc định ca nó:
Created directory '/home/binhnx2000/.ssh'.
Enter passphrase (empty for no passphrase):
Bn nhp vào passphrase (đây là Password s được mã hoá bng thut toán 3 DES để kim soát Private
Key).
Lưu ý: pasphrase không th phc hi. Nếu bn quên, bn s phi to và phân phi li các Key. Điu này rt
phin phc.