您好,欢迎来到思海网络,我们将竭诚为您提供优质的服务! 诚征网络推广 | 网站备案 | 帮助中心 | 软件下载 | 购买流程 | 付款方式 | 联系我们 [ 会员登录/注册 ]
促销推广
客服中心
业务咨询
有事点击这里…  531199185
有事点击这里…  61352289
点击这里给我发消息  81721488
有事点击这里…  376585780
有事点击这里…  872642803
有事点击这里…  459248018
有事点击这里…  61352288
有事点击这里…  380791050
技术支持
有事点击这里…  714236853
有事点击这里…  719304487
有事点击这里…  1208894568
有事点击这里…  61352289
在线客服
有事点击这里…  531199185
有事点击这里…  61352288
有事点击这里…  983054746
有事点击这里…  893984210
当前位置:首页 >> 技术文章 >> 文章浏览
技术文章

Linux(RHEL5)系统安全常规优化

添加时间:2011-2-26  添加: admin 

基本安全措施

1.       删除或禁用系统中不使用的用户和组

#  passwd  -l  wang   //禁用账户wang

#  passwd  -u  wang  //解锁账户wang

 


#  vi  /etc/shadow    //保存时为  :wq!  因为文件为只读

在密码字符前加两个叹号!

2.       确认程序或服务的登录shell不可用

#  vi  /etc/passwd   //将用户的登录shell改为/sbin/nologin

#  usermod   -s   /sbin/nologin   wang

3.       限制用户的密码有效期(最大天数)

#  vi  /etc/login.defs     //只对新建立的用户有效

PASS_MAX_DAYS    30

#  chage  -M  30  wang  //只对已经存在的wang用户有效

4.       指定用户下次登录时必须更改密码

#  chage   -d  0  wang

#  vi  /etc/shadow

//将shadow文件中wang用户LAST  DAY 域(冒号 :分割的第三列)的值设为0

5.       限制用户密码的最小长度

#  vi  /etc/pam.d/system-auth

password   requisite   pam_cracklib.so   try_first_pass  retry=3   minlen=12

retry  重试时间      minlen   安全级别

6.       限制记录命令历史的条数

#  vi  /etc/profile

HISTSIZE=50   (默认为1000)

#  echo  “history  -c  “  >>  ~/.bash_logout  //注销时清除命令历史记录

7.       设置闲置超时自动注销终端

#  vi   /etc /profile

export   TMOUT=600    //添加此行使用SU切换用户身份

su  [-]  用户名

[-] 区别 :

使用:相当于 - -login,表示使用目标用户的登录shell环境,工作目录,PATH变量等

不使用: 保持原有的用过环境不便

案例说明su的使用方法

允许wang用户可以通过su命令切换为root身份,以便执行管理任务


禁止其他用户使用su命令切换用过身份

(1)       将允许用户加入wheel组

#  gpasswd  -a  wang  wheel

#  id  wang  //查看wang用户的附加组

(2)       修改PAM设置,添加pam_wheel认证

#  vi  /etc/pam.d/su

auth   required  pam_wheel.so  use_uid   //去掉该行的#号

(3)       验证su权限

?  使用sudo提升执行权限

1./etc/sudoers配置文件---------visudo

sudo命令提供一种机制,只需要预先在/etc/sudoers配置文件中进行授权,即可以允许特定用户以超级用户(或其他普通用户)的身份执行命令,而该用户不需知道root用户的密码(或其他用户)的密码。常见语法格式如下:

user   MACHINE=COMMANDS

user:  授权指定用户

MACHINE主机:  授权用户可以在哪些主机上使用

COMMANDS命令:授权用户通过sudo调用的命令,多个命令用 , 分隔

/etc/sudoers文件配置中的用户、主机、命令三个部分均为可以自定义别名进行代替,格式如下

User_Alias                 OPERATORS=jerry, tom, tsengyia

Host_Alias                 MAILSERVERS=smtp , pop

Cmnd_Alias               SOFTWARE=/bin/rpm , /usr/bin/yum

2.使用sudo执行命令

sudo  -l  :查看当前用过被授权使用的sudo命令

sudo  -k  :清除timestamp时间戳标记,再次使用sudo命令时需要重新验证密码

sudo  -v  :重新更新时间戳(必要时系统会再次询问用户密码)

案例说明:

因系统管理工作繁重,需要将用户账号管理工作交给专门管理组成员负责

设立组账号 managers ,授权组内的各个成员用户可以添加、删除、更改用户账号

(1)       建立管理组账户  managers

#  groupadd  managers

(2)       将管理员账号,如wang加入managers组

#  gpasswd  -M  wang.nan  managers

(3)       配置sudo文件,针对managers组开放useradd  、 userdel 等用户管理命令的权限

#  visudo

Cmns_Alias      USERADM  =  /usr/sbin/useradd , /usr/sbin/userdel , /usr/sbin/usermod

%managers  localhost = USERADM

(4)       使用wang账号登录,验证是否可以删除他、添加用户

#  su  -  wang

