basic

uptime; lsmem(free -h); lscpu; lspci|grep -i vga; lsblk -f; fdisk -l(/etc/fstab)
df -Th  # 分区信息,T:也显示分区的类型如ext4;
du -h --max-depth=1 /tmp/*

ethtool eth0  # 查看网卡信息. -i:驱动信息 -S:网卡的状态(接收或发送多少包等)
ifdown  eth0  # 激活网卡!ifup.
service network restart  # 重启网络服务
dhclient eth3  # 使网卡自动获取IP
ifconfig eth0 192.168.1.122 netmask 255.255.255.0 up  # 临时改变并生效,但配置文件未变
route add default gw 192.168.1.1 [dev.eth0]
route  # 打印路由信息,包括网关!

security

# /var/log/secure: 用户登录系统的信息.比如 ssh telnet ftp等
# /var/log/messages: 系统日志
# /var/log/cron: crontab信息
lastlog  # 所有用户最后一次的登录记录; last是所有用户登录注销等记录
lastb|more  # 错误登录记录: /var/log/btmp(last最后登录失败的信息,被编码过)
cat /var/log/secure|grep 'Invalid user'  # 系统的详细的登录记录,如: ssh su sudu useradd userdel passwd
cat /var/log/cron  # 定时任务日志
stat file  # 查看某个文件的修改记录
strace exe  # 跟踪下程序

# 锁定文件(禁止删除)
lsattr x  # 查看属性
chattr +i x  # -i:解除锁定

# 修改文件时间戳
touch -r x o  # 把x的时间戳赋给o
toutch -t 1401021042 x

# 隐藏操作历史
set +o history  # 注意有空格: set -o history: 恢复
history |grep "keyword"
history -d 123  # 根据上面的查询删除

# 异常端口
netstat -tnlp
# (-i:@192..:22)根据IP查看外连情况
lsof -inP  # 查看使用网络的所有进程; (-i:PORT)根据端口查看外连情况或者直接iftop!
lsof fileOrdir  # 查看与指定文件/目录交互的所有进程
lsof -c syslog-ng  # 查看命令正在使用的文件和网络; -t:只返回PID
lsof -p PID  # 查看进程已打开的内容
lsof -u root  # 显示指定用户打开了什么; (-u ^root)除置顶用户外; 杀死指定用户所有动作(kill -9 `lsof -t -u lei`)

# erase disk
# -f: --force,必要时修改权限以使目标可写
# -n: 随机写多少次,默认3次.
# -u: --remove,覆盖后截断并删除文件.注意擦除/dev/sda2等设备不应使用该参数!
# -z: 最后一次使用0覆盖!
shred -f file1 file2

firewall

# -A INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT
vim /etc/sysconfig/iptables
systemctl restart firewalld  # start enable ...
firewall-cmd --zone=public --list-ports
firewall-cmd --zone=public --add-port=80-83/tcp --permanent
firewall-cmd --zone=public --remove-port=22/tcp --permanent
firewall-cmd --add-service vncserver --permanent
firewall-cmd --reload

iptables

/etc/sysconfig/iptables

iptables依赖netfilter模块;

下面这几个称为chain,或过滤点.配合一个table,每一列对应前面的过滤点.不同的列有不同的过滤功能,也称为规则

filter列过滤INPUT,FORWARD,OUTPUT; nat列过滤OUTPUT,PREROUTING,POSTROUTING; mangle列过滤全部

prerouting --> routing ------> postrouting --->
                 |                  ^
                 |                  |
                 |                output
                 |                  ^
                 |                  |
                 |-->  process  --  |
# INPUT: 发给local-process的数据
# OUTPUT: local-process发出来的数据
# FORWARD: 将网络数据向外转发
# POSTROUTING: 对OUTPUT或FORWARD处理后的数据再处理,一般用来修改其源地址,以达到伪装目的.
# PREROUTING: 从网络进来的最初的数据,一般进行目标地址的转换.
iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 开启80端口(不会永久生效,A:add)

fail2ban

# fail2ban.conf: 日志设定
# filter.d: 具体阻挡内容设置
dnf install fail2ban
cp jail.conf jail.local

# jail.conf: 阻挡设定
# 永远不会被ban的ip,空格分割
ignoreip = 127.0.0.1
# ban一天
bantime = 86400
# 600s达到 maxretry 次则ban
findtime = 600
maxretry = 3
# [sshd] 添加如下配置:
enabled = true
maxretry = 3

# cmd
# 查看所有的jail
fail2ban-client status [sshd]
# 释放
fail2ban-client set sshd unbanip xxxxx

clamav

dnf install clamav clamav-update clamd
freshclam
clamscan -r /etc --max-dir-recursion=5 -l /root/clamav.log