Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Menghubungkan Server Bastion ke Server PostgreSQL melalui SSH Tunnel

PostgreSQL adalah sistem manajemen basis data relasional terkenal yang menawarkan lingkungan yang aman bagi pengembang dan pengguna. Namun karena pekerjaan jarak jauh terus menjadi bagian dari normal baru setiap bisnis, profesional TI menghadapi serangkaian tantangan baru dalam mengelola keamanan dan aksesibilitas server mereka.

Menggunakan server bastion untuk mengakses database PostgreSQL menambahkan lapisan keamanan ekstra. Namun karena bastion server harus bertindak sebagai firewall, maka perlu menggunakan tunnel Secure Shell (SSH) untuk menurunkan tingkat eksposur jaringan pribadi.

Banyak alat manajemen database PostgreSQL dapat mengotomatiskan proses koneksi ini, tetapi berinteraksi dengan shell memerlukan pembuatan terowongan SSH secara manual. Memahami proses dan tindakan pencegahan pasti dapat membantu perusahaan Anda memelihara database yang aman.

Manfaat Membuat dan Menggunakan SSH Secure Shell Tunnel

Penerowongan SSH telah digunakan dalam komunikasi jaringan selama lebih dari tiga puluh tahun, dan sama relevannya dengan kebutuhan komputasi saat ini.

Pengembang secara konsisten beralih ke protokol SSH Secure Shell untuk mengelola akses basis data di semua jenis server, termasuk PostgreSQL. Akses jarak jauh yang aman sangat penting saat ini, terutama ketika 50% perangkat di tempat kerja adalah seluler (perangkat seluler termasuk yang paling rentan terhadap serangan siber). Hal ini semakin penting bahwa organisasi dapat mengelola perangkat dan akses pengguna dari jarak jauh ke jaringan mereka.

Perusahaan yang menangani data dalam jumlah besar perlu memberikan akses cepat kepada karyawan ke database utama dan mengambil pendekatan proaktif untuk keamanan database. Menggunakan protokol SSH adalah yang nomor satu dalam memberikan akses yang aman kepada pengguna dari server jarak jauh. Ini juga membuatnya lebih mudah untuk mengautentikasi program otomatis. Oleh karena itu, bisnis dapat menjalankan tugas sehari-hari mereka dengan lebih efisien.

Karena standar keamanan akhirnya mengejar perangkat seluler dan server jarak jauh, kita dapat berharap untuk melihat protokol enkripsi dan otentikasi juga meningkat. Fleksibilitas dan interoperabilitas adalah masa depan keamanan IoT. Namun, protokol SSH akan terus menjadi bagian standar di masa mendatang.

Bagaimana Cara Kerja SSH?

Protokol SSH memungkinkan Anda untuk mengontrol akses ke server Anda dari jarak jauh di internet dalam lingkungan yang aman. Tidak hanya koneksi awal yang sangat aman, tetapi juga seluruh sesi komunikasi antara kedua pihak. Pengguna dapat masuk ke server jarak jauh menggunakan terowongan SSH Secure Shell terbuka atau klien SSH Secure Shell lainnya.

Server mencari koneksi port terbuka. Setelah menemukannya, server harus mengotentikasi koneksi. Ini menentukan apakah lingkungan yang aman telah ditetapkan untuk komunikasi dan transfer file. Jika koneksi dimulai oleh klien, klien harus mengotentikasi server selain memberikan kredensialnya.

Ketika kedua pihak diautentikasi dan koneksi dibuat, protokol enkripsi SSH memastikan privasi yang berkelanjutan dari semua transmisi data antara server dan klien.

Ada tiga jenis enkripsi yang digunakan terowongan SSH untuk mengamankan koneksi:

  • enkripsi simetris
  • enkripsi asimetris
  • hash.

Enkripsi simetris digunakan selama durasi koneksi untuk menjaga komunikasi tetap aman. Baik klien dan server berbagi kunci rahasia yang sama untuk mengenkripsi dan mendekripsi data. Algoritma ini aman karena kunci yang sebenarnya tidak pernah benar-benar ditukar. Sebaliknya, kedua belah pihak berbagi informasi publik yang darinya mereka dapat memperoleh kuncinya secara independen.

Enkripsi asimetris , sebaliknya, membutuhkan kunci publik dan kunci pribadi. Ini digunakan pada awal proses tunneling untuk mengotentikasi server. Server akan menggunakan kunci publik untuk mengenkripsi data itu, dan klien harus mengautentikasinya dengan kunci pribadi. Karena kunci pribadi tertentu adalah satu-satunya hal yang dapat mendekripsi pesan yang dienkripsi dengan kunci publik, ini membantu mengautentikasi pihak yang mencari koneksi.

