Een veilige installatie van WordPress vereist voor het installeren of bijwerken van plugins, themes of de WordPress Core inloggegevens van de ssh-beheersgebruiker. Het is mogelijk om deze gegevens op te slaan in de WordPress-configuratie waardoor het uitvoeren van updates zonder toegenomen administratielast plaats kan vinden.
WordPress biedt twee mogelijkheden om de gegevens van de beheersgebruiker op te slaan in het WordPress configuratiebestand.
Voor- en nadelen
Gebruikersnaam en wachtwoord opnemen in wp-config.php | |
---|---|
Voordelen: | Installaties en updates uitvoeren zonder extra onderbreking |
SSH-wachtwoord hoeft niet bekend te zijn bij WordPress-gebruiker | |
Mogelijkheid gebruiker per site te specificeren | |
Nadelen: | Wachtwoord staat plain-text op de server |
Bij applicatielek kan wachtwoord worden buitgemaakt | |
Gebruiker kan wachtwoord opzoeken | |
SSH key-based authenticatie configureren in wp-config.php | |
Voordelen: | Installaties en updates uitvoeren zonder extra onderbreking |
SSH-wachtwoord hoeft niet bekend te zijn bij WordPress-gebruiker | |
WordPress-gebruiker kan ssh-wachtwoord niet inzien | |
Nadelen: | WordPress-gebruiker kan ongecontroleerde plugins of themes installeren |
Bij een authenticatiebug kan toegang worden verkregen tot applicatiecode | |
Instellen van gegevens ligt gevoeliger |
Instellen
Gebruikersnaam en wachtwoord opnemen in wp-config.php
- Open het WordPress configuratiebestand wp-config.php in een geschikte teksteditor.
- Onder de Database-settings (eindigend met “define(‘DB_COLLATE’, ”);“), voeg de volgende regels toe aan het bestand:
/** SSH User info - used for installing plugins and themes, and updates */ define('FTP_USER','gebruikersnaam'); define('FTP_PASS','wachtwoord'); define('FTP_HOST','127.0.0.1:22'); define('FS_METHOD', 'ssh2');
- Sla de wijzigingen op en test de werking
SSH key-based authenticatie configureren in wp-config.php
- Zorg dat uw server voorzien is van een eigen SSH-key zonder passphrase.
- Maak een kopie van de ssh public- en private key in een logische locatie
(bijvoorbeeld: /data/www/website.nl/ssh). - Voeg de ssh key toe aan de authorized keys van de ssh-gebruiker waarbij enkel lokale verbindingen worden toegestaan:
echo "from=\"127.0.0.1\" $(cat /data/www/website.nl/ssh/public_key.pub)" >> ~/.ssh/authorized_keys
- Zorg dat de ssh keys enkel leesbaar en schrijfbaar zijn voor het php proces
(bijvoorbeeld: chown -R www-data:www-data ssh of via een ticket in TrueCare) - Open het WordPress configuratiebestand wp-config.php in een geschikte teksteditor.
- Onder de Database-settings (eindigend met “define(‘DB_COLLATE’, ”);“), voeg de volgende regels toe aan het bestand:
define('FTP_PUBKEY','/data/www/website.nl/ssh/public_key.pub'); define('FTP_PRIKEY','/data/www/website.nl/ssh/private_key'); define('FTP_USER','gebruikersnaam'); define('FTP_PASS',''); define('FTP_HOST','127.0.0.1:22'); define('FS_METHOD', 'ssh2');
- Sla de wijzigingen op en test de werking
Beveiligingsmaatregelen
- Plaats het wp-config.php bestand één map hoger dan de document root.
Bijvoorbeeld:- Document root: /data/www/website.nl/public_html/
- wp-config: /data/www/website.nl/wp-config.php
- Zorg dat wp-config.php niet benaderbaar is via de browser.
Lees: Blokkeer of beperk toegang tot bestanden op uw server.