Linux安全方面的设置

主机安全
Root 密码安全à grup加密à光盘引导删除grup密码à bios加密à防范措施
Cisp国际安全工程师认证à没有技术à理论产生
用户:
Root 用户安全à密码安全(密码复杂度、定期修改密码(一个月)、社会工程学)à
密码安全:
# man 5 shadow
# cat /etc/shadow
root:$1$1PXQ/QPd$d4IGTbMwdBCcm5rbr4Cwr.:14084:0:99999:7:::
用户名:密码:上次密码修改时间(unix时间戳 1970 年1 月1日开始到密码修改
时间经历的时间):密码最短修改时间(天数、0为随时、3为3天之内不能修改密码):密码最长
修改时间(30 为1 个月修改1 次密码): 密码警告时间(提醒修改密码日期7 为提前7 天修改):
到达密码最长修改时间没有进行修改(3,为在过3天后清除用户):账户过期时间(1为unix时间
戳,为到1970 年1 月1 日+1后账户失效):无意义字段
# Chage –E 2010-10-10 (指定到达实效日期) root(过期账户名称)
MD5 密码格式以$1 开头$中间 n个字符$
脚本添加密码:
# echo 123456 | passwd --stdin zorro
# grub-md5-crypt << EOF
123456
123456
EOF
# grub-md5-crypt MD5 密码生成
Password:
Retype password:
$1$Orlto$vWCg3vjGBoJRdfl07b7xj1
相同字符串使用MD5 加密不一致.
hash算法特点无穷集集合通过散列变有穷集集合,稳定,不可逆
无穷集数据取模运算变有穷{0,1,2,3,4,….} %2=>{0,1}
模算法不变,数据不变 %2 {0,1}
通过结果和模算法不能推出目标数据{0,1} !=>{1,2,3,4}2%
# ls -l /etc/passwd 文件权限,使普通用户可以获取 MD5密文,所以放置/
etc/shadow 中
-rw-r--r-- 1 root root 2734 Dec 8 10:33 /etc/passwd
# ls –l /etc/shadow 文件权限root 可读,尽量使用命令修改
-r-------- 1 root root 2734 Dec 8 10:33 /etc/shadow# authconfig-tui (RHEL5、RHEL5 以前只用authconfig)
*使用屏蔽口令(use shadow passwords)密码存放在/etc/shadow 中
*使用MD5 口令(useMD5 passwords)
MD5 漏洞
MD5 密码通过算法对碰撞值计算时间减少到PC机较少时间破解
$1$Orlto$vWCg3vjGBoJRdfl07b7xj1
$Orlto$参杂值,随机数(长度不能超过8位)用户验证通过此字段数据获取
随机数。达到MD5 验证一致
账户权限:
P/S进程间通信使用管道/套接字 F/D普通文件/目录文件 B/C设备文件 块/字
符 L 字符链接文件
F: r cat(查看) w vi(写入) x ./(执行)
D: r ls(查看内容,具有 x权限才可以) w mkdir rm(创建 删除,具有x权限才可
以) x cd(目录来说必须具有此权限)
删除、创建与文件权限无关,目录权限有关。
由于目录权限o:rwx,造成目录下面用户user1的664文件可以被用户user2 强
制写入(解决方法chmod o+t dir)
Root:UID为0,可以忽视文件目录权限对/etc/shadow 文件写入操作
# ls -l /etc/shadow
-r-------- 1 root root 1916 Dec 8 10:47 /etc/shadow
其他用户:可以修改密码,由于/usr/bin/passwd文件具有s位
# ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 22960 Jul 17 2006 /usr/bin/passwd
用户调用进程,进程调用用户的 uid标记为自己的 euid,并具有其权限
用户修改密码,进程具有用户权限去修改/etc/shadow 文件。
给程序设置suid,则进程euid不再调用户uid,而调用程序所属 uid
Suid只对可执行程序进行设置
程序验证用户是否修改自己的密码,发现不是则拒绝
文件的信息完整性检测
# find / -perm 400 查找文件权限为只读的
#find / -perm -4000-4000 表示suid必须存在的000位不限制
# echo $PATH可执行程序范围
# find `echo $PATH | sed ‘s/:/ /g’` –perm -4000
在$PATH 路径下查找suid存在的文件,#PATH 需要对:号转换为空格。
确认系统中suid有所改变的过程
# for i in `echo $PATH | sed ‘s/:/ /g’` ; do if [ -d $i ];then find $i –perm-4000;fi;done > /tmp/suid.save 脚本,防止$PATH中有系统不存在的目录
# chmod u+s /usr/bin/vim
# for i in `echo $PATH | sed ‘s/:/ /g’` ; do; if [ -d $i ];then find $i –perm
-4000;fi;done > /tmp/suid.save.1
#diff /tmp/suid.save{,.1}
以上是不一样的数据为被修改suid的文件
---S----t
Suid Sgid stickey
s t
4 1
程序被替换()
unix下文件没有创建时间
# stat /etc/passwd
File: `/etc/passwd'
Size: 2340 Blocks: 8 IO Block: 4096 regular file
Device: 802h/2050d Inode: 7164224 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2008-12-08 12:15:04.000000000 +0800 访问时间
Modify: 2008-12-08 10:47:36.000000000 +0800 修改时间 文件内容被修改
Change: 2008-12-08 10:47:36.000000000 +0800 改变时间 文件属性修改
内容存贮在 blocks 属性存在inode
# md5sum /etc/passwd md5求和,文件不被修改则值不变
182da12c9ce45fa374ad51b553727873 /etc/passwd
# echo 1 >> /etc/passwd
# md5sum /etc/passwd 文件被改变,则 md5sum改变
e39f3b07b689854f32ca36a014710616 /etc/passwd
对系统文件进行 md5sum求值,通过对比监控文件被修改状况
当文件属性被修改时不能监控
Acl 文件访问权限控制
# vim /etc/fstab
..
LABEL=/nas /myhome ext3
defaults,acl,usrquota,grpquota 0 0 支持 acl
# mount –o remount,acl /myhome
# mount
..
/dev/mapper/vg0-nas on /myhome type ext3 (rw,acl,usrquota,grpquota)# setfacl -m user:user1:rw 1 添加权限
# getfacl 1 查看权限
# file: 1
# owner: root
# group: root
user::rw-
user:user1:rw-
group::r--
mask::rw-
other::r—
# setfacl –x 1 删除权限
# chattr –R(递 归修 改) –V(显 示修 改 过 程) more(+添加 -删 除 =设 置
[ASacDdIjsTtu])
a追加(ext2、ext3) i 不可变
data journalling (j)
# free
total used free shared buffers(写缓存)
cached(读缓存)
Mem: 1000672 546304 454368 0 116552
236764
-/+ buffers/cache: 192988 807684
Swap: 2096472 0 2096472
# man gcc 第1次从硬盘读取放置内存, 第2次直接从内存读取。 放置cached

Buffers 日志技术为了解决数据写入 buffers 中后没有及时写到
硬盘中,系统故障,造成写操作失败。Ext3 文件系统自动在硬盘划分日志区
域做硬盘与buffers同步,通常只记录inode信息,开启data journalling (j)后,
强制写入 blocks
(secure deletion (s)) 安全删除
# ls –i 查看文件的inode 号
文件名àinode号à blocks(文件名硬链接inode 号)
删除:文件名对应inode号进行删除,下次数据创建可以使用这个inode创

安全删除为将文件名、inode 号、blocks 信息全部清除
# man chattr
append only (a), compressed (c)压缩保存,用户透明, no dump (d)不需要
dump备份, 跳过, immutable (i)不能修改文件, data journalling (j), secure deletion (s)安全删除,
彻底删除 block级别, no tail-merging (t), undeletable (u)删除记录误删除,以备将来恢复, no
atime updates (A)每次访问都要修改文件属性中访问时间,此为不进行 atime更新,
synchronous directory updates (D)写入目录的内存数据同时写入硬盘, synchronous updates (S)
单独文件同步, and top of directory hierarchy (T).# chattr 设置
# lsattr 查看
# quota
# mount –o remount,rw /myhome
Rpm 信息监测功能
# rpm -V setup #列出 setup包中被改变的文件名
S.5....T c /etc/printcap
# man rpm
S file Size differs
M Mode differs (includes permissions and file type)
5 MD5 sum differs
D Device major/minor number mismatch 设备文件主设备号从设备号
L readLink(2) path mismatch 符号连接路径改变了
U User ownership differs
G Group ownership differs
T mTime differs(更改时间)
# rpm -Vf /etc/passwd #根据文件反查包中所有文件,列出被改变的文件名
# rpm -Va #查看所有安装的rpm包
Pam可插入试验证模块
# ls /lib/security pam库文件存放位置
# ls /etc/pam.d pam配置文件存放位置
管理员通过修改配置文件
# ldd /usr/sbin/sshd
..
libpam.so.0 => /lib/libpam.so.0 (0x00e40000) 调用pam验证
# vim /etc/pam.d/login 例:登陆配置文件,根据设置调用相应模块
#%PAM-1.0
auth [user_unknown(模块返回结果)=ignore(模块结果忽略) success=ok(模块成功)
ignore=ignore default=bad] pam_securetty.so (/etc/securetty 安全终端列表)
#检查当前登录终端是否在/etc/securetty 列表中,pam_securetty.so模块只针
对root 用户生效
auth include system-auth
将system-auth中相关 auth类型的调用到此处
类型 控制标志 控制模块 模块参数
account required pam_nologin.so
#pam_nologin.so检查/etc/nologin文件是否存在,默认不存在,如果存在则模
块生效,root登陆允许登陆并显示文件内容,其他用户禁止登陆并显示文件内容
account include system-auth
password include system-auth
# pam_selinux.so close should be the first session rule
session required pam_selinux.so closesession include system-auth
session required pam_loginuid.so
session optional pam_console.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 optional pam_keyinit.so force revoke
类型:
auth验证用户名,密码是否存在,
account 验证用户是否有效,被锁定,与用户名密码没有关系
password修改密码调用相关定义,
session 打开关闭登陆登出会话相关定义。
控制标志:
include 包含一个文件 system-auth,验证转到system-auth下进行验证。
Required 如果成功,最后成功于否取决于下面的测试是否成功,还
不成功会往下测试,并在所有的测试完成后,返回不成功,目的是让使用者不知道
是在哪一步验证失败。
Requisite 如果成功,会继续往下测试,并由下面的测试来决定是否成功。
没有成功,会立马显示验证失败而不会再往下测试。
sufficient 验证成功,不对下面进行验证
optional 不论结果怎么样都会继续运行,一般用在session中
# vim /etc/pam.d/system-auth
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
#pam_env.so模块调用/etc/security/pam_env.conf 配置文件设置环境变量
auth sufficient pam_unix.so nullok try_first_pass
#pam_unix.so配置文件/etc/passwd shadow。 nullok 表示密码可以为空
try_first_pass 每次登录验证都当第1 次验证
auth requisite pam_succeed_if.so uid >= 500 quiet
#pam_succeed_if 安全通过。uid>=500 quiet不报告。
auth required pam_deny.so 直接拒绝
#pam_deny.so就用来显示 Login incorrect
account required pam_unix.so
#可能使用过期时间等信息
account sufficient pam_succeed_if.so uid < 500 quiet
account required pam_permit.so
password requisite pam_cracklib.so try_first_pass retry=3
#pam_cracklib.so检查密码强度 retry=3 只能尝试3 次
password sufficient pam_unix.so md5 shadow nullok try_first_pass
use_authtok
password required pam_deny.so
session optional pam_keyinit.so revokesession required pam_limits.so
#pam_limits.so配置文件/etc/security/limits.conf
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet
use_uid
session required pam_unix.so
# /usr/share/doc/pam-0.99.6.2/Linux-PAM_SAG.html 帮助信息
1.2 个脚本完善,报告文件名出问题
2.pam文档…
限制shrek 用户在 tty4 终端登陆 确定类型、条件、位置
Auth 登陆验证限制 account 除登陆以外的验证限制(一般使用这个)
Required(失败不显示信息)
位置在控制语句之上
Pam_access.so
模块只支持 account类型信息
# vim /etc/security/access.conf 配置文件
-:shrek:ALL EXCEPT tty4 拒绝shrek 用户所有登陆除tty4
permission : users : origins
当多个服务调用 pam_access.so模块控制时候都调用/etc/security/access.conf 文件容易产生
冲突 可以通过对模块增加参数解决多应用冲突问题
#vim /etc/pam.d/sshd
..
account required pam_access.so accessfile=/etc/accessfile
指定pam_access.so模块调用的配置文件
使用列表名单限制用户登录
Pam_listfile.so (仅redhat有)
限制用户登录加载到auth类型中
# vim /etc/pam.d/login
Auth required pam_listfile.so file=/etc/loginuser item=user sense=deny
..
file:指定文件位置 item:指定文件列表的类型 sense:拒绝或允许
限制
limits.so模块,只能用在session中,redhat 一般服务都有limits.so模块
# vim /etc/security/limits.conf 配置文件 对以下内容的限制
# ulimit –a 可以查看资源限制
core file size (blocks, -c) 0
核心文件,有进程导出的,进程可能由于非正常原因退出,可以将内存的镜像导出到文件,
供程序员调试使用. 0 为限制为零data seg size (kbytes, -d) unlimited 不限制
max nice (-e) 0
#nice 值 +19(优先级低) 0 -20(优先级高)
#nice –n -20 ls 指定ls 命令的优先级为-20 (默认执行一个命令,由父进程优先级指定)
#renice -20 111[PID] 表示将pid为111 的进程优先级调整为-20
file size (blocks, -f) unlimited
最大文件系统大小限制(ext3,ext2 最大8TB)
pending signals (-i) 15783
味觉信号 尚未处理的信号量 占用内存
max locked memory (kbytes, -l) 32
锁内存,防止内存交换(交换,防止内存不够使用,将内存不活跃的数据放置硬盘虚拟内存)
max memory size (kbytes, -m) unlimited
最大内存大小
open files (-n) 1024
最多打开文件个数
pipe size (512 bytes, -p) 8
管道大小 8*512bytes
POSIX message queues (bytes, -q) 819200
POSIX 消息队列
max rt priority (-r) 0
最大实时优先级 real time
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 15783
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 2048 628 ? Ss 07:37 0:01 init [3]
VSZ 虚拟内存
进程寻址空间(虚拟空间)4G ,32 位系统2的32次方。
操作系统使用内存管理,管理进程调用内存
4G, 高端1G内核使用 栈空间从1G往下 进程库 空闲空间 堆从下往上找 数据区 (已
初始化区bss,未初始化区) 文本段
# renice 进程优先级 nice值高抢占资源低
# vim /etc/security/limits.conf 调优
<domain> <type> <item> <value>格式
Shrek hard nproc 4 限制shrek 的最大进程为4 个
# ps aux | grep shrek 测试上列
Shrek hard maxlogins 4 限制shrek 最大登陆
Shrek hard cpu 1 shrek 使用cpu最大1分钟DOS 拒绝服务攻击
通过用户限制服务,达到服务安全控制
Pam_time.so 时间访问控制 account
# vim /etc/pam.d/sshd
Account required pam_time.so
# vim /etc/security/time.conf
..
services;ttys;users;times
*:*:*:MoTuWeThFr0900-1800 允许任何用户在周1 到周5早9 点到晚18 点sshd登陆

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值