一、安全理念
1、安全的隐患更多来自于企业内部
2、对于管理员的要求:不要信任任何人
3、分层保护策略:假设某些安全保护层完全失效
4、服务最小化
5、为最坏的情况做打算
二、物理安全
1、记录进出机房的人员名单,考虑安装摄像机
2、审查PROM是否被更换,可以通过记录hostid进行比较
3、每个系统的OpenBoot口令应该不一样,口令方案不可预测
4、系统安装完毕移除CD-ROM
5、将版本介质放入不在本场地的介质储藏室中
三、账号与口令策略
1、超级用户的PATH(在/.profile中定义的)设置为:
PATH = /usr/bin:/sbin:/usr/sbin
任何用户的PATH或者LD_LIBRARY_PATH中都不应该包含"."
2、口令文件、影像文件、组文件
/etc/passwd 必须所有用户都可读,root用户可写 -rw-r-r-
/etc/shadow 只有root可读 -r--------
/etc/group 必须所有用户都可读,root用户可写 -rw-r-r--
3、口令安全
Solaris强制口令最少6位,但是超级用户修改口令的时候不受这个限制
强迫test账号每隔30天修改一次口令
#passwd -n 30 test
强迫test账号在下次登录的时候修改口令
#passwd -f test
禁止test账号修改口令
#passwd -n 2 -x 1 test
封锁test账号,禁止登录
#passwd -l test
4、组口令
用newgrp 命令临时改变gid
由于sysadmin组可执行admintool,必须要保护好,增加组口令的过程:
删除不需要的成员(如果成员属于sysadmin,改变组时不需要口令)
#passwd (通常封锁的账号)
提取/etc/shadow中user的口令字符串插入到/etc/group中sysadmin的口令字段
封锁user账号
5、修改口令策略
/etc/default/passwd文件
MAXWEEKS=4 口令至少每隔4星期更改一次
MINWEEKS=1 口令至多每隔1星期更改一次
WARNWEEKS=3 修改口令后第三个星期会收到快要修改口令的信息
PASSLENGTH=6 用户口令长度不少于6个字符
6、限制使用su的组(只允许sysadmin组执行su命令)
#chgrp sysadmin /bin/su
#chmod o-rwx /bin/su
7、su的纪录
/etc/default/su文件
SULOG=/var/adm/sulog
SYSLOG=YES
CONSOLE=/dev/console
PATH=/usr/bin:
SUPATH=/usr/sbin:/usr/bin
8、禁止root远程登录
/etc/default/login中设置CONSOLE=/dev/null
在/etc/ftpusers里加上root。
在SSH 配置文件加:permitRootLogin = no
(
Solaris 9自带SSH,缺省就禁止root登陆,对
Solaris 9,/etc/ftpusers 不再使用,FTP配置文件都在 /etc/ftpd/ 下面。如果 ftpd 启动时存在 /etc/ftpusers,它会被移动到 /etc/ftpd/下)
四、系统加固
1、为OpenBoot设置密码
在
Solaris中设置密码 # eeprom security-password
在OpenBoot中设置密码 ok password
在
Solaris中设置安全级别(command) # eeprom security-mode=command
在OpenBoot中设置安全级别(command) ok setenv security-mode command
在OpenBoot中设置安全级别(full) ok setenv security-mode full
2、取消不必须账号
移去或者锁定那些不是必须的帐号,比如sys\uucp\nuucp\listen等等,简单的办法是在/etc/shadow的password域中放上NP字符。
(简单办法是 passwd -l username)
3、文件系统
/etc目录中应该没有文件是组或者其他用户可写的
find /etc/ -type f -perm -g+w -print (查找组可写文件)
find /etc/ -type f -perm -o+w -print (查找其他用户可写文件)
chmod -R go-w /etc (改变任何错误的组/其他用户的写权限)
/var/adm/utmp和/var/adm/utmpx文件的权限应该是644
4、X-Windows手工锁定(当管理员离开电脑的时候)
CDE中面板上的加锁图标
OpenWindows中-鼠标右键-Utilities-Lock Screen
5、/etc的存取权限
用chmod -R g-w /etc命令来移去组用户对/etc的写权限。
6、打开数据包转发
#ndd -set /dev/ip ip_forwarding 1 (在系统作为路由器的情况中执行)
关闭数据包转发
#ndd -set /dev/ip ip_forwarding 0 (建议把这条命令加入/etc/init.d/inetinit中)
忽略重定向数据包(否则有遭到DOS的隐患)
#ndd -set /dev/ip ip_ignore_redirects 1 (加入/etc/init.d/inetinit)
不发送重定向数据包
#ndd -set /dev/ip ip_send_redirects 0 (加入/etc/init.d/inetinit)
禁止转发定向广播(如果网桥连结则不禁止)
#ndd -set /dev/ip ip_forward_directed_broadcasts 0 (加入/etc/init.d/inetinit)
禁止转发在数据源设置了路由的数据包
#ndd -set /dev/ip ip_forward_src_routed 0 (加入/etc/init.d/inetinit)
7、利用/etc/notrouter关闭IP转发
创建/etc/notrouter文件,重启计算机(入侵者如果可以访问根目录,可以使用ndd命令重新开启IP转发)
/etc/inet/hosts中的配置
127.0.0.1 Localhost (所有系统都有这一项)
192.168.0.13 Loghost (syslog使用的)
192.168.0.109 wy_
solaris (主机IP和主机名)
/etc/defaultrouter包含了默认路由器的名称或者IP
如果使用了默认路由器,在/etc/inet/hosts文件中必须包含路由器的名称,因为如果设置了路由表,系统将不会运行任何目录服务(DNS、NIS或者NIS+)
8、cron(任务在/var/spool/cron/crontabs/ 一般行为在/etc/default/cron)
格式:minute hour day-of-month month day-of-week command
(每项间用空格,同一项两个数字间用逗号,每项为数字或者星号)
配置:
查看命令
crontab -l
(1)进入只有本用户可读的目录
(2)
crontab -l > mycronfile
(3)编辑mycronfile
(4)
crontab < mycronfile
不要使用
crontab -e命令,因为它会在/tmp下建立所有用户都可读的
crontab副本
访问cron系统
/etc/cron.d/cron.allow (允许)
/etc/cron.d/cron.deny (不允许)
存在cron.allow,其中没有某用户,则不允许此用户访问cron系统
存在cron.deny,其中没有某用户,则允许此用户访问cron系统
在/etc/default/cron里设置了"CRONLOG=yes" 来记录corn的动作
PATH中不应包含"/tmp""~""."字样
at(任务在/var/spool/cron/atjobs)
/etc/cron.d/at.allow和/etc/cron.d/at.deny和cron文件完全一样
9、增加静态路由
格式: route add net net-address subnet-mask router hops
例如: route add net 10.15.0.0 255.255.0.0 10.14.48.2 1
(要到达10.15.x.x的网络,需要将数据包送往路由器10.14.48.2,距离10.15.x.x有一个跃点。这个命令将增加到启动文件/etc/rc2.d/S72inetsvc)
增加动态路由(会带来安全隐患)
在/etc/rc2.d/S72inetsvc中增加和是的命令行
运行in.routed或者in.rdisc
诊断工具snoop可以sniff,只有root可以使用,可以把snoop从不需要的UNIX机器上删除
10、root的umask设置错误
修改/etc/profile文件,将umask设为077或者027
11、堆栈缓冲溢出攻击防护设置
在/etc/system里加上如下语句,禁止缓冲溢出:
echo "set noexec_user_stack=1" >> /etc/system
echo "set noexec_user_stack_log=1" >> /etc/system
(对
Solaris 9,可以对单个程序设定堆栈不可执行属性,前提是有该程序的源码,例如:# cc -M /usr/lib/ld/map.noexstk myprogram.c)
12、使IP forwarding和sourec routing(源路)由无效
在Inetinit中使IP forwarding和sourec routing(源路)由无效(假如有超过一个网络接口的话)。在/etc/init.d/inetinit中增加下面所示设置:
ndd -set /dev/ip ip_forward_directed_broadcasts 0
ndd -set /dev/ip ip_forward_src_routed 0
ndd -set /dev/ip ip_forwarding 0
13、防止TCP序列号预测攻击(ip欺骗)
建议在/etc/default/inetinit中增加如下的生成初始化序列号设置来防止TCP序列号预测攻击(ip欺骗):TCP_STRONG_ISS=2
14、(如果有ftp服务)不要使用匿名ftp
/etc/inet/inetd.conf中的ftpd为(记录)
ftp stream tcp nowait root /usr/sbin/in.ftpd in.ftpd -dl
决不能用root身份使用ftp(口令不加密)
/etc/ftpusers中的增加超级用户(这里的账号禁止用ftp连接系统)
FTP 服务暴露系统敏感信息
编辑/etc/default/ftpd文件,假如文件不存在就新建一个,在文件中的加进以下一项:BANNER=XXXX(XXXX可以任意改变为任何一个版本信息),将该系统版本信息屏蔽.
15、关闭NFS服务
16、用SSH替代Telnet服务
17、限制.rhosts、.netrc和/etc/hosts.equiv文件的使用
限制.rhosts、.netrc和/etc/hosts.equiv文件的使用。r系列命令使用这些文件来访问系统。要为这些文件加锁,先创建它们,然后修改其属性为零即可。这样除了root用户就没有其它用户能创建或修改它们了。
/usr/bin/touch /.rhosts /.netrc /etc/hosts.equiv
/usr/bin/chmod 0 /.rhosts /.netrc /etc/hosts.equiv
.rhosts文件可以作为一个典型的后门文件使用,在某用户的目录下存在.rhosts文件的话,任何用户都可以通过rlogin不需要口令以该用户的身份登录到系统。
运行下面的命令全局查找.rhosts文件
# find -name ".rhosts" -print
18、使多路广播(multicasting)无效
为了使多路广播(multicasting)无效请在/etc/init.d/inetsvc中注解掉"route add 224.0.0.0"周围的几行。
19、关闭系统的snmp服务
更改 /etc/rc2.d/K07snmpdx 和/etc/rc3.d/S76snmpdx文件名
20、X-Windows不安全,可以使用ssh对其加密
21、加强网络访问控制
编辑/etc/inet.d/inetsvc,在inetd后面加上-t选项
类似命令/usr/sbin/inetd -s -t
停止再运行inetd
运行的使用使用 #/usr/sbin/inetd -s -t
22、网络访问控制
原则:去掉不必要的网络访问,在所需要的网络访问周围简历访问控制
Solaris网络服务(/etc/inet/services)[没有被注释/* */的服务可关闭]
tcpmux 1/tcp /*必须*/
echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
systat 11/tcp users
daytime 13/tcp
daytime 13/udp
netstat 15/tcp
chargen 19/tcp ttytst source
chargen 19/udp ttytst source
ftp-data 20/tcp /*依服务可选*/
ftp 21/tcp /*依服务可选*/
ssh 22/tcp /*依服务可选*/
telnet 23/tcp /*依服务可选*/
smtp 25/tcp mail /*依服务可选*/
time 37/tcp timserver
time 37/udp timserver
name 42/udp nameserver
whois 43/tcp nicname # usually to sri-nic
domain 53/udp /*依服务可选*/
domain 53/tcp /*依服务可选*/
bootps 67/udp # BOOTP/DHCP server
bootpc 68/udp # BOOTP/DHCP client
hostnames 101/tcp hostname # usually to sri-nic
pop2 109/tcp pop-2 # Post Office Protocol - V2
pop3 110/tcp # Post Office Protocol - Version 3
sunrpc 111/udp rpcbind
sunrpc 111/tcp rpcbind
imap 143/tcp imap2 # Internet Mail Access Protocol v2
ldap 389/tcp # Lightweight Directory Access Protocol
ldap 389/udp # Lightweight Directory Access Protocol
submission 587/tcp # Mail Message Submission
submission 587/udp # see RFC 2476
ldaps 636/tcp # LDAP protocol over TLS/SSL (was sldap)
ldaps 636/udp # LDAP protocol over TLS/SSL (was sldap)
# Host specific functions
tftp 69/udp
rje 77/tcp
finger 79/tcp
link 87/tcp ttylink
supdup 95/tcp
iso-tsap 102/tcp
x400 103/tcp # ISO Mail
x400-snd 104/tcp
csnet-ns 105/tcp
pop-2 109/tcp # Post Office
uucp-path 117/tcp
nntp 119/tcp usenet # Network News Transfer
ntp 123/tcp # Network Time Protocol
ntp 123/udp # Network Time Protocol
netbios-ns 137/tcp # NETBIOS Name Service
netbios-ns 137/udp # NETBIOS Name Service
netbios-dgm 138/tcp # NETBIOS Datagram Service
netbios-dgm 138/udp # NETBIOS Datagram Service
netbios-ssn 139/tcp # NETBIOS Session Service
netbios-ssn 139/udp # NETBIOS Session Service
NeWS 144/tcp news # Window System
slp 427/tcp slp # Service Location Protocol, V2
slp 427/udp slp # Service Location Protocol, V2
mobile-ip 434/udp mobile-ip # Mobile-IP
cvc_hostd 442/tcp # Network Console
# UNIX specific services
# these are NOT officially assigned
exec 512/tcp
login 513/tcp
shell 514/tcp cmd # no passwords used
printer 515/tcp spooler # line printer spooler
courier 530/tcp rpc # experimental
uucp 540/tcp uucpd # uucp daemon
biff 512/udp comsat
who 513/udp whod
syslog 514/udp /*依服务可选*/
talk 517/udp
route
520/udp router routed
ripng 521/udp
klogin 543/tcp # Kerberos authenticated rlogin
kshell 544/tcp cmd # Kerberos authenticated remote shell
new-rwho 550/udp new-who # experimental
rmonitor 560/udp rmonitord # experimental
monitor 561/udp # experimental
pcserver 600/tcp # ECD Integrated PC board srvr
sun-dr 665/tcp # Remote Dynamic Reconfiguration
kerberos-adm 749/tcp # Kerberos V5 Administration
kerberos-adm 749/udp # Kerberos V5 Administration
kerberos 750/udp kdc # Kerberos key server
kerberos 750/tcp kdc # Kerberos key server
krb5_prop 754/tcp # Kerberos V5 KDC propogation
ufsd 1008/tcp ufsd # UFS-aware server
ufsd 1008/udp ufsd
cvc 1495/tcp # Network Console
ingreslock 1524/tcp
www-ldap-gw 1760/tcp # HTTP to LDAP gateway
www-ldap-gw 1760/udp # HTTP to LDAP gateway
listen 2766/tcp # System V listener port
nfsd 2049/udp nfs # NFS server daemon (clts)
nfsd 2049/tcp nfs # NFS server daemon (cots)
eklogin 2105/tcp # Kerberos encrypted rlogin
lockd 4045/udp # NFS lock daemon/manager
lockd 4045/tcp
dtspc 6112/tcp # CDE subprocess control /*依服务可选*/
fs 7100/tcp # Font server /*依服务可选*/
执行方法:
/etc/inet/services在相应服务前加"#"注释掉
/etc/inet/inetd.conf中注释掉services中相应的条目
查找并重启inetd进程
#ps -ef | grep inetd (获得进程号)
#kill -HUP <进程号>
停止在上述列表中没有定义的服务
方法:将文件改名(用mv命令,可以将S改为X)
停止相应进程
服务:
服务 文件 进程
sendmail /etc/rc2.d/S88sendmail Sendmail
DNS /etc/rc2.d/S72inetsvc中in.named一项注释掉 in.named
named.xfer
NFS /etc/rc3.d/S15nfs.server
注释掉/etc/dfs/dfstab中条目 Nfsd
Automounter /etc/rc2.d/S74autofs
删除/etc/auto_*
ntp /etc/rc2.d/S74xntpd Xntpd
syslog /etc/rc2.d/S74syslog Syslogd
打印 /etc/rc2.d/S80lp lpshut
23、使Sendmail更安全
使用最新版本的Berkeley sendmail (see section 3),从/etc/aliases里删除decode 将/etc/aliases的权限设为644,关掉expn和vrfy命令。将
O PrivacyOptions=authwarning
改成
O PrivacyOptions=goaway
检查 Sendmail 是否支持发信认证
参考devtools/Site/README文件在devtools/Site下建立如下site.config.m4 文件:
APPENDDEF(`conf_sendmail_ENVDEF', `-DSASL')
APPENDDEF(`conf_sendmail_LIBS', `-lsasl')
给Sendmail编译进SASL支持。
cd sendmail; 执行:sh Build 编译sendmail。
到cf/cf 目录下,拷贝 generic-linux.mc 为 sendmail.mc, 在sendmail.mc 中增加以下内容:
define(`confSMTP_LOGIN_MSG',`$m Server')dnl
改变sendmail欢迎信息
define(`confAUTH_MECHANISMS', `LOGIN')dnl
Unix帐号认证
define(`confPRIVACY_FLAGS',`novrfy,noexpn,noverb')dnl 禁用命令
define(`confMAX_DAEMON_CHILDREN', `128')dnl
define(`confCONNECTION_RATE_THROTTLE', `32')dnl
(抗拒绝服务攻击)
24、增加DNS服务安全
关闭 zone 转换选项
不使用文件. named ,转而使用 /var/bind
关闭 lame server log messages
在/var/bind里面加入
options {
directory "/var/named";
forwarders{
202.106.120.1;
};
version "InterSoft Super DNS Server 2.0.4";
allow-transfer {none;};
};
logging {
category "lame-servers" { "null"; };
};
25、鉴于更改s位程序有可能影响正常服务,建议不要改动,但是可定期查看s位程序列表,对比是否有增减。
# find / -perm -4000 -print
26、使CDE程序无效(除非你坚持要使用图形控制台) [此项可选]
使CDE程序无效(除非你坚持要使用图形控制台)
将 /etc/rc2.d/S99dtlogin 改名
五、使用sun的补丁检查工具检查系统安装的补丁情况
运行该工具检查系统补丁的如下情况:
- latest revisions
- recommended patches
- security patches
- year 2000 patches
- other patches relevant to the software environment
(Sun 网站有专门的补丁检查工具)
及时修补最新漏洞、打上补丁
分享到:
相关推荐
这些步骤不仅适用于单一存储协议,还涵盖了网络和存储的综合配置,使得文档在Solaris环境下配置存储资源时具有很高的实用价值。 ### 注意事项 - 在执行配置步骤前,用户应以root用户登录系统。 - 确保系统及存储...
Sun 硬件平台支持 Oracle Solaris 9 操作系统,提供了一个综合的解决方案 для企业级应用程序。 知识产权 该文档和相关产品受到知识产权保护,包括美国专利和其他国家的专利申请。使用和复制该文档和产品须获得 ...
下面是 DCS 操作系统学习总结的关键知识点: 1. i/a 系统基础知识 i/a 系统是一种开放式的 DCS 系统,由美国福克斯波罗公司于 1987 年推出。该系统基于开放概念,超越一般的 DCS 系统。 2. i/a series 系统概述 ...
- **数据库管理技术**:这部分主要涵盖了Oracle数据库的基础管理知识,包括数据库的启动与关闭、用户管理、数据表与视图管理等方面。通过学习这些基础知识,可以帮助学生更好地理解和掌握Oracle数据库的核心概念和...
- **MEMORY_TARGET**:综合管理SGA和PGA的内存分配,提高了内存使用的灵活性和效率。 - **MEMORY_MAX_TARGET**:设置内存的最大限制值,防止内存占用过高导致系统不稳定。 #### 自动内存管理 Oracle 11g进一步增强...
总结来说,一体化智能运维管理系统是一个集硬件和软件于一体的综合性解决方案,能够全面监控和管理IT环境,包括网络设备、操作系统、数据库、中间件、动环系统等,同时具备高度的兼容性和扩展性,以及自主知识产权...
由于提供的文件内容不完整,存在OCR扫描错误和遗漏,但是仍可以提取和总结其中的关键知识点。以下是根据文件内容所能整理出的操作系统相关知识点: ### 操作系统概念与设计原理 #### 第1章 计算机系统概述 1. **...
### 知识点总结:精通WebSphere MQ ...以上是关于 WebSphere MQ 的综合概述,涵盖了其核心概念、安装配置、管理维护以及应用设计等方面的关键知识点。这些内容对于深入理解和掌握 WebSphere MQ 至关重要。
根据给定的文件内容,以下是针对MySQL数据库管理员考试(1Z0-883)的相关知识点的详细总结。 首先,从标题“MySQL 5.6 Database Administrator”可以推断,这份文件是针对MySQL 5.6版本的数据库管理员考试资料。...
此外,还涉及了Linux和UNIX操作系统的学习资料,包括CBT视频教程、系统管理员参考资料、系统编程资料、以及FreeBSD、OpenBSD、NetBSD、Solaris/OpenSolaris等操作系统的学习资源。这些资源的提供,对于希望深入学习...
这包括启动管理IP会话、定制FIFO Generator和Clocking Wizard,以及使用第三方仿真器和综合工具。此外,还涉及了添加额外IP、创建网络列表项目等。 #### 2.4 项目模式脚本 Lab3介绍了项目模式脚本的设计流程,它...
总结来说,Oracle Database 11g的安装和配置是一个综合性的过程,涉及到硬件和软件的兼容性检查、选择合适的安装版本以及一系列的配置步骤。理解并掌握这些知识,对于管理和维护Oracle数据库系统至关重要。
接下来,我们将详细解读并总结其中可能包含的关键知识点。 ### 关键知识点 #### 1. **Sun Microsystems 公司背景** - **Sun Microsystems**是一家美国信息技术公司,成立于1982年,并于2010年被Oracle公司收购。...