Linux主机安全加固

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 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.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.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.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

定义为需要保存的设备相关安全事件。









本文转自Grodd51CTO博客,原文链接: http://blog.51cto.com/juispan/1955718 ,如需转载请自行联系原作者
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
4月前
|
存储 Ubuntu Linux
在Linux中,如何查看当前主机的主机名,如何修改主机名?要想重启后依旧生效,需要修改哪个配置文件?
在Linux中,如何查看当前主机的主机名,如何修改主机名?要想重启后依旧生效,需要修改哪个配置文件?
|
2月前
|
Linux 网络安全
Linux虚拟机与主机和Xshell的连接问题解决
Linux虚拟机与主机和Xshell的连接问题解决
101 1
|
5月前
|
安全 Linux 网络安全
Linux 系统安全加固经验总结
Linux 系统安全加固经验总结
71 2
Linux 系统安全加固经验总结
|
4月前
|
存储 监控 网络协议
在Linux中,如何使用 tcpdump 监听主机为 192.168.1.1,tcp 端⼝为 80 的数据,并将将输出结果保存输出到tcpdump.log?
在Linux中,如何使用 tcpdump 监听主机为 192.168.1.1,tcp 端⼝为 80 的数据,并将将输出结果保存输出到tcpdump.log?
|
4月前
|
监控 安全 Linux
在Linux中,如何进行系统安全加固?
在Linux中,如何进行系统安全加固?
|
4月前
|
网络协议 Linux 网络安全
在Linux中,如何将本地 80 端口的请求转发到 8080 端口?当前主机 IP 为10.0.0.104。
在Linux中,如何将本地 80 端口的请求转发到 8080 端口?当前主机 IP 为10.0.0.104。
|
4月前
|
存储 监控 Ubuntu
在Linux中,如何规划⼀台 Linux 主机,步骤是怎样?
在Linux中,如何规划⼀台 Linux 主机,步骤是怎样?
|
4月前
|
Shell Linux 网络安全
在Linux中,如何利用Shell把10台主机的当前时间写到一个文件里边?
在Linux中,如何利用Shell把10台主机的当前时间写到一个文件里边?
|
4月前
|
Linux 开发工具 文件存储
Linux修改主机名的两种方法
Linux修改主机名的两种方法
69 0
|
4月前
|
网络协议 Ubuntu Linux
在Linux中,如何将本地80端口的请求转发到8080端口,当前主机IP为192.168.16.1,其中本地网卡eth0。
在Linux中,如何将本地80端口的请求转发到8080端口,当前主机IP为192.168.16.1,其中本地网卡eth0。