Linux基本防护

Linux基本防护

Linux基本防护命令

chage命令
  • chage 命令

    • chage -l 账户名称 查看账户信息
    chage -l zhangsan         #查看zhangsan用户的账户信息
    Last password change                                    : Jan 08, 2021   
    Password expires                                        : never   #密码过期
    Password inactive                                       : never
    Account expires                                         : never
    Minimum number of days between password change          : 0
    Maximum number of days between password change          : 99999
    Number of days of warning before password expires       : 7
    
    
    • chage -E 日期 账户名称 设置账户过期时间
    chage -E 2015-12-31 zhangsan    #过期zhangsan的密码
    exit
    #登录zhangsan账户
    Your account has expired; please contact your system administrator
    User account has expired                      #登不进去了  密码过期了
    
    chage -l zhangsan
    Last password change                                    : Jan 08, 2021
    Password expires                                        : never
    Password inactive                                       : never
    Account expires                                         : Dec 31, 2015  #过期时间
    Minimum number of days between password change          : 0
    Maximum number of days between password change          : 99999
    Number of days of warning before password expires       : 7
    
    chage -E -1  zhangsan     #设置回永不过期
    chage -l zhangsan	#再次查看
    Last password change                                    : Jan 08, 2021
    Password expires                                        : never
    Password inactive                                       : never
    Account expires                                         : never  #变回来了
    Minimum number of days between password change          : 0
    Maximum number of days between password change          : 99999
    Number of days of warning before password expires       : 7
    
    • tip: 用户默认有效期配置文件/etc/login.defs
    cat /etc/login.defs
    .....  #有一堆注释信息 观感不好
    #复习下awk好了
    awk '!/#/&&!/^$/{print $0}' /etc/login.defs   #检索出没有被注释的非空行
    MAIL_DIR        /var/spool/mail
    PASS_MAX_DAYS   99999
    PASS_MIN_DAYS   0
    PASS_MIN_LEN    5
    PASS_WARN_AGE   7
    UID_MIN                  1000
    UID_MAX                 60000
    SYS_UID_MIN               201
    SYS_UID_MAX               999
    GID_MIN                  1000
    GID_MAX                 60000
    SYS_GID_MIN               201
    SYS_GID_MAX               999
    CREATE_HOME     yes
    UMASK           077
    USERGROUPS_ENAB yes
    ENCRYPT_METHOD SHA512
    #可以看见一些用户创建的参数都有默认值或者默认值范围
    
    #复习下awk的运行流程     一次只能遍历一遍文件
    awk  '{print 1} {print 2}' /etc/login.defs
    1
    2
    1
    2
    ....
    #可以判断两个代码块是交替执行的,不会因为有两个代码块跑两遍文本(这种情况应该是1111222的输出)。
    
passwd命令
  • passwd命令

    • passwd -l 用户名称 锁定用户密码
    • passwd -S 用户名称 查看用户状态 区别于 chage -l 看的东西不一样
    • passwd -u 用户名称 解锁用户密码
    passwd -l zhangsan  #锁定zhangsan用户的密码     l --> lock
    Locking password for user zhangsan.
    passwd: Success
    
    passwd -S zhangsan    #查看状态      S --> status
    zhangsan LK 2021-01-07 0 99999 7 -1 (Password locked.)   #锁定密码了
    
    exit
    #登录zhangsan
    Login incorrect   #提示密码错误
    
    passwd -u zhangsan  #解锁               u --> unlock
    Locking password for user zhangsan.
    passwd: Success
    
    passwd -S zhangsan
    zhangsan PS 2021-01-07 0 99999 7 -1 (Password set, SHA512 crypt.)
    
    exit
    #登录zhangsan  登录成功
    
隐藏系统版本

/etc/issue配置文件保存登录提示信息 有操作系统内核的信息

#可以先看一下/etc/issue
cat /etc/issue #查看
\S           #\S会被变量替换了 CentOS Linux7 (Core)   测试了下两个\S  就有两行版本信息
Kernel \r on an \m    #\r和\m同上

#修改内容
vim /etc/issue
============================================
A camouflaged version of the system kernel
a ha
============================================

exit
#就可以看见登录页面上面的自建提示信息了

chattr和lsattr 文件隐藏属性

  • chattr基本格式: chattr [±=][ASacdistu] 文件或目录名称
chattr选项和参数说明
+增加某一个特殊参数
-移除一个特殊的参数
=重新设定 会修改原来的参数
A存取此文件、目录,他的访问时间atime将不会被修改
S文件是异步写入磁盘的,加上S会在文件任何修改的情况下同步到磁盘(防止重要数据丢失,但需要频繁写入)
a设定之后,文件只能增加数据,不能删除和修改数据,只有root能设定
c设定后,会自动将文件压缩,读取时自动解压缩,但是在储存时,将会进行压缩后存储,大文件适合
d不会被dump备份
i不能被删除、改名、设定连结也无法写入或新增数据! 只有root能设定
s当这个文件被删除,他将会被完全移除出这个硬盘空间
u与s相反,文件被删除,则数据内容还在磁盘空间,可以用来救援文件

lsattr基本格式:lsattr 文件或目录名称


sudo分配管理权限

  • su - 账户名称 -c ‘命令’
cd /home/zhangsan
touch 1.txt
su - zhangsan -c 'ls'  #变成zhangsan用户查看当前目录
1.txt
su - zhangsan -c 'echo 1243 > 1.txt'    #执行写操作
-bash: 1.txt: Permission denied                 #失败了

