邓老师 发布的文章

1.查看异常进程活动-查找是否有异常进程和端口占用

1.1 查找占用 cpu 最多的进程

  • 运行 top 命令后,键入大写字母 P 按 cpu 排序

1.2 查找占用内存最多的进程

  • 运行 top 命令后,键入大写字母 M
  • ps aux | sort -k4nr

1.3 查找进程对应的文件

  • ls -la /proc/$pid/exe
  • ls -la /proc/$pid

1.4 跟踪异常进程运行情况

  • strace -tt -T -e trace=all -p $pid

1.5 查看进程打开的文件

  • lsof -p $pid

1.6 查看进程端口情况

  • 查看所有端口 netstat -anltp
  • 查看指定进程的端口 netstat -anltp | grep $pid
  • netstat -apn|more

1.7 清除恶意进程

  • 清除可疑进程的进程链: ps -elf | grep [pid] kill -9 [pid]

2.查看账号安全

2.1 查看是否有存在新增异常账号

  • 查找特权用户 awk -F ":" '$3==0{print $1}' /etc/passwd
  • 查找可以远程登录的账号信息 awk '/\$1|\$6/{print $1}' /etc/shadow
  • 查找 sudo 权限账户 cat /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"

2.2 查看是否有账号异常登录情况

  • 查看当前登录用户和其行为 w
  • 查看所有用户最后一次登录的时间 lastlog
  • 查看错误登陆信息 lasstb
  • 查看所有用户的登录注销信息及系统的启动、重启及关机事件 last
  • 查看登录成功的日期、用户名及 ip grep "Accepted " /var/log/secure* | awk '{print $1,$2,$3,$9,$11}'
  • 查看试图爆破主机的 ip

    grep refused /var/log/secure* | awk {'print $9'} | sort | uniq -c |sort -nr | more
    
    grep "Failed password" /var/log/secure* | grep -E -o "(([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3}))" | uniq -c
  • 查看有哪些 ip 在爆破主机的 root 账号
    grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort
  • 查看爆破使用的用户名字典
    grep "Failed password" /var/log/secure | awk {'print $9'} | sort | uniq -c | sort -nr

3.检查开机启动项

一般通过crontab -l命令即可检测到定时任务后门。不同的 linux 发行版可能查看开机启动项的文件不大相同,Debian 系 linux 系统一般是通过查看/etc/init.d目录有无最近修改和异常的开机启动项。而 Redhat 系的 linux 系统一般是查看/etc/rc.d/init.d或者/etc/systemd/system等目录。

依次排查:

