0x01-linux基础
linux
账户实质
Linux操作系统是多用户的操作系统,它允许多个用户同时登录到系统上,使用系统资源。当多个用户同时使用系统时,为了系统自身安全和稳定,必须建立一种秩序,使每个用户的权限都能得到规范。这样就产生了不同权限的账户。
账户的实质就是在系统上的一个标识,系统根据账户的ID来区分每个用户的文件、进程、任务,给每个用户特定的工作环境。使每个用户的工作都能独立而不受干扰的工作。
用户和组
广义上讲,Linux的账户包括用户账户和组账户两种
用户账户(简称用户)有两种,普通用户账户和超级用户账户(或管理员账户)
普通用户:在系统的任务是进行日常工作
管理员:在系统的任务是对普通用户和整个系统进行管理,建议创建个普通用户对系统进行日常
的操作,以防止使用管理员账户操作不当对系统造成破坏
组账户(简称组)。组是用户的集合。在CentOS中有两种类型:私有组和标准组
私有组:当创建一个新用户时,若没有指定其所属的组,CentOS就建立一个和该用户同名的私
有组,此私有组中只包含这个用户自己
标准组:标准组可以包含多个用户,若使用标准组,在创建一个新的用户时就应该指定其所属的
组。从另一方面讲,同一个用户可以同属于多个组,如某单位有领导组和技术组等,
Tom时该单位的技术主管,所以他既应该属于领导组又应该属于技术组。当一个用户属
于多个组时,其登录后所属的组成为主组,其他的组成为附加组。
Linux环境下的账户系统文件
Linux下的账户体统文件主要有/etc/passwd、/etc/shadow、/etc/group/和/etc/gshadow4个文件
/etc/passwd文件
文件目录存储的是操作系统用户信息,该文件为所有用户可见


字段
用户名 这是用户登录系统时使用的用户名,在系统中是唯一的
口令 此字段存放加密的口令。在此文件中的口令是X,表示用户的口令是被/etc/shadow文
件保护的,所有加密的口令以及和口令相关的设置都被保护在/etc/shadow中
用户标识号 是一个整数,系统内部用它来标识用户。每个用户的UID都是唯一的。root用户的UID
是0,从1-499是系统的标准用户。普通用户的UID从500开始。
组标识号 是一个整数,系统内部用它来标识用户所属的组。每个用户账户在建立好后都有一个
主组,主组相同的账户其Gid相同。在默认情况下,每一个账户建立好后都会建立一
个和账户名同名的组,作为该账户的主组,这个组只有用户本人这一个成员,即此组
是私有组
GECOS 例如存放用户全名、地理位置等信息
宿主目录 用户登录系统后所进入的目录
命令解释器 指示该用户使用的Shell,默认为bash
/etc/group文件
/etc/group文件将用户分组是Linux中对用户进行管理及控制访问权限的一种手段。组的所有属性都
存放在/etc/group文件/etc/group文件对任何用户均可读


字段含义
组名 该组名称
组口令 组口令,由于安全性原因,已不适用该字段保存口令,用x占位
GID 组的识别号,和UID类似,每个组都有自己独有的识别号,不同组的GID不会相同
组成员 属于这个组成员,多个成员间用“,”分割
/etc/gshadow文件
/etc/gshadow文件用于定义用户组口令、组管理员信息,该文件只有root用户可以读取


字段含义
组名 该组名称
组口令 组口令,由于安全性原因,已不适用该字段保存口令,用x占位
GID 组的识别号,和UID类似,每个组都有自己独有的识别号,不同组的GID不会相同
组成员 属于这个组成员,多个成员间用“,”分割
/etc/shadow文件
/etc/shadow:该文件对任何用户均可读,为了增加系统的安全性,Centos默认使用shadow passwords保护,将经过加密的用户口令保存在/etc/shadow文件里,它只对root用户提供一些口令时效字段。


