Linux帐号和登录安全
2017-08-01 00:00
253 查看
摘要: 《高性能Linux服务器构建实战》
安全是IT行业一个老生常谈的话题了,最近的“棱镜门”时间映射出了很多安全问题,处理好信息安全问题已变得刻不容缓。因此一名运维人员,必须了解一些安全运维准则,同时,要保护自己所负责的业务,首先要站在攻击者的角度思考问题,才能修补任何潜在的威胁和漏洞。
帐号安全是系统安全的第一道屏障,也是系统安全的核心,保证登录帐号的安全,在一定程度上可以提高服务器的安全级别,
Linux系统中可以删除的默认用户和用户组大致如下:
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
删除的方法很简单,下面举例说明删除系统不必要的用户使用如下命令:
删除系统不必要的用户组使用如下命令:
有些时间,某些用户仅仅用作进程调用或者用户组调用,并不需要登录功能,此时可以禁止这些用户登录系统的躬耕,例如要禁止nagios用户的登录功能,可以执行如下命令:
[root@iZm5e1zj4mlgc24i43avl0Z ~]# usermod -s /sbin/nologin nagios
其实要删除那些用户和用户组,并没有固定要求,可以根据服务器的用途来决定,如果服务器是用于web应用的,那么系统默认的apache用户和用户组就无需删除;而如果服务器是用于数据库应用的,那么建议删除系统默认的apache用户和用户组。
密钥认证是一种新型的认证方式,公用密钥存储在远程服务器上,专用密钥保存在本地,当需要登录系统時,通过本地专用密钥和远程服务器的公钥进行配对认证,如果认证成功,就可以成功登录系统。这种方式避免了密钥认证的方式进入系统。因此,在Linux下推荐用密钥认证方式登录系统,这样就可以抛弃密码认证登录系统的弊端。
接下来详细描述通过密钥认证方式远程登录Linux服务器的实现方法。这里的环境是Centos7、OpenSSH6.6、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
保存退出,并且重启OpenSSH
systemctl restart sshd.service
把刚生成两个文件中的id_rsa拷贝到客户端,进行登录
在生成密钥的时候输入的什么密码,这里的密码就输入什么,登录后就可以通过su root来对root进行切换了。
在安装的过程遇到过很多坑,什么该用户未注册、拒绝登录。其实归根结底就是你配置文件的错误。密钥生成有很多种,也可以通过Xshell进行生成密钥,然后将生成后的公钥传到linux上。
在此不过多介绍,留心的可以去亲自感受下这个过程。
三、防火墙
防火墙的知识够用就可以,这里把一些常用的命令粘贴过来,供大家参考
安全是IT行业一个老生常谈的话题了,最近的“棱镜门”时间映射出了很多安全问题,处理好信息安全问题已变得刻不容缓。因此一名运维人员,必须了解一些安全运维准则,同时,要保护自己所负责的业务,首先要站在攻击者的角度思考问题,才能修补任何潜在的威胁和漏洞。
帐号安全是系统安全的第一道屏障,也是系统安全的核心,保证登录帐号的安全,在一定程度上可以提高服务器的安全级别,
一、删除特殊的用户和用户组
Linux提供了各种不通角色的系统帐号,在系统安装完成后,默认会安装很多不必要的用户和用户组,如果不需要某些用户或用户组,应立即删除它们,因为帐号越多,系统就越不安全,从而很可能被黑客利用,威胁服务器的安全。Linux系统中可以删除的默认用户和用户组大致如下:
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 .......
删除系统不必要的用户组使用如下命令:
[root@iZm5e1zj4mlgc24i43avl0Z ~]# groupdel games [root@iZm5e1zj4mlgc24i43avl0Z ~]# groupdel dip [root@iZm5e1zj4mlgc24i43avl0Z ~]# groupdel pppusers .......
有些时间,某些用户仅仅用作进程调用或者用户组调用,并不需要登录功能,此时可以禁止这些用户登录系统的躬耕,例如要禁止nagios用户的登录功能,可以执行如下命令:
[root@iZm5e1zj4mlgc24i43avl0Z ~]# usermod -s /sbin/nologin nagios
其实要删除那些用户和用户组,并没有固定要求,可以根据服务器的用途来决定,如果服务器是用于web应用的,那么系统默认的apache用户和用户组就无需删除;而如果服务器是用于数据库应用的,那么建议删除系统默认的apache用户和用户组。
二、密码安全策略
在Linux下,远程登录系统有两种认证方式:密码认证和密钥认证。密码认证方式是传统的安全策略,对于密码的设置,比较普通的说话是:至少6个字符以上,密码要包含数字、字母、下划线、特殊符号等。密钥认证是一种新型的认证方式,公用密钥存储在远程服务器上,专用密钥保存在本地,当需要登录系统時,通过本地专用密钥和远程服务器的公钥进行配对认证,如果认证成功,就可以成功登录系统。这种方式避免了密钥认证的方式进入系统。因此,在Linux下推荐用密钥认证方式登录系统,这样就可以抛弃密码认证登录系统的弊端。
接下来详细描述通过密钥认证方式远程登录Linux服务器的实现方法。这里的环境是Centos7、OpenSSH6.6、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上。
在此不过多介绍,留心的可以去亲自感受下这个过程。
三、防火墙
防火墙的知识够用就可以,这里把一些常用的命令粘贴过来,供大家参考
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
相关文章推荐
- Linux帐号和登录安全
- Linux用户帐号安全优化
- Linux登录安全及用户操作审计 ,linux下清理日志脚本
- linux安全-擦除登录日志
- Linux 设置SSH安全登录
- Linux安全小命令-限制远程root登录
- windows2008 安全日志出现大量帐号登录失败的解决办法
- Linux用户管理安全宝典:密码防破解与帐号文件保护
- linux安全-禁止密码登录及root登录
- Linux服务器安全之用户密钥认证登录(基于CentOS 7.0系统)
- linux单用户模式需要密码登录的安全机制
- 在Linux下设置最简单的ssh安全自动登录
- linux ssh 安全自动登录
- 定制微型linux实现启用虚拟终端基于帐号密码登录、提供ssh服务,提供Web服务(下)附有命令移植脚本 推荐
- 支付宝发布Linux版安全控件 新增iPhone无控件登录
- 安全运维之:Linux系统账户和登录安全
- Java安全架构____LinuxSSH公钥登录原理
- linux 开启 telnet和ftp 并实现root帐号登录
- linux安全登录之sudo命令
- 安全运维之:Linux系统账户和登录安全(转)