科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道要ftp不要telnet如何设?

要ftp不要telnet如何设?

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

要特别说明的是 origins 会先使用 domain name,若查不到 domain name *才* 会使用 ip,也就是我们 *不能* 使用 ip 来代表有 domain name 的主机。

作者:论坛整理 来源:ZDNet网络安全 2007年12月22日

关键字: telnet命令 opentelnet linux telnet telnet入侵 telnet telnet端口

  • 评论
  • 分享微博
  • 分享邮件

  ※ 引述《demonhuang.bbs@csie.nctu.edu.tw (小黄)》之铭言:

  : ==> 在 haha.bbs@bsd.hs.ntnu.edu.tw (haha) 的文章中提到:

  : : 我想让使用者只用ftp 进来主机

  : : 但不让这些使用者用telnet 进来主机

  : : (but有些使用者还是可以让它进来)

  : : 对於这些特别的使用者如何设定呢???

  : 把那些使用者的 shell 改掉 .like /noexistence ..

  刚好最近也在处理类似的 ftp/login 机制,除了传统做法 -- 改 login shell 外,还可配合其它机制的辅助让 login access control 更有弹性。

  /nonexistent

  /sbin/nologin

  是典型的 no login shells,若要让 ftp account 能正常使用得在 /etc/shells 有对应的 entries。

  ftp://freebsd.ntu.edu.tw/freebsd/woju/source/telnetd.tgz 有更新,修改了 safe_exit() 让 deny try 的「代价」少一点:

  safe_exit(int n)

  {

  struct rtprio rp;

  rp.prio = RTP_PRIO_MAX;

  rp.type = RTP_PRIO_REALTIME;

  rtprio(RTP_SET, 0, &rp);

  rp.type = RTP_PRIO_NORMAL;

  rtprio(RTP_SET, 0, &rp);

  rp.type = RTP_PRIO_IDLE;

  rtprio(RTP_SET, 0, &rp);

  setgid(65534);

  initgroups("nobody", 65534);

  chroot("/usr/local/srclocal/telnetd");

  chdir("/");

  setuid(65534);

  setpriority(PRIO_PROCESS, 0, 20);

  setpriority(PRIO_PGRP, 0, 20);

  setpriority(PRIO_USER, 0, 20);

  execl("/telnets", 0);

  sleep(60);

  exit(n);

  }

  setgid/chroot/setuid 将程式切换到较安全的状态。

  rtprio/setpriority 将 prio/nice 调到最大,也就是让这个 process 吃量少的系统(cpu)资源。

  execl 将 telnetd 换成 telnets,节省记忆体(vsz/rss)的使用,telnets 非常小,主要的任务是「拖时间 & 省资源」。

  telnet://bbs.ee.ntu.edu.tw BSD 板精华区

  http://bbs.ee.ntu.edu.tw/cgi-bin/bbs2html_cgi?boards/BSD/

  -> 3. ◆ FreeBSD 快速入门 (由网路安装FreeBSD)

  -> 7. ◇ [fromzero] telnetd

  有相关的资料。

  接下来谈的和原问题有较直接的关 -- /etc/login.access

  较保守的设定例如下:

  +:woju:.ee.ntu.edu.tw

  -:wheel:ALL EXCEPT local freebsd.ee.ntu.edu.tw

  -:ALL:ALL EXCEPT LOCAL

  login.access 的特性是 "first match",从第一行开始比对,如果 match 就直接return result,所以我们应将「特例」量往前放,是「通用性的规则」该放後头。

  login.access 的格式为

  perm(+|-):users:origins

  以上面的例子来说,第一行 woju 可以从 *.ee.ntu.edu.tw login,第二行 wheel group 只能从 local 或 freebsd.ee.ntu.edu.tw login,第三行拒绝所有 remote login。

  man login.access 有更详细的说明。

  要特别说明的是 origins 会先使用 domain name,若查不到 domain name *才* 会使用 ip,也就是我们 *不能* 使用 ip 来代表有 domain name 的主机,举例说:

  -:wheel:ALL EXCEPT local 140.112.19.123

  将 *无法* 让 wheel group 的人从 140.112.19.123 (freebsd.ee.ntu.edu.tw) login。

  此外请记得将 /etc/inetd.conf rlogin 相关的 entries 全关掉,rlogind 不认得 /etc/login.access。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章