HƯỚNG DẪN Bảo mật máy chủ SSH

Thảo luận trong 'KIẾN THỨC VPS/SERVER' bắt đầu bởi quyet1990, 29/11/16.

  1. quyet1990

    quyet1990 New Member

    Tham gia ngày:
    22/10/16
    Bài viết:
    220
    Đã được thích:
    0
    SSH (tiếng Anh: Secure Shell), và đó là một giao thức được thiết kế để cho phép truyền thông tin an toàn giữa các host khác nhau sử dụng một kết nối được mã hóa. Máy chủ SSH cho phép người dùng đăng nhập vào máy chủ từ xa, chạy các lệnh và thiết lập các hoạt động dịch vụ mạng. Để thiết lập một kết nối SSH, bạn cần hai phần: SSH client và máy chủ SSH.

    Hôm nay, bạn sẽ tìm hiểu về 10 cách để bảo mật máy chủ SSH của bạn.
    10 cách để bảo mật máy chủ SSH

    Đầu tiên, bạn phải xác định vị trí tập tin cấu hình máy chủ SSH của bạn, hầu hết các cách bảo mật đều tập trung vào sửa đổi tập tin này. Trên hầu hết các bản phân phối Linux, nó có thể được tìm thấy tại: /etc/ssh/sshd_config
    1. Sử dụng một cổng khác 22

    Chỉnh sửa tập tin sshd_config của bạn, và thiết lập một cổng khác 22:
    Tìm dòng:
    Mã:
    Port 22
    Sửa thành:
    Mã:
    Port 227
    Điều này sẽ ngăn chặn các cuộc tấn công brute force chống lại cổng SSH mặc định.

    2. Sử dụng giao thức SSH 2
    Hầu như tất cả các bản phân phối Linux đều sử dụng SSH Protocol 2 như mặc định, nhưng cần đảm bảo điều này được thiết lập như:
    Mã:
     Protocol 2 
    SSH Protocol 1 là rất không an toàn, cho phép cuộc tấn công man-in-the-middle và nó có rất nhiều lỗ hổng.

    3. Vô hiệu hóa đăng nhập root
    Đăng nhập root trực tiếp là không an toàn theo mặc định, thậm chí nguy hiểm hơn nếu mật khẩu quá yếu. Cách tốt nhất để bảo vệ thông tin đăng nhập root trực tiếp là yêu cầu sử dụng tên user khác để đăng nhập qua SSH, và sau đó đăng nhập vào root nếu thực sự cần thiết.
    Thêm user khác cho kết nối SSH và thiết lập mật khẩu mới:
    Mã:
    useradd john
    passwd john
    
    Chỉnh sửa tập tin sshd_config và thiết lập:
    Mã:
    PermitRootLogin no
    AllowUsers john # nếu dòng này không tồn tại, chỉ cần thêm nó
    
    Điều này sẽ vô hiệu hóa đăng nhập trực tiếp root và cho phép sử dụng user "john" đăng nhập qua SSH, sau đó có thể thực hiện 1 lệnh đơn giản 'su -' để trở thành user root.

    4. Tránh lắng nghe trên tất cả các interface
    Theo mặc định, máy chủ SSH lắng nghe tất cả các interface. Thiết lập này cho phép SSH chỉ lắng nghe trên một giao diện được xác định trước:
    Mã:
    ListenAddress XX.XX.XX.XX
    
    Thay thế " XX.XX.XX.XX " với IP máy chủ thực sự của bạn.

    5. Một số tùy chọn bảo mật
    Áp dụng thay đổi ở tập tin sshd_config của bạn. StrictModes buộc SSH server để kiểm tra quyền của người dùng trong thư mục home của họ và các tập tin host trước khi chấp nhận đăng nhập.
    Mã:
     StrictModes yes 
    LoginGraceTime xác định bao lâu máy chủ SSH sẽ chờ đợi cho đến khi ngắt kết nối khi người dùng không đăng nhập thành công.
    Mã:
     LoginGraceTime 120 
    Nếu bạn không cần cổng chuyển tiếp, thiết lập này để "không":
    Mã:
     AllowTcpForwarding no 
    Bạn không cần bất kỳ công cụ X11 nếu bạn chỉ terminal only nerds:
    Mã:
     X11Forwarding no 
    In log cuối cùng của các kết nối được thiết lập:
    Mã:
     Printlastlog yes 
    Vô hiệu hóa đăng nhập vào tài khoản với mật khẩu rỗng:
    Mã:
     PermitEmptyPasswords no 
    Thiết lập biểu ngữ chào bạn bằng cách chỉnh sửa tập tin /etc/motd, thêm văn bản mà bạn cần, và nó sẽ được hiển thị trên thông tin đăng nhập shell tiếp theo của bạn (local và remote). Thí dụ:
    Mã:
    [user@localhost ~]$ ssh user@remotehost.com
    Last login: Sat Oct 31 09:11:53 2015 from XX.XX.XX.XX
    
    ALERT! You are entering a secured area! Your IP and login information
    have been recorded. System administration has been notified.
    
    This system is restricted to authorized access only. All activities on
    this system are recorded and logged. Unauthorized access will be fully
    investigated and reported to the appropriate law enforcement agencies.
    [user@remotehost ~]$
    
    6. Sử dụng khóa công khai thay vì mật khẩu
    Kiểm tra hướng dẫn này về làm thế nào để đăng nhập vào một máy chủ SSH sử dụng khóa công khai. Sau khi bạn đảm bảo rằng khóa công khai đang làm việc, chỉnh sửa tập tin sshd_config của bạn và vô hiệu hóa xác thực mật khẩu:
    Mã:
     PasswordAuthentication no 
    7. Giới hạn các kết nối sử dụng TCPWrappers.
    TCPWrappers là một trong những cách tốt nhất để bảo vệ máy chủ SSH của bạn bằng cách thiết lập những user có thể kết nối với máy chủ đó. Chỉ sử dụng cách này nếu bạn có một địa chỉ IP tĩnh với nhà cung cấp Internet tại địa phương. Nếu bạn sử dụng IP động và sử dụng Tcpwrappers, thì có lẽ nó sẽ khóa bạn ra khỏi máy chủ của bạn.

    Chỉnh sửa tập tin /etc/hosts.allow và thêm dòng này để cho phép các kết nối từ IP mạng nội bộ (thay thế " XX.XX.XX.XX " với IP thực sự của bạn):
    Mã:
     sshd : XX.XX.XX.XX 
    Sau đó, vào tập tin /etc/hosts.deny, từ chối tất cả các kết nối SSH từ các IP khác đến:
    Mã:
     sshd : ALL 
    8. Hạn chế các kết nối SSH sử dụng một Firewall
    Nếu bạn đang sử dụng một tường lửa iptables như CSF, bạn có thể thiết lập một giới hạn cho các kết nối SSH đến và bao nhiêu lần nó sẽ thất bại trước khi nó bị chặn:
    Sửa /etc/csf/csf.conf và thiết lập:
    Mã:
     LF_SSHD = "5" 
    Khởi động lại tường lửa để áp dụng thay đổi:
    Mã:
     csf -r 
    9. Kích hoạt port knocking
    Port knocking là một kỹ thuật bảo mật dựa trên các port knocking được xác định trước trên máy chủ SSH để cho phép các thiết lập kết nối SSH từ một máy chủ từ xa. Bạn có thể tham khảo bài viết này để thực hiện điều đó.

    10. Tích hợp Google Authenticator.
    Nó được sử dụng rộng rãi trong thông tin đăng nhập dựa trên web, và bạn cũng có thể tích hợp xác thực 2 bước vào thông tin đăng nhập SSH. Kiểm tra các hướng dẫn:
     
    #1 quyet1990, 29/11/16
    Sửa lần cuối: 30/11/16
Tags:

Chia sẻ trang này

Đang tải...