linux服务器安全设置

一.添加用户

为web项目添加用户

1.添加用户组
  1. groupadd web
2.添加用户
  1. useradd -g web dev
  • web为用户组名
  • dev替换成自己想要的用户名即可
3.设置用户目录权限
  1. chmod -R 755 /home/dev
4.将某些账号加入到可以有sudo权限的行列中.

第一步:给/etc/sudoers文件添加可写权限(默认是没有写的权限)

  1. chmod u+w /etc/sudoers

第二步:将需要sudo权限写入到/etc/sudoers文件中

  1. dev ALL=(ALL) ALL

如果不想每次sudo时输入密码,把上面的内容替换成以下内容即可:

  1. dev ALL=(ALL) NOPASSWD: ALL

二.关闭密码登录

1.客户端生成公钥和私钥
  1. ssh-keygen -t rsa -C "shixinke"
  • 将shixinke换成自己想要备注信息即可
  • 运行以下命令会生成两个文件
  • id_rsa : 私钥文件
  • id_rsa.pub : 公钥文件
2.将公钥文件放于服务器中

复制公钥id_rsa.pub的内容放于服务器的用户目录下的.ssh/authorized_keys文件中.

  1. cd /home/dev/.ssh
  2. vim authorized_keys

注:

  • 多个公钥放一个文件即可,每个公钥之间换行即可
3.设置通过密钥登录

修改/etc/ssh/sshd_config,设置以下内容:

  1. RSAAuthentication yes
  2. PubkeyAuthentication yes
  3. AuthorizedKeysFile %h/.ssh/authorized_keys

保存以上内容后,请重启ssh服务:

对于redhat/CentOS系统:

  1. service sshd restart

针对debian/ubuntu系统:

  1. sudo /etc/init.d/ssh restart

客户端验证通过密钥登录,验证是否登录成功.

4.关闭密码登录

如果上一步骤通过密钥可以登录成功,可以进行本步骤,否则,请不要执行本步骤的命令.

修改/etc/ssh/sshd_config,设置以下内容:

  1. PasswordAuthentication no

然后重启ssh服务,验证通过密码是否不能登录

三.关闭root登录

关闭root登录前,请确保已经有其他账号具有root权限,否则,请将某些账号加入到sudo权限中.

1.在/etc/ssh/sshd_config配置中禁用root登录
  1. PermitRootLogin no

四.关闭其他主机ping本主机的配置

有两种方式可关闭ping,一种是修改内核参数,另外一种,修改防火墙配置,建议使用修改防火墙配置的方式

1.安装防火墙服务

注:这是针对CentOS 7+的系统,从7版本开始默认用的是firewalld,这个是基于iptables的,虽然有iptables的核心,但是iptables的服务是没安装的。所以只要先关闭firewalld服务,再安装iptables服务即可。

(1)、关闭firewall
  1. systemctl stop firewalld.service #停止firewall
  2. systemctl disable firewalld.service #禁止firewall开机启动
(2)、安装iptables防火墙
  1. yum install -y iptables-services #安装iptables
2.配置关闭ping
  1. vim /etc/sysconfig/iptables #编辑防火墙配置文件

开启ping:

  1. iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
  2. iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

关闭ping

  1. iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP
3、重启防火墙
  1. systemctl restart iptables.service #最后重启防火墙使配置生效
  2. systemctl enable iptables.service #设置防火墙开机启动