免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1090 | 回复: 0

远程ssh安装lfs [复制链接]

论坛徽章:
0
发表于 2007-06-22 18:00 |显示全部楼层

                               
       
       
       
       
       
       
       
       
最近上课越来越无聊了,不想看着时间浪费,所以就有了下面这个任务了
目标:
在机房通过ssh登陆到本机进行LFS安装
需要解决的问题:
     1.用什么做为lfs的宿主环境
     2.ssh服务器的架设及相关的安全问题
     3.因为是局域网,所以还要进行端口映射
     4.动态IP怎么解决
步骤:
1)
   因为主系统不太适合做lfs.所以直接用lfslivecd了,这里用6.2的
   按照linuxsir上的文章把lfslivecd拷贝到硬盘,
详细命令在下面(参考linuxsir上的帖子)
http://www.linuxsir.org/bbs/showthread.php?t=295213&highlight=chroot+livecd
下面是帖子的步骤:
mkdir
/mnt/isolfs
mount
-o loop lfslivecd-x86-6.2-5.iso /mnt/isolfs
mkdir
/mnt/lfslivecd
export
WORK=/mnt/lfslivecd
cp
/mnt/isolfs/root.ext2 $WORK/root.ext2
mkdir
$WORK/root
其中下面几步是需要每次chroot前都要执行的,做成个脚本
emacs
-nw cht.sh
#!/bin/bash
export
WORK=/mnt/lfslivecd
mount
-o loop /mnt/lfslivecd/root.ext2 $WORK/root
mount
-t proc proc $WORK/root/proc
mount
-t sysfs sysfs $WORK/root/sys
mount
-t devpts devpts $WORK/root/dev/pts
mount
-t tmpfs tmpfs $WORK/root/dev/shm
mount
--bind /dev $WORK/root/dev
chroot
/mnt/lfslivecd/root
将cht.sh拷贝到/usr/bin
cp
cht.sh /usr/bin/cht.sh
因为我们登陆以后用的用户是mklfs,这个用户没有权限进行mount的操作,所以我们要
sudoedit
/etc/sudoers在里面添加一行
  mklfs
    ALL=/usr/bin/cht.sh, /sbin/shutdown -h now
就是让mklfs用户可以执行cht.sh的权限,注意一定不能让mklfs用户可以编辑cht.sh
所以还需要chmod
755 /usr/bin/cht.sh
因为机房里可以下载lfs的资料,所以mklfs用户只需要能运行上面的脚本就行了,本地的文件读取的权限可以不给他.总之,这个用户的权限要尽量的少。
2)
安装ssh服务器,因为当前系统默认就安装了openssh,
现在启用一下        /sbin/service
sshd start
如果你机子上还没有安装可以参考网上文章安装一下
测试是否能正常登陆 ssh
127.0.0.1,然后再用mklfs用户登陆测试一下,最好是安装一个lfs的软件包试一下有没有什么问题.
现在最好完善下ssh的安全设置,
编辑/etc/ssh/sshd-config
,添加一行
AllowUsers
mklfs 只允许mklfs登陆
3)
如果通过ssh可以进行lfs的软件包安装,那么接下来我们使外网可以访问
   开放本机22端口
        执行system-config-securitylevel,在里面选中ssh前面的checkbox,选择应用.
这样就开放了本机的22端口了,当然也可以用iptables来完成.
现在可以试着找台局域网的机子,然后telnet
192.168.0.2 22
试下,如果出现ssh的版本号,表明本机的iptable没问题了
,注意你在本地机上telnet上22并不代表从其它机子上也可以登陆(我当时就在这里卡住了)
4)
   设置路由器的端口转发,使外网可以访问
  根据你的防火墙设置端口映射,我这里的是speedtouch.
