前言 在Linux中最小权限和最少服务才能构成最大的安全,所以在配置服务器时把不用的服务关闭、系统权限设置到最小化才能最大限度的保证安全。
用户安全
去掉无用的用户
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 cp /etc/passwd /etc/passwd.backupvi /etc/passwd cp /etc/group /etc/group.backupvi /etc/group
添加一个sudo账户
因为 root 用户权限过于变态,操作不当甚至可能清除服务器所有的数据。所以建议平时使用受限制的sudo帐户而不是root账户,需要权限时再使用sudo命令提升权限,以便于管理。
1 2 3 4 5 6 7 8 9 10 11 12 yum install sudo useradd UserName passwd UserName usermod -aG wheel UserName apt-get install sudo adduser UserName passwd UserName adduser UserName sudo
权限安全
sudo用户的权限
1 2 3 4 5 6 7 8 9 10 11 12 13 14 UserName ALL =(ALL)ALL %UserGroup ALL =(ALL)NOPASSWD: ALL %users ALL=/sbin/poweroff,/sbin/reboot Defaults timestamp_timeout=20
禁止非root用户执行/etc/rc.d/{init.d}下的系统命令
1 2 3 4 5 chmod -R 700 /etc/init.d/*chmod -R 700 /etc/rc.d/init.d/*chmod -R 777 /etc/init.d/* chmod -R 777 /etc/rc.d/init.d/*
给下面的文件加上不可更改属性,从而防止非授权用户获得权限
注意:执行以下权限修改之后,就无法添加删除用户了。 如果需要添加删除用户,需要先取消权限锁定设置,等添加删除用户完成之后,再执行下面的操作
1 2 3 4 5 6 7 8 9 chattr +i /etc/passwd chattr +i /etc/shadow chattr +i /etc/group chattr +i /etc/gshadow chattr +i /etc/services chattr -i /etc/passwd lsattr /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/services
网络安全
SSH安全配置
1 2 3 4 5 6 7 8 9 10 11 cd ~/.sshssh-keygen -t rsa mv id_rsa.pub authorized_keys rm id_rsa sudo vi /etc/ssh/sshd_configPort 2222 PasswordAuthentication no PubkeyAuthentication yes PermitRootLogin no PermitEmptyPasswords no
配置防火墙
iptables:Linux内核的包过滤框架,默认情况下iptables包含在大多数 Linux 发行版中。 firewall:CentOS/Fedora系列发行版的iptables控制器。 U F W : Debian/Ubuntu提供的一个iptables前端。
1 2 3 4 5 6 7 8 9 10 11 12 sudo apt-get install ufw sudo ufw allow http sudo ufw allow https sudo ufw allow ssh sudo ufw deny stmp sudo ufw deny from 8.8.8.8 sudo ufw enable
禁止服务器被ping
1 2 3 vi /etc/rc.d/rc.local echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
其他安全
隐藏服务器系统信息
默认情况下,当你登陆后它会告诉你该linux发行版的名称、版本、内核版本、服务器的名称。 为了不让这些信息泄露出来,执行下面的操作可以让它只显示一个 “login:” 提示符。
1 2 3 4 5 mv /etc/issue /etc/issuebakmv /etc/issue.net /etc/issue.netbak