/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 "\nWARNING connection not allowed.\n\n") ----向对方屏幕发送警告信息,然后终止联机
三.系统开机启动服务设定
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】