Linux安全检查基线

1.检查用户登录情况

lastlog命令,检查最后登录时间

[root@localhost]# lastlog
用户名           端口     来自             最后登陆时间
root             pts/0    192.168.124.88   四 2月 18 10:05:04 +0800 2021
bin              pts/1                     二 7月 21 18:35:54 +0800 2020
daemon                                     **从未登录过**
adm                                        **从未登录过**
lp                                         **从未登录过**
sync                                       **从未登录过**
shutdown                                   **从未登录过**
ossec                                      **从未登录过**
ntp                                        **从未登录过**
test                                       **从未登录过**
testx            pts/1                     二 7月 21 18:35:54 +0800 2020
hids             pts/0    192.168.124.88   四 2月 18 10:05:04 +0800 2021
tss                                        **从未登录过**
tcpdump                                    **从未登录过**

w命令

[root@localhost]# w
 14:09:13 up 454 days, 17:19,  1 user,  load average: 0.18, 0.17, 0.15
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.124.88   10:05    1.00s  0.05s  0.05s -bash

lastb命令,检查登录失败日志

[root@localhost]# lastb
root     ssh:notty    192.168.60.48    Thu Feb  4 17:39 - 17:39  (00:00)

btmp begins Thu Feb  4 17:39:35 2021

2.检查命令历史记录

root用户history

[root@localhost]# history
    1  cd /opt/security-agent/plugin/
    2  md5sum run_filebeat.sh
    3  ps -aux | grep filebeat
    4  cd /var/log/security-agent/
    5  tail -n 100 2021-1-11.log
    6  ps -aux
    7  ps -aux | grep filebeat

打开/home各帐号目录下的.bash_history,查看普通帐号的历史命令

cat .bash_history >> history.txt

保存1万条命令

sed -i 's/^HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile

在/etc/profile的文件尾部添加如下行数配置信息,可以显示登录的IP地址、执行命令时间等信息:

USER_IP=`who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g'`
if [ "$USER_IP" = "" ]
then
USER_IP=`hostname`
fi
export HISTTIMEFORMAT="%F %T $USER_IP `whoami` "
shopt -s histappend
export PROMPT_COMMAND="history -a"

让配置生效

source /etc/profile

3.检查端口开放

使用netstat 网络连接命令,分析可疑端口、IP、PID

[root@localhost]# netstat -antlp|more
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:26379           0.0.0.0:*               LISTEN      5332/redis-sentinel
tcp        0      0 0.0.0.0:6379            0.0.0.0:*               LISTEN      5231/redis-server 0
tcp        0      0 192.168.3.155:2379      0.0.0.0:*               LISTEN      32340/./etcd
tcp        0      0 127.0.0.1:2379          0.0.0.0:*               LISTEN      32340/./etcd
tcp        0      0 192.168.3.155:2380      0.0.0.0:*               LISTEN      32340/./etcd
tcp        0      0 192.168.3.155:8300      0.0.0.0:*               LISTEN      32536/./consul
tcp        0      0 192.168.3.155:8301      0.0.0.0:*               LISTEN      32536/./consul
tcp        0      0 192.168.3.155:8302      0.0.0.0:*               LISTEN      32536/./consul
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1091/sshd

4.检查进程

ps命令和top命令,这个就不解释了。。

ps aux
top

5.开机启动项

查看运行级别命令 runlevel

[root@localhost]# runlevel
N 3

运行级别 含义
0 关机
1 单用户模式,可以想象为windows的安全模式,主要用于系统修复
2 不完全的命令行模式,不含NFS服务
3 完全的命令行模式,就是标准字符界面
4 系统保留
5 图形模式
6 重启动

检查启动项

more /etc/rc.local /etc/rc.d/rc[0~6].d

ls -l /etc/rc.d/rc[0~6].d/

6.定时任务

crontab

crontab -l  #列出某个用户cron服务的详细内容

默认编写的crontab文件会保存在 /var/spool/cron/用户名
例如: /var/spool/cron/root

查看目录中是否存在恶意脚本

more /var/spool/cron/* 
more /etc/crontab
more /etc/cron.d/*
more /etc/cron.daily/* 
more /etc/cron.hourly/* 
more /etc/cron.monthly/*
more /etc/cron.weekly/
more /etc/anacrontab
more /var/spool/anacron/*

7.服务检查

查询已安装的服务

[root@localhost]# chkconfig  --list

注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。

      要列出 systemd 服务,请执行 'systemctl list-unit-files'。
      查看在具体 target 启用的服务请执行
      'systemctl list-dependencies [target]'。

netconsole      0:关 1:关 2:关 3:关 4:关 5:关 6:关
network         0:关 1:关 2:开 3:开 4:开 5:开 6:关

查看当前服务

ps aux | grep crond 

查看服务enabled状态

systemctl list-unit-files | grep enabled

8.系统日志检查

日志默认存放位置:/var/log/
查看日志配置情况:more /etc/rsyslog.conf

文件路径 说明
/var/log/cron 记录了系统定时任务相关的日志
/var/log/cups 记录打印信息的日志
/var/log/dmesg 记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息
/var/log/mailog 记录邮件信息
/var/log/message 记录系统重要信息的日志。这个日志文件中会记录Linux系统的绝大多数重要信息,如果系统出现问题时,首先要检查的就应该是这个日志文件
/var/log/btmp 记录错误登录日志,这个文件是二进制文件,不能直接vi查看,而要使用lastb命令查看
/var/log/lastlog 记录系统中所有用户最后一次登录时间的日志,这个文件是二进制文件,不能直接vi,而要使用lastlog命令查看
/var/log/wtmp 永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。同样这个文件也是一个二进制文件,不能直接vi,而需要使用last命令来查看
/var/log/utmp 记录当前已经登录的用户信息,这个文件会随着用户的登录和注销不断变化,只记录当前登录用户的信息。同样这个文件不能直接vi,而要使用w,who,users等命令来查询
/var/log/secure 记录验证和授权方面的信息,只要涉及账号和密码的程序都会记录,比如SSH登录,su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中

定位有多少IP在爆破主机的root帐号:

grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more

定位有哪些IP在爆破:

grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c

爆破用户名字典

grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr

登录成功的IP

grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more

登录成功的日期、用户名、IP

grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}' 

增加用户的日志

grep "useradd" /var/log/secure 

删除用户的日志

grep "userdel" /var/log/secure

查看具有root权限的用户

awk -F: '$3==0{print $1}' /etc/passwd

查看可使用ssh登录的用户

cat /etc/passwd | grep -E '/bin/bash'
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,264评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,549评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,389评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,616评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,461评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,351评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,776评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,414评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,722评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,760评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,537评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,381评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,787评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,030评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,304评论 1 252
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,734评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,943评论 2 336

推荐阅读更多精彩内容

  • 什么是主机安全 说明:本次文档是根据某厂的主机合规分析报告内容进行整改的,整改后评分达到90分。本次试验环境为Ce...
    胖_c696阅读 2,027评论 0 6
  • Linux 系统目录结构 登录系统后,在当前命令窗口下输入命令: 你会看到如下图所示: 树状目录结构: 以下是对这...
    _07阅读 1,347评论 0 20
  • 夜莺2517阅读 127,696评论 1 9
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,505评论 28 53
  • 信任包括信任自己和信任他人 很多时候,很多事情,失败、遗憾、错过,源于不自信,不信任他人 觉得自己做不成,别人做不...
    吴氵晃阅读 6,165评论 4 8