Tcpwrap
语法:Daemon list:client list :[option]
选项option:
特点:可0个或多个选项
%<letter>:特定选项
hosts.allow和hosts.deny可同时使用,allow优先
策略的方向选择:daemon list: client list : ALLOW|DENY
[root@station1 ~]#vi /etc/hosts.allow
sshd: ALL :DENY
#拒绝所有客户端访问sshd服务
[root@station1 ~]#vi /etc/hosts.deny
sshd: ALL :ALLOW
#运行所有客户端方法sshd服务器
Logs日志服务:daemon list: client list : severity [fac.]pri
日志策略默认是authpriv.info
[root@station1 ~]#vi /etc/hosts.deny
sshd: ALL : severity notice
Spawn执行其他命令:daemon list : client list : spawn command
在子程序中执行命令、默认I/O被连接到/dev/null
[root@station1 ~]#vi /etc/hosts.deny
sshd: 192.168.32.32 : spawn /bin/echo `date` %c %d >>/var/log/tcpwarp.log
#32访问sshd服务时,发送信息到tcpwarp.log中
Twist执行其他命令:daemon list : client list : twist command
访问的服务被命令替换、执行结果发生给对方
[root@station1 ~]#vi /etc/hosts.deny
vsftpd: 192.168.32.32 : twist /bin/echo "421 Connection prohibited."
#该信息显示在客户端的屏幕上
Banners显示提示信息:daemon list: client list : banners directory
文件"directory/daemon name" 在客户访问服务前发生给客户、支持%<letter>、只支持TCP-based服务
[root@station1 ~]#vi /etc/hosts.deny
vsftpd: 192.168.32.32 : banners /var/banners #指定banners目录
[root@station1 ~]#mkdir /var/banners
[root@station1 ~]#vi /var/banners/vsftpd #文件名必须与hosts.deny中服务名相同
Hello,welcome to This ftp station。 #此信息显示给对方
Xinetd
/etc/xinetd.conf:全局配置文件
/etc/xinetd.d:各种服务配置文件存放目录,服务配置以配置单独文件和主配置文件相结合
[root@station1 ~]#vi /etc/xinetd.d/telnet
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID #+-:在全局配置文件上增加、减少、替换相关参数,子配置文件与全局配置文件相冲突时子配置文件为主
disable = yes #yes停止服务,no开启服务
}
注:但xinetd.d下两个服务使用同一port时,以服务名称的字母排序优先级决定谁使用port
chconfig telnet on:当前环境下启动telnet服务,xinetd中包含的服务用chkconfig都是在环境中启动服务
访问控制:
Allow with only_from = host_pattern #允许访问范围
Deny with no_access = host_pattern #禁止访问访问
eg:
only from = 192.168.32.0/24 #只能用24,用255.255.255.0不会生效
no_access = 192.168.32.31 #当noly from和no_access同时存在是以范围小的优先级高
时间控制:access_times = <time range>
小时:0-23 分钟:0-59
eg:access_times = 9:00-21:00
interface限制:bind和interface定义相同(主要针对多网卡服务器)
[root@station1 ~]#vi /etc/xinetd.d/telnet
service telnet
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
bind = 192.168.0.7 #接口eth0的IP,客户访问0.7时受此限制
}
service telnet
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
access_times = 8:00-17:00
bind = 192.168.1.7 #接口eth1的IP,客户访问1.7时受此限制
}
#最后结果:客户telnet 192.168.0.7时,无任何限制;客户telnet192.168.1.7时,只能在8:00-17:00期间访问telnet服务
Usage限制:用于访问Dos攻击手段
cps:限制流量 cps = <connectionspersec> <waitperiod>
eg:cps = 10 5 #同时间有10个请求则暂停5秒服务
per_source :限制同一IP的最大连接数 per_source = <#connections|UNLIMITED>
eg:per_source = 15 #同一IP最大可有15个连接
flag:标记应用 flags=SENSOR INTERCEPT
SENSOR:对已经连接的服务做限制
deny_time = <FOREVER|NEVER|#minutes> #永远|从不|多少分钟
eg:deny_time = 2
#拒绝连接2分钟,2分钟内不允许连接,2分钟内所有xinetd.d内服务均不允许访问
INTERCEPT:所有链接服务的时候,没有数据包都有接受检查
安全访问控制执行顺序:
iptables---tcpwrap--服务本身控制