Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Kết nối Máy chủ Bastion với Máy chủ PostgreSQL qua Đường hầm SSH

PostgreSQL là một hệ quản trị cơ sở dữ liệu quan hệ nổi tiếng tự hào có một môi trường an toàn cho các nhà phát triển và người dùng. Nhưng khi công việc từ xa tiếp tục là một phần bình thường mới của mọi doanh nghiệp, các chuyên gia CNTT phải đối mặt với một loạt thách thức mới khi quản lý tính bảo mật và khả năng truy cập của máy chủ của họ.

Sử dụng máy chủ pháo đài để truy cập cơ sở dữ liệu PostgreSQL bổ sung thêm một lớp bảo mật. Nhưng vì các máy chủ pháo đài hoạt động như tường lửa, nên cần phải sử dụng đường hầm Secure Shell (SSH) để giảm mức độ hiển thị mạng riêng.

Nhiều công cụ quản lý cơ sở dữ liệu PostgreSQL có thể tự động hóa quá trình kết nối này, nhưng việc tương tác với shell yêu cầu tạo đường hầm SSH theo cách thủ công. Việc hiểu rõ quy trình và các biện pháp phòng ngừa chắc chắn có thể giúp công ty của bạn duy trì cơ sở dữ liệu an toàn.

Lợi ích của việc tạo và sử dụng đường hầm bảo mật SSH

Đường hầm SSH đã được sử dụng trong truyền thông mạng trong hơn ba mươi năm và nó cũng phù hợp với nhu cầu tính toán ngày nay.

Các nhà phát triển luôn sử dụng các giao thức SSH Secure Shell để quản lý quyền truy cập cơ sở dữ liệu trên tất cả các loại máy chủ, bao gồm cả PostgreSQL. Truy cập từ xa an toàn là rất quan trọng hiện nay, đặc biệt khi 50% thiết bị tại nơi làm việc là di động (thiết bị di động là một trong những thiết bị dễ bị tấn công mạng nhất). Điều này càng làm cho các tổ chức có thể quản lý từ xa các thiết bị và quyền truy cập của người dùng vào mạng của họ.

Các công ty xử lý một lượng lớn dữ liệu cần phải cung cấp cho nhân viên quyền truy cập nhanh vào các cơ sở dữ liệu chính và có cách tiếp cận chủ động để bảo mật cơ sở dữ liệu. Sử dụng các giao thức SSH là số một trong việc cung cấp quyền truy cập an toàn cho người dùng từ các máy chủ từ xa. Nó cũng giúp việc xác thực các chương trình tự động trở nên đơn giản hơn. Do đó, các doanh nghiệp có thể điều hành các công việc hàng ngày của mình một cách hiệu quả hơn.

Khi các tiêu chuẩn bảo mật cuối cùng cũng bắt kịp với các thiết bị di động và máy chủ từ xa, chúng ta có thể mong đợi các giao thức mã hóa và xác thực cũng được cải thiện. Tính linh hoạt và khả năng tương tác là tương lai của bảo mật IoT. Tuy nhiên, các giao thức SSH sẽ tiếp tục là một phần tiêu chuẩn trong tương lai gần.

SSH hoạt động như thế nào?

Các giao thức SSH cho phép bạn điều khiển từ xa quyền truy cập vào các máy chủ của mình trên internet trong một môi trường an toàn. Không chỉ kết nối ban đầu được bảo mật cao mà toàn bộ phiên giao tiếp giữa hai bên cũng vậy. Người dùng có thể đăng nhập vào máy chủ từ xa bằng đường hầm SSH Secure Shell đang mở hoặc các ứng dụng khách SSH Secure Shell khác.

Máy chủ tìm kiếm kết nối cổng mở. Khi nó tìm thấy một, máy chủ phải xác thực kết nối. Nó xác định xem một môi trường an toàn đã được thiết lập để giao tiếp và truyền tệp hay chưa. Nếu kết nối được khởi tạo bởi máy khách, máy khách phải xác thực máy chủ ngoài việc cung cấp thông tin đăng nhập của nó.

