正在加载...
分页: 47/55 第一页 上页 42 43 44 45 46 47 48 49 50 51 下页 最后页 [ 显示模式: 摘要 | 列表 ]
攻入Linux系统后,很多入侵者往往就开始得意忘形了.这其中还有一个原因,就是技术性也要求更高了.下面,我们来看看一些常用的经典工具.

1、从这里延伸:后门和连接工具

(1)Httptunnel

      Tunnel的意思是隧道,通常HTTPTunnel被称之为HTTP暗道,它的原理就是将数据伪装成HTTP的数据形式来穿过防火墙,实际上,它是在HTTP请求中创建了一个双向的虚拟数据连接来穿透防火墙.说得简单点,就是说在防火墙两边都设立一个转换程序,将原来需要发送或接受的数据包封装成 HTTP请求的格式骗过防火墙,所以它不需要别的代理服务器而直接穿透防火墙.

      HTTPTunnel包括两个程序:htc和hts,其中htc是客户端,而hts是服务器端,我们现在来看看我是如何用它们的.比如开了FTP的机器的IP是192.168.10.231,本地机器IP是192.168.10.226,因为防火墙的原因,本地机器无法连接到FTP上.怎么办?现在就可以考虑使用HTTPTunnel了.过程如下:

第一步:在本地机器上启动HTTPTunnel客户端.用Netstat看一下本机现在开放的端口,会发现8888端口已在侦听.
第二步:在对方机器上启动HTTPTunnel的服务器端,并执行命令“hts -f localhost:21 80”,这个命令的意思是说,把本机的21端口发出去的数据全部通过80端口中转一下,并且开放80端口作为侦听端口,再用Neststat看一下他的机器,就会发现80端口现在也在侦听状态.
第三步:在本地机器上用FTP连接本机的8888端口,会发现已经连上对方的机器了.那么,为什么人家看到的是127.0.0.1,而不是 192.168.10.231呢?因为我们现在是连接本机的8888端口,防火墙肯定不会有反应,如果没往外发包,局域网的防火墙肯定就不知道了.现在连接上本机的8888端口以后,FTP的数据包不管是控制信息还是数据信息,都被htc伪装成HTTP数据包然后发过去,在防火墙看来,这都是正常数据,相当于欺骗了防火墙.

      需要说明的是,这一招的使用需要其他机器的配合,就是说要在他的机器上启动一个hts,把他所提供的服务,如FTP等重定向到防火墙所允许的80端口上,这样才可以成功绕过防火墙!肯定有人会问,如果对方的机器上本身就有WWW服务,也就是说他的80端口在侦听,这么做会不会冲突?HTTPTunnel的优点就在于,即使他的机器以前80端口开着,现在也不会出现什么问题,重定向的隧道服务将畅通无阻!

(2)Tcp_wrapper

      Tcp_wrapper是Wietse Venema开发的一个免费软件. Tcp_wrapper的诞生有个小小的故事,大约1990年,作者所在大学的服务器屡屡受到一个外来黑客侵入,因为受害主机的硬盘数据屡次被rm -rf/命令整个抹掉,所以找寻线索极为困难,直到有一天晚上作者在工作的过程中无意中发现这个黑客在不断的finger 受害主机、偷窥受害者的工作.于是,一个想法诞生了:设计一个软件,使它可以截获发起finger请求的IP,用户名等资料.Venema很快投入了工作,而Tcp_wrapper也由此诞生!此后,Tcp_wrapper随着广泛的应用逐渐成为一种标准的安全工具.通过它,管理员实现了对inetd提供的各种服务进行监控和过滤.

      Tcp_wrapper编译安装成功后,会生成一个tcpd程序,它可以在inetd.conf这个控制文件中取代in.telnetd的位置,这样,每当有telnet的连接请求时,tcpd即会截获请求,先读取管理员所设置的访问控制文件,合乎要求,则会把这次连接原封不动的转给真正的 in.telnetd程序,由in.telnetd完成后续工作.如果这次连接发起的ip不符合访问控制文件中的设置,则会中断连接请求,拒绝提供 telnet服务.Tcp_wrapper访问控制的实现是依靠两个文件:hosts.allow,hosts.deny来实现的.如果我们编辑/etc /syslog.conf文件时,加入了日志纪录功能,即:

