Linux账号和登陆安全

    安全是IT行业一个老生常谈的话题了,最近的“棱镜门”时间映射出了不少安全问题,处理好信息安全问题已变得刻不容缓。所以一名运维人员,必须了解一些安全运维准则,同时,要保护本身所负责的业务,首先要站在攻击者的角度思考问题,才能修补任何潜在的威胁和漏洞。linux

    账号安全是系统安全的第一道屏障,也是系统安全的核心,保证登陆账号的安全,在必定程度上能够提升服务器的安全级别,ios

1、删除特殊的用户和用户组

    Linux提供了各类不通角色的系统账号,在系统安装完成后,默认会安装不少没必要要的用户和用户组,若是不须要某些用户或用户组,应当即删除它们,由于账号越多,系统就越不安全,从而极可能被黑客利用,威胁服务器的安全。web

    Linux系统中能够删除的默认用户和用户组大体以下:shell

  • cat /etc/passwd(查看全部用户)
  • 可删除的用户:adm、lp、sync、shutdown、halt、news、uucp、operator、games、gopher
  • cat /etc/group(查看全部用户组)
  • 可删除的用户组:adm、lp、news、uucp、games、dip、pppusers、popusers、slipusers

    删除的方法很简单,下面举例说明删除系统没必要要的用户使用以下命令:数据库

[root@iZm5e1zj4mlgc24i43avl0Z ~]# userdel adm
[root@iZm5e1zj4mlgc24i43avl0Z ~]# userdel lp
[root@iZm5e1zj4mlgc24i43avl0Z ~]# userdel sync
.......

    删除系统没必要要的用户组使用以下命令:        apache

[root@iZm5e1zj4mlgc24i43avl0Z ~]# groupdel games
[root@iZm5e1zj4mlgc24i43avl0Z ~]# groupdel dip
[root@iZm5e1zj4mlgc24i43avl0Z ~]# groupdel pppusers
.......

    有些时间,某些用户仅仅用做进程调用或者用户组调用,并不须要登陆功能,此时能够禁止这些用户登陆系统的躬耕,例如要禁止nagios用户的登陆功能,能够执行以下命令:vim

        [root@iZm5e1zj4mlgc24i43avl0Z ~]# usermod -s /sbin/nologin nagios安全

    其实要删除那些用户和用户组,并无固定要求,能够根据服务器的用途来决定,若是服务器是用于web应用的,那么系统默认的apache用户和用户组就无需删除;而若是服务器是用于数据库应用的,那么建议删除系统默认的apache用户和用户组。服务器

    2、密码安全策略

    在Linux下,远程登陆系统有两种认证方式:密码认证和密钥认证。密码认证方式是传统的安全策略,对于密码的设置,比较普通的说话是:至少6个字符以上,密码要包含数字字母下划线特殊符号等。运维

    密钥认证是一种新型的认证方式,公用密钥存储在远程服务器上,专用密钥保存在本地,当须要登陆系统時,经过本地专用密钥和远程服务器的公钥进行配对认证,若是认证成功,就能够成功登陆系统。这种方式避免了密钥认证的方式进入系统。所以,在Linux下推荐用密钥认证方式登陆系统,这样就能够抛弃密码认证登陆系统的弊端。

    接下来详细描述经过密钥认证方式远程登陆Linux服务器的实现方法。这里的环境是Centos七、OpenSSH6.六、Xshell,操做以下:

    #ssh-keygen -t rsa

    

    执行上面命令后会在家(/home/当前用户,root用户会在/root下建立)位置下建立.ssh文件而且生成两个文件。
    -rw-------. 1 xxxxx xxxxx 176 8月   1 02:52 id_rsa
    -rw-r--r--. 1 xxxxx xxxxx 409 8月   1 02:52 id_rsa.pub

    讲id_rsa.pub名称修改成authorized_keys

    cat id_rsa.pub >> authorized_keys

    修改文件权限

    chmod 700 .ssh
    chmod 600 authorized_keys

    修改OpenSSH配置文件

    vim /etc/ssh/sshd_config

#禁用root帐户登陆,非必要,但为了安全性,请配置
PermitRootLogin no

# 是否让 sshd 去检查用户家目录或相关档案的权限数据,
# 这是为了担忧使用者将某些重要档案的权限设错,可能会致使一些问题所致。
# 例如使用者的 ~.ssh/ 权限设错时,某些特殊状况下会不准用户登入
StrictModes no

# 是否容许用户自行使用成对的密钥系统进行登入行为,仅针对 version 2。
# 至于自制的公钥数据就放置于用户家目录下的 .ssh/authorized_keys 内
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile     .ssh/authorized_keys

#有了证书登陆了,就禁用密码登陆吧,安全要紧
PasswordAuthentication no

    保存退出,而且重启OpenSSH

    systemctl restart sshd.service

    把刚生成两个文件中的id_rsa拷贝到客户端,进行登陆

    

    在生成密钥的时候输入的什么密码,这里的密码就输入什么,登陆后就能够经过su root来对root进行切换了。

    在安装的过程遇到过不少坑,什么该用户未注册、拒绝登陆。其实归根结底就是你配置文件的错误。密钥生成有不少种,也能够经过Xshell进行生成密钥,而后将生成后的公钥传到linux上。

 

    

    在此不过多介绍,留心的能够去亲自感觉下这个过程。

3、防火墙

    防火墙的知识够用就能够,这里把一些经常使用的命令粘贴过来,供你们参考

systemctl stop firewalld
systemctl mask firewalld

yum -y install iptables-services

systemctl enable iptables

systemctl start iptables

iptables -F INPUT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

service iptables save

systemctl restart iptables.service
相关文章
相关标签/搜索