#  whoami

#  sudo  -l

#  sudo  /usr/sbin/useradd  user1

#  sudo  /usr/sbin/usermod  -p  “ “  user1

#  sudo  /usr/sbin/userdel  -r  user1

文件和文件系统安全优化文件系统层次的安全优化

1.       合理规划系统分区

建议划分为独立分区的目录

/boot   :大小建议在200M以上。

/home  :该目录是用户默认宿主目录所在的上一级文件夹,若服务器用户数量较多,通常无法预知每个用户所使用的磁盘空间大小

 


/var    : 该目录用于保存系统日志、运行状态、用户邮箱目录等,文件读写频繁。占用空间可能会较多

/opt    : 用于安装服务器的附加应用程序及其他可选工具,方便扩展使用

2.       通过挂载选项禁止执行set位程序、二进制程序

使/var分区中程序文件的执行(x)权限失效,禁止直接执行该分区中二进制程序

#  vi  /etc/fstab

/dev/sdc1   /var    ext3    defaults,noexec   1  2

#  mount  -o  remount   /var

如果想要从文件系统层面禁止文件的suid 或 sgid位权限,将上边的noexec改为nosuid即可

3.       锁定不希望更改的系统文件

使用 +i 属性锁定service 、passwd、grub.conf 文件(将不能正常添加系统用户)

#  chattr   +i  /etc/service  /etc/passd  /boot/grub.conf

解除/etc/passwd文件的 +i 锁定属性

#  lsattr   /etc/passwd   //查看文件的属性状态

#  chattr   -i   /etc/passwd

?  应用程序和服务

1.       关闭不必要的系统服务

2.       禁止普通用户执行init.d目录中的脚本

#  chmod  -R  o-rwx  /etc/init.d

#  chmod  -R  750   /etc/init.d

3.       禁止普通用户执行控制台程序

/etc/security/console.apps/目录下每一文件对应一个系统程序,如果不希望普通用户调用这些控制台程序,可以将对应的配置文件移除

#  cd  /etc/security/console.apps/

#  tar  jcpvf  /etc/conhlp.pw.tar.bz2  poweroff   halt   reboot  - - remove

4.       去除程序文件中非必需的set-uid 或 set-gid 附加权限

查找系统中设置了set-uid或set-gid权限的文件,并结合 –exec 选项显示这些文件的详细权限属性

#  find  /  -type  f   perm  +6000   -exec  ls  -lh  { }  \  ;

去掉程序文件的suid/sgid位权限

#  chmod  a-s  /tmp/back.vim

编写shell脚本,检查系统中新增加的带有suid或者sgid位权限的程序文件

(1)     在系统处于干净状态时,建立合法suid/sgid文件的列表,作为是否有新增可疑suid文件的比较依据

#  find  /  -type  f   -prem  +6000   >  /etc/sfilelist

#  chmod  600  /etc/sfilelist

(2)     建立chksfile脚本文件,与sfilelist比较,输出新增的带suid/sgid属性的文件

#  vi  /usr/sbin/chksfile

#!/bin/bash

OLD_LIST=/etc/sfilelist

for  i  in  ` find  /  -type  -prem  +6000 `

do

grep   -F   “$i”  $OLD_LIST  >  /dev/null

[  $?  -ne  0 ]  &&  ls  -lh  $i

done

#  chmod  700  /usr/bin/chkfile

(3)     执行chkfile脚本,检查是否有新增suid/sgid文件

#  cp   /bin/touch  /bin/mytouch   //建立测试用程序文件

#  chmod  4755  /bin/mytouch

#  chksfile                    //执行程序脚本,输出检查结果

系统引导和登录安全优化文件系统层次的安全优化

1.       合理规划系统分区

建议划分为独立分区的目录

/boot   :大小建议在200M以上。

/home  :该目录是用户默认宿主目录所在的上一级文件夹,若服务器用户数量较多,通常无法预知每个用户所使用的磁盘空间大小

 


/var    : 该目录用于保存系统日志、运行状态、用户邮箱目录等,文件读写频繁。占用空间可能会较多

/opt    : 用于安装服务器的附加应用程序及其他可选工具,方便扩展使用

2.       通过挂载选项禁止执行set位程序、二进制程序

使/var分区中程序文件的执行(x)权限失效,禁止直接执行该分区中二进制程序

#  vi  /etc/fstab

/dev/sdc1   /var    ext3    defaults,noexec   1  2

#  mount  -o  remount   /var

如果想要从文件系统层面禁止文件的suid 或 sgid位权限,将上边的noexec改为nosuid即可

3.       锁定不希望更改的系统文件

使用 +i 属性锁定service 、passwd、grub.conf 文件(将不能正常添加系统用户)

#  chattr   +i  /etc/service  /etc/passd  /boot/grub.conf

解除/etc/passwd文件的 +i 锁定属性

#  lsattr   /etc/passwd   //查看文件的属性状态

#  chattr   -i   /etc/passwd

?  应用程序和服务

1.       关闭不必要的系统服务