ls -l
-rw-r--r--. 1 root root 0 Jan  8 06:04 1.txt #属于root用户 属于其他人的zhangsan无写入权限

  • whoami 查看当前是什么省份
whoami 
root

su - zhangsan  #变成zhangsan
whoami
zhangsan
  • /etc/sudoers配置文件
useradd useradm
echo 123456 | passwd --stdin useradm
vim /etc/sudoers     #也可以visudo来修改
==================================================
useradm ALL=(ALL) /usr/bin/passwd,!/usr/bin/passwd root,/usr/sbin/user*,!/usr/sbin/user* * root
=================================================
#允许useradm执行passwd命令  不能执行passwd  root操作   能执行user*操作   不能执行 user* * root操作
#总结 格式匹配的缺点想的不完善就不太行     echo 12345 | passwd --stdin root 还是可以修改 
  • 执行sudo操作产生日志文件
visudo
===========================================
Defaults logfile="/var/log/sudo" #只能双引号
============================================

SSH服务端安全性调整

vim /etc/ssh/sshd_config
===============================
........
PermitRootLogin no  #禁止root用户登录
UseDNS	no	#不解析客户机地址
LoginGraceTime 1m	#限时登录
MaxAuthTries	3	#每连接最多认证次数
.........
=====================================
systemctl restart sshd


#或者仅允许白名单登录
vim /etc/ssh/sshd_config
===========================
....
AllowUsers zhangsan tom useradm@192.168.2.0/24
##DenyUsers	USER1 USER2			#定义账户黑名单
##DenyGroups GROUP1 GROUP2		#定义组黑名单
##AllowGroups GROUP1 GROUP2		#定义白名单
==================================================
#允许来自192.168.2.0的使用useradm远程登录  允许使用zhangsan  tom远程登录
systemctl restart sshd


#密钥配置信息
ssh-keygen -f /root/.ssh/id_rsa -N ''
ssh-copy-id root@192.168.2.5    #公钥发送给2.5

#2.5配置禁用口令登录
vim /etc/ssh/sshd_config
===========================
.....
PasswordAuthentication no   #默认yes改成no
==================================

SElinux安全防护

chcon命令修改文件目录安全信息上下文

#2.5开启SELinux
vim /etc/selinux/config
===========================
SELINUX=enforcing				#设置SELinux为强制模式
SELINUXTYPE=targeted          #保护策略为保护主要的网络服务安全
=============================
setenforce 1  #变成强制模式   修改配置文件启动生效


yum -y install vsftpd
systemctl start vsftpd

tar -czf /var/ftp/log1.tar /var/log                 #直接压缩到ftp共享目录/var/ftp下
tar -czf /var/ftp/log2.tar; mv log2.tar /var/ftp/   #压缩到家目录  再移动过去

ls -Z /var/ftp/         #查看标签
-rw-r--r--. root root unconfined_u:object_r:public_content_t:s0 log1.tar
-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 log2.tar       #标签不一样
drwxr-xr-x. root root system_u:object_r:public_content_t:s0 pub
#新建文件标签自动继承上层目录的   SELinux主要看倒数第二项

#2.100测试
wget ftp://192.168.2.5/log1.tar #成功下载
wget ftp://192.168.2.5/log2.tar  #没有该文件

curl ftp://192.168.2.5   #访问看看怎么回事
-rw-r--r--    1 0        0          919711 Jan 08 15:36 log1.tar
drwxr-xr-x    2 0        0               6 Aug 03  2017 pub
#发现只有log1.tar   log2.tar因为标签不一样被2.5的SElinux拦住了 所以没有了

#2.5修改标签
chcon -t public_content_t /var/ftp/log2.tar  #修改标签  也可以semanage命令
ls -Z /var/ftp/log2.tar #查看下标签
-rw-r--r--. root root unconfined_u:object_r:public_content_t:s0 /var/ftp/log2.tar
#										改了

#2.100查看
curl ftp://192.168.2.5
-rw-r--r--    1 0        0          919711 Jan 08 15:36 log1.tar
-rw-r--r--    1 0        0          919711 Jan 08 15:37 log2.tar #出来了
drwxr-xr-x    2 0        0               6 Aug 03  2017 pub

SELinux端口标签
  • semanage port -l 查看端口标签
semanage port -l | grep 80$
geneve_port_t                  tcp      6080
jabber_interserver_port_t      tcp      5269, 5280
ocsp_port_t                    tcp      9080
  • semanage port -a -t port_label -p tcp | udp PORT
semanage port -a -t http_port_t -p tcp 8998  #8998端口添加http_port_t标签 
  • semanage port -m -t port_label -p tcp|udp PORT
semanage port -m -t http_port_t -p tcp 8998 #修改8998端口标签为http_port_t
SELinux的布尔值
  • 布尔值规则

    • getsebool
    • setsebool
  • 查看bool命令

    • getsebool [-a] [boolean]
    • semanage boolean -l
    • semanage boolean -l -C 查看修改过的布尔值
    getsebool -a | grep ftp
    
  • 设置bool值命令

    • setsebool [-P] boolean value(on, off)
    • setsebool [-P] boolean value(0, 1)
    setsebool -P ftpd_anon_write=1   #P 永久生效   该规则允许ftp匿名上传
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值