Ubuntu - Thiết lập máy chủ cơ bản với Ubuntu 18.04
Bài hướng dẫn này đóng vai trò là một cẩm nang phục vụ cài đặt các tính năng cơ bản trên máy chủ Ubuntu phiên bản 18.04. Sau khi cài đặt xong cần phải thiết lập các tùy chọn cơ bản để có thể sử dụng máy chủ dễ dàng hơn. Mặc dù ngày nay nó được sử dụng phổ biến để sử dụng các công cụ tự động hóa, nhưng đối với bài viết này chúng ta sẽ được hướng dẫn làm bằng thủ công.
Bài viết này đưa ra tình huống bạn sẽ truy cập máy chủ từ xa. Máy chủ này đã được cài đặt sẵn hệ điều hành Ubuntu Server 18.04. Máy chủ này cần phải là máy chủ có cài đặt SSH và bạn cần có quyền truy cập root.
Chúng ta sẽ sử dụng địa chỉ IP của máy chủ là địa chỉ IP của máy chủ từ xa. Chúng ta sử dụng tên tài khoản để thực hiện kết nối tới máy chủ để đăng nhập.
Từ máy tính sử dụng hệ điều hành Linux, chúng ta thực hiện kết nối đến máy chủ với ssh.
Cập nhật kho phần mềm bằng câu lệnh sau:
Cài đặt các phần mềm đã cập nhật.
Nếu như bạn không tự tin với một trình soạn thảo mặc định (ví dụ như Vim), bạn nên sử dụng nano. Nếu nano chưa được cài đặt, bạn có thể cài đặt dễ dàng bằng lệnh sau:
Đăng nhập dưới quyền root là điều mà chúng ta nên hạn chế. Thay vào đó, chúng ta sẽ tạo một người dùng mới với các đặc quyền sudo.
Bạn sẽ được yêu cầu đặt mật khẩu người dùng mới, sau đó một vài câu hỏi khác có thể để trống.
Bây giờ chúng ta cấp quyền sudo cho tài khoản này.
Nếu bạn đã có sẵn các khóa SSH, hãy bỏ qua phần này. Trên máy tính của bạn tạo cặp khóa SSH của bạn.
Bạn sẽ được hỏi một số câu hỏi. Chấp nhận vị trí thư mục mặc định cho khóa. Trả lời những câu hỏi khác nếu như bạn muốn.
Lưu ý: Nếu bạn để trống mật khẩu, thì hệ thống của bạn sẽ kém an toàn hơn. Sở hữu các khóa sẽ đủ để có được quyền truy cập. Thuận tiện thường là kẻ thù của bảo mật.
Trên máy tính của bạn sao chép khóa SSH công khai của bạn vào máy chủ từ xa.
Lưu ý: Hãy nhớ sử dụng mật khẩu cho người dùng mới.
Sau khi khóa được sao chép thành công, hãy đăng nhập vào máy chủ từ xa với tên user_name.
Chúng ta sẽ định cấu hình máy chủ SSH bằng cách chỉnh sửa tập tin sshd_config.
Kiểm tra và đảm bảo rằng xác thực khóa công khai được bật. Tìm dòng bắt đầu với từ PubkeyAuthentication. Hãy chắc chắn rằng nó được đặt ở trạng thái yes.
Chúng ta muốn vô hiệu hóa xác thực mật khẩu. Tìm dòng bắt đầu với từ PasswordAuthentication. Đặt giá trị thành no.
Chúng ta không muốn quyền root có thể đăng nhập từ xa. Tìm dòng bắt đầu với từ PermitRootLogin. Đặt giá trị thành no.
Tải lại máy chủ SSH. Điều này có thể khiến bạn mất kết nối SSH. Chúng ta khởi động lại dịch vụ ssh.
Fail2Ban là một công cụ ngăn chặn xâm nhập rất mạnh mẽ. Nó có thể xem logs và địa chỉ IP tạm thời dựa trên hoạt động đáng ngờ. Chúng ta muốn fail2ban xem nhật ký SSH của chúng ta. Nếu một địa chỉ IP thực hiện nhiều request tệ, chúng ta sẽ tạm thời cấm địa chỉ IP này.
Sao chép các tập tin cấu hình.
Chỉnh sửa tập tin jail.local và cho phép theo dõi SSH.
Tìm phần [sshd]. Thay đổi kích hoạt thành true.
Sau đó khởi động lại dịch vụ.
Tiến hành cài đặt Uncomplicated Firewall (UFW).
Cấu hình tường lửa của bạn sẽ thay đổi khi bạn thêm các chương trình máy chủ. Hướng dẫn này chỉ quan tâm đến máy chủ SSH.
Sau đó kích hoạt tường lửa.
Tên máy chủ mặc định có thể gây nhầm lẫn. Trong hướng dẫn này, chúng ta sẽ đặt tên cho máy chủ của mình là demo. Thay đổi tên máy chủ với lệnh như sau:
Thay đổi tên thành demo. Bây giờ chúng ta sẽ chỉnh sửa các tập tin máy chủ.
Nó sẽ trông giống như nội dung dưới đây:
Và thêm tên máy chủ của bạn như thế này.
Bây giờ chúng ta khởi động lại.
Cài đặt múi giờ thích hợp với nơi bạn ở. Đối với tôi đó là giờ Châu Á.
Sau đó, đảm bảo rằng máy chủ đang sử dụng Network Time Protocol (NTP).
Chúng ta đã vừa cài đặt xong các tính năng cơ bản trên hệ điều hành Ubuntu Server phiên bản 18.04.
Giới thiệu
Bài viết này đưa ra tình huống bạn sẽ truy cập máy chủ từ xa. Máy chủ này đã được cài đặt sẵn hệ điều hành Ubuntu Server 18.04. Máy chủ này cần phải là máy chủ có cài đặt SSH và bạn cần có quyền truy cập root.
Chúng ta sẽ sử dụng địa chỉ IP của máy chủ là địa chỉ IP của máy chủ từ xa. Chúng ta sử dụng tên tài khoản để thực hiện kết nối tới máy chủ để đăng nhập.
Đăng nhập từ xa
Từ máy tính sử dụng hệ điều hành Linux, chúng ta thực hiện kết nối đến máy chủ với ssh.
ssh root@remote_server_ip
Cập nhật máy chủ
Cập nhật kho phần mềm bằng câu lệnh sau:
sudo apt-get update
Cài đặt các phần mềm đã cập nhật.
apt-get upgrade
Nano
Nếu như bạn không tự tin với một trình soạn thảo mặc định (ví dụ như Vim), bạn nên sử dụng nano. Nếu nano chưa được cài đặt, bạn có thể cài đặt dễ dàng bằng lệnh sau:
apt-get install nano
Tạo một người dùng mới
Đăng nhập dưới quyền root là điều mà chúng ta nên hạn chế. Thay vào đó, chúng ta sẽ tạo một người dùng mới với các đặc quyền sudo.
adduser user_name
Bạn sẽ được yêu cầu đặt mật khẩu người dùng mới, sau đó một vài câu hỏi khác có thể để trống.
Bây giờ chúng ta cấp quyền sudo cho tài khoản này.
usermod -aG sudo user_name
Tạo khóa SSH
Nếu bạn đã có sẵn các khóa SSH, hãy bỏ qua phần này. Trên máy tính của bạn tạo cặp khóa SSH của bạn.
ssh-keygen
Bạn sẽ được hỏi một số câu hỏi. Chấp nhận vị trí thư mục mặc định cho khóa. Trả lời những câu hỏi khác nếu như bạn muốn.
Lưu ý: Nếu bạn để trống mật khẩu, thì hệ thống của bạn sẽ kém an toàn hơn. Sở hữu các khóa sẽ đủ để có được quyền truy cập. Thuận tiện thường là kẻ thù của bảo mật.
Sao chép khóa công khai
Trên máy tính của bạn sao chép khóa SSH công khai của bạn vào máy chủ từ xa.
ssh-copy-id user_name@remote_server_ip
Lưu ý: Hãy nhớ sử dụng mật khẩu cho người dùng mới.
Sau khi khóa được sao chép thành công, hãy đăng nhập vào máy chủ từ xa với tên user_name.
ssh user_name@remote_server_ip
Thiết lập SSH
Chúng ta sẽ định cấu hình máy chủ SSH bằng cách chỉnh sửa tập tin sshd_config.
sudo nano /etc/ssh/sshd_config
Kiểm tra và đảm bảo rằng xác thực khóa công khai được bật. Tìm dòng bắt đầu với từ PubkeyAuthentication. Hãy chắc chắn rằng nó được đặt ở trạng thái yes.
PubkeyAuthentication yes
Chúng ta muốn vô hiệu hóa xác thực mật khẩu. Tìm dòng bắt đầu với từ PasswordAuthentication. Đặt giá trị thành no.
PasswordAuthentication no
Chúng ta không muốn quyền root có thể đăng nhập từ xa. Tìm dòng bắt đầu với từ PermitRootLogin. Đặt giá trị thành no.
PermitRootLogin no
Tải lại máy chủ SSH. Điều này có thể khiến bạn mất kết nối SSH. Chúng ta khởi động lại dịch vụ ssh.
sudo service ssh restart
Fail2Ban
Fail2Ban là một công cụ ngăn chặn xâm nhập rất mạnh mẽ. Nó có thể xem logs và địa chỉ IP tạm thời dựa trên hoạt động đáng ngờ. Chúng ta muốn fail2ban xem nhật ký SSH của chúng ta. Nếu một địa chỉ IP thực hiện nhiều request tệ, chúng ta sẽ tạm thời cấm địa chỉ IP này.
sudo apt-get install fail2ban
Sao chép các tập tin cấu hình.
sudo cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.local
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Chỉnh sửa tập tin jail.local và cho phép theo dõi SSH.
sudo nano /etc/fail2ban/jail.local
Tìm phần [sshd]. Thay đổi kích hoạt thành true.
[sshd]
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
Sau đó khởi động lại dịch vụ.
sudo systemctl restart fal2ban
Tường lửa
Tiến hành cài đặt Uncomplicated Firewall (UFW).
sudo apt-get install ufw
Cấu hình tường lửa của bạn sẽ thay đổi khi bạn thêm các chương trình máy chủ. Hướng dẫn này chỉ quan tâm đến máy chủ SSH.
sudo ufw allow ssh
Sau đó kích hoạt tường lửa.
sudo ufw enable
Đặt tên máy chủ
Tên máy chủ mặc định có thể gây nhầm lẫn. Trong hướng dẫn này, chúng ta sẽ đặt tên cho máy chủ của mình là demo. Thay đổi tên máy chủ với lệnh như sau:
sudo nano /etc/hostname
Thay đổi tên thành demo. Bây giờ chúng ta sẽ chỉnh sửa các tập tin máy chủ.
sudo nano /etc/hosts
Nó sẽ trông giống như nội dung dưới đây:
127.0.0.1 localhost
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Và thêm tên máy chủ của bạn như thế này.
127.0.0.1 localhost
127.0.1.1 demo
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Bây giờ chúng ta khởi động lại.
sudo reboot
Thời gian
Cài đặt múi giờ thích hợp với nơi bạn ở. Đối với tôi đó là giờ Châu Á.
sudo timedatectl set-timezone Asia/Ho_Chi_Minh
Sau đó, đảm bảo rằng máy chủ đang sử dụng Network Time Protocol (NTP).
sudo timedatectl set-ntp on
Kết luận
Chúng ta đã vừa cài đặt xong các tính năng cơ bản trên hệ điều hành Ubuntu Server phiên bản 18.04.