目录

一、账号安全控制

1、系统账号清理

2、密码安全控制

3、命令历史限制

4、清空历史命令

5、终端自动注销

6、通过pam模块防止暴力破解

7、环境变量的读取顺序

二、限制su命令用户、PAM安全认证

1、su命令用户

2、PAM安全认证

三、提升权限机制  sudo  ☆

1、sudo [参数选项] 命令

2、sudo的配置文件

3、sudo授权案例

四、 终端登录安全控制

1、禁止普通用户登录

2、  指定终端id进行登录

五、网络端口扫描  nmap  ☆☆

1、常用选项

2、 比较常用的几种扫描类型如下

六、netstat命令  ☆☆

总结


一、账号安全控制

1、系统账号清理

① 将非登录用户的shell设为/sbin/nologin     useradd -s /sbin/nologin xiao  禁止xiao用户远程登录
②锁定长期不使用的账号                          passwd -l xiao  锁定xiao用户密码
③删除无用的账号           userdel -r xiao 
④锁定账号文件        
锁定和解锁文件命令(chattr +i      chattr -i   )查看文件是否锁定命令(lsattr)
锁定账号文件 passwd         shadow
锁定之后,无法对文件进行任何修改,包括删除,只能查看文件内容

2、密码安全控制

①设置密码有效期                          chage -M 10 xiao  10天后修改密码           
②要求用户下次登录时修改密码     chage -d 0 xiao 强制在下一次登录时更换密码

③还有一种可以修改配置文件的内容。

可以进入配置文件 /etc/login.defs 进行修改,修改之后以后创建的用户都会按照文件配置内容进行执行

3、命令历史限制

第一种方法   ①减少历史命令记录的命令条数     永久修改  vim /etc/profile

② 在vim中输入:/HISTSIZE     修改历史命令只显示10条

