跳到主要内容

Linux基线加固

Linux基线加固

目录

[toc]

Linux系统安全加固方案

检查除root之外的UID为0的用户

(1)配置项描述

检查是否存在除root之外UID为0的用户。

(2)操作步骤

删除除root外的UID为0的用户:
#userdel username

(3)检查方法

执行:
# awk -F: '($3 == 0) { print $1 }' /etc/passwd
返回值应只有root

设置复杂密码

服务器设置大写、小写、特殊字符、数字组成的12-16位的复杂密码 ,也可使用密码生成器自动生成复杂密码,这里给您一个链接参考:https://suijimimashengcheng.51240.com/

echo "root:wgr1TDs2Mnx0XuAv" | chpasswd

==案例:linux命令生成12位随机密码==

[root@test ~]# cat /dev/urandom | tr -dc '[:alnum:]'| head -c12
STT5sSRgE08v[root@test ~]# cat /dev/urandom | tr -dc '[:alnum:]'| head -c12
nL9ovPIgnlEa[root@test ~]#

检查是否存在空密码的帐户

(1)配置项描述

检查是否存在空密码的帐户,非法用户可通过该账户直接登录系统,威胁系统安全。

(2)操作步骤

1、执行:
# awk -F: '( $2 == "" ) { print $1 }' /etc/shadow

2、为帐户设置满足密码复杂度的密码:
# passwd username。

(3)检查方法

执行:
# awk -F: '( $2 == "" ) { print $1 }' /etc/shadow
返回值应为空。

特别注意:

#这里的空密码代表的是用passwd -d 用户后的账户,因为新创建的用户如果不设置密码,那么这个用户是不能远程登录机器的,其他用户也不能登录该用户;
#而用passwd -e 用户命令删除用户密码后,该用户的密码就为空了,虽然次用户也不能远程登录机器,但是其他用户时可以直接登录该用户的
#要注意区分以上2中情况

#测试过程如下:

#创建测试用户pp,并设置密码
[root@centos76 ~]#useradd pp
[root@centos76 ~]#echo "pp:0925" |chpasswd
[root@centos76 ~]#getent shadow pp
pp:$6$kkSYi/VDeIAm$B4TqsqN14hnt/khsIJfjS64Jwv.UYKSlZFwk3nbAPmRRGVGkSS9lajQlKK3J7Rcvn/PBOpv1uyPkDFxYzdXZP.:18655:0:99999:7:::

#正常普通用户之间登录需要知道对方的密码:
[kk@centos76 ~]$su - pp
Password:
-bash: 993: command not found
[pp@centos76 ~]$exit
logout
[kk@centos76 ~]$

#用passwd -d 用户命令删除测试用户pp的密码,并再次测试
[root@centos76 ~]#passwd -d pp
Removing password for user pp.
passwd: Success
[root@centos76 ~]#getent shadow pp
pp::18655:0:99999:7:::
[root@centos76 ~]#

#当测试用户密码为空密码后,其他普通用户时可以直接登录该用户的,这个很危险!
[kk@centos76 ~]$su - pp
Last login: Thu Jan 28 21:38:12 CST 2021 on pts/1
-bash: 993: command not found
[pp@centos76 ~]$

删除与设备运行、维护等工作无关的账号

(1)配置项描述

删除或锁定与设备运行、维护等工作无关的账号。

(2)操作步骤

1、参考配置操作 
删除用户:#userdel username;
锁定用户:
1)修改/etc/shadow 文件,用户名后加*LK* #这个是什么意思??;
2)将/etc/passwd 文件中的 shell 域设置成/bin/false
3)#passwd -l username

只有具备超级用户权限的使用者方可使用,
#passwd -l username 锁定用户

2、补充操作说明需要锁定的用户:listen,gdm,webservd,nobody,nobody4、noaccess。
注:无关的账号主要指测试帐户、共享帐号、长期不用账号(半年以上未用)等

(3)检查方法

1、被删除或锁定的账号无法登录成功;
2、检测操作使用删除或锁定的与工作无关的账号登录系统;
3、需要锁定的用户:listen,gdm,webservd,nobody,nobody4、noaccess

设置口令策略满足复杂度要求和口令生存周期😘

#注意:关于密码复杂度涉及的2个文件如下
/etc/login.defs #口令生存周期



