Thiết lập server ban đầu với CentOS 7
Khi bạn lần đầu tiên tạo một server mới, có một số bước cấu hình mà bạn nên thực hiện sớm như một phần của cài đặt cơ bản. Điều này sẽ tăng tính bảo mật và khả năng sử dụng cho server của bạn và sẽ tạo cho bạn một nền tảng vững chắc cho các hành động tiếp theo.Bước một - Đăng nhập root
Để đăng nhập vào server của bạn, bạn cần biết địa chỉ IP công cộng của server và password cho account của user "root". Nếu bạn chưa đăng nhập vào server của bạn , bạn có thể làm theo hướng dẫn đầu tiên trong loạt bài này, Cách kết nối với Server bằng SSH , trình bày chi tiết quá trình này.
Nếu bạn chưa được kết nối với server của bạn , hãy tiếp tục và đăng nhập với quyền là user root
bằng lệnh sau (thay thế từ được đánh dấu bằng địa chỉ IP công cộng của server của bạn):
- ssh root@SERVER_IP_ADDRESS
Hoàn tất quá trình đăng nhập bằng cách chấp nhận cảnh báo về tính xác thực của server , nếu nó xuất hiện, thì hãy cung cấp xác thực root của bạn (mật khẩu hoặc private key ). Nếu đây là lần đầu tiên bạn đăng nhập vào server , bằng password , bạn cũng sẽ được yêu cầu thay đổi password root .
Về root
User root là admin-user trong môi trường Linux có các quyền rất rộng. Bởi vì các quyền cao của account root , bạn thực sự không khuyến khích sử dụng nó một cách thường xuyên. Do quyền của account root có thể thực hiện lệnh rủi ro do vô tình hay cố ý. .
Bước tiếp theo là cài đặt một account user thay thế với phạm vi ảnh hưởng giảm bớt cho công việc hàng ngày. Ta sẽ hướng dẫn bạn cách đạt được các quyền gia tăng lúc bạn cần chúng.
Bước hai - Tạo user mới
Khi bạn đã đăng nhập bằng quyền root
, ta chuẩn bị thêm account user mới mà ta sẽ sử dụng để đăng nhập từ bây giờ.
Ví dụ này tạo một user mới có tên là “demo”, nhưng bạn nên thay thế nó bằng một tên user bạn muốn :
- adduser demo
Tiếp theo, chỉ định password cho user mới ( , thay thế "bản demo" bằng user mà bạn vừa tạo):
- passwd demo
Nhập password mạnh và lặp lại để xác minh.
Bước ba - Đặc quyền root
Bây giờ, ta có một account user mới với các quyền account thông thường. Tuy nhiên, đôi khi ta có thể cần thực hiện các việc admin .
Để tránh phải đăng xuất khỏi user bình thường của ta và đăng nhập lại bằng account root , ta có thể cài đặt những gì được gọi là "siêu user " hoặc quyền root cho account thông thường của bạn . Điều này sẽ cho phép user bình thường của ta chạy các lệnh có quyền quản trị bằng cách đặt từ sudo
trước mỗi lệnh.
Để thêm những quyền này cho user mới của ta , ta cần thêm user mới vào group "bánh xe". Theo mặc định, trên CentOS 7, user thuộc group "bánh xe" được phép sử dụng sudo
.
Như root
, chạy lệnh này để thêm user mới của bạn vào group wheel (thay thế chữ tô đậm với user mới của bạn):
- gpasswd -a demo wheel
Như vậy, user của bạn có thể chạy các lệnh với các quyền của user siêu cấp! Để biết thêm thông tin về cách hoạt động của điều này, hãy xem hướng dẫn sudoers của ta .
Bước bốn - Thêm xác thực public key (Khuyến nghị)
Bước tiếp theo trong việc bảo mật server của bạn là cài đặt xác thực public key cho user mới của bạn. Cài đặt này sẽ tăng tính bảo mật cho server của bạn bằng cách yêu cầu SSH key riêng tư để đăng nhập.
Tạo một cặp khóa
Nếu bạn chưa có cặp SSH key , bao gồm public key và private key , bạn cần tạo một cặp khóa. Nếu bạn đã có khóa muốn sử dụng, hãy chuyển sang bước Sao chép public key .
Để tạo một cặp khóa mới, hãy nhập lệnh sau vào terminal của máy local của bạn:
- ssh-keygen
Giả sử user local của bạn được gọi là “localuser”, bạn sẽ thấy kết quả giống như sau:
ssh-keygen outputGenerating public/private rsa key pair. Enter file in which to save the key (/Users/localuser/.ssh/id_rsa):
Nhấn quay lại để chấp nhận tên và đường dẫn file này (hoặc nhập tên mới).
Tiếp theo, bạn sẽ được yêu cầu nhập passphrase (password bảo vệ) để bảo mật khóa. Bạn có thể nhập passphrase (password bảo vệ) hoặc để trống passphrase (password bảo vệ) .
Lưu ý: Nếu bạn để trống passphrase (password bảo vệ) , bạn có thể sử dụng private key để xác thực mà không cần nhập passphrase (password bảo vệ) . Nếu bạn nhập passphrase (password bảo vệ) , bạn cần cả private key và passphrase (password bảo vệ) để đăng nhập. Bảo mật khóa của bạn bằng passphrase (password bảo vệ) an toàn hơn, nhưng cả hai phương pháp đều có công dụng và an toàn hơn so với xác thực bằng password cơ bản.
Điều này tạo ra một private key , id_rsa
, và một public key , id_rsa.pub
, trong .ssh
folder của localuser ‘s folder home. Lưu ý private key không được chia sẻ với bất kỳ ai không được phép truy cập vào server của bạn!
Sao chép public key
Sau khi tạo cặp SSH key , bạn cần sao chép public key của bạn vào server mới. Ta sẽ trình bày hai cách dễ dàng để làm điều này.
Lưu ý : Phương thức ssh-copy-id
sẽ không hoạt động trên DigitalOcean nếu SSH key được chọn trong quá trình tạo Server. Điều này là do DigitalOcean vô hiệu hóa xác thực password nếu có SSH key và ssh-copy-id
dựa vào xác thực password để sao chép khóa.
Nếu bạn đang sử dụng DigitalOcean và đã chọn SSH key trong quá trình tạo Server, hãy sử dụng tùy chọn 2 để thay thế.
Tùy chọn 1: Sử dụng ssh-copy-id
Nếu máy local của bạn đã cài đặt tập lệnh ssh-copy-id
, bạn có thể sử dụng nó để cài đặt public key của bạn cho mọi user mà bạn có thông tin đăng nhập.
Chạy tập lệnh ssh-copy-id
bằng cách chỉ định user và địa chỉ IP của server mà bạn muốn cài đặt khóa, như sau:
- ssh-copy-id demo@SERVER_IP_ADDRESS
Sau khi cung cấp password của bạn khi được yêu cầu , public key của bạn sẽ được thêm vào file .ssh/authorized_keys
của user từ xa. Khóa cá nhân tương ứng bây giờ được dùng để đăng nhập vào server .
Tùy chọn 2: Cài đặt khóa theo cách thủ công
Giả sử bạn đã tạo cặp SSH key bằng bước trước, hãy sử dụng lệnh sau tại terminal của máy local của bạn để in public key của bạn ( id_rsa.pub
):
- cat ~/.ssh/id_rsa.pub
Thao tác này sẽ in SSH key công khai của bạn, khóa này sẽ trông giống như sau:
id_rsa.pub contentsssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBGTO0tsVejssuaYR5R3Y/i73SppJAhme1dH7W2c47d4gOqB4izP0+fRLfvbz/tnXFz4iOP/H6eCV05hqUhF+KYRxt9Y8tVMrpDZR2l75o6+xSbUOMu6xN+uVF0T9XzKcxmzTmnV7Na5up3QM3DoSRYX/EP3utr2+zAqpJIfKPLdA74w7g56oYWI9blpnpzxkEd3edVJOivUkpZ4JoenWManvIaSdMTJXMy3MtlQhva+j9CgguyVbUkdzK9KKEuah+pFZvaugtebsU+bllPTB0nlXGIJk98Ie9ZtxuY3nCKneB+KjKiXrAvXUPCI9mWkYS/1rggpFmu3HbXBnWSUdf localuser@machine.local
Chọn public key và sao chép nó vào clipboard của bạn.
Thêm public key cho user từ xa mới
Để cho phép sử dụng SSH key để xác thực là user từ xa mới, bạn phải thêm public key vào một file đặc biệt trong folder chính của user .
Trên server , với quyền là user root
, hãy nhập lệnh sau để chuyển sang user mới (thay thế tên user của chính bạn):
- su - demo
Đến đây bạn sẽ ở trong folder chính của user mới của bạn.
Tạo một thư .ssh
mới có tên .ssh
và hạn chế quyền của nó bằng các lệnh sau:
- mkdir .ssh
- chmod 700 .ssh
Bây giờ mở một file trong .ssh gọi authorized_keys
với một editor . Ta sẽ sử dụng vi để chỉnh sửa file :
- vi .ssh/authorized_keys
Vào chế độ insert , bằng cách nhấn i
, sau đó nhập public key của bạn (khóa này phải có trong clipboard của bạn) bằng cách paste vào editor . Bây giờ nhấn ESC
để thoát khỏi chế độ insert .
Nhập :x
rồi ENTER
để lưu và thoát khỏi file .
Bây giờ, hãy hạn chế quyền của file ủy quyền_có_cách bằng lệnh này:
- chmod 600 .ssh/authorized_keys
Nhập lệnh này một lần để quay lại user root
:
- exit
Đến đây bạn có thể đăng nhập SSH với quyền là user mới của bạn , sử dụng private key để xác thực.
Để đọc thêm về cách xác thực khóa hoạt động, hãy đọc hướng dẫn này: Cách cấu hình xác thực dựa trên SSH key trên server Linux .
Bước 5 - Cấu hình SSH Daemon
Bây giờ ta đã có account mới, ta có thể bảo mật server của bạn một chút bằng cách sửa đổi cấu hình daemon SSH của nó (chương trình cho phép ta đăng nhập từ xa) để không cho phép truy cập SSH từ xa vào account gốc .
Bắt đầu bằng cách mở file cấu hình bằng editor của bạn dưới dạng root:
- vi /etc/ssh/sshd_config
Ở đây, ta có tùy chọn để vô hiệu hóa đăng nhập root thông qua SSH. Đây thường là một cài đặt an toàn hơn vì giờ đây ta có thể truy cập vào server của bạn thông qua account regular user của bạn và báo cáo quyền khi cần thiết.
Để tắt đăng nhập root từ xa, ta cần tìm dòng giống như sau:
#PermitRootLogin yes
Gợi ý: Để tìm kiếm dòng này, hãy nhập /PermitRoot
rồi nhấn ENTER
. Thao tác này sẽ đưa con trỏ đến ký tự “P” trên dòng đó.
Bỏ comment bằng cách xóa biểu tượng “#” (nhấn Shift-x
).
Bây giờ di chuyển con trỏ đến “yes” bằng cách nhấn c
.
Bây giờ thay thế “yes” bằng cách nhấn cw
, sau đó nhập “no” . Nhấn Escape
khi bạn chỉnh sửa xong. Nó sẽ giống như thế này:
PermitRootLogin no
Vô hiệu hóa đăng nhập root từ xa rất được khuyến khích trên mọi server !
Nhập :x
rồi ENTER
để lưu và thoát khỏi file .
Reload SSH
Bây giờ ta đã áp dụng các thay đổi của bạn , ta cần khởi động lại dịch vụ SSH để nó sử dụng cấu hình mới của ta .
Nhập cái này để khởi động lại SSH:
- systemctl reload sshd
Bây giờ, trước khi đăng xuất khỏi server , ta nên kiểm tra cấu hình mới của bạn . Ta không muốn ngắt kết nối cho đến khi ta có thể xác nhận các kết nối mới có thể được cài đặt thành công.
Mở một cửa sổ terminal mới . Trong cửa sổ mới, ta cần bắt đầu kết nối mới với server của bạn . Lần này, thay vì sử dụng account root , ta muốn sử dụng account mới mà ta đã tạo.
Đối với server mà ta đã cấu hình ở trên, hãy kết nối bằng lệnh này. Thay thế thông tin của bạn khi thích hợp:
- ssh demo@SERVER_IP_ADDRESS
Lưu ý: Nếu bạn đang sử dụng PuTTY để kết nối với server của bạn , hãy đảm bảo cập nhật số cổng của phiên để trùng với cấu hình hiện tại của server .
Bạn sẽ được yêu cầu nhập password của user mới mà bạn đã cấu hình . Sau đó, bạn sẽ đăng nhập với quyền là user mới của bạn .
Lưu ý , nếu bạn cần chạy một lệnh có quyền root, hãy nhập “sudo” trước nó như sau:
- sudo command_to_run
Nếu tất cả đều ổn, bạn có thể thoát phiên của bạn bằng lệnh :
- exit
Đi đâu từ đây?
Lúc này, bạn đã có một nền tảng vững chắc cho server của bạn . Bạn có thể cài đặt bất kỳ phần mềm nào bạn cần trên server của bạn ngay bây giờ.
Nếu bạn không chắc mình muốn làm gì với server của bạn , hãy xem hướng dẫn tiếp theo trong loạt bài này để biết Các bước được đề xuất bổ sung cho Server CentOS 7 mới . Nó bao gồm những thứ như kích hoạt fail2ban
để giảm hiệu quả của các cuộc tấn công brute force, cài đặt firewall cơ bản, NTP và các file swap . Nó cũng cung cấp các liên kết đến các hướng dẫn chỉ cho bạn cách cài đặt các ứng dụng web phổ biến.
Nếu bạn chỉ muốn khám phá, hãy xem phần còn lại của cộng đồng của ta để tìm thêm hướng dẫn. Một số ý tưởng phổ biến là cấu hình LAMP hoặc LEMP , điều này sẽ
cho phép bạn lưu trữ các trang web.
Các tin liên quan
Cách cài đặt Linux, Apache, MySQL, PHP (LAMP) trên CentOS 72014-07-21
Cách sử dụng NSD, một server DNS chỉ ủy quyền, trên Ubuntu 14.04
2014-07-03
Cách cấu hình bind server lưu trữ hoặc chuyển tiếp DNS trên Ubuntu 14.04
2014-07-01
cách cấu hình bind làm server DNS chỉ ủy quyền trên Ubuntu 14.04
2014-07-01
So sánh các loại server DNS: Cách chọn cấu hình DNS phù hợp
2014-07-01
5 Thiết lập server Chung cho Ứng dụng Web của Bạn
2014-05-30
Cách sử dụng npm để quản lý gói Node.js trên server Linux
2014-05-14
Cách sử dụng npm để xây dựng và xuất bản các gói Node.js trên server Linux
2014-05-14
Cách khắc phục sự cố trang web thường gặp trên server Linux
2014-05-09
Cách Fail2Ban hoạt động để bảo vệ các dịch vụ trên server Linux
2014-05-07