0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

linux安全基线配置

jf_TEuU2tls 来源:csdn 作者:linux安全基线配置 2022-12-05 10:12 次阅读

现在大多数企业都是使用linux作为服务器,不仅是linux是开源系统,更是因为linux比windows更安全。但是由于管理员的安全意识不全或者疏忽,导致linux的敏感端口和服务没有正确的配置,可能会被恶意利用,所以需要进行基线加固。

1.基线

即安全基线配置,诸如操作系统、中间件和数据库的一个整体配置,这个版本中各项配置都符合安全方面的标准。比如在系统安装后需要按安全基线标准,将新机器中各项配置调整到一个安全、高效、合理的数值。

2.基线扫描

使用自动化工具、抓取系统和服务的配置项。将抓取到的实际值和标准值进行对比,将不符合的项显示出来,最终以报告 的形式体现出扫描结果有的工具将配置采集和配置对比分开,通过自动化脚本采集配置后再通过特别的软件转换为适合人类阅读的文档

3.基线加固自动化脚本的编写

本篇文章主要是记录和学习安全加固脚本,首先放几张安全加固shell脚本的命令语法:

418ca5a4-742f-11ed-8abf-dac502259ad0.png

41957f26-742f-11ed-8abf-dac502259ad0.png

41a51012-742f-11ed-8abf-dac502259ad0.png

41b4559a-742f-11ed-8abf-dac502259ad0.png

41bd8bb0-742f-11ed-8abf-dac502259ad0.png

41c55ad4-742f-11ed-8abf-dac502259ad0.png

41cb22ac-742f-11ed-8abf-dac502259ad0.png

41d4cb90-742f-11ed-8abf-dac502259ad0.png

基本命令语法介绍完了,借用网上的脚本来学习:

在执行脚本前需要提前做好备份:

#!/bin/bash
cp/etc/login.defs/etc/login.defs.bak
cp/etc/security/limits.conf/etc/security/limits.conf.bak
cp/etc/pam.d/su/etc/pam.d/su.bak
cp/etc/profile/etc/profile.bak
cp/etc/issue.net/etc/issue.net.bak
cp/etc/shadow/etc/shadow.bak
cp/etc/passwd/etc/passwd.bak
cp/etc/pam.d/passwd/etc/pam.d/passwd.bak
cp/etc/pam.d/common-password/etc/pam.d/common-password.bak
cp/etc/host.conf/etc/host.conf.bak
cp/etc/hosts.allow/etc/hosts.allow.bak
cp/etc/ntp.conf/etc/ntp.conf.bak
cp-p/etc/sysctl.conf/etc/sysctl.conf.bak
echo"============备份完成=================="
  1. 检查是否设置口令更改最小间隔天数

41dd1e58-742f-11ed-8abf-dac502259ad0.png

MINDAY=`cat-n/etc/login.defs|grep-v".*#.*"|grepPASS_MIN_DAYS|awk'{print$1}'`
sed-i''$MINDAY's/.*PASS_MIN_DAYS.*/PASS_MIN_DAYS6/'/etc/login.defs
echo"检查口令更改最小间隔天数完成"

2.检查是否设置口令过期前警告天数

41e454de-742f-11ed-8abf-dac502259ad0.png

WARNAGE=`cat-n/etc/login.defs|grep-v".*#.*"|grepPASS_WARN_AGE|awk'{print$1}'`
sed-i''$WARNAGE's/.*PASS_WARN.*/PASS_WARN_AGE30/'/etc/login.defs
echo"检查口令过期前警告天数完成"

3.检查口令生存周期

41ed8ad6-742f-11ed-8abf-dac502259ad0.png

MAXDAY=`cat-n/etc/login.defs|grep-v".*#.*"|grepPASS_MAX_DAYS|awk'{print$1}'`
sed-i''$MAXDAY's/.*PASS_MAX.*/PASS_MAX_DAYS90/'/etc/login.defs
echo"检查口令生存周期完成"

4.检查口令最小长度

41fad9de-742f-11ed-8abf-dac502259ad0.png

MINLEN=`cat-n/etc/login.defs|grep-v".*#.*"|grepPASS_MIN_LEN|awk'{print$1}'`
sed-i''$MINDAY's/.*PASS_MIN_LEN.*/PASS_MIN_LEN6/'/etc/login.defs
echo"检查口令最小长度"

5.检查是否设置grub,lilo密码

42031bbc-742f-11ed-8abf-dac502259ad0.png

grub="/etc/menu.lst"
if[!-x"$grub"];then
touch"$grub"
echopassword=123456>>"$grub"
else
echopassword=123456>>"$grub"
fi
lilo="/etc/lilo.conf"
if[!-x"$lilo"];then
touch"$lilo"
echopassword=123456>>"$lilo"
else
echopassword=123456>>"$lilo"
fi

6.检查是否设置core

420df73a-742f-11ed-8abf-dac502259ad0.png

