系统安全及应用

这里写目录标题
  • 系统安全及应用
    • 一.账号安全措施
      • 1.将账号设置为无法登录
      • 2.锁定用户
      • 3.锁定配置文件
      • 4.密码限制
      • 5.历史命令
      • 6.切换用户
      • 7.PAM安全认证
      • 8.sudo
      • 9.grub加密
      • 10.nmap扫描

系统安全及应用

一.账号安全措施

1.将账号设置为无法登录

usermod -s

[root@localhost ~]#usermod -s  /sbin/nologin lisi
[root@localhost ~]#su lisi
This account is currently not available.
[root@localhost ~]#
//lisi无法登录

2.锁定用户

passwd -l

[root@localhost ~]#passwd -l lisi
锁定用户 lisi 的密码 。
passwd: 操作成功
//锁定lisi密码无法登录

3.锁定配置文件

chattr

选项说明
-a让文件或目录仅供附加用途
+i不得任意更动文件或目录
[root@localhost ~]#chattr +i /etc/passwd
[root@localhost ~]#useradd wang
useradd:无法打开 /etc/passwd
//不得更改passwd文件无法添加用户
[root@localhost ~]#chattr -i /etc/passwd
[root@localhost ~]#useradd wang
[root@localhost ~]#
//解除

4.密码限制

chage 选项 用户名

选项说明
-m密码可更改的最小天数
-M密码保持有效的最大天数
-w用户密码到期前,提前收到警告信息的天数
-E帐号到期的日期。过了这天,此帐号将不可用
-d上一次更改的日期
-i停滞时期
-l例出当前的设置
5.历史命令

history -c

清除

[root@localhost ~]#vim /etc/profile
.............................
export HISTSIZE=200
[root@localhost ~]#source /etc/profile
[root@localhost ~]#history
  263  userdel -r wangwu
  264  su wang
  265  chattr +i /etc/passwd
  266  useradd wang
  267  chattr -i /etc/passwd
  268  useradd wang
  269  vim /etc/profile
  270  history
  271  source /etc/profile
  272  history
[root@localhost ~]#
//只显示十条
[root@localhost ~]#vim .bash_logout 
//退出后清除
// ~/.bash_logout
echo "   " >~/.bash_history
//一定要加空格
[root@localhost ~]#vim .bashrc     自对自己生效

6.切换用户

su与su-

su UserName:非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录,即不完全切换

su - UserName:登录式切换,会读取目标用户的配置文件,切换至自已的家目录,即完全切换

[root@localhost ~]#su lisi
[lisi@localhost root]$ exit
exit
[root@localhost ~]#su - lisi
上一次登录:日 7月 30 14:26:52 CST 2023pts/0 上
[lisi@localhost ~]$ 


7.PAM安全认证

PAM:Pluggable Authentication Modules,插件式的验证模块,Sun公司于1995 年开发的一种与认证相关的通用框架机制。

相关文件:

包名: pam

