读书笔记: 鸟哥的私房菜
Telnet服务器:
1、服务器的安装:
需要安装两个包:telnet,telnet-server。
2、启动方式:
使用xinetd来代理侦听。
如果你发现没有xinetd的服务,那么请安装xinetd这个软件包;然后启动服务就好了。
在实际的测试中,即使没有telnet-server这个包,我们也可以从远程登录。但是有一点就是xinetd.d目录下telnet文件我们需要自己建。
安装了telnet-server这个包的好处就是它自己会帮你建立一个telnet包文件,你只需要将xinetd的服务重新启动就行了。
另外:root 用户不允许登录telnet,所以我们要先建立一个用户然后再测试。
现在我们来看一个在没有安装telnet-server包的案例,自己改改文件就行了。
service telnet
{
flags = REUSE
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/kerberos/sbin/telnetd
log_on_failure += USERID
disable = no
}
# useradd telnet
# passwd telnet
Changing password for user telnet.
New UNIX password:
BAD PASSWORD: it is too simplistic/systematic
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
# telnet 10.1.1.29
Trying 10.1.1.29...
Connected to 10.1.1.29 (10.1.1.29).
Escape character is '^]'.
server (Linux release 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:54 EDT 2009) (0)
login: telnet
Password:
[telnet @server ~]$
telnet协议属于不安全的协议,使用明文密码在网上传递,如果在同一网段有用户使用 抓包工具就极有可以抓到相关的密码信息。
==================================================================
关于系统服务的安全,我个人觉得可以从以下几个方面来做:
1、服务本身的安全防范
2、xinetd的安全防范(当然,这个就是非关键性服务。作为服务本身的安全防范的一个补充)
3、tcpwrapper (防范很简单,但也很实用)
4、iptables (利用本机的防火墙)
5、安全设备,它通常只能对恶意行为,大批量的包、大量的并发连接有防范作用。
服务本身--->xinetd--->tcpwrapper--->iptables--->防火墙
以该为目标: 详解telnet服务
1、服务本身没有安全性设置
2、xinetd(假设我们的telnet服务已经被xinetd给托管了。)
可以限制同时的连接数
连接的时间
服务的实例数
3、tcpwrapper (有两个文件hosts.allow,hosts.deny)
系统读文件先是配置hosts.allow,然后再hosts.deny.如果两个都不匹配,放行!
4、iptables (设置允许进入的IP范围规则)
5、防火墙
如何来实施保护telnet服务器?
1、使用iptables (目前还不会使用iptables)
2、使用tcpwrappers
3、xinetd自身的防范措施
4、设定iptables规则(现在还不会,会了再更新,打个mark)
以例子来说明吧!
a、在局域网里,只允许10.1.1.1来登录服务器,针对外网IP,只允许61.1.0.0/16来登录服务器。其他的IP都不能登录进来,所有成功登录、失败登录都会记录在日志文件里。
具体记录的信息有:客户端的IP地址、主机名称
实现的方法1:
telnetd: ALL EXCEPT 10.1.1.1, 61.1.0.0/255.255.0.0 : spawn ( echo `date +%Y/%m/%D@%H:%M` %c %s >> /var/log/telnet_fail.log)
实现方法2:
[root @www ~]# cat /etc/hosts.allow
telnetd: 10.1.1.1, 61.1.0.0/255.255.0.0
[root @www ~]# cat /etc/hosts.deny
telnetd: ALL: spawn ( echo `date +%Y/%m/%D@%H:%M` %c %s >> /var/log/telnet_fail.log)
实现方法3:
service telnet
{
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/kerberos/sbin/telnetd
disable = no
only_from = 10.1.1.1 #只允许来自10.1.1.1的telnet数据包
bind = 10.1.1.129 #添加绑定的接口
instances = 5 #允许的实例数
per_source = 2 #同一个IP地址只允许2个连接
cps = 2 10 #允许同时两个同时并发连接,如果同一时间没有登陆上的IP,将会停止10秒种以减少太多的并发数量带来的压力
flags = ipv4
log_type = FILE /var/log/telnet.log
log_on_failure += USERID ATTEMPT
log_on_success = HOST USERID
}
本文出自 “潜入技术的海洋” 博客,请务必保留此出处http://myhat.blog.51cto.com/391263/423521