powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / почему local postgres должен всегда быть peer ?
16 сообщений из 16, страница 1 из 1
почему local postgres должен всегда быть peer ?
    #39513093
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всем приветы
хочу всё-таки разобраться...
у меня одна-единственная запись:
local all postgres md5
но с такой записью СЕРВЕР НЕ ЗАПУСКАЕТСЯ
авторpostgres@postgres ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (по паролю)
postgres@postgres ПОДРОБНОСТИ: Пароль не подходит для пользователя "postgres".
вот так он спамит в логах.

пароль выставил в системе: passwd postgres (123)
и внутри: ALTER USER postgres PASSWORD '123'; (также пробовал ENCRYPTED PASSWORD и md5 менял на password)
ну казалось бы - возьми ты пароль из системы и юзай, но нет!
чего ему надо?
почему я должен держать там обязательно peer или trust ?
пусть для сокета, а что если злоумышленник получил доступ к консоли, а команда "sudo -u postgres psql" - даёт полный доступ ко всем БД
так должно быть?
...
Рейтинг: 0 / 0
почему local postgres должен всегда быть peer ?
    #39513109
Alexius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78,

каким образом запускаете базу и как проверяете что запущена? должна запускаться. никто не заставляет там держать именно peer или trust.


ну казалось бы - возьми ты пароль из системы и юзай, но нет!

а причем тут пароль в системе? проверяется пароль, выставленный через alter user.


пусть для сокета, а что если злоумышленник получил доступ к консоли, а команда "sudo -u postgres psql" - даёт полный доступ ко всем БД

если злоумышленник имеет рутовые права, то тут уже ничего не поможет. дефолтная настройка с peer для local вполне разумная в плане безопасности.
...
Рейтинг: 0 / 0
почему local postgres должен всегда быть peer ?
    #39513223
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторкаким образом запускаете базу и как проверяете что запущена? должна запускаться. никто не заставляет там держать именно peer или trust.

в логах же спам, что пароль не прошёл
и это:
автор# psql
psql: не удалось подключиться к серверу: Нет такого файла или каталога
Он действительно работает локально и принимает
соединения через доменный сокет "/var/run/postgresql/.s.PGSQL.5432"?
и netstat

автора причем тут пароль в системе? проверяется пароль, выставленный через alter user.
ну peer же... он таки связан с юзерами системы:
авторПолучает имя пользователя операционной системы клиента из операционной системы и проверяет, соответствует ли оно имени пользователя запрашиваемой базы данных.

авторесли злоумышленник имеет рутовые права, то тут уже ничего не поможет. дефолтная настройка с peer для local вполне разумная в плане безопасности.
не поможет, но просто так отдавать доступ в БД с рутовыми правами это слишком
хоть бы попотел, поискав ключик...
даже в мускуле нет такого

авторпроверяется пароль, выставленный через alter user.
я так понимаю, что для запуска этот postgres должен выполнить какие-то операции
но не может, потому что при запуске не указан его пароль...
или я ничего не понимаю (
...
Рейтинг: 0 / 0
почему local postgres должен всегда быть peer ?
    #39513233
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78но просто так отдавать доступ в БД с рутовыми правами это слишком
Если у пользователя есть shell доступ к владельцу базы - то не составляет труда делать с базой что угодно. Например, поправить hba на trust и перечитать конфиг - вот и не было никакого пароля. И кроме как по логу вы это даже не заметите. И уж тем более никто не мешает читать датафайлы напрямую.

Вы не ответили на вопрос, как именно вы запускаете базу.

tip78ну peer же... он таки связан с юзерами системы:
авторПолучает имя пользователя операционной системы клиента из операционной системы и проверяет, соответствует ли оно имени пользователя запрашиваемой базы данных.
С юзером связан. С паролем системного пользователя - нет.
...
Рейтинг: 0 / 0
почему local postgres должен всегда быть peer ?
    #39513234
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MelkijВы не ответили на вопрос, как именно вы запускаете базу.
/etc/init.d/postgresql (Debian)
...
Рейтинг: 0 / 0
почему local postgres должен всегда быть peer ?
    #39513236
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MelkijИ уж тем более никто не мешает читать датафайлы напрямую.
они не очень то читаемые в raw
...
Рейтинг: 0 / 0
почему local postgres должен всегда быть peer ?
    #39513247
Фотография mefman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78MelkijИ уж тем более никто не мешает читать датафайлы напрямую.
они не очень то читаемые в raw
святая простота )
...
Рейтинг: 0 / 0
почему local postgres должен всегда быть peer ?
    #39513254
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дебиановский pg_ctlcluster да, пытается подцепиться к базе и рапортует о неудаче. Но сама база стартует штатно и требует пароль как и сказано в pg_hba.