#tcp wrapper loglocal3.info /var/log/tcplog

      编辑结束后,保存文件,在/var/log下会生成tcplog文件,注意这个文件的读写属性, 应该只对root有读写权限.然后ps -ef   grep syslogd,找出syslogd的进程号,kill -HUP 重启syslogd进程使改动生效.在这里,我们可以预先看一看以后生成的tcplog文件内容,如下:

Jul 31 22:00:52 www.test.org in.telnetd[4365]: connect from 10.68.32.1Jul 31 22:02:10 www.test.org in.telnetd[4389]: connect from 10.68.32.5Jul 31 22:04:58 www.test.org in.ftpd[4429]: connect from 10.68.32.3Aug 2 02:11:07 www.test.org in.rshd[13660]: connect from 10.68.32.5Aug 2 02:11:07 www.test.org in.rlogind[13659]: connect from 10.68.32.1

      从上面我们可以看到,在安装了Tcp_wrapper的主机上,系统的每一次连接,Tcp_wrapper都做了纪录,它的内容包括时间、服务、状态、ip等,对攻击这有很大的参考价值,不过,一定要记得清除日志了.

(3)rootkit工具:LRK

      Rootkit出现于二十世纪90年代初,它是攻击者用来隐藏自己的踪迹和保留root访问权限的工具.通常,攻击者通过远程攻击或者密码猜测获得系统的访问权限.接着,攻击者会在侵入的主机中安装rootkit,然后他会通过rootkit的后门检查系统,看是否有其他的用户登录,如果只有自己,攻击者就开始着手清理日志中的有关信息.通过rootkit的嗅探器获得其它系统的用户和密码之后,攻击者就会利用这些信息侵入其它的系统.

      如果攻击者能够正确地安装rootkit并合理地清理了日志文件,系统管理员就会很难察觉系统已经被侵入,直到某一天其它系统的管理员和他联系或者嗅探器的日志把磁盘全部填满,他才会察觉已经大祸临头了.不过,在系统恢复和清理过程中,大多数常用的命令例如ps、df和ls已经不可信了.许多rootkit中有一个叫做 FIX的程序,在安装rootkit之前,攻击者可以首先使用这个程序做一个系统二进制代码的快照,然后再安装替代程序.FIX能够根据原来的程序伪造替代程序的三个时间戳(atime、ctime、mtime)、date、permission、所属用户和所属用户组.如果攻击者能够准确地使用这些优秀的应用程序,并且在安装rootkit时行为谨慎,就会让系统管理员很难发现.

      下面我们介绍一个非常典型的针对Linux系统的LRK版本6.Linux Rootkit 6是一个开放源码的rootkit,经过多年的发展,Linux Rootkit的功能越来越完善,具有的特征也越来越多.下面我们简单地介绍一下Linux Rootkit包含的各种工具.

      首先是隐藏入侵者行踪的程序.为了隐藏入侵者的行踪,Linux Rootkit IV的作者可谓煞费心机,编写了许多系统命令的替代程序,使用这些程序代替原由的系统命令,来隐藏入侵者的行踪.这些程序包括:

      ls、find、du 这些程序会阻止显示入侵者的文件以及计算入侵者文件占用的空间.在编译之前,入侵者可以通过ROOTKIT_FILES_FILE设置自己的文件所处的位置,默认是/dev/ptyr.注意如果在编译时使用了SHOWFLAG选项,就可以使用ls -/命令列出所有的文件.这几个程序还能够自动隐藏所有名字为:ptyr、hack.dir和W4r3z的文件.
ps、top、pidof 这几个程序用来隐藏所有和入侵者相关的进程.

netstat 隐藏出/入指定IP地址或者端口的网络数据流量程.

killall 不会杀死被入侵者隐藏的进程.

