Linux postgresql install: PostgreSQL: Linux downloads (Ubuntu)

Установка и настройка PostgreSQL на Kali Linux

Содержание

  • 1 Что такое PostgreSQL на Kali Linux
  • 2 Установка PostgreSQL на Kali Linux
    • 2.1 Обновление пакетов Kali Linux
    • 2.2 Установка PostgreSQL на Kali Linux
    • 2.3 Проверка установки PostgreSQL на Kali Linux
    • 2.4 Настройка удаленного доступа к PostgreSQL

В этой статье мы рассмотрим установку и настройку PostgreSQL 15 на Kali Linux 2022.x.

Еще по теме: Просмотр настройка и изменение Iptables Kali Linux

Что такое PostgreSQL на Kali Linux

PostgreSQL — это объектно-реляционная система управления базами данных (ORDBMS), самая развитая из всех открытых СУБД.

Некоторые из важных функций PostgreSQL включают в себя:

  • Гибкий доступ к базам данных, их организация и хранение.
  • Управление записями в базах данных: создание, редактирование и удаление, обновление версий и так далее.
  • Просмотр нужной информации из базы по запросу, например для ее отправки на сайт или в интерфейс приложения.
  • Отправка транзакций, последовательных запросов, собранных в подобие скрипта.
  • Настройка и контроль доступа к той или иной информации, группировка пользователей по уровню прав.
  • Контроль версий и организация одновременного доступа к базе из разных источников так, чтобы предотвратить сбои.
  • Контроль состояния базы в целом.

Установка PostgreSQL на Kali Linux

Следующие шаги помогут нам установить PostgreSQL на Kali Linux и протестировать создание базы данных. Kali Linux — это дистрибутив на основе Debian, поэтому мы будем использовать диспетчер пакетов «apt».

Обновление пакетов Kali Linux

Первое, что рекомендуется делать перед установкой — это убедиться, что система работает с обновленными пакетами.

sudo apt update && sudo apt upgrade -y

sudo reboot

После обновления перезагрузите систему.

Установка PostgreSQL на Kali Linux

Postgresql 15 установлен в Kali Linux по умолчанию. Проверьте доступность PostgreSQL в Kali Linux, выполнив команду:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

$ sudo apt show postgresql                          

Package: postgresql

Version: 15+246

Priority: optional

Section: database

Source: postgresql-common (246)

Maintainer: Debian PostgreSQL Maintainers <[email protected]>

Installed-Size: 15.4 kB

Depends: postgresql-15

Suggests: postgresql-doc

Tag: devel::lang:sql, interface::daemon, network::server, network::service,

role::metapackage, role::program, suite::postgresql, works-with::db

Download-Size: 9,836 B

APT-Sources: http://http. kali.org/kali kali-rolling/main amd64 Packages

Description: object-relational SQL database (supported version)

This metapackage always depends on the currently supported PostgreSQL

database server version.

….

Для установки, выполните команду:

sudo apt install postgresql -y

Для запуская postgresql на Kali Linux, выполните следующие команды:

sudo systemctl start postgresql

Проверьте работу postgresql на Kali Linux:

1

2

3

4

5

6

7

8

9

10

$ systemctl status postgresql

● postgresql.service — PostgreSQL RDBMS

     Loaded: loaded (/lib/systemd/system/postgresql.service; disabled; preset: disabled)

     Active: active (exited) since Mon 2022-11-28 14:53:17 EST; 11s ago

    Process: 2436 ExecStart=/bin/true (code=exited, status=0/SUCCESS)

   Main PID: 2436 (code=exited, status=0/SUCCESS)

        CPU: 1ms

 

Nov 28 14:53:17 kali systemd[1]: Starting PostgreSQL RDBMS. ..

Nov 28 14:53:17 kali systemd[1]: Finished PostgreSQL RDBMS.

Проверка установки PostgreSQL на Kali Linux

Проверьте, возможность подключения к PostgreSQL для создания тестовой базы данных. После установки PostgreSQL, создается пользователь по умолчанию с именем postgres:

sudo su — postgres