speedtouch设置端口转发,可以通过80来设置,在高级设置napt那里
内部IP和内部端口就是10.0.0.2和22也就是你要开放的端口
外部IP可以设置为0.0.0.0,外部端口就是你登陆时使用的端口,我这保持默认22
下面设置speedtouch的防火墙规则(如果你没动过speedtouch的防火墙,也可以不设置,因为speedtouch默认的防火墙规则不会拦截你,由于我这边设置了,所以speedtouch上还要开放)
telnet
10.0.0.138
输入用户名和密码
下面输入
:firewall
rule create chain=sink index=0 prot=tcp dstport=22 action=accept
log=yes
:firewall
rule create chain=source index=0 prot=tcp srcport=22 action=accept
log=yes
:firewall
rule create chain=forward index=0 srcintfgrp=lan prot=tcp dstport=22
action=accept log=yes
:firewall
rule create chain=forward index=1 srcintfgrp=wan prot=tcp
srcport=22
action=accept log=yes
上面的log=yes,也可以不用,具体规则的释义可以参见博客上另一篇讲解speedtouch防火墙的文章,目前还没写:-)
这里有个问题,nmap
扫描外网IP时22总是显示filtered的,但是从远程IP登陆时却是可以的,谁知道告诉我下,谢谢
5)
动态IP的问题
网上搜索了下,找到了下面的一个简单的解决方案
在http://www.comexe.cn注册一个免费的域名
注册好后会提供类似下面的信息
域名:      
  mklfs.kmip.net
A记录:
   
  127.0.0.1
IP类型:
   
  公网
域名解析费:     
  免费
有效期:     
  永久
下面是用户名和密码:
mklfs
123456789
2.下载一个客户端,这个客户端就是更新IP的
注意这里的版本,我们下linux版的
下载好后再解压得到文件pipclient
可以将文件拷贝到/usr/bin下面
运行 pipclient输入
[mklfs@HKCAT
kmip]# pipclient
Usage:
pipclient -h -c -w /home/pipclient
-h:
help message.
-c:
do configuration.
-w
: set work directory.
Do
configuration now.
Input
User name:   #你注册的用户名
  mklfs       
Input
Password:    #你注册时的用户密码
123456789
Input
Domain:     #你注册得到的域名
mklfs.kmip.net
Input
Offline URL or Offline IP(Enter for none): #这张是本机没开机使用的IP或者网页,回车
Has
another domain?(Y/N): n #是不是还有其它域名了?
下面就是一些启动信息了,会连接到219.134.132.132
有时候会出现登陆超时的多等一下吧
直到出现
070619
231552:INFO:Connected to:219.134.132.132:9994
070619
231552:INFO:Connected to:219.134.132.132:9993
070619
231552:MESG:登录成功!
出口IP是:
219.134.33.23
070619
231552:INFO:219.134.33.23 N 20
这样就可以了,可以按C-c
结束
这里219.134.33.23就是你当前公网IP了
然后你可以nmap一下会发现mklfs.kmip.net对应的IP就是你当前公网IP了
现在这个程序最好每次都运行一下,其实就是更新下服务器的域名->ip的记录
如果需要重新配置用pipclient
-c可以实现,还需要编辑crontab每隔一定时间执行一次pipclient,也可以将pipclient弄成服务.让其定时更新ip.
6)
最后机子要实现定时开机
修改下cmos,找到电源管理,找到时间唤醒,设置好开机时间
让其在指定的时间开机,如果你可以一直开机,那这步不做也没关系,
接下来修改/etc/inittab,将运行级由5改为3.再运行
/sbin/chkconfig
--level 3 sshd on
在运行级3上开启ssh服务
最后,可以去其它机子上试一下了,
在windows上登陆可以用putty
主机名mklfs.kmip.net
端口22
登陆上了后执行
sudo
/usr/bin/cht.sh会chroot到lfslivecd上的
7)待改进的地方:
  
1.因为chroot后的lfslivecd是root权限的,所以可以挂载硬盘上任何分区,那么修改下ssh使其可以用root登陆,也是可以的,解决方法是找到lfslivecd中自动登陆的部分,不让其chroot后自动登陆(还没找到这个文件,谁实现了请告诉我下),也可以限定ip,只允许学校的IP登陆
   
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/20244/showart_326607.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会

【架构革新 高效可控】2020年12月21日-23日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP