к серверу PostgreSQL? Проблема в том, что адрес ноутбука ежедневно меняется, хотелось бы прописывать новый адрес только в DNS.
используйте авторизацию по ключу, днс мягко говоря уязвимый способ
Спасибо, поизучаю подробнее тему.
Лучшэ поднимите vpn. Торчать постгресом в интэрнет -- так себе идея, код не слишком отполирован против недружэственных действий. Да и разработчики обращают на это внимание, но не первостепенной. Что-то через SSL, прикрытое файрволлом -- в принцыпе не то, чтобы невозможно -- но выглядит более стрёмным и потэнцыально медленным, чем vpn.
А почему более медленное?
Я только начал изучать PostgreSQL на Ubuntu, после Oracle Database на HP-UX и Windows и MSSQL. Непривычно пока всё выглядит, конечно, после Oracle. Но привычки наработать несложно при желании. Не знаю как у вас, у нас нет связи с Интернет в принципе, поэтому и проблему с доступом к серверу в Интернете не решал до сих пор.
OpenSSL, если не приседать спецыально -- шыфрует на том жэ ядре, что и основное выполнение запросов. vpn мало что делает это на другом ядре -- так его несложно хоть на внешний роутер вынести.
На одном ядре может даже и неплохо - меньше переключения контекста и шастанья в память соседского сокета. Но если всю эту нагрузку отвести на пограничный роутер будет действительно хорошо. Правда в наших тестах overhead от VPN по полосе пропускания получился больше 30%. А есть замеры насколько плох в этом плане SSL?
Пробовали wireguard?
На эту тему - интересуют анализаторы логов Ubuntu и PostgreSQL. Желательно бесплатные. Ну и рекомендации по безопасности для ОС и СУБД, которые все применяют на сегодня, где об этом почитать. VPN на сервере СУБД пока не готов поднять, хотел бы ограничиться настройкой ОС и СУБД, файрвол Ubuntu немного понимаю.
так-то и ssh туннель можно использовать - дешево и сердито
Может быть я смотрю не с той стороны на проблему. Мне нужно всего-то, чтобы был открыт минимум портов на сервере и с моего ноутбука я мог работать в pgAdmin без переписываний каждый день pg_hba.conf ибо это уж совсем странно.
на сервере вообще не открываешь никакие порты наружу, кроме ssh ну или может там вебсервер еще, постгрес байндишь только на 127.0.0.1 потом делаешь ssh -fNL 5432:localhost:5432 yourlogin@yourserver и на локальном порту ноута начинает отвечать локальный порт сервера
На ноутбуке Windows 11. На ней тоже VPN стоит, какой-то бесплатный SkyVPN сейчас. Из-за Facebook приходится временно включать VPN, при этом от сервера СУБД отваливаюсь, естественно (в pg_hba.conf прописан текущий на сегодня IP-адрес ноутбука при выключенном SkyVPN).
на виндузах ананлогичный туннель делается при помощи Putty
Вроде бы получилось поднять SSH-тунель с ноутбука до сервера, оказалось несложно и удобно через ssh-ключи. Сейчас бьюсь над ошибкой в pgAdmin "connection to server at "localhost" (127.0.0.1), port 5432 failed: FATAL: password authentication failed for user "postgres" connection to server at "localhost" (127.0.0.1), port 5432 failed: FATAL: password authentication failed for user "postgres" В pgAdmin адрес сервера заменил на localhost, порт 5432. Пароль пользователя postgres (пользователь ОС сервера, не пользователь БД?) точно указываю верный, не выходит каменный цветок пока.
пароль должен быть от пользователя бд - пользователь ОС там вообще не при чем
Странный факт. Постоянно рвётся SSH-туннель между ноутбуком (Windows 11, Version 10.0.22543.1000) и сервером (Ubuntu 20.04 LTS 5.4.0-107-generic) с PostgreSQL. Связь при этом точно есть. ssh.exe версии 8.6.0.1.
при бездействии?
Не всегда. Иногда совпадает с моментом запуска скрипта в DataGrip. Но после - не значит вследствие :)
на сервере есть такая опция Host * ServerAliveInterval 240 так как может отваливаться NAT у провайдера, если по нему пакеты на идут
Создал на ноутбуке файл C:\Users\Игорь\.ssh\config, пробую как будет с ним. На stackoverflow (https://stackoverflow.com/questions/25084288/keep-ssh-session-alive) нашел такое: "The ssh daemon (sshd), which runs server-side, closes the connection from the server-side if the client goes silent (i.e., does not send information). To prevent connection loss, instruct the ssh client to send a sign-of-life signal to the server once in a while. The configuration for this is in the file $HOME/.ssh/config, create the file if it does not exist (the config file must not be world-readable, so run chmod 600 ~/.ssh/config after creating the file). To send the signal every e.g. four minutes (240 seconds) to the remote host, put the following in that configuration file: Host remotehost HostName remotehost.com ServerAliveInterval 240 To enable sending a keep-alive signal for all hosts, place the following contents in the configuration file: Host * ServerAliveInterval 240"
достаточно добавить `Host * ServerAliveInterval 60` в ${HOME}/.ssh/config ну это если ваш ссш локальный это понимает. надо посмотреть аналогичную опцию для sshd (sshd_config)
Обсуждают сегодня