Linux基线加固

1、修改vsftp回显信息
(1)检查办法
修改vsftp回显信息:
需在安装VSFTP的情况下检查,未安装可忽略或禁用该项。
查看ftpd_banner的值。
查看命令:cat /etc/vsftpd/vsftpd.conf
(2)加固配置
修改vsftp回显信息:
1. 修改vsftp回显信息
# vi /etc/vsftpd.conf
ftpd_banner=" Authorized users only. All activity may be monitored and reported."
可根据实际需要修改该文件内容。
重启服务:
/etc/init.d/xinetd restart

===================================================
2、隐藏SSH的Banner信息
(1)检查办法
隐藏SSH的Banner信息:
查看sshd_config文件中是否存在未注释的Banner /etc/issue.net行,不存在未注释的Banner行或Banner值为none视为合规
查看命令:cat /etc/ssh/sshd_config
(2)加固配置
隐藏SSH的Banner信息:
1. 备份sshd_config文件
cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_bak
2. 编辑sshd_config,注释或删除Banner行
vim /etc/ssh/sshd_config
在Banner行前添加井号#
===================================================
3、账户目录中不存在危险文件
(1)检查办法
账户目录中不存在.rhosts文件:
返回值不包含.rhosts文件
查看命令:ls -la $(cut -d":" -f6 /etc/passwd) 2>/dev/null| grep -E ".rhosts|/" --color=never
账户目录中不存在.netrc文件:
返回值中不包含.netrc文件
查看命令:ls -la $(cut -d":" -f6 /etc/passwd) 2>/dev/null| grep -E ".netrc|/" --color=never

(2)加固配置
账户目录中不存在.rhosts文件:
1、根据检查命令查询出的结果路径备份.rhosts文件(与管理员确认无用后可删除)
2、删除.rhosts文件
rm -f filename

账户目录中不存在.netrc文件:
1、根据检查命令查询出的结果路径备份.netrc文件(与管理员确认无用后可删除)
2、删除.netrc文件
rm -f filename
===================================================
4、Wuftp的banner信息
(1)检查办法
Wuftp的banner信息:
通过外部ftp客户端登录,banner按照预先设定的显示
查看命令:cat `cat /etc/ftpaccess |grep -v "#"|grep ^banner |awk -F " *" '{print $2}'` 1 2>/dev/null
(2)加固配置
Wuftp的banner信息:
样例:
修改文件/etc/ftpaccess,在其中添加,如:
banner /thisftpbannerfile
在指定目录下创建包含ftp的banner信息的文件
touch /thisftpbannerfile
编辑文件
vi /thisftpbannerfile
在其中添加banner信息,例如
this is banner
===================================================
5、隐藏Telnet的Banner信息
(1)检查办法
隐藏Telnet的Banner信息:
查看文件和/etc/issue.net是否包含类似如下内容:
" Authorized users only. All activity may be monitored and reported "
查看命令:cat /etc/issue.net
(2)加固配置
隐藏Telnet的Banner信息:
由于默认的提示信息中包含操作系统版本,因此需要修改以防版本信息泄露。
1. 备份配置信息
cp -p /etc/issue.net /etc/issue.net_bak
2. 修改issue.net文件的内容
vim /etc/issue.net
将原有内容改为如下行
Authorized users only. All activity may be monitored and reported
===================================================
6、配置ssh等加密协议
(1)检查办法
关闭telnet服务,23端口不存在监听:
不存在telnet相关进程视为合规
查看命令:lsof -i >/tmp/tmplsoftmp.txt;cat /tmp/tmplsoftmp.txt;rm -rf /tmp/tmplsoftmp.txt

开启ssh服务,22端口监听:
存在sshd进程视为合规
查看命令:ps -elf | grep -v "grep"
(2)加固配置
关闭telnet服务,23端口不存在监听:
关闭telnet服务
编辑#vi /etc/xinetd.d/telnet文件,把disable项改为yes,即disable = yes
然后运行service xinetd restart,telnet就可以关闭掉了

