linux服务器入侵检测

检查Linux系统被入侵

1. 检查帐户

	less /etc/passwd
	grep :0: /etc/passwd						(检查是否产生了新用户,和UID、GID是0的用户)
	ls -l /etc/passwd							(查看文件修改日期)
	awk -F: ‘$3= =0 {print $1}’ /etc/passwd		(查看是否存在特权用户)
	awk -F: ‘length($2)= =0 {print $1}’ /etc/shadow(查看是否存在空口令帐户)

2. 检查日志

	journalctl									显示所有日志
	journalctl -n 10							查看最后10条日志
	journalctl -f								跟踪日志,让日志动态输出
	journalctl -p err..alert					只显示冲突、告警和错误
	journalctl -u nginx.service					显示某个单元日志 可同时显示多个添加多个 -u nginx.service -u php-fom.service)
	journalctl --since "20 min ago" 			查找20分钟前的日志
	journalctl --since today 					查找今天的日志
	journalctl --until 2019-4-24 				查找2018-10-23日期的日志
	journalctl --until 2019-4-30 | nl > 1.txt	查找2019-4-30之前的所有日志并导出到指定文件
	journalctl -k								查看内核日志
	journalctl _UID=1000						查找指定用户(UID)日志
	systemctl list-unit-files					查看系统所有服务
	netstat -tlunp								查看所有开启的端口
	last(查看正常情况下登录到本机的所有用户的历史记录)
		注意”entered promiscuous mode”
		注意错误信息
		注意Remote Procedure Call (rpc) programs with a log entry that includes a large number (20) strange characters(-^PM-^PM-^PM-^PM-^PM-^PM-^PM-^PM)

3. 检查进程

	ps -aux									(注意UID是0的)
	lsof -p pid								(察看该进程所打开端口和文件)
	cat /etc/inetd.conf | grep -v “^#”		(检查守护进程)

	检查隐藏进程
	ps -ef|awk ‘{print }’|sort -n|uniq 1
	ls /porc |sort -n|uniq 2
	diff 1 2

4. 检查文件

	find / -uid 0 –perm -4000 –print
	find / -size +10000k –print
	find / -name “…” –print
	find / -name “.. ” –print
	find / -name “. ” –print
	find / -name ” ” –print

注意SUID文件,可疑大于10M和空格文件
	find / -name core -exec ls -l {} ;		(检查系统中的core文件)

检查系统文件完整性
	rpm –qf /bin/ls
	rpm -qf /bin/login
	md5sum –b 文件名
	md5sum –t 文件名

5. 检查RPM

	rpm -Va
输出格式:
	S – File size differs
	M – Mode differs (permissions)
	5 – MD5 sum differs
	D – Device number mismatch
	L – readLink path mismatch
	U – user ownership differs
	G – group ownership differs
	T – modification time differs

注意相关的 /sbin, /bin, /usr/sbin, and /usr/bin

6. 检查网络

	ip link | grep PROMISC				(正常网卡不该在promisc模式,可能存在sniffer)
	lsof –i
	netstat –nap						(察看不正常打开的TCP/UDP端口)
	arp –a

7. 检查计划任务 注意root和UID是0的schedule

	crontab –u root –l
	cat /etc/crontab
	ls /etc/cron.*

8. 检查后门

	cat /etc/crontab
	ls /var/spool/cron/
	cat /etc/rc.d/rc.local
	ls /etc/rc.d
	ls /etc/rc3.d
	find / -type f -perm 4000

9.检查系统服务列表,防止一些程序加入到开机自启动中

	systemctl list-unit-files

10.账号文件

	/etc/passwd 					##用户信息
	/etc/shadow 					##用户密码信息
	/etc/profile 					##系统配置文件,环境变量等信息
	/home/用户/.bash_profile 		##用户独有环境配置文件
	/etc/rc.local 					##用户自定义开机执行操作文件

11.历史命令记录在/.bash_history文件中

	History 						##查看历史命令
	History –w 						##将历史命令写入到文件中
	History –c 						##清除内存中历史命令
	HISTSIZE=100 					##定义记录历史命令的条数,默认1000
	HISTTIMEFORMAT=”%F-%T” 			##记录历史命令时间
	HISTFTILE=”文件” 				##第一历史命令存放文件,注意必须有写入权限

你可能感兴趣的:(linux,服务器)