安全是IT行业一个老生常谈的话题了,最近的“棱镜门”时间映射出了不少安全问题,处理好信息安全问题已变得刻不容缓。所以一名运维人员,必须了解一些安全运维准则,同时,要保护本身所负责的业务,首先要站在攻击者的角度思考问题,才能修补任何潜在的威胁和漏洞。linux
账号安全是系统安全的第一道屏障,也是系统安全的核心,保证登陆账号的安全,在必定程度上能够提升服务器的安全级别,ios
Linux提供了各类不通角色的系统账号,在系统安装完成后,默认会安装不少没必要要的用户和用户组,若是不须要某些用户或用户组,应当即删除它们,由于账号越多,系统就越不安全,从而极可能被黑客利用,威胁服务器的安全。web
Linux系统中能够删除的默认用户和用户组大体以下:shell
删除的方法很简单,下面举例说明删除系统没必要要的用户使用以下命令:数据库
[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用户和用户组。服务器
在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