ifconfig 如果入侵者启动了嗅探器,这个程序就阻止PROMISC标记的显示,使系统管理员难以发现网络接口已经处于混杂模式下.

crontab 隐藏有关攻击者的crontab条目.

tcpd 阻止向日志中记录某些连接.

syslogd 过滤掉日志中的某些连接信息.

      其次是后门程序.木马程序可以为本地用户提供后门;木马网络监控程序则可以为远程用户提供inetd、rsh、ssh等后门服务,具体因版本而异.随着版本的升级,Linux Rootkit IV的功能也越来越强大,特征也越来越丰富.一般包括如下网络服务程序:

chfn 提升本地普通用户权限的程序.运行chfn,在它提示输入新的用户名时,如果用户输入rookit密码,他的权限就被提升为root.

chsh 提升本地用户权限的程序.运行chsh,在它提示输入新的shell时,如果用户输入rootkit密码,他的权限就被提升为root.

passwd 和上面两个程序的作用相同.在提示你输入新密码时,如果输入rookit密码,权限就可以变成root.
login 允许使用任何帐户通过rootkit密码登录.如果使用root帐户登录被拒绝,可以尝试一下rewt.当使用后门时,这个程序还能够禁止记录命令的历史记录.

inetd 特洛伊inetd程序,为攻击者提供远程访问服务.

rshd 为攻击者提供远程shell服务.攻击者使用rsh -l rootkitpassword host command命令就可以启动一个远程root shell.
sshd 为攻击者提供ssh服务的后门程序.

再就是工具程序.所有不属于以上类型的程序都可以归如这个类型,它们实现一些诸如:日志清理、报文嗅探以及远程shell的端口绑定等功能,包括:

fix 文件属性伪造程序.

linsniffer 报文嗅探器程序.

sniffchk 一个简单的bash shell脚本,检查系统中是否正有一个嗅探器在运行.

login 允许使用任何帐户通过rootkit密码登录.如果使用root帐户登录被拒绝,可以尝试一下rewt.当使用后门时,这个程序还能够禁止记录命令的历史记录.

z2 utmp/wtmp/lastlog日志清理工具.可以删除utmp/wtmp/lastlog日志文件中有关某个用户名的所有条目.不过,如果用于Linux系统需要手工修改其源代码,设置日志文件的位置.

bindshell 在某个端口上绑定shell服务,默认端口是12497.为远程攻击者提供shell服务.

(4)netcat

这是一个简单而有用的工具,能够通过使用TCP或UDP协议的网络连接去读写数据.它被设计成一个稳定的后门工具,能够直接由其它程序和脚本轻松驱动.同时,它也是一个功能强大的网络调试和探测工具,能够建立你需要的几乎所有类型的网络连接,还有几个很有意思的内置功能.

2、查找Linux下的蛛丝马迹:日志工具

       对于高明的攻击者来说,进入系统后,还应了解自己的“蛛丝马迹”并清除这些痕迹,自然就要了解一些日志工具了.

(1)logcheck

       logchek 可以自动地检查日志文件,定期检查日志文件以发现违反安全规则以及异常的活动.它先把正常的日志信息剔除掉,把一些有问题的日志保留下来,然后把这些信息 email 给系统管理员.logcheck 用 logtail 程序记住上次已经读过的日志文件的位置,然后从这个位置开始处理新的日志信息.logcheck 主要由下面几个主要的文件:

logcheck.sh 可执行的脚本文件,记录logcheck检查那些日志文件等,我们可以把它加入crontab中定时运行.
logcheck.hacking 是logcheck 检查的模式文件.和下面的文件一起,按从上到下的顺序执行.这个文件表明了入侵活动的模式.
logcheck.violations 这个文件表示有问题,违背常理的活动的模式.优先级小于上面的那个模式文件.
logcheck.violations.ignore 这个文件和上面的logcheck.violations的优先是相对的,是我们所不关心的问题的模式文件.
logcheck.ignore 这是检查的最后一个模式文件.如果没有和前三个模式文件匹配,也没有匹配这个模式文件的话,则输出到报告中.
Logtail 记录日志文件信息.

