−25%

Windows-এর বার্ষিক পেমেন্টে, ৩১ অক্টোবর পর্যন্ত। প্ল্যান দেখুন

EQVPS

VPS-এ কীভাবে PostgreSQL ইনস্টল করে নিরাপদে যুক্ত হবেন

Ubuntu-তে PostgreSQL 16 ইনস্টল করুন, ডেটাবেস আর ব্যবহারকারী তৈরি করুন, আর পোর্ট 5432 ইন্টারনেটে না খুলেই দূর থেকে যুক্ত হন: SSH টানেল বা অনুমতি তালিকা দিয়ে।

PostgreSQL একটি কমান্ডে ইনস্টল হয়। মানুষ ভুল করেন রিমোট প্রবেশে: পোর্ট 5432 সারা বিশ্বের জন্য খুলে দেন, পাসওয়ার্ড বসান, তারপর অবাক হন লগ কেন লগইনের চেষ্টায় ভরা। এই গাইড Ubuntu 24.04-এ Postgres ইনস্টল করে, একটি ডেটাবেস তৈরি করে এবং বাইরে থেকে যুক্ত হওয়ার দুটি নিরাপদ উপায় দেখায়।

১. ইনস্টল

apt update && apt install -y postgresql
systemctl status postgresql --no-pager

Ubuntu 24.04-এ এটি PostgreSQL 16। ডিফল্টভাবে এটি শুধু localhost-এ শোনে; কোনো কারণ না থাকলে এভাবেই রাখুন।

২. একজন ব্যবহারকারী আর একটি ডেটাবেস তৈরি করুন

sudo -u postgres psql <<'SQL'
CREATE USER app WITH PASSWORD 'use-a-long-random-password';
CREATE DATABASE appdb OWNER app;
SQL

একই সার্ভারের অ্যাপগুলো postgresql://app:PASSWORD@localhost:5432/appdb দিয়ে যুক্ত হয়।

৩. ল্যাপটপ থেকে যুক্ত হন: SSH টানেল (প্রস্তাবিত)

কিছু খুলতে হবে না, সার্ভারে কিছু কনফিগার করতে হবে না। টানেলটি SSH-এর মাধ্যমে একটি লোকাল পোর্ট ফরওয়ার্ড করে:

ssh -N -L 5433:localhost:5432 root@203.0.113.10

NAT প্ল্যানে প্যানেল থেকে আপনার ব্যক্তিগত SSH পোর্ট যোগ করুন:

ssh -N -p 20123 -L 5433:localhost:5432 root@your-nat-host

টানেল চালু থাকা অবস্থায় আপনার ডেটাবেস ক্লায়েন্টকে localhost:5433-এর দিকে নির্দেশ করুন। SSH সবকিছু এনক্রিপ্ট করে আর পোর্ট 5432 ইন্টারনেটের জন্য বন্ধ থাকে। DBeaver আর pgAdmin-এর মতো গ্রাফিক্যাল টুলে একটি “SSH টানেল” ট্যাব থাকে যা একই কাজ করে।

৪. অন্য সার্ভারের জন্য সরাসরি প্রবেশ (অনুমতি তালিকা)

অন্য কোথাও থাকা কোনো অ্যাপ সার্ভারকে সরাসরি যুক্ত হতে হলে শুধু তার IP-কে অনুমতি দিন। এর জন্য ডেটাবেস সার্ভারকে ডেডিকেটেড IP-সহ প্ল্যানে থাকতে হবে, কারণ NAT প্ল্যান SSH ছাড়া কোনো আসা সংযোগ গ্রহণ করে না।

/etc/postgresql/16/main/postgresql.conf-এ:

listen_addresses = '*'

/etc/postgresql/16/main/pg_hba.conf-এর শেষে:

hostssl  appdb  app  198.51.100.20/32  scram-sha-256

শুধু ওই একটি ঠিকানার জন্য ফায়ারওয়াল খুলুন এবং রিস্টার্ট করুন:

ufw allow from 198.51.100.20 to any port 5432 proto tcp
systemctl restart postgresql

