Time: 2014-07-20 Tag: linux 安全加固

1-1201150U120549.jpg

1、帐号安全

    1.1 锁定系统中的自建帐号
    查看帐号:
    #cat /etc/passwd
    #cat /etc/shadow
    查看账户、口令文件,与系统管理员确认不必要的账号。对于一些保留的系统伪帐户如:bin, sys,adm,uucp,lp, nuucp,hpdb, www, daemon等可根据需要锁定登陆。
    在修改之前先备份一下,省的出问题:
    备份方法:
    #cp -p /etc/passwd /etc/passwd_bak
    #cp -p /etc/shadow /etc/shadow_bak
    加固方法:
    使用命令passwd -l <用户名>锁定不必要的账号。
    使用命令passwd -u <用户名>解锁需要恢复的账号。
    风险:需要与管理员确认此项操作不会影响到业务系统的登录
    1.2设置系统口令策略
    查看密码策略设置:cat /etc/login.defs|grep PASS
    修改之前先备份一下: cp -p /etc/login.defs /etc/login.defs_bak
    修改配置文件:vi /etc/login.defs
    文件内参数解释:
    PASS_MAX_DAYS 90    #新建用户的密码最长使用天数
    PASS_MIN_DAYS 0        #新建用户的密码最短使用天数
    PASS_WARN_AGE 7    #新建用户的密码到期提前提醒天数
    PASS_MIN_LEN 0        #最小密码长度0
    PASS_MAX_LEN 9        #最大密码长度9
    1.3禁用root之外的超级用户
    查看口令文件:cat /etc/passwd
    属性解释:
    login_name:用户名
    password:加密后的用户密码
    user_ID:用户ID,(1 ~ 6000) 若用户ID=0,则该用户拥有超级用户的权限。查看此处是否有多个ID=0。
    group_ID:用户组ID
    comment:用户全名或其它注释信息
    home_dir:用户根目录
    command:用户登录后的执行命令
    加固方法与1.1的加固方法一样!
    1.4 限制能够su为root的用户
    修改 /etc/pam.d/su 文件 先备份:cp -p /etc/pam.d/su /etc/pam.d/su_bak
    在头部添加:auth required /lib/security/pam_wheel.so group=wheel #只有wheel组的可以su
    将test用户加入wheel组:usermod -G wheel test
    排错方法:当系统验证出现问题时,首先应当检查/var/log/messages或者/var/log/secure中的输出信息,根据这些信息判断用户账号的有效性。如果是因为PAM验证故障,而引起root也无法登录,只能使用single user或者rescue模式进行排错。
    2、最小化服务
    2.1 停止或禁用与承载业务无关的服务
    查看当前init级别 who -r 或者 runlevel
    查看所有服务的状态 chkconfig –list
    设置服务在个init级别下开机是否启动 chkconfig –level <服务名> on|off|reset
    注意:要安装chkconfig,radhat上面自带的有!
    3、数据访问控制
    修改umask的值 改变新建文件的安全属性
    备份:cp -p /etc/profile /etc/profile_bak
    修改umask=027
    作用:通过设置umask值,可以为新创建的文件和目录设置缺省权限
    风险:会修改新建文件的默认权限,如果该服务器是WEB应用,则此项谨慎修改。
    具体解释:请百度。。。。
    4、网络访问控制
    4.1 使用SSH进行管理
    查看服务是否开启: ps -aef|grep sshd
    开启服务:service sshd start
    关闭服务:service sshd stop
    重启服务:service sshd restart
    4.2设置访问控制策略限制能够管理本机的IP地址
    先备份文件:cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_bak
    修改文件:
    添加:AllowUsers *@10.138.*.* #仅允许10.138.0.0/16网段所有用户通过ssh访问
    保存后,重启ssh。
    4.3 禁止root用户远程使用ssh
    修改文件/etc/ssh/sshd_config 将PermitRootLogin修改为yes
    记得修改之前要备份
    4.4 限定信任主机
    修改/etc/hosts.allow,添加一下代码:
    sshd:192.168.0.100:allow //允许IP 192.168.0.100 登录
    sshd:192.168.10.:allow //允许IP 192.168.10. 网段登录
    修改/etc/hosts.deny,添加一下代码
    sshd:all:deny //禁止其他的所有IP登录
    4.5防止误使用Ctrl+Alt+Del重启系统
    修改/etc/init/control-alt-delete.conf 文件,将最后一行:
    exec /sbin/shutdown -r now “Control-Alt-Delete pressed” 注释掉就可以了
    5、用户鉴别
    5.1设置帐户锁定登录失败锁定次数、锁定时间
    修改文件/etc/pam.d/system-auth 添加一行:
    auth required pam_tally.so onerr=fail deny=6 unlock_time=300
    #设置为密码连续错误6次锁定,锁定时间300秒
    用户锁定后,解锁:faillog -u <用户名> -r
    风险:需要PAM包的支持;对pam文件的修改应仔细检查,一旦出现错误会导致无法登陆;  当系统验证出现问题时,首先应当检查/var/log/messages或者/var/log/secure中的输出信息,根据这些信息判断用户账号的有效性。
    5.2 修改帐户TMOUT值,设置自动注销时间
    修改/etc/profile文件
    在”HISTFILESIZE=”后面加入下面这行,添加:TMOUT=600 #表示无操作600秒后自动退出
    5.3设置Bash保留历史命令的条数
    修改/etc/profile文件的HISTSIZE的值,自己设定
    6、审计策略
    6.1 配置系统日志策略配置文件
    查看syslog是否启动:ps -aef | grep syslog
    查看rsyslogd的配置,并确认日志文件是否存在:cat /etc/rsyslog.conf
    6.2审计产生的数据分配合理的存储空间和存储时间
    查看系统轮询配置:cat /etc/logrotate.conf
    一些属性:
    rotate 4 日志文件保存个数为4,当第5个产生后,删除最早的日志
    size 100k 每个日志的大小