Logcheck首次运行时读入相关的日志文件的所有内容,Logtail会在日志文件的目录下为每个关心的日志文件建立一个 logfile.offset 的偏移量文件,以便于下次检查时从这个偏移量开始检查.Logcheck执行时,将未被忽略的内容通过邮件的形式发送给 logcheck.sh 中 系统管理员指定的用户.

(2)logrotate

       一般Linux 发行版中都自带这个工具.它可以自动使日志循环,删除保存最久的日志,它的配置文件是 /etc/logrotate.conf,我们可以在这个文件中设置日志的循环周期、日志的备份数目以及如何备份日志等等.在/etc /logrotate.d目录下,包括一些工具的日志循环设置文件,如syslog等,在这些文件中指定了如何根据/etc /logrotate.conf做日志循环,也可以在这里面添加其他的文件以循环其他服务的日志.

(3)swatch

       swatch 是一个实时的日志监控工具,我们可以设置感兴趣的事件.Swatch 有两种运行方式:一种可以在检查日志完毕退出,另一种可以连续监视日志中的新信息.Swatch提供了许多通知方式,包括email、振铃、终端输出、多种颜色等等.安装前,必须确保系统支持perl.swatch 软件的重点是配置文件swatchmessage,这个文本文件告诉 swatch 需要监视什么日志,需要寻找什么触发器,和当触发时所要执行的动作.当swatch发现与swatchmessage中定义的触发器正则表达式相符时,它将执行在 swatchrc中定义的通知程序.

       当然,上面所介绍的软件只是Linux大海中的几只美丽的贝壳,随着越来越多的用户加入到Linux大军中,我们相信,优秀的Hack也将越来越多,这反过来也将促进Linux操作系统逐步走向成熟,我们拭目以待.

Tags: , ,

linux多用户之间的通信

[ 2008/10/07 12:02 | by selboo ]
Unix和Linux提供了多种方式让用户相互通信,它允许以文本的方式给某个用户或所有用户传递信息,而信息来源可以是文本文件或直接由键盘输入的内容。

(1)使用write发送消息

使用write命令可以向任何已登录同一系统的另一位用户发送消息,这时在对方用户终端上就会自动显示出信息,而对方也同样可以使用write 命令来回复消息,这样双方之间就能互相通信了。

write命令的格式如下:

write user-name

此处user-name是将要与之通信的用户名,可以使用who 命令来查看系统中已登陆的用户名。输入write命令后,即可进入发送消息状态,这时就可以通过键盘输入消息,回车即可向对方发送此条消息了。要想退出发送消息状态,可以使用“Ctrl + d”退出write 命令回到shell。

(2)使用talk进行双方对话

talk命令允许双方实现类似于MSN、QQ这样的实时对话,其命令格式如下:

talk user-name

当用户向另一用户发送对话请求,只有在对方同意接受对话请求,即对方也使用talk命令后,双方的对话才会建立。这时双方终端上都会显示 “[connect established]”,这样双方就可以从键盘输入文字,talk会把这些输入显示在对方的屏幕上,若任意一方按键就会退出对话状态。

(3)使用wall进行广播式消息传送

使用wall命令可以向所有用户广播通知信息,而所有登录系统的用户都可收到该消息。wall命令有以下几种格式:

wall

wall filename

wall “send a message to all the people!”

(4)使用mesg允许或拒绝接收消息

当一位用户正在全身心的投入某项工作的时候,可能会不想被另外一位用户用上述方式突然发送来的消息打断思路,那么就可使用mesg命令来设置是否允许接收由其它用户发来的信息。

mesg命令的格式如下:

mesg –n



mesg -y

其中,y表示允许接收信息,n 表示拒绝接收信息。如果mesg后面没有跟参数,则报告当前的许可状态。
Tags:

rpm安装总结

[ 2008/10/06 17:56 | by selboo ]
在RedHat Linux和Mandrake等兼容RedHat的发行版中,整个发行版都是利用RPM安装的。所以安装新软件的最好方

