Sử dụng ch−ơng trình KE

Một phần của tài liệu đề tài phần mềm bảo mật mạng dùng giao thức ip quyển 4a các phần mềm bảo mật gói ip trên hệ điều hành linux (Trang 167 - 170)

D. GIảI PHáP MậT Mã

6. Sử dụng ch−ơng trình KE

• u cầu: Máy tính chạy hệ điều hành Linux RedHat 6.2 (nhân 2.2.14) hoặc

RedHat 7.0 (nhân 2.2.16). Ng−ời sử dụng phải là root. Giả sử tên hai máy tính lần l−ợt là HOSTNAME1 và HOSTNAME2. Để biên dịch đ−ợc ch−ơng trình nguồn, chúng ta cần bộ nguồn OpenSSL phiên bản 0.9.6 hoặc mới hơn.

• Tạo th− mục /etc/keyEx/pk, /etc/keyEx/run.

• Tạo hai bộ khố cơng khai RSA cho hai bên nh− sau: (n1, e1, d1) cho

HOSTNAME1 và (n2, e2, d2) cho HOSTNAME2.

• Trên máy HOSTNAME1 tạo hai file:

- file thứ nhất: /etc/keyEx/keyEx.priv l−u n1 và d1 nh− sau:

# PVKH: file /etc/keyEx/keyEx.priv myModulo=0xn1

PrivateExponent=0xd1

- file thứ hai: /etc/keyEx/pk/HOSTNAME2 l−u n2 và e2 nh− sau:

# PVKH: file /etc/keyEx/pk/HOSTNAME2 peerModulo=0xn2

peerPublicExponent=0xe2

• Trên máy HOSTNAME2 tạo hai file t−ơng tự nh− trên

- file thứ nhất: /etc/keyEx/keyEx.priv l−u n2 và d2 nh− sau:

# PVKH: file /etc/keyEx/keyEx.priv myModulo=0xn2

- file thứ hai: /etc/keyEx/pk/HOSTNAME1 l−u n1 và e1 nh− sau:

# PVKH: file /etc/keyEx/pk/HOSTNAME1 peerModulo=0xn1

peerPublicExponent=0xe1

Ví dụ: với cấu hình của chúng tơi, trên máy HOSTNAME1 là: - file /etc/keyEx/pk/HOSTNAME2 peerModulo=0x89f5d9ec8170d69bfd403d9ed4037ff14a01abfdfbe94d5 ef64b73a32d22cfaf19f1a9b1b403b6d7b0f922c425085c9f34af3b64aaf 08af16a498d4814c69da3 peerPublicExponent=0x40c14214bfcaba17db7549cf934fe73f12345d9 855f8c9c10d5525f26a76545441537a74cc58867fdaf02d89296b29c6cff f1b17fdd08eb4abc200b1b408c2130789f5d9ec8170d69bfd403d9ed4037 ff14a01abfdfbe94d5ef64b73a32d22cfaf19f1a9b1b403b6d7b0f922c42 5085c9f34af3b64aaf08af16a498d4814c69da3

Chú ý: khoá đ−ợc ghi trên một dịng, trong file có thể có dấu cách, dấu '#'. - file /etc/keyEx/keyEx.priv myModulo=0x95441d0731fd9f5a1dc6dfb2f2eadec98024f8b013abdc772 d72346b9309cd59d3e68f92dff6e39051a792caac15a01fb5826f337524c 87e1bfedbb954ccef89 PrivateExponent=0x209c36eadf507badba36743d15073bd36503bd9c27 02f3f966befdd8ef2ac10c4cb15ddf7a5880db674bb3b0928ba5d17d54db 04436b234a6f37701e35330edd

• Trên máy HOSTNAME2:

- file thứ nhất: /etc/keyEx/keyEx.priv l−u n2 và d2 nh− sau:

myModulo=0x89f5d9ec8170d69bfd403d9ed4037ff14a01abfdfbe94d5ef 64b73a32d22cfaf19f1a9b1b403b6d7b0f922c425085c9f34af3b64aaf08 af16a498d4814c69da3 PrivateExponent=0x48d1dd23dc94e7ab929cca519caeab6549aa4f1fd2 60baeacd9e1705851fa1609a25ec1b161e64a85af98d12b087b59534832f eed40c7f53a815c0e7944ff0ff