/etc/pam.d/system-auth #密码复杂度
或者
/etc/pam.d/password-auth
或者
/etc/pam.d/common-password

(1)配置项描述

设置口令策略满足复杂度要求和口令生存周期,确保口令具有足够的复杂性,可抵抗穷举攻击。

(2)操作步骤

1、执行备份:
cp -p /etc/login.defs /etc/login.defs_bak
cp -p /etc/pam.d/system-auth /etc/pam.d/system-auth_bak

2、修改策略设置:
第一步:#vi /etc/login.defs # 设置口令生存周期
修改PASS_MAX_DAYS为90、PASS_MIN_LEN为8、PASS_MIN_DAYS为1、PASS_WARN_AGE为7
#备注:
PASS_MAX_DAYS 90 #密码最长过期天数
PASS_MIN_DAYS 1 #密码最小过期天数
PASS_MIN_LEN 8 #密码最小长度
PASS_WARN_AGE 7 #口令失效前多少天开始通知用户修改密码


第二步:#vi /etc/pam.d/system-auth # 设置密码强度
修改或新增随意行(第一行除外):password requisite pam_cracklib.so difok=3 dcredit=-1 lcredit=-1 ucredit=-1 credit=-1

#备注:
difok=3 新密码必需与旧密码不同的位数;
dcredit=-1 #N >= 0:密码中最多有多少个数字;N < 0 密码中最少有多少个数字;(下面一样,-1代表至少有1个字符)
lcredit=-1 小写字母的个数;
ucredit=-1 大写字母的个数;
credit=-1 特殊字母的个数

#注意:这个密码强度的设定只对"普通用户"有限制作用,root用户无论修改自己的密码还是修改普通用户的时候,不符合强度设置依然可以设置成功
#requisite  必须的,必要的
#required 必需的,规定的;理想的

在 Linux 系统中配置 PAM (Pluggable Authentication Modules) 以增强密码强度是一个提高系统安全性的好方法。pam_cracklib 模块是用于检查密码复杂度的一个常用工具。它可以强制执行诸如密码长度、包含的字符类型以及与旧密码的差异等策略。

(3)检查方法

执行如下命令确定是否符合配置要求:
#more /etc/login.defs
检查PASS_MAX_DAYS、 PASS_MIN_LEN、PASS_MIN_DAYS、PASS_WARN_AGE参数

#more /etc/ pam.d/system-auth
检查:password requisite pam_cracklib.so difok=3 dcredit=-1 lcredit=-1 ucredit=-1 credit=-1

  • 注意:这里的设置密码强度方法不太一样!(留意下就好)
编辑文件/etc/pam.d/password-auth
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= difok=1 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1

minlen=新密码的最小长度
difok= 定义新密码中必须要有几个字符和旧密码不同
ucredit= 新密码中可以包含的大写字母的最大数目。
lcredit=新密码中可以包含的小写字母的最大数
dcredit=定新密码中可以包含的数字的最大数目

#注:这个密码强度的设定只对"普通用户"有限制作用,root用户无论修改自己的密码还是修改普通用户的时候,不符合强度设置依然可以设置成功

2024年6月14日加固方法

#备份
cp /etc/login.defs /etc/login.defs.bak-`date +%F`

cp /etc/pam.d/system-auth /etc/pam.d/system-auth.bak-`date +%F`

#cp /etc/pam.d/common-password /etc/pam.d/common-password.bak-`date +%F`



#(1)
#vi /etc/login.defs
PASS_MAX_DAYS 90
PASS_MIN_DAYS 1
PASS_MIN_LEN 8
PASS_WARN_AGE 7


#(2)
#vim /etc/pam.d/system-auth
password required pam_passwdqc.so min=disabled,disabled,disabled,8,8
password requisite pam_cracklib.so retry=3 minlen=8 minclass=3


#注意:
#system-auth和common-password只需要编辑一个就好,我们这里只编辑system-auth就好。
#vim /etc/pam.d/common-password
#password requisite pam_cracklib.so retry=3 minlen=8 minclass=3

Linux系统密码采用哪种机制?

#需要注意下:

