Chương này trình bày ý nghĩa của kết nối từ xa đến servers trong quản trị hệ thống mạng. Bên cạnh đó, Chương này cịn trình bày cách cấu hình của telnet và ssh trên Linux.
Sau khi học xong chương này, sinh viên có thể:
- Trình bày ý nghĩa của việc kết nối servers để cấu hình và quản trị
- Phân biệt được giữa giao thức telnet và ssh
- Thực hiện cài đặt và cấu hình telnet
- Thực hiện cài đặt và cấu hình ssh
2.1| Tổng quan kết nối server TELNET - SSH
Telnet là một giao thức máy tính cung cấp khả năng giao tiếp tương tác hai chiều cho
các máy tính trên internet và mạng cục bộ LAN. Telnet được biết đến là giao thức đầu tiên được sử dụng khi internet ra mắt lần đầu vào năm 1969. Telnet cung cấp một giao diện dòng lệnh đáp ứng hầu hết các tiêu chuẩn cơ bản. Dần dần, việc sử dụng Telnet khơng cịn được khuyến khích bởi có sự xuất hiện của SSH, cũng như để đề phòng các nguy cơ về bảo mật nghiêm trọng do telnet thường được sử dụng trên mơi trường mạng mở. Ngồi ra, telnet cũng thiếu các chính sách xác thực và khả năng mã hóa dữ liệu. Theo thời gian, giao thức Telnet khơng
an tồn được phát triển thành một giao thức mạng mới có tên gọi là Secure Socket Shell (SSH), và hiện nay SSH là giao thức chủ yếu các quản trị viên mạng hiện đại sử dụng để quản lý các
máy tính Linux và Unix từ xa. SSH cung cấp khả năng xác thực và bảo mật các dữ liệu mã hóa mạnh giữa các máy tính trên một mạng có độ tin cậy không cao.
SSH, hoặc được gọi là Secure Shell, là một giao thức điều khiển từ xa cho phép người
Tài liệu giảng dạy Quản trị hệ thống Linux 2 Trang 28
thế cho trình Telnet vốn khơng có mã hóa và sử dụng kỹ thuật cryptographic để đảm bảo tất cả giao tiếp gửi tới và gửi từ server từ xa diễn ra trong tình trạng mã hóa. Nó cung cấp thuật tốn để chứng thực người dùng từ xa, chuyển input từ client tới host, và relay kết quả trả về tới khách hàng.
Hình 2.1 – Giao thức kết nối ssh đến từ client đến server client đến server
Hình 2..2 – Kết nối ssh bảo mật bằng key
2.2| Cấu hình Telnet 2.2.1| Ví dụ mơ hình thực hiện 2.2.1| Ví dụ mơ hình thực hiện Client Switch Server Telnet-ssh 192.168.100.0/24
Hình 2.3 – Mơ hình thực hiện Telnet
2.2.2| Cấu hình
Bước 1: Cài đặt gói telnet + xinetd:
[root@server ~]# yum install telnet telnet-server –y [root@server ~]# yum install xinetd –y
Bước 2: Mở đường dẫn đến file cấu hình telnet:
vi /etc/xinetd.d/telnet
Sửa disable = no
Tài liệu giảng dạy Quản trị hệ thống Linux 2 Trang 29
# default: on
# description: The telnet server serves telnet sessions; it uses \ # unencrypted username/password pairs for authentication.
service telnet { flags = REUSE socket_type = stream wait = no user = root server = /usr/sbin/in.telnetd log_on_failure += USERID disable = no }
Bước 3: Khởi động dich vụ telnet:
[root@server ~]# service xinetd start
Starting xinetd: [ OK ]
Luôn bật dich vụ khi khởi động lại
[root@server ~]# chkconfig telnet on [root@server ~]# chkconfig xinetd on
Bước 4: Tạo user kt1 trên server: [root@server ~]# useradd kt1
[root@server ~]# passwd kt1 [root@server ~]# 123
Bước 5: Trên máy trạm mở cmd hoặc bất kì phần mềm hỗ trợ telnet (Putty)
sk@sk:~$ telnet 192.168.1.1 (lệnh telnet vào server) Trying 192.168.1.1...
Connected to 192.168.1.1. Escape character is '^]'. CentOS release 6.4 (Final)
Kernel 2.6.32-358.el6.i686 on an i686 login: kt1
Password: [sk@server ~]$
Tài liệu giảng dạy Quản trị hệ thống Linux 2 Trang 30
Bước 6: Chỉnh sửa firewall:
[root@server ~]# vi /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. *filter
:INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW --dport 23 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT
Bước 7: Khởi động lại firewall:
[root@server ~]# service iptables restart
iptables: Flushing firewall rules: [ OK ]
iptables: Setting chains to policy ACCEPT: filter [ OK ] iptables: Unloading modules: [ OK ]
iptables: Applying firewall rules: [ OK ]
Cấu hình cho phép nhiều phiên telnet cùng lúc
- Vào đường dẫn file cấu hình: vi /etc/securetty
Tài liệu giảng dạy Quản trị hệ thống Linux 2 Trang 31
- Thêm các dòng sau vào file: pts/0
pts/1 pts/4
- Khởi động lại dich vụ telnet: # service telnet restart - Vào Putty mở telnet và logon = root user.
- Để hủy telnet ta tiến hành như sau:
- [root@server ~]# vi /etc/xinetd.d/telnet
- # default: on
- # description: The telnet server serves telnet sessions; it uses \
- # unencrypted username/password pairs for authentication.
- service telnet
- {
- flags = REUSE
- socket_type = stream
Tài liệu giảng dạy Quản trị hệ thống Linux 2 Trang 32 - user = root - server = /usr/sbin/in.telnetd - log_on_failure += USERID - disable = yes - } 2.2.3| Kết quả thực hiện
Dùng các ứng dụng lệnh Command promt, Terminal hoặc phần mềm Putty để telnet đến các hệ thống servers trong hệ thống mạng.
Tài liệu giảng dạy Quản trị hệ thống Linux 2 Trang 33 2.3| Cấu hình SSH 2.3.1| Ví dụ mơ hình thực hiện Client Switch Server Telnet-ssh 192.168.1.0/24 Hình 2.4 – Mơ hình thực hiện SSH 2.3.2| Cấu hình
- Kiểm tra xem openssh đã được cài đặt chưa (mặc định đã cài sẵn)
[root@server ~]# service sshd status
[root@server ~]# sshd (pid 9488 9486 1850) is running...
- Nếu chưa có thì cài đặt: [root@server ~]# yum install openssh-server - Khởi động dịch vụ ssh: [root@server ~]# service sshd start
Cấu hinh chứng thực bằng password
- Mở file cấu hình ssh: vi /etc/ssh/sshd_config Ta phải thay một số dòng sau trong sshd_config.
Tài liệu giảng dạy Quản trị hệ thống Linux 2 Trang 34
# Authentication: #LoginGraceTime 2m
#PermitRootLogin yes // Bỏ # tại đây #StrictModes yes
#MaxAuthTries 6 #MaxSessions 10
# To disable tunneled clear text passwords, change to no here! #PasswordAuthentication yes
#PermitEmtyPasswords no // Không cho phép để mật khẩu trống PasswordAuthentication yes
- Chỉnh Firewall
#vi /etc/sysconfig/iptables (--dport 22)
#service sshd restart #service iptables restart
Cấu hình đổi port ssh nếu khơng để port mặc định - Mở file cấu hình ssh: vi /etc/ssh/sshd_config
o Đổi Port SSH : (Số port > 1024) VD: đổi sang port 1234
Tài liệu giảng dạy Quản trị hệ thống Linux 2 Trang 35
Sau đó , tiến hành mở port trên firewall :
#vi /etc/sysconfig/iptables
#service sshd restart #service iptables restart
Lưu lại. Sau đó restart lại ssh để hồn tất quá trình cấu hình với câu lệnh:
[root@server ~]# service sshd restart.
Tài liệu giảng dạy Quản trị hệ thống Linux 2 Trang 36
- Nhập IP máy server và port để kết nối (mặc định port 22), cửa sổ terminal hiện ra nhập tên user và passwd vào là ok.
Chứng thực bằng khóa (Keys Authentication)
o Bước 1: Tạo SSH key bằng PuTTYgen
- Nhấn vào nút Generate để tạo mới private + public key. Di chuyển trỏ chuột vào vùng trắng như hình dưới để tạo khóa.
Tài liệu giảng dạy Quản trị hệ thống Linux 2 Trang 37
- Có thể thay đổi Key comment để dễ phân biệt và dễ nhớ nếu như có nhiều key.
Nhập mật khẩu cho Key passphrase và Confirm passphrase nếu như muốn sử dụng mật khẩu cho private key. Bất cứ ai khơng có passphrase cũng sẽ khơng bao giờ có thể sử dụng được khóa riêng tư.
Tài liệu giảng dạy Quản trị hệ thống Linux 2 Trang 38
- Nhấn Save public key để lưu khóa cơng khai, hoặc có thể copy nội dung khóa cơng khai mà không cần lưu file này. Nhấn Save private key để lưu khóa riêng tư.
Chú ý: trước khi lưu khóa, có thể chọn tiêu chuẩn RSA hoặc DSA hoặc một
loại khác phù hợp với máy chủ SSH. Cũng có thể tăng cấp độ mã hóa bằng cách thay đổi số bit từ 2048 thành 4096. Nên để mặc định.
Như vậy là đã có cặp khóa cơng khai (public key) và khóa riêng tư (private key). Nếu như khơng muốn sử dụng PuTTYgen, có thể sử dụng OpenSSH để tạo khóa.
o Bước 2: Thêm SSH key vào máy chủ
- Đầu tiên cần tạo thư mục .ssh tại thư mục home của user: mkdir ~/.ssh
Tài liệu giảng dạy Quản trị hệ thống Linux 2 Trang 39
~/.ssh/authorized_keys
- Bây giờ cần copy nội dung của khóa cơng khai (public key) vào đây và lưu lại.
- Vào đường dẫn vi /etc/ssh/sshd_config để tắt xác thực bằng password :
Thêm dấu # vào trước dòng (66) PasswordAuthentication yes chuyển yes thành no
Bỏ # dòng 48 # dòng 49
Chuyển yes => no dòng 97
- Thiết lập quyền cho thư mục và file ở trên: chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
o Bước 3: qua pc để truy tiến hành ssh
- Đối với Windows, nên sử dụng PuTTY SSH client để kết nối SSH bằng SSH key.
- Như thường lệ, ở mục Session bên cột trái, nhập IP của máy chủ hoặc tên miền và Port (mặc định là 22).
Tài liệu giảng dạy Quản trị hệ thống Linux 2 Trang 40
- Ở cột tùy chọn bên trái, đi đến Connection > SSH > Auth và nhấn Browse… để mở khóa riêng tư (private key).
Tài liệu giảng dạy Quản trị hệ thống Linux 2 Trang 41
- Nhấn Open để kết nối SSH.
NOTE: ~/.ssh/authorized_keys: Thư mục chứa public key (RSA hoặc
DSA) dùng để cấu hình SSH auth Một số tuỳ chỉnh thêm:
o Giới hạn IP truy cập SSH
Trong iptables , tiến hành đặt rule cho phép 1 IP truy cập cổng SSH VD : IP Client laf 192.168.1.204 được phép SSH vào server với port 1234, các IP khác truy cập vào port đấy sẽ bị DROP
-A INPUT -m state –state NEW -m tcp -p tcp –dport 1234 -s 192.168.1.204 -j ACCEPT
Tài liệu giảng dạy Quản trị hệ thống Linux 2 Trang 42
o Giới hạn số lần đăng nhập sai và số phiên SSH
Giới hạn số lần đăng nhập sai :
MaxAuthTries 3 // Sau 3 lần đăng nhập sai sẽ thoát session , được
dùng để tránh dò password
MaxSessions 1 // Chỉ được phép duy nhất 1 phiên kết nối SSH
o Giới hạn số lần đăng nhập sai và số phiên SSH
Tạo tài khoản SSH :
#useradd sshvnitnews01 #passwd sshvnitnews01 #useradd sshvnitnews02 #passwd sshvnitnews02 Truy cập sshd_config và chỉnh : PermitRootLogin no
AllowUser sshvnitnews01 sshvnitnews02
Nếu server có nhiều user , cấu hình deny
Tài liệu giảng dạy Quản trị hệ thống Linux 2 Trang 43
o Cấu hình Logout SSH nếu phiên đang Idle (nhàn rỗi) Trong file sshd_config :
ClientAliveInterval 300 //Sau 300s = 5’ , sẽ bị logout nếu phiên đang
Idle
ClientAliveCountMax 0 //Khoảng thời gian chờ nếu khơng có dữ liệu
sẽ gửi 1 thông điệp yêu cầu phản hồi
2.3.3| Kết quả thực hiện
Sử dụng phần mềm Putty để ssh đến các hệ thống servers trong hệ thống mạng.
2.4| Bài tập chương 2
Tài liệu giảng dạy Quản trị hệ thống Linux 2 Trang 44
Câu 2: Vẽ sơ đồ mạng áp dụng SSH trong việc quản trị hệ thống mạng cho hệ thống mạng FIT-TDC.
Câu 3: Thực hiện cấu hình TELNET và SSH chứng thực bằng username và password cho sơ đồ mạng sau:
Client Switch
Server Telnet-ssh 200.200.200.0/24
Câu 4: Thực hiện cấu hình SSH chứng thực bằng key cho sơ đồ mạng sau::
TELNET SSH (S1) (S2) 10.10.10.0/24(vmnet2) KYTHUAT NHANSU
Tài liệu giảng dạy Quản trị hệ thống Linux 2 Trang 45
CHƯƠNG 3. DỊCH VỤ DHCP – DHCP RELAY
Chương này trình bày khái quát về dịch vụ DHCP trong xây dựng, quản trị hệ thống mạng. Bên cạnh đó, Chương này cịn trình bày cách xây dựng mơ hình, thực hiện cấu hình dịch vụ DHCP, DHCP RELAY trên Linux.
Sau khi học xong chương này, sinh viên có thể:
- Trình bày ý nghĩa của DHCP servers trong việc cấp IP cho hệ thống mạng
- Phân biệt được giữa cấu hình IP theo Manually với Automatically
- Thực hiện cài đặt và cấu hình DHCP server
- Thực hiện cài đặt và cấu hình DHCP RELAY
3.1| Tổng quan dịch vụ DHCP, DHCP RELAY 3.1.1| DHCP
Dynamic Host Configuration Protocol (DHCP – giao thức cấp phát IP động) là
một giao thức cho phép cấp phát địa chỉ IP một cách tự động cùng với các cấu hình liên quan khác như Subnet mask, Gateway, DNS Server... Client được cấu hình nhận địa chỉ IP một cách tự động. Vì thế sẽ giảm việc can thiệp vào hệ thống mạng. Giao thức DHCP Server cung cấp một database để theo dõi tất cả các máy tính Client trong hệ thống mạng.
Các loại gói tin chính của DHCP Server:
- Gói tin Discover: Một DHCP Client khi mới tham gia vào hệ thống mạng. Nó sẽ yêu cầu thông tin địa chỉ IP từ DHCP Server bằng cách gửi bản tin broadcast một gói DHCP Discover có địa chỉ nguồn là 0.0.0.0 để tìm kiếm DHCP Server vì client chưa có địa chỉ IP.
- Bản tin Offer: Khi DHCP Server nhận được gói DHCP Discover từ client. Nó sẽ gửi lại một gói DHCP Offer chứa các thông số như địa chỉ IP, Subnet Mask, Gateway,… cho client . Có thể nhiều DHCP server sẽ gửi lại gói DHCP Offer nhưng Client chỉ chấp nhận gói DHCP Offer đầu tiên nó nhận được.
- DHCP Request Packet: Khi DHCP Client nhận được một gói DHCP Offer. Nó đáp lại bằng việc gửi bản tin DHCP Request để xác nhận hoặc để kiểm tra lại các
Tài liệu giảng dạy Quản trị hệ thống Linux 2 Trang 46
thông tin mà DHCP Server vừa gửi.
- DHCP Acknowledge: Server kiểm tra và xác nhận lại sự chấp nhận thuê địa chỉ IP từ client.
Hình 3.1 – Các loại gói tin được trao đổi trong một phiên của giao thức DHCP Các gói tin phụ của DHCP:
- Gói tin DHCP Nak: Nếu một địa chỉ IP đã hết hạn hoặc đã được cấp phát cho một Client khác. DHCP Server sẽ tiến hành gửi gói DHCP Nak cho Client. Như vậy nếu Client muốn sử dụng lại địa chỉ IP thì phải bắt đầu tiến trình thuê lại địa chỉ IP.
- DHCP Decline Packet: Nếu DHCP Client nhận được bản tin trả về không đủ thông tin hoặc hết hạn. Nó sẽ gửi gói DHCP Decline đến các Server để yêu cầu thiết lập lại tiến trình thuê địa chỉ IP.
- Các gói tin DHCP Release: Client gửi bản tin này đến Server để ngừng thuê IP. Khi nhận được bản tin này, server sẽ thu hồi lại IP đã cấp cho Client.
Tài liệu giảng dạy Quản trị hệ thống Linux 2 Trang 47
Tiến trình hoạt động của một DHCP: Hoạt động cấp phát địa chỉ IP của giao
thức DHCP sẽ thông qua các bước sau:
- Bước 1: Máy trạm sẽ phát ra một bản tin broadcast để tìm kiếm DHCP Server để thuê địa chỉ. Client sẽ gửi bản tin broadcast (có chứa địa chỉ MAC của client) với gói tin DHCP Discover lên mạng.
- Bước 2: Nhiều DHCP Server có thể nhận thơng điệp và chuẩn bị địa chỉ IP cho máy trạm. Nếu Server có cấu hình địa chỉ IP hợp lệ cho máy trạm. Server sẽ gửi thông điệp “DHCP Offer” chứa địa chỉ MAC của Client đã gửi lên. Địa chỉ IP “Offer”, subnet mask, địa chỉ IP của máy chủ (địa chỉ Gateway) và thời gian cho thuê đến Client, DNS Server…
- Bước 3: Khi Client nhận được gói tin DHCP Offer và chấp nhận thuê địa chỉ IP trong gói tin Offer. Client sẽ gửi bản tin DHCP Request để yêu cầu DHCP Server