Для создания сложного пароля и защиты пользователя postgres, выполните команду (см. Генерация паролей в терминале Linux):

psql -c «alter user postgres with password ‘MyStrongPassword'»

Для запуска команд Postgresql, войдите в командную строку PostgreSQL:

$ psql

psql (15.1 (Debian 15.1-1))

Type «help» for help.

 

postgres=#

Для отображения списка доступных баз данных:

1

2

3

4

5

6

7

8

9

10

$ \l

                               List of databases

   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges  

————+———-+———-+————-+————-+————————

postgres  | postgres | UTF8     | en_US. UTF-8 | en_US.UTF-8 |

template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

           |          |          |             |             | postgres=CTc/postgres

template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

           |          |          |             |             | postgres=CTc/postgres

(3 rows)

Чтобы создать базу данных, выполните команду:

CREATE DATABASE testdb;

Убедитесь, что создана новая база данных, еще раз выполнив команду:

1

2

3

4

5

6

7

8

9

10

11

# \l

List of databases

   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges  

————+———-+———-+————-+————-+————————

postgres  | postgres | UTF8     | en_US. UTF-8 | en_US.UTF-8 |

template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

           |          |          |             |             | postgres=CTc/postgres

template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

           |          |          |             |             | postgres=CTc/postgres

testdb    | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |

(4 rows)

Чтобы создать пользователя и предоставить ему права доступа к базе данных, которую мы создали ранее, выполните команды:

postgres=# CREATE USER testuser WITH ENCRYPTED PASSWORD ‘MyPassword’;

CREATE ROLE

postgres=# GRANT ALL PRIVILEGES ON DATABASE testdb to testuser;

GRANT

Для подключения к созданной базе данных:

# \c testdb

You are now connected to database «testdb» as user «postgres».

testdb=#

Настройка удаленного доступа к PostgreSQL

PostgreSQL имеет файл конфигурации, в который можете, при необходимости, вносить изменения . Я покажу вам, как редактировать адреса прослушивания и включать удаленный доступ.

Откройте файл конфигурации:

sudo vim /etc/postgresql/15/main/postgresql.conf

В разделе Connection and Authentication (Подключение и аутентификация), раскомментируйте строку:

59; #listen_addresses=’localhost’

и отредактируйте строку, чтобы разрешить прослушивание на любом интерфейсе (To listen on all interfaces) или на определенных интерфейсах (To enable only specified private IP address):

# To listen on all interfaces

listen_addresses = ‘*’

 

# To enable only specified private IP address

listen_addresses = ‘192. 168.50.2′

Чтобы включить удаленное подключение, отредактируйте файл:

sudo vim /etc/postgresql/15/main/pg_hba.conf

Внесите следующие изменения:

# To accept connections from anywhere

host all all 0.0.0.0/0 md5

 

# To accept only from trusted subnet

host all all 10.10.10.0/24 md5

После внесения вышеуказанных изменений необходимо перезапустить postgresql:

sudo systemctl restart postgresql

Чтобы отключить удаленный доступ к базе данных Postgresql, откройте вышеуказанные файлы конфигурации и добавьте «
#» в начале строк.

Например, чтобы отключить удаленный доступ из любого места, отредактируйте строку и не забудьте перезапустить postgresql, когда закончите:

#host all all 0. 0.0.0/0 md5

Как видите. Запустить и использовать базу данных Postgresql довольно просто, в любом дистрибутиве Linux, в том числе Kali Linux.

РЕКОМЕНДУЕМ:

  • Интересные уязвимости PostgreSQL
  • Установка и использование сканера Nessus на Kali Linux

Установка PostgreSQL на Red Hat Enterprise Linux

C Red Hat Enterprise Linux (RHEL) столкнулся совсем недавно, так как появилась необходимость развернуть специализированное ПО именно на этой версии операционной системе. Ранее работал с CentOS, которая основана на RHEL, поэтому проблем с RHEL не возникло. В данной статье будет описан процесс установки PostgreSQL на Red Hat Enterprise Linux 8.

PostgreSQL 10 включён в репозитории RHEL 8, для его установки выполним команду:

dnf install @postgresql