Khi cả hai bên được xác thực và kết nối được thiết lập, giao thức mã hóa SSH đảm bảo tính riêng tư liên tục của tất cả các quá trình truyền dữ liệu giữa máy chủ và máy khách.

Có ba loại đường hầm SSH mã hóa được sử dụng để bảo mật các kết nối:

  • mã hóa đối xứng
  • mã hóa không đối xứng
  • hàm băm.

Mã hóa đối xứng được sử dụng trong suốt thời gian kết nối để giữ an toàn cho liên lạc. Cả máy khách và máy chủ đều chia sẻ cùng một khóa bí mật để mã hóa và giải mã dữ liệu. Thuật toán này an toàn vì một khóa thực tế không bao giờ thực sự được trao đổi. Thay vào đó, cả hai bên chia sẻ thông tin công khai mà từ đó họ có thể lấy khóa một cách độc lập.

Mã hóa không đối xứng ngược lại, yêu cầu cả khóa công khai và khóa riêng tư. Nó được sử dụng khi bắt đầu quá trình đào hầm để xác thực các máy chủ. Máy chủ sẽ sử dụng khóa công khai để mã hóa dữ liệu đó và máy khách phải xác thực bằng khóa riêng tư. Vì một khóa riêng tư cụ thể là thứ duy nhất có thể giải mã các tin nhắn được mã hóa bằng khóa công khai, điều này giúp xác thực các bên đang tìm kiếm kết nối.

Băm mật mã tạo một chữ ký duy nhất cho tập dữ liệu. Điều này rất hữu ích trong kết nối SSH vì nó cho phép máy chủ biết liệu MAC có được chấp nhận hay không. Hàm băm phù hợp chỉ có thể được tạo bởi phần dữ liệu giống với phần dữ liệu đã tạo ra bản gốc. Do đó, hàm băm có thể được sử dụng để kiểm tra đầu vào để đảm bảo nó là đầu vào chính xác.

Xác thực SSH

Sau khi thiết lập mã hóa, quá trình xác thực sẽ diễn ra. Hình thức xác thực đơn giản nhất là sử dụng mật khẩu. Mặc dù đây là một cách dễ dàng cho khách hàng, nó cũng rất dễ dàng cho các tập lệnh tự động độc hại. Ngay cả mật khẩu được mã hóa cũng có độ phức tạp hạn chế. Nó làm cho nó không an toàn. Sử dụng khóa không đối xứng là một biện pháp phổ biến thay vì sử dụng mật khẩu.

Sau khi khóa công khai được thiết lập, khách hàng phải cung cấp khóa riêng đi kèm với khóa công khai. Nếu không có sự kết hợp này, xác thực không thành công. Điều này giúp đảm bảo dữ liệu đã mã hóa không thể bị kẻ gian giải mã.

Toàn bộ quá trình xác thực được thương lượng trong quá trình thiết lập và chỉ các bên có khóa bổ sung mới có thể giao tiếp. Quá trình này cũng làm cho quá trình đăng nhập nhanh chóng. Vì vậy, nó là tối ưu cho các quy trình tự động.

Quá trình xác thực sẽ khác nhau dựa trên các yếu tố sau:

  • loại cơ sở dữ liệu đang được bảo vệ
  • mối quan hệ và vị trí của máy chủ
  • quyền của người dùng trong máy chủ.

Điều tuyệt vời khi sử dụng giao thức SSH là toàn bộ quy trình được mã hóa và bảo mật cao.

Thiết lập đường hầm SSH

Nếu bạn muốn tương tác với một cơ sở dữ liệu bằng cách sử dụng shell, bạn phải biết cách tạo một đường hầm SSH. Mặc dù việc sử dụng ứng dụng quản lý SSH tự động có thể thuận tiện, nhưng nhiều quản trị viên cơ sở dữ liệu thích thiết lập các công cụ quản lý cơ sở dữ liệu từ đầu vì tương tác với shell là cách tốt nhất để gỡ lỗi, kiểm tra và kiểm soát tối đa.

