红联Linux门户
Linux帮助

ftp仅允许example.com域用户匿名登录的问题?

发布时间:2011-09-22 21:55:49来源:红联作者:whloveghj
我把ftp上面关闭本地帐号登陆,只开启匿名登陆,
anonymous_enable=YES
local_enable=NO
然后在/etc/hosts.allow里面写vsftpd: example.com
/etc/hosts.deny写vsftp:ALL


请问这样行不行?
文章评论

共有 2 条评论

  1. crossbitter 于 2011-09-23 08:15:54发表:

    其实,你服务的项目除了 Proxy, WWW ,e-mail,sshd,proftpd 等之外,若要使用 Telnet 或其它的联机软件连上你的主机的话,应该是要经过你的控管的,所以,限制适当的联机网络是有其必要性的。通常,我都只设定我上网工作(Windows 平台)的那部机器,及可能会使用到的外部网络的机器,让他可以登入这部主机,其它的就将之deny(取消)掉!基本上,要设定联机范围的程序与档案有几 个:

    •tcp_wrappers 套件;

    •/etc/hosts.allow;

    •/etc/hosts.deny。

    简单的说, hosts.allow 与 hosts.deny 这两个档案就是在限制 /etc/inetd.conf 这个档案中,所允许的服务内容啦!(TCPD先检查hosts.allow ,再检查hosts.deny ,如果前者允许的IP或域名,后者即使有了,也不起作用)

    •察看是否具有 tcp_wrappers 套件:

    要使联机计算机的设定启动,以使用 /etc/hosts.allow 与 /etc/hosts.deny 档案的话,需要这一套软件『tcp_wrappers』,要察看你的 Linux 主机内是否有这一套软件的话,请使用:
    rpm -q tcp_wrappers 或者 rpm -qa | grep tcp
    如果有这套软件的话,自然就会显示出来,如果没有的话,请放入你的 Linux 光盘片,将 rpm 档案装上去吧!


    •设定允许登入的计算机(/etc/hosts.allow):

    其实很简单,只要修改 /etc/hosts.allow(如 果没有此档,请自行以 vi 编辑)这这档案即可,例如,我家里的计算机中,我的内部网域(局域网络)是 1Array2.168.1.0/255.255.255.0,这样的网域代表计算机 IP 在于 1Array2.168.1.1 - 1Array2.168.1.255 之间!所以,我就将 /etc/hosts.allow 这个档案的内容设定成为如此:

    in.telnetd: 1Array2.168.1.0/255.255.255.0, .ncku.edu.tw : Allow
    加入 .ncku.edu.tw 的原因是因为我人在成大,所以加入此行的话,可以使我在成大连上我家里的 Linux 主机。
    注:IP的写法不支持/24/32/8等的NetMask的写法,必须把掩码写全.
    如:1Array2.168.148.224/255.255.255.240
    你可能写成: sshd: all except .sina.com

    •设定不许登入的计算机(/etc/hosts.deny):

    由 于正常的情况下, Linux 会先判断 hosts.allow 这个档案,这个档案中的计算机如果设定为可联机的话,则 hosts.deny 就不会被使用,因此,设定好了 hosts.allow 之后,将 /etc/hosts.deny 设定为『所有计算机都不许登入』的情况,如下所示:

    in.telnetd: ALL : Deny
    这样一来,基本的防护措施就有了(不用重新开机就自动执行了!)。同样,你也可能写成: sshd: all except .sina.com

    例题:
    ssh可以被本地子网访问,但是不能让其他网段的用户访问
    /etc/hosts.deny
    sshd :ALL EXCEPT 1Array2.168.0.
    \\\\\\\\\小结\\\\\\\\\\
    只允许example.com访问
    hosts.allow
    sshd:ALL EXCEPT .example.com
    hosts.deny无
    只不允许example.com访问
    hosts.deny
    sshd:ALL EXCEPT .example.com
    hosts.allow无
    **以上的理解是错误的,在tcp_wrapper中,拒绝只能用host.deny**
    如果只允许example.com访问
    hosts.allow 写sshd:.example.com
    hosts.deny 写sshd:all
    如果只不允许example.com访问
    hosts.allow不写
    hosts.deny 写sshd:.example.com
    所以:
    对于sshd:ALL EXCEPT .example.com这一句,表示的是hosts.allow中对sshd 都允许进入但是除了example.com不运用这个规则,但不表示拒绝,只是表示不进入,如果想拒绝还需要在 hosts.deny中加规则。

    •记录限制登入的主机 IP:

    通 常我们会希望如果有人尝试登入我们的系统时,系统不但可以将他摒弃在外,并且可以将他的尝试记录下来!这时,我们可以藉由 /etc/hosts.deny 来达成这个目标!在这个档案中(当然,您的 /etc/hosts.allow 必须已经先完成编辑了!),你可以这样输入:

    [root @tsai /etc]# vi hosts.deny
    in.telnetd: ALL : spawn (echo Security notice from host `/bin/hostname`; \
    echo; /usr/sbin/safe_finger @%h ) | \
    /bin/mail -s "%d-%h security" root & \
    : twist ( /bin/echo -e "\n\nWARNING connection not allowed. Your attempt has been logged. \n\n\n警告您尚未允许登入,您的联机将会被纪录,并且作为以后的参考\n\n ". )
    在 上面的例子中,黄色的 root 部分,可以写成你的个人账号或者其它 e-mail ,以免很少以 root 身份登入 Linux 主机时,容易造成不知道的情况,另外,最后几行(颜色怪怪的那一行)为同一行。如此一来,当未经允许的计算机尝试登入你的主机时,他的画面就会显示上面的最后一行,并且将他的 IP 寄到 root (或者是你自己的信箱 华夏名网

  2. crossbitter 于 2011-09-23 08:03:36发表:

    http://ishare.iask.sina.com.cn/f/6272449.html vsftpd:……