Если установку производите не под учётной записью администратора, то в терминале вначале всех команд прописываем команду sudo. Пример: sudo dnf install @postgresql

Можно переключиться на учётную запись root, устанавливаем под ним всё необходимое и выходим из учётной записи root.

Инициализируем базу данных:

postgresql-setup --initdb

Запустим сервис PostgreSQL, включим его автоматический запуск при загрузке системы и проверим его состояние:

systemctl start postgresql
systemctl enable postgresql
systemctl status postgresql

Защитим учётную запись пользователя Postgres и учётную запись администратора. Создадим пароль для учётной записи postgres:

passwd postgres

Переключаемся на учётную запись postgres:

su - postgres

Защитим учётную запись пользователя администратора базы данных PostgreSQL задав надёжный пароль:

psql -c "ALTER USER postgres WITH PASSWORD 'tut_slojni_parol';"

Выходим из-под пользователя postgres:

exit

По умолчанию PostgreSQL принимает соединения только с локальных служб и слушает интерфейс localhost. Мы будем подключаться к нему удалённо, поэтому нам надо разрешить удалённое подключение. Открываем основной файл настроек /var/lib/pgsql/data/postgresql.conf и раскомментируем строку:

listen_addresses = 'localhost'

listen_addresses — задаёт адреса TCP/IP, через которые сервер будет принимать подключения клиентских приложений. Это значение принимает форму списка, разделённого запятыми, из имён и/или числовых IP-адресов компьютеров. * — обозначает все имеющиеся IP-интерфейсы. 0.0.0.0 — обозначает все имеющиеся адреса IPv4. :: — обозначает все имеющиеся адреса IPv6.

Добавим IP адрес сетевого интерфейса, с которого надо принимать сетевые подключения:

listen_addresses = 'localhost,192.168.56.112'

Или разрешим принимать подключения клиентских приложений через все имеющиеся IP-интерфейсы сервера:

listen_addresses = '*'

Разрешим подключение из локальной сети с любых хостов и к любым БД, для этого файле /var/lib/pgsql/data/pg_hba. conf после строки:

# IPv4 local connections:
host    all             all             127.0.0.1/32            peer

Добавим строку:

host    all             all             192.168.56.0/24         md5

где 192.168.56.0/24 — это наша локальная сеть (у вас будет другая).

Если требуется, чтобы PostgreSQL принимал подключение со всех без исключения IP-адресов, то прописываем следующее:

# IPv4 local connections:
host    all             all             0.0.0.0/0            md5
# IPv6 local connections:
host    all             all             ::/0            md5

Перезапускаем PostgreSQL:

systemctl restart postgresql

Теперь мы можем подключиться к PostgreSQL c локального сервера и из нашей локальной сети.

По умолчанию в RHEL многие порты закрыты брандмауэром. Откроем в брандмауэре доступ для PostgreSQL на подключение выполнив следующие команды:

firewall-cmd --zone=public --permanent --add-service=postgresql
firewall-cmd --reload

Теперь мы можем подключиться к PostgreSQL.

Как установить и настроить PostgreSQL в Redhat Linux

Если вы хотите установить PostgreSQL в Redhat Linux, это руководство для вас. Он охватывает установку, настройку и включение удаленного подключения.

Установка PostgreSQL на RedHat Linux

Выполните шаги, указанные ниже, чтобы установить последнюю версию PostgreSQL на RedHat Linux

Шаг 1: Добавьте репозиторий PostgreSQL Yum

Выполните следующую команду, чтобы добавить репозиторий PostgreSQL yum.

 sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm 

Шаг 2: Установить последняя версия PostgreSQL Server

На момент написания этого руководства последней версией была PostgreSQL 15. Вы можете проверить последнюю версию, доступную для Rehat, на этой странице.

 sudo yum install -y postgresql15-server 

Шаг 3: Инициализация базы данных и включение автоматического запуска

Выполните следующие команды, чтобы инициализировать базу данных PostgreSQL и добавить службы к запуску сервера.

 sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
sudo systemctl включить postgresql-15
sudo systemctl start postgresql-15 