/var/spool/cron/*
/etc/crontab
/etc/cron.d/*
/etc/cron.daily/*
/etc/cron.hourly/*
/etc/cron.monthly/*
/etc/cron.weekly/
/etc/anacrontab
/var/spool/anacron/*
  • cat /etc/rc.local
  • cat /etc/init.d/rc.local
  • chkconfig --list
  • ls -alt /etc/init.d
  • 查看 anacron 异步定时任务 cat/etc/anacrontab
  • 枚举主机所有服务 service--status-all

4.查找异常文件

4.1 查看最近一段时间内被修改的系统文件

  • find /etc/ /usr/bin/ /usr/sbin/ /bin/ /usr/local/bin/ -type f -mtime -T | xargs ls -la

4.2 按时间排序,确认最近是否有命令被替换,可以结合 rpm -Va 命令

  • ls -alt /usr/bin /usr/sbin /bin /usr/local/bin
  • rpm -Va>rpm.log

4.3 查看指定目录下文件时间的排序

  • ls -alt | head -n 10

4.4 使用 find 指令查找限定时间范围的文件

  • sudo find ./ -cmin -10 -name "*.php"

5.排查恶意 alias

检查 ~/.bashrc~/.bash_profile

6.排查恶意 ssh 公钥

  • /etc/.ssh/AuthorizedKeys
  • ~/.ssh/AuthorizedKeys

7.系统文件被替换的情况下使用busybox

被替换的系统文件通常为 ld.so.preload

  • busybox ps -ef|grep watchdogs
  • busybox ps -ef|grep ksoftirqds

8.借助工具查杀病毒和 rootkit

8.1 查杀 rootkit

chkrootkit (下载地址-http://www.chkrootkit.org)
rkhunter (下载地址-http://rkhunter.sourceforge.net)

8.2 查杀病毒

clamav(下载地址-http://www.clamav.net/download.html)

8.3 查杀 webshell

cloudwalker(下载地址-http://github.com/chaitin/cloudwalker)

9. 添加命令审计

为历史的命令增加登录的 IP 地址、执行命令时间等信息

9.1 保存 1 万条命令:

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

9.2 在/etc/profile 的文件尾部添加如下行数配置信息

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"

1.安装中文包
sudo apt update
sudo apt install language-pack-zh-hans
2.将区域语言设置为简体中文
localectl set-locale LANG=zh_CN.utf8
3.重启系统
sudo reboot
4.查看当前区域语言设置
locale
5.测试一下
sudo apt update


Debian配置系统中文语言及环境
Debian配置系统中文语言及环境

1,安装语言包 sudo apt install locales

2,配置语言环境 sudo dpkg-reconfigure locales

按下空格即可选择,前面带星号(*)即被选中,通常不需要全部选择安装,选择需要的即可。

3,locale命令基本使用

查看已经安装的语言环境:locale -a

查看当前系统语言环境变量配置: locale

4,临时改变语言环境 export LANG=C.UTF-8

5,永久改变当前用户语言环境

编辑 ~/.bashrc , 在.bashrc文件末尾加入 export LANG=zh_CN.utf8 即可

source ~/.bashrc 即可生效

minikube安装配置

minikube start --image-mirror-country='cn' --kubernetes-version=v1.23.3 --force

kubectl version --short

minikube kubectl -- get pods -A
kubectl run myngx --image=nginx:alpine
kubectl get pod -A

minikube dashboard
nohup kubectl proxy --port=9400 --address='0.0.0.0' >/dev/null 2>&1&
nohup kubectl proxy --port=9400 --address='10.2.70.242' --accept-hosts='^10.2.70.242$' >/dev/null 2>&1&
http://10.2.70.242:9400/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy

/dev/sda: 223.57GB ssd
/dev/sdb: 1.82T HDD
/dev/sdc: 1.82T HDD
/dev/sdd: 119GB ssd

配置lvm_cache:
1.磁盘分区
fdisk /dev/sda
fdisk /dev/sdb
fdisk /dev/sdc

2.创建物理卷:
pvcreate /dev/sda1 /dev/sdb1 /dev/sdc1

3.创建卷组vg-data-1:
vgcreate vg-data-1 /dev/sda1 /dev/sdb1

4.创建逻辑卷lv-data:
lvcreate -n lv-data -L 1.82T vg-data-1 /dev/sda1 /dev/sdb1

5.创建逻辑卷缓存cache、逻辑卷meta:
lvcreate -n cache -L 218G vg-data-1 /dev/sda1
lvcreate -n meta -L 2G vg-data-1 /dev/sda1

6.创建缓存池、将存储卷加入缓存池:

lvconvert --type cache-pool --poolmetadata vg-data-1/meta vg-data-1/cache
lvconvert --type cache --cachepool vg-data-1/cache --cachemode writeback vg-data-1/lv-data

7.格式化逻辑卷lv-data
mkfs.xfs /dev/vg-data-1/lv-data

1.XP访问WIN10,总是显示“在网络未找到网络名”、“使用此用户名没有访问权限”。在实际测试中,几台电脑都是可以PING通的。WINXP之间也是可以访问的,win10也是可以访问WINXP。

这是因为XP用的是SMB1.0服务,而WIN10等是SMB2.0服务,所以要XP访问WIN10共享,需要在WIN10的开通smb服务,在 程序功能-启用和关闭WINDOWS功能 ,添加smb1.0服务,重启即可访问。

2.上面设置 XP可以访问WIN10共享了,但访问WIN10打印机共享时候,提示“”操作无法完成。拒绝访问“”。这需要特殊连接才能添加WIN10共享打印机方法如下:

先在WIN10共享打印机重命名共享打印机名 设置简单点 如 HP100等,在用 添加打印机向导 用 连接到此计算机的额本地打印机 勾掉下面勾,下一步 选择 创造新端口 端口类型为“”Local port“” 继续下一步 输入端口名 如:\ip\hp100 确定 选择对应打印机或安装驱动,下一步完成即可。

原因是 win2012 使用的是 smb3.11,win 7使用的是 smb2.0

SMB 3.1.1 加密算法默认为AES-128-GCM,之前SMB 3.0是用AES-128-CCM

加密算法不同,导致拒绝登录。

解决方案:

右击以管理员身份打开系统的Windows PowerShell工具(备注:要管理员身份才能操作)
打开窗口输入Get-SmbServerConfiguration 查看 RejectUnencryptedAccess 属性

备注:RejectUnencryptedAccess参数是如果客户端尝试链接到加密共享文件夹,不支持加密算法的客户端是否被拒绝访问。默认值是True
我们可以将其值配置为false

在powershell 输入:

Set-SmbServerConfiguration -RejectUnencryptedAccess $False

检查SMB v2/v3协议是否开启
Get-SmbServerConfiguration | Select EnableSMB2Protocol

开启SMB v2/v3协议
Set-SmbServerConfiguration -EnableSMB2Protocol $true