Sử dụng đường hầm SSH là một cách rất an toàn để mở phiên mà không sợ mất dữ liệu hoặc bị tấn công (miễn là bạn đóng phiên và giám sát máy chủ của mình).

Đây là cách tạo đường hầm SSH:

Xác minh Máy chủ Bastion

Để tạo đường hầm SSH Secure Shell, bạn cần biết tên máy chủ của máy chủ pháo đài và cơ sở dữ liệu PostgreSQL, cũng như tên người dùng của bạn trên máy chủ pháo đài. Chạy lệnh:

$ ssh <username>@<bastion_server>

Sau đó, nhập mật khẩu của bạn khi cửa sổ thích hợp bật lên.

Mở đường hầm SSH

Mở đường hầm bằng lệnh này:

$ ssh -L localhost:port_number:<sql_server>:port_number<username>@<bastion_server>

Để cửa sổ mở để duy trì kết nối. Số hai cổng tương ứng dành cho máy tính của bạn và máy chủ từ xa.

Xác minh kết nối của bạn

Để đảm bảo rằng đường hầm của bạn đang mở và được kết nối với máy chủ PostgreSQL, hãy sử dụng lệnh sau:

$ psql --port=X --host=localhost -c "SELECT * FROM pg_catalog.pg_tables"

Xem nếu các bảng được trả lại. Nếu đúng như vậy thì kết nối của bạn đã thành công và an toàn.

Một vài bước tùy chọn có thể tăng hiệu quả truy cập của bạn từ máy chủ pháo đài đến máy chủ SQL. Hãy nhớ rằng mặc dù tự động truy cập mọi lúc không phải là một chiến lược an toàn. Điều khôn ngoan là luôn đăng nhập bất cứ khi nào bạn muốn mở đường hầm SSH để giữ các phiên hoàn toàn riêng tư.

Tạo hồ sơ người dùng

Để tránh phải nhập mật khẩu mỗi lần, bạn có thể tạo một hồ sơ trên máy chủ pháo đài. Để thực hiện việc này, bạn phải thêm khóa SSH của mình vào máy chủ bằng cách sử dụng lệnh sau:

$ ssh-copy-id <username>@<bastion_server>

Sau đó, khóa của bạn sẽ được sử dụng tự động bất cứ lúc nào bạn muốn đăng nhập. Tuy nhiên, nó có cả mặt tích cực và tiêu cực. Điều này thuận tiện hơn, nhưng bạn phải đảm bảo có các giao thức bảo mật khác để bảo vệ máy khỏi phần mềm độc hại hoặc hành vi trộm cắp. Nếu người khác có quyền truy cập vào máy của bạn, họ có thể tự động đăng nhập vào máy chủ của bạn vì khóa của bạn đã được lưu.

Cập nhật tệp cấu hình SSH của bạn

Có thể rất phức tạp để nhớ chính xác tên và số cổng của các máy chủ bạn muốn kết nối. Đó là lý do tại sao nó là một phần của giao thức đường hầm SSH Secure Shell.

Bạn đang theo dõi các tên máy chủ và xác thực chính mình bằng tên người dùng của bạn. Đó là một phần làm cho kết nối SSH được bảo mật ngay từ đầu. Nhưng có một cách để định cấu hình quy trình của bạn để giúp truy cập nhanh hơn và dễ dàng hơn mà không cần tự động hóa hoàn toàn quy trình. Bạn có thể thêm một mục vào tệp cấu hình SSH của mình:

Sản xuất pháo đài chủ nhà

  • HostName
  • Người dùng
  • LocalForward localhost:port_number :port_number

Sau đó, chạy lệnh:

$ ssh bastion-production 

Giờ đây, bạn có thể kết nối chỉ trong một bước.

Mẹo về quyền riêng tư của SSH

Bắt buộc phải bảo mật các cơ sở dữ liệu. Dữ liệu là đơn vị tiền tệ có giá trị nhất trên thế giới và với sự gia tăng của ransomware và các tội phạm mạng khác, việc không bảo vệ được dữ liệu của khách hàng là một điều không thể chấp nhận được.

