Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5772384
  • 博文数量: 675
  • 博客积分: 20301
  • 博客等级: 上将
  • 技术积分: 7671
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-31 16:15
文章分类

全部博文(675)

文章存档

2012年(1)

2011年(20)

2010年(14)

2009年(63)

2008年(118)

2007年(141)

2006年(318)

分类: LINUX

2007-03-11 14:44:41

1、ip限制
从网络来的数据包首先要经过iptables,所以可以在iptables上面加上规则来限制ip的访问

打算用
/etc/hosts.deny
/etc/hosts.allow

比如只限制3个外网,1个内网IP连接

怎么写哦?

解决办法:

直接在/etc/hosts.deny里面加一行
sshd: ALL EXCEPT xxx.xxx.xxx.xxx(允许的ip或网段)
sshd: ALL EXCEPT xxx.xxx.xxx.xxx/255.255.255.0(允许的网段) 就可以了.
要注意网段的书写格式

上面是TCP Wrappers的过滤机制,它由tcpd程序控制,有点类似TCP包的检验程序,这个程序的主要参数文件在/etc/hosts.allow及 /etc/hosts/hosts.deny两个文件中,必须要某个软件支持tcpd(TCP Wrappers)的功能才能接受TCP Wrappers的校验。

数据包的校验顺序首先是/etc/hosts.allow,然后才是/etc/hosts/hosts.deny。所以我们通常的设置方法是:在 /etc/hosts/hosts.allow里针对某些服务与数据包来源开启它们的使用权限;在/etc/hosts/hosts.deny里将该服务 的其它来源过滤掉。

注意:如果您在/etc/hosts/hosts.allow里没有设置,那么TCP Wrappers默认的动作是allow(通过校验并进入主机)。

简单的语法如下:

<服务名称>:

特别注意:其中“服务名称”其实就是程序文件名,比如telnet程序的服务名称是“in.etlnetd”、ssh的是“sshd”;network可以使用192.168.0.0/255.255.255.0,但不可以使用192.168.0.0/24。

针对楼主的需求,我认为/etc/hosts.allow应该这样写:
sshd: 192.168.0.0/255.255.255.0,202.101.73.0/255.255.255.0,202.101.74.0/255.255.255.0,202.101.75.0/255.255.255.0
在/etc/hosts.deny里写上:
sshd: ALL
PS:上面的IP是我假想而来,第一个代表内网,后面3个代表外网,应用时,换成你的实际IP即可。

最后还有点补充的是,个人认为数据包进入主机的第一道关卡应该是iptables,第二道才是TCP Wrappers,如果已经越过iptables,说明已登入你的主机了,下一步只是通过TCP Wrappers来进行TCP包校验,那么如果这个支持TCP Wrappers功能的程序有漏洞,结果是什么不用我说了吧。所以而是先从iptables进行限制,把TCP Wrappers作为个补充应该更安全些。

2、限制用户登录

vi /etc/sshd_config
在最后一行加入一行,me 为指定的用户
AllowUsers me
重启SSH

如果是多个用户的话:AllowUsers A B C

注意中间是空格,而不是分号



3、指定尝试密码次数
vi /etc/sshd_config
修必
MaxAuthTries  3
将默认的值改掉即可 Fedora 默认可以允许做3次尝试
重启SSH


阅读(7667) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~