Hashing kriptografis membuat tanda tangan unik untuk kumpulan data. Ini berguna dalam koneksi SSH karena memungkinkan server mengetahui apakah MAC dapat diterima. Hash yang cocok hanya dapat dibuat oleh potongan data yang identik dengan yang membuat aslinya. Dengan demikian, hashing dapat digunakan untuk memeriksa input untuk memastikan bahwa itu adalah input yang benar.

Otentikasi SSH

Setelah membuat enkripsi, proses otentikasi berlangsung. Bentuk otentikasi yang paling sederhana adalah menggunakan kata sandi. Meskipun ini adalah cara yang mudah bagi klien, ini juga sangat mudah untuk skrip otomatis yang berbahaya. Bahkan kata sandi terenkripsi memiliki kompleksitas yang terbatas. Itu membuatnya tidak aman. Menggunakan kunci asimetris adalah tindakan umum daripada menggunakan sandi.

Setelah kunci publik dibuat, klien harus memberikan kunci pribadi yang menyertai kunci publik. Tanpa kombinasi ini, otentikasi gagal. Ini membantu memastikan data terenkripsi tidak dapat didekripsi oleh penyusup.

Seluruh proses otentikasi dinegosiasikan selama penyiapan, dan hanya pihak dengan kunci pelengkap yang dapat berkomunikasi. Proses ini juga membuat proses masuk menjadi cepat. Jadi, ini optimal untuk prosedur otomatis.

Proses otentikasi akan bervariasi berdasarkan faktor-faktor berikut:

  • jenis database yang dilindungi
  • hubungan dan lokasi server
  • izin pengguna di dalam server.

Hal terbaik tentang penggunaan protokol SSH adalah seluruh proses dienkripsi dan sangat aman.

Siapkan Terowongan SSH

Jika Anda ingin berinteraksi dengan database menggunakan shell, Anda harus tahu cara membuat terowongan SSH. Meskipun menggunakan aplikasi manajemen SSH otomatis bisa menjadi nyaman, banyak admin database lebih memilih untuk menyiapkan alat manajemen database dari awal karena berinteraksi dengan shell adalah cara terbaik untuk men-debug, mengaudit, dan memiliki kontrol maksimal.

Menggunakan terowongan SSH adalah cara yang sangat aman untuk membuka sesi tanpa takut kehilangan data atau diretas (selama Anda menutup sesi dan memantau server).

Berikut adalah cara membuat terowongan SSH:

Verifikasi Server Bastion

Untuk membuat terowongan SSH Secure Shell, Anda perlu mengetahui nama host server bastion dan database PostgreSQL, serta nama pengguna Anda di server bastion. Jalankan perintah:

$ ssh <username>@<bastion_server>

Kemudian masukkan kata sandi Anda ketika jendela yang sesuai muncul.

Buka Terowongan SSH

Buka terowongan menggunakan perintah ini:

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

Biarkan jendela terbuka untuk mempertahankan koneksi. Nomor dua port masing-masing adalah untuk komputer Anda dan server jarak jauh.

Verifikasi Koneksi Anda

Untuk memastikan terowongan Anda terbuka dan terhubung ke server PostgreSQL, gunakan perintah berikut:

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

Lihat apakah tabel dikembalikan. Jika ya, berarti koneksi Anda berhasil dan aman.

Beberapa langkah opsional dapat meningkatkan efisiensi akses Anda dari bastion host ke SQL server. Perlu diingat bahwa mengotomatisasi akses sepanjang waktu bukanlah strategi yang aman. Adalah bijaksana untuk selalu masuk setiap kali Anda ingin membuka terowongan SSH untuk menjaga sesi tetap pribadi.

Buat Profil Pengguna

Untuk menghindari keharusan memasukkan kata sandi setiap saat, Anda dapat membuat profil di server bastion. Untuk melakukannya, Anda harus menambahkan kunci SSH Anda ke server dengan menggunakan perintah berikut:

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

Kemudian, kunci Anda akan digunakan secara otomatis kapan pun Anda ingin masuk. Namun, kunci tersebut memiliki aspek positif dan negatif. Ini lebih nyaman, tetapi Anda harus memastikan memiliki protokol keamanan lain untuk melindungi mesin dari malware atau pencurian. Jika orang lain mendapatkan akses ke mesin Anda, mereka mungkin dapat masuk secara otomatis ke server Anda karena kunci Anda disimpan.

Perbarui File Konfigurasi SSH Anda

