linux 系统服务
前言:哎,最近行要搭建服务器,才发现自己连系统服务都不是很了解,于是立马开始补补脑。
内容:
1. 首先解释一个单词,daemon((希腊神话中)半人半神的精灵; 守护神)。所以daemon就是和service没什么大区别了,就是保证机器能够正常的提供服务。要是非要区分的话,就是每个service都要有一个daemon,所以daemon就是提供服务启动的程序。
2. 服务类型:stand_alone和super daemon。
Stand_alone:就是能够单独启动的服务。Httpd(www)、vsftpd(ftp)特点:随时待命(常驻内存)
Supersaemon就是对一些daemon进行管理的。就是超级守护进程(xinted)特点:需要调度(用完退出内存)super daemon分类:multi-threaded(多线程),single-threaded(单线程)。
解释一下:这里的stand _alone就是单窗口,只做某项业务,super daemon是一个综合的窗口可以办理很多的业务,但是这个窗口也有不同,有一种是接受一个业务,这个窗口的业务除了办理这个业务的业务员,其他的都休息,还有一种就是同时接受很多的业务,这窗口的业务员都进行不同的工作。
区分daemon工作形态的类型:
Single-control:通过信号管理,只要有任何客户需求,会立即启动。
Interval-control: 就是按照时间间隔来进行工作的,例如atd、crond
注意:daemon的命名规则是程序文件名+d
3.Daemon的启动脚本和启动方式。
1)/etc/init.d/* 启动脚本放置处centos中的都是在/etc/rc.d/init.d 但是/etc/init.d是链接到/etc/rc.d/init.d
2)/etc/sysconfig/* 各种服务的配置文件
3)/etc/xinetd.conf,/etc/xinetd.d/* :super daemon 的配置文件。
/etc/xinetd.conf是主要配置文件(默认配置文件)
/etc/xinetd.d/* 都是每个受到管理的服务的配置。
4)/etc/* 各种服务的配置
5)/var/lib/*各种服务产生的数据库。
6)/var/run/*:各服务程序之PID记录处。
注意启动daemon的方法中可以用/etc/init.d/服务名 {start|stop|restart| status}
也可以用service服务名 {start|stop|restart| status} ,此处的service也是一种脚本,其实也是执行的/etc/init.d/服务名方式。
4.superdaemo的启动。
首先:要进入到/etc/xinted.d/* 中对应问服务中修改配置文件,disable = no
然后:重启xinted
关闭操作:修改文件,然后重启xinted
5.xinted能够进行安全性或者是其他管理机制是由于能够配置他的配置文件/etc/xinted.conf
简单说一下配置文件:
log_type = SYSLOG daemon info 记录文件的记录服务类型。
log_on_failure = HOST 发生错误时需要记录的信息为主机
log_on_success = PID HOST DURATION EXIT 成功登陆或者启动时的记录信息。
cps = 50 10 同一秒内最大联机数为50个,超过50个暂停10秒
instances = 50 同一服务器的最大同时联机数
per_source = 10 同一来源的客户端的最大联机数。
v6only = no 仅允许ipv6 。
groups = yes 这两个是环境参数设定。
umask = 002
includedir/etc/xinetd.d 跟多的设定值在/etc/xinetd.d目录
注意:如果对应的服务/etc/xinetd.d/* 对应的服务中没有配置相关的属性,那么就会按照/etc/xinetd.conf中的配置进行设定。
6./etc/xinetd.d/*下配置文件的格式是
service <service_name>
{
<attribute> <assign_op> <value> <value>
}
解释一下:service_name要和/etc/services服务名一样,因为这里有名字和端口的对应。Xinetd自身并没有用端口,而其中的服务有端口。
attribute是一些管理参数,assign_op是参数的设定方法,主要由=,+=,-= ,=表示所跟的值就是属性,+=就是在原有的基础上加上新的值,-=就是在原有的基础上减去值。
7.说说服务的防火墙xinetd,TCP Wrappers
Linux默认的是提供一个软件分析的工具,/etc/hosts.deny,/etc/hosts.allow
/etc/hosts.{allow|deny}是能够接受或者是拒绝来自因特网的联机。
Xinetd就是透过/etc/hosts.{allow,deny}进行IP地址过滤,其实no_access,和only_from也可以达到目的,但是这两个文件能够集中的管理。
注意:/etc/hosts.{allow,deny}也是/usr/sbin/tcpd的配置文件,而/usr/sbin/tcpd本身就是分析进入系统TCP网络封包的软件,所以TCP wrapper管控的就IP和IP段,还有就是port。
也就是说支持TCP warppers或者是受xinetd管理就能用/etc/hosts.{allow,deny}来处理。
8.说一说如何知道程序支持TCP wrapper
通过检查程序是不是依赖libwrap.so这个函数库,使用ldd $(which sshd)命令检查。
9.如何配置/etc/hosts.{allow,deny}这两个文件,以下是语法:
1)<service(program_name)>:<IP,domain,hostname>:<action>
Program_name就是程序的名字例如:/usr/bin/rsync 就写rsync。
2)action:就是allow和deny。高级的spawn:twist
例如:vim /etc/hosts.deny
rsync:127.0.0.100127.0.0.200 :deny
注意:在/etc/hosts.allow文件中最后的allow是可以省略的,同理在/etc/hosts.deny中,但是这两个是有判断顺序的,两个有分歧的时候以allow文件为准。这两个文件的建议写法是,把允许的写入到/etc/hosts.allow ,把不允许的写入到/etc/hosts.deny
3)对于前两个字段有一些特殊的参数:
ALL:代表全部的program_name 或者所有IP都接受例如:ALL:ALL:deny(所有的IP地址都不允许使用任何的服务)
LOCAL:代表本机的意思,例如:ALL:LOCAL:allow(本机允许使用所有的服务)
UNKNOWN:代表不知道的IP或者是domain或者是服务时。
KNOWN:代表为可解析的IP,domain等等信息时。
注意:这里强调。Service_name其实是启动该服务的程序,例如:/etc/init.d/sshd这个script,实际上是启动的ssh服务的是sshd这个程序,所以,你的service_name自然就是sshd,而/etc/xinetd.d/telnet是指到in.telnetd这个程序来启动的所以用in.telnetd.
10.谈谈TCPwrappers特殊的功能
前提:安装tcp_wrappers
更加功能强大的动作:spawn(action),可以利用后面的shell来进行额外的工作,且有变量功能,主要的变量内容有:%h(hostname),%a(address),%d(daemon)等、
twist(action)立刻以后续的命令进行,执行完后终止该次的联机要求。
实例:
1.利用safe_finger去追踪出对方主机信息(包括主机名、用户相关信息等);
2.将该追踪到的结果以email的方式寄给本机的root;
3.在对方的屏幕上显示不可登入且警告他已经被记录。
注意:由于这些都是抵挡的机制,所以这两个动作大多是卸载/etc/hosts.deny中
#Vim/etc/hosts.deny
rsync:ALL:spawn(echo “security notice from host \ $(/bin/hostname)”;echo;/usr/sbin/safe_finger@%h) | /bin/mail –s “%d -%h security” root & :twist (/bin/echo –e “\n\nWarningconnection not allowed.\n\n”)
本文出自 “技术至上” 博客,请务必保留此出处http://wuxiangdong.blog.51cto.com/8274747/1566180
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。