linux基础安全
一、用户防护
Chage -l 用户名 查看用户账号有效期信息
Chage -E 时间 用户名 给用户设置过期时间
/etc/login.defs 文件保存许多默认设置
Passwd -l 用户名 临时锁定用户
Passwd -S 用户名 查看用户状态
Passwd -u 用户名 解锁用户
/etc/issue 用户登陆信息(包括操作系统和内核版本号)
二、文件防护
Lsattr 文件名
Chattr +a 文件名 可以追加
备注:这里追加只能是用echo >> 来追加,用vim打开追加会报错
Chattr -a 文件名 解锁文件
Chattr +i 文件名 锁定文件(不允许修改,删除),只能查看
Chattr -i 文件名 解锁文件
更多操作可以man chattr查看
三、用户提权
Su - 用户名 切换到该用户
Su - 用户名 -c “命令” 以该用户的身份执行命令,非交互的(可用于写脚本)
Whoami 查看当前用户身份
Su - 不加用户就是切到root
Su - -c “命令’ 切换成管理员执行命令,这个要输入管理员的密码
Sodu命令
/etc/sudoers 两种方法修改
1、用vim /etc/sudoers 打开之后有颜色高亮显示,缺点是配置文件写错不会报警
2、Visudo 回车 打开都是一样的颜色,优点是配置文件写错会报警
Example
需求:给sofadm 用户执行 systemctl的权限
1、which systemctl 查询一下命令所在的路径
/usr/bin/systemctl
2、Vim /etc/sudoers
找到模板
意思是:允许root用户,以所有身份,执行任何命令
在下边添加一行
Sofadm ALL=(root) /usr/bin/systemctl
3、测试一下su - sofadm 切换到该用户
Sudo -l 查看一下可以执行的命令
Sudo Systemctl restart sshd 启动不报错
备注:命令可以用感叹号表示不予许做
! /usr/bin/passwd root 表示不能给root用户改密码
多个命令之间可以用逗号隔开
也可以用*表示,比如 /usr/sbin/user* 表示以user开头的命令都授权
! /user/sbin/user* * root 第二个*表示命令中选项
可以为sudo 设置log日志,以便跟踪sudo执行操作
在 /etc/sudoers 中添加一行 Defaults logfile = “/var/log/sudo” 文件名可以自定义
总结:su - 需要知道管理员密码
Sudo 不需要知道管理员密码,但是前提是管理员已经分配权限才能执行
四、Selinux
安全上下文标签 cp 是会把原来文件标签变成之后文件夹下标签
Mv 是会保留原来文件的标签
Example
查看标签 ls -Z 文件
改变文件标签: chcon -t 新标签 文件
或者chcon --reference=/var/ftp/d1.tar.gz /var/ftp/d2.tar.gz
比如:在/root下创建一个文件cp到httpd根目录下,程序就没有权限读取,如果是mv过去就有权限读取(阿里云ecs一般都没有开启selinux)
五、加密与解密
Md5sum 文件名 md5校验码,用来查看文件内容是否有变化
Vimdiff 文件1 文件2 比较两个文件的不同
对称加密
Gpg -c 文件 加密 会在当前目录下生成一个文件.gpg的加密文件
Gpg -d 文件.gpg > 文件名 解密
非对称加密步骤
1、本机生成密钥对
gpg --gen-key 生成
gpg --list-keys 查看
2、Export导出公钥
gpg -a --export UserA > /tmp/UserA.pub -a 表示ASCALL码,UserA表示生成密钥时填的姓名
3、Scp公钥到目标主机
scp /tmp/UserA.pub 192.168.4.5:/tmp/
4、目标主机import导入公钥
gpg --import /tmp/UserA.pub
gpg --list-keys 查看
5、目标主机使用导入的公钥加密数据
gpg -e -r UserA love.txt -e表示加密,-r表示使用哪个公钥 会生成.gpg文件
6、目标主机scp加密的问价到本机,本机使用私钥解密
scp love.txt.gpg 192.168.4.100:/root
gpg -d love.txt.gpg > love.txt
非对称加密的签名机制步骤
1、本机创建文件并用私钥签名
tar zcf log.tar /var/log //建立测试软件包
gpg -b log.tar //创建分离式数字签名
2、scp文件和签名一起发送给目标主机
scp log.tar* 192.168.4.5:/root //将签名文件与签名传给UserB
3、目标主机使用公钥验证签名的真实性
gpg --verify log.tar.sig log.tar
六、AIDE入侵检测
备注:该软件不会防止入侵,只能检测
步骤
1、装包,光盘自带
Yum -y install aide
2、配置文件位置/etc/aide.aonf 做测试可以修改一下配置文件,只检测/root
找到配置目录的行,ctrl + v ,然后下键到期,点击大写的I ,输入# ,然后按esc 注释之后添加一行 /root DATAONLY
3、做检测并且把生成的new文件拷贝到其他地方存放好
Aide --init
存放路径:/var/lib/aide/aide.db.new.gz initialized
4、把new文件拷贝过来并且改名字把new去掉,然后做检测
Mv 拷贝过来的路径/aide.db.new.gz initialized /var/lib/aide/aide.db.gz initialized
Aide --check
七、namp扫描
# nmap [扫描类型] [选项] <扫描目标 ...>
//常用的扫描类型// -sS,TCP SYN扫描(半开)
// -sT,TCP 连接扫描(全开)
// -sU,UDP扫描
// -sP,ICMP扫描
// -A,目标系统全面分析
//-p 21-22 ip 扫描指定ip的指定端口
八、抓包
A--------------交换机(路由器)--------------B
前提:要在A和B的路线上或者在A或者B上才能抓包,也就是包要经过抓包的位置
Example:抓ftp包
1、A上装包
Yum -y install tcpdump
2、A抓包
Tcpdump -A -h ip and tcp port 21 -w ftp.log
-A 是抓的包用ASCALL码显示,不然都是乱码
-w 是抓的包保存在文件中,会自动创建
3、B上连接服务,输入账号密码
ftp ip
4、A上查看
Tcpdump -r ftp.log | egrep -i “(user|pass)”
Egrep 是支持扩展正则
-i 是忽略大小写
//监控选项如下:
// -i,指定监控的网络接口
// -A,转换为 ACSII 码,以方便阅读
// -w,将数据包信息保存到指定文件
// -r,从指定文件读取数据包信息
//tcpdump的过滤条件:
// 类型:host、net、port、portrange
// 方向:src、dst
// 协议:tcp、udp、ip、wlan、arp、……
// 多个条件组合:and、or、not