Linux VPS安全配置指南
卡尔云官网
www.kaeryun.com
在Linux虚拟专用服务器(VPS)上部署服务器时,安全配置是确保系统安全的第一道防线,以下将从多个方面详细说明如何配置一个安全的Linux VPS环境。
启用SSH认证
SSH(安全的HTTP通信)是Linux系统中最常用的远程登录协议,通过启用SSH认证,可以防止未授权的用户连接到服务器。
sudo apt update sudo apt upgrade -y
在终端中输入上述命令后,系统会自动安装并启用SSH认证。
配置SSM代理
为了防止未授权的用户进行大量连接攻击(如 brute force攻击),可以配置SSM(SSH代理管理)。
sudo apt install ssm sudo systemctl enable ssm sudo systemctl start ssm sudo systemctl seten-force 1
启用SSM后,用户只能通过SSH代理登录,不能直接使用用户名密码登录。
配置防火墙
防火墙是防止未经授权的网络访问的重要工具,在Linux VPS上,防火墙可以限制用户的网络连接。
sudo nano /etc/sysctl.conf
打开sysctl.conf文件后,添加以下内容:
firewall.cu restrictive=1
firewall.cu dropunauth=1
保存并退出编辑器。
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
启用IP_forward,防止未授权的流量被转发。
配置文件权限
默认情况下,Linux VPS的文件权限可能不够安全,建议将所有文件的权限设置为0755。
sudo chown -R web:web /var/www/html sudo chown -R web:web /var/www sudo chown -R web:web /var/log sudo chown -R web:web /var/log /var/log/
确保root用户的权限足够安全。
sudo chown -R root:web root sudo chmod -R 0755 /var/www/html/
数据库安全配置
如果VPS上运行一个数据库服务器(如MySQL、PostgreSQL等),需要特别注意数据库的安全性。
sudo apt install mysql mysql-client sudo systemctl enable mysql sudo systemctl start mysql sudo systemctl seten-force 1
配置MySQL使用SSL:
sudo mysql -u root -p mysql> set global myisam_defauld_key = 0; mysql> set global collation Collation; mysql> set global default character set = utf8mb4_unicode_ci; mysql> exit;
定期备份数据库:
sudo sh -c "mysqldump -u root -p root -e 'GRANT ALL PRIVILEGES ON DATABASE database_name'"
用户管理
限制root用户的权限,只允许执行必要的任务。
sudo chown -R root:web root sudo chmod -R 0755 /var/www/html/ sudo chmod -R 0755 /var/www/html/index.php
创建单独的用户和组:
sudo useradd -m webuser sudo useradd -m ftpuser sudo chown -R webuser:webuser /var/www/html sudo chown -R ftpuser:ftpuser /var/www/html sudo chmod -R 0755 /var/www/html/index.php
配置Web服务器
如果使用Apache或Nginx作为Web服务器,需要特别注意安全配置。
配置Apache:
sudo nano /etc/apache2/ports.conf
Listen 80
Port 80
Root /var/www/html
Error_log /var/log/apache2/error.log
配置SSL:
sudo nano /etc/apache2/conf/httpd.conf
SSL ON
SSL ServerName example.com
SSL UseServerCertificate On
SSL VerifyCertificate Off
SSL CipherList ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-aes128-ECDSA-A SHA256
SSL Keyfile /etc/apache2/ssl/rsa.key
SSL Certificate /etc/apache2/ssl/rsa.crt
监控系统状态
定期检查防火墙状态和用户活动。
sudo tail -fZ /var/log/sudo.log
定期备份数据
备份数据是防止数据丢失的重要措施。
sudo sh -c "cp /var/www/html/index.php /data/bak/index.php" sudo sh -c "cp /var/log/* /data/bak/log/"
安全审计和日志分析
配置审计日志:
sudo nano /etc/sysctl.conf
-audit log audit.log
-audit user audit.user.log
-audit syslog audit.syslog
保存并退出编辑器。
定期检查日志:
sudo tail -fZ /var/log/audit.log sudo tail -fZ /var/log/audit.user.log sudo tail -fZ /var/log/audit.syslog
通过以上配置,可以显著提高Linux VPS的安全性,定期检查和维护是确保系统长期安全的关键。
卡尔云官网
www.kaeryun.com