Включить удаленное подключение к PostgreSQL

По умолчанию удаленное подключение к PostgreSQL отключено. Однако вы можете подключиться к базе данных локально. Если вы попытаетесь подключиться с удаленного компьютера, вы получите сообщение об ошибке, подобное следующему.

 psql: ошибка: подключение к серверу по адресу «34.221.35.108», порт 5432 не удалось: подключение отклонено
Сервер работает на этом хосте и принимает соединения TCP/IP? 

Первый вход в базу данных с помощью следующей команды.

 sudo -u postgres psql 

Установите пароль для пользователя Postgres, чтобы мы могли использовать его для удаленного входа в систему. Замените myPassword на требуемый пароль.

 ALTER USER postgres PASSWORD 'myPassword'; 

Чтобы включить удаленное подключение PostgreSQL в Redhat, вам нужно открыть следующий файл.

 sudo vi /var/lib/pgsql/15/data/postgresql.conf 

В разделе ПОДКЛЮЧЕНИЯ И АУТЕНТИФИКАЦИЯ вы найдете следующий закомментированный параметр.

 #listen_addresses = 'localhost' 

Замените его следующим и сохраните файл. В этой конфигурации мы разрешаем подключениям к серверу PostgreSQL принимать подключения со всех IP-адресов.

 listen_addresses = '*' 

Чтобы применить изменение, перезапустите службу PostgreSQL с помощью следующей команды. Если вы используете любую версию, кроме 15, замените 15 соответствующим номером версии в команде.

 sudo systemctl перезапустить postgresql-15 

Мы разрешили соединения на всех интерфейсах. Однако если вы попытаетесь подключиться к серверу PostgreSQL RedHat с удаленного компьютера, вы получите следующую ошибку, поскольку вам необходимо разрешить клиентские подключения ко всем базам данных и пользователям.

 psql: ошибка: подключение к серверу по адресу «34.221. 35.108», порт 5432 не удалось: FATAL: нет записи pg_hba.conf для хоста «49.205.132.96», пользователь «postgres», база данных «postgres», без шифрования 

Чтобы разрешить клиентам подключения ко всем базам данных, вам необходимо отредактировать файл pg_hba.conf  .

Откройте файл pg_hba.conf .

 sudo vi /var/lib/pgsql/15/data/pg_hba.conf 

Добавьте следующую строку в конец файла .

 host all all 0.0.0.0/0 md5 

Перезапустите сервер PostgreSQL, чтобы изменения вступили в силу.

 sudo systemctl restart postgresql-15 

Теперь проверьте удаленное подключение, подключившись к серверу PostgreSQL с помощью следующей команды. Замените IP на IP вашего сервера.

 psql -h 34.221.35.108 -U postgres 

При запросе пароля используйте пароль, установленный с помощью команды ALTER.

Если у вас не установлен пароль для пользователя Postgres, вы получите следующую ошибку.

 Пароль пользователя postgres:
psql: ошибка: не удалось подключиться к серверу по адресу «34.221.35.108», порт 5432: FATAL: ошибка аутентификации по паролю для пользователя «postgres» 

Важные конфигурации сервера PostgreSQL на Redhat

В следующей таблице приведены важные конфигурации PostgreSQL на сервере Redhat. Замените 15 версией PostgreSQL, которую вы используете.

Конфигурация Детали
Порт PostgreSQL по умолчанию 5432
Пользователь по умолчанию postgres
Расположение файлов конфигурации ( postgresql.conf и pg_hba.conf ) /var/lib/pgsql/15/data/pg_hba.conf
/var/lib/pgsql/15/data/postgresql.conf
База данных по умолчанию postgres
Каталог данных по умолчанию /var/lib/pgsql/15/data

Заключение

Инженеру DevOps необходимо знать основные конфигурации, связанные с базой данных. в этом руководстве мы рассмотрели шаги по установке PostgreSQL на сервер Redhat.

Для сервера Ubuntu: проверьте установку PostgreSQL на Ubuntu.

Для сервера Amazon Linux: ознакомьтесь с установкой PostgreSQL на Amazon Linux

