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--服務本身控制