③ 刷新配置文件并查看历史命令  (source

第二种方法   家目录中(cd ~) vim .bash_profile 修改配置文字         

修改后刷新 source .bash_profile

4、清空历史命令

第一种方法    history -c  临时清空历史命令  清空历史缓存

第二种方法   退出时自动清空历史命令

第三种方法    家目录中  vi .bash_history 全部清空

5、终端自动注销

vim /etc/profile   输入 export TMOUT=20   20s不动自动退出终端

修改后刷新配置文件    source /etc/profile

6、通过pam模块防止暴力破解

7、环境变量的读取顺序

用户登录 ---> 加载 ~/.bash_profile  --->  bash_profile 中配置了首先是使  ~/.bashrc  生效
.bash_profile”文件中的命令将在该用户每次登录时被执行
.bashrc”文件中的命令会在每次加载“/bin/bash(Shell解释器)”
.bash_logout 在退出shell时被读取

二、限制su命令用户、PAM安全认证

默认情况下,任何用户都允许使用su命令进行切换,root用户切换到普通用户不需要密码,普通用户切换到root用户需要密码

1、su命令用户

vim /etc/pam.d/su
2 # auth sufficient pam_rootok.so 
注释第二行后所有用户切换都需要密码
 

gpasswd -a zhangsan wheel
 cat /etc/group | grep -i "wheel"
vim /etc/pam.d/su 取消第六行注释
取消第六行注释后,只有wheel组成员及root可以使用su 

普通用户切换登录测试验证
使用 su 命令切换用户的操作将会记录到安全日志/var/log/secure 文件中,可以根据需要 进行查看。

2、PAM安全认证

PAM认证原理:(非重点
1.PAM认证一般遵循的顺序: Service (服务) --> PAM (配置文件) --> pam_ *.so;
2. PAM认证首先要确定哪一项应用服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证模块(位于/lib64/security/下)进行安全认证。
3.用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证。不同的应用程序所对应的PAM
模块也是不同的。

PAM的配置文件中的每一行都是一个独立的认证过程,它们按从上往下的顺序依次由PAM模块调用                                    ls /etc/pam.d 

每一列可以区分为三个字段:

认证类型 、 控制类型 、 PAM模块及参数

第一列代表PAM认证模块类型
auth(认证管理) : 对用户身份进行识别,如提示输入密码,或者判断是否为root
account(账户管理) : 对账号各项属性进行检查,如是否允许登录系统,账号是否已过期,是否达到最大用户数等。
password(密码管理) : 使用用户信息来更新数据,如修改用户密码。
session (会话管理) : 定义登录前以及退出后要进行的会话草最管理,如登录连接信息,用户数据打开和关闭,挂载文件系统。

第二列代表PAM控制标记

requird : 表示需要返回一个成功值,如果返回失败,不会立刻将失败结果返回,而是继续同类型的下一个验证,所有此类型的模块都执行完成后,再返回失败。
requisite : 和requird类型,但如果此模块返回失败,则立刻返回失败,并且此类型失败。
sufficient: 如果此模块返回成功,一般不用于验证,只是显示信息(通常用于session类型)
optional: 不进行成功与否的返回,一般不用于验证,只是显示信息(通常用于session类型),
include : 表示在验证过程中,调用其他的PAM配置文件,比如很对应用通过完整调用/etc/pam.d/system-auth(主要负责用户登录系统的认证工作)来实现认证而不需要重新逐一去写配置项。
第三列代表PAM模块
默认是在/lib64/security/目录下,如果不在此默认路径下,要填写绝对路径,同一个模块,可以出现在不同的模块类型中,它在不同的类型中所执行的操作都不相同,这是由于每个模块针对不同的模块类型编制了不同的执行函数。
第四列代表PAM模块的参数
这个需要根据所使用的模块来添加。传递给模块的参数,参数可以有多个,之间用空格分开。

三、提升权限机制  sudo

1、sudo [参数选项] 命令

-l  列出用户在主机上可用的和被禁止的命令,一般配置好/etc/sudoers后,要用这个命令来查看和测试是不是配置正确的。
-v    验证用户的时间戳,如果用户运行sudo后,输入用户的密码后,在短时间内可以不用输入口令来直接进行sudo操作,可以跟踪最新的时间戳
☆☆-u 指定以用户执行特定操作
-k    删除时间戳

sudo -l 查看当前用户获得哪些sudo授权

2、sudo的配置文件

vim /etc/sudoers 或者 visudo  保存需要强制保存

用户/组名称  主机名(主机组)=(提权的权限身份-ROOT) 赋权的使用命令(以绝对路径方式来写)
用户:直接授权指定的用户名,或采用"%组名"的形式(授权一个组的所有用户)
主机名:使用此规则的主机名,每配置过主机名时可以用locathost,有配过主机名
则用实际的主机min,ALL代表带所有主机。
命令程序列表:允许授权的用户通过sudo方式执行的特权命令,需要填写命令程序的完整路径,多个命令之间以逗号进行分隔。   ALL代表所有命令

3、sudo授权案例

① 授权zhangsan用户可以在所有的主机上创建网卡且不需要输入密码

1、zhangsan  ALL=(root)NOPASSWD: /usr/sbin/ifconfig

②授权一个组可以在所有的主机上创建网卡且不需要输入密码

%gang ALL=(root)NOPASSWD: /usr/sbin/ifconfig

授权的组内成员创建网卡

四、 终端登录安全控制

1、禁止普通用户登录

建立/etc/nologin文件

删除nologin文件或重启后恢复正常

限制root只在安全终端登录
禁止普通用户登录 当服务器正在进行备份或调试等维护工作时,可能不希望再有新的用户登录系统。
这时候,只需要简单地建立/etc/nologin 文件即可。login 程序会检查/etc/nologin 文件是否存在, 如果存在,则拒绝普通用户登录系统(root 用户不受限制)。
touch /etc/nologin    #除root以外的用户不能登录了。
此方法实际上是利用了 shutdown 延迟关机的限制机制,只建议在服务器维护期间临时 使用。     当手动删除/etc/nologin 文件或者重新启动主机以后,即可恢复正常。

2、  指定终端id进行登录

ctrl+alt+f2-f5切换到其他用户登录

五、网络端口扫描  nmap  ☆☆

扫描目标: 主机名,IP地址,网络地址等,多个目标以空格分隔。

1、常用选项

选项 参数
-p 分别用来指定端口扫描
-n 禁止反向DNS解析(加快扫描速度)

2、 比较常用的几种扫描类型如下

-sS,TCP SYN 扫描(半开扫描):只向目标发出 SYN 数据包,如果收到 SYN/ACK响应包就认为目标端口正在监听,并立即断开连接;否则认为目标端口并未开放。 
tcp确定三次握手
-sT,TCP 连接扫描:这是完整的 TCP 扫描方式,用来建立一个 TCP 连接,如果 成功则认为目标端口正在监听服务,否则认为目标端口并未开放。 
-sF,TCP FIN 扫描:开放的端口会忽略这种数据包,关闭的端口会回应RST数据包。许多防火墙只对 SYN 数据包进行简单过滤,而忽略了其他形式的 TCP 攻击包。这种类型的扫描可间接检测防火墙的健壮性。 
-sU,UDP 扫描:探测目标主机提供哪些 UDP 服务,UDP扫描的速度会比较慢。
-sP,ICMP 扫描:类似于 ping 检测,快速判断目标主机是否存活,不做其他扫描。 
-P0,跳过 ping 检测:这种方式认为所有的目标主机是存活的,当对方不响应 ICMP 请求时,使用这种方式可以避免因无法 ping 通而放弃扫描。

yum -y install nmap 提前安装好   ① nmap -sT 127.0.0.1

② nmap -sP 192.168.100.0/24 扫描这个网段有哪些主机开启

③ nmap -sU 127.0.0.1扫描这个主机的UDP端口

六、netstat命令  ☆☆

查看当前操作系统的网络连接状态、路由表、接口等信息,它是了解网络状态及排除网络故障的有效工具。

-n  以数字的形式显示相关的主机地址,端口等信息
-r  显示路由表信息
-a  显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)
-l    显示处于监听(Listening)状态的网络连接及端口信息
-t  查看TCP相关信息
-u   查看UDP相关信息
-p 显示与网络连接相关的进程号、进程名称信息(需要root权限)
常用组合命令
①  netstat -natp  #查看正在运行的使用TCP协议的网络状态信息②  netstat -naup   #查看正在运行的使用UDP协议的网络状态信息③  netstat -natup  #查看正在运行的使用TCP、UDP协议的网络状态信息

查看80端口的TCP信息

总结

1、账号管理
锁定对象:账号、文件/目录
账号锁定:passwd -l、 usermod
文件/目录锁定:chattr +i 、文件/目录解锁:chattr -i
查看文件锁定:lsattr

2、密码安全
chage命令---->控制账号的密码
修改配置文件:/etc/logine.defs

3、历史命令限制
linux中执行命令的同时,会保存在内存中然后被写入到磁盘中,磁盘的目录为:~/.bash_hostory
所以想要完全清空,需要清空缓存(hostory -c)和清空磁盘(eho “ ” > ~/.bash_hostory)
或者在~/.bash_logout中定义清除日志,终端在关闭时执行的文件
或者在~/.bash_profile ( ~/.bashrc) 中定义,终端在开启时执行的文件
/etc/profile:系统所有用户生效的配置文件(环境变量)

4、su切换用户登录
管理su命令的用户或附加组(wheel)对象
配置文件:PAM模块的配置:/etc/pam.d
可实现的是:控制用户,分为root用户和组用户(wheel组),可以将普通用户添加到wheel组中,来实现“赋权”---->可以使用su切换

5、sudo提权(暂时用root用户的权限来执行操作)
使用 visudo 或 /etc/sudoerc 进行编辑
标准格式:用户 或 %组名(表示组) 主机名=命令(绝对路径)
提权的目的:可以有效减少重复输入root密码的次数/频率。

6、PAM原理
用户---->访问服务----->进项pam验证------>调用对应的so模块
如何查看指定的一个服务程序或命令工具,是否能被pam管理?
ls /etc/pam.d/ |grep 名称对象

7、终端登录
对于用户登录终端的id进行限制
控制的文件:/etc/securetty ------》控制指定的终端ID
可以在非远程登录的终端上,来切换终端。
8、nmap端口扫描
可以使用nmap扫描主机。主要输出的内容在于端口、协议、主机ip、是否存活。
作用场景:
①扫描指定协议(TCP/UDP)端口的目标IP、主机名、网络号是否开启
②扫描指定网段中哪些主机是否存活/开启的

9、netstat命令
netstat是查看指定协议的网络信息
包含:
① 协议(TCP/UDP) TCP
② 队列 queue 接收队列 0
③ 队列 queue 发送队列 0
④ IP:Port :::80(IPV6) 192.168.226.131:80(接收端) 192.168.226.132:Port(发送端)
⑤ LISTEN 状态 包含了连接状态、断开状态、等待状态
⑥ PID/进程任务 3459/httpd

Linux的系统安全及应用相关推荐

  1. linux中断系统那些事之----中断处理过程【转】

    转自:http://blog.csdn.net/xiaojsj111/article/details/14129661 以外部中断irq为例来说明,当外部硬件产生中断时,linux的处理过程.首先先说 ...

  2. xp与Linux双系统共存

    xp与Linux双系统共存 这个具体的操作步骤,我在QQ空间写的很清楚,有兴趣的可以进我空间看看. http://281905887.qzone.qq.com/blog/1248715531 在这我只 ...

  3. suse linux 软件包安装,SUSE Linux 11系统rpm包离线安装GCC

    SUSE Linux 11系统rpm包离线安装GCC 1.问题显示 编译失败 python2.6环境下编译pycrypto-2.6.1 src/hash_template.c:360: warning ...

  4. 虚拟机红帽linux登陆密码,[操作系统]vmware虚拟机安装了linux(redhat)系统忘记登录密码怎么办...

    [操作系统]vmware虚拟机安装了linux(redhat)系统忘记登录密码怎么办 0 2017-11-07 15:00:23 今天,打开了以前装过的vmware虚拟机,正常启动之后,一直想不起登录 ...

  5. Linux内核系统时钟管理 感想总结 (未完待续)

    目前讨论根据的是2.6.x 版本的内核 Linux 内核系统时钟需要了解的泛化的概念 绝对时间: 所谓的绝对时间指的是系统流逝的时间,从你启动系统的那一时刻开始计算,直到你关闭系统的那一刻作为结束,这 ...

  6. 裁剪Linux小系统

    一)从linux本身系统上裁剪出来一个小系统. 博客目的和实现功能: 从本身存在的系统上新添加一块硬盘,做一个grub引导,然后把新加的硬盘做好后,加上网卡驱动,放到其余的主机上能正常进入使用,pin ...

  7. Linux无法联网怎么办?解析VMware上的CentOS7(Linux)系统无法联网的解决办法

    Linux无法联网怎么办?解析VMware上的CentOS7(Linux)系统无法联网的解决办法! 许多人在VMware上安装了Linux系统之后,都会遇到无法联网的问题,作者也是遇到了这个问题,在进 ...

  8. linux重装系统后 70-persistent-net.rules 不能删除解决

    linux重装系统后,/root/目录下面会出现两个文件,其中一个virt-sysprep-firstboot.log可以像常规文件一样删除,但是另一个并不能直接删除,作为一个有强迫症的患者,那个文件 ...

  9. 基于busybox的Linux小系统制作 (initrd)

    我们有时候有需要在busybox基础上,制作linux,可是却不知道具体怎么做,这里将对基于busybox的linux小系统制作做出详细的步骤说明. 准备环境: 1.一个Redhat完整系统的虚拟机, ...

  10. Linux -- ***检测系统(IDS)介绍及应用(1)

    一.***检测工具简介 Internet上的服务器一般都会被安置在防火墙的DMZ(Demilitarized Zone)区,受到防火墙的保护.这在一定程度可以防止具有已知非法特征的危险连接和恶意*** ...