Mungkin rumit untuk mengingat nama dan nomor port yang tepat dari server yang ingin Anda sambungkan. Itulah mengapa ini adalah bagian dari protokol tunnel SSH Secure Shell.

Anda melacak nama host dan mengotentikasi diri Anda dengan nama pengguna Anda. Ini adalah bagian dari apa yang membuat koneksi SSH aman. Tetapi ada cara untuk mengonfigurasi prosedur Anda untuk membuat akses lebih cepat dan lebih mudah tanpa mengotomatiskan proses sepenuhnya. Anda dapat menambahkan entri ke file konfigurasi SSH Anda:

Produksi bastion tuan rumah

  • NamaHost
  • Pengguna
  • LocalForward localhost:port_number:port_number

Kemudian, jalankan perintah:

$ ssh bastion-production 

Sekarang Anda dapat terhubung hanya dalam satu langkah.

Tips Privasi SSH

Sangat penting untuk menjaga keamanan database. Data adalah mata uang paling berharga di dunia, dan dengan munculnya ransomware dan kejahatan dunia maya lainnya, kegagalan melindungi data pelanggan adalah kesalahan yang tidak dapat diterima.

Inti dari penggunaan bastion server adalah untuk melindungi database Anda. Namun, beberapa kesalahan langkah akan membuat server Anda terbuka lebar bagi siapa saja untuk masuk.

Berikut adalah beberapa tips untuk tetap aman saat menggunakan terowongan SSH untuk terhubung ke server PostgreSQL:

Otentikasi Pekerja Jarak Jauh dengan Benar

Jika organisasi Anda menggunakan SSH untuk terhubung dari jarak jauh, maka semua orang harus mengetahui dasar-dasar kebersihan digital. Gunakan otentikasi berbasis kunci yang dilindungi oleh kata sandi yang kuat. Verifikasi dua langkah untuk setiap login juga merupakan langkah awal yang baik, serta memastikan bahwa kunci SSH publik autentik.

Batasi login SSH hanya untuk mereka yang membutuhkannya, dan tetapkan hak istimewa yang mencerminkan tugas pengguna.

Nonaktifkan Penerusan Port

Hanya sekitar setengah dari pengembang yang menerapkan prosedur pencegahan penerusan port. Penerusan port dapat membuat Anda terbuka untuk komunikasi terenkripsi dengan pengguna dan server yang tidak disetujui. Dengan demikian, peretas dapat masuk langsung ke database Anda. Filter semua koneksi Anda melalui server bastion dan pertimbangkan untuk menggunakan port knocking sebelum mengizinkan koneksi.

Pastikan Anda menjalankan perangkat lunak terbaru dan koneksi SSH Anda memenuhi standar kepatuhan terbaru.

Sering Audit

Gunakan alat pemantauan berkelanjutan selain audit manual reguler. Batasi koneksi Anda hanya untuk koneksi yang diperlukan, dan pastikan untuk memeriksa setiap perubahan pada pengaturan konfigurasi Anda yang tidak disetujui sebelumnya.

Dengan mengawasi siapa yang masuk dan jenis aktivitas apa yang mereka lakukan, Anda dapat membatasi permukaan serangan dan memudahkan untuk menentukan kerentanan sejak awal.

Kesimpulan

Menggunakan terowongan SSH terenkripsi adalah cara aman untuk mengakses database PostgreSQL dari server jarak jauh. Proses mempertahankan enkripsi untuk durasi sesi yang terhubung. Meskipun program SSH otomatis berguna untuk tugas berulang dan proses sistem administrasi lainnya, membuka terowongan SSH secara manual dapat bermanfaat. Dalam hal ini, Anda dapat dengan mudah mengidentifikasi semua lalu lintas dan komunikasi daripada menggunakan versi atau klien otomatis.

Jika Anda menggunakan PostgreSQL atau sistem manajemen basis data SQL apa pun, Anda perlu tahu cara memanfaatkan tunneling SSH. Ini bisa menjadi sangat penting untuk memantau dan mengelola proses sistem dan transfer data.

Protokol SSH menghasilkan koneksi yang sangat aman, dan mengikuti tindakan pencegahan ekstra akan membantu menjaga integritas koneksi server Anda.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. OLTP Dalam Memori:Apa yang baru di SQL Server 2016

  2. Bagaimana menjalankan prosedur tersimpan di sql server setiap jam?

  3. Cara Memformat Tanggal &Waktu di SQL Server

  4. 3 Cara Mendapatkan Skema Hasil yang Ditetapkan di SQL Server

  5. Bagaimana cara memasukkan karakter Arab ke dalam database SQL?