Quản trị viên Linux - Quản lý từ xa
Khi nói về quản lý từ xa trong CentOS với tư cách là Quản trị viên, chúng ta sẽ khám phá hai phương pháp:
- Quản lý bảng điều khiển
- Quản lý GUI
Quản lý bảng điều khiển từ xa
Quản lý bảng điều khiển từ xa có nghĩa là thực hiện các tác vụ quản trị từ dòng lệnh thông qua một dịch vụ như ssh. Để sử dụng CentOS Linux một cách hiệu quả, với tư cách là Quản trị viên, bạn sẽ cần phải thành thạo dòng lệnh. Trái tim của Linux được thiết kế để sử dụng từ bảng điều khiển. Ngay cả ngày nay, một số quản trị viên hệ thống vẫn thích sức mạnh của lệnh và tiết kiệm tiền cho phần cứng bằng cách chạy các hộp Linux đơn giản không có thiết bị đầu cuối vật lý và không được cài đặt GUI.
Quản lý GUI từ xa
Quản lý GUI từ xa thường được thực hiện theo hai cách: X-Session từ xa hoặc giao thức lớp ứng dụng GUI như VNC. Mỗi loại đều có điểm mạnh và điểm hạn chế. Tuy nhiên, phần lớn, VNC là lựa chọn tốt nhất cho ngành Quản trị. Nó cho phép điều khiển đồ họa từ các hệ điều hành khác như Windows hoặc OS X không hỗ trợ giao thức X Windows.
Sử dụng X Sessions từ xa là nguyên bản cho cả Window-Managers và DesktopManagers của X-Window chạy trên X. Tuy nhiên, toàn bộ kiến trúc X Session chủ yếu được sử dụng với Linux. Không phải mọi Quản trị viên Hệ thống đều có sẵn Máy tính xách tay Linux để thiết lập Phiên X từ xa. Do đó, thông thường nhất là sử dụng phiên bản VNC Server đã điều chỉnh.
Hạn chế lớn nhất của VNC là: VNC không hỗ trợ môi trường đa người dùng như X-Sessions từ xa. Do đó, để truy cập GUI vào XSessions từ xa của người dùng cuối sẽ là lựa chọn tốt nhất. Tuy nhiên, chúng tôi chủ yếu quan tâm đến việc quản trị máy chủ CentOS từ xa.
Chúng ta sẽ thảo luận về việc cấu hình VNC cho nhiều quản trị viên so với vài trăm người dùng với X-Sessions từ xa.
Đặt nền tảng cho bảo mật với SSH để truy cập bảng điều khiển từ xa
ssh hoặc là Secure Shellhiện là tiêu chuẩn để quản trị từ xa bất kỳ máy chủ Linux nào. SSH không giống như telnet sử dụng TLS cho tính xác thực và mã hóa đầu cuối của thông tin liên lạc. Khi được định cấu hình đúng, quản trị viên có thể chắc chắn rằng cả mật khẩu của họ và máy chủ đều được tin cậy từ xa.
Trước khi định cấu hình SSH, hãy nói một chút về bảo mật cơ bản và quyền truy cập ít phổ biến nhất. Khi SSH đang chạy trên cổng mặc định của nó là 22; không sớm thì muộn, bạn sẽ nhận được các cuộc tấn công từ điển brute force chống lại tên người dùng và mật khẩu thông thường. Điều này chỉ đi kèm với lãnh thổ. Bất kể bạn thêm bao nhiêu máy chủ vào tệp từ chối của mình, chúng sẽ chỉ đến từ các địa chỉ IP khác nhau hàng ngày.
Với một số quy tắc phổ biến, bạn có thể chỉ cần thực hiện một số bước chủ động và để kẻ xấu lãng phí thời gian của họ. Sau đây là một số quy tắc bảo mật cần tuân thủ khi sử dụng SSH để quản trị từ xa trên máy chủ sản xuất -
Không bao giờ sử dụng tên người dùng hoặc mật khẩu chung. Tên người dùng trên hệ thống không được là mặc định của hệ thống hoặc được liên kết với địa chỉ email của công ty như:[email protected]
Quyền truy cập root hoặc quyền truy cập quản trị không được phép thông qua SSH. Sử dụng tên người dùng duy nhất và su để root hoặc tài khoản quản trị sau khi được xác thực thông qua SSH.
Chính sách mật khẩu là bắt buộc: Mật khẩu người dùng SSH phức tạp như: "This & IS & a & GUD & P @ ssW0rd & 24 & me". Thay đổi mật khẩu vài tháng một lần để loại bỏ khả năng bị tấn công bạo lực gia tăng.
Vô hiệu hóa các tài khoản bị bỏ rơi hoặc không được sử dụng trong thời gian dài. Nếu người quản lý tuyển dụng có thư thoại cho biết họ sẽ không phỏng vấn trong một tháng; chẳng hạn, có thể dẫn đến những cá nhân am hiểu công nghệ và có nhiều thời gian trong tay.
Xem nhật ký của bạn hàng ngày. Với tư cách là Quản trị viên Hệ thống, hãy dành ít nhất 30 - 40 phút mỗi sáng để xem lại nhật ký bảo mật và hệ thống. Nếu được hỏi, hãy cho mọi người biết bạn không có thời gian để không chủ động. Thực hành này sẽ giúp cô lập các dấu hiệu cảnh báo trước khi một vấn đề xuất hiện với người dùng cuối và lợi nhuận của công ty.
Note On Linux Security- Bất kỳ ai quan tâm đến Quản trị Linux nên tích cực theo đuổi tin tức và công nghệ An ninh mạng hiện tại. Mặc dù chúng ta hầu như chỉ nghe về việc các hệ điều hành khác bị xâm nhập, nhưng một hộp Linux không an toàn là một kho báu được săn lùng cho tội phạm mạng. Với sức mạnh của Linux trên kết nối internet tốc độ cao, tội phạm mạng lành nghề có thể sử dụng Linux để tấn công các hệ điều hành khác.
Cài đặt và cấu hình SSH để truy cập từ xa
Step 1 - Cài đặt SSH Server và tất cả các gói phụ thuộc.
[root@localhost]# yum -y install openssh-server
'Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: repos.centos.net
* extras: repos.dfw.centos.com
* updates: centos.centos.com
Resolving Dependencies
--> Running transaction check
---> Package openssh-server.x86_64 0:6.6.1p1-33.el7_3 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
Step 2 - Sử dụng thường xuyên an toàn để thêm vào quyền truy cập shell.
[root@localhost ~]# useradd choozer
[root@localhost ~]# usermod -c "Remote Access" -d /home/choozer -g users -G
wheel -a choozer
Note- Chúng tôi thêm người dùng mới cho bánh xe nhóm cho phép khả năng su vào gốc một lần truy cập SSH đã được chứng thực. Chúng tôi cũng đã sử dụng tên người dùng không thể tìm thấy trong danh sách từ phổ biến. Bằng cách này, tài khoản của chúng tôi sẽ không bị khóa khi SSH bị tấn công.
Cài đặt cấu hình giữ tệp cho máy chủ sshd là / etc / ssh / sshd_config .
Những phần chúng tôi muốn chỉnh sửa ban đầu là -
LoginGraceTime 60m
PermitRootLogin no
Step 3- Tải lại sshd daemon SSH .
[root@localhost]# systemctl reload sshd
Bạn nên đặt thời gian gia hạn đăng xuất thành 60 phút. Một số tác vụ quản trị phức tạp có thể vượt quá mặc định là 2 phút. Thực sự không có gì khó chịu hơn việc hết thời gian chờ phiên SSH khi định cấu hình hoặc nghiên cứu các thay đổi.
Step 4 - Hãy thử đăng nhập bằng thông tin đăng nhập gốc.
bash-3.2# ssh centos.vmnet.local
[email protected]'s password:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
Step 5- Chúng tôi không còn có thể đăng nhập từ xa qua ssh với thông tin đăng nhập gốc . Vì vậy, đăng nhập cho phép của tài khoản người dùng không có đặc quyền của chúng tôi và su vào gốc tài khoản.
bash-3.2# ssh [email protected]
[email protected]'s password:
[choozer@localhost ~]$ su root
Password:
[root@localhost choozer]#
Step 6- Cuối cùng, hãy đảm bảo rằng dịch vụ SSHD tải khi khởi động và firewalld cho phép các kết nối SSH bên ngoài.
[root@localhost]# systemctl enable sshd
[root@localhost]# firewall-cmd --permanent --add-service=ssh
success
[root@localhost]# firewall-cmd --reload
success
[root@localhost]#
SSH hiện đã được thiết lập và sẵn sàng để quản trị từ xa. Tùy thuộc vào biên giới doanh nghiệp của bạn, thiết bị biên lọc gói có thể cần được cấu hình để cho phép quản trị từ xa SSH bên ngoài mạng LAN công ty.
Định cấu hình VNC cho Quản trị CentOS từ xa
Có một số cách để kích hoạt tính năng quản trị CentOS từ xa qua VNC trên CentOS 6 - 7. Cách dễ nhất, nhưng hạn chế nhất là sử dụng một gói có tên vino .Vinolà một ứng dụng Kết nối Máy tính để bàn Mạng Ảo dành cho Linux được thiết kế dựa trên nền tảng Máy tính để bàn Gnome. Do đó, người ta cho rằng quá trình cài đặt đã hoàn tất với Gnome Desktop. Nếu Gnome Desktop chưa được cài đặt, hãy làm như vậy trước khi tiếp tục. Vino sẽ được cài đặt Gnome GUI theo mặc định.
Để định cấu hình chia sẻ màn hình với Vino trong Gnome, chúng tôi muốn đi đến Tùy chọn hệ thống CentOS để chia sẻ màn hình.
Applications->System Tools->Settings->Sharing
Các lưu ý khi cấu hình VNC Desktop Sharing -
Disable New Connections must ask for access- Tùy chọn này sẽ yêu cầu quyền truy cập vật lý để ok mọi kết nối. Tùy chọn này sẽ ngăn quản trị từ xa trừ khi ai đó đang ở trên màn hình thực.
Enable Require a password- Điều này tách biệt với mật khẩu người dùng. Nó sẽ kiểm soát quyền truy cập vào màn hình ảo và vẫn yêu cầu mật khẩu người dùng để truy cập màn hình bị khóa (điều này tốt cho bảo mật).
Forward UP&P Ports: If available leave disabled- Các cổng UP&P chuyển tiếp sẽ gửi yêu cầu Universal Plug and Play cho thiết bị lớp 3 để cho phép kết nối VNC với máy chủ lưu trữ tự động. Chúng tôi không muốn điều này.
Đảm bảo rằng vino đang nghe trên Cổng VNC 5900.
[root@localhost]# netstat -antup | grep vino
tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN 4873/vino-server
tcp6 0 0 :::5900 :::* LISTEN 4873/vino-server
[root@localhost]#
Bây giờ chúng ta hãy cấu hình Tường lửa của chúng ta để cho phép các kết nối VNC đến.
[root@localhost]# firewall-cmd --permanent --add-port=5900/tcp
success
[root@localhost]# firewall-cmd --reload
success
[root@localhost rdc]#
Cuối cùng, như bạn có thể thấy, chúng tôi có thể kết nối CentOS Box của mình và quản lý nó với một ứng dụng khách VNC trên Windows hoặc OS X.
Điều quan trọng là tuân thủ các quy tắc tương tự đối với VNC như chúng tôi đã đặt ra cho SSH. Cũng giống như SSH, VNC liên tục được quét trên các dải IP và kiểm tra các mật khẩu yếu. Cũng cần lưu ý rằng việc bật đăng nhập CentOS mặc định với thời gian chờ trên bảng điều khiển sẽ giúp bảo mật VNC từ xa. Vì kẻ tấn công sẽ cần VNC và mật khẩu người dùng, hãy đảm bảo mật khẩu chia sẻ màn hình của bạn khác và khó đoán như mật khẩu người dùng.
Sau khi nhập mật khẩu chia sẻ màn hình VNC, chúng ta cũng phải nhập mật khẩu người dùng để truy cập màn hình bị khóa.
Security Note- Theo mặc định, VNC không phải là một giao thức được mã hóa. Do đó, kết nối VNC nên được tạo đường hầm thông qua SSH để mã hóa.
Thiết lập đường hầm SSH qua VNC
Thiết lập Đường hầm SSH sẽ cung cấp một lớp mã hóa SSH để tạo đường hầm kết nối VNC. Một tính năng tuyệt vời khác là nó sử dụng tính năng nén SSH để thêm một lớp nén khác vào các bản cập nhật màn hình GUI VNC. An toàn hơn và nhanh hơn luôn là một điều tốt khi xử lý việc quản lý các máy chủ CentOS!
Vì vậy, từ ứng dụng khách của bạn sẽ khởi tạo kết nối VNC, hãy thiết lập một đường hầm SSH từ xa. Trong phần trình diễn này, chúng tôi đang sử dụng OS X. Đầu tiên chúng tôi cần sudo -s để root .
bash-3.2# sudo -s
password:
Nhập mật khẩu người dùng và bây giờ chúng ta sẽ có root shell với dấu nhắc # -
bash-3.2#
Bây giờ, hãy tạo Đường hầm SSH của chúng ta .
ssh -f [email protected] -L 2200:192.168.1.143:5900 -N
Hãy chia nhỏ lệnh này -
ssh - Chạy tiện ích ssh cục bộ
-f - ssh sẽ chạy ở chế độ nền sau khi tác vụ thực thi đầy đủ
[email protected] - Người dùng ssh từ xa trên máy chủ CentOS lưu trữ các dịch vụ VNC
-L 2200:192.168.1.143:5900 - Tạo đường hầm của chúng tôi [Cổng cục bộ]: [máy chủ từ xa]: [cổng từ xa của dịch vụ VNC]
-N nói với ssh rằng chúng tôi không muốn thực hiện lệnh trên hệ thống từ xa
bash-3.2# ssh -f [email protected] -L 2200:192.168.1.143:5900 -N
[email protected]'s password:
Sau khi nhập thành công mật khẩu của người dùng ssh từ xa, đường hầm ssh của chúng tôi được tạo. Bây giờ cho phần thú vị! Để kết nối, chúng tôi trỏ máy khách VNC của chúng tôi tại máy chủ cục bộ trên cổng của đường hầm, trong trường hợp này là cổng 2200. Sau đây là cấu hình trên Máy khách VNC của Mac Laptop -
Và cuối cùng là Kết nối Máy tính để bàn VNC từ xa của chúng tôi!
Điều thú vị về SSH tunneling là nó có thể được sử dụng cho hầu hết mọi giao thức. Đường hầm SSH thường được sử dụng để bỏ qua việc lọc cổng đi ra và xâm nhập bởi ISP, cũng như đánh lừa IDS / IPS của lớp ứng dụng trong khi trốn tránh việc giám sát lớp phiên khác.
ISP của bạn có thể lọc cổng 5900 cho các tài khoản không phải doanh nghiệp nhưng cho phép SSH trên cổng 22 (hoặc một người có thể chạy SSH trên bất kỳ cổng nào nếu cổng 22 được lọc).
IPS và IDS cấp ứng dụng xem xét tải trọng. Ví dụ: lỗi tràn bộ đệm phổ biến hoặc SQL Injection. Mã hóa SSH end-to-end sẽ mã hóa dữ liệu lớp ứng dụng.
SSH Tunneling là công cụ tuyệt vời trong hộp công cụ của Quản trị viên Linux để hoàn thành công việc. Tuy nhiên, với tư cách là Quản trị viên, chúng tôi muốn khám phá việc khóa tính khả dụng của những người dùng ít đặc quyền hơn có quyền truy cập vào đường hầm SSH.
Administration Security Note- Hạn chế SSH Tunneling là việc cần sự suy nghĩ của Quản trị viên. Đánh giá lý do tại sao người dùng cần SSH Tunneling ngay từ đầu; những gì người dùng cần đào hầm; cùng với xác suất rủi ro thực tế và tác động trong trường hợp xấu nhất.
Đây là một chủ đề nâng cao trải dài bên ngoài lĩnh vực của một sơ cấp độ trung cấp. Nghiên cứu về chủ đề này được khuyên dành cho những ai muốn tiếp cận các cấp trên của Cơ quan quản lý CentOS Linux.
Sử dụng Đường hầm SSH cho X-Windows từ xa
Thiết kế của X-Windows trong Linux thực sự rất gọn gàng so với thiết kế của Windows. Nếu chúng ta muốn điều khiển một hộp Linux từ xa từ một hộp Linux khác, chúng ta có thể tận dụng các cơ chế được tích hợp trong X.
X-Windows (thường được gọi là "X"), cung cấp cơ chế để hiển thị các cửa sổ ứng dụng bắt nguồn từ một hộp Linux sang phần hiển thị của X trên một hộp Linux khác. Vì vậy, thông qua SSH, chúng tôi có thể yêu cầu một ứng dụng X-Windows được chuyển tiếp đến màn hình của một hộp Linux khác trên toàn thế giới!
Để chạy Ứng dụng X từ xa qua đường hầm ssh, chúng ta chỉ cần chạy một lệnh duy nhất -
[root@localhost]# ssh -X [email protected]
The syntax is - ssh -X [user] @ [host] và máy chủ phải chạy ssh với một người dùng hợp lệ.
Sau đây là ảnh chụp màn hình GIMP chạy trên Máy trạm Ubuntu thông qua đường hầm ssh XWindows từ xa.
Nó khá đơn giản để chạy các ứng dụng từ xa từ một máy chủ hoặc máy trạm Linux khác. Cũng có thể bắt đầu toàn bộ X-Session và có toàn bộ môi trường máy tính để bàn từ xa thông qua một số phương pháp.
XDMCP
Các gói phần mềm không đầu chẳng hạn như NX
Định cấu hình màn hình và màn hình thay thế trong X và trình quản lý máy tính để bàn như Gnome hoặc KDE
Phương pháp này thường được sử dụng nhất cho các máy chủ không có đầu không có màn hình vật lý và thực sự vượt quá phạm vi của mồi cấp trung gian. Tuy nhiên, thật tốt khi biết các tùy chọn có sẵn.