bb服务管理
- 格式:docx
- 大小:24.82 KB
- 文档页数:4
服务管理:
概念:daemon与service
服务的种类:
a) 按照服务的功能分
i. 系统服务:服务对象是Linux系统本身或是linux系统用户
ii. 网络服务:服务对象是网络中的其他客户端
b) 按照服务启动方式分
i. 独立式服务
1. 相应速度快,占用系统资源
ii. 非独立式服务
1. 相应速度慢,节省系统资源
服务与端口号的对应/etc/services
httpd、
ssh、
telnet、
ftp、
dns、
dhcp、
samba、
nfs、
portmap、
imap、
imaps、
pop3、
pop3s、
smtp、
Mysql
daemon的启动脚本与启动方式
/etc/init.d/*:启动脚本放置处
/etc/sysconfig/*:各服务的初始化环境配置文件
/etc/xinetd.conf,/etc/xinetd.d/*:非独立式服务的配置文件
/etc/*:各服务各自的配置文件存放目录
/var/lib/*:各服务产生的数据库
/var/run/*:各服务的程序PID放置处
独立式服务的启动
[root@www ~]# /etc/init.d/syslog
用法:/etc/init.d/syslog {start|stop|status|restart|condrestart}
start:启动这个服务。
stop:停止这个服务。
restart:先停止,再启动,也就是重新启动的意思。
reload:重载配置文件,这个参数只有在服务已经启动的状况下才能使用。 condrestart:有条件的重新启动,这个服务必须是已经启动的,才会被重新启动;如果这个服务尚未启动,则无须启动之。
status:查看目前服务的启动状态。
非独立式服务的启动
xinetd的启动方式同独立式服务;但其管理的服务就不同了,下面以rsync这个非独立式服务为例:
[root@www ~]# cd /etc/xinetd.d/
[root@www xinetd.d]# vim rsync 编辑rsync的配置文件,设置disable = no
[root@www xinetd.d]# grep disable rsync
disable = no
[root@www xinetd.d]# /etc/init.d/xinetd reload注意是reload,而不是restart
重新载入配置: [确定]
查看服务有没有开启
[root@www xinetd.d]# grep rsync /etc/services查找rsync的端口号
rsync 873/tcp # rsync
rsync 873/udp # rsync
下面的两种方法都可以查询rsync服务有没有开启:
[root@www xinetd.d]# lsof -i:873查看哪个程序在占用873端口
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
xinetd 4061 root 6u IPv4 58663 TCP *:rsync (LISTEN)
[root@www xinetd.d]# netstat -tlunp | grep 873查看是否开启了rsync这个网络服务
tcp 0 0 0.0.0.0:873 0.0.0.0:*
LISTEN 4061/xinetd
5.xinetd及其管理的服务的配置
配置文件中的符号:
= 表示后面的设置参数就是这样
+= 表示后面的设置为在原来的设置里面加入新的参数
-= 表示后面的设置为在原来的设置里面放弃这里输入的参数
配置文件相关参数:
Flags 可选值:REUSE、SENSOR(结合deny_time和no_access使用)
access_times 时间控制,如8:00-18:00 2:00-5:00
disable 是否启动该服务
id 服务识别
server 服务的程序文件名(绝对路径)
user 以哪个用户的身份启动和管理
group 以哪个用户组的身份启动和管理
socket_type 数据包类型,可选值stream、dgram
wait 连接机制
instances 最大连接数
per_source 单个IP最多可以有多少个链接
cps 50 10 意思为一秒内最多新链接请求为50个,如果超过,就暂停服务十秒
log_type 日志记录的选项和等级
log on failure 登录失败需要记录的选项
log on success 登陆成功记录的选项
redirect 将客户端的链接请求转到另一台主机上去
includedir 调用外部某个目录的设置
bind 服务接口绑定定
interface同上
only_from 防火墙机制,指定被允许连接的网段
no_access 防火墙机制,指定被拒绝连接的网段
练习:
环境:你的linux服务器上有两个网络接口,一个是lo,一个是eth0;假设将lo设置成对内网的用户提供rsync服务;eth0设置成对外网的用户提供rsync服务,要求:
对内网:
绑定在127.0.0.1这个接口上
对127.0.0.0/8这个网段开放登录权限
限制127.0.0.100和127.0.0.200登录rsync服务
不进行任何连接限制,包括总连接数和时间
对外网:
绑定你的eth0网络接口的IP地址
这个接口仅开放192.168.18.0/24网段和域
开放时间为上午1:00-6:00及晚上10:00-12:00两个时间段
最多允许10个同时连接
设置服务的开机自启动
独立式服务:
chkconfig httpd on 设置httpd开机自启动
chkconfig --list httpd 查看httpd在那些运行级别中设置了开机自启动
chkconfig httpd off 关闭httpd在2345运行级别中设置过得开机自启动
chkconfig --level 3 httpd on 设置httpd只在3这个运行级别中开机自启动
独立式服务设置开机自启动是设置的该服务的启动管理脚本,如/etc/init.d/httpd文件:
# chkconfig: - 85 15
# description: Apache is a World Wide Web server.
非独立式服务:
[root@www xinetd.d]# chkconfig --list rsync
rsync 启用
[root@www xinetd.d]# chkconfig rsync off [root@www xinetd.d]# /etc/init.d/xinetd reload
重新载入配置: [确定]
[root@www xinetd.d]# netstat -tlunp | grep 873
[root@www xinetd.d]#
基于tcp wrappers机制的防火墙功能
适用范围
xinetd管理的所有服务和支持libwrap.so这个函数库文件的程序
ldd 可以查询某个程序的动态函数库的支持状态
[root@www ~]# ldd $(which sshd) |grep libwrap.so
libwrap.so.0 => /lib/libwrap.so.0 (0x00b15000)sshd支持
[root@www ~]# ldd $(which httpd) |grep libwrap.so
[root@www ~]# httpd不支持,即不适用这种防火墙机制
设置文件/etc/hosts.allow和/etc/hosts.deny
允许的写在/etc/hosts.allow中,拒绝的写在/etc/hosts.deny中;如果两文件的设置冲突,以/etc/hosts.allow为准
文件的格式:
daemon: IP地址或域名或网段: 操作
注:程序文件名,即程序执行文件的名称,如rsync、sshd
几个特殊参数:
ALL:代表全部的程序或者全部IP,如ALL: ALL: deny
LOCAL:代表来自本机的意思。如ALL: LOCAL: allow
UNKOWN:代表不知道的IP或DOMAIN或服务
练习:
只允许192.168.18.0/24与192.168.10.0/24这两个网段和192.168.1.1这个主机可以连接本机的ssh服务;其他的ip全部不允许连接本机的ssh服务
TCP Wrappers更高级的玩法:
当有人扫描我的sshd的端口时,记下他的IP作为日后的证据!
特殊参数:
spawn:可以利用后续的shell来进行额外的工作,支持变量功能,主要的变量有:%h(hostname)、%a(address)、%d(daemon)、%c(客户端信息)等
示例:
[root@www xinetd.d]# vim /etc/hosts.deny
sshd : ALL : spawn echo "security notice %c scan host $(/bin/hostname) |mail -s
“ssh_security" root