linux 优化参考
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
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加载到数据库的主机组里,映射,后台同步。[page]
分别在节点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环境变量基线设置要求如表所示:
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目录为系统配置目录,包括账号文件、系统配置、网络配置文件等,这些目录和文件相对重要。重要文件及目录的权限配置标准必须按照表4-1进行配置。
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报文
配置方法为:
在系统不作为不同网络之间的防火墙或网关时,要求进行如下设置。
设置ip_forward为0,禁止ip转发功能
设置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重启服务器
在服务器第一次配置,对以上初始配置操作完成后,请操作人员务必重启一次服务器!!!
系统重启完成后确认用户可正常登陆,网络可正常访问。