1.TCP _包装1 .简介传输控制协议(TCP)包装器,这是一个基于主机的网络访问控制列表系统。该代码最初由Wietse Venema在1990年编写(比Linux的出现早一点),并在2001年以类似BSD的
传输控制协议(TCP)包装器,这是一个基于主机的网络访问控制列表系统。该代码最初由Wietse Venema在1990年编写(比Linux的出现早一点),并在2001年以类似BSD的许可发布。TCP Wrappers工作在TCP/IP模型的第四层(传输层),通过有状态连接对特定服务进行安全检测和访问控制。
核心配置文件是:
/etc/hosts.allow/etc/hosts.deny
TCP Wrappers有一个TCP守护进程:tcpd。包装器下的访问控制通常包括:
telnetsshsendmailftppop3vsftpd
2.检查系统是否支持。TCP Wrappers的核心是libwrappers libwrap。您可以检查系统是否支持:
sudo ldd /usr/sbin/sshd | grep libwrap
这里sshd使用libwrap。
3.工作流程:远程IP请求连接TCP Wrapper先看/etc/hosts.allow中是否允许,有允许就放行;没有允许,看/etc/hosts.deny是否禁止,如果存在就禁止连接;两个文件都没有默认放行。
此外,可以将tcp_wrappers设置为调用外部程序,如日志记录。
4.tcp_wrappers配置文件语法服务列表@主机:主机列表:选项服务列表@主机:主机列表:选项服务列表@主机:主机列表:选项
(1)服务清单要支持的服务名,如telnet、vsftpd等。@host是指定的本地网卡。如果没有写出来,就代表全部。
(2)主机列表受控机器可以是机器名和IP,通配符*?除了
基于IP地址: 192.168.10.1 192.168.1.基于主机名: www.magedu.com .magedu.com 较少用基于网络/掩码: 192.168.0.0/255.255.255.0基于net/prefixlen: 192.168.1.0/24(CentOS7)基于网络组(NIS 域): @mynetwork
内置ACL:全部、本地、已知、未知、偏执
ALL:所有主机LOCAL:本地主机KNOWN:主机名可解析成ip的UNKNOWN:主机名无法解析成IP的PARANOID:正向解析与反向解析不对应的主机
(3)要控制的选项和动作ALLOW 接受DENY 禁止
5.例子(1)禁止telnet 192.168.0.0/16,但允许192.168.0.2,其他段不限。vim /etc/hosts.allowin.telnetd: 192.168.0.2vim /etc/hosts.denyin.telnetd: 192.168.
(2)禁止192.168.1.4通过ssh连接。vim /etc/hosts.deny# 自己的IP是192.168.1.2sshd@192.168.1.2:192.168.1.4
(3)192 . 168 . 1的ssh连接。*禁止网段。vim /etc/hosts.deny# 自己ip192.168.1.2sshd@192.168.1.2:192.168.1.
(4)允许本地网段,192.168.1.4除外,使用ssh。vim /etc/hosts.allow# 可以用EXCEPT排除某个IPsshd@192.168.1.2:192.168.1. EXCEPT 192.168.1.4vim /etc/denysshd: ALL
(5)在允许中使用拒绝vim /etc/hosts.allowsshd:192.168.1.4:deny# 也可以在deny中使用allowvim /etc/hosts.denysshd:192.168.1.4:allow
6.使用tcpmatch检查连接。tcpdmatch [-d] daemon[@host] client-d 测试当前目录下的 hosts.allow和hosts.deny
其次,DenyHosts由Phil Schwartz编写,用Python开发。它通过监控系统安全日志来分析是否存在对OpenSSH的暴力破解。如果存在暴力破解,分析IP并将其添加到etc/hosts.deny以禁止连接。
1.装置官方网站地址:http://denyhosts.sourceforge.net/
yum安装yum install -y denyhosts下载安装:wget http://jaist.dl.sourceforge.net/project/denyhosts/denyhosts/2.6/DenyHosts-2.6.tar.gztar zxvf DenyHosts-2.6.tar.gz -C /usr/local/bincd DenyHosts-2.6python setup.py installcd /usr/share/denyhosts/cp denyhosts.cfg-dist denyhosts.cfgcp daemon-control-dist daemon-controlchown root daemon-controlchmod 700 daemon-control
设置启动:
cd /etc/rc.d/init.d/ln -s /usr/share/denyhosts/daemon-control denyhostschkconfig --add denyhostschkconfig daemon-control onchkconfig --list denyhosts# 启动/etc/init.d/daemon-control start
或者
vim /etc/rc.local# 添加/usr/share/denyhosts/daemon-control start
2.配置文件设置vim denyhosts.cfgSECURE_LOG = /var/log/secure #ssh日志文件# format is: i[dhwmy]# Where i is an integer (eg. 7)# m = minutes# h = hours# d = days# w = weeks# y = years## never purge:PURGE_DENY = 50m #过多久后清除已阻止IPHOSTS_DENY = /etc/hosts.deny #将阻止IP写入到hosts.denyBLOCK_SERVICE = sshd #阻止服务名PURGE_THRESHOLD = #定义了某一IP最多被解封多少次。某IP暴力破解SSH密码被阻止/解封达到了PURGE_THRESHOLD次,则会被永久禁止;DENY_THRESHOLD_INVALID = 1 #允许无效用户登录失败的次数DENY_THRESHOLD_VALID = 10 #允许普通用户登录失败的次数DENY_THRESHOLD_ROOT = 5 #允许root登录失败的次数WORK_DIR = /usr/local/share/denyhosts/data #将deny的host或ip纪录到Work_dir中DENY_THRESHOLD_RESTRICTED = 1 #设定 deny host 写入到该资料夹LOCK_FILE = /var/lock/subsys/denyhosts #将DenyHOts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。HOSTNAME_LOOKUP=NO #是否做域名反解ADMIN_EMAIL = #设置管理员邮件地址DAEMON_LOG = /var/log/denyhosts #DenyHosts日志位置
如果有ssh攻击的记录,您可以在文件/etc/hosts.deny中检查它。