1 账户安全
1.1 锁定系统中多余的自建帐号
查看 /etc/passwd 和 /etc/shadow 这俩文件,每一行第一个字段为用户名。
如果你确认系统中某些用户并非用来登录系统,可以将其锁定:
使用命令passwd -l <用户名>锁定不必要的账号。
使用命令passwd -u <用户名>解锁需要恢复的账号。
注:需要与管理员确认此项操作不会影响到业务系统的登录
1.2 设置系统口令策略
不建议使用以下类似的简单密码:123456 Password 123@qwer
使用以下命令查看密码策略设置:
#cat /etc/login.defs|grep PASS
可根据需要修改配置文件/etc/login.defs
PASS_MAX_DAYS 90 #新建用户的密码最长使用天数
PASS_MIN_DAYS 0 #新建用户的密码最短使用天数
PASS_WARN_AGE 7 #新建用户的密码到期提前提醒天数
PASS_MIN_LEN 9 #最小密码长度9
1.3 设置口令过期时间
对于采用静态口令认证技术的设备,账户口令的生存期不长于90天。
操作:修改/etc/login.defs 文件,添加内容:PASS_MAX_DAYS 90
1.4 登录连续认证失败锁定帐号
对于采用静态口令认证技术的设备,应配置当用户连续认证失败次数超过6次,锁定该用户使用的账号。
参考配置操作:
CentOS: 在etc/pam.d/system-auth中auth列中添加:
auth required pam_tally.so onerr=fail deny=6 unlock_time=300
参数说明:
Deny:失败次数。
Unlock_time:锁定帐户多少秒后解锁。
2 系统服务安全
2.1 linux服务简介
服务进程 |
说明 |
建议 |
network |
网卡管理 |
开机启动 |
kudzu |
系统启动时自动检测硬件 |
开机启动 |
sshd |
远程登录服务 |
开机启动 |
crond |
计划任务程序 |
开机启动 |
syslog |
日志服务 |
开机启动 |
rsyslog |
日志服务 |
开机启动 |
haldaemon |
硬件自动检测挂载的功能 |
开机启动 |
iptables |
包过滤工具(系统自带防火墙) |
开机启动 |
acpid |
电源管理服务 |
开机启动 |
cpuspeed |
动态调整CPU处理能力功能 |
开机启动 |
irqbalance |
CPU性能优化 |
开机启动 |
microcode_ctl |
CPU编码功能 |
开机启动 |
readahead_early |
优化系统的启动速度 |
开机启动 |
irqbalance |
用于多个处理器环境下的系统中断请求进行负载平衡的守护程序 |
根据需要开启 |
kdump |
在系统崩溃、死锁或者死机的时候用来转储内存运行参数的一个工具和服务 |
根据需要开启 |
netdump |
网络转储(Netdump)的功能 |
根据需要开启 |
named |
用于架设dns服务 |
根据需要开启 |
netconsole |
用于将本地主机的日志信息打印到远程主机上,便于远程用户查看日志信息 |
根据需要开启 |
messagebus |
进程间通讯)服务。确切地说,它与 DBUS 交互,为两个或两个以上的应用程序提供一对一的通讯 |
根据需要开启 |
anacron |
计划任务程序,是对cron的补充 |
根据需要开启 |
atd |
计划任务程序,任务只执行一次 |
根据需要开启 |
autofs |
外部存储设备的自动加载 |
禁用 |
avahi-daemon |
局域网里发现基于 zeroconf 协议的设备和服务 |
禁用 |
avahi-dnsconfd |
局域网里发现基于 zeroconf 协议的设备和服务 |
禁用 |
bluetooth |
用于支持蓝牙设备和功能的正常运行 |
禁用 |
NetworkManager |
自动切换网络连接的后台进程 |
禁用 |
capi |
用于支持ISDN 设备 |
禁用 |
dund |
用于支持蓝牙设备和功能的正常运行 |
禁用 |
firstboot |
安装之后的第一次启动时执行启动脚本 |
禁用 |
gpm |
为文本模式下的Linux部分程序提供鼠标支持 |
禁用 |
hidd |
用于支持蓝牙设备和功能的正常运行 |
禁用 |
ip6tables |
用于 IPv6 的软件防火墙 |
禁用 |
irda |
用于实现红外无线数据传输 |
禁用 |
mcstrans |
如果你使用 SELinux 就开启它 |
禁用 |
mdmonitor |
与RAID设备相关的守护程序 |
禁用 |
mdmpd |
与RAID设备相关的守护程序 |
禁用 |
microcode_ctl |
可以编码以及发送新的微代码到kernel以更新Intel IA32系列处理器 |
禁用 |
2.2 停用与业务无关的服务
Centos:chkconfig --list 查看所有服务的状态
chkconfig <服务名> on 设置服务开机自启动
chkconfig <服务名> off 设置服务开机不启动
Ubuntu:sysv-rc-conf 进行简易图形化配置
3 网络访问安全
3.1 设置访问控制策略限制能够使用ssh管理本机的IP地址
修改ssh配置文件 /etc/ssh/sshd_config
如需要限制只让192.168.1.0/24网段登录root用户,可在配置文件中添加一行:
allowusers root@192.168.1.*
注:可将root更改为需要限制登录的用户名;
保存后重启ssh服务:#service sshd restart
3.2 禁止root用户远程登陆
检查 /etc/ssh/sshd_config:
查看是否有此条配置:PermitRootLogin yes
可将此条配置修改为PermitRootLogin no
保存后重启ssh服务:#service sshd restart
3.3 修改帐户TMOUT值,设置自动注销时间
检查方法:
#cat /etc/profile 查看有无TMOUT的设置
添加配置:TMOUT=600
意思是无操作600秒后自动退出
3.4 启动IPTABLES并设置相关策略
使用命令iptables-save来查看当前iptables策略
系统已经预置了部分策略,即input仅允许ICMP端口、22端口、80端口。
如果需要添加其他端口请添加相应IPTABLES实例。
3.5 修改SSH监听端口
当前为22端口,可修改为其他端口,如2233、2345等
centos修改配置文件 /etc/ssh/sshd_config
插入一行:port 2233
重启sshd服务:#server sshd restart
4 日志
4.1 用户登录日志
设备应配置日志功能,对用户登录进行记录,记录内容包括用户登录使用的账号,登录是否成功,登录时间,以及远程登录时,用户使用的IP地址。
▏参考配置操作:
# Vi /etc/login.defs,添加LASTLOG_ENAB yes
Linux的/var/log/wtmp和/var/log/wtmps,文件中记录着所有登录过主机的用户,时间,来源等内容,这两个文件不具可读性,可用last命令来看。
4.2 用户操作日志
设备应配置日志功能,记录用户对设备的操作,包括但不限于以下内容:账号创建、删除和权限修改,口令修改,读取和修改设备配置,读取和修改业务用户的话费数据、身份数据、涉及通信隐私数据。需记录要包含用户账号,操作时间,操作内容以及操作结果。
▏参考配置操作:
通过设置日志文件可以对每个用户的每一条命令进行纪录,这一功能默认是不开放的,为了打开它,需要执行
1)SUSE: # /usr/sbin/accton /var/account/pacct
2)CentOS/REDHAT: # /usr/sbin/accton /var/account/pacct
执行读取命令:# lastcomm [user name]
4.3 系统安全日志
设备应配置日志功能,记录对与设备相关的安全事件。
▏参考配置操作:
修改配置文件vi/etc/syslog.conf,
配置类似语句:*.err;kern.debug;daemon.notice;/var/log/messages
定义为需要保存的设备相关安全事件。