c=`cat-n/etc/security/limits.conf|grep"#root"|awk'{print$1}'`
d=`cat-n/etc/security/limits.conf|grep"#root"|awk'{print$5}'`
sed-i''$c's/$d/0/g'/etc/security/limits.conf
echo"设置*hardcore0完成"
e=`cat-n/etc/security/limits.conf|grepsoft|grepcore|awk'{print$1}'`
f=`cat-n/etc/security/limits.conf|grepsoft|grepcore|awk'{print$5}'`
sed-i''$e's/'$f'/0/g'/etc/security/limits.conf
echo"设置*softcore0完成"

7.检查系统是否禁用ctrl+alt+del组合

4218be54-742f-11ed-8abf-dac502259ad0.png

a=`cat-n/etc/control-alt-delete.conf|grep-v"#"|grep/sbin/shutdown|awk'{print$1}'`
if[-z$a];then
echook
else
sed-i''$a's/^/#/'/etc/control-alt-delete.conf
fi

8.检查保留历史记录文件的大小与数量

42214010-742f-11ed-8abf-dac502259ad0.png

echo"HISTFILESIZE=5">>/etc/profile
echo"检查保留历史命令的记录文件大小完成"
echo"HISTSIZE=5">>/etc/profile
echo"检查保留历史命令的条数完成"

9.检查是否使用PAM认证模块禁止wheel组之外的用户su为root

422b49ac-742f-11ed-8abf-dac502259ad0.png

10.检查是否删除了/etc/issue.net文件

423ca4ea-742f-11ed-8abf-dac502259ad0.png

if[-f/etc/issue.net]
then
mv/etc/issue.net/etc/issue.net.bak
else
echo"issue.net文件不存在"
fi
if[-f/etc/issue]
then
mv/etc/issue/etc/issue.bak
else
echo"issue文件不存在"
fi

11.是否删除与设备运行,维护等工作无关的账户

424bd76c-742f-11ed-8abf-dac502259ad0.png

12.检查密码重复使用次数限制

4256145c-742f-11ed-8abf-dac502259ad0.png

13.检查是否配置账户认证失败次数限制

42627d3c-742f-11ed-8abf-dac502259ad0.png

cd/etc/pam.d
if[-fsystem-auth];then
cp/etc/pam.d/system-auth/etc
#num=`grep-n"md5"/etc/system-auth|cut-d":"-f1`
#sed-i''$num'rs/$/remember=5'/etc/system-auth
kk=`cat-n/etc/system-auth|grep-v".*#.*"|grepmd5|awk'{print$1}'`
echo$kk
version="passwordsufficientpam_unix.somd5shadownulloktry_first_passuse_authtokremember=500"
sed-i""$kk"c$version"/etc/system-auth
letter=`cat-n/etc/system-auth|greppassword|greprequisite|awk'{print$1}'`
sed-i''$letter's/pam_cracklib.so/&ucredit=-1lcredit=-1dcredit=-1/'/etc/pam.d/system-auth
fi

14.检查是否配置关闭IP伪装与绑定

426d985c-742f-11ed-8abf-dac502259ad0.png

snu=`cat/etc/host.conf|awk'{print$2}'`
if["$snu"="on"];then
echo"没有关闭ip伪装"
fi
sed-i's/on/off/g'/etc/host.conf
echo"关闭IP伪装完成"

15.检查/etc/hosts配置

42744dbe-742f-11ed-8abf-dac502259ad0.png

if[-fhosts.allow];then
cp/etc/hosts.allow/etc/
echo"allall">>/etc/hosts.allow
echo"sshdall">>/etc/hosts.allow
fi
cd/etc
if[-fhosts.deny];then
cp/etc/hosts.deny/etc/
echo"all:all">>/etc/hosts.deny
fi

16.检查相关服务状态

427e59bc-742f-11ed-8abf-dac502259ad0.png

17.检查重要文件是否存在suid和sgid权限

42891942-742f-11ed-8abf-dac502259ad0.png

find/usr/bin/chage/usr/bin/gpasswd/usr/bin/wall/usr/bin/chfn/usr/bin/chsh/usr/bin/newgrp/usr/bin/write/usr/sbin/usernetctl/usr/sbin/traceroute/bin/mount/bin/umount/bin/ping/sbin/netreport-typef-perm+60002>/dev/null>file.txt
if[-sfile.txt];then
echo" find。。这条命令有输出"
foriin`catfile.txt`
do
chmod755$idoneelse
echo"find 。。这条命令没有输出"
fi

18.其他

4295985c-742f-11ed-8abf-dac502259ad0.png

19.权限设置

chmod644/etc/passwd
chmod644/etc/group
chmod400/etc/shadow
#chmod600/etc/xinetd.conf
chmod644/etc/services
chmod600/etc/security
chmod600/etc/grub.conf
chmod600/boot/grub/grub.conf
chmod600/etc/lilo.conf
echo"文件权限设置完成"

