为了确保Ubuntu Apache2服务器的安全,可以采取以下措施:
定期更新系统和软件包:
使用以下命令更新系统和安装安全补丁:
sudo apt update
sudo apt upgrade
配置防火墙:
使用UFW(Uncomplicated Firewall)限制对系统的访问,只允许必要的端口和服务,如SSH和HTTP:
sudo ufw allow ssh
sudo ufw enable
使用SSH密钥认证:
禁用密码认证,使用SSH密钥对进行身份验证,以提高安全性。生成SSH密钥对(如果还没有):
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
将公钥复制到服务器的authorized_keys文件中:
ssh-copy-id user@server_ip
编辑/etc/ssh/sshd_config文件,禁用密码认证:
sudo nano /etc/ssh/sshd_config
找到并修改以下行:
PasswordAuthentication no
重启SSH服务以使更改生效:
sudo systemctl restart sshd
禁用未使用的服务和Apache模块:
检查服务器上所有正在运行的服务和开放的端口,禁用不需要的服务。例如,禁用不必要的Apache模块:
cat /etc/apache2/mods-enabled/* | grep -i loadmodule
开启模块:
a2enmod module_name
关闭模块:
a2dismod module_name
防止信息泄露:
隐藏Apache服务器的版本信息和默认页面:
vi /etc/apache2/conf-enabled/security.conf
搜索ServerTokens和ServerSignature字符,然后对应修改:
ServerTokens Prod
ServerSignature Off
重启Apache:
sudo service apache2 restart
限制用户权限:
避免使用root账户进行日常操作,减少安全风险。创建新的用户,并在Apache配置文件中进行指定:
sudo useradd deploy
sudo usermod -a -G deploy deploy
编辑/etc/apache2/envvars文件,设置Apache用户和组:
sudo vi /etc/apache2/envvars
将以下行:
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
保持不变。
启用日志审计:
Apache默认启用了错误日志和访问日志的记录,可看配置文件apache2.conf有无以下内容:
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
配置SELinux(可选):
SELinux是一种强制访问控制(MAC)安全模块,可以进一步增强系统的安全性。安装SELinux:
sudo apt install selinux
启用SELinux:
sudo setenforce 1
通过以上措施,可以显著提高Ubuntu Apache2服务器的安全性。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>