开启ssh服务,22端口监听:
开启ssh服务
service sshd start
或 /etc/init.d/sshd start
===================================================
7、关闭不必要的服务
(1)检查办法
关闭不必要的服务:
查看服务列表,列出所需要服务的列表(包括所需的系统服务),不在此列表的服务需关闭,保障系统业务最小化。
查看命令:LANG="en_US" chkconfig --list > /tmp/systemctl.txt && cat /tmp/systemctl.txt
rm -f /tmp/systemctl.txt
(2)加固配置
关闭不必要的服务:
禁止非必要服务
chkconfig [service] off
===================================================
8、查看账户组和组内用户
(1)检查办法
查看账户组和组内用户:
查看group文件中的组名,和组下的成员信息是否正确。
查看命令:cat /etc/group
(2)加固配置
查看账户组和组内用户:
1. 执行备份:
cp -p /etc/group /etc/group_bak
2. 修改用户所属组:
usermod -g group username
===================================================
9、对系统账号进行登录限制
(1)检查办法
对系统账号进行登录限制:
查看passwd文件中用户信息(gopher,sync,games,operator,news,halt,shutdown,webservd,nobody4,noaccess,uucp,lp,nobody,gdm,listen)的最后一个字段登录shell配置为 /sbin/nologin 或 /bin/false 或 /usr/sbin/nologin
查看命令:cat /etc/passwd
(2)加固配置
对系统账号进行登录限制:
1. 备份passwd文件
cp -p /etc/passwd /etc/passwd_bak
2. 编辑passwd文件
vi /etc/passwd
依次修改需要锁定的账号(gopher,sync,games,operator,news,halt,shutdown,webservd,nobody4,noaccess,uucp,lp,nobody,gdm,listen)的登录shell为 /sbin/nologin 或 /bin/false (推荐配置为此项) 或 /usr/sbin/nologin

补充说明:
/bin/false:什么也不做只是返回一个错误状态,然后立即退出。将用户的shell设置为/bin/false,用户会无法登陆,并且不会有任何提示
/usr/sbin/nologin:会礼貌的向用户显示一条信息,并拒绝用户登录:This account is currently not available
/sbin/nologin:同上
/usr/sbin/nologin或/sbin/nologin的配置可以根据实际情况进行选择
===================================================
10、删除或锁定无用账号
(1)检查办法
删除或锁定无用账号:
查看账号(daemon,adm,nuucp,smmsp,sys,bin,lp,sync,shutdown,halt,news,uucp,operator,games,gopher,nobody)密码状态,为LK视为合规。
查看命令:passwd -S daemon;passwd -S adm;passwd -S nuucp;passwd -S smmsp;passwd -S sys;passwd -S bin;passwd -S lp;passwd -S sync;passwd -S shutdown;passwd -S halt;passwd -S news;passwd -S uucp;passwd -S operator;passwd -S games;passwd -S gopher;passwd -S nobody;

(2)加固配置
删除或锁定无用账号:
执行命令 passwd -l <username> 锁定账号<username>,此处<username>需依次替换为daemon,adm,nuucp,smmsp,sys,bin,lp,sync,shutdown,halt,news,uucp,operator,games,gopher,nobody

