LNMP是指Linux、Nginx、MySQL和PHP的組合,常用于搭建網站服務器。在Ubuntu上設置LNMP環境并確保安全性的步驟如下:
sudo apt update
sudo apt install nginx
sudo systemctl start nginx
sudo systemctl enable nginx
sudo apt install mysql-server
在安裝過程中,系統會提示設置MySQL的root密碼,請務必設置一個強密碼。
sudo systemctl start mysql
sudo systemctl enable mysql
sudo apt install php-fpm php-mysql
編輯Nginx配置文件:
sudo nano /etc/nginx/sites-available/default
在server
塊中添加以下內容:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
保存并關閉文件,然后重新加載Nginx配置:
sudo systemctl reload nginx
在/var/www/html
目錄下創建一個PHP測試文件:
sudo nano /var/www/html/info.php
在文件中添加以下內容:
<?php
phpinfo();
?>
保存并關閉文件,然后在瀏覽器中訪問服務器的IP地址,如果能夠正常顯示PHP信息,則安裝成功。
編輯/etc/ssh/sshd_config
文件,修改SSH端口為一個非標準端口,以減少被自動掃描的風險。
Port 2222
保存并退出,然后重啟SSH服務:
sudo systemctl restart ssh
使用ufw
允許必要的端口,如SSH(修改默認的22端口)和HTTP(80端口):
sudo ufw allow 2222/tcp
sudo ufw allow 80/tcp
sudo ufw enable
確保所有用戶賬戶都設置了復雜且難以猜測的密碼,并定期更換。
使用unattended-upgrades
包實現系統的自動更新,并定期手動運行:
sudo apt update && sudo apt upgrade
編輯/etc/ssh/sshd_config
文件,將PermitRootLogin
設置為no
,禁止直接通過SSH登錄root賬戶。
PermitRootLogin no
確保PubkeyAuthentication
設置為yes
,使用密鑰對進行身份驗證。
防止暴力破解攻擊,通過編輯/etc/fail2ban/jail.conf
文件進行配置。
通過以上步驟,你可以在Ubuntu上成功搭建LNMP環境,并進行基本的安全設置。但請注意,安全是一個持續的過程,需要定期更新、審計和加固。