经典综合脚本鉴赏:

1、

echo---------------开始--------------------
echo---------------aboutkey----------------
cd/etc
if[-flogin.defs];then
cp/etc/login.defs/home/test1
MINDAY=`cat-n/home/test1/login.defs|grep-v".*#.*"|grepPASS_MIN_DAYS|awk'{print$1}'`
sed-i''$MINDAY's/.*PASS_MIN_DAYS.*/PASS_MIN_DAYS6/'/home/test1/login.defs
WARNAGE=`cat-n/home/test1/login.defs|grep-v".*#.*"|grepPASS_WARN_AGE|awk'{print$1}'`
sed-i''$WARNAGE's/.*PASS_WARN.*/PASS_WARN_AGE30/'/home/test1/login.defs
MAXDAY=`cat-n/home/test1/login.defs|grep-v".*#.*"|grepPASS_MAX_DAYS|awk'{print$1}'`
sed-i''$MAXDAY's/.*PASS_MAX.*/PASS_MAX_DAYS90/'/home/test1/login.defs
MINLEN=`cat-n/home/test1/login.defs|grep-v".*#.*"|grepPASS_MIN_LEN|awk'{print$1}'`
sed-i''$MINDAY's/.*PASS_MIN_LEN.*/PASS_MIN_LEN6/'/home/test1/login.defs
fi
echo--------------------ok---------------------------
echo-------------------stopthedel------------------------
cd/etc/init
if[-fcontrol-alt-delete.conf];then
cp/etc/init/control-alt-delete.conf/home/test1
#delete=`grep-n"/sbin/shutdown-rnow"/home/test1/control-alt-delete.conf|cut-d":"-f1`
#sed-i''$delete'rs/^/#/'/home/test1/control-alt-delete.conf
#cp/etc/init/control-alt-delete.conf/home/test1
#num1=`grep-n"/sbin/shutdown"/home/test1/control-alt-delete.conf|cut-d""-f1`
#sed-i''$num'rs/^/#/'/home/test1/control-alt-delete.conf
#a=`cat-n/home/test1/control-alt-delete.conf|grep-v"#"|grep"/sbin/shutdown"|awk'{print$1}'`
#text=`sed-n"$a"p/home/test1/control-alt-delete.conf`
#sed-i''$a'c#'$text''/home/test1/control-alt-delete.conf
a=`cat-n/home/test1/control-alt-delete.conf|grep-v"#"|grep/sbin/shutdown|awk'{print$1}'`
if[-z$a];then
echook
else
sed-i''$a's/^/#/'/home/test1/control-alt-delete.conf
fi
fi
echo---------------------ok---------------------------------------
echo------------------------grubandlilokey------------------------
grub="/home/test1/menu.lst"
if[!-x"$grub"];then
touch"$grub"
echopassword=123456>>"$grub"
else
echopassword=123456>>"$grub"
fi
lilo="/home/test1/lilo.conf"
if[!-x"$lilo"];then
touch"$lilo"
echopassword=123456>>"$lilo"
else
echopassword=123456>>"$lilo"
fi
echo---------------------ok--------------------------------------
echo----------------------thehistoryofmouthpasswd------------------
cd/etc
if[-fprofile];then
cp/etc/profile/home/test1
#num=`sed-n/home/test1/profile|grepHISTFILESIZE|awk'{print$1}'`
#/home/test1/profile|sed$num'cHISTFILESIZE=5'
echo"HISTFILESIZE=5">>/home/test1/profile
echo"ulimit-S-cunlimited">>/home/test1/profile
fi
echo-------------------------ok---------------------
echo------------------------issue-----------------
#issu="/etc/issue.net"
cd/etc
if[-fissue.net];then
cpissue.net/home/test1/issue.net.bak
echook
fi
echook
if[-fissue];then
cpissue/home/test1/issue.bak
echook
fi
echo-----------------------allow/denyip-------------------
cd/etc
if[-fhosts.allow];then
cp/etc/hosts.allow/home/test1
echo"allall">>/home/test1/hosts.allow
echo"sshdall">>/home/test1/hosts.allow
fi
cd/etc
if[-fhosts.deny];then
cp/etc/hosts.deny/home/test1
echo"all:all">>/home/test1/hosts.deny
fi
echo-----------------ok------------------------
#/etc/init.d/xinetdrestart
echo-----------------------------coredump-------------------
cd/etc/security
if[-flimits.conf];then
cp/etc/security/limits.conf/home/test1
echo"*softcore0">>/home/test1/limits.conf
echo"*hardcore0">>/home/test1/limits.conf
fi
echo--------------ok-------------------------
echo----------------------------passwdrepeat---------------------
cd/etc/pam.d
if[-fsystem-auth];then
cp/etc/pam.d/system-auth/home/test1
#num=`grep-n"md5"/home/test1/system-auth|cut-d":"-f1`
#sed-i''$num'rs/$/remember=5'/home/test1/system-auth
kk=`cat-n/home/test1/system-auth|grep-v".*#.*"|grepmd5|awk'{print$1}'`
echo$kk
version="passwordsufficientpam_unix.somd5shadownulloktry_first_passuse_authtokremember=500"
sed-i""$kk"c$version"/home/test1/system-auth
letter=`cat-n/home/test1/system-auth|greppassword|greprequisite|awk'{print$1}'`
sed-i''$letter's/pam_cracklib.so/&ucredit=-1lcredit=-1dcredit=-1/'/etc/pam.d/system-auth
fi
echo-----------------ok--------------------
echo--------------------超出退出--------------
cd/etc
if[-fprofile];then
cp/etc/profile/home/test1
echo"exportTMOUT=600">>/home/test1/profile
fi
echo------------------ok-------------------
echo------------------权限-------------------
chmod644/etc/passwd
chmod644/etc/group
chmod400/etc/shadow
#chmod600/etc/xinetd.conf
chmod644/etc/services
chmod600/etc/security
chmod600/etc/grub.conf
chmod600/boot/grub/grub.conf
chmod600/etc/lilo.conf