[root@centos76 ~]#getent passwd zxl
zxl:x:1010:1018::/home/zxl:/bin/bash
[root@centos76 ~]#getent shadow zxl
zxl:$6$FBZyx/SIpegraMH$VQ5bpzg4.ubeoBXxyIeEsQ.OELs/qqi0N35/m7uTKYq.3X2xbJHqJlBm1etFndmoCvhO04k7/La1.dP4CvyR3/:18656:0:99999:7::: #第二选项$6代表sha512,$5代表sha256;
[root@centos76 ~]#

如何禁止root用户远程登录?(特别注意)

(1)配置项描述

远程执行管理员权限操作,应先以普通权限用户远程登录后,再切 换到超级管理员权限账号后执行相应操作。

(2)操作步骤

如果限制 root 从远程 ssh 登录,修改/etc/ssh/sshd_config 文件,将 PermitRootLogin yes改为PermitRootLogin no,重启sshd 服务。

注意:一般禁止root用户远程登录,只需要设置PermitRootLogin no选项即可,尽量建议不要设置/sbin/nologin 选项,否则会很麻烦!!!

测试过程如下:

#默认状态下:
[root@test ~]# cat /etc/ssh/sshd_config |grep PermitRootLogin
PermitRootLogin yes
# the setting of "PermitRootLogin without-password".
[root@test ~]# getent passwd root
root:x:0:0:root:/root:/bin/bash
[root@test ~]#

A.只设置**PermitRootLogin no****选项:**从远程用root身份登录机器的话,再输入密码后,会报ssh服务器拒绝了您的密码,请再试一次的提示,但用其他可登录系统的普通用户依然是可以su到root用户的(如果知道root密码的话)。

[root@test ~]# vim /etc/ssh/sshd_config
PermitRootLogin no
[root@test ~]# systemctl restart sshd

[HG@test ~]$ su - root
Password:
Last login: Tue Feb 9 06:43:14 CST 2021 on pts/1
[root@test ~]# id
uid=0(root) gid=0(root) groups=0(root)
[root@test ~]#

B.只设置**root的登录shell /sbin/nologin****选项:**远程以root身份登录,终端shell是会直接被断开的(并没有到输入rot密码的那一步),并提示Disconnected from remote host(192.168.10.2:22) at 06:46:34.,并且用其他可登录系统的普通用户是不能su到root用户的,而且在控制台后面也是无法用root进行登录的(会直接退出并重现显示登录界面的)。(这个就非常麻烦了)

[C:\~]$ ssh root@192.168.10.2


Connecting to 192.168.10.2:22...
Connection established.
To escape to local shell, press Ctrl+Alt+].

WARNING! The remote SSH server rejected X11 forwarding request.
Last login: Tue Feb 9 06:46:07 2021 from 192.168.10.1
Connection closing...Socket close.

Connection closed by foreign host.

Disconnected from remote host(192.168.10.2:22) at 06:46:34.#终端shell是会直接被断开的(并没有到输入rot密码的那一步),并提示`Disconnected from remote host(192.168.10.2:22) at 06:46:34.`,并且用其他可登录系统的普通用户是不能su到root用户的,而且在控制台后面也是无法用root进行登录的(会直接退出并重现显示登录界面的)。(这个就非常麻烦了)</font>