Кроме того, если вы используете Kubernetes, ознакомьтесь с руководством по настройке PostgreSQL statefulset в Kubernetes 9.0003

Если вы только начинаете свой путь инженера DevOps, ознакомьтесь с моим подробным руководством по тому, как стать инженером DevOps.

Как установить и использовать PostgreSQL в Arch Linux

PostgreSQL — это бесплатная объектно-реляционная система управления базами данных с открытым исходным кодом, используемая для создания отказоустойчивых и сложных приложений. Он очень популярен среди разработчиков благодаря своей надежности, надежности функций и производительности. PostgreSQL — одна из самых популярных систем баз данных, доступная для большинства операционных систем, включая Arch Linux.

В этом посте мы покажем вам, как установить и использовать PostgreSQL в Arch Linux.

Предпосылки

  • Новый сервер Arch Linux на облачной платформе Atlantic.Net
  • Пароль root, настроенный на вашем сервере

Шаг 1. Создайте облачный сервер Atlantic.Net

Сначала войдите на свой облачный сервер Atlantic.Net. Создайте новый сервер, выбрав Arch Linux в качестве операционной системы с оперативной памятью не менее 2 ГБ. Подключитесь к вашему облачному серверу через SSH и войдите в систему, используя учетные данные, выделенные вверху страницы.

Шаг 2. Настройка репозитория

По умолчанию репозиторий по умолчанию устарел в Arch Linux, поэтому вам потребуется изменить список зеркал по умолчанию. Вы можете сделать это, отредактировав файл конфигурации зеркала:

 nano /etc/pacman.d/mirrorlist 

Удалите все строки и добавьте следующие строки:

 ## Оценка: 0,7, США
Сервер = http://mirror.us.leaseweb.net/archlinux/$repo/os/$arch
## Оценка: 0,8, США
Сервер = http://lug.mtu.edu/archlinux/$repo/os/$arch
Сервер = http://mirror. nl.leaseweb.net/archlinux/$repo/os/$arch
## Оценка: 0,9, Великобритания
Сервер = http://mirror.bytemark.co.uk/archlinux/$repo/os/$arch
## Оценка: 1,5, Великобритания
Сервер = http://mirrors.manchester.m247.com/arch-linux/$repo/os/$arch
Сервер = http://archlinux.dcc.fc.up.pt/$repo/os/$arch
## Оценка: 6,6, США
Сервер = http://mirror.cs.pitt.edu/archlinux/$repo/os/$arch
## Оценка: 6,7, США
Сервер = http://mirrors.acm.wpi.edu/archlinux/$repo/os/$arch
## Оценка: 6,8, США
Сервер = http://ftp.osuosl.org/pub/archlinux/$repo/os/$arch
## Оценка: 7,1, Индия
Сервер = http://mirror.cse.iitk.ac.in/archlinux/$repo/os/$arch
## Оценка: 10,1, США
Сервер = http://mirrors.xmission.com/archlinux/$repo/os/$arch
 

Сохраните и закройте файл, затем обновите все индексы пакетов с помощью следующей команды:

 pacman -Syu 

Шаг 3. Установите PostgreSQL в Arch Linux

По умолчанию пакет PostgreSQL включен в основной репозиторий Arch Linux. . Вы можете установить его с помощью следующей команды:

 pacman -S postgresql 

После установки PostgreSQL вы можете проверить версию PostgreSQL с помощью следующей команды:

 postgres --version 

Вы получите следующий вывод:

 postgres (PostgreSQL) 14. 5
 

Затем инициализируйте базу данных PostgreSQL с помощью следующей команды:

 sudo -u postgres initdb --locale en_US.UTF-8 -D /var/lib/postgres/data 

Шаг 4. Управление службой PostgreSQL

По умолчанию , служба PostgreSQL управляется systemd. Вы можете запустить службу PostgreSQL с помощью следующей команды:

 systemctl start postgresql 

Чтобы разрешить запуск службы PostgreSQL после перезагрузки системы, выполните следующую команду:

 systemctl enable postgresql 

Чтобы проверить состояние службы PostgreSQL, выполните следующую команду:

 systemctl status postgresql 