字段含义
用户名 用户的账户名
口令 用户的口令,是SHA512加密过的
最后一次修改的时间
最小时间间隔
最大时间间隔
警告时间 在用户口令过期之前多少天提醒用户更新
不活动时间 在用户口令过期之后到禁用账户的天数
失效时间
标志 保留位
Linux环境下的命令行管理
useradd[<选项>]<用户名> 添加新的用户
usermod[<选项>]<用户名> 修改已存在的指定用户
userdel[<选项>]<用户名> 删除已存在的指定用户,-r参数用于删除用户自家目录
groupadd[<选项>]<用户名> 说明添加新的组
userdel[<选项>]<用户名> 说明删除已存在的用户
useradd test 创建test用户
cat /etc/passwd 查看创建的用户
groupadd admin 创建admin组
cat /etc/group 查看创建的组
useradd -G admin tom 创建tom用户并加入admin组
userdel test 删除test用户
userdel -r test 删除test用户及家目录
groupdel admin 删除admin组
usermod -G admin test 将test用户添加到admin附属组
mkdir /www;useradd -d /www -M web
创建一个新用户web,指定登录目录/www,不创建用户宿主目录(-M)
cat /etc/passwd 查看创建的web用户
口令管理和时效性
passwd<选项>[<登录用户名>]
-S 口令状态信息
-l 锁定用户账户
-u 解除已锁定账户
-d 删除口令
-k 保持口令不变,直到口令过期失效后才能修改
--stdin 从标准输入读取口令(非交互模式)
passwd -S test 查看test口令状态
passwd test 设置口令
su test 切换到test用户
passwd 修改当前用户的口令
whoami 用于显示当前用户状态
id 用于显示用户身份
groups 用于指定用户和组
newgrp 用于将账户从当前组转换到指定的附加组,用户必须属于该组才可以使用
操作权限概述
Linux是多用户的操作系统,允许多个用户同时在系统上登录和工作。为了确保系统和用户的安全,Linux采取了很多安全措施。用户在登录系统时需要输入用户名和口令,这样,就使系统可以通过用户的识别号(UID)来分别确定每个用户在登录系统后都做了些什么,也可以用来区别不同用户所建立的文件或目录。
3种基本权限
在Linux中,将使用系统资源的人员分为4类:超级用户、文件或目录的属主、属主的同组人和世界上的其他人员。由于超级用户具有操作Linux系统的一切权限,所以不用指定超级用户对文件和目录的访问权限。对于其他3类用户都要指定对文件和目录的访问权限。
字符 权限 对文件的含义 对目录的含义
r 读权限 可以读文件的内容 可以列出目录中的文件列表
w 写权限 可以修改权限 可以在该目录中创建、删除文件
x 执行权限 可以执行该文件 可以使用cd命令进入该目录
查看文件和目录的权限
在Linux中通过给3类用户分配3种权限,就产生了文件或目录的9个基本权限位。可以使用带l参数的ls命令查看文件或目录的权限。


umask命令指定在建立文件时预设的权限掩码
umask可用来设定[权限掩码]。[权限掩码]是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限。
umask [-S][权限掩码]
-S 以文字的方式来表示权限掩码
默认文件创建后 权限是644
默认目录创建后 权限是755
更改权限
两种设置方法:文字设定法和数值设定法
文字设定法
r 允许读取 u 和属主的权限相同
w 允许写入 g 和所属用户的权限相同
x 允许执行 o 和其他用户权限相同
chmod [ugao][+-=][rwx]<文件或目录名>
u 表示属主
g 表示所属组用户
o 表示其他用户
a 表示所有用户
数字设定法
chmod 数字 <文件或目录名>
suid和guid:
可以进入/bin或/sbin目录,执行下面的命令:
ls -l | grep '^...s' 查找suid文件
ls -l | grep '^...s...s' 查找suid和guid
设置suid权限:在相应的权限位之前设置4 ,如 chmod 4666
设置guid权限:在相应的权限位之前设置2,如chmod 2666
如果同时设置suid和guid权限,设置chmod 6666
防火墙
概念
防火墙是架设在不同信任级别的计算机网络之间的一种检测和控制设备。它是一个控制和检测的阻流点,不同级别网络间的所有数据都必须经过检查,实施边界防护,根据其配置的安全策略和规则允许、拒绝或代理数据的通过,必要时,可以同时提供NAT、VPN功能
功能
提供边界防护功能
内外网之间的所有网络数据流都必须经过防火墙
控制内外网之间网络系统的访问s
提高内部网络的保密性和私有性
提供网络服务访问和限制功能
只有符合安全策略的数据流才能通过防火墙,保护易受攻击服务
提供审计和监控功能
记录网络的使用状态,实现对异常行为的报警
集中管理内网的安全性,降低管理成本
局限性
不能保护绕过防火墙的攻击
非授权的网络连接(modem拨号连接、Wireless连接等)
执行CD/DVD/USB等介质上的恶意软件
不能保护被防火请信任的攻击
不能防止内部的威胁
不能防止所有病毒感染的程序或文件传输
防火墙的类型
按照是否使用专用设备划分
硬件防火墙:专用的硬件或软硬件结合实现
软件防火墙:基于普通PC或Server硬件上的通用操作系统加防火墙软件实现
按照网络模型层次划分
网络层包过滤防火墙
应用层网关代理
CentOS7和CentOS6防火墙的区别
使用工具不同。CentOS6使用的是iptables,CentOS7使用的是firewall iptables用于过滤数据包,属于网络层防火墙
firewalld能够允许哪些服务可用,哪些端口属于更高一层的防火墙
安装防火墙命令
yum -y install firewalld
systemctl start firewalld
systemctl enable firewalld
防火墙配置方法
使用图形工具firewall-config
使用命令行工具firewall-cmd
直接编辑/etc/firewalld/目录中配置文件
防火请配置命令
systemctl status firewalld 查看firewalld服务状态
firewall-cmd --state 查看firewall状态
service firewalld start 开启
service firewalld restart 重启
service firewalld stop 关闭
firewall-cmd --list-all 查看防火墙规则
firewall-cmd --query-port=22/tcp 查看端口是否开放
firewall-cmd --parmanent --add-port=80/tcp 开放80端口
firewall-cmd --parmenent --remove-port=8080/tcp 移除端口
firewall-cmd --reload 重启防火墙
参数解释
firewall-cmd:是Linux提供的操作firewall的一个工具
--permanent:表示设置为持久
--add-port:标识添加的端口