Type `help' to learn how to use Xshell prompt.
[C:\~]$

[HG@test ~]$ su - root #用其他可登录系统的普通用户是不能su到root用户的
Password:
Last login: Tue Feb 9 07:00:58 CST 2021 on pts/1
[HG@test ~]$ sudo tail -3 /etc/shadow
postfix:!!:18632::::::
ZXL:$6$Tm5oFxeo$i58346GWjSIgq5ot3Dtl3tkQPFZ.VP7IqYCeuOTNCePVcSRsikgZjqav1JZkFSG7FbkpBKz/ofhC72CVCUJtM0:18666:0:99999:7:::
HG:$6$q6GRrpX3$sWivQZDloqUS0907AmnNq7NrI0OpuZ3oiqud8yVKmWSDTlv1aJ5Oj94pZprAeelIChzZWkuKbkvY4WOw2u2Ml1:18666:0:99999:7:::
[HG@test ~]$ id HG
uid=1001(HG) gid=1001(HG) groups=1001(HG),10(wheel)
[HG@test ~]$

在控制台后面也是无法用root进行登录的(会直接退出并重现显示登录界面的):

(3)检查方法

1、判定条件:  
root 远程登录不成功,提示“没有权限” ;
普通用户可以登录成功,而且可以切换到 root用户;

2、检测操作:
root 从远程使用 telnet 登录;
普通用户从远程使用 telnet 登录;
root 从远程使用 ssh 登录;
普通用户从远程使用 ssh登录;

3、补充说明:
限制 root 从远程 ssh 登录,修改/etc/ssh/sshd_config 文件,将 PermitRootLogin yes改为PermitRootLogin no,重启sshd 服务。

禁止任何人su到root,添加wheel组用户

(1)配置项描述

注意:这里是使用PAM禁止任何人su为root,因此ssh配置文件中UsePAM 选项必须要是yes的:

[root@test ~]# cat /etc/ssh/sshd_config |grep UsePAM
# WARNING: 'UsePAM no' is not supported in Red Hat Enterprise Linux and may cause several
UsePAM yes
[root@test ~]#

(2)操作步骤

1、编辑su文件(vi  /etc/pam.d/su),添加下面行:
auth sufficient pam_rootok.so
auth required pam_wheel.so use_uid

2、补充操作说明:
上述添加表明只有whell组的成员可以使用su命令成为root用户。可以把有需求的用户添加到whell组,以使它可以使用su命令成为root用户。
添加方法:
#usermod -G wheel username

现在还有个问题:某个用户指定了一个扩展组(`usermod -G wheel ZXL`),但是如何删除这个扩展组呢?用什么命令来着?-->`gpasswd -d ZXL wheel`就好了。

(3)检查方法

查看/etc/pam.d/su是否存在以下行:
auth sufficient pam_rootok.so
auth required pam_wheel.so use_uid

更改ssh端口

(1)配置项描述

隐藏ssh信息。

(2)操作步骤

vi /etc/ssh/sshd_config 
修改
Port 22
修改成其他端口,迷惑非法试探者

例:
Linux下SSH默认的端口是22,为了安全考虑,现修改SSH的端口为54330,修改方法如下 :

/usr/sbin/sshd -p 54330

这里建议直接在配置文件中修改即可;
vim /etc/ssh/sshd_config ,更改Port或追加Port
注:生效要重启sshd进程。

(3)检查方法

cat /etc/ssh/sshd_config 判断 port 字段。

对用户的登录次数进行限制

(1)配置项描述

配置当用户连续认证失败次数超过6次(不含6次),锁定该用户使用的账号。注意仅对自然人使用的帐号做此限制

(2)操作步骤

#vi /etc/pam.d/system-auth #增加如下内容
auth required pam_tally2.so deny=6 unlock_time=300 even_deny_root root_unlock_time=30(添加在第二行)
保存退出。

(3)检查方法

执行:
#/etc /pam.d/system-auth

检查是否存在:
auth required pam_tally2.so deny=6 unlock_time=300 even_deny_root root_unlock_time=30(在第二行)
  • 或者可以在sshd文件中进行设置(不常用):
#vim /etc/pam.d/sshd
auth required pam_tally2.so deny=3 unlock_time=150 even_deny_root root_unlock_time300

多次输入密码失败后会提示报错;
可以利用pam_tally2命令进行查看:
#pam_tally2

设置账户保存历史命令条数,登录超时时间

(1)配置项描述

为了增强Linux系统的安全性,我们需要在用户输入空闲一段时间后自动断开,这个操作可以由设置TMOUT值来实现。

(2)操作步骤

打开 /etc/profile ,修改如下 #注意,这个方案是直接添加在后面的,默认单位是m;
HISTSIZE=1000
TMOUT=600

#五分钟未动,服务器超时自动断开与客户端的链接。
#如果输出空或0表示不超时,大于0的数字n表示n秒内通道未使用则超时。

(3)检查方法

查看文件/etc/profile是否包含预期配置内容。
  • 注意:(这个一般不常配置,还是尽量按上面那种方式进行配置即可
另外,在ssh配置文件/etc/ssh/sshd_config中,将ssh的保活配置打开:#以下2行配置默认是被注释的
ClientAliveInterval 300
ClientAliveCountMax 3
意思是5分钟检查一次客户端响应,最多检查3次。如果3次都检查到客户端不响应,那么就认为ssh已经断开了。
  • 注意:另一种配置方案:(网上csdn)都是有加export的。
#注意,下面这种配置应该也是可以的,但是尽量按上述方式一行配置完就好,至于加上export命令有什么大的区别,这里暂时不讲;
echo "export TMOUT=300" >> /etc/profile
. /etc/profile或者source /etc/profile

配置SYSLOG(记录系统日志及应用日志)

(1)配置项描述

日志功能设置,记录系统日志及应用日志。

(2)操作步骤

1、修改配置:
#vi /etc/rsyslog.conf
配置形如
*.err;kern.debug;daemon.notice; /var/log/messages的语句,保存退出。
cron.* /var/log/cron
authpriv.* /var/log/secure

2、重启syslog服务
Centos6版本以下
service rsyslog start 开启syslog服务
chconfig rsyslog on 设置syslog服务开机自启动

Centos6版本以上
systemctl start rsyslog 开启syslog服务
systemctl enable rsyslog 设置syslog服务开机自启动

(3)检查方法

执行:more /etc/rsyslog.conf
检查是否存在类似如下语句:
*.err;kern.debug;daemon.notice; /var/log/messages
cron.* /var/log/cron
authpriv.* /var/log/secure

设置日志服务器(syslog采集机)

(1)配置项描述

设备配置远程日志功能,将需要重点关注的日志内容传输到日志服务器。

(2)操作步骤

1、修改配置:
#vi /etc/rsyslog.conf
加上这一行:
*.* @192.168.0.1
#可以将"*.*"替换为你实际需要的日志信息。比如:kern.* / mail.* 等等。192.168.0.1修改为实际的日志服务器。*.*和@之间为一个Tab。(这个需要特别注意)!!!
#远程日志配置方法中,@符号后面没有空格(实际工作经过验证-20201219)。(特别注意)

2、重启syslog服务
#/etc/init.d/rsyslog stop
#/etc/init.d/rsyslog start

(3)检查方法

执行:more /etc/rsyslog.conf
检查是否存在类似如下语句:
*.* @192.168.0.1

注意:基线加固配置远程日志功能只需要加固一个即可。 貌似在6/7版本中,远程日志功能的软件包只有rsyslog这个,因此只配置这个/etc/rsyslog.conf即可。

配置history日志

**有个问题需要确认:**一般情况下,关于history日志是配置在哪个环境下的?

执行以下命令:
echo "export HISTSIZE=1000" >> /etc/bashrc
echo "export PROMPT_COMMAND='{ msg=\$(history 1 | { read x y; echo \$y; });logger \"[euid=\$(whoami)]\":[\$(who am i)]:[\`pwd\`]:[\"\$msg\"]; }'" >> /etc/bashrc #这行代码是干什么的,不是很清楚??;
echo "export HISTTIMEFORMAT=\"%Y%m%d_%T \`whoami\` \`who am i|awk '{print \$1,\$5}'|sed 's/ (/@/'|sed 's/)//'\` \"" >> /etc/bashrc

配置sudo日志

echo "Defaults log_host,log_year,logfile=/var/log/sudo.log">>/etc/sudoers

定期查看查看系统日志

/var/log/messages # 注意这2个日志文件:
/var/log/secure

重要服务器可以将日志定向传输到指定服务器进行分析。

检查文件与目录缺省权限:umask

(1)配置项描述

系统umask设置,规范用户对目录和文件的操作。

(2)操作步骤

修改umask设置:
#vi /etc/profile
#vi /etc/login.defs
将umask值修改为027,保存退出 #027 文件:640 目录:750

(3)检查方法

执行:
# more /etc/profile
# more /etc/login.defs
检查系统umask值

**注意:**这个/etc/profiles中umask的位置:自己每次配置都不是很清楚这个要配置在哪里?我一般是配置else后面的那个参数的

**注意:**加固后umask=027

1.默认的umask=022
对文件:666-022=644
对目录:777-022=755

2.加固后:# 加固后的权限范围更小。
umask=027

对文件:666-027=640
对目录:777-027=750

检查用户最小授权

(1)配置项描述

检查用户是否是最小授权。

(2)操作步骤

chmod 400 /etc/shadow
chmod 644 /etc/group
chmod 644 /etc/passwd

(3)检查方法

检查文件权限
ll /etc/shadow
ll /etc/group
ll /etc/passwd

检查root目录权限是否为700

(1)配置项描述

检查root目录权限是否为700,保证仅有系统管理员拥有对其的访问控制权限。

(2)操作步骤

设置700权限:
#chown root:root /root
#chmod 700 /root

(3)检查方法

执行:
#ls –lad /root
查看/root权限

远程登录取消telnet采用ssh

(1)配置项描述

远程登录取消telnet,采用ssh。telnet缺少对口令和用户名的有效保护措施,所有数据采用明文传输方式,存在较大安全隐患,ssh采用加密方式保护用户数据,数据内容和用户信息更为安全。

(2)操作步骤

关闭telent开启ssh:
1、备份
#cp -p /etc/xinetd.d/telnet /etc/xinetd.d/telnet_bak
2、编辑
#vi /etc/xinetd.d/telnet文件,把disable项改为yes,即disable = yes
然后运行services xinetd restart,telnet就可以关闭掉了
3、安装ssh软件包,通过#/etc/init.d/sshd start来启动SSH。

(3)检查方法

查看SSH、telnet服务状态:
# netstat –an|grep 22
# netstat –an|grep 23
SSH服务状态查看结果为:有LISTEN状态记录;
telnet服务状态查看结果为:无LISTEN状态记录。

删除潜在危险文件

(1)配置项描述

检查帐户目录中是否存在.netrc/.rhosts文件,该文件通常会被系统或进程自动加载并执行,对系统带来安全隐患。

(2)操作步骤

删除.netrc/.rhosts文件
#rm -f filename

(3)检查方法

执行:
# find / -name .netrc
# find / -name .rhosts
返回值应为空

禁止匿名FTP

(1)配置项描述

禁止匿名FTP。

(2)操作步骤

参考配置操作:  
以 vsftpd 为例:   
打开vsftd.conf文件,修改下列行为:  
anonymous_enable=NO

(3)检查方法

匿名账户不能登录。

系统Banner设置

(1)配置项描述

修改系统 banner,避免泄漏操作系统名称,版本号,主机名称等, 并且给出登陆告警信息。

(2)操作步骤

删除“/etc”目录下的isue.net和issue文件:
#mv /etc/issue /etc/issue.bak
#mv /etc/issue.net /etc/issue.net.bak

(3)检查方法

查看“/etc”目录下是否存在isue.net和issue文件

定期备份数据

目录要有规划,并且有周期性的打包备份数据到指定的服务器。
应用程序 /data1/app/
程序日志 /data1/logs/
重要数据 /data1/data/

安全组关闭没必要的端口(公有云)

腾讯云平台有安全组功能,里面您只需要放行业务协议和端口,不建议放行所有协议所有端口,参考文档:https://cloud.tencent.com/document/product/215/20398

关闭不必要的服务、端口

服务名称端口应用说明关闭方法处置建议
daytime13/tcpRFC867 白天协议chkconfig daytime off建议关闭
13/udpRFC867 白天协议chkconfig daytime off
time37/tcp时间协议chkconfig time  off
37/udp时间协议chkconfig time-udp off
echo7/tcpRFC862_回声协议chkconfig echo  off
7/udpRFC862_回声协议chkconfig echo-udp   off
discard9/tcpRFC863 废除协议chkconfig discard off
9/udpchkconfig discard-udp off
chargen19/tcpRFC864 字符产生协议chkconfig chargen off
19/udpchkconfig chargen-udp off
ftp21/tcp文件传输协议(控制)chkconfig gssftp off根据情况选择开放
telnet23/tcp虚拟终端协议chkconfig krb5-telnet off根据情况选择开放
sendmail25/tcp简单邮件发送协议chkconfig sendmail off建议关闭
nameserver53/udp域名服务chkconfig named off根据情况选择开放
53/tcp域名服务chkconfig named off根据情况选择开放
apache80/tcpHTTP 万维网发布chkconfig httpd off根据情况选
服务择开放
login513/tcp远程登录chkconfig login  off根据情况选择开放
shell514/tcp远程命令, no passwd usedchkconfig shell  off根据情况选择开放
exec512/tcpremote execution, passwd requiredchkconfig exec   off根据情况选择开放
ntalk518/udpnew talk, conversationchkconfig ntalk  off建议关闭
ident113/tcpauthchkconfig ident  off建议关闭
printer515/tcp远程打印缓存chkconfig printer off强烈建议关闭
bootps67/udp引导协议服务端chkconfig bootps  off建议关闭
68/udp引导协议客户端chkconfig bootps  off建议关闭
tftp69/udp普通文件传输协议chkconfig tftp   off强烈建议关闭
kshell544/tcpKerberos remote shell -kfallchkconfig kshell  off建议关闭
klogin543/tcpKerberos rlogin -kfallchkconfig klogin  off建议关闭
portmap111/tcp端口映射chkconfig portmap  off根据情况选择开放
snmp161/udp简单网络管理协议(Agent)chkconfig snmp  off根据情况选择开放
snmp trap161/tcp简单网络管理协议(Agent)chkconfig snmp  off根据情况选择开放
snmp-trap162/udp简单网络管理协议(Traps)chkconfig snmptrap  off根据情况选择开放
syslogd514/udp系统日志服务chkconfig syslog  off建议保留
lpd515/tcp远程打印缓存chkconfig lpd  off强烈建议关闭
nfs2049/tcpNFS 远程文件系统chkconfig nfs  off强烈建议关闭
2049/udpNFS 远程文件系统chkconfig nfs  off强烈建议关闭
nfs.lock动态端口rpc 服务chkconfig nfslock  off强烈建议关闭
ypbind动态端口rpc 服务chkconfig ypbind  off强烈建议关闭
135
136
137
138
445

可以用telnet 主机ip 端口来进行测试。

telnet 10.130.245.93 135
telnet 10.130.245.93 136
telnet 10.130.245.93 137
telnet 10.130.245.93 138
telnet 10.130.245.93 445

ssh升级到最新版本

centos7以上版本关闭不必要的服务

大家晚上好!
根据与IT支撑中心平台管理组沟通,他们要求我们把服务器不必要的端口都关闭。除了时间同步端口、22端口、it网管端口及数据库监听端口外,其他端口都要关闭。我收集相关资料,觉得以下这些
服务可以关闭,大家有没有什么好的建议或意见,谢谢大家!

关闭以下服务:
abrt-ccpp.service
abrt-oops.service
abrt-vmcore.service
abrt-xorg.service
abrtd.service
dbus-org.freedesktop.NetworkManager.service
dbus-org.freedesktop.nm-dispatcher.service
postfix.service
NetworkManager-dispatcher.service
NetworkManager.service
ModemManager.service
acpid.service
bluetooth.service
certmonger.service
cpuspeed.service
cups.service
cups-browsed.service
sound.service
dnsmasq.service
psacct.service
atd.service
avahi-daemon.service
avahi-dnsconfd.service
accounts-daemon.service
rpcbind.socket
rpcbind

补丁

(1)配置项描述

在保证业务网络稳定运行的前提下,安装 新的 OS 补丁。补丁在安装前需要测试确定。

(2)操作步骤

1、参考配置操作 
看版本是否为 新版本。
执行下列命令,查看版本及大补丁号。
#uname –a
补充操作说明

(3)检查方法

1、判定条件 
看版本是否为 新版本。
# uname –a 查看版本及大补丁号
RedHat Linux:http://www.redhat.com/support/errata/
Slackware Linux:ftp://ftp.slackware.com/pub/slackware/
SuSE Linux:http://www.suse.com/us/support/security/index.html
TurboLinux:http://www.turbolinux.com/security/
2、检测操作
在系统安装时建议只安装基本的 OS 部份,其余的软件包则以必要为原则,非必需的包就不装。
补充说明

关于我

我的博客主旨:

  • 排版美观,语言精炼;
  • 文档即手册,步骤明细,拒绝埋坑,提供源码;
  • 本人实战文档都是亲测成功的,各位小伙伴在实际操作过程中如有什么疑问,可随时联系本人帮您解决问题,让我们一起进步!

🍀 微信二维码 x2675263825 (舍得), qq:2675263825。

🍀 微信公众号 《云原生架构师实战》

🍀 csdn https://blog.csdn.net/weixin_39246554?spm=1010.2135.3001.5421

🍀 博客 www.onlyyou520.com

🍀 知乎

https://www.zhihu.com/people/foryouone

🍀 语雀

https://www.yuque.com/docs/share/9afa0c98-1acb-498f-be3c-13fa5fb545b3?#《不服来怼:宇宙中最好用的云笔记!》

最后

好了,关于本次就到这里了,感谢大家阅读,最后祝大家生活快乐,每天都过的有意义哦,我们下期见!