Linux 服务器安全配置攻略
在 Linux 服务器上进行完整的安全配置可以提高服务器的安全性,提供更可靠的服务。下面是一份完整的 Linux 服务器安全配置攻略,可供参考。
1.使用 SSH 登录服务器
在使用 Linux 服务器时,我们应该使用 SSH 命令行工具来登陆服务器。首先,我们需要设置 SSH 访问权限,将不安全的访问方式禁用。
sudo chmod 700 /root/.ssh/
sudo chmod 600 /root/.ssh/authorized_keys
上面的命令将设置 .ssh
目录和 authorized_keys
文件的权限,以确保只有管理员可以访问。
接下来,打开 SSH 配置文件 sshd_config
,修改以下几个参数:
# 禁用 RFC 4251 中的未加密明文传输
Cipher 3des-cbc,aes192-cbc,aes256-cbc,blowfish-cbc
# 禁用 X11 转发,防止攻击者获取服务器权限
X11Forwarding no
# 禁用 root 账户登录,使用 sudo 来执行管理任务
PermitRootLogin no
2.启用防火墙
防火墙是保护服务器的重要组成部分,能够防止攻击者进一步访问服务器。我们可以使用 iptables
命令来启用防火墙:
# 启用默认策略:通过
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
# 清空已有防火墙设置并防止最终受到黑客攻击
iptables -F
iptables -X
iptables -Z
# 所有包默认都拒绝
iptables -P INPUT DROP
iptables -P FORWARD DROP
# 允许已建立的连接通过防火墙
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 允许 HTTP,HTTPS,SSH 的数据包通过防火墙
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
3. 安装 fail2ban
fail2ban 可以监控系统日志,防止攻击者通过 SSH 或其他服务进行暴力破解。我们可以使用以下命令在系统上安装 fail2ban:
sudo apt-get update
sudo apt-get install fail2ban
示例1: 在 DEBIAN 或者 UBUNTU linux 服务器上进行 SSH配置
DEBIAN 或者 UBUNTU linux 服务器默认启用 SSH 服务,我们只需要按照以下步骤进行 SSH 安全配置:
1.打开 /etc/ssh/sshd_config
配置文件
sudo nano /etc/ssh/sshd_config
2.编辑以下参数:
# 禁用禁止的密码
PasswordAuthentication no
# 禁用 root 账户登录,使用 sudo 来执行管理任务
PermitRootLogin no
# 允许 SSH 登录时只使用 PublicKey 动态口令
ChallengeResponseAuthentication yes
UsePAM yes
AuthenticationMethods publickey
PubkeyAuthentication yes
# 调整 SSH 登录尝试次数和时间间隔
MaxAuthTries 2
MaxSessions 2
MaxStartups 2:30:10
3.重启 SSH 服务
sudo systemctl restart sshd
示例2: 在 CentOS linux 服务器上进行安全配置
对于 CentOS 服务器,我们需要禁用所有不必要的服务和端口,加强防火墙以及时更新操作系统软件。以下是 CentOS 服务器操作步骤:
1.禁用可能存在漏洞的服务
sudo systemctl stop rpcbind.service
sudo systemctl disable rpcbind.service
sudo systemctl stop nfs.service
sudo systemctl disable nfs.service
sudo systemctl stop dhcpd.service
sudo systemctl disable dhcpd.service
sudo systemctl stop named.service
sudo systemctl disable named.service
2.禁用所有不必要的端口
sudo firewall-cmd --zone=public --list-ports
sudo firewall-cmd --zone=public --remove-port=111/tcp --permanent
sudo firewall-cmd --zone=public --remove-port=5432/tcp --permanent
sudo firewall-cmd --zone=public --remove-port=2049/tcp --permanent
sudo firewall-cmd --zone=public --remove-port=6443/tcp --permanent
sudo firewall-cmd --zone=public --remove-port=8443/tcp --permanent
sudo firewall-cmd --zone=public --remove-port=5473/tcp --permanent
sudo firewall-cmd --reload
3.加强防火墙
# 显示防火墙默认规则
sudo firewall-cmd --list-all
# 允许所有 ICMP 响应
sudo firewall-cmd --permanent --add-icmp-block-inversion
sudo firewall-cmd --permanent --add icmp-block-inversion
sudo firewall-cmd --permanent --add icmp-block-inversion --exception \
port-unreachable
sudo firewall-cmd --permanent --add icmp-block-inversion --exception \
time-exceeded
sudo firewall-cmd --permanent --add icmp-block-inversion --exception \
protocol-unreachable
# 将非本地来源地址的 TCP 和 UDP 数据包丢弃
sudo firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 \
-m conntrack --ctstate INVALID -j DROP
sudo firewall-cmd --permanent --direct --add-rule ipv6 filter INPUT 0 \
-m conntrack --ctstate INVALID -j DROP
sudo firewall-cmd --reload
4.定期更新操作系统软件,并安装补丁
sudo yum update -y
结论
通过完整的 Linux 服务器安全配置,我们可以防止攻击者入侵服务器,提高服务器的安全性并提供更稳定的服务。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Linux 服务器安全配置 - Python技术站