首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
timestamp
tags
ip
spring
dockerfile
datetime
audio
request
instance
process
export
triggers
node.js
join
ascii
io
express
utf-8
install
settings
php
client
stream
byte
php7
cookie
vba
search
perl
bash
foreach
controller
integer
require
typescript
bit
md5
actionscrip
javascript
python2
replace
vbscript
lua
plugins
数组
subset
js
grid
fetch
buffer
callback
match
uml
frameworks
java
hook
cpython
string
format
keyword
int
rsa
php5
future
schema
get
iostream
split
web3
random
object
header
post
jsp
const
expression
default
cSharp
bitmap
当前位置:
开发笔记
>
编程语言
> 正文
Linux用户安全
作者:小忠 | 来源:互联网 | 2023-10-12 12:32
1.口令安全UNIX系统中的etcpasswd文件含有全部系统需要知道的关于每个用户的信息(加密后的口令也可能存于etcshadow文件中).etcpasswd中包含有用户的登录名
1.口令安全
UNIX系统中的/etc/passwd文件含有全部系统需要知道的关于每个用户的信息(加密后的口令也可能存于/etc/shadow文件中).
/etc/passwd中包含有用户的登录名,经过加密的口令,用户号,用户组号,用户注释,用户主目录和用户所用的shell程序.其中用户号(UID)和用户组号(GID) 用于UNIX系统唯一地标识用户和同组用户及用户的访 问权限.
/etc/passwd中存放的加密的口令用于用户登录时输入的口令经计算后相比较,符合则允许登录,否则拒绝用户登录.用户可用passwd命令修改自己的口令, 不 能直接修改/etc/passwd中的口令部份.
一个好的口令应当至少有6个字符长,不要取用个人信息(如生日,名字,反向拼写的登录名,房间中可见的东西),普通的英语单词也不好(因为可用字典攻击法),口令中最好有一些非字母(如数字,标点符号,控制字符等),还要好记一些, 不能写在纸上或计算机中的文件中,选择口令的一个好方法是将两个不相关的词用一个数字或控制字符相连,并截断为8个字符.当然,如果你能记住8位乱码自然更好.
不应使用同一个口令在不同机器中使用,特别是在不同级别的用户上使用同一口令,会引起全盘崩溃.用户应定期改变口令,至少6个月要改变一次,系统管理员可以强制用户定期做口令修改.
为防止眼明手快的人窃取口令,在输入口令时应确认无人在身边.
2.文件许可权
文件属性决定了文件的被访问权限,即谁能存取或执行该文件.用ls -l可以列出详细的文件信息,如:
-rwxrwxrwx 1 pat cs440 70 Jul 28 21:12 zombin 包括了文件许可,文件联结数,文件所有者名,文件相关组名,文件长度,上次存取日期和文件名.
其中文件许可分为四部分:
-:表示文件类型.
第一个rwx:表示文件属主的访问权限.
第二个rwx:表示文件同组用户的访问权限.
第三个rwx:表示其他用户的访问权限.
若某种许可被限制则相应的字母换为-.
在许可权限的执行许可位置上,可能是其它字母,s,S,t,T.s和S可出现在所有者和同组用户许可模式位置上,与特殊的许可有关,后面将要讨论,t和T可出现在其他用户的许可模式位置上,与"粘贴位"有关而与安全无关.小写字母(x,s,t) 表示执行许可为允许,负号或大写字母(-,S或T)表示执行许可为不允许.
改变许可方式可使用chmod命令,并以新许可方式和该文件名为参数.新许可方式以3位8进制数给出,r为4,w为2,x为1.如rwxr-xr--为754.
chmod也有其它方式的参数可直接对某组参数修改,在此不再多说,详见UNIX 系统的联机手册.
文件许可权可用于防止偶然性地重写或删除一个重要文件(即使是属主自己)!
改变文件的属主和组名可用chown和chgrp,但修改后原属主和组员就无法修改回来了.
3.目录许可
在UNIX系统中,目录也是一个文件,用ls -l列出时,目录文件的属性前面带一个d,目录许可也类似于文件许可,用ls列目录要有读许可,在目录中增删文件要有写许可,进入目录或将该目录作路径分量时要有执行许可,故要使用任一个文件,必须有该文件及找到该文件的路径上所有目录分量的相应许可.仅当要打开一个文件时,文件的许可才开始起作用,而rm,mv只要有目录的搜索和写许可, 不需文件的许可,这一点应注意.
4.umask命令
umask设置用户文件和目录的文件创建缺省屏蔽值,若将此命令放入 .profile文件,就可控制该用户后续所建文件的存取许可.umask命令与chmod命令的作用正好相反,它告诉系统在创建文件时不给予什么存取许可.
5.设置用户ID和同组用户ID许可
用户ID许可(SUID)设置和同组用户ID许可(SGID)可给予可执行的目标文件 (只有可执行文件才有意义)当一个进程执行时就被赋于4个编号,以标识该进程隶属于谁,分别为实际和有效的UID,实际和有效的GID.有效的UID和GID一般和实际的UID和GID相同,有效的UID和GID用于系统确定该进程对于文件的存取许可. 而设置可执行文件的SUID许可将改变上述情况,当设置了SUID时,进程的有效UID 为该可执行文件的所有者的有效UID,而不是执行该程序的用户的有效UID,因此, 由该程序创建的都有与该程序所有者相同的存取许可.这样,程序的所有者将可通过程序的控制在有限的范围内向用户发表不允许被公众访问的信息.
同样,SGID是设置有效GID.
用chmod u+s 文件名和chmod u-s文件名来设置和取消SUID设置.用 chmod g+s 文件名和chmod g-s文件名来设置和取消SGID设置.
当文件设置了SUID和SGID后,chown和chgrp命令将全部取消这些许可.
6.cp mv ln和cpio命令
cp拷贝文件时,若目的文件不存在则将同时拷贝源文件的存取许可,包括SUID 和SGID许可.新拷贝的文件属拷贝的用户所有,故拷贝另人的文件时应小心,不要被其他用户的SUID程序破坏自己的文件安全.
mv移文件时,新移的文件存取许可与原文件相同,mv仅改变文件名.只要用户有目录的写和搜索许可,就可移走该目录中某人的SUID程序且不改变其存取许可. 若目录许可设置不正确,则用户的SUID程序可被移到一个他不能修改和删除的目录中,将出现安全漏洞.
ln为现有文件建立一个链,即建立一个引用同一文件的新名字.如目的文件已经存在,则该文件被删除而代之以新的链,或存在的目的文件不允许用户写它, 则请求用户确认是否删除该文件,只允许在同一文件系统内建链.若要删除一个 SUID文件,就要确认文件的链接数,只有一个链才能确保该文件被删除.若SUID文件已有多个链,一种方法是改变其存取许可方式,将同时修改所有链的存取许可, 也可以chmod 000 文件名,不仅取消了文件的SUID和SGID许可,而且也取消了文件的全部链.要想找到谁与自己的SUID程序建立了链,不要立刻删除该程序,系统管理员可用ncheck命令找到该程序的其它链.
cpio命令用于将目录结构拷贝到一个普通文件中,而后可再用cpio命令将该普通文件转成目录结构.用-i选项时,cpio从标准输入设备读文件和目录名表,并将其内容按档案格式拷贝到标准输出设备,使用-o选项时,cpio从标准输入设备读取先已建好的档案,重建目录结构.cpio命令常用以下命令做一完整的目录系统档案:
find fromdir -print cpio -o > archive
根据档案文件重建一个目录结构命令为:
cpio -id
cpio的安全约定如下:
(1)档案文件存放每个文件的信息,包括文件所有者,小组用户,最后修改时 间,最后存取时间,文件存取许可方式.
*根据档案建立的文件保持存放于档案中的存取许可方式.
*从档案中提取的每个文件的所有者和小组用户设置给运行cpio -i命令 的用户,而不是设置给档案中指出的所有者和小组用户.
*当运行cpio -i命令的用户是root时,被建立的文件的所有者和小组用户 是档案文件所指出的.
*档案中的SUID/SGID文件被重建时,保持SUID和SGID许可,如果重建文件 的用户不是root,SUID/SGID许可是档案文件指出的用户/小组的许可.
(2)现存文件与cpio档案中的文件同名时,若现存文件比档案中的文件更新, 这些文件将不被重写.
(3)如果用修改选项U,则同名的现存的文件将被重写.可能会发生一件很奇怪的事:如被重写的文件原与另一个文件建了链,文件被重写后链并不断 开,换言之,该文件的链将保持,因此,该文件的所有链实际指向从档案中提取出来的文件,运行cpio无条件地重写现存文件以及改变链的指向.
(4)cpio档案中可含的全路径名或父目录名给出的文件.
7.su和newgrp命令
(1)su命令:可不必注销户头而将另一用户又登录进入系统,作为另一用户工作. 它将启动一新的shell并将有效和实际的UID和GID设置给另一用户.因此必须严格将root口令保密.
(2)newgrp命令:与su相似,用于修改当前所处的组名.
8.文件加密
crypt命令可提供给用户以加密文件,使用一个关键词将标准输入的信息编码为不可读的杂乱字符串,送到标准输出设备.再次使用此命令,用同一关键词作用于加密后的文件,可恢复文件内容.
一般来说,在文件加密后,应删除原始文件,只留下加密后的版本,且不能忘记加密关键词.
在vi中一般都有加密功能,用vi -x命令可编辑加密后的文件.关于加密关键词的选取规则与口令的选取规则相同.
由于crypt程序可能被做成特洛依木马,故不宜用口令做为关键词.最好在加密前用pack或compress命令对文件进行压缩后再加密.
9.其它安全问题
(1)用户的.profile文件
由于用户的HOME目录下的.profile文件在用户登录时就被执行.若该文件 对其他人是可写的 则系统的任何用户都能修改此文件,使其按自己的要求 工作.这样可能使得其他用户具有该用户相同的权限.
(2)ls -a
此命令用于列出当前目录中的全部文件,包括文件名以.开头的文件,查看 所有文件的存取许可方式和文件所有者,任何不属于自己但存在于自己的 目录中的文件都应怀疑和追究.
(3).exrc文件 为编辑程序的初始化文件,使用编辑文件后,首先查找$HOME/.exrc文件和 ./.exrc文件,若该文件是在$HOME目录中找到,则可像.profile一样控制它的存取方式,若在一个自己不能控制的目录中,运行编辑程序,则可能运行 其他人的.exrc文件,或许该.exrc文件存在那里正是为了损害他人的文件安全.为了保证所编辑文件的安全,最好不要在不属于自己或其他人可写的 目录中运行任何编辑程序.
(4)暂存文件和目录
在UNIX系统中暂存目录为/tmp和/usr/tmp,对于程序员和许多系统命令都使用它们,如果用这些目录存放暂存文件,别的用户可能会破坏这些文件. 使用暂存文件最好将文件屏蔽值定义为007,但最保险的方法是建立自己的暂存文件和目录:$HOME/tmp,不要将重要文件存放于公共的暂存目录.
(5)UUCP和其它网络
UUCP命令用于将文件从一个UNIX系统传送到另一个UNIX系统,通过UUCP传送的文件通常存于/usr/spool/uucppublic/login目录,login是用户的登录名,该目录存取许可为777,通过网络传输并存放于此目录的文件属于 UUCP所有,文件存取许可为666和777,用户应当将通过UUCP传送的文件加密,并尽快移到自己的目录中.其它网络将文件传送到用户HOME目录下的 rjc目录中.该目录应对其他人是可写可搜索的,但不必是可读的,因而用户的rjc目录的存取许可方式应为733,允许程序在其中建立文件.同样,传送 的文件也应加密并尽快移到自己的目录中.
(6)特络依木马
在UNIX系统安全中,用特络依木马来代表一种程序,这种程序在完成某种具 有明显意图的功能时,还破坏用户的安全.如果PATH设置为先搜索系统目 录,则受特络依木马的攻击会大大减少.如模似的crypt程序.
(7)诱骗
类似于特络依木马,模似一些东西使用户泄漏一些信息,不同的是,它由某 人执行,等待无警觉的用户来上当.如模似的login.
(
计算机病毒
计算机病毒通过把其它程序变成病毒从而传染系统的,可以迅速地扩散,特 别是系统管理员的粗心大意,作为root运行一个被感染的程序时.实验表 明,一个病毒可在一个小时内(平均少于30分钟)取得root权限.
(9)要离开自己已登录的终端
除非能对终端上锁,否则一定要注销户头.
(10)智能终端
由于智能终端有send和enter换码序列,告诉终端送当前行给系统,就像是 用户敲入的一样.这是一种危险的能力,其他人可用write命令发送信息给 本用户终端,信息中如含有以下的换码序列:
移光标到新行(换行)
在屏幕上显示"rm -r *"
将该行送给系统
后果大家可以想象.
禁止其他用户发送信息的方法是使用mesg命令,mesg n不允许其他用户发 信息,mesg y允许其他用户发信息.即使如此仍是有换码序列的问题存在, 任何一个用户用mail命令发送同样一组换码序列,不同的要用!rm -r *替 换rm -r *.mail将以!开头的行解释为一条shell命令,启动shell,由shell 解释该行的其它部分,这被称为shell换码.为避免mail命令发送换码序列到自己的终端,可建立一个过滤程序,在读mail文件之前先运行过滤程序, 对mail文件进行处理:
myname="$LOGNAME";
tr -d[01-07][-13-37]>$HOME/mailbox;
> /usr/mail/$myname;
mail -f $HOME/mailbox
其中tr将标准输入的字符转换手写到标准输出中.这只是一个简单的思路,
从原则上来说,此程序应为一C程序,以避免破坏正发送到的文件,可用锁文 件方式实现.
(11)断开与系统的联接
用户应在看到系统确认用户登录注销后再离开以免在用户未注销时由他人 潜入.
(12)cu命令
该命令使用户能从一个UNIX系统登录到另一个UNIX系统,此时,在远地系统 中注销用户后还必须输入"~"后回车,以断开cu和远地系统的联接. cu还有两个安全问题:
*如本机安全性弱于远地机,不提倡用cu去登录远地机,以免由于本地机的 不安全而影响较安全的远地机.
*由于cu的老版本处理"~"的方法不完善,从安全性强的系统调用安全性弱 的系统时,会使弱系统的用户使用强系统用户的cu传送强系统的 /etc/passwd文件,除非确信正在使用的cu是正确版本,否则不要调用弱系 统.
10.保持户头安全的要点
(1)保持口令的安全
*不要将口令写下来.
*不要将口令存于终端功能键或MODEM的字符串存储器中.
*不要选取显而易见的信息作口令.
*不要让别人知道.
*不要交替使用两个口令.
*不要在不同系统上使用同一口令.
*不要让人看见自己在输入口令.
(2)不要让自己的文件或目录可被他人写.
*如果不信任本组用户,umask设置为022.
*确保自己的.profile除自己外对他人都不可读写.
*暂存目录最好不用于存放重要文件.
*确保HOME目录对任何人不可写.
*uucp传输的文件应加密,并尽快私人化.
(3)若不想要其他用户读自己的文件或目录,就要使自己的文件和目录不允许 任何人读.
*umask设置为006/007.
*若不允许同组用户存取自己的文件和目录,umask设置为077.
*暂存文件按当前umask设置,存放重要数据到暂存文件的程序,就被写成能 确保暂存文件对其他用户不可读.
*确保HOME目录对每个用户不可读.
(4)不要写SUID/SGID程序.
(5)小心地拷贝和移文件.
*cp拷贝文件时,记住目的文件的许可方式将和文件相同,包括SUID/SGID许 可在内,如目的文件已存在,则目的文件的存取许可和所有者均不变.
*mv移文件时,记住目的文件的许可方式将和文件相同,包括SUID/SGID许可 在内,若在同一文件系统内移文件,目的文件的所有者和小组都不变,否 则,目的文件的所有者和小组将设置成本用户的有效UID和GID.
*小心使用cpio命令,它能复盖不在本用户当前目录结构中的文件,可用t选 项首先列出要被拷贝的文件.
(6)删除一个SUID/SGID程序时,先检查该程序的链接数,如有多个链,则将存取 许可方式改为000,然后再删除该程序,或先写空该程序再删除,也可将该程 序的i结点号给系统管理员去查找其他链.
(7)用crypt加密不愿让任何用户(包括超级用户)看的文件.
*不要将关键词做为命令变量.
*用ed -x或vi -x编辑加密文件.
(8)除了信任的用户外,不要运行其他用户的程序.
(9)在自己的PATH中,将系统目录放在前面.
(10)不要离开自己登录的终端.
(11)若有智能终端,当心来自其他用户,包括write命令,mail命令和其他用户 文件的信息中有换码序列.
(12)用CTRL+D或exit退出后,在断开与系统的联接前等待看到login:提示.
(13)注意cu版本.
*不要用cu调用安全性更强的系统.
*除非确信cu不会被诱骗去发送文件,否则不要用cu调用安全性较弱的系统.
linux
安全
unix
文件
加密
shell
乱码
搜索
io
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
io
Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ...
[详细]
蜡笔小新 2023-12-14 17:57:01
search
Metasploit攻击渗透实践
本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ...
[详细]
蜡笔小新 2023-12-14 12:14:09
php
Windows操作系统的版本介绍及特点
本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ...
[详细]
蜡笔小新 2023-12-12 17:41:13
io
如何使用readlink获取文件的完整路径?
本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ...
[详细]
蜡笔小新 2023-12-09 17:28:17
install
oracle11g 过程,oracle11g 安装过程
安装oracle软件1创建用户组、用户和目录bjdb节点下:[rootnode1]#groupadd-g200oinstall[rootnode1]#groupad ...
[详细]
蜡笔小新 2023-12-09 08:41:56
byte
【技术分享】一个 ELF 蠕虫分析
【技术分享】一个 ELF 蠕虫分析 ...
[详细]
蜡笔小新 2023-10-17 16:12:28
perl
Nginx使用AWStats日志分析的步骤及注意事项
本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ...
[详细]
蜡笔小新 2023-12-14 19:42:01
io
Linux重启网络命令实例及关机和重启示例教程
本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ...
[详细]
蜡笔小新 2023-12-14 15:52:52
php
Linux进程控制块PCBtask_struct结构体结构及作用详解
本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ...
[详细]
蜡笔小新 2023-12-13 21:31:18
cookie
Apache Shiro 身份验证绕过漏洞 (CVE202011989) 详细解析及防范措施
本文详细解析了Apache Shiro 身份验证绕过漏洞 (CVE202011989) 的原理和影响,并提供了相应的防范措施。Apache Shiro 是一个强大且易用的Java安全框架,常用于执行身份验证、授权、密码和会话管理。在Apache Shiro 1.5.3之前的版本中,与Spring控制器一起使用时,存在特制请求可能导致身份验证绕过的漏洞。本文还介绍了该漏洞的具体细节,并给出了防范该漏洞的建议措施。 ...
[详细]
蜡笔小新 2023-12-09 19:58:36
client
【重识云原生】第四章云网络4.8.3.2节——Open vSwitch工作原理详解
2OpenvSwitch架构2.1OVS整体架构ovs-vswitchd:守护程序,实现交换功能,和Linux内核兼容模块一起,实现基于流的交换flow-basedswitchin ...
[详细]
蜡笔小新 2023-12-09 10:34:07
client
ESX 3.5 使用
在单位的一台4cpu的服务器上部署了esxserver,挂载了6个虚拟机,目前运行正常。在安装部署过程中,得到了cnvz.net论坛精华区 ...
[详细]
蜡笔小新 2023-10-17 17:20:29
bash
宋宝华:用systemd-nspawn运行最轻量级容器
systemd-nspawn可以创建最轻量级的容器(ns的意思就是namespace),本文的实验平台是Ubuntu16.04,x86_64机器。本文的目的是:在Ubuntu中用syst ...
[详细]
蜡笔小新 2023-10-17 14:49:15
io
【CTF 攻略】第三届 SSCTF 全国网络安全大赛—线上赛 Writeup
【CTF 攻略】第三届 SSCTF 全国网络安全大赛—线上赛 Writeup ...
[详细]
蜡笔小新 2023-10-17 14:38:19
io
密码学——公钥与私钥(非对称加密)
转载处:http:www.cnblogs.comdarksirp3704198.html这里不讨论数学原理,只说明其实现和传输过程。我们先假定一个数据的发送方和一个数据的接收方(就叫小红和小 ...
[详细]
蜡笔小新 2023-10-17 10:44:47
小忠
这个家伙很懒,什么也没留下!
Tags | 热门标签
timestamp
tags
ip
spring
dockerfile
datetime
audio
request
instance
process
export
triggers
node.js
join
ascii
io
express
utf-8
install
settings
php
client
stream
byte
php7
cookie
vba
search
perl
bash
RankList | 热门文章
1
[急!] c#如何直接操作ppt的图表数据,winfrom下mschart图表如何倒入到excel或ppt中
2
i5 10400f配什么主板性价比高
3
R语言openxlsx、car、rmarkdown包安装报错: 句法分析器2行里不能有多字节字符;解决WARNING: Rtools is required to build R packages
4
优先级表和Ascll表
5
XMLhttpREquest_Ajax技术总结之XmlHttpRequest
6
获取php数组的最后5个元素,php获取数组最后一个元素
7
作用域链&&严厉形式
8
Form表单里的checkbox能用required判断至少选择一个吗
9
Android 常用工具类源码大全
10
优秀教师是怎样用幽默感让他的课堂气氛活跃起来的?
11
C语言学习笔记—链表(二)链表的静态添加及动态遍历
12
php设置数组大小_【大厂必备】2020超经典PHP面试题
13
如何搭建服务器环境php(2023年最新解答)
14
非常全的跨域实现方案
15
不要使用的HTML标签(WEB标准网页布局)
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有