免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1125 | 回复: 0
打印 上一主题 下一主题

Solaris系统安全加固列表 - 网络安全 - ChinaUnix.net [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-08-21 11:27 |只看该作者 |倒序浏览
            Solaris系统安全加固列表
            --王宇
            一、安全理念
            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
              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)[没有被注释/* */的服务可关闭]
            #ident        "@(#)services        1.27        00/11/06 SMI"        
            /* SVr4.0 1.8        */
            #
            #
            # Copyright (c) 1999-2000 by Sun Microsystems, Inc.
            # All rights reserved.
            #
            # Network services, Internet style
            #
            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 网站有专门的补丁检查工具)
            及时修补最新漏洞、打上补丁

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/46521/showart_364510.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP