zoukankan      html  css  js  c++  java
  • 9.认识系统服务

    /etc/hosts.deny

    /etc/hosts.allow

    /usr/sbin/tcpd            ----分析进入系统的TCP网络封包


    一.daemon基本介绍

        1.daemon与sevice的区别【1-0】   

        2.daemon的分类

            按线程处理方式划分:

            a.stand alone:自行单独启动

            b.super daemon:油一只特殊的daemon管理【1-1】 

                .multi-threaded(多重线程)   

                .single-threaded(单线程)

            按工作形态(响应方式)分:

            a.signal-control

            b.interval-control   

        3.daemon的命名规则   

        4.服务与端口的对应

            # cat /etc/services    ----查看daemon对应的端口<daemon port> <port/封包协议> <该服务的说明>

            注意:尽量避免修改这个文件   

        5.daemon的启动脚本【1-2】与启动方式

            Stand alone启动方式

            a./etc/init.d/* status|stop|restart|restart|condreatart启动方式

            # /etc/init.d/syslog        ----不加参数会给出关于参数的提示

            # /etc/init.d/syslog status   ----查看syslog的启动状态

            # /etc/init.d/syslog reatart  ----重新读取配置文件

            b./sbin/service【1-3】

            # service crond restart  <==> # /etc/init.d/crond restart ----重新启动crond这支daemon

            # service --status-all         ----列出目前系统所有服务的运行状态

            

            利用Super daemon(xinetd本身是stand alone的启动方式)启动的方式

            (适合那些开放较多权限或本身不具备防火墙等管理机制的服务)

            # grep -i 'disable' /etc/xinetd.d/*        ----查看super daemon管理的程序是否启动(disable=yes代表取消)

            # vi /etc/xinetd.d/rsync        ----.编辑文件使rsync启动(改为disable=no)

            # /etc/init.d/xinetd restart      ----..重启super service

            # grep  'rsync' /etc/services        ----...观察服务使用的端口的

            # vim /etc/xintd.conf          ----super daemon的默认配置文件【1-4】

            # vim /etc/xintd.d        ----super daemon的服务参数档(上面的配置文件为默认值,这里为实际设置的位置)【1-5,6,...,13】

            

        6.通过server的管理使daemon对不同client拥有不同权限

            案例一:一个简单的rsync(提供同步文件夹服务)案例【1-14】

            # cat /etc/xinetd.d/rsync      ----查看一下原来的设置

            service rsync{

                disable = no      ----预设是关闭的,这里已经被打开了

                socket_type = stream        ----使用tcp封包协议

                wait = no        ----可以同时进行大量联机

                user = root        ----用root这个身份启动服务(rysnc的默认端口为873,root身份才能启动这种小于1024的端口)

                server = /usr/bin/rsync        ----就是这支程序启动服务

                server_args = --daemon        ----必选项

                log_on_failure +=USERID        ----登陆错误时额外记录用户ID

            }

            # vim /etc/xinetd.d/rsync        ----重新设置进行权限的控制

            #针对内部王网域进行限制

            service rsync{

                disable = no        

                bind = 127.0.0.1        ----服务绑定在这个接口上

                only_from = 127.0.0.1/8        ----只开放这个网域的来源

                no_access = 127.0.0.{100,200}        ----限制这两个不可登入

                instances =  UNLIMITED        ----取代/etc/xined.conf的设定值

                socket_type = stream        ----底下设定保留            wait = no        ----可以同时进行大量联机

                user = root  

                server = /usr/bin/rsync       

                server_args = --daemon       

                log_on_failure +=USERID        

            }

            # 再针对外部的联机     进行限制

            service rsync

            {

                disable = no

                bink = 192.168.0.100

                only_from = 140.166.0.0/16        ----

                only_from = .edu.tw        ----+=代表累加

                access_times = 01:00-9:00 20:00-23:00         ----两个时间段用空格隔开

                instances = 10        ----只有十条联机

                socket_type = stream        ----底下设定保留            wait = no        ----可以同时进行大量联机

                user = root  

                server = /usr/bin/rsync       

                server_args = --daemon       

                log_on_failure +=USERID

            }

            # netstat -tnlp | grep 873        ----配置完后看一下873端口的状态

            # /etc/init.d/xinetd restart        ----重启xinetd

            # netstat -tnlp | grep 873        ----再观察

    二. 服务的防火墙管理 xinetd,TCP Wrappers

        1./etc/hosts.allow,/etc/hosts.deny的管理【1-15,16】

        注意:一个服务受xinetd管理或者支持TCP Wrappers就可以使用这两个配置文件

        范例一:测试一下sshd和httpd这两支程序是否支持TCP Wrapper套件

        # ldd $(which sshd httpd)    ----查看sshd和httpd支持的动态链接库,如果有libwrap.so说明支持TCP Wrapper(发现sshd有而httpd没有)

        范例二:只允许140.116.0.0/255.255.0.0与140.116.0.0/255.255.0.0这两个网域及203.71.38.123这个主机可以进入我们的rsync服务器,其它的IP全部挡掉

        # vim /etc/hosts.allow

        rsync:140.116.0.0/255.255.0.0

        rsync:140.116.0.0/255.255.0.0

        rsync:203.71.38.123

        rsync:LOCAL

        # vim /etc/host.deny

        rsync:ALL

        

        2.TCP Wrapper的特殊功能

        # rpm -q tcp_wrapper        ----查看是否安装了tcp_wrapper

        案例一:【1-17】

        # vim /etc/hosts.deny【1-18,19】

        raync:ALL:spawn (echo "security notice from host $(/bin/hotname)";         ----spawn指令,在自己的屏幕上显示"security notice from 自己的主机名"

              echo;/usr/sbin/safe_finger @%h) |         ----对方发起请求时追踪对方的主机名称并交给管道

              /bin/mail -s "%d-%h security" root&        ----将管道的信息(请求连接的主机名信息)mail给root

              :twist(/bin/echo -e " WARNING connection not allowed. ")        ----向对方屏幕发送警告信息,然后终止联机

    三.系统开机启动服务设定

        1.观察系统启动的服务

        # netstat -tulp   ----找出目前系统启动的网络服务有哪些

        # netstat -lnp        ----找出所有有监听网络的服务(包括socket状态)

        # netstat --status-all        ----观察所有的服务状态

        2.设定开机启动的方法

        系统开机流程【1-20】

          chkconfig    管理系统服务默认开机启动与否【1-21】

        # chkconfig --list | more        ----列出目前系统上所有被chkconfig管理的服务

        # chkconfig --list | grep '3:on'        ----显示出目前runlevel 3开启的服务

        # chkconfig --level 345 atd on        ----让atd这个服务在3,4,5runlevel开启

        案例一:先观察httpd这个服务是否启动,然后设定预设开机启动(并不会立即启动哦)

        # /etc/init.d/httpd status        ----观察httpd这个服务的运行状态 

        # chkconfig --list | grep httpd        ----观察是否预设开机启动

        # chkcnffig httpd on;chkconfig --list | grep httpd    ----设定开机启动

        # /etc/init.d/httpd status            ----再观察一次还是没有启动

        案例二:查看rsync是否启动,是则将其关闭

        # /etc/init.d/rsync status        ----发现不行,因为rsync不是stand alone的启动方式

        # netstat -tlnp | grep rsync        ----因为rsync是一个网络服务,因此可以这样看

        # chkconfig --list | grep rsync        ----查看是否是开机预设启动的

        # chkconfig rsync off;chkconfig --list | grep rsync        ----设置开机关闭

        # /etc/init.d/xinetd restart;netstat -tlup| grep rsync        ----重启xinetd对super daemon管理的服务相当于重启计算机呢

          chkconfig    设定自定义系统服务【1-24】

        案例一:【1-25】

        # vim /etc/init.d/mySystemService

        #!/bin/bash

        #chkconfig: 35 80 70    -----【1-26】

        #description:用来练习的一个简单自定义系统服务脚本

        echo "nothing"

        # chkconfig --list mySystemService     ----这个时候还没有加入ckconfig管理

        # chkconfig --add mySystemService;chkconfig --list mySystemService            ----此时已经加入chkconfig管理

        # chkconfig --del mySystemService        ----删除对这个服务自定义服务的管理

        # rm /etc/init.d/mySystemService        ----删除那个脚本

          ntsysv    类图型接口管理模式(redhat系列发行版特有)【1-22,23】

    四.centos5.x预设启动的服务列表【1-27...31】

    五.重点回顾【1-32】 

    六.习题

        案例:【1-34】    

        

        # rpm -q telnet-server        ----查看telnet服务程序是否启动

        # yum install telnet-server        ----如果没安装的话就安装

        # chkconfig --list telnet        ----查看开机启动情况(发现时super daemon启动方式)

        # ll /etc/xinetd.d/telnet        ----如果有有这个文件说明真的是super daemon管理的

        # grep '^telnet' /etc/services        ----开头是telnet的那些行(可以看到端口信息)

        # chkconfig telnet on;chkconfig --list telnet        ----设置telnet预设开机启动

        # /etc/init.d/xinetd restart        ----这样telnet就启动了呢

        # netstat -tlnp| grep xinetd        ----看看是不是启动的23号端口

        # grep server /etc/xinetd.d/telnet        ----这个文件中记录着telnet的主程序绝对路径(server=/usr/sbin/in.telnetd)

        # vim /etc/hosts.allow        ----设置允许的网域

        in.telnetd:.edu.tw        

        # vim /etc/hosts.deny        ----设置阻止的网域

        in.telnetd:ALL

        简答题【1-33】   

        

           

  • 相关阅读:
    C#轻量级企业事务
    扩展方法
    JDK Environment Variable And Change default JDK
    AsyncTask简单获取网络图片的例子
    mysql基础
    Oracle基础操作
    java 中 colkection集合、迭代器、增强for、泛型
    centos7 解决 mysql_connect()不支持请检查mysql模块是否正确加载
    python 操作MySQL避坑1064
    面向对象学习
  • 原文地址:https://www.cnblogs.com/eli01/p/3559669.html
Copyright © 2011-2022 走看看