认知Linux系统服务

6、xinetd 管理的服务“防火墙”
/etc/hosts.allow, /etc/hosts.deny
基本上只要一个服务受到 xinetd 管理,或者是该服务的程式支援 TCP Wrappers
函式的功能时,那么该服务的防火墙方面的设定就能够以
/etc/hosts.{allow,deny} 来处理啰。换个方式来说,只要不支援 TCP Wrappers
函式功能的软体程式就无法使用 /etc/hosts.{allow,deny} 的设定值。

 


4、super daemon启动方式:
查询是否启动:grep -i ‘disable’ /etc/xinetd.d/*
如果显示/etc/xinetd.d/rsync:          disable =
yes则是没有启动的,如果要启动,如启动rsync,则vim /etc/xinetd.d/rsync
找到disable = yes改为no,再重启服务 /etc/init.d/xinetd restart

o Prerotate 与 postrotate
对与已加上特殊属性的档案处理上面,是相当重要的执行程序!

设置开机启动的服务  (使用chkconfig)

3、stand alone启动方式:
service httpd start
或/etc/init.d/httpd start

 

主要通过两个文件:/etc/hosts.allow     /etc/hosts.deny

图片 1

logrotate

查看rsunc是否已经启动       netstat -tlup |grep rsync

5、super daemon配置文件
/etc/xinetd.d/下及/etc/init.d/xinetd 下,各参数说明见其他文档

图片 2登录档服务器的架构

daemon命名:相应service名后面加d

或直接chkconfig rsync on ,再重启xinetd

 


判断有没有CP Wrappers 函式的功能的方法:
[root@www ~]# ldd $(which sshd httpd)
/usr/sbin/sshd:
        libwrap.so.0 => /usr/lib64/libwrap.so.0
(0x00002abcbfaed000)
        libpam.so.0 => /lib64/libpam.so.0 (0x00002abcbfcf6000)
….(中间省略)….
/usr/sbin/httpd:
        libm.so.6 => /lib64/libm.so.6 (0x00002ad395843000)
        libpcre.so.0 => /lib64/libpcre.so.0 (0x00002ad395ac6000)
….(底下省略)….
# 重点在于软体有没有支援 libwrap.so
那个函式库啰,有的话就是有这个功能。

特殊参数在第一及第二个字段:


2、相关目录:
/etc/init.d/* :启动脚本放置处
/etc/sysconfig/* :各服务的初始化环境设定档
/etc/xinetd.conf, /etc/xinetd.d/* :super daemon 设定档
/etc/* :各服务各自的设定档
/var/lib/* :各服务产生的资料库
/var/run/* :各服务的程序之 PID 记录处
/etc/services:设置端口号

TCP Wrappers 特殊功能:

格式:  <服务(程序名)> : <IP / 域 / 主机名> : <操作>

1、分两类:stand alone,super daemon(由xinetd这个deamon来负责)

[root@www ~]# ldd $(which sshd ) | grep libwrap.so


 

端口号对应在  /etc/services  ,不建议修改

libm.so.6 => /lib64/libm.so.6 (0x00002ad395843000)
libpcre.so.0 => /lib64/libpcre.so.0 (0x00002ad395ac6000)

xinetd用来管理其他daemon,其本身是一个stand_alone的daemon

/etc/init.d/* :        启动脚本放置处

daemon分两类:

  1. 利用 safe_finger 去追踪出对方主机的信息
    (包括主机名、用户相关信息等);2. 将该追踪到的结果以 email
    的方式寄给我们本机的 root ;3.
    在对方屏幕上面显示不可登入且警告他已经被记录的讯息

  www.2cto.com  

# 3. 观察启动的端口号

                                                  service xinetd restart
 (不要忘了这一步)

管理默写程序接受或者拒绝来自互联网的联机;任何以xinetd管理的服务都可以透过以上两个文件来设定防火墙。

查看网络服务: netstat -tulp

认识与分析登陆档

super daemon管理的服务的启动:

<服务 (亦即程序名称)> : <IP  ,领域 或主机名> : < 动作
>

一般把允许的IP放在hosts.allow,拒绝的放在hosts.deny

rsync : 127.0.0.200 : deny

stand_alone 服务的启动:(有时只有sudo才可以)

/etc/service

/etc/init.d                       启动脚本放置处,所有服務的預設啟動
script 都是放在這裡的,

登录档的安全性设置

super daemon: 用一个特殊的super
daemon(由xinetd进程实现)管理,客户端请求的时候才唤醒,客户端请求结束后服务关闭。反应较慢

/var/log/secure          
 基本上,只要牵涉到『需要输入账号密码』的软件,那举当登入时
(不管登入正确或错误) 都会被记录在此档案中。 包括系统的 login
程序、图形接口登                                  入所使用的 gdm 程序、
su, sudo 等程序、还有网络联机的 ssh,telnet 等程序,
登入信息都会被记载在这里;

stand_alone: 一直在内存中,反应较快

/var/log/lastlog          
 可以记录系统上面所有的账号最近一次登入系统时的相关信息。

step1.  修改配置文件 /etc/xinetd.d/*  ,设置”disable=no”       

 

查看是否默认启动:              chkconfig –list rsync

ps aux | grep atd

一些目录:

 事件发生的日期与时间;

查看所有服务: service –status-all 

 

 

总结

查看系统启动的服务

/usr/sbin/httpd:

              service –status-all         显示所有stand alone服务

rsync : 127.0.0.100 127.0.0.200 : deny

rsync: 192.168.0.0/255.255.255.0 : allow     ======》后面的“: allow”
可以省略,因为是在hosts.allow中,默认就是allow

chkconfig –list | grep atd

setup中选中的是开机启动的服务

ldd (library dependency discovery)

查看哪些已启动:grep -i ‘disable’   /etc/xinetd.d/*

[root@www ~]# vim /etc/hosts.allow
rsync: 140.116.0.0/255.255.0.0
rsync: 203.71.39.0/255.255.255.0
rsync: 203.71.38.123
rsync: LOCAL

例如:  vi /etc/hosts.allow    

 

关闭服务自启动:                  chkconfig rsync off

 

step2.  修改完配置后要重启xinetd (需要sudo)

 

/etc/xinetd.conf,     /etc/xinetd.d/*      super daemon 配置文件

Proto Recv-Q Send-Q Local Address Foreign Address State
PID/Program name
udp 0 0 0.0.0.0:514 0.0.0.0:* 13981/syslogd

端口:用来分辨不用的服务请求(同一个网址用www和用ftp访问端口就不一样,www默认端口号:80)

服务的防火墙管理

认识Linux系统服务

service –status-all  atd

  1. /etc/init.d/* (start|stop|restart|…)   

只要将该服务加入 init 可以管理的 script 当中,亦即是 /etc/init.d/
当中即可。

2.用service 启动,service只是一个script,可以分析后面的参数

登录档的轮替

service:常驻内存的进程,service必然有对应的daemon(守护进程),

  • 服务两大类
    • stand_alone
      • 独自启动,加载到内存后一直占用资源
      • 如httpd,vsftpd
      • 服务的启动,状态
        • /etc/init.d/atd start/restart/stop
        • service –status-all 服务名(atd)
      • chkconfig,管理系统服务默认开机与否
        • chkconfig –list [服务名称]
        • chkconfig [–level [0123456]] [服务名称]
          [on|off]
        • 增加或删除一个服务让chkconfig管理
          •   chkconfig [–add|–del] [服务名称]
        • 将自己的服务交给chkconfig管理
          • 在 /etc/init.d 建立自己服务脚本 如my
          • 将my添加到chkconfig中
        • chkconfig等级说明
          • 0:表示关机
          • 1:单用户模式
          • 2:无网络连接的多用户命令行模式
          • 3:有网络连接的多用户命令行模式
          • 4:不可用
          • 5:带图形界面的多用户模式
          • 6:重新启动
    • super daemon
      • super daemon 负责唤醒其他服务,相当于一个服务管理员
      • 客户端请求时,super daemon 才会去唤醒想要服务,如Telnet请求
      • 服务必须在super
        daemon(/etc/xinetd.d)配置文件中设定启动该服务才行,如配置Telnet
        则在/etc/xinetd.d/telnet
      • super daemon 的服务是/etc/xinetd.d
  • 服务的防火墙管理

    • 简单来说就是针对来源IP或网域或封包请求进行允许或拒绝;
    • Linux默认封包过滤
      • /etc/hosts.deny,/etc/hosts.allow
        • 管理程序接受或拒绝来自互联网的联机
        • 任何以super daemon 即
          使用xinetd管理的服务都可以用这个配置文件来设定防火墙
        • 配置文件运行规则
          • 先检查deny,再检查allow,allow可以越过deny的限制;
          • 所以deny,allow都没有的是可以予以放行的。
          • 与/etc/at.allow 的/etc/at.deny原理区别
            • /etc/at.allow
              存在则以它为准,不存在才参照/etc/at.deny;两文件都没有,就只有root能使用。
            • /etc/hosts.deny与/etc/hosts.allow都需存在且都会检测到。先deny,在allow两者有冲突,以allow为准;IP不存在两个文件中,则会放行的;
    • TCP Wrappers

      • 可用于追踪
        • safe_finger追踪对方主机的信息
        • twist,spawn(action),接shell进行额外工作
      • 管控
        • 来源IP或整个网域的IP网段
        • port(就是服务)
      • 同样是利用/etc/hosts.deny
        /etc/hosts.allow,且服务也应该是super daemon 服务。
    • 认识与分析登录档
      • 简单来说就是记录系统在什么时候由那个程序做了什么样的行为,发生了何种事情
      • 常见登录档名
        • /var/log/cron       crontab相关信息
        • /var/log/dmesg    开机时核心侦测过程所产生的信息
        • /var/log/lastlog  
           系统所有账号最近一次登录系统时的相关信息
        • /var/log/maillog   邮件往来信息
        • /var/log/messages
           相当重要,系统发生错误都会记录;包括服务运行不顺等等。
        • /var/log/secure      
          涉及到需要输入账号密码的软件,正确或错误都会记录,如su
          ,sudo ,ssh,telnet,等等;
      • 产生登录档的服务syslogd,klogd(核心信息登录文件)
      • logrotate
        • 登录档轮替,自动化处理登录文件容量与更新问题
      • 登录档的安全性设置
        • 设置隐藏属性,设置成只能增加,不能删除的属性
        • lsatter,chattr
        • chattr +a  /var/log/messages
      • 注意:syslog的登录档只要被编辑过,如vim查看以:wq离开就无法记录;需要重新启动syslog服务才能继续记录;
    • 登录档服务器的设定
      • 让某部主机当成登录档服务器,用他来记录所有的Linux主机信息,这样既备份了个主机的登录档,也方便查看每一部主机的登录档。

防火墙配置

 某个 daemon 老是无法正常启动时;

可以在setup中选中,则开机启动

鸟哥写的登录档分析工具:

/etc/sysconfig/*           各种服务初始化环境配置文件

# 嘿嘿!你的登录文件主机已经设定妥当啰!很简单吧!


这两个档案的设定语法都是一样的,基本上,看起来应该像这样:

setup中选中的是开机启动的服务
www.2cto.com
service:常驻内存的进程,service必然有对应的daemon(守护进程),
daemon分两类:…

  1. 过往事件记录簿         举例来说  WWW服务 (apache 软件)
    在某个时刻流量特别大, 可以透过登录档去找出该时段是哪些 IP
    在联机与查询的网页数据为何,就能够知道原因

 www.2cto.com  

以 rsync 为例子1. 只允讲 140.116.0.0/255.255.0.0 与
203.71.39.0/255.255.255.0 这两个网域,及 203.71.38.123
这个主机可以进入我们的 rsync 服务器;2. 此外,其他的 IP 全部都挡掉!

用法:  service [service name]  (start|stop|restart|…)

 myvbird 将在 run level 3 及 5 启动;

 

图片 3.png)

查看监听服务: netstat -lnp

klogd:专门记录核心信息的登录文件服务。

 

可见safe_finger是一个可执行的程序;

 

  1. rsync:指的就是 rsync 这个服务的程序啰;

  2. ALL: 指的是来源,这个范围指的当然是全部的所有来源啰,因为是 ALL

  3. spawn (echo “security notice from host $(/bin/hostname)” ; echo ;
    /usr/sbin/safe_finger @%h ) | /bin/mail-s “%d-%h security” root &:
    由于要将一些侦测的数据送给 root
    的邮件信箱,因此需要使用数据流汇整的括号( ),括号内的重点在于
    safe_finger
    的项目,他会侦测到客户端主机的相关信息,然后使用管线命令将这些数据送给
    mail 处理, mail 会将该信息以标头为 security 的字样寄给 root
    啦!由于spawn 只是中间的过程,所以还能够有后续的动作

  4. twist ( /bin/echo -e “nnWARNING connection not allowed.nn”
    ): 这个动作会将 Warning 的字样传送到客户端然后中断联机;

防火墙

还有包括各个主要常见的服务,如 pop3, mail, ftp, su 等会使用到 pam
的服务,
都可以透过鸟哥这个小程序来分析与处理~整个数据还会输出一些系统信息。如果你想要使用这个程序的话,
欢迎下载:

[root@www ~]# chkconfig –list [服务名称]
[root@www ~]# chkconfig [–level [0123456]] [服务名称]
[on|off]

如果遇到 chattr +a 的文档则在 配置文档中加入指令的具体参数如下:

o postrotate:在做完 logrotate 之后启动的指令,例如重新启动 (kill -HUP)
某个服务!

 

/var/log/wtmp, /var/log/faillog      
 这两个档案可以记录正确登入系统者的帐户信息 (wtmp)
与错误登入时所使用的帐户信息 (faillog) ! 我们在第十一章谈到的 last
就是读                                                    取 wtmp
来显示的, 这对与追踪一般账号者的使用行为很有帮助!

  1. 由软件开发商自行定义写入的登录档与相关格式, 例如 WWW 软件 apache
    就是这样处理的;

  2. 由 Linux distribution 提供的登录档管理服务来统一管理。
    你只要将讯息丢给这个服务后,他就会自己分门别类的将各种讯息放置到相关的登录档去!CentOS
    提供 syslogd 这个服务来统一管理登录档

查看是否支持Wrappers:

CentOS 5.x 预设的 syslog 本身就已经具有这个登录文件服务器的功能了,
只是默认并没有启动该功能而已。你可以透过 man syslogd
去查询一下相关的选项就能够知道啦! 既然是登录档服务器,那么我们的 Linux
主机当然会启动一个端口来监听了,那个预设的端口就是 UDP 的 514 ;

                                                 
 不同的网络服务会使用它们自己的登录档案来记载它们自己产生的各项讯息!上述的目录内则是个别服务所制订的登录档。

/etc/sysconfig/* :   各服务的初始化环境配置文件

[root@www ~]# chkconfig [–add|–del] [服务名称]
选项与参数:

总结一下,针对登录文件所需的功能,我们需要的服务与程序有:

这支程序分析的登录文件数据其实是固定的,包括有:

开机自启动:

第二个才是写下来你想要放行或者是抵挡的 IP或网域

检查服务是否启动:如atd 

[root@www ~]# chattr +a /var/log/messages
[root@www ~]# lsattr /var/log/messages

 

规划使用上述三个文档:

*.* @192.168.1.100

 twist (action)立刻以后续的指令进行,且执行完后终止该次联机的要求
(DENY)

chkconfig atd on;

 

TCP 封包的文件头主要记录了来源与目主机的 IP 与 port ,因此 TCP封包并搭配
/etc/hosts.{allow,deny}
的规则比对,就可以决定该联机是否能够进入我们的主机

 /var/log/maillog

设置隐藏属性lsattr与chattr,将登陆文档设置成【 只能增加,不能删除的属性】

更加细部的主要动作则有:

举例:登陆记载账户信息的/var/log/secure

logwatch

 

用来分析进入系统的 TCP 网络封包的一个软件

 klogd:     主要登录核心产生的各项信息;

 

 

将系统所有的stand_alone的服务状态通通列出来

发表评论

电子邮件地址不会被公开。 必填项已用*标注