Вы должны увидеть следующий вывод:

 ● postgresql.service — сервер базы данных PostgreSQL
     Загружено: загружено (/usr/lib/systemd/system/postgresql.service; отключено; по умолчанию: отключено)
     Активен: активен (работает) с пт 2022-10-28 07:35:27 UTC; 5 с назад
    Процесс: 83878 ExecStartPre=/usr/bin/postgresql-check-db-dir ${PGROOT}/data (code=exited, status=0/SUCCESS)
   Основной PID: 83880 (постгрес)
      Заданий: 7 (лимит: 2362)
     Память: 15,7 Мб
     CGroup: /system. slice/postgresql.service
             ├─83880 /usr/bin/postgres -D /var/lib/postgres/data
             ├─83883 "postgres: контрольная точка "
             ├─83884 "postgres: фоновый писатель "
             ├─83885 "postgres: walwriter "
             ├─83886 "postgres: автовакуумный лаунчер"
             ├─83887 "postgres: сборщик статистики"
             └─83888 "postgres: средство запуска логической репликации"
 

Шаг 5. Как использовать PostgreSQL

По умолчанию пароль для пользователя Postgres отсутствует.

Чтобы установить его, войдите в систему с пользователем Postgres и установите пароль с помощью следующей команды:

 su - postgres
psql -c "изменить пользователя postgres с паролем "пароль"" 

Чтобы создать новую базу данных, выполните следующую команду: psql

CREATE DATABASE mydb;

Чтобы получить список всех баз данных, выполните следующую команду:

 \l 

Вы должны увидеть следующий список:

 Список баз данных
   Имя | Владелец | Кодирование | Разобрать | Тип | Права доступа
-----------+----------+-----------+-------------+-- --------------------------+-----------------------
 база данных | постгрес | UTF8 | en_US. UTF-8 | en_US.UTF-8 |
 постгрес | постгрес | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
 шаблон0 | постгрес | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =с/постгрес +
           | | | | | postgres=CTc/postgres
 шаблон1 | постгрес | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =с/постгрес +
           | | | | | postgres=CTc/postgres
(4 ряда)
 

Чтобы создать нового пользователя и установить пароль, выполните следующую команду:

 СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ user1 С ЗАШИФРОВАННЫМ ПАРОЛЕМ 'пароль'; 

Затем предоставьте все привилегии базе данных mydb с помощью следующей команды:

 ПРЕДОСТАВЬТЕ ВСЕ ПРИВИЛЕГИИ НА БАЗУ ДАННЫХ mydb пользователю1; 

Чтобы переключить базу данных на mydb, выполните следующую команду:

 \c mydb 

Чтобы выйти из оболочки PostgreSQL, выполните следующую команду:

 \q
выход 

Шаг 6. Настройка PostgreSQL для удаленного доступа

По умолчанию PostgreSQL настроен только для локального доступа. Если ваш сервер приложений и серверы баз данных размещены на другом сервере, вам потребуется настроить PostgreSQL для удаленного доступа.

Сначала отредактируйте основной файл конфигурации PostgreSQL:

 nano /var/lib/postgres/data/postgresql.conf 

Измените следующую строку с IP-адресом вашего сервера:

 listen_addresses = 'your-server-ip'
 

Сохраните и закройте файл, затем отредактируйте файл pg_hba.conf:

 nano /var/lib/postgres/data/pg_hba.conf 

Найдите следующую строку:

 host all all 127.0.0.1/32 trust
 

И замените его следующей строкой:

 host all all all trust
 

Сохраните и закройте файл, затем перезапустите службу PostgreSQL, чтобы применить изменения:

 systemctl перезапустить postgresql 

Затем попробуйте подключить вашу базу данных PostgreSQL, используя IP-адрес:

 psql -U user1 -h server-ip -p 5432 mydb 

Если все настроено правильно, вы попадете в следующую оболочку:

 psql ( 14.5)
Введите "помощь" для помощи.

моя БД =>
 

Заключение

В этом посте мы объяснили, как установить и использовать PostgreSQL в Arch Linux.