模块文件目录:/lib64/security/*.so

特定模块相关的设置文件:/etc/security/

man 8 加模块名 可以查看帮助

应用程序调用PAM模块的配置文件

  1. 主配置文件:/etc/pam.conf,默认不存在,一般不使用主配置
  2. 为每种应用模块提供一个专用的配置文件:/etc/pam.d/APP_NAME
  3. 注意:如/etc/pam.d存在,/etc/pam.conf将失效

工作原理:

PAM认证一般遵循这样的顺序:Service(服务)→PAM(配置文件)→pam_*.so

专用配置文件/etc/pam.d/ 格式

type control module-path arguments



application:指服务名,如:telnet、login、ftp等,服务名字“OTHER”代表所有没有在该文件中明确配置的其它服务
type:指模块类型,即功能
control :PAM库该如何处理与该服务相关的PAM模块的成功或失败情况,一个关健词实现
module-path: 用来指明本模块对应的程序文件的路径名
Arguments: 用来传递给该模块的参数

shell模块

功能:检查有效shell

帮助:man pam_shells

案例:不允许使用/bin/csh的用户本地登录

模块: pam_shells.so 只允许 规定的shell类型通过, 是在/etc/shells 文件中存在的 类型通过

[root@localhost ~]#vim /etc/shells

/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh


//去掉/bin/csh
使用csh的用户将无法登录

securetty模块

功能:只允许root用户在/etc/securetty列出的安全终端上登陆

vim /etc/pam.d/remote

[root@localhost ~]#vi /etc/pam.d/remote

#%PAM-1.0
auth       required     pam_securetty.so
auth       substack     password-auth
auth       include      postlogin
account    required     pam_nologin.so
account    include      password-auth
password   include      password-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open
session    required     pam_namespace.so
session    optional     pam_keyinit.so force revoke
session    include      password-auth
session    include      postlogin
//将auth required pam_securetty.so注释


limit

功能:在用户级别实现对其可使用的资源的限制,例如:可打开的文件数量,可运行的进程数量,可用内存空间

修改限制的实现方式:

(1) ulimit命令

ulimit是linux shell的内置命令,它具有一套参数集,用于对shell进程及其子进程进行资源限制。

ulimit的设定值是 per-process 的,也就是说,每个进程有自己的limits值。使用ulimit进行修改,立即生效。

ulimit只影响shell进程及其子进程,用户登出后失效。

可以在profile中加入ulimit的设置,变相的做到永久生效

选项说明
-H设置硬件资源限制
-S设置软件资源限制.
-c设置core文件的最大值.单位:blocks
-d设置数据段的最大值.单位:kbytes
-f设置创建文件的最大值.单位:blocks
-l设置在内存中锁定进程的最大值.单位:kbytes
-m设置可以使用的常驻内存的最大值.单位:kbytes
-n设置内核可以同时打开的文件描述符的最大值.单位:n
-p设置管道缓冲区的最大值.单位:kbytes
选项说明
-s设置堆栈的最大值.单位:kbytes
-t设置CPU使用时间的最大上限.单位:seconds
-u最大用户进程数
-v设置虚拟内存的最大值.单位:kbyte
-a显示当前所有的资源限制
[root@localhost ~]#ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 7168
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 7168
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited





//open files                      (-n) 1024
这一条限制了进程能打开的文件数,1024远远不够使用。所以得为其增加
[root@localhost ~]#ulimit -n 100000
[root@localhost ~]#ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 7168
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 100000
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 7168
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

limits 生产中的 建议设置

*                soft    core            unlimited
*                hard    core            unlimited
*                soft    nproc           1000000
*                hard    nproc           1000000
*                soft    nofile          1000000
*                hard    nofile          1000000
*                soft    memlock         32000
*                hard    memlock         32000
*                soft    msgqueue        8192000
*                hard    msgqueue        8192000

//注意通信是相互得,所以两端必须一样设置

8.sudo

sudo特性:

sudo能够授权指定用户在指定主机上运行某些命令。如果未授权用户尝试使用 sudo,会提示联系管理员

sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器

sudo使用时间戳文件来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票

sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。它所存放的位置默认是在/etc/sudoers,属性必须为0440

[root@localhost ~]#vim /etc/sudoers
[root@localhost ~]#visudo
//语法检查

visudo -c
//检查语法
//建议使用visudo

配置文件格式说明:/etc/sudoers, /etc/sudoers.d/

配置文件中支持使用通配符 glob

[root@localhost ~]#visudo
...........
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
//允许root在任何地方使用任何命令
..............
//用户    登入主机    =    (代表用户)     命令
user  	host       =    (runas)       command
user: 运行命令者的身份
host: 通过哪些主机 多个 192.168.91.100 - 110  localhost
(runas):以哪个用户的身份
command: 运行哪些命令


//也可以对组进行操作
%在前表示组
## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL 

root ALL=(ALL) ALL

当root得uid不为0时

别名

sudo别名有四种类型:

User_Alias(用户)

Runas_Alias(代表用户)

Host_Alias(登录主机)

Cmnd_Alias(命令)

必须大写字母,数字可以使用但是不能放在开头

示例

Host_Alias MYHOSTS = kgc,localhost
User_Alias MYUSERS = zhangsan,wangwu,lisi
Cmnd_Alias MYCMNDS = /sbin/*,!/sbin/reboot,!/sbin/poweroff,!/sbin/init,!/usr/bin/rm


MYUSERS MYHOSTS=NOPASSWD:MYCMNDS

子目录

为了不对全局生效,可以在/etc/sudoers.d/下创建子目录,只对部分生效,此原理适用于其他软件

9.grub加密
[root@localhost ~]#grub2-setpassword
//直接设置密码

10.nmap扫描
选项说明
-p指定扫描的端口
-n禁用反向DNS解析(以加快扫描速度)
-sSTCP的SYN扫描 (半开扫描),只向目标发出SYN数据包
-sTTCP连接扫描,这是完整的TCP扫描方式
-sFTCP的FIN扫描,开放的端口会忽略这种数据包,关闭的端口会回应RST数据包
-sUUDP扫描,探测目标主机提供哪些UDP服务,UDP扫描的速度会比较慢
-sPICMP 扫描,类似于ping检测,快速判断目标主机是否存活,不做其他扫描
-P0跳过ping检测, 这种方式认为所有的目标主机是存活的,当对方不响应ICMP请求时,使用这种方式可以避免因无法ping通而放弃扫描
-sLList Scan 列表扫描,仅将指定的目标的IP列举出来,不进行主机发现
选项说明
-snPing Scan 只进行主机发现,不进行端口扫描
-Pn将所有指定的主机视作开启的,跳过主机发现的过程
-PS/PA/PU/PY使用TCPSYN/ACK或SCTP INIT/ECHO方式进行发现
-PE/PP/PM使用ICMP echo, timestamp, and netmask 请求包发现主机
-n/-R-n表示不进行DNS解析;-R表示总是进行DNS解析
nmap -n -sP 192.168.80.0/24 
//检测192.168.80.0/24网段有哪些存活主机   

最后

从时代发展的角度看,网络安全的知识是学不完的,而且以后要学的会更多,同学们要摆正心态,既然选择入门网络安全,就不能仅仅只是入门程度而已,能力越强机会才越多。

因为入门学习阶段知识点比较杂,所以我讲得比较笼统,大家如果有不懂的地方可以找我咨询,我保证知无不言言无不尽,需要相关资料也可以找我要,我的网盘里一大堆资料都在吃灰呢。

干货主要有:

①1000+CTF历届题库(主流和经典的应该都有了)

②CTF技术文档(最全中文版)

③项目源码(四五十个有趣且经典的练手项目及源码)

④ CTF大赛、web安全、渗透测试方面的视频(适合小白学习)

⑤ 网络安全学习路线图(告别不入流的学习)

⑥ CTF/渗透测试工具镜像文件大全

⑦ 2023密码学/隐身术/PWN技术手册大全

扫码领取

本文转自 https://blog.csdn.net/q1231vev/article/details/132012869?spm=1001.2100.3001.7377&utm_medium=distribute.pc_feed_blog_category.none-task-blog-classify_tag-6-132012869-null-null.nonecase&depth_1-utm_source=distribute.pc_feed_blog_category.none-task-blog-classify_tag-6-132012869-null-null.nonecase,如有侵权,请联系删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值