Часто устанавливая связку Сервер 1С – Сервер PostgreSQL обходятся обычной настройкой сервера или серверов, например по принципу описанному в статье “Установки 1С-сервера + PostgreSQL на виртуалке с Ubuntu 20.04”. Однако не мешало бы усилить безопасность доступа к серверу баз данных и оградить наши данные от лишнего внимания.
Содержание:
- Смена пароля пользователя postgres.
- Проверка сетевых настроек сервера PostgreSQL.
- Установка межсетевого экрана iptables.
- Установка правил доступа к PostgreSQL серверу через брандмауэр iptables.
- Закрываем доступ по SSH из вне.
- Сохраняем установленные правила брандмауэра iptables.
Итак рассмотрим несколько дополнительных мер для повышения безопасности Cервера БД PocstgreSQL.
Повторим уже описанный в указанной статье шаг после установки PostgreSQL на Ubuntu
1. Смена пароля пользователя postgres
Зайдем в postgres shell
$ psql
и зададим пароль для пользователя postgres
$ alter user postgres with encrypted password ' Ваш пароль';
Пароль успешно поменяли, и на этом можно было бы успокоиться, но как всегда есть НО.
Postgres shell пишет историю командной строки в файл .psql_history, убедиться в этом легко:
выйдем из postgres shell командой \q и посмотрим на наш файл:
$ cat .psql_history;
Ну вот, как и предполагалось, все записано буква-в-букву.
Удалим файл истории командной строки и затем опять попробуем посмотреть его:
$ rm .psql_history;
$ cat .psql_history;
Теперь переключимся обратно в root, выполнив exit и настроим свой конфиг pg_hba.conf (поищите тут /var/lib/pgpro/1c-14/data/pg_hba.conf), убедившись, что у вас есть следующая строка
local all postgres md5
Если такой строки нет, — надо добавить. Вы можете использовать редактор Linux-a, но самый простой способ это сделать — воспользоваться WinSCP, подключиться к серверу — перейти в директорию, где находится файл pg_hba.conf и открыть его для редактирования, внести изменения и сохранить.
После этого возвращаемся в PuTTY и перегружаем сервер
Вы можете воспользоваться любым из методов остановить и потом запустить сервис сервера postgres, или перегрузить (с остановкой) restart и (без остановки, а только с перезагрузкой конфигов) reload.
Например: Остановим сервис
$ systemctl stop postgrespro-1c-14
Посмотрим статус сервера PostgreSQL (убедимся что он остановлен)
$ systemctl status postgrespro-1c-14
И запустим сервер PostgreSQL заново
$ systemctl start postgrespro-1c-14
Для порядка можно еще раз посмотреть статус и убедиться что сервер работает.
2. Проверка сетевых настроек сервера PostgreSQL
Проверяем торчит ли postgres наружу и смотрим порт :5432 – это наш постгрес
$ ss -tunapl
Естественно, если ничего до этого не настраивали – он будет виден из внешней сети, повернем ситуацию в свою сторону!
3. Установка межсетевого экрана iptables
Проверяем установлен ли межсетевой экран iptables (под рутом):
$ iptables -h
если есть хелп, выводится на экран, значит межсетевой экран iptables уже стоит,
если нет, то устанавливаем:
$ apt-get install iptables
Чтобы узнать версию установленного межсетевого экрана, введите эту команду в терминале:
$ sudo iptables --version
Чтобы остановить или запустить экран
$ sudo service ufw stop
$ sudo service ufw start
Чтобы вывести список установленных правил:
$ sudo iptables -S
4. Установка правил доступа к PostgreSQL серверу через брандмауэр iptables:
Для начала устанавливаем разрешения для IP
$ iptables -P INPUT ACCEPT
$ iptables -P FORWARD ACCEPT
$ iptables -P OUTPUT ACCEPT
$ iptables -A INPUT -i lo -j ACCEPT
оставляем доступ 1С серверу и нам для администрирования по IP адресам.
а) разрешаем доступ для сервера 1с (если он на другом сервере)
$ iptables -A INPUT -s IP_адрес_1С_сервера/32 -j ACCEPT
б) разрешаем для доступа себе (как то же мы должны подключаться к PostgreSQL Серверу)
$ iptables -A INPUT -s Наш_IP_адрес/32 -j ACCEPT
потом запрещаем подключения к постгрес извне остальным (порт Postgres 5432)
$ iptables -A INPUT -p tcp -m tcp --dport 5432 -j DROP
5. Закрываем доступ по SSH из вне
Теперь закрываем порт ssh (22).
$ -A INPUT -p tcp -m tcp --dport 22 -j DROP
и проверяем
$ iptables -S
6. Сохраняем установленные правила брандмауэра iptables
Запомните, что любые изменения, вносимые с помощью команды iptables
исчезнут после перезагрузки сервера, если их не сохранить. 😉
Первым делом надо установить сохранялку:
$ apt install netfilter-persistent iptables-persistent
далее после добавления правил – сохраним их в наш межсетевой экран
$ netfilter-persistent save
Осталось проверить на практике сможем ли мы подключиться к нашему серверу из сети с “чужого” IP например попробуйте подключиться напрямую к серверу PostgreSQl программой PGAdmin, ну и для очистки совести попробуйте к этому же серверу подключиться по SSH с чужого IP. Надеюсь результат Вас порадует. А попрактиковаться можно например на виртуалке.
Спасибо за внимание!
Один Ответ
Спасибо за информацию, я нашел в ней ответ на свой вопрос.