CTF比赛培训教程笔记-04Linux系统安全_2

一、常规安全配置

1、重要目录和文件权限

加固示例:(1)chmod -R 750 /etc/rc.d/init.d/*

-R  recursive   循环的、递归的
(2)umask 查看默认的umask是否为027
vi /etc/profile 修改umask 027

2、设置bash保留历史命令的条数
(1)查看保留历史命令的条数 cat /etc/profile |grep HISTSIZE=
cat /etc/profile |grep HISTFILESIZE=
(2)加固,修改 vi /etc/profile 只保留最新执行的5条命令
HISTSIZE=5 HISTFILESIZE=5
3、登录超时
(1)查看登录超时设置 cat /etc/profile |grep TMOUT
(2)加固 vi /etc/profile 修改TMOUT=180 ,设置超时时间为180秒
4、root路径
(1)root用户环境变量path中应不包含 “.”
(2) 查看环境变量的 PATH的方法: echo $PATH
(3) 加固方法:vi /etc/profile 修改$PATH的路径
5、引申的一些关于路径的常用操作:

当前会话有效
方法1:直接运行命令export PATH=$PATH:要增加的新的路径
[root@xxzx-net ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@xxzx-net ~]# export PATH=$PATH:/home/yantaisolo
[root@xxzx-net ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/home/yantaisolo

方法2:执行vi ~/.bash_profile修改文件中PATH一行,将/home/yantaisolo加入到PATH=$PATH:$HOME/bin一行之后

永久有效
执行并修改 vi /etc/profile,在文件末尾加上如下两行
PATH=$PATH:/home/yantaisolo
export PATH
执行 [root@xxzx-net ~]# source /etc/profile 或 ./profile

二、账户安全

1、禁用无用账号
(1)cat /etc/passwd 查看当前的用户账户,确认不必要的账户。
(2)用 passwd -l 用户名 锁定不必要的账户。用 passwd -u 用户名 解锁已被锁定的账户。

     passwd –status  用户名     /*查看用户的状态,是否被锁定。
其实用usermod -L 也可以实现锁定用户的功能。
2、加固账号策略
(1)查看账号策略 cat /etc/pam.d/system-auth   

pam(  pluggable   Authentication  Modules )  可插拔认证模块
(2) 设置连续输入10次密码,账号锁定5分钟:
vi /etc/pam.d/system-auth 添加
auth required pam_tally.so onerr=fail deny=10 unlock_time=300
3、检查特殊账号
(1)查看空口令和root权限的账号
查看空口令: awk -F: ‘($2==””)’ /etc/shadow
查看UID为0的特殊账户: awk -F: ‘($4==0)’ /etc/shadow
4、口令周期策略
(1)查看密码策略设置
cat /etc/login.defs | grep PASS
cat /etc/pam.d/system-auth
(2) 加固方法
vi /etc/login.defs
修改一下参数: PASS_MAX_DAYS 90 #新建用户的密码最长使用天数
PASS_MIN_DAYS 0 #新建用户的密码最短使用天数
PASS_WARN_AGE 7 #新建用户的密码到期提前提醒天数

使用chage命令设置用户口令的实例
chage -m 0 -M 30 -W 7 -E 2019-11-26 yantaisolo
-m 0 密码最短使用0天, -M 30 密码最长使用30天,-W 7 密码到期前7天提醒。 -E 2019-11-26 账户至2019年11月26日到期, yantaisolo 用户
5、口令复杂度策略
(1)查看密码复杂度策略
cat /etc/pam.d/system-auth | grep pam_craklib.so
(2)加固方法
修改 /etc/pam.d/system-auth 文件
password requisite pam_cracklib.so difok=3 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1
minlen=8 口令最少是8位;ucredit=-1 最少一位大写字母; lcredit=-1 最少一位小写字母;dcredit=-1 最少一位数字
6、限制root远程登录
(1)查看是否限制root远程登录
cat /etc/securetty | grep CONSOLE
(2) 加固方法
vi /etc/securetty
配置 CONSOLE=/dev/tty01
7、限制用户su
8、检查Grub/Lilo密码
(1)检查方法
cat /etc/grub.conf |grep password
cat /etc/lilo.conf |grep password
(2) 加固方法
vi /etc/grub.conf
splashimage 这个参数下一行添加:
password 密码 即可,如需md5加密,则加入
password –md5 密码

vi /etc/lilo.conf
password=密码
9、SNMP团体字

10、利用第三方工具john来审计弱口令
(1)#john /etc/shadow –single
#john /etc/shadow –wordlist=pass.dic #pass.dic 是密码字典文件名
(2)使用的一例,见下图

1

三、服务进程

1、系统守护进程(服务)与常见的服务及对应的端口号
在linux中,服务一般是通过inetd进程或脚本来启动的。通过inetd来启动的服务可以通过/etc/inetd.conf文件进行注释。
通过启动脚本启动的服务可以通过改变脚本名称的方式禁用。
pstree
ps aux

2、检查ssh服务
(1)配置文件 cat /etc/ssh/sshd_config
(2) 加固方法 vi /etc/ssh/sshd_config
不允许root直接登录: 设置PermitRootLogin 为 0
修改ssh协议版本: Protocol 2
允许密码错误的次数: MaxAuthTries 3

3、TCP Wrapper
(1)查看配置文件:

cat /etc/hosts.allow
cat /etc/hosts.deny

4、NFS共享

5、syslogd认证相关记录
(1)cat /etc/rsyslog.conf 查看rsyslogd的配置。
系统日志: /var/log/messages
cron日志: /var/log/cron
安全日志: /var/log/secure

6、限制CTRL+ALT+DEL

7、服务进程安全
(1)who -r 查看当前init级别
(2)chkconfig –list <服务名> 查看所有服务的状态
(3)chkconfig –level <init级别> <服务名> on|off|rest
设置服务在各init级别下开机是否启动。

 

yantaisolo

作者 yantaisolo