Linux 系统安全加固需要注意的内容

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服务

posted @ 2020-07-16 11:35  辉当凌绝顶  阅读(2329)  评论(0编辑  收藏  举报