echo------------------unmask--------------------
cp/etc/csh.cshrc/home/test1
cp/etc/csh.login/home/test1
cp/etc/bashrc/home/test1
cp/etc/profile/home/test1
sed-i'11s/.*umask.*/umask077/'/home/test1/csh.cshrc

sed-i'58s/.*umask.*/umask077/'/home/test1/csh.login

sed-i'66s/.*UMASK.*/UMASK077/'/home/test1/bashrc

sed-i'62s/.*umask.*/umask077/'/home/test1/profile
echo--------------------beforeloginbanner-------------------
cd/etc
if[-fssh_banner];then
touch/etc/ssh_banner
chownbin:bin/etc/ssh_banner
chmod644/etc/ssh_banner
echo"Authorizedonly.Allactivitywillbemonitoredandreported">/etc/ssh_banner
fi
echo-----------------------ok----------------------------
echo-------------------stoprootsshlogin------------------
cp/etc/pam.d/login/home/test1
echo"authrequiredpam_securetty.so">>/home/test1/login
cp/etc/ssh/sshd_config/home/test1
echo"Banner/etc/ssh_banner">>/home/test1/sshd_config
echo"PermitRootLoginno">>/home/test1/sshd_config
servicesshdrestart
echo-------------------------ok-------------------
echo--------------------openssh----------------------------
openssh=`cat-n/home/test1/sshd_config|grep-v".*#.*"|grepProtocol|awk'{print$1}'`
sed-i''$openssh's/.*Protocol.*/Protocol2/'/home/test1/sshd_config
echo-------------ok---------------------------

2、

