目录
1概述
2上架规范
2.1配置iLo管理口
2.2硬盘RAID配置
2.3服务器安装导轨
2.4服务器插线要求
3系统安装
3.1系统版本要求
3.2分区要求
3.3安装包要求
3.4用户要求
3.5时间同步要求
3.6字符集
3.7网卡绑定
3.8配置snmp
3.9连存储的服务器
3.10多路径软件
3.11udev配置(块设备管理、ASM组)
3.12CVE漏洞软件包版本
4补丁
4.1系统补丁(仅供参考)
4.2其他应用补丁(仅供参考)
5主机名、账号和口令安全配置基线
5.1主机命名规范
5.2账号安全控制要求
5.3口令策略配置要求
5.4口令复杂度和密码锁定策略配置要求
5.5口令重复次数限制配置要求
5.6设置登录Banner
5.7设置openssh登陆Banner
5.8Pam的设置
5.9root登录策略的配置要求
5.10root的环境变量基线
6网络与服务安全配置标准
6.1最小化启动服务
6.2最小化xinetd网络服务
7文件与目录安全配置
7.1临时目录权限配置标准
7.2重要文件和目录权限配置标准
7.3umask配置标准
7.4core dump状态
7.5ssh的安全设置
7.6bash历史记录
7.7其他注意事项
8系统Banner的配置
9防病毒软件安装
10ITSM监控agent安装
11内核参数优化
12syslog日志的配置
13重启服务器
附件:安全工具
1 概述
本规范适用于某运营商使用Linux操作系统的设备。本规范明确了Linux操作系统在安全配置方面的基本要求,适用于所有的安全等级,可作为编制设备入网测试、安全验收、安全检查规范等文档的参考。
由于版本不同,配置操作有所不同,本规范以Redhat 6.6为例,给出参考配置操作。
2 上架规范
2.1 配置iLo管理口
配置项编号 | OS_LIUNX_01 |
配置项说明 | 服务器有远程管理端口的,请配置管理ip,进行远程管理 |
配置项命令 | 根据服务器用户手册,自行配置iLo管理口 |
配置项要求 | 必须 |
检查/审计 | 通过ping命令和https协议访问ip,测试ip是否可用 |
2.2硬盘RAID配置
配置项编号 | OS_LIUNX_02 |
配置项说明 | 服务器内置硬盘请配置raid,系统raid类型使用raid1,其他硬盘采用raid5 |
配置项命令 | 根据服务器用户手册,按要求自行配置 |
配置项要求 | 必须 |
检查/审计 | #cat /proc/scsi/scsi //通用检查办法,检查model字段 |
备注 | 运行时修改:/proc/sys/fs/suid_dumpbale |
2.3服务器安装导轨
配置项编号 | OS_LIUNX_03 |
配置项说明 | 机架服务器使用导轨上架,方便后期维护管理 |
配置项命令 | 根据服务器用户手册,按要求自行配置 |
配置项要求 | 必须 |
检查/审计 | 检查服务器导轨插拔正常 |
2.4服务器插线要求
1、集成网卡服务器
业务网络要求使用eth0、eth1两网口做双网卡绑定。(个别应用默认顺序取第一个接口mac地址,要求使用前两个端口做业务网络接口)
2、非集成网卡服务器
要求充分考虑网卡与网卡、网口与网口冗余、充分考虑网卡间散热问题。
光口卡同理操作。
3 系统安装
3.1系统版本要求
新上系统全部使用rhel6.6 64位操作系统。
rhel-server-6.6-x86_64-dvd.iso3.52 GB
SHA-256: 16044cb7264f4bc0150f5b6f3f66936ccf2d36e0a4152c00d9236fb7dcae5f32
[root@rhel6-6 /]$ uname -a
Linux rhel6-6 2.6.32-504.el6.x86_64 #1 SMP Tue Sep 16 01:56:35 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux
目前机房生产平台用的较多的是rhel5.7和rhel6.1。
有特殊要求的则仍使用rhel6.1。
3.2分区要求
使用LVM分区、文件系统格式采用ext4。
分区 | 大小 |
/boot | 500M |
swap | 8-16G(物理内存2倍,最大64G。根据实际情况选择) |
/ | 50G |
/data | 剩余空间分配data目录 |
/tools | 30G |
/admin | 30G |
3.3安装包要求
安装系统当中要将GCC等所有的开发包和管理包打全,以防后期存在缺包现象。以下包全部安装
Administration Tools
Development Tools
System Tools
telnet ftp lrzsz (这三个包要求安装)
“系统管理”菜单:所有包全选安装
servers: "server platform" "system administration tools"
“开发”菜单:所有包全选安装
Development : "Additional Development" "Desktop platform Development" "Development tools" "server platform Development"
“语言支持”菜单:要求安装英文语言包、简体中文语言包!
3.4用户要求
根据主机运维工作的实际需求,要求系统初始用户包括以下用户。密码根据项目整体要求配置
root
root用户密码根据要求进行配置
pcloud
新创建用户且附加组为wheel
参考命令:
#useradd -G wheel pcloud
bestpay
新创建用户
#useradd bestpay
logview
新创建用户且附加组为bestpay
参考命令:
#useradd –G bestpay logview
分区赋权
在root用户根目录下按3.3小节分区要求,给分区重新赋权
/data:
-
chown –R bestpay:bestpay/data
-
chmod 0750/data
/tools:
-
chown –R bestpay:bestpay /tools
-
chmod 0700/tools
/admin:
-
chown –R bestpay:bestpay /admin
-
chmod 0750/admin
3.5时间同步要求
在root用户下执行crontab –e
*/5* * * * /usr/sbin/ntpdate 172.18.70.10 172.18.70.20
15 7 * * * /sbin/hwclock –w
3.6字符集
使用系统缺省字符集配置。系统缺省字符集为en_US.UTF-8;有特殊需求,另行配置。修改字符集可以在文件/etc/sysconfig/i18n里改。
3.7网卡绑定
将服务器网卡两两做绑定,网卡绑定为主备模式。服务器网卡要求使用第一块网卡1口和第二块网卡1口;第一块网卡2口和第二块网卡2口;即避免由于单块网卡故障导致的业务中断,可以冗余。
以下为配置示例:
配置虚拟网卡:
[root@rhel6 network-scripts]# cp ifcfg-eth0 ifcfg-bond0
[root@rhel6 network-scripts]# vi ifcfg-bond0
DEVICE=bond0
BOOTPROTO=none
IPADDR=192.168.1.100
NETMASK=255.255.255.0
ONBOOT=yes
TAPE=Ethernet
GATEWAY=192.168.1.254
USERCTL=no
配置真实网卡:
[root@rhel6 network-scripts]# vi ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
SLAVE=yes ----写上就不用加开机启动
MASTER=bond0 ----写上就不用加开机启动
[root@rhel6 network-scripts]# vi ifcfg-eth1
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
SLAVE=yes ----写上就不用加开机启动
MASTER=bond0----写上就不用加开机启动
加载模块让系统支持:
[root@rhel6 ~]vi/etc/modprobe.d/dist.conf
alias bond0 bonding
options bond0 miimon=100 mode=1-----模式1为主备
重启网络并检查配置:
service network restart
lsmod | grep bond
cat/proc/net/bonding/bond0
3.8配置snmp
参照其他平台,共同提名不能使用public,长度必须8位以上,至少三种(大小写字母,符号,特殊符号)结合,配置snmp服务器并指向采集服务器,采集服务器ip为172.18.55.65、172.18.55.66、172.18.55.67
ITSM二期要求新增采集地址:172.18.0.0/24;团体字为Itsm2014roJK!
以下为配置示例:
检查系统是否安装snmp服务
[root@rhel6 ~]# rpm -qa| grep snmp
net-snmp-devel-5.5-31.el6.x86_64
net-snmp-utils-5.5-31.el6.x86_64
net-snmp-5.5-31.el6.x86_64
net-snmp-libs-5.5-31.el6.x86_64
net-snmp-python-5.5-31.el6.x86_64
net-snmp-perl-5.5-31.el6.x86_64SNMP
若无以上包,则安装SNMP服务
1.配置好本地yum服务,使用yum安装
yum install -y net-snmp*
2.配置SNMP服务开机启动
#service snmpd start
#chkconfig snmpd on
#chkconfig --list | grep snmpd 查看开机启动设置是否成功
snmpd 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
验证SNMP服务
1.使用snmpwalk获取主机名
[root@rhel6 ~]# snmpwalk -v 2c -c public localhost sysName.0
SNMPv2-MIB::sysName.0 = STRING: rhel6.1
#snmpwalk用法
snmpwalk -v 1|2c|3(代表SNMP版本) -c <community string> IP地址 OID(对象标示符)
2.使用snmptranslate命令,检查snmp工具是否可以使用
# snmptranslate -To | head
.1.3
.1.3.6
.1.3.6.1
.1.3.6.1.1
.1.3.6.1.2
.1.3.6.1.2.1
.1.3.6.1.2.1.1
.1.3.6.1.2.1.1.1
.1.3.6.1.2.1.1.2
.1.3.6.1.2.1.1.3
查出了部分oid,则表示snmp工具可以正常使用
配置SNMP服务
配置项包括但不限于:
community string
sec.name
sec.model
查看设备节点权限“view all”;被允许查看的sec.model组
指定检测的Process checks
disk checks
Executables/scripts
load average checks
3.9连存储的服务器
必须使用双hba卡;
确保连接到两个控制器的HBA卡/接口冗余;
单个HBA卡故障,或单个HBA卡某个接口故障,都满足冗余
3.10多路径软件
1、多路径配置要求
多路径必须绑定别名;
设置多路径服务为开机启动;
屏蔽掉本地磁盘,本地磁盘不做聚合;
结合数据库规范等配置实施
版本系统自带multipath即可,要求做盘符别名绑定。比如要确保数据库的两个节点扫描到的盘符一致。
注意在blacklist里面过滤本地磁盘!blacklist里面需要有以下参数:
blacklist {
devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
devnode "^hd[a-z]"
devnode "^sd[a-d]" 过滤条件视实际情况,防止过滤掉多路径块设备!
}
2、多路径安装及配置参数简介
检查multipath是否安装成功:
#lsmod |grep dm_multipath
如果输出没有,则进行安装
#yum –y install device-mapper device-mapper-multipath
查看多路径状态查看模块是否加载成功
[root@rhel6 ~]# multipath -ll
Jan 01 02:36:12 | /etc/multipath.conf does not exist, blacklisting all devices. --配置文件没有
Jan 01 02:36:12 | A sample multipath.conf file is located at
Jan 01 02:36:12 | /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf
Jan 01 02:36:12 | You can run /sbin/mpathconf to create or modify /etc/multipath.conf
Jan 01 02:36:12 | DM multipath kernel driver not loaded --DM模块没加载
如果模块没有加载成功请使用下列命初始化DM,或重启系统
[root@rhel6 ~]# modprobe dm-multipath
[root@rhel6 ~]# modprobe dm-round-robin
[root@rhel6 ~]# service multipathd start
正在启动守护进程multipathd:
查看系统是否安装多路径
[root@rhel6 mapper]# rpm -qa | grep mapper
device-mapper-libs-1.02.62-3.el6.x86_64
device-mapper-multipath-libs-0.4.9-41.el6.x86_64
device-mapper-multipath-0.4.9-41.el6.x86_64
device-mapper-event-libs-1.02.62-3.el6.x86_64
device-mapper-1.02.62-3.el6.x86_64
device-mapper-event-1.02.62-3.el6.x86_64
multipath.conf配置说明
接下来的工作就是要编辑/etc/multipath.conf的配置文件
multipath.conf主要包括defaults、 blacklist、multipaths、devices三部份的配置
defaults是全局配置参数
blacklist用来过滤不需绑定的设备
multipaths用来绑定别名
devices用来定义存储厂商和自定义规则
blacklist配置
blacklist {
devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
devnode "^hd[a-z]"
devnode "^sd[a-d]"
}
Multipaths部分配置multipaths和devices两部份的配置。
multipaths {
multipath {
wwid **************** #此值multipath -ll可以获取
alias data1 #映射后的别名,可以随便取
}
}
Devices部分配置
devices {
device {
vendor "iSCSI-Enterprise" #厂商名称
product "Virtual disk" #产品型号
path_grouping_policy multibus #默认的路径组策略
getuid_callout "/sbin/scsi_id -g -u -s /block/%n" #获得唯一设备号
path_checker readsector0 #决定路径状态的方法
path_selector "round-robin 0" #选择那条路径进行下一个IO操作的方法
failback immediate #故障恢复的模式有immediate和failover两种
no_path_retry queue #在disable queue之前系统尝试使用失效路径的次数的数值
rr_min_io 100 #在当前的用户组中,在切换到另外一条路径之前的IO请求的数目
}
}
3、多路径配置范例
1)IBM存储DS8000系列官方推荐配置
defaults {
user_friendly_names yes
}
blacklist {
devnode "^hd[a-z]"
devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
devnode "^cciss.*"
}
devices {
device {
vendor "IBM"
product "2107900"
path_grouping_policy multibus
getuid_callout "/lib/udev/scsi_id --whitelisted --device=/dev/%n"
path_selector "round-robin 0"
path_checker tur
features "1 queue_if_no_path"
hardware_handler "0"
prio const
rr_weight uniform
rr_min_io 1000
}
}
multipaths {
multipath {
wwid 3600a098038303553495d47*******
aliasdata1
}
}
2)IBM存储DS4800系列官方推荐配置
defaults {
user_friendly_names yes
}
blacklist {
devnode "^hd[a-z]"
devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
devnode "^cciss.*"
}
devices {
device {
vendor "IBM"
product "1815"
path_grouping_policy group_by_prio
getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
path_selector "round-robin 0"
path_checker rdac
features "0"
hardware_handler "1 rdac"
prio_callout "/sbin/mpath_prio_rdac /dev/%n"
failback immediate
rr_weight uniform
no_path_retry queue
rr_min_io 1000
}
}
multipaths {
multipath {
wwid 3600a098038303553495d47*******
aliasdata1
}
}
3)NetApp存储官方推荐配置
defaults {
user_friendly_names yes
max_fds max
flush_on_last_del yes
queue_without_daemon no
}
blacklist {
devnode "^hd[a-z]"
devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
devnode "^cciss.*"
}
devices {
device {
vendor "NETAPP"
product "LUN"
path_grouping_policy group_by_prio
features "3 queue_if_no_path pg_init_retries 50"
prio "alua"
path_checker tur
failback immediate
path_selector "round-robin 0"
hardware_handler "1 alua"
rr_weight uniform
rr_min_io 128
getuid_callout "/lib/udev/scsi_id -g -u -d /dev/%n"
}
}
multipaths {
multipath {
wwid 3600a098038303553495d47*******
aliasdata1
}
}
3.11udev配置(块设备管理、ASM组)
以下只针对数据库服务器,或有多路径需求的服务器,否则可跳过本小节。
1、配置注意事项
multipath配置中将本地磁盘或SCSI设备加入黑名单blacklist
multipath第一次配置完成后重启操作系统;
应用上线后使用multipath –v2、multipath –ll、service multipath reload命令执行初始化扫描检查
udev第一次配置完成后,执行start_udev扫盘操作
应用上线后使用以下命令扫盘
# udevadm control --reload-rules
# udevadm trigger --type=devices --action=change
2、将LUN加载到主机
将刚刚创建的几个LUN加载到数据库的主机组里,映射,后台同步。
分别在节点1和节点2进行如下操作:
先查看机器有几块HBA卡
# ls /sys/class/fc_host/
host1 host2 host3
写入"---"到“scan”文件,有几张HBA卡就写几次。
# echo "- - -" > /sys/class/scsi_host/host1/scan
# echo "- - -" > /sys/class/scsi_host/host2/scan
# echo "- - -" > /sys/class/scsi_host/host3/scan
然后就可以通过如下命令查看新增的磁盘
#fdisk –l
3、使用UDEV绑定磁盘
以root用户登录数据库服务器节点1,修改以下文件:
vi/etc/udev/rules.d/99-oracle.rules
添加以下内容:
KERNEL=="dm-*", PROGRAM="scsi_id --page=0x83 --whitelisted --device=/dev/%k",RESULT=="3600a098038303553495d474c457a4c62", OWNER:="grid", GROUP:="asmadmin"
KERNEL=="dm-*", PROGRAM="scsi_id --page=0x83 --whitelisted --device=/dev/%k",RESULT=="3600a098038303553495d474c457a4c4c", OWNER:="grid", GROUP:="asmadmin"
……
有几块盘,添加几条,RESULT结果是WWWN号
以root用户登录数据库服务器节点2,修改以下文件:
vi/etc/udev/rules.d/99-oracle.rules
添加以下内容:
KERNEL=="dm-*", PROGRAM="scsi_id --page=0x83 --whitelisted --device=/dev/%k",RESULT=="3600a098038303553495d474c457a4c62", OWNER:="grid", GROUP:="asmadmin"
KERNEL=="dm-*", PROGRAM="scsi_id --page=0x83 --whitelisted --device=/dev/%k",RESULT=="3600a098038303553495d474c457a4c4c", OWNER:="grid", GROUP:="asmadmin"
……
有几块盘,添加几条,RESULT结果是WWWN号
4、查看磁盘所有者及权限
通过udev相关命令重新扫描硬件改动:(此处谨慎操作,注意数据库状态)
# udevadm control --reload-rules
# udevadm trigger --type=devices --action=change
在/dev/目录下查看存储磁盘asm-disk$i
#cd /dev/
#ll |grep asm-disk
注意磁盘权限跟进数据库安装要求进行配置,一般权限为grid:grid
后续查看ASM空间情况、进行ASM相关配置。
3.12CVE漏洞软件包版本
请务必安装以下对应无漏洞版本软件包。
Bash版本要求:
Red Hat Enterprise Linux 6bash-4.1.2-15.el6_5.2
Red Hat Enterprise Linux 5bash-3.2-33.el5_11.4
Red Hat Enterprise Linux 4bash-3.0-27.el4.4
Red Hat Enterprise Linux 7bash-4.2.45-5.el7_0.4
OpenSSH版本要求:
Red Hat Enterprise Linux 6openssh-6.9p1
Red Hat Enterprise Linux 5openssh-6.9p1
OpenSSL版本要求:
Red Hat Enterprise Linux 6 affectedopenssl-1.0.2d
Red Hat Enterprise Linux 5 not affectedopenssl-1.0.2d
Glibc漏洞修复版本要求:
Red Hat Enterprise Linux Server 5glibc-2.5-123.el5_11.1.x86_64
Red Hat Enterprise Linux Server 6glibc-2.12-1.149.el6_6.5.x86_64
4 补丁
4.1系统补丁(仅供参考)
如厂商对安装的Linux操作系统版本有安全公告的,需进行对应的补丁升级。
要求及时安装系统补丁。更新补丁前,要求先在测试系统上对补丁进行可用性和兼容性验证。
系统补丁安装方法为(以下示例若无特别说明,均以RedHat Linux为例):使用up2date命令自动升级或在ftp://update.redhat.com下载对应版本补丁手工单独安装。对于企业版5及之后的版本,可以直接使用yum工具进行系统补丁升级:
yum update
4.2其他应用补丁(仅供参考)
除Linux开发商官方提供的系统补丁之外,基于Linux系统开发的服务和应用(如APACHE、PHP、OPENSSL、MYSQL等)也必须安装最新的安全补丁。
以RedHat Linux为例,具体安装方法为:首先确认机器上安装了gcc及必要的库文件。然后再应用官方网站下载对应的源代码包,如 *.tar.gz,并解压:
tar zxfv *.tar.gz
根据使用情况对编译配置进行修改,或直接采用默认配置。
cd *
./configure
进行编译和安装:
make
make install
注意:补丁更新要慎重,可能出现硬件不兼容、或者影响当前应用系统的情况。安装补丁前,应该在测试机上进行测试。
5 主机名、账号和口令安全配置基线
5.1主机命名规范
为区分不同主机的不同功能,我们对主机名进行统一命名,命名方式按以下规则:
主机名=平台名-应用服务器名-IP后两位;例如,个帐nginx服务器10.168.168.82,主机名应该设置为:grzh-nginx-168-82
其中平台名按照平台的全程缩写,如:个人账户=grzh 应用服务器按照实际应用起名,如:apache=apache IP即ip的后两位
下面举例个人账户平台nginx应用服务器为例,假设其内网IP为10.168.168.82那么举例如下:
修改主机名,及对应的IP运行如下命令
echo“10.168.168.82 grzh-nginx-168-82”>> /etc/hosts
生效当前配置运行如下命令
hostname grzh-nginx-168-82
对/etc/sysconfig/network、/etc/hosts都要进行修改
注:主机命名中,只能包含字母、数字、连字符(‘-’),并且名称不能以连字符结尾。“连字符”英文名称“hyphen”,不是中划线,请务必区别。
5.2账号安全控制要求
系统中的临时测试账号、过期无用账号等必须被删除或锁定。以RedHat Linux为例,设置方法如下:
锁定用户:#usermod -L $name
删除用户: userdel $name
需要锁定的用户:games nobody
5.3口令策略配置要求
要求设置口令策略以提高系统的安全性。例如要将口令策略设置为:非root用户强制在90天内更改口令、之后的10天之内禁止更改口令、用户在口令过期的28天前接受到系统的提示、口令的最小长度为8位。以RedHat Linux为例,可在/etc/login.defs文件中进行如下设置:
#vi /etc/login.def
PASS_MAX_DAYS 90
PASS_MIN_DAYS 10
PASS_MIN_LEN 8
PASS_WARN_AGE 28
5.4口令复杂度和密码锁定策略配置要求
要求口令输错6次锁定300秒,设定口令输错三次断开连接,最少8位,最少1位小写字母,最少1位数字,最少一位特殊符号。以RedHat Linux为例,在/etc/pam.d/system-auth进行如下设置:(redhat5.1以上版本支持 pam_tally2.so,其他版本使用pam_tally.so)
# vi /etc/pam.d/system-auth
auth required pam_tally2.so deny=6 unlock_time=300
password requisite pam_cracklib.so try_first_pass retry=3 minlen=8
lcredit=-1 dcredit =-1 ocredit =-1
5.5口令重复次数限制配置要求
要求口令重复不能超过5次。以RedHat Linux为例,在/etc/pam.d/system-auth进行如下设置:
# vi /etc/pam.d/system-auth
password sufficient pam_unix.so sha512 shadow nullok
try_first_pass use_authtok remember=5
5.6设置登录Banner
设置系统登录Banner
# echo "Authorized users only . All activity may be monitored and reported" > /etc/motd
5.7设置openssh登陆Banner
通过配置文件配置openssh的Banner
步骤 1 执行如下命令创建ssh banner信息文件:
#touch /etc/sshbanner
#chown bin:bin /etc/sshbanner
#chmod 644 /etc/sshbanner
#echo "Authorized users only . All activity may be monitored and reported" > /etc/sshbanner
#echo "Banner /etc/sshbanner" > /etc/ssh/sshd_config
#service sshd
5.8Pam的设置
指定wheel组用户可以使用su命令
vi /etc/pam.d/su 可发看到如下内容
#auth required pam_wheel.so use_uid
或
#auth required /lib/security/$ISA/pam_wheel.so use_uid
去掉前面的注释符“#”号。
若没有时可以添加,但注意顺序。请在
# Uncomment the following line to require a user to be in the "wheel" group.
说明下的首行添加。
5.9root登录策略的配置要求
禁止直接使用root登陆,必须先以普通用户pcloud登录,然后再su成root。
查看/etc/securetty 中包含有console参数
(确保已正确配置了/etc/pam.d/su)
将用户pcloud加入wheel组:
Usermod -G wheel pcloud
#usermod -G wheel pcloud
id pcloud
uid=504(pcloud) gid=502(pcloud) groups=502(pcloud),10(wheel)
5.10root的环境变量基线
root环境变量基线设置要求如表所示:
/ect/profile | PATH设置不含本地目录(.) | 1、查看root帐号的环境变量.env 2、如果root的PATH变量包含本地目录,则去掉本地目录"." |
6 网络与服务安全配置标准
所有生产系统,不允许用管理员权限root等用户起应用程序。常见的apache等中间件等所有服务请新建立普通用户启动进程。
6.1最小化启动服务
1、关闭防火墙、selinux
执行:chkconfig --level 12345 iptables off
chkconfig --level 12345 ip6tables off
编辑/etc/selinux/config,修改为“SELINUX=disabled”禁用状态
2、Xinetd服务(可选)
如果xinetd服务中的服务,都不需要开放,则可以直接关闭xinetd服务。
# chckconfig --level 12345 xinetd off
3、关闭邮件服务
1)如果系统不需要作为邮件服务器,并不需要向外面发邮件,可以直接关闭邮件服务。
# chkconfig --level 12345 sendmail off
4、关闭图形登录服务(X Windows)
在不需要图形环境进行登录和操作的情况下,要求关闭X Windows。
# vi /etc/inittab
id:5:initdedault //修改为 id:3:initdedault
配置文件访问权限
chown root:root /etc/inittab
chmod 0600 /ect/inittab
5、关闭Xfont服务器服务
如果关闭了X Windows服务,则X font服务器服务也应该进行关闭。
chkconfig xfs off
6、关闭其他默认启动服务
系统默认会启动很多不必要的服务,有可能造成安全隐患。建议关闭以下不必要的服务:
apmd canna FreeWnn gpm hpoj innd irda isdn kdcrotate lvs mars-nwe oki4daemon privoxy rstatd rusersd rwalld rwhod spamassassin wine nfs nfslock autofs ypbind ypserv yppasswdd portmap smb netfs lpd apache httpd tux snmpd named postgresql mysqld webmin kudzu squid cupskrb5-telnetekrb5-telnet
chkconfig --level 12345 servername off
在关闭上述服务后,应同时对这些服务在系统中的使用的账号(如rpc、rpcuser、lp、apache、http、httpd、named、dns、mysql、postgres、squid等)予以锁定或删除。
6.2最小化xinetd网络服务
1、停止默认服务
要求禁止以下Xinetd默认服务:
chargen chargen-udp cups-lpd daytime daytime-udp echo echo-udp eklogin finger gssftp imap imaps ipop2 ipop3 krb5-telnet klogin kshell ktalk ntalk pop3s rexec rlogin rsh rsync servers services
2、其他
对于xinet必须开放的服务,应该注意服务软件的升级和安全配置,并推荐使用SSH和SSL对原明文的服务进行替换。
7 文件与目录安全配置
7.1临时目录权限配置标准
临时目录/tmp、/var/tmp必须包含粘置位,以避免普通用户随意删除由其他用户创建的文件。
# chmod +t /tmp
# chmod +t /var/tmp
7.2重要文件和目录权限配置标准
在Linux系统中,/usr/bin、/bin、/sbin目录为可执行文件目录,/etc目录为系统配置目录,包括账号文件、系统配置、网络配置文件等,这些目录和文件相对重要。重要文件及目录的权限配置标准必须进行配置。
文件或目录 | 属主 | 属组 | 权限 |
/etc/passwd | root | root | -rw-r-r |
/etc/group | root | root | -rw-r-r |
/etc/hosts | root | root | -rw-r-r |
/etc/inittab | root | root | -rw-r-r |
7.3umask配置标准
umask命令用于设置新创建文件的权限掩码。要求编辑/etc/profile文件,设置umask为027。
7.4core dump状态
执行:more /etc/security/limits.conf 检查是否包含下列项:
* soft core 0
* hard core 0
建议:关闭系统的core dump
core dump中可能包括系统信息,易被入侵者利用
7.5ssh的安全设置
vi /etc/ssh/sshd_config 设定下列选项
PermitRootLogin no 禁止root用户直接登录
UseDNS no禁用解析
/etc/init.d/sshd restart 设置完重启sshd服务
7.6bash历史记录
为了安全的记录登陆用户所使用的命令内容和时间,请在/etc/profile下添加如下脚本:
TMOUT=300
HISTSIZE=2000 此行在原有配置上修改数字便可
HISTTIMEFORMAT="%F-%T: "
为使全局变量生效,运行如下命令 source /etc/profile
7.7其他注意事项
如果服务器安装有ftp,请限制ftp用户的根目录,不允许匿名用户登录ftp服务器,不允许root登录ftp服务器,将ftp用户的bash改成false或nologin,将ftp的登录banner改成非系统默认。
关闭本地的iptables和selinux
8 系统Banner的配置
要求修改系统banner,以避免泄漏操作系统名称、版本号、主机名称等,并且给出登陆告警信息。
1.修改/etc/issue文件,加入:
ATTENTION:You have logged onto a secured server. ONLY Authorized users can access.
2.修改/etc/issue.net文件,加入:
ATTENTION:You have logged onto a secured server. ONLY Authorized users can access.
9防病毒软件安装
为了服务器的安装,安装完统一安装防病毒软件具体安装方法见《上海某运营商 SAV for Linux 客户端安装配置维护手册》
防病毒软件介质通过ftp下载:
地址: 端口:
用户名: 密钥:
10ITSM监控agent安装
为了实现对主机运行状态的监控,需要安装ITSM监控代理。通过FTP服务器上传安装文件“nimldr.tar.Z”至服务器/tmp目录下。具体操作步骤如下:
chmod +x nimldr.tar #增加可执行权限
./nimldr #执行安装
在安装的过程中须要注意以下几点:
安装需要使用root权限。
安装过程中需要输入的HUB的 IP是:172.18.138.41
安装中需要输入的服务器账号和密码是:administrator/ ibCAadmin980
回退操作:
卸载时运行命令:
Turn off all NMS processes: /opt/Nimsoft/bin/niminit stop
Remove the robot: /opt/Nimsoft/bin/inst_init.sh remove
删除安装目录/opt/nimsoft 目录下的所有文件
注:
软件安装目录是:/opt/Nimsoft
成功安装后,显示:Cleaning up temporary files
Finished Robot installation!
11内核参数优化
1、调整以下内核参数,以提高系统安全性:
设置tcp_max_syn_backlog,以限定SYN队列的长度
设置rp_filter为1,打开反向路径过滤功能,防止ip地址欺骗
设置accept_source_route为0,禁止包含源路由的ip包
设置accept_redirects为0,禁止接收路由重定向报文,防止路由表被恶意更改
设置secure_redirects为1,只接受来自网关的“重定向”icmp报文
配置方法为:
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.default.secure_redirects = 0
chown root:root /etc/sysctl.conf
chmod 600 /etc/sysctl.conf
在系统不作为不同网络之间的防火墙或网关时,要求进行如下设置。
设置ip_forward为0,禁止ip转发功能
设置send_redirects为0,禁止接收转发重定向报文
配置方法如下:
# vi /etc/sysctl.conf
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
以上描述的实际操作,只需在/etc/sysctl.conf文件加入如下内容便可:
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.default.secure_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_keepalive_time = 1800
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_keepalive_intvl = 30
2、调整文件最大打开数、进程数
vi /etc/security/limits.conf(在最后添加如下参数)
* soft nproc 102400
* hard nproc 102400
* soft nofile 102400
* hard nofile 102400
vi /etc/security/limits.d/90-nproc.conf(文件做以下修改)
* soft nproc 102400
* hard nproc 102400
* soft nofile 102400
* hard nofile 102400
root soft nproc unlimited
为了使用户下次登录时生效,我们必须在用户登录时调用pam_limits.so模块。
#vi /proc/sys/fs/file-max
数字大于limits.conf里面设置的值
vi /etc/pam.d/login
在最后加入
session required pam_limits.so #这样用户下次登录就生效了,需重启应用
12syslog日志的配置
1.syslog的基线配置
2.要求将日志输出至日志服务器,或者至少输出至本地文件中。
13重启服务器
在服务器第一次配置,对以上初始配置操作完成后,请操作人员务必重启一次服务器!!!
系统重启完成后确认用户可正常登陆,网络可正常访问。
附件:安全工具
lsof :报告进程打开的文件、进程侦听的端口
logwatch: 日志分析工具
chkrootkit:检测工具,检测rootkit。