Linxu下tcp wrappers实现ssh的IP访问限制

一、目的:通过系统自带的tcp wrappers实现ssh的访问限制
二、实现方式:
第1种方法:通过sshd本身服务实现

a、首先在服务器上,分别执行如下命令:

# rpm -qf /lib64/libwrap.so.0
tcp_wrappers-7.6-40.7.el5
//检查是否安装了tcp wrappers

# ldd /usr/sbin/sshd | grep libwrap.so
libwrap.so.0 => /lib64/libwrap.so.0 (0x00002ba28edcc000)
确认ssh服务器是否支持tcp wrappers,如果能够打印出来上述信息,那么可用此方法实现,否则可查看
root@redhat1 home]# ldd /usr/sbin/xinetd | grep libwrap.so
libwrap.so.0 => /lib64/libwrap.so.0 (0x00002ba28edcc000)
如果有信息输出,则可按照第二种方法实现

b、在/etc/hosts.allow中加入以下信息,代表允许访问的IP
sshd:192.168.1.*:allow
c、在/etc/hosts.deny中加入以下信息,代表不允许访问的IP
sshd: all

注:这两个配置文件发生冲突时,以hosts.allow为准

修改完成,断开连接后即时生效。


第2种方法:通过xinetd启动SSH服务

在xinetd中管理ssh服务,并实现ssh的访问控制,首先要按照第一种方法配置hosts.allow和hosts.deny,并且检查是否安装tcp wrappers,以及xinetd服务是否支持tcp wrappers,然后按照以下步骤配置即可。

a、首先在/etc/xinetd.d目录下建立文件ssh,包含下面这些内容。

service ssh {
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/sbin/sshd
server_args = -i
log_on_success += DURATION
disable = no }
注意log_on_success参数允许使用"+="这样的赋值方式,表示在原有默认值的基础上添加,而不是推倒重来。类似地,也可以使用"-="在默认值的基础上减去一些值。参数的默认值通常在/etc/xinetd.conf中设置。

b、停用SSH守护进程,让xinetd接管22端口

# /etc/init.d/ssh stop

重新启动xinetd使配置生效。
# /etc/init.d/xinetd restart

运行netstat -tulnp命令查看22端口的情况,发现xinetd已经顺利接管了SSH通信端口。
# netstat -tulnp | grep 22
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 8356/xinetd

c、将ssh服务自启动去掉,chkconfig sshd off


通过以上两种方式,都可以实现ssh的访问限制,第一种方法相对简单些。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值