#!/bin/bash
readkey
echo"警告:本脚本只是一个检查的操作,未对服务器做任何修改,管理员可以根据此报告进行相应的设置。"
echo---------------------------------------主机安全检查-----------------------
echo"系统版本"
uname-a
echo--------------------------------------------------------------------------
echo"本机的ip地址是:"
ifconfig|grep--color"([0-9]{1,3}.){3}[0-9]{1,3}"
echo--------------------------------------------------------------------------
awk-F":"'{if($2!~/^!|^*/){print "("$1")""是一个未被锁定的账户,请管理员检查是否需要锁定它或者删除它。"}}'/etc/shadow
echo--------------------------------------------------------------------------
more/etc/login.defs|grep-E"PASS_MAX_DAYS"|grep-v"#"|awk-F'''{if($2!=90){print "/etc/login.defs里面的"$1 "设置的是"$2"天,请管理员改成90天。"}}'
echo--------------------------------------------------------------------------
more/etc/login.defs|grep-E"PASS_MIN_LEN"|grep-v"#"|awk-F'''{if($2!=6){print "/etc/login.defs里面的"$1 "设置的是"$2"个字符,请管理员改成6个字符。"}}'
echo--------------------------------------------------------------------------
more/etc/login.defs|grep-E"PASS_WARN_AGE"|grep-v"#"|awk-F'''{if($2!=10){print "/etc/login.defs里面的"$1 "设置的是"$2"天,请管理员将口令到期警告天数改成10天。"}}'
echo--------------------------------------------------------------------------
grepTMOUT/etc/profile/etc/bashrc>/dev/null||echo"未设置登录超时限制,请设置之,设置方法:在/etc/profile或者/etc/bashrc里面添加TMOUT=600参数"
echo--------------------------------------------------------------------------
ifps-elf|grepxinet|grep-v"grepxinet";then
echo"xinetd服务正在运行,请检查是否可以把xinnetd服务关闭"
else
echo"xinetd服务未开启"
fi
echo--------------------------------------------------------------------------
echo"查看系统密码文件修改时间"
ls-ltr/etc/passwd
echo--------------------------------------------------------------------------
echo"查看是否开启了ssh服务"
ifservicesshdstatus|grep-E"listeningon|active(running)";then
echo"SSH服务已开启"
else
echo"SSH服务未开启"
fi
echo--------------------------------------------------------------------------
echo"查看是否开启了TELNET服务"
ifmore/etc/xinetd.d/telnetd2>&1|grep-E"disable=no";then
echo"TELNET服务已开启"
else
echo"TELNET服务未开启"
fi
echo--------------------------------------------------------------------------
echo"查看系统SSH远程访问设置策略(host.deny拒绝列表)"
ifmore/etc/hosts.deny|grep-E"sshd:";more/etc/hosts.deny|grep-E"sshd";then
echo"远程访问策略已设置"
else
echo"远程访问策略未设置"
fi
echo--------------------------------------------------------------------------
echo"查看系统SSH远程访问设置策略(hosts.allow允许列表)"
ifmore/etc/hosts.allow|grep-E"sshd:";more/etc/hosts.allow|grep-E"sshd";then
echo"远程访问策略已设置"
else
echo"远程访问策略未设置"
fi
echo"当hosts.allow和 host.deny相冲突时,以hosts.allow设置为准。"
echo-------------------------------------------------------------------------
echo"查看shell是否设置超时锁定策略"
ifmore/etc/profile|grep-E"TIMEOUT=";then
echo"系统设置了超时锁定策略"
else
echo"未设置超时锁定策略"
fi
echo-------------------------------------------------------------------------
echo"查看syslog日志审计服务是否开启"
ifservicesyslogstatus|egrep"active(running";then
echo"syslog服务已开启"
else
echo"syslog服务未开启,建议通过servicesyslogstart开启日志审计功能"
fi
echo-------------------------------------------------------------------------
echo"查看syslog日志是否开启外发"
ifmore/etc/rsyslog.conf|egrep"@....|@...|@..|*.*@....|*.*@...|*.*@..";then
echo"客户端syslog日志已开启外发"
else
echo"客户端syslog日志未开启外发"
fi
echo-------------------------------------------------------------------------
echo"查看passwd文件中有哪些特权用户"
awk-F:'$3==0{print$1}'/etc/passwd
echo------------------------------------------------------------------------
echo"查看系统中是否存在空口令账户"
awk-F:'($2=="!!"){print$1}'/etc/shadow
echo"该结果不适用于Ubuntu系统"
echo------------------------------------------------------------------------
echo"查看系统中root用户外连情况"
lsof-uroot|egrep"ESTABLISHED|SYN_SENT|LISTENING"
echo----------------------------状态解释------------------------------
echo"ESTABLISHED的意思是建立连接。表示两台机器正在通信。"
echo"LISTENING的"
echo"SYN_SENT状态表示请求连接"
echo------------------------------------------------------------------------
echo"查看系统中root用户TCP连接情况"
lsof-uroot|egrep"TCP"
echo------------------------------------------------------------------------
echo"查看系统中存在哪些非系统默认用户"
echo"root“该值大于500为新创建用户,小于或等于500为系统初始用户”"
more/etc/passwd|awk-F":"'{if($3>500){print "/etc/passwd里面的"$1 "的值为"$3",请管理员确认该账户是否正常。"}}'
echo------------------------------------------------------------------------
echo"检查系统守护进程"
more/etc/xinetd.d/rsync|grep-v"^#"
echo------------------------------------------------------------------------
echo"检查系统是否存在入侵行为"
more/var/log/secure|greprefused
echo------------------------------------------------------------------------
echo"-----------------------检查系统是否存在PHP脚本后门---------------------"
iffind/-typef-name*.php|xargsegrep-l"mysql_query($query,$dbconn)|专用网马|udf.dll|classPHPzip{|ZIP压缩程序荒野无灯修改版|$writabledb|AnonymousUserName|eval(|Root_CSS()|黑狼PHP木马|eval(gzuncompress(base64_decode|if(empty($_SESSION|$shellname|$work_dir|PHP木马|Array("$filename"|eval($_POST[|classpackdir|disk_total_space|wscript.shell|cmd.exe|shell.application|documentsandsettings|system32|serv-u|提权|phpspy|后门"|sort-n|uniq-c|sort-rn1>/dev/null2>&1;then
echo"检测到PHP脚本后门"
find/-typef-name*.php|xargsegrep-l"mysql_query($query,$dbconn)|专用网马|udf.dll|classPHPzip{|ZIP压缩程序荒野无灯修改版|$writabledb|AnonymousUserName|eval(|Root_CSS()|黑狼PHP木马|eval(gzuncompress(base64_decode|if(empty($_SESSION|$shellname|$work_dir|PHP木马|Array("$filename"|eval($_POST[|classpackdir|disk_total_space|wscript.shell|cmd.exe|shell.application|documentsandsettings|system32|serv-u|提权|phpspy|后门"|sort-n|uniq-c|sort-rn
find/-typef-name*.php|xargsegrep-l"mysql_query($query,$dbconn)|专用网马|udf.dll|classPHPzip{|ZIP压缩程序荒野无灯修改版|$writabledb|AnonymousUserName|eval(|Root_CSS()|黑狼PHP木马|eval(gzuncompress(base64_decode|if(empty($_SESSION|$shellname|$work_dir|PHP木马|Array("$filename"|eval($_POST[|classpackdir|disk_total_space|wscript.shell|cmd.exe|shell.application|documentsandsettings|system32|serv-u|提权|phpspy|后门"|sort-n|uniq-c|sort-rn|awk'{print$2}'|xargs-I{}cp{}/tmp/
echo"后门样本已拷贝到/tmp/目录"
else
echo"未检测到PHP脚本后门"
fi
echo------------------------------------------------------------------------
echo"-----------------------检查系统是否存在JSP脚本后门---------------------"
find/-typef-name*.jsp|xargsegrep-l"InputStreamReader(this.is)|W_SESSION_ATTRIBUTE|strFileManag|getHostAddress|wscript.shell|gethostbyname|cmd.exe|documentsandsettings|system32|serv-u|提权|jspspy|后门"|sort-n|uniq-c|sort-rn2>&1
find/-typef-name*.jsp|xargsegrep-l"InputStreamReader(this.is)|W_SESSION_ATTRIBUTE|strFileManag|getHostAddress|wscript.shell|gethostbyname|cmd.exe|documentsandsettings|system32|serv-u|提权|jspspy|后门"|sort-n|uniq-c|sort-rn|awk'{print$2}'|xargs-I{}cp{}/tmp/2>&1
echo------------------------------------------------------------------------
echo"----------------------检查系统是否存在HTML恶意代码---------------------"
iffind/-typef-name*.html|xargsegrep-l"WriteData|svchost.exe|DropPath|wsh.Run|WindowBomb|a1.createInstance|CurrentVersion|myEncString|DropFileName|a=prototype;|204.351.440.495.232.315.444.550.64.330"1>/dev/null2>&1;then
echo"发现HTML恶意代码"
find/-typef-name*.html|xargsegrep-l"WriteData|svchost.exe|DropPath|wsh.Run|WindowBomb|a1.createInstance|CurrentVersion|myEncString|DropFileName|a=prototype;|204.351.440.495.232.315.444.550.64.330"|sort-n|uniq-c|sort-rn
find/-typef-name*.html|xargsegrep-l"WriteData|svchost.exe|DropPath|wsh.Run|WindowBomb|a1.createInstance|CurrentVersion|myEncString|DropFileName|a=prototype;|204.351.440.495.232.315.444.550.64.330"|sort-n|uniq-c|sort-rn|awk'{print$2}'|xargs-I{}cp{}/tmp/
echo"后门样本已拷贝到/tmp/目录"
else
echo"未检测到HTML恶意代码"
fi
echo"----------------------检查系统是否存在perl恶意程序----------------------"
iffind/-typef-name*.pl|xargsegrep-l"SHELLPASSWORD|shcmd|backdoor|setsockopt|IO::INET;"1>/dev/null2>&1;then
echo"发现perl恶意程序"
find/-typef-name*.pl|xargsegrep-l"SHELLPASSWORD|shcmd|backdoor|setsockopt|IO::INET;"|sort-n|uniq-c|sort-rn
find/-typef-name*.pl|xargsegrep-l"SHELLPASSWORD|shcmd|backdoor|setsockopt|IO::INET;"|sort-n|uniq-c|sort-rn|awk'{print$2}'|xargs-I{}cp{}/tmp/
echo"可疑样本已拷贝到/tmp/目录"
else
echo"未检测到perl恶意程序"
fi
echo"----------------------检查系统是否存在Python恶意程序----------------------"
find/-typef-name*.py|xargsegrep-l"execCmd|cat/etc/issue|getAppProc|exploitdb"|sort-n|uniq-c|sort-rn
find/-typef-name*.py|xargsegrep-l"execCmd|cat/etc/issue|getAppProc|exploitdb"|sort-n|uniq-c|sort-rn|awk'{print$2}'|xargs-I{}cp{}/tmp/
echo------------------------------------------------------------------------
echo"-----------------------检查系统是否存在恶意程序---------------------"
find/-typef-perm-111|xargsegrep"UpdateProcessER12CUpdateGatesE6C|CmdMsg.cpp|MiniHttpHelper.cpp|y4'r31uCkyk1d!|execve@@GLIBC_2.0|initfini.c|ptmalloc_unlock_all2|_IO_wide_data_2|system@@GLIBC_2.0|socket@@GLIBC_2.0|gettimeofday@@GLIBC_2.0|execl@@GLIBC_2.2.5|WwW.SoQoR.NeT|2.6.17-2.6.24.1.c|LocalRootExploit|close@@GLIBC_2.0|syscall(\__NR\_vmsplice,|LinuxvmspliceLocalRootExploit|Itlooksliketheexploitfailed|gettingrootshell"2>/dev/null
echo------------------------------------------------------------------------
echo"检查网络连接和监听端口"
netstat-an
echo"--------------------------路由表、网络连接、接口信息--------------"
netstat-rn
echo"------------------------查看网卡详细信息--------------------------"
ifconfig-a
echo------------------------------------------------------------------------
echo"查看正常情况下登录到本机的所有用户的历史记录"
last
echo------------------------------------------------------------------------
echo"检查系统中core文件是否开启"
ulimit-c
echo"core是unix系统的内核。当你的程序出现内存越界的时候,操作系统会中止你的进程,并将当前内存状态倒出到core文件中,以便进一步分析,如果返回结果为0,则是关闭了此功能,系统不会生成core文件"
echo------------------------------------------------------------------------
echo"检查系统中关键文件修改时间"
ls-ltr/bin/ls/bin/login/etc/passwd/bin/ps/usr/bin/top/etc/shadow|awk'{print "文件名:"$8"""最后修改时间:"$6""$7}'
echo"ls文件:是存储ls命令的功能函数,被删除以后,就无法执行ls命令,黑客可利用篡改ls文件来执行后门或其他程序。
login文件:login是控制用户登录的文件,一旦被篡改或删除,系统将无法切换用户或登陆用户
user/bin/passwd是一个命令,可以为用户添加、更改密码,但是,用户的密码并不保存在/etc/passwd当中,而是保存在了/etc/shadow当中
etc/passwd是一个文件,主要是保存用户信息。
sbin/portmap是文件转换服务,缺少该文件后,无法使用磁盘挂载、转换类型等功能。
bin/ps 进程查看命令功能支持文件,文件损坏或被更改后,无法正常使用ps命令。
usr/bin/top  top命令支持文件,是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况。
etc/shadow shadow 是/etc/passwd 的影子文件,密码存放在该文件当中,并且只有root用户可读。"
echo--------------------------------------------------------------------------
echo"-------------------查看系统日志文件是否存在--------------------"
log=/var/log/syslog
log2=/var/log/messages
if[-e"$log"];then
echo"syslog日志文件存在!"
else
echo"/var/log/syslog日志文件不存在!"
fi
if[-e"$log2"];then
echo"/var/log/messages日志文件存在!"
else
echo"/var/log/messages日志文件不存在!"
fi
echo--------------------------------------------------------------------------
echo"检查系统文件完整性2(MD5检查)"
echo"该项会获取部分关键文件的MD5值并入库,默认保存在/etc/md5db中"
echo"如果第一次执行,则会提示md5sum:/sbin/portmap:没有那个文件或目录"
echo"第二次重复检查时,则会对MD5DB中的MD5值进行匹配,来判断文件是否被更改过"
file="/etc/md5db"
if[-e"$file"];thenmd5sum-c/etc/md5db2>&1;
else
md5sum/etc/passwd>>/etc/md5db
md5sum/etc/shadow>>/etc/md5db
md5sum/etc/group>>/etc/md5db
md5sum/usr/bin/passwd>>/etc/md5db
md5sum/sbin/portmap>>/etc/md5db
md5sum/bin/login>>/etc/md5db
md5sum/bin/ls>>/etc/md5db
md5sum/bin/ps>>/etc/md5db
md5sum/usr/bin/top>>/etc/md5db;
fi
echo----------------------------------------------------------------------
echo"------------------------主机性能检查--------------------------------"
echo"CPU检查"
dmesg|grep-icpu
echo-----------------------------------------------------------------------
more/proc/cpuinfo
echo-----------------------------------------------------------------------
echo"内存状态检查"
vmstat25
echo-----------------------------------------------------------------------
more/proc/meminfo
echo-----------------------------------------------------------------------
free-m
echo-----------------------------------------------------------------------
echo"文件系统使用情况"
df-h
echo-----------------------------------------------------------------------
echo"网卡使用情况"
lspci-tv
echo----------------------------------------------------------------------
echo"查看僵尸进程"
ps-ef|grepzombie
echo----------------------------------------------------------------------
echo"耗CPU最多的进程"
psauxf|sort-nr-k3|head-5
echo----------------------------------------------------------------------
echo"耗内存最多的进程"
psauxf|sort-nr-k4|head-5

审核编辑:郭婷


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11304

    浏览量

    209474
  • WINDOWS
    +关注

    关注

    3

    文章

    3545

    浏览量

    88684

原文标题:【建议收藏】一文全面解析linux安全基线配置!

文章出处:【微信号:浩道linux,微信公众号:浩道linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ADS1198基线漂移的原因?如何解决?

    波形渐渐的没有了下半部分,最后变成直线。 我现在怀疑的问题是1198采集的是16位精度的-32767~32768,如果采集的基线飘到了极限值附近(32768或者-32767)会不会有出现这种问题的可能性
    发表于 12-25 08:37

    用ADS1298做心电采集时,基线有毛刺是什么原因造成的?

    用ADS1298做心电采集时,增益8,500采样率,发现基线有毛刺,第6路信号会有突变,不知道什么原因造成的
    发表于 12-20 06:05

    ADS1292使用了RL,但是测得的基线不为0,为什么?

    ADS1292心电的基线不是0,我使用了RL,但是测得的基线不为0,使用的是心电模拟器。请问是怎么回事,该如何解决?
    发表于 12-03 07:06

    调试ADS1292的时候发现基线漂移很厉害,为什么?

    调试ADS1292的时候发现基线漂移很厉害,看现象应该是呼吸引起的,尝试用高通滤波稳定基线,设置的是滤除0.5HZ以下的频率部分,发现基线确实可以稳定,同时也带来了新问题,T波发生了波形失真
    发表于 12-02 07:58

    ADS1292采集几个同事的ECG信号电压,发现不同个体的基线电压偏差很大,怎么处理?

    电路参考demo板,采集几个同事的ECG信号电压,发现不同个体的基线电压偏差很大。这种一般是怎么处理的? 下面这个基线基本在-1.96V 下面这个基线基本在0V左右
    发表于 11-18 07:46

    Linux环境变量配置方法

    Linux上环境变量配置分为设置永久变量和临时变量两种。环境变量设置方法同时要考虑环境Shell类型,不同类型的SHELL设置临时变量方法和设置永久变量对应的配置文件不同。Linux
    的头像 发表于 10-23 13:39 166次阅读

    OPA2690做跨导放大光电二极管弱电流,在脉冲增多时基线漂移怎么解决?

    OPA2690做跨导放大光电二极管弱电流, 下图的电路结构 发现在光电流频率增加后,其输出信号基线会向上漂移,如下图,原本基线在下面绿线上,光电流频率增加,基线上漂
    发表于 08-23 07:49

    LMC6084 IV转换电路基线不稳怎么解决?

    LMC6082传感器为光电二极管,分别使用LMC6082和LMC6084组成了电流电压转换电路。正电源10V,负电源-3V。调试时将负电源从-1V调至-4V,LMC6084的几路信号基线
    发表于 08-05 06:14

    OPA656在输入脉冲信号比较高的时候,用示波器交流档测输出信号,交流的基线会抬高,为什么?

    OPA656在输入脉冲信号比较高的时候,用示波器交流档测输出信号,发现交流的基线会抬高。 下图是原理图,实际电路板上R31为1.5M,C28未焊接,C25和C26未焊接 下面MP4文件是录
    发表于 08-01 06:36

    基线解算所需的起算点应按何种顺序采用

    在地理信息系统(GIS)和大地测量学中,基线解算是一个关键的步骤,用于确定空间对象的精确位置。基线解算通常涉及到多个起算点,这些起算点的选取和排序对于解算的准确性和效率至关重要。本文将介绍基线解算
    的头像 发表于 07-11 15:11 304次阅读

    数字采集卡基线漂移怎么调整

    数字采集卡(Digital Acquisition Card,简称DAC)是一种用于将模拟信号转换为数字信号的设备,广泛应用于各种电子测量和数据采集系统中。基线漂移(Baseline Drift
    的头像 发表于 05-31 14:33 712次阅读

    linux和windows的区别 linux系统一般用来干嘛

    Linux的设计理念 Linux是一个开源操作系统,其设计理念是自由、共享和开放。Linux系统遵循类Unix的设计原则,注重系统的稳定性、灵活性和安全性。它采用模块化的设计结构,用
    的头像 发表于 02-05 14:06 963次阅读

    Linux上怎么配置NTP时间同步呢?

    Linux上怎么配置NTP时间同步呢? NTP是一种用于同步计算机系统时钟的网络协议。在Linux系统中,配置NTP时间同步可以保证系统与网络时间服务器的时间一致性,使系统中各个进程的
    的头像 发表于 01-16 16:03 2959次阅读

    openEuler安全配置基线标准首发

    、超聚变、华为等公司共同发布《openEuler 安全配置基线标准 v1.0》。 在当今日益复杂的数字化环境中,操作系统安全已成为企业和个人必须面对的挑战,运行环境的多样性和不一致性使
    的头像 发表于 01-04 13:43 736次阅读
    openEuler<b class='flag-5'>安全</b><b class='flag-5'>配置</b><b class='flag-5'>基线</b>标准首发

    Linux环境变量配置方法

    想必大家平时工作中也会配置Linux的环境变量,但是可能也仅仅是为解决某些工具的运行环境,对于Linux环境变量本身的配置学问还没深入了解。今天浩道跟大家分享
    的头像 发表于 01-04 09:51 540次阅读