- file thứ hai: /etc/keyEx/pk/HOSTNAME1 l−u n1 và e1 nh− sau:

peerModulo=0x95441d0731fd9f5a1dc6dfb2f2eadec98024f8b013abdc7 72d72346b9309cd59d3e68f92dff6e39051a792caac15a01fb5826f33752 4c87e1bfedbb954ccef89 peerPublicExponent=0x40c43eb9f5d50f8c01bba8bf0ee8e6dae38b4de 9783734d139534bfbd4d5fac2072cea07ae0a8ff566d663561a45f74d73b b51892458ef940137656e9e2949db4595441d0731fd9f5a1dc6dfb2f2ead

ec98024f8b013abdc772d72346b9309cd59d3e68f92dff6e39051a792caa c15a01fb5826f337524c87e1bfedbb954ccef89

• copy file chạy `kex` vào th− mục /usr/sbin

• Lựa chọn cổng 10000 (phải đảm bảo cổng này ch−a có dịch vụ nào sử dụng)

cho kex bằng cách thêm dòng sau vào file /etc/services:

kex 10000/tcp #port 10000 for kex

• Thêm dịng sau vào file /etc/inetd.conf

kex stream tcp nowait root /usr/sbin/kex kex

hoặc nếu sử dụng TCP Wrapper cho việc điều khiển truy nhập:

kex stream tcp nowait root /usr/sbin/tcpd /usr/sbin/kex

Chú ý: Với các phiên bản RedHat 7.0 hoặc 7.1, ch−ơng

trình daemon inetd đ−ợc thay thế bởi trình xinetd, file cấu hình cho dịch vụ này đ−ợc đặt trong th− mục /etc/xinetd/. Khi này ta sẽ tạo thêm 1 file với tên là tên của dịch vụ cần chạy (ở đây là `kex`), nội dung nh− sau:

service kex {

disable = no

user = root # ng−ời dùng đ−ợc phép chạy

port = 10000 # cổng dịch vụ

socket_type = stream

wait = no

server = /usr/sbin/kex

}

Sau khi cấu hình xong với 2 file /etc/services và /etc/inetd.conf, ta nên khởi động lại máy để kích hoạt ch−ơng trình `kex`.

Lệnh chạy `kex`:

Trên HOSTNAME1:

kex -c HOSTNAME2:10000

Sau khi thực hiện lệnh này thì khố tạo ra đ−ợc l−u trong /etc/keyEx/run/HOSTNAME2

(Chý ý: Nếu chạy trên HOSTNAME2 thì thực hiện lệnh `kex -c HOSTNAME1:10000` - khố tạo ra là file /etc/keyEx/run/HOSTNAME1).

`-c hostname:port`: kex chạy ở chế độ client-server, kết nối đến một máy có địa

chỉ xác định.

`-t timeout`: Thiết lập thời gian chờ lần kết nối, mặc định là 60 giây.

`-k KEYFILE`: Chỉ ra file chứa private key và mymodulo, mặc định là

/etc/keyEx/keyEx.prv

`-p PROTO`: Chỉ ra giao thức của KEX, hiện tại duy nhất là 1.

`-E`: Ghi các thơng tin gỡ rối ra màn hình thay vì syslog (/var/log/message).

`-r host`: Xác định host là nơi mà các gói tin của KEX đ−ợc routed qua. Tuỳ chọn

này cần thiết khi kết nối TCP giữa hai máy thông qua một SOCKS hoặc một proxy khác.

Kiểm tra quá trình chạy `kex`

Sau khi chạy `kex` thành cơng, ở máy HOSTNAME1 khóa sẽ đ−ợc l−u trong file /etc/keyEx/run/HOSTNAME2 (dịng key=), cịn máy HOSTNAME2 khố l−u trong /etc/keyEx/HOSTNAME1. Chúng ta hãy kiểm tra dòng `key=` trong hai file này, nếu giống nhau hồn tồn thì q trình trao đổi khố thành công.

Một phần của tài liệu đề tài phần mềm bảo mật mạng dùng giao thức ip quyển 4a các phần mềm bảo mật gói ip trên hệ điều hành linux (Trang 167 - 170)