hostssl এনক্রিপ্টেড সংযোগ বাধ্যতামূলক করে; Ubuntu প্যাকেজে একটি self-signed সার্টিফিকেট থাকে, তাই ক্লায়েন্টদের sslmode=require দিয়ে যুক্ত হওয়া উচিত।

৫. যুক্তিসঙ্গত প্রাথমিক সেটিংস

2 GB RAM-এর সার্ভারের জন্য, postgresql.conf-এ:

shared_buffers = 512MB
effective_cache_size = 1536MB
work_mem = 8MB

পরিবর্তনের পর রিস্টার্ট করুন। বেশিরভাগ ছোট অ্যাপের জন্য এটুকুই যথেষ্ট; আসল কোয়েরি দেখার পর সূক্ষ্মভাবে টিউন করুন।

৬. ব্যাকআপ

প্রতি রাতে একটি ডাম্প, এক সপ্তাহ রাখা হয়:

mkdir -p /var/backups/pg && chown postgres /var/backups/pg
cat > /etc/cron.d/pg-backup <<'EOF'
30 3 * * * postgres pg_dump -Fc appdb > /var/backups/pg/appdb-$(date +\%u).dump
EOF

-Fc একটি সংকুচিত ডাম্প তৈরি করে, যা pg_restore দিয়ে রিস্টোর করা হয়। ডাম্পগুলো সার্ভারের বাইরেও কপি করুন; Managed Backups পুরো মেশিনের দৈনিক রিস্টোর পয়েন্ট যোগ করে।

সম্পর্কিত

FAQ

পোর্ট 5432 কি ইন্টারনেটে খোলা উচিত?

না খোলাই ভালো। খোলা ডেটাবেস পোর্ট নিরন্তর স্ক্যান আর ব্রুট-ফোর্স আক্রমণের শিকার হয়। SSH টানেল দিয়ে যুক্ত হন, অথবা কোনো অ্যাপ সার্ভারকে সরাসরি যুক্ত হতে হলে pg_hba.conf আর ফায়ারওয়াল দুই জায়গাতেই শুধু তার IP-কে অনুমতি দিন।

NAT প্ল্যানে কি PostgreSQL ব্যবহার করা যায়?

যায়। একই সার্ভারের অ্যাপগুলো লোকালি যুক্ত হয়, আর আপনি আপনার ব্যক্তিগত SSH পোর্টে SSH টানেলের মাধ্যমে ল্যাপটপ থেকে ডেটাবেসে পৌঁছান। NAT প্ল্যান যা পারে না তা হলো অন্য সার্ভার থেকে 5432-এ আসা সরাসরি সংযোগ গ্রহণ করা।

PostgreSQL-এর কত RAM লাগে?

এটি কয়েকশো মেগাবাইটেই চলে এবং যা দেবেন সবই ক্যাশ হিসেবে ব্যবহার করে। শুরুর একটি প্রচলিত বিন্দু হলো shared_buffers-কে RAM-এর প্রায় 25% রাখা। ছোট অ্যাপের ডেটাবেসের জন্য সার্ভারে 2 GB RAM যথেষ্টের চেয়ে বেশি।

ডেটাবেসের ব্যাকআপ কীভাবে নেব?

কাস্টম ফরম্যাটে ('pg_dump -Fc') pg_dump ব্যবহার করুন এবং cron থেকে চালান। সার্ভারের বাইরেও কপি রাখুন। Managed Backups পুরো সার্ভারের দৈনিক রিস্টোর পয়েন্ট যোগ করে।

আমি PostgreSQL-এর কোন সংস্করণ পাব?

Ubuntu 24.04-এ আসে PostgreSQL 16, আর Debian 12-এ 15। নতুন বড় সংস্করণের জন্য অফিশিয়াল PostgreSQL apt রিপোজিটরি (apt.postgresql.org) যোগ করুন।

মন্তব্য

এখনো কোনো মন্তব্য নেই। প্রথম হোন।

একটি মন্তব্য দিন

মন্তব্য প্রকাশের আগে মডারেট করা হয়।