1、关闭不必要的系统服务
Centos 6方法:如 chkconfig xinetd off 关闭telnet服务
chkconfig vsftpd off 关闭ftp服务
关闭后,使用命令chkconfig –list 来查看是否关闭
Centos 7 方法:
关闭25端口,一般为postfix,这是一个邮件服务端口,如果用不到邮件服务,可以关闭
1、 [root@host-172-21-185-13 ~]# netstat -lntup | grep master
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2066/master
tcp6 0 0 ::1:25 :::* LISTEN 2066/master
2、现在知道它的端口对应程序为master.但是它具体是什么程序呢?
locate master | grep '/master$' 发现路径是/usr/libexec/postfix/master
3、systemctl status postfix 查看postfix服务的状态
systemctl stop postfix 关闭postfix服务
systemctl disable postfix 开机关闭postfix服务
2、更改SSH默认端口
方法:打开sshd_config文件,找到这行:#Port 22 把22修改为其他没有占用的端口,并重启sshd服务
注意:修改ssh端口,最好是提前把telnet打开并连接上,防止修改后远程连接不上服务器就悲剧了,修改后没问题了,再关闭telnet服务
3、禁止root用户远程ssh登录
方法:建普通账户,useradd username
如:1、创建账号
useradd guest
passwd guest
2、给账号权限
修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
guest ALL=(ALL) ALL
3、将guest添加到wheel组中
编辑 su 文件(vi /etc/pam.d/su),在开头添加下面两行:
auth sufficient pam_rootok.so 和
auth required pam_wheel.so group=wheel
这表明只有 wheel 组的成员可以使用 su 命令成为 root 用户
添加方法为:
usermod -G wheel guest
查看是否添加成功:
groups guest
普通账户添加成功后,通过普通账户来登录服务器,把root账户登录禁止
打开 sshd_config ,找到下面这行:
#PermitRootLogin yes
更改为:
PermitRootLogin no
然后保存文件,重启sshd守护进程使改动生效。执行下面命令即可:
sudo /etc/init.d/sshd restart
注意:一定要先建立普通账户,测试普通账户能切换到root账户后,再禁止root账户登录,否则普通账户没登录,root也禁止了,那就悲剧了
4、限制用户使用SU命令切换root
编辑 su 文件(vi /etc/pam.d/su),在开头添加下面两行:
auth sufficient pam_rootok.so 和
auth required pam_wheel.so group=wheel
这表明只有 wheel 组的成员可以使用 su 命令成为 root 用户
添加方法为:
usermod -G wheel username
查看是否添加成功:
groups username
5、密码复杂度策略
/etc/pam.d/system-auth文件中,增加内容
password requisite pam_cracklib.so ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
(注:ucredit:大写字母个数;lcredit:小写字母个数;dcredit:数字个数;ocredit:特殊字符个数 )
6、检查是否配置账户认证失败次数限制(最大值:6)
编辑/etc/pam.d/system-auth文件
配置:
auth required pam_tally2.so deny=5 unlock_time=600
account required pam_tally2.so
注意pam_tally2.so模块的名字,以前用的是pam_tally.so,现在的系统中没有pam_tally.so模块,千万不要配置在文件中,这样会造成普通用户sudo -I 切不到root下
查看系统中是不是有这个模块,模块名可以在目录/lib/security/或/lib64/security/中找到
如果锁定,需要登录到root账户下,pam_tally2 -u zxadmin 查看zxadmin用户的锁定次数 ;pam_tally2 -u zxadmin -r 来解锁
7、检查密码重复使用次数限制
编辑/etc/pam.d/system-auth文件,
修改设置如下
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok remember=5
补充操作说明
只需在password sufficient这一行加上remember=5即可
8、密码相关配置(下面的这几项都是针对普通密码的?)
vi /etc/login.defs (修改如下)
PASS_MAX_DAYS 90 #密码最长过期天数
PASS_MIN_DAYS 0 #密码最小过期天数
PASS_MIN_LEN 8 #密码最小长度
PASS_WARN_AGE 7 #密码过期警告天数
9、检查是否存在空口令账号
cat /etc/shadow | awk 'BEGIN{FS=":";ORS=","}{if($2=="")print$1};'|more
如果命令能过滤出来空口令账号,一定要删除空口令账号
10、检查历史命令设置
编辑文件/etc/profile,
修改HISTSIZE配置为100
HISTSIZE=100
11、检查是否设置命令行界面超时退出
vi /etc/profile (增加如下)
export TMOUT=600 (单位:秒)
12、配置时间同步ntp
客户端安装ntpdate
yum -y install ntpdate
但这样的同步,只是强制性的将系统时间设置为ntp服务器时间。如果CPU Tick有问题,只是治标不治本。所以,一般配合cron命令,来进行定期同步设置。比如,在crontab中添加:
crontab -e
0 5 * * * /usr/sbin/ntpdate ntp1.aliyun.com
13、关闭selinux
编辑vim /etc/sysconfig/selinux
设置SELINUX=disabled
14、禁止同时按下ctrl+alt+del 重启
编辑/etc/init/control-alt-delete.conf
找到
start on control-alt-delete
更改为
#start on control-alt-delete
15、umask设置,涉及四个地方修改
在文件/etc/csh.login中设置 umask 077或UMASK 077
在最后添加一行 umask=077
在文件/etc/profile中设置umask 077或UMASK 077
在文件/etc/csh.cshrc中设置 umask 077或UMASK 077
检查文件/etc/bashrc(或/etc/bash.bashrc)中设置 umask 077或UMASK 077
16、ssh登录警告设置
1、执行如下命令创建ssh banner信息文件:
#touch /etc/ssh_banner
#chown bin:bin /etc/ssh_banner
#chmod 644 /etc/ssh_banner
#echo " Authorized only. All activity will be monitored and reported " > /etc/ssh_banner
可根据实际需要修改该文件的内容。
2. 修改/etc/ssh/sshd_config文件,添加如下行:
Banner /etc/ssh_banner
3.重启sshd服务:
#/etc/init.d/sshd restart
17、禁止root远程telnet登录。
编辑 /etc/pam.d/login文件,配置auth required pam_securetty.so
18、禁用telnet服务
利用命令rpm -qa |grep telnet查看是否安装telnet 和telnet server 如果安装的话
1、编辑/etc/xinetd.d/telnet, 修改 disable = yes。
2.激活xinetd服务。命令如下:
# service xinetd restart
如果没安装则说明禁用telnet服务