Bagama't hindi nag-aalok ang PostgreSQL ng mga built-in na opsyon sa pag-encrypt, maaari mong i-set up ang pag-encrypt ng data sa pahinga gamit ang mga paraan ng pag-encrypt ng third-party. Nakatuon ang tutorial ngayon sa paggamit ng Transparent Data Encryption (TDE) na paraan upang paganahin ang filesystem-level encryption.
Paano I-setup ang Pag-encrypt ng Data sa Pahinga sa PostgreSQL
Kapag itinatakda ang data encryption sa pahinga sa PostgreSQL, ang layunin ay gawing hindi nababasa ang data sa filesystem sa pamamagitan ng pag-aatas ng decryption key. Sa ganoong paraan, maaalis ang hindi awtorisadong pag-access.
Kapag ang PostgreSQL ay tumatakbo sa iyong server, maaari mong i-setup ang filesystem-level encryption gamit ang mga tool ng third-party gaya ng Linux Unified Key Setup (LUKS). Maaari mong mahanap ang naaangkop na solusyon para sa iyong system. Dito, nakikipagtulungan kami sa Ubuntu at i-setup ang pag-encrypt ng data gamit ang mga sumusunod na hakbang.
Hakbang 1: I-install ang Filesystem Encryption Tool
Kapag pinili mo ang paraan ng pag-encrypt, dapat mong i-install ang mga kinakailangang tool. Pinipili namin ang paraan ng pag-encrypt sa antas ng filesystem at i-install ang LUKS. Upang i-install ang LUKS, i-install ang cryptsetup tulad ng sumusunod:
sudo apt-get install cryptsetup
Pindutin ang 'y' upang ipagpatuloy ang pag-install at tiyaking mai-install ang lahat gaya ng inaasahan.
Hakbang 2: Mag-set up ng Naka-encrypt na Container
Dahil nagse-set up kami ng filesystem-level encryption, dapat kaming lumikha ng naka-encrypt na direktoryo sa aming disk na naglalaman ng data ng PostgreSQL. Suriin ang mga available na device sa iyong operating system gamit ang sumusunod na command:
sudo fdisk -l
Susunod, piliin ang naaangkop na aparato at patakbuhin ang sumusunod na command. Dito, ginagamit namin ang /dev/sdb aparato. Ipo-prompt kang kumpirmahin ang aksyon sa pamamagitan ng pag-type ng 'OO' at pagkatapos ay maglagay ng passphrase.
Dapat mong i-encrypt ito gamit ang LUKS sa pamamagitan ng pagpapatakbo ng sumusunod na command:
Hakbang 3: I-format ang Container
Para sa ginawang lalagyan, dapat namin itong i-format. Ginagamit namin ang opsyong “mkfs.ext4” sa pamamagitan ng pagpapatakbo ng sumusunod na code:
sudo mkfs.ext4 / dev / mapper / postgres_encrypted
Hakbang 4: I-mount ang Container
Susunod, i-mount natin ang naka-encrypt na lalagyan. Magsimula sa pamamagitan ng paglikha ng isang direktoryo sa /mnt/ tulad ng sumusunod:
sudo mkdir / mnt / postgresKapag nagawa na ang direktoryo, magpatuloy at i-mount ang naka-encrypt na lalagyan gamit ang command na 'mount' at tukuyin ang path.
sudo bundok / dev / mapper / postgres_encrypted / mnt / postgres /Hakbang 5: Ilipat ang PostgreSQL Data
Sa ngayon, gumawa kami ng naka-encrypt na lalagyan upang iimbak ang aming data ng PostgreSQL, ngunit hindi pa namin naililipat ang data. Bago ilipat ang data, dapat nating ihinto ang serbisyo ng PostgreSQL.
sudo systemctl ihinto ang postgresqlUpang ilipat ang data ng PostgreSQL, patakbuhin ang sumusunod na command na 'kopya' at tiyaking kopyahin mo ito sa direktoryo na ginawa namin kanina:
sudo rsync -ng / ay / lib / postgresql / mnt / postgresSusunod, i-backup ang orihinal na data ng PostgreSQL sa pamamagitan ng paglipat nito sa isang backup na lokasyon.
sudo mv / ay / lib / postgresql / ay / lib / postgresql_backup
Pagkatapos ay kailangan mong lumikha ng simbolikong link para sa direktoryo para sa mabilis na pag-access.
Ayan yun. Nagawa naming kopyahin at ilipat ang PostgreSQL data sa aming filesystem-level na naka-encrypt na lalagyan upang matiyak na secure namin ang data sa pahinga.
Hakbang 6: I-edit ang PostgreSQL Config File
Ang data_directory sa config file ay sumasalamin sa mahalagang lokasyon ng data ng PostgreSQL. Gayunpaman, dapat namin itong i-edit upang tumugma sa lokasyon ng data ng PostgreSQL sa naka-encrypt na lalagyan na aming ginawa. Kaya, buksan ang PostgreSQL config file gamit ang isang text editor. Hanapin ang seksyon ng data_directory. Lumilitaw ito tulad ng ipinapakita sa sumusunod bago namin ito i-edit. Maaaring mag-iba ang landas depende sa bersyon ng PostgreSQL na naka-install sa iyong system.
Baguhin ang path upang idirekta sa naka-encrypt na lalagyan na ginawa namin sa hakbang 4. Sa aming kaso, ang bagong path ay ang sumusunod:
Hakbang 7: I-save, Lumabas, at I-restart
I-save at lumabas sa PostgreSQL configuration file. Susunod, simulan o i-restart ang PostgreSQL. Nagawa mong i-setup ang pag-encrypt ng data sa pahinga sa PostgreSQL.
Ayan yun! Maaari mong ipagpatuloy ang paggamit ng PostgreSQL nang ligtas at tamasahin ang bagong pag-encrypt sa antas ng filesystem.
Konklusyon
Ang pagse-set up ng data encryption sa natitirang bahagi sa PostgreSQL ay kinabibilangan ng pagtukoy kung anong paraan ng pag-encrypt ang gagamitin at pagkatapos ay i-set up ito. Pinili namin ang TDE encryption gamit ang LUKS para mag-setup ng filesystem-level encryption. Bukod dito, idinetalye namin ang bawat hakbang na dapat sundin upang i-set up ito. Ayan yun! Subukan ito at sundin ang mga ibinigay na hakbang.