最新文章

  1. Codeforces Round #104 (Div. 2) E DP(01背包模型) +组和+除法取模求逆元
  2. Postfix实现代理Exchange邮件传输方案
  3. Android 之WebView实现下拉刷新和其他相关刷新功能
  4. win10 mbr下装linux,(MBR模式)Win10下安装Ubuntu18.04双系统
  5. antvue 有赞布局_UI大全:前端UI框架集合(持续更新,当前32个)
  6. UVA 679 小球掉落 思维 + 数据结构
  7. SSL证书 和 CA证书 区别
  8. OFD文档如何快速批量转成JPG
  9. 投稿流程以及审稿状态
  10. Totem协议(SRP/RRP)讲解PPT
  11. 都说数据是资产,那么到底什么是数据资产?
  12. LeetCode知识点总结 - 997
  13. 鱼眼相机标定以及OpenCV实现
  14. fitnesse学习历程1
  15. 软铁氧体磁芯的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  16. 喇叭原理及使用时需要避免的事项
  17. 携程App网络服务通道治理和性能优化@2016
  18. nodejs实现电脑版微信dat文件批量转化为jpg图片
  19. 请确保加密服务正在此计算机上运行,安装程序无法验证安装所需文件的完整性,请确保正在此计算机上运行加密服务...
  20. hapi.js入门系列(一)——一个简单的Hello World程序

热门文章

  1. 结构体熟练掌握--实现通讯录
  2. 安装算量软件删除计算图元功能
  3. 使用Java的继承关系来描述动物世界的特征和关系。
  4. LC-6244. 完美分割的方案数【周赛320】
  5. authorize(基于注解的权限认证框架)
  6. 印书体数字的识别项目
  7. 基于OceanStor Dorado V3存储之数据保护 Hyper 特性
  8. 初识物联网——从大型机到门把手
  9. HLS 流传输库hls::stream
  10. 北斗赋能,无人划线小车让智慧施工升级