法是从网络上下载rpm包。
1)用RPM安装软件包,最简单的命令如下:

# rpm -ivh foo-1.0-l.i386.rpm (这里讲的软件包是foo-1.0-l.i386.rpm,以下都是)

foo####################

下面rpm就会输出该软件包的名称,并显示一个状态条。安装很简单。

2)拆除已安装的软件包
要反安装软件包foo,只需输入以下这行命令:

# rpm -e foo

注意:软件包名是foo,而不是rpm文件名"foo-1.0-l.i386.rpm"。

3)升级软件包
升级软件类似于安装软件:

# rpm -Uvh foo-2.0-l.i386.rpm

foo####################

用户要注意的是:rpm会自动反安装相应软件包的老版本。如果老版本软件的配置文件通新版本的不兼容,rpm会自动将其保存为另外一个文件,用户会看到下面的信息:

saving /etc/foo.conf as /etc/foo.conf.rpmsave

这样用户就可以自己手工去更改相应的配置文件。
另外如果用户要安装老版本的软件,用户就会看到下面的出错信息:

# rpm -Uvh foo-1.0-l.i386.rpm

foo packag foo-2.0-l(which is newer) is already installed

error:foo-1.0-l.i386.rpm cannot be installed

如果用户要抢行安装就使用-oldpackage参数。

4)查询软件包
用户可以用rpm -q在rpm的数据库中查询相应的软件,rpm会给出软件包的名称,版本,发布版本号,例如:

# rpm -q foo

foo-2.0-l

下面是查询时可以使用的特定参数:
-a 查询目前系统安装的所有软件包。
-f 文件名查询包括嘎文件的软件包。
-F 同-f参数,只是输入是标准输入(例如 find /usr/bin | rpm -qF)
-q 软件包名 : 查询该软件包
-Q 同-p参数,只是输入是标准输入(例如 find /mnt/cdrom/RedHat/RPMS | rpm -qQ)
下面是输出时的格式选择:
-i 显示软件包的名称,描述,发行,大小,编译日期,安装日期,开发人员等信息。
-l 显示软件包包含的文件
-s 显示软件包包含的文件目前的状态,只有两种状态:normal和missing
-d 显示软件包中的文档(如man,info,README等)
-c 显示软件包中的配置文件,这些文件一般是安装后需要用户手工修改的,例如:sendmail.cf,passwd,inittab等
如果用-v参数就可以得到类似于ls -l的输出

5)用rpm校验软件包
用户可以用rpm来校验已经安装的软件包,rpm可以校验文件大小、MD5校验码、文件权限、类型和属主等信息。
下面是校验时的参数说明:
-a 简单校验软件包中的文件是否存在
-b 校验软件包中的单个文件
-c 校验安装的所有软件包
-d 比较一个源软件包和已经安装的软件包

如果检验通过就没有任何出错信息,如果有出错信息,它的格式如下:出错信息是一个8位的字符串,如果是一个".",就代表没有问题,下面是相应的字符的意义:
5 MD5校验错
S 文件大小错
L 符号连接
T 文件修改时间错
D 设备文件错
U 用户名错
G 组名错
M 属性(包括改写权和文件类型)错
如果用户看到这些信息,最好重新安装或者手工修复。

rpm 实用技巧!
1)用户可以通过FTP来安装软件包。如果用户能够连上网络,想安装某个新的软件包时,可以直接用它的URL地址来安装:
比如:现在在ftp.linuxsir.com/pub/linux/redhat/RPMS/下有这个文件包:foo-1.0-1.i386.rpm,那就可以用这样的命令:

# rpm -i ftp.linuxsir.com/pub/linux/redhat/RPMS/foo-1.0-1.i386.rpm

来安装,也可以查询!

2)如果用户不小心巫山了几个文件,但不确定到底是那些文件,想对整个系统进行校验,以了解哪些部分可能已经损坏,可以用:

# rpm -Va