注意:锁定账户会导致原密码丢失,谨慎操作。
===================================================
11、定时账户自动登出
(1)检查办法
bash下空闲等待时间TMOUT设置:
TMOUT的值大于0且小于等于300视为合规
查看命令:export
(2)加固配置
bash下空闲等待时间TMOUT设置:
1. 备份/etc/profile文件
cp /etc/profile /etc/profile_bak
2. 编辑profile文件
vim /etc/profile
修改/新增
TMOUT=300
export TMOUT
或
export TMOUT=300
保存退出
3.执行source /etc/profile 命令使修改生效
===================================================
12、配置远程日志服务器
(1)检查办法
配置远程日志服务器:
查看日志文件中是否配置远程日志服务器,存在远程日志服务器视为合规,即存在@LogHostIP(LogHostIP的具体值是否准确需要人工判断)。
查看命令:cat /etc/rsyslog.conf;cat /etc/syslog.conf;cat /etc/rsyslog.d/50-default.conf
(2)加固配置
配置远程日志服务器:
1. 备份配置文件
cp -p /etc/rsyslog.conf /etc/rsyslog.conf_bak
2. 编辑配置文件
vim /etc/rsyslog.conf
添加如下行
*.* @192.168.0.1
(以上的*.*为需要传输到远程日志服务器的内容,@IP为远程日志服务器的地址。以上参数都需要根据实际情况调整,系统只判断是否配置@IP,具体IP的准确性,需要人工判断)
===================================================
13、对用户登录认证、权限变更进行记录
(1)检查办法
配置记录用户权限变更日志:
查看是否存在authpriv.info /<path>或authpriv.* /<path> 存在视为合规。
查看命令:cat /etc/rsyslog.conf;cat /etc/syslog.conf;cat /etc/rsyslog.d/50-default.conf
(2)加固配置
配置记录用户权限变更日志:
备份/etc/rsyslog.conf文件
cp /etc/rsyslog.conf /etc/rsyslog.conf_bak
编辑/etc/rsyslog.conf文件
vim /etc/rsyslog.conf
备份需要配置的文件
添加authpriv.info /<path>或authpriv.* /<path>。
===================================================
14、配置记录cron行为日志功能
(1)检查办法
配置记录cron行为日志功能:
存在cron.* /<path>视为合规。
查看命令:cat /etc/rsyslog.conf;cat /etc/syslog.conf;cat /etc/rsyslog.d/50-default.conf

(2)加固配置
配置记录cron行为日志功能:
备份/etc/rsyslog.conf文件
cp /etc/rsyslog.conf /etc/rsyslog.conf_bak
编辑/etc/rsyslog.conf文件
vim /etc/rsyslog.conf
添加cron.* /var/log/cron
保存退出
===================================================
15、日志文件读写权限

(1)检查办法
/var/log日志文件权限:
查看/var/log文件夹日志权限,按账户分配日志文件读取、修改和删除权限
如:messages、secure、maillog、cron、spooler、boot.log文件权限是否合规
查看命令:ls -la /var/log | grep -E "messages$|secure$|maillog$|cron$|spooler$|boot.log$" --color=never
(2)加固配置
/var/log日志文件权限:
1、备份需要修改的文件,messages、secure、maillog、cron、spooler、boot.log文件
样例:cp /var/log/fileName (此处fileName依次替换为messages、secure、maillog、cron、spooler、boot.log文件)
2、设置文件权限。
样例:chmod 644 fileName (此处fileName依次替换为messages、secure、maillog、cron、spooler、boot.log文件)

===================================================
16、查看补丁信息
(1)检查办法
查看补丁信息:
查看版本信息及/var/sadm/patch目录下补丁包信息(若补丁包在其他目录下需人工执行命令查看)
查看命令:uname -a;ls /var/sadm/patch --color=never
(2)加固配置
查看补丁信息:
定期更新升级,可以使用OnlineUpdate或Patch CD Update等方式升级系统补丁(此处不做详细说明)
===================================================
17、检查新建用户的home目录的缺省访问权限
(1)检查办法
检查新建用户的home目录的缺省访问权限:
查看login.defs中是否存在UMASK 027,存在视为合规。
查看命令:cat /etc/login.defs
(2)加固配置
检查新建用户的home目录的缺省访问权限:
设置默认权限:
备份文件
cp /etc/login.defs /etc/login.defs_bak
编辑文件
vi /etc/login.defs 在末尾增加UMASK 027(若之前存在UMASK循环函数,则需要先将整段循环注释),将缺省访问权限设置为750。
补充说明:
UMASK 的默认设置一般为022,这给新创建的文件默认权限755(777-022=755),这会给文件所有者读、写权限,但只给组成员和其它用户读权限。
===================================================
18、禁止匿名FTP
(1)检查办法
vsftp中禁止匿名ftp:
存在anonymous_enable=NO视为合规
查看命令:cat /etc/vsftpd/vsftpd.conf
(2)加固配置
vsftp中禁止匿名ftp:
1.备份vsftpd.conf文件
2.编辑vsftpd.conf文件
vi /etc/vsftpd/vsftpd.conf
修改或添加anonymous_enable的值为NO
anonymous_enable=NO
===================================================
19、限制具备超级管理员权限的用户远程登录
(1)检查办法
禁止root用户远程登录:
查看sshd_config文件中PermitRootLogin的值是否为no,为no视为合规。
查看命令:cat /etc/ssh/sshd_config
(2)加固配置
禁止root用户远程登录:
1. 备份文件
cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_bak
2. 编辑文件
vim /etc/ssh/sshd_config
添加或修改如下行
PermitRootLogin no