Mục đích đầu tiên của việc sử dụng máy chủ pháo đài là để bảo vệ cơ sở dữ liệu của bạn. Tuy nhiên, một vài sơ suất sẽ khiến máy chủ của bạn rộng mở cho bất kỳ ai vào.

Dưới đây là một số mẹo để giữ an toàn khi sử dụng đường hầm SSH để kết nối với máy chủ PostgreSQL:

Xác thực đúng nhân viên từ xa

Nếu tổ chức của bạn sử dụng SSH để kết nối từ xa, thì mọi người phải biết những điều cơ bản về vệ sinh kỹ thuật số. Sử dụng xác thực dựa trên khóa được bảo vệ bằng mật khẩu mạnh. Xác minh hai bước cho mỗi lần đăng nhập cũng là một nơi tốt để bắt đầu, cũng như đảm bảo rằng các khóa SSH công khai là xác thực.

Chỉ giới hạn đăng nhập SSH cho những người cần chúng và đặt các đặc quyền phản ánh nhiệm vụ của người dùng.

Tắt tính năng chuyển tiếp cổng

Chỉ có khoảng một nửa số nhà phát triển thực thi các quy trình ngăn chặn chuyển tiếp cổng. Chuyển tiếp cổng có thể giúp bạn tiếp cận các giao tiếp được mã hóa với người dùng và máy chủ chưa được phê duyệt. Do đó, tin tặc có thể xâm nhập ngay vào cơ sở dữ liệu của bạn. Lọc tất cả các kết nối của bạn thông qua máy chủ pháo đài và cân nhắc sử dụng cách gõ cổng trước khi cho phép kết nối.

Đảm bảo rằng bạn đang chạy phần mềm mới nhất và kết nối SSH của bạn đáp ứng các tiêu chuẩn tuân thủ gần đây nhất.

Kiểm tra thường xuyên

Sử dụng một công cụ giám sát liên tục ngoài việc đánh giá thủ công thường xuyên. Chỉ giới hạn kết nối của bạn ở những kết nối cần thiết và đảm bảo kiểm tra mọi thay đổi đối với cài đặt cấu hình của bạn chưa được phê duyệt trước đó.

Bằng cách theo dõi ai đang đăng nhập và loại hoạt động mà họ tham gia, bạn có thể hạn chế bề mặt tấn công và giúp dễ dàng xác định lỗ hổng bảo mật ngay từ đầu.

Kết luận

Sử dụng đường hầm SSH được mã hóa là một cách an toàn để truy cập cơ sở dữ liệu PostgreSQL từ các máy chủ từ xa. Quá trình duy trì mã hóa trong thời lượng của các phiên được kết nối. Mặc dù các chương trình SSH tự động rất hữu ích cho các tác vụ định kỳ và các quy trình hệ thống quản trị khác, nhưng việc mở đường hầm SSH theo cách thủ công có thể có lợi. Trong trường hợp đó, bạn có thể dễ dàng xác định tất cả lưu lượng truy cập và giao tiếp thay vì sử dụng phiên bản tự động hoặc ứng dụng khách.

Nếu bạn sử dụng PostgreSQL hoặc bất kỳ hệ quản trị cơ sở dữ liệu SQL nào, bạn cần biết cách sử dụng đường hầm SSH. Nó có thể rất quan trọng đối với việc giám sát và quản lý các quy trình hệ thống và truyền dữ liệu.

Các giao thức SSH tạo ra một kết nối an toàn cao và việc tuân theo các biện pháp phòng ngừa bổ sung sẽ giúp duy trì tính toàn vẹn của các kết nối máy chủ của bạn.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Có thể truy cập cơ sở dữ liệu .mdf mà không có SQL Server không?

  2. Làm cách nào chúng ta có thể xem phần thân của thủ tục được lưu trữ được mã hóa trong SSMS?

  3. Cách trả lại dấu thời gian Unix trong SQL Server (T-SQL)

  4. Các mục ORDER BY phải xuất hiện trong danh sách chọn nếu câu lệnh chứa toán tử UNION, INTERSECT hoặc EXCEPT (SQL Server)

  5. SQL Server UNION - ORDER BY Behavior mặc định là gì