3)如果用户碰到一个人不出来的文件,想要知道它是属于那一个软件包的话,可以这样做:

# rpm -qf /usr/X11R6/bin/xjewel

结果会得到以下信息:
xjewel-1.6-1

4)如果用户得到一个新的RPM文件,却不清楚它的内容;或想了解某个文件包将会在系统里安装那些文件,可以这样做:

# rpm -qpi koules-1.2-2.i386.rpm

结果会获得很多信息!

ssh的企业级应用

[ 2008/09/28 21:55 | by selboo ]
一般在企业应用中,如果要远程连接到服务器,一般的做法都是先VPN连接到客户内网,然后再SSH到远程服务器,这样数据远程传输不仅有VPN的保护,还有SSH的保护,使数据传输更加安全。我们这里着重阐述SSH的认证配置。

SSH的认证不仅可以通过口令,还可以通过证书,当然还可以使用证书和口令相结合的认证方式,下面我将分别阐述各种认证的配置方法:

1.通过口令认证

第一步:安装相关软件包
使用命令 rpm -qa | grep openssh查看是否安装相关软件包。
[root@server ~]# rpm -qa | grep openssh
openssh-server-4.3p2-16.el5
openssh-4.3p2-16.el5
openssh-clients-4.3p2-16.el5
openssh-askpass-4.3p2-16.el5
如果没有,则安装以上软件包,当然也可以下载源码包,进行编译安装,具体方法这里就不多说了,不清楚的自加google一下。

第二步:配置SSH

#服务器端配置 /etc/ssh/sshd_config
#只考虑协议版本2
/usr/local/etc/ssh/sshd_config
#全局配置
VersionAddendum TecZm-20050505 #在telnet ip 22时只能看出openssh的版本,看不出OS
Protocol 2 #使用协议版本2
Port 22 #sshd监听22端口
ListenAddress 192.168.7.1 #sshd只监听目标ip为192.168.7.1的请求
AllowGroups wheel myguest #允许wheel组和myguest组的用户登录
AllowUsers teczm authen@192.168.8.5 #允许来自以上组的teczm用户和authen用户登录,
#且authen用户只能从主机192.168.8.5登录
#DenyGroups #拒绝登录的组,参数设置和AllowGroups一样
#DenyUsers #拒绝登录的用户,参数设置和AllowUsers一样
#AllowTcpForwarding yes #是否转发的TCP包都被允许。默认是 ``yes''。
LoginGraceTime 60 #60秒内客户端不能登录即登录超时,sshd切断连接。
KeyRegenerationInterval 1800 #1800秒(30分钟)后自动重新生成服务器的密匙。
MaxStartups 3 #设置同时发生的未验证的并发量,即同时可以有几个
UseDNS no #不使用DNS查询客户端。
PermitRootLogin no #不允许root登录,root可由wheel组用户登录后su。
X11Forwarding no #禁止用户运行远程主机上的X程序。
UseLogin yes #禁止X11Forwarding
#认证配置(口令认证、PAM认证、非对称密钥认证任选其一)
#口令认证
PubkeyAuthentication no #不使用非对称密钥认证
PasswordAuthentication yes #使用口令认证
PermitEmptyPasswords no #不允许使用空密码的用户登录
#PAM认证
PasswordAuthentication no #不使用口令认证
UsePAM #使用pam认证
ChallengeResponseAuthentication yes #允许挑战应答方式
#非对称密钥认证
PasswordAuthentication no #不使用口令认证
PubkeyAuthentication yes #使用非对称密钥认证
AuthorizedKeysFile .ssh/authorized_keys #用户认证使用的公钥

一般情况下,默认的SSH配置文件就可以满足口令认证需要。

第三步:开启SSH服务

使用命令开启当前的SSH服务:/etc/init.d/sshd start
使用命令使其开机自动运行:chkconfig sshd on

2.通过证书认证

