0x01 缘由
您可能会问:“为什么说加固机器非常重要?我的机器看起来并不会遭到攻击,因为我们只是一个小公司(或者是一个
小的非盈利组织等)。”确实,在 这种环境下,你的组织看起来并不是攻击者的目标。然而,许多攻击并不是针对特
定的目标进行,许多攻击者在攻击时并没有进行过思考,它们只是运行自动化的脚 本,找到防御薄弱的机器就实施
攻击。
实质上,此类攻击通常由一些使用自动化程序的人发起(通常这不复杂,也不需要太多的技术知识),它们使用这些
实质上,此类攻击通常由一些使用自动化程序的人发起(通常这不复杂,也不需要太多的技术知识),它们使用这些
程序扫描一定范围内的 Internet地址。如果你的机器刚好在这个范围内,就变得非常脆弱,它将可能被攻击或者被破
坏。之后你会发现,你现在要进行令人头疼的恢复操作――恢 复通常比防御需要花费更多的工作量。因此,加固机
器对于任何组织的安全计划来说,都是至关重要的。
和你想像的一样,正确的加固一台机器对系统管理员来说,是一项烦琐而又耗费时间的过程。在此过程中,很容
和你想像的一样,正确的加固一台机器对系统管理员来说,是一项烦琐而又耗费时间的过程。在此过程中,很容
易漏掉一个或多个重要步骤,这不仅会为机器留下漏洞,还可能会创建一个错误的安全策略,将机器置于风险之中。
0x02 方法
转载: 最近进行渗透测试,发现很多产商安全意思薄弱,而现在linux作为服务器的场景较多;
转载于:http://blog.youkuaiyun.com/xiegh2014/article/details/43304157
一、 账号策略
1.1 检查是否存在空口令账号检查方法:
awk -F: '($2 == ""){print}' /etc/passwd
备份方法:
cp -p /etc/passwd /etc/passwd_bak
加固方法:
使用命令passwd <用户名>设置密码。
回退方法:
rsync –avp /etc/passwd_bak /etc/passwd
1.2 检查是否设置除root之外UID为0的用户
检查方法:
awk -F: '($3 == "0") {print}'/etc/passwd
备份方法:
cp -p /etc/passwd /etc/passwd_bak
加固方法:
使用命令passwd -l <用户名>锁定不必要的超级账户。
使用命令passwd -u <用户名>解锁需要恢复的超级账户。
回退方法:
rsync –avp /etc/passwd_bak /etc/passwd
1.3 检查是否按组进行账号管理
检查方法:
cat /etc/pam.d/system-auth
备份方法:
cp -p /etc/pam.d/system-auth /etc/pam.d/system-auth_bak
加固方法:
添加以下内容
auth required pam_tally.so deny=5 unlock_time=600 no_lock_time
account required pam_tally.so
回退方法:
rsync –avp /etc/pam.d/system-auth_bak /etc/pam.d/system-auth
1.4 检查是否设置系统引导管理器密码
检查方法:
cat /boot/grub/grub.conf
备份方法:
cp -p /boot/grub/grub.conf /boot/grub/grub.conf_bak
加固方法:
grub-md5-crypt
将执行之后的结果集添加配置文件中/boot/grub/grub.conf
回退方法:
rsync –avp /boot/grub/grub.conf_bak /boot/grub/grub.conf
二、 文件访问控制
1.1 检查用户目录缺省访问权限设置
检查方法:
cat /etc/login.defs
备份方法:
cp -p cat /etc/login.defs /etc/login.defs_bak
加固方法:
vi /etc/login.defs
在末尾增加umask 027或UMASK 027,将缺省访问权限设置为750。
回退方法:
rsync –avp /etc/login.defs_bak /etc/login.defs
1.2 检查重要目录或文件权限设置
检查方法:
cat /etc/profile
备份方法:
cp -p /etc/profile/etc/profile_bak
加固方法:
在文件/etc/profile中设置umask 077或UMASK 077
回退方法:
rsync –avp /etc/profile_bak /etc/profile
三、 日志管理
检查安全事件日志配置
检查方法:
cat /etc/syslog.conf
备份方法:
cp -p /etc/syslog.conf/etc/syslog.conf_bak
加固方法:
编辑/etc/syslog.conf
配置:
*.err;kern.debug;daemon.notice /var/adm/messages
其中/var/adm/messages为日志文件。
如果该文件不存在,则创建该文件,命令为:
touch /var/adm/messages,并修改权限为666.命令为:chmod666 /var/adm/messages.
重启日志服务:/etc/init.d/syslogrestart
回退方法:
rsync –avp /etc/syslog.conf_bak /etc/syslog.conf
四、 远程登录
1.1 检查是否修改snmp默认团体字
检查方法:
cat /etc/snmp/snmpd.conf
备份方法:
cp -p /etc/snmp/snmpd.conf/etc/snmp/snmpd.conf_bak
加固方法:
编辑/etc/snmp/snmpd.conf,修改public默认团体字为用户自定义团体字。
回退方法:
rsync –avp /etc/snmp/snmpd.conf_bak /etc/snmp/snmpd.conf
1.2 检查系统openssh安全配置
检查方法:
cat /etc/ssh/sshd_config
备份方法:
cp -p /etc/ssh/sshd_config/etc/ssh/sshd_config_bak
加固方法:
在添加内容/etc/ssh/sshd_config
Protocol 2
PermitRootLogin NO
回退方法:
rsync –avp /etc/ssh/sshd_config_bak /etc/ssh/sshd_config
五、 系统服务
1.1 检查NFS(网络文件系统)服务配置
检查方法:
cat /etc/hosts.allow
备份方法:
cp -p /etc/hosts.allow /etc/hosts.allow_bak
加固方法:
限制能够访问NFS服务的IP范围,编辑文件vi /etc/hosts.allow增加一行:portmap允许访问的IP
回退方法:
rsync –avp /etc/hosts.allow_bak /etc/hosts.allow
1.2 检查是否使用NTP(网络时间协议)保持时间同步
检查方法:
cat /etc/ntp.conf
备份方法:
cp -p /etc/ntp.conf/etc/ntp.conf_bak
加固方法:
vi /etc/ntp.conf
配置:server IP地址(提供ntp服务的机器)
回退方法:
rsync –avp /etc/ntp.conf_bak /etc/ntp.conf