认识系统服务(daemons)
什么是daemon与服务
常驻在内存中的进程,且可以提供一些系统或网络功能,那就是服务。
实现这个 service 的程序我们就称它为 daemon
daemon 的主要分类
stand alone 此 daemon 可以自行单独启动服务
super daemon 一个特殊的 daemon 来统一管理
服务与端口的对应
daemon 的启动脚本与启动方式
/etc/init.d/* 启动脚本放置处
/etc/sysconfig/* 个服务的初始化环境配置文件
/etc/xinetd.conf,/etc/xinetd.d/* super daemon 配置文件
/etc/* 各服务各自的配置文件
/var/lib/* 各服务产生的数据库
/var/run/* 各服务的程序的 PID 记录处
Stand alone 的/etc/init.d/*启动
/etc/init.d/syslog
/etc/init.d/syslog status
/etc/init.d/syslog restart
/etc/init.d/syslog status
service [service name] (start|stop|restart)
service --status-all
service name 即是需要启动的服务名称,需与 /etc/init.d/ 对应
start|stop|restart 即是该服务要进行的工作
--status-all 将系统所有的 stand alone 的服务状态全部列出来
service crond restart (重新启动 crond 这个 daemon)
/etc/init.d/crond restart
service --startus-all
super daemon 的启动方式
grep -i 'disable' /etc/xinetd.d/*
# /etc/xinetd.d/rsync: disable = yes
如果“disable=yes”则代表取消此项服务的启动,如果“disable=no”才是有
启动该服务
启动 rsync 这个服务:
vim /etc/xinetd.d/rsync (先修改配置文件成为启动的模样)
disable = no
/etc/init.d/xinetd restart (重启启动 xinetd 这个服务)
grep 'rsync' /etc/services (查看启动的端口)
netstat -tnlp | grep 873
解析 super daemon 的配置文件
默认值配置文件:xinetd.conf
一个简单的 rsync 范例设置
服务的防火墙管理 xinetd,TCP Wrappers
/etc/hosts.allow,/etc/hosts.deny 管理
任何以 xinetd 管理的服务都可以通过 /etc/hosts.allow,/etc/host.deny 来设置防火墙
TCP Wrappers 来管控的是:
1.源 IP 或整个域的 IP 网段
2.port (就是服务,启动某个端口是 daemon 的责任)
ldd $(which sshd httpd) (测试一下 sshd 及 httpd 这两个程序有无支持 TCP Wrappers 的功能)
ldd ( library dependency discovery ) 这个命令可以查询某个程序的动态函数库支持状态
配置文件语法:
<service (program_name)> : <IP, domain, hostname> : <action>
<服务 (即程序名称)> : <IP 或域 或主机名> : < 操作 >
rsync : 127.0.0.100 127.0.0.200 : deny
或
rsync : 127.0.0.100 : deny
rsync : 127.0.0.200 : deny
1.只允许 140.116.0.0/255.255.0.0 与 203.71.39.0/255.255.255.0 这两个域,及 203.71.38.123
这个主机可以进入我们的 rsync 服务器
2.此外,其他的 IP 全部都挡掉
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
vim /etc/hosts.deny
rsync: ALL
TCP wrappers 特殊功能
要确定有没有安装 TCP Wrappers 可以使用“rpm -q tcp_wrappers”来查询
主要操作有:
spawn (action) 可以利用后续的 shell 来进行额外的工作,且具有变量功能,主要的变量
内容为:%h(hostname)、%a(address)、%d(daemon)等
twist (action) 立刻以后续的命令进行,且执行完后终止该次连接的请求(DENY)
vim /etc/hosts.deny
rsync: ALL: spawn (echo "security notice from host $(/bin/hostname)";echo;/user/sbin/safe_finger @%h)
| /bin/mail -s "%d-%h security" root & : twist ( /bin/echo -e "\n\nWARNING
connection not allowed.\n\n" )
safe_finger,会检测到客户端主机的相关信息
系统开启的服务
查看系统启动的服务
netstat -tulp (找出目前系统开启的网络服务)
netstat -lnp (找出所有的有监听网络的服务)
service --status-all (查看所有的服务状态)
设置开机后立即启动服务的方法
chkconfig 管理系统服务默认开机启动与否
chkconfig --list [服务名称]
chkconfig [--level [0123456]] [服务名称] [on|off]
--list 仅将目前的各项服务状态栏显示出来 (只有 on 或 off 者为 super daemon)
--level 设置某个服务在该 level 下启动 (on) 或 关闭 (off)
chkconfig --list | more (列出系统上面所有被 chkconfig 管理的服务)
chkconfig --list | grep '3:on' (显示出目前在 run level3 下启动的服务)
chkconfig --level 345 atd on (让 atd 这个服务在 run level 为 3,4,5 时启动)
/etc/init.d/httpd status (先查看 httpd,再查看默认有无启动,之后以 chkconfig 设置为默认启动)
chkconfig --list httpd
chkconfig httpd on; chkconfig --list httpd
/etc/init.d/httpd status
/etc/init.d/rsync status
netstat -tlup | grep rsync
chkconfig --list rsync
chkconfig rsync off; chkconfig --list rsync
/etc/init.d/xinetd restart; netstat -tlup } grep rsync
ntsysv [--level <levels>] 类图形界面管理模式
chkconfig [--add|--del] [服务名称] 设置自己的系统服务
--add 增加一个服务名称给 chkconfig 来管理,该服务名称必须在 /etc/init.d 内
--del 删除一个给 chkconfig 管理的服务
vim /etc/init.d/myvbird
#!/bin/bash
# chkconfig 35 80 70
# description :nothing
echo "nothing"
chkconfig --list myvbird
chkconfig --add myvbird; chkconfig --list myvbird
chkconfig --del myvbird
rm /etc/init.d/myvbird
什么是daemon与服务
常驻在内存中的进程,且可以提供一些系统或网络功能,那就是服务。
实现这个 service 的程序我们就称它为 daemon
daemon 的主要分类
stand alone 此 daemon 可以自行单独启动服务
super daemon 一个特殊的 daemon 来统一管理
服务与端口的对应
daemon 的启动脚本与启动方式
/etc/init.d/* 启动脚本放置处
/etc/sysconfig/* 个服务的初始化环境配置文件
/etc/xinetd.conf,/etc/xinetd.d/* super daemon 配置文件
/etc/* 各服务各自的配置文件
/var/lib/* 各服务产生的数据库
/var/run/* 各服务的程序的 PID 记录处
Stand alone 的/etc/init.d/*启动
/etc/init.d/syslog
/etc/init.d/syslog status
/etc/init.d/syslog restart
/etc/init.d/syslog status
service [service name] (start|stop|restart)
service --status-all
service name 即是需要启动的服务名称,需与 /etc/init.d/ 对应
start|stop|restart 即是该服务要进行的工作
--status-all 将系统所有的 stand alone 的服务状态全部列出来
service crond restart (重新启动 crond 这个 daemon)
/etc/init.d/crond restart
service --startus-all
super daemon 的启动方式
grep -i 'disable' /etc/xinetd.d/*
# /etc/xinetd.d/rsync: disable = yes
如果“disable=yes”则代表取消此项服务的启动,如果“disable=no”才是有
启动该服务
启动 rsync 这个服务:
vim /etc/xinetd.d/rsync (先修改配置文件成为启动的模样)
disable = no
/etc/init.d/xinetd restart (重启启动 xinetd 这个服务)
grep 'rsync' /etc/services (查看启动的端口)
netstat -tnlp | grep 873
解析 super daemon 的配置文件
默认值配置文件:xinetd.conf
一个简单的 rsync 范例设置
服务的防火墙管理 xinetd,TCP Wrappers
/etc/hosts.allow,/etc/hosts.deny 管理
任何以 xinetd 管理的服务都可以通过 /etc/hosts.allow,/etc/host.deny 来设置防火墙
TCP Wrappers 来管控的是:
1.源 IP 或整个域的 IP 网段
2.port (就是服务,启动某个端口是 daemon 的责任)
ldd $(which sshd httpd) (测试一下 sshd 及 httpd 这两个程序有无支持 TCP Wrappers 的功能)
ldd ( library dependency discovery ) 这个命令可以查询某个程序的动态函数库支持状态
配置文件语法:
<service (program_name)> : <IP, domain, hostname> : <action>
<服务 (即程序名称)> : <IP 或域 或主机名> : < 操作 >
rsync : 127.0.0.100 127.0.0.200 : deny
或
rsync : 127.0.0.100 : deny
rsync : 127.0.0.200 : deny
1.只允许 140.116.0.0/255.255.0.0 与 203.71.39.0/255.255.255.0 这两个域,及 203.71.38.123
这个主机可以进入我们的 rsync 服务器
2.此外,其他的 IP 全部都挡掉
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
vim /etc/hosts.deny
rsync: ALL
TCP wrappers 特殊功能
要确定有没有安装 TCP Wrappers 可以使用“rpm -q tcp_wrappers”来查询
主要操作有:
spawn (action) 可以利用后续的 shell 来进行额外的工作,且具有变量功能,主要的变量
内容为:%h(hostname)、%a(address)、%d(daemon)等
twist (action) 立刻以后续的命令进行,且执行完后终止该次连接的请求(DENY)
vim /etc/hosts.deny
rsync: ALL: spawn (echo "security notice from host $(/bin/hostname)";echo;/user/sbin/safe_finger @%h)
| /bin/mail -s "%d-%h security" root & : twist ( /bin/echo -e "\n\nWARNING
connection not allowed.\n\n" )
safe_finger,会检测到客户端主机的相关信息
系统开启的服务
查看系统启动的服务
netstat -tulp (找出目前系统开启的网络服务)
netstat -lnp (找出所有的有监听网络的服务)
service --status-all (查看所有的服务状态)
设置开机后立即启动服务的方法
chkconfig 管理系统服务默认开机启动与否
chkconfig --list [服务名称]
chkconfig [--level [0123456]] [服务名称] [on|off]
--list 仅将目前的各项服务状态栏显示出来 (只有 on 或 off 者为 super daemon)
--level 设置某个服务在该 level 下启动 (on) 或 关闭 (off)
chkconfig --list | more (列出系统上面所有被 chkconfig 管理的服务)
chkconfig --list | grep '3:on' (显示出目前在 run level3 下启动的服务)
chkconfig --level 345 atd on (让 atd 这个服务在 run level 为 3,4,5 时启动)
/etc/init.d/httpd status (先查看 httpd,再查看默认有无启动,之后以 chkconfig 设置为默认启动)
chkconfig --list httpd
chkconfig httpd on; chkconfig --list httpd
/etc/init.d/httpd status
/etc/init.d/rsync status
netstat -tlup | grep rsync
chkconfig --list rsync
chkconfig rsync off; chkconfig --list rsync
/etc/init.d/xinetd restart; netstat -tlup } grep rsync
ntsysv [--level <levels>] 类图形界面管理模式
chkconfig [--add|--del] [服务名称] 设置自己的系统服务
--add 增加一个服务名称给 chkconfig 来管理,该服务名称必须在 /etc/init.d 内
--del 删除一个给 chkconfig 管理的服务
vim /etc/init.d/myvbird
#!/bin/bash
# chkconfig 35 80 70
# description :nothing
echo "nothing"
chkconfig --list myvbird
chkconfig --add myvbird; chkconfig --list myvbird
chkconfig --del myvbird
rm /etc/init.d/myvbird