SELinux (Security-Enhanced Linux) je bezpečnostní modul Linuxu, který poskytuje mechanismus pro podporu správy přístupových práv bezpečnostní politiky. Výchozí nastavení SELinux na distribuci CentOS 7 může omezit přístup k databázovému serveru PostgreSQL z vzdálených počítačů. Pro umožnění vzdáleného přístupu k PostgreSQL je třeba provést několik konfiguračních kroků, které zajistí bezpečné připojení při zachování bezpečnostních vlastností SELinux.
Předpoklady
- Nainstalovaný a běžící CentOS 7
- Nainstalovaný PostgreSQL server
- Základní znalost práce s terminálem a SELinux
1. Zkontrolování stavu SELinux
Prvním krokem je zjistit, zda je SELinux povolen a v jakém režimu pracuje. Toto lze zjistit pomocí příkazu:
getenforce
Pokud příkaz vrátí Enforcing
, SELinux je aktivní a vynucuje bezpečnostní politiky. Permissive
znamená, že SELinux loguje porušení politik, ale neblokuje je. Disabled
znamená, že SELinux je vypnutý.
2. Konfigurace PostgreSQL pro vzdálený přístup
Před změnami v SELinux je nutné zajistit, že PostgreSQL umožňuje vzdálené připojení. V souboru postgresql.conf
, který se obvykle nachází v /var/lib/pgsql/data/
, nastavte:
listen_addresses = '*'
V souboru pg_hba.conf
přidejte pravidla pro vzdálený přístup, například:
host all all 0.0.0.0/0 md5
3. Nastavení SELinux pro povolení vzdálených připojení
SELinux může potřebovat úpravu pro povolení vzdálených připojení k PostgreSQL. Následující kroky ukazují, jak toho dosáhnout:
-
Povolení síťové komunikace pro PostgreSQL
SELinux musí dovolit PostgreSQL naslouchat na síťovém rozhraní. Použijte příkaz:
setsebool -P postgresql_can_network_connect_db 1
-
Nastavení správných kontextů SELinux na soubory PostgreSQL
Zajistěte, že soubory databáze mají správný SELinux kontext:
semanage fcontext -a -t postgresql_db_t "/var/lib/pgsql/data(/.*)?"
restorecon -Rv /var/lib/pgsql/data
4. Restartování služeb
Po konfiguraci SELinux a PostgreSQL je nutné restartovat službu PostgreSQL, aby se změny projevily:
systemctl restart postgresql
Správné nastavení SELinux a PostgreSQL je klíčové pro zabezpečení a správnou funkčnost vzdálených připojení k databázovému serveru. Dodržením výše uvedených kroků můžete umožnit bezpečné vzdálené přístupy k vaší instanci PostgreSQL na CentOS 7, přičemž zachováte bezpečnostní politiky poskytované SELinux. Je důležité si uvědomit, že každá změna v konfiguraci SELinux by měla být provedena s ohledem na bezpečnostní důsledky pro celý systém.