注:重启ssh服务生效
===================================================
20、检查是否指定用户组成员使用su命令
(1)检查办法
检查是否指定用户组成员使用su命令:
存在auth required pam_wheel.so group=wheel视为合规(其中wheel组为可以su到root的用户组,具体值参照正则)
查看命令:cat /etc/pam.d/su
(2)加固配置
检查是否指定用户组成员使用su命令:
备份文件
cp /etc/pam.d/su /etc/pam.d/su_bak
编辑文件
vi /etc/pam.d/su
添加或修改如下行auth required pam_wheel.so group=wheel(wheel具体标准值参照正则)
其中wheel组为可以su到root的用户组,可以自己定义

===================================================
21、设置FTP权限及访问,限制部分用户的ftp访问权限
(1)检查办法
查看Ftp权限配置/etc/ftpaccess:
需人工查看用户黑名单是否合规。
查看命令:cat /etc/ftpaccess
(2)加固配置
查看Ftp权限配置/etc/ftpaccess:
编辑ftpaccess文件,将禁止访问的用户加入到名单中
===================================================
22、分配不同账号,避免不同用户间共享账号
(1)检查办法
分配不同账号,避免不同用户间共享账号:
1、判定条件
不存在不同用户间共享同一帐户的情况。
2、检测操作
1)使用命令“cat /etc/passwd ”查看系统帐户列表;
2)访谈系统管理员,询问各帐户的使用人情况;
3)判定是否存在不同用户共享帐户的情况。
查看命令:cat /etc/passwd
(2)加固配置
分配不同账号,避免不同用户间共享账号:
1、参考配置操作
1)为用户创建帐户:
#useradd username //创建帐户;
#passwd username //设置密码。
===================================================
23、访问控制
(1)检查办法
Vsftp的chroot list配置:
查看chroot_list中的用户是否合理。
查看命令:cat /etc/vsftpd/chroot_list

(2)加固配置
Vsftp的chroot list配置:
修改chroot_list中的用户,凡是加在文件vsftpd.chroot_list中的用户都是不受限制的用户,即可以浏览其主目录的上级目录。
注意:要想使chroot_list中的配置生效,要先在vsftpd.conf中配置如下内容
chroot_local_user=YES(可以为YES或NO)
chroot_list_enable=YES(这行必须要有, 否则文件vsftpd.chroot_list不会起作用)
chroot_list_file=/etc/vsftpd.chroot_list
===================================================
24、重要目录和文件的权限进行设置
(1)检查办法
passwd文件权限:
查看passwd文件的权限,应为小于等于rw-r--r--的合理值(其他组用户权限不高于所属组用户,以此类推)
查看命令:stat /etc/passwd

shadow文件权限:
查看shadow文件的权限,应为小于等于r--------的合理值(其他组用户权限不高于所属组用户,以此类推)
查看命令:stat /etc/shadow

group文件权限:
查看group文件的权限,应为小于等于rw-r--r--的合理值(其他组用户权限不高于所属组用户,以此类推)
查看命令:stat /etc/group
(2)加固配置
passwd文件权限:
1.备份文件
2.执行如下命令修改权限
chmod rw-r--r-- /etc/passwd

shadow文件权限:
1.备份文件
2.执行如下命令修改权限
chmod r-------- /etc/shadow