авторmelkij@melkij:~$ sudo grep 'port =' /etc/postgresql/9.6/testmd5/postgresql.conf
port = 5433 # (change requires restart)
melkij@melkij:~$ sudo cat /etc/postgresql/9.6/testmd5/pg_hba.conf local all postgres md5
melkij@melkij:~$ sudo -u postgres psql --port 5433
Пароль:
psql (9.6.4)
Введите "help", чтобы получить справку.

postgres=#
...
Рейтинг: 0 / 0
почему local postgres должен всегда быть peer ?
    #39513278
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MelkijНо сама база стартует штатно и требует пароль как и сказано в pg_hba.
я не вижу, где она у вас стартует, вы подключаетесь к уже запущенной
...
Рейтинг: 0 / 0
почему local postgres должен всегда быть peer ?
    #39513281
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
другими словами: запустили то как??
...
Рейтинг: 0 / 0
почему local postgres должен всегда быть peer ?
    #39513306
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78, /etc/init.d/postgresql start не вставился. Ещё раз с ним.

авторmelkij@melkij:~$ sudo /etc/init.d/postgresql start
[ ok ] Starting PostgreSQL 9.4 database server:.
[....] Starting PostgreSQL 9.6 database server: main testmd5[....] The PostgreSQL server failed to start. Please check the log output: 2017-08-31 11:44:22.840 MSK [22665] СООБЩЕНИЕ: система БД была выключена: 2017-08-31 11:44:16 MSK 2017-08-31 11:44:22.895 MSK [22665] СООБЩЕНИЕ: Защита от наложения мультитранзакций сейчас включена 2017-08-31 11:44:22.898 MSK [22664] СООБЩЕНИЕ: система БД готова принимать подключения 2017-08-31 11:44:22.898 MSK [22669] СООБЩЕНИЕ: процесс запуска автоочистки создан 2017-08-31 11:44:23.101 MSK [22671] [н/д]@[н/д] СООБЩЕНИЕ: неполный стартовый пакет 2017-08-31 11:44:23.607 MSK [22674] postgres@postgres ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (по паролю) 2017-08-31 11:44:23.607 MSK [22674] postgres@postgres ПОДРОБНОСТИ: Пароль не подходит для пользователя "postgres". Подключение соответствует строке 1 в pg_hba.conf: "local all postgres md5" 2017-08-31 11:44:24.115 MSK [22677] postgres@postgres ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (по паролю) 2017-08-31 11:44:24.115 MSK [22677] postgres@postgres ПОДРОБНОСТИ: Пароль не подходит для пользователя "postgres". Подключение соответствует строке 1 в pg_hba.conf: "local all postgres md5" 2017-08-31 11:44:24.621 MSK [22680] postgres@postgres ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (по паролю) 2017-08-31 11:44:24.621 MSK [22680] postgres@postgres ПОДРОБНОСТИ: Пароль не подходит для пользователя "postgres". Подключение соответствует строке 1 в pg_hba.conf: "local all postgres md5" 2017-08-31 11:44:25.129 MSK [22683] postgres@postgres ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (по паролю) 2017-08-31 11:44:25.129 MSK [22683] postgres@postgres ПОДРОБНОСТИ: Пароль не подходит для пользователя "postgres". Подключение соответствует строке 1 в pg_hba.conf: "local all postgres md5" 2017-08-31 11:44:25.636 MSK [22686] postgres@postgres ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (по паролю) 2017-08-31 11:44:25.636 MSK [22686] postgres@postgres ПОДРОБНОСТИ: Пароль не подходит для пользователя "postgres". Подключение соответствует строке 1 в pg_hba.conf: "local all postgres md5" 2017-08-31 11:44:26.143 MSK [22689] postgres@postgres ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (по паролю) 2017-08-31 11:44:26.143 MSK [22689] postgres@postgres ПОДРОБНОСТИ: Пароль не подходит для пользователя "postgres". Подключение соответствует строке 1 в pg_hba.conf: "local all postgres md5" 2017-08-31 11:44:26.650 MSK [22692] postgres@postgres ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (по паролю) 2017-08-31 11:44:26.650 MSK [22692] postgres@postgres ПОДРОБНОСТИ: Пароль не подходит для пользователя "postgres". Подключение соответствует строке 1 в pg_hba.conf: "local all postgres md5" 2017-08-31 11:44:27.156 MSK [22695] postgres@postgres ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (по паролю) 2017-08-31 11:44:27.156 MSK [22695] postgres@postgres ПОДРОБНОСТИ: Пароль не подходит для пользователя "postgres". Подключение соответствует строке 1 в pg_hba.conf: "local all postgres md5" 2017-08-31 11:44:27.663 MSK [22698] postgres@postgres ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (по паролю) 2017-08-31 11:44:27.663 MSK [22698] postgres@postgres ПОДРОБНОСТИ: Пароль не подходит для пользователя "postgres". Подключение соответствует строке 1 в pg_hba.conf: "local all postgres md5" 2017-08-31 11:44:28.170 MSK [22701] postgres@postgres ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (по паролю) 2017-08-31 11:44:28.170 MSK [22701] postgres@postgres ПОДРОБНОСТИ: Пароль не подходит для пользователя "postgres". Подключение соответствует строке 1 в pg_hba.conf: "local all postgres md5" 2017-08-31 11:44:28.679 MSK [22704] postgres@postgres ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (по паролю) 2017-08-31 11:44:28.679 MSK [22704] postgres@postgres ПОДРОБНОСТИ: Пароль не подходит для пользователя "postgres". Подключение соответствует строке 1 в pg_hba.conf: "local all postgres m[FAIL.. failed!
failed!
melkij@melkij:~$ sudo grep 'port =' /etc/postgresql/9.6/testmd5/postgresql.conf
port = 5433 # (change requires restart)
melkij@melkij:~$ sudo cat /etc/postgresql/9.6/testmd5/pg_hba.conf
local all postgres md5
melkij@melkij:~$ sudo -u postgres psql --port 5433
Пароль:
psql (9.6.4)
Введите "help", чтобы получить справку.