在以上配置的基础上,为了使认证过程更加安全,还可以使用非对称密钥加密证书技术,步骤和说明如下:
第一步:生成非对称密钥
[root@server ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):#私钥存储目录
Enter passphrase (empty for no passphrase):password#私钥的认证密码
Enter same passphrase again:password#确认私钥的认证密码
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
19:49:2d:57:4d:a6:43:9b:23:f5:75:bd:db:9c:8a:21 root@server.redhat.com

第二步:拷贝公钥到服务器
[root@server ~]# ssh-copy-id root@192.168.20.26
The authenticity of host '192.168.20.26 (192.168.20.26)' can't be established.
RSA key fingerprint is 4c:73:36:e0:21:6d:0c:08:16:66:14:a1:30:26:cb:08.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.20.26' (RSA) to the list of known hosts.
root@192.168.20.26's password:sys_password#系统密码
Now try logging into the machine, with "ssh 'root@192.168.20.26'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

[root@server ~]#

第三步:测试非对称认证
[root@server ~]# ssh 192.168.20.26
Enter passphrase for key '/root/.ssh/id_rsa':password#私钥的认证密码
Last login: Tue Jul 22 09:22:40 2008 from 192.168.20.26
[root@server ~]#

3.证书和口令结合认证

在第二种方法中,如果默认非对称密钥的口令为空,则是只通过证书认证,如果设置了非对称密钥口令,则是证书和口令结合认证,当然这里的口令不是系统口令,是嵌套在密钥中的另外一个口令,可以起到双重保护的作用。

补充:在应用ssh证书认证的过程中,还有两个命令可以应用,
ssh-agent bash  #在bash环境下启用ssh代理服务
ssh-add   #将ssh密钥添加到内存中
这两个命令结合使用的作用就是避免每次通过SSH登录服务器时重复输入口令,当然这种也会造成一些不安全的因素,所以一般不使用。
本文出自 51CTO.COM技术博客

vsftp虚拟用户配置

[ 2008/09/27 22:16 | by selboo ]
ftp:vsftp  version 2.0.6  db4.6-util

1。安装
#apt-get install vsftp db4.6-util

2。建立虚拟用户使用目录
#mkdir -p /var/123
设置只允许ftp 访问
#chown ftp.root /var/123

3.创建用户数据库
#vim 123.txt
ludy (虚拟用户)
ludy (虚拟用户密码)
user1
user1
......等等。
格式为一行用户名,一行密码~~
生成数据库~
#db4.6_load -T -t hash -f 123.txt /etc/vsftpd_login.db
为了安全设置一下访问权限
#chmod 600 /etc/vsftpd_login.db

4.配置PAM文件
ubuntu apt安装vsftp默认是有一个PAM文件的,但是在里面添加会不生效不知道为什么,所以我新建/etc/pam.d/vsftpd.vu内容如下:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
我们建立的虚拟用户将采用PAM进行验证,这是通过/etc/vsftpd.conf文件中的 语句pam_service_name=vsftpd.vu来启用的。

5。配置/etc/vsftpd.conf
根据需要创建/etc/vsftpd.conf,一般要确保含有以下设置:
listen=YES
anonymous_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
chroot_local_user=YES
guest_enable=YES
guest_username=ftp
user_config_dir=/etc/vsftpd_user_conf
pam_service_name=vsftpd.vu
local_enable=YES
到现在为止,我们的虚拟用户都可以工作了,可是它们的根目录现在都是/home/ftp,权限也都一样。 那么怎么才能完成我们预定的目标呢?

6。配置/etc/vsftpd_user_conf
在上面的配置中,有这么一行
user_config_dir=/etc/vsftpd_user_conf
现在,我们要把各个用户的配置文件放到目录/etc/vsftpd_user_conf中
#mkdir /etc/vsftpd_user_conf
#cd /etc/vsftpd_user_conf
#vim ludy

加入
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/var/123
好了现在 ludy就用控制123 所有权限了。

7。/etc/init.d/vsftp restart 重启服务
ftp localhost 可以测试了。!
Tags: , ,
分页: 47/55 第一页 上页 42 43 44 45 46 47 48 49 50 51 下页 最后页 [ 显示模式: 摘要 | 列表 ]