linux安全主机加固

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
定义为需要保存的设备相关安全事件。

发表评论