postgres=#
...
Рейтинг: 0 / 0
почему local postgres должен всегда быть peer ?
    #39513328
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну и у меня он также спамит ошибками
только у вас он почему-то запустился, а у меня:
автор# sudo -u postgres psql
psql: не удалось подключиться к серверу: Нет такого файла или каталога
Он действительно работает локально и принимает
соединения через доменный сокет "/var/run/postgresql/.s.PGSQL.5432"?
нет, не принимает, и файла нет.
...
Рейтинг: 0 / 0
почему local postgres должен всегда быть peer ?
    #39513337
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78,

значит смотрите в лог базы. Там будет написано, почему не стартовали.
...
Рейтинг: 0 / 0
почему local postgres должен всегда быть peer ?
    #39513347
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да тоже самое, вот полный лог запуска:
автор2017-08-31 11:59:24.720 MSK [5291] СООБЩЕНИЕ: система БД была выключена: 2017-08-31 01:51:51 MSK
2017-08-31 11:59:24.791 MSK [5291] СООБЩЕНИЕ: Защита от наложения мультитранзакций сейчас включена
2017-08-31 11:59:24.799 MSK [5290] СООБЩЕНИЕ: система БД готова принимать подключения
2017-08-31 11:59:24.809 MSK [5295] СООБЩЕНИЕ: процесс запуска автоочистки создан
2017-08-31 11:59:24.848 MSK [5297] [н/д]@[н/д] СООБЩЕНИЕ: неполный стартовый пакет
2017-08-31 11:59:25.372 MSK [5300] postgres@postgres ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (по паролю)
2017-08-31 11:59:25.372 MSK [5300] postgres@postgres ПОДРОБНОСТИ: Пароль не подходит для пользователя "postgres".
Подключение соответствует строке 85 в pg_hba.conf: "local all postgres md5"
2017-08-31 11:59:25.888 MSK [5303] postgres@postgres ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (по паролю)
2017-08-31 11:59:25.888 MSK [5303] postgres@postgres ПОДРОБНОСТИ: Пароль не подходит для пользователя "postgres".
Подключение соответствует строке 85 в pg_hba.conf: "local all postgres md5"
2017-08-31 11:59:26.405 MSK [5306] postgres@postgres ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (по паролю)
2017-08-31 11:59:26.405 MSK [5306] postgres@postgres ПОДРОБНОСТИ: Пароль не подходит для пользователя "postgres".
Подключение соответствует строке 85 в pg_hba.conf: "local all postgres md5"
2017-08-31 11:59:26.922 MSK [5309] postgres@postgres ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (по паролю)
2017-08-31 11:59:26.922 MSK [5309] postgres@postgres ПОДРОБНОСТИ: Пароль не подходит для пользователя "postgres".
Подключение соответствует строке 85 в pg_hba.conf: "local all postgres md5"
2017-08-31 11:59:27.439 MSK [5312] postgres@postgres ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (по паролю)
2017-08-31 11:59:27.439 MSK [5312] postgres@postgres ПОДРОБНОСТИ: Пароль не подходит для пользователя "postgres".
Подключение соответствует строке 85 в pg_hba.conf: "local all postgres md5"
2017-08-31 11:59:27.956 MSK [5315] postgres@postgres ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (по паролю)
2017-08-31 11:59:27.956 MSK [5315] postgres@postgres ПОДРОБНОСТИ: Пароль не подходит для пользователя "postgres".
Подключение соответствует строке 85 в pg_hba.conf: "local all postgres md5"
2017-08-31 11:59:28.473 MSK [5318] postgres@postgres ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (по паролю)
2017-08-31 11:59:28.473 MSK [5318] postgres@postgres ПОДРОБНОСТИ: Пароль не подходит для пользователя "postgres".
Подключение соответствует строке 85 в pg_hba.conf: "local all postgres md5"
2017-08-31 11:59:28.990 MSK [5321] postgres@postgres ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (по паролю)
2017-08-31 11:59:28.990 MSK [5321] postgres@postgres ПОДРОБНОСТИ: Пароль не подходит для пользователя "postgres".
Подключение соответствует строке 85 в pg_hba.conf: "local all postgres md5"
2017-08-31 11:59:29.508 MSK [5324] postgres@postgres ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (по паролю)
2017-08-31 11:59:29.508 MSK [5324] postgres@postgres ПОДРОБНОСТИ: Пароль не подходит для пользователя "postgres".
Подключение соответствует строке 85 в pg_hba.conf: "local all postgres md5"
2017-08-31 11:59:30.025 MSK [5327] postgres@postgres ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (по паролю)
2017-08-31 11:59:30.025 MSK [5327] postgres@postgres ПОДРОБНОСТИ: Пароль не подходит для пользователя "postgres".
Подключение соответствует строке 85 в pg_hba.conf: "local all postgres md5"
2017-08-31 11:59:30.542 MSK [5330] postgres@postgres ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (по паролю)
2017-08-31 11:59:30.542 MSK [5330] postgres@postgres ПОДРОБНОСТИ: Пароль не подходит для пользователя "postgres".
Подключение соответствует строке 85 в pg_hba.conf: "local all postgres md5"
2017-08-31 11:59:30.547 MSK [5290] СООБЩЕНИЕ: получен запрос на "вежливое" выключение
2017-08-31 11:59:30.551 MSK [5295] СООБЩЕНИЕ: процесс запуска автоочистки завершается
2017-08-31 11:59:30.556 MSK [5292] СООБЩЕНИЕ: выключение
2017-08-31 11:59:30.711 MSK [5290] СООБЩЕНИЕ: система БД выключена
2017-08-31 12:02:17.787 MSK [5425] СООБЩЕНИЕ: система БД была выключена: 2017-08-31 11:59:30 MSK
2017-08-31 12:02:17.826 MSK [5425] СООБЩЕНИЕ: Защита от наложения мультитранзакций сейчас включена
2017-08-31 12:02:17.833 MSK [5429] СООБЩЕНИЕ: процесс запуска автоочистки создан
2017-08-31 12:02:17.833 MSK [5424] СООБЩЕНИЕ: система БД готова принимать подключения
2017-08-31 12:02:18.122 MSK [5431] [н/д]@[н/д] СООБЩЕНИЕ: неполный стартовый пакет
у вас в системе (в линухе) postgres с паролем?
...
Рейтинг: 0 / 0
почему local postgres должен всегда быть peer ?
    #39513360
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78,

по логу видно штатные включение, выключение и вновь включение, т.е. база запущена. Либо была жёстко убита чем-то внешним, что даже в лог сообщение записать не смогла.
...
Рейтинг: 0 / 0
почему local postgres должен всегда быть peer ?
    #39513366
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну вот это 9.6 из Debian 9.1
не знаю, что они могли там изменить (у вас же старее версия?)
по идее каждое "Пароль не подходит для пользователя "postgres"." - означает попытку какого-то действия, которое обламывается
но они и у вас есть.
ладно, йух с ним, peer так peer
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / почему local postgres должен всегда быть peer ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]