2.       禁止普通用户执行init.d目录中的脚本

#  chmod  -R  o-rwx  /etc/init.d

#  chmod  -R  750   /etc/init.d

3.       禁止普通用户执行控制台程序

/etc/security/console.apps/目录下每一文件对应一个系统程序,如果不希望普通用户调用这些控制台程序,可以将对应的配置文件移除

#  cd  /etc/security/console.apps/

#  tar  jcpvf  /etc/conhlp.pw.tar.bz2  poweroff   halt   reboot  - - remove

4.       去除程序文件中非必需的set-uid 或 set-gid 附加权限

查找系统中设置了set-uid或set-gid权限的文件,并结合 –exec 选项显示这些文件的详细权限属性

#  find  /  -type  f   perm  +6000   -exec  ls  -lh  { }  \  ;

去掉程序文件的suid/sgid位权限

#  chmod  a-s  /tmp/back.vim

编写shell脚本,检查系统中新增加的带有suid或者sgid位权限的程序文件

(1)     在系统处于干净状态时,建立合法suid/sgid文件的列表,作为是否有新增可疑suid文件的比较依据

#  find  /  -type  f   -prem  +6000   >  /etc/sfilelist

#  chmod  600  /etc/sfilelist

(2)     建立chksfile脚本文件,与sfilelist比较,输出新增的带suid/sgid属性的文件

#  vi  /usr/sbin/chksfile

#!/bin/bash

OLD_LIST=/etc/sfilelist

for  i  in  ` find  /  -type  -prem  +6000 `

do

grep   -F   “$i”  $OLD_LIST  >  /dev/null

[  $?  -ne  0 ]  &&  ls  -lh  $i

done

#  chmod  700  /usr/bin/chkfile

(3)     执行chkfile脚本,检查是否有新增suid/sgid文件

#  cp   /bin/touch  /bin/mytouch   //建立测试用程序文件

#  chmod  4755  /bin/mytouch

#  chksfile                    //执行程序脚本,输出检查结果

系统引导和登录安全优化开关机安全控制

1.       调整BIOS引导设置

将第一优先引导设备设为当前系统所在硬盘,其他引导设置为Disabled.为BIOS设置管理员密码,安全级别调整为setup

2.       防止用户通过Ctrl+Alt_Del热键重启系统

 


#  vi  /etc/inittab

# ca : :ctrlaltdel :/sbin/shutdown  -t3  -r  now //注掉该行

#  init  -q  //使配置文件立即生效

?  GRUB引导菜单加密

在grub.conf文件中设置明文密码

#  vi  /boot/grub/grub.conf

password  123456  //仅在需要变更grub引导参数时才需要提供密码

tiltle  Red  Enterprise  Linux  Server  (2.6.18-8.el5)

         root  ( hd0,0 )

password  1234    //进入系统时输入的密码

在grub.conf文件中设置md5加密的密码字符串

#  vi  mima

wang

wang

#  grub-md5-crypt < mima  >> /boot/grub/grub.conf

?  终端登录控制

1.       即时禁止普通用户登录

#  touch  /etc/nologin   //通过/etc/nologin文件即时禁止普通用户登录系统

2.       控制服务器开放的tty终端

#  vi  /etc/inittab


1.       控制允许root用户登录的tty终端

#  vi  /etc/securetty


1.       更改系统登录提示,隐藏内核版本信息

通过修改/etc/issue、/etc/issue.net文件(分别对应本地登录、网络登录)

#  vi  /etc/issue

Welcome  to  server

#  cp  -f  /etc/issue  /etc/issue.net

2.       使用pam_access认证控制用户登录地点

Pam_access认证读取/etc/security/access.conf配置文件,该文件由权限、用户、来源,组成,用冒号进行分隔

权限  :加号 +  或 减号 - ,分别表示允许、拒绝

用户  : 用户名部分,多个用户名用空格分开,组使用@组名的形式表示。ALL表示所有用户

来源  :表示用户从哪个终端或远程主机登录,多个来源地点用空格分开

例:禁止除了root以外的用户从tty1终端登录系统

#  vi  /etc/pam.d/login     //在PAM配置文件login中添加认证支持

account   required   pam_access.so

#  vi  /etc/security/access.conf

-          :   ALL  EXCEPT  root  :  tty1

例:禁止root用户从192.168.1.0/24  、 172.16.0.0/8 网络中远程登录

#  vi  /etc/pam.d/sshd    //在PAM配置文件sshd中添加认证支持

account    required   pam_access.so

#  vi  /etc/security/access.conf

关健词:Linux(RHEL5)

分享到:

顶部 】 【 关闭
版权所有:佛山思海电脑网络有限公司 ©1998-2024 All Rights Reserved.
联系电话:(0757)22630313、22633833
中华人民共和国增值电信业务经营许可证: 粤B1.B2-20030321 备案号:粤B2-20030321-1
网站公安备案编号:44060602000007 交互式栏目专项备案编号:200303DD003  
察察 工商 网安 举报有奖  警警  手机打开网站