group文件权限:
1.备份文件
2.执行如下命令修改权限
chmod rw-r--r-- /etc/group
===================================================
25、账户口令安全符合要求
(1)检查办法
设置账户口令有效期:
PASS_MAX_DAYS的值大于0且小于等于90视为合规
查看命令:cat /etc/login.defs
(2)加固配置
设置账户口令有效期:
1.执行命令备份需要修改的配置文件
2.编辑配置文件login.defs
vim /etc/login.defs
添加或修改PASS_MAX_DAYS为小于等于90,且大于0的值
PASS_MAX_DAYS 90
注:若在shadow文件中设置相应限制信息,则shadow文件配置优先生效。
===================================================
26、检查密码长度及复杂度策略
(1)检查办法
密码长度是否符合要求:
查看PASS_MIN_LEN的值是否合规
查看命令:cat /etc/login.defs

检查密码字符串中含大写字符个数:
ucredit的值小于等于-1视为合规
查看命令:cat /etc/pam.d/system-auth;cat /etc/pam.d/common-password;cat /etc/security/pwquality.conf;cat /etc/pam.d/passwd

检查密码字符串中含小写字符个数:
lcredit的值小于等于-1视为合规
查看命令:cat /etc/pam.d/system-auth;cat /etc/pam.d/common-password;cat /etc/security/pwquality.conf;cat /etc/pam.d/passwd

检查密码字符串中含特殊字符个数:
ocredit的值小于等于-1视为合规
查看命令:cat /etc/pam.d/system-auth;cat /etc/pam.d/common-password;cat /etc/security/pwquality.conf;cat /etc/pam.d/passwd

检查密码字符串中含数字个数:
dcredit的值小于等于-1视为合规
查看命令:cat /etc/pam.d/system-auth;cat /etc/pam.d/common-password;cat /etc/security/pwquality.conf;cat /etc/pam.d/passwd
(2)加固配置
密码长度是否符合要求:
1. 备份login.defs文件
cp -p /etc/login.defs /etc/login.defs_bak
2. 修改login.denfs文件
vim /etc/login.defs
修改或添加PASS_MIN_LEN值为8
PASS_MIN_LEN 8

注:若在shadow文件中设置相应限制信息,则shadow文件配置优先生效。

检查密码字符串中含大写字符个数:
方法一(使用pam_cracklib.so模块):
1.备份需要编辑的文件/etc/pam.d/system-auth或/etc/pam.d/passwd
cp /etc/pam.d/system-auth /etc/pam.d/system-auth_bak
或cp /etc/pam.d/passwd /etc/pam.d/passwd_bak
2.修改配置文件system-auth或passwd
password required pam_cracklib.so dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1
3.保存退出。

方法二(使用pam_pwquality.so模块):
1.备份需要编辑的文件/etc/pam.d/system-auth或/etc/pam.d/passwd,和cat /etc/security/pwquality.conf
cp /etc/security/pwquality.conf /etc/security/pwquality.conf_bak
cp /etc/pam.d/system-auth /etc/pam.d/system-auth_bak
或cp /etc/pam.d/passwd /etc/pam.d/passwd_bak
2.修改配置system-auth或passwd文件
首先配置password required pam_pwquality.so
password required pam_pwquality.so dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1
或在pwquality.conf中修改
dcredit=-1
ucredit=-1
lcredit=-1
ocredit=-1
3.保存退出。

注:/etc/pam.d/system-auth和/etc/pam.d/passwd修改一个即可。

检查密码字符串中含小写字符个数:
同上

检查密码字符串中含特殊字符个数:
同上

检查密码字符串中含数字个数:
同上
===================================================
27、etc目录中不存在hosts.equiv文件
(1)检查办法
etc目录中不存在hosts.equiv文件:
返回值不包含hosts.equiv文件视为合规
查看命令:ls -la /etc --color=never
(2)加固配置
etc目录中不存在hosts.equiv文件:
1、备份hosts.equiv文件
cp /etc/hosts.equiv /etc/hosts.equiv_bak
2、删除hosts.equiv文件
cd /etc
rm -f hosts.equiv
3.与管理员确认hosts.enquiv文件是否确认无用,确认无用的情况下,删除/etc/hosts.equiv_bak
cd /etc
rm -f hosts.equiv_bak

  

posted @ 2022-09-09 09:39  LB_运维技术  阅读(395)  评论(0编辑  收藏  举报