正在学习libcurl库的使用,想测试下libcurl里面关于ftp,telnet协议的用法,不过由于安全原因,RedHat 5.3里面现在已经是默认不开启ftp和telnet服务了。需要我们自己开启了。
(一)安装xinetdftp和telnet都是挂在xinetd服务下面,先要看看xinetd有没有安装,默认是没有安装的。
(二)修改ftp和telnet的配置文件# rpm -qa | grep xinetd
从执行结果可以看出来,系统默认是没有安装xinetd的,首先要安装xinetd,安装文件可以可以在RedHat的安装CD里面找到,xinetd-2.3.14-10.el5.i386.rpm。
# rpm -Uvh xinetd-2.3.14-10.el5.i386.rpm
warning: xinetd-2.3.14-10.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
1:xinetd ########################################### [100%]
[root@dhcp_host ~]# rpm -qa | grep xinetd
xinetd-2.3.14-10.el5 //可以看到已经安装成功
[root@dhcp_host ~]# service xinetd status
xinetd is stopped //使用service命令查看xinetd的状态,是关闭状态
[root@dhcp_host ~]# service xinetd start
Starting xinetd: [ OK ] //使用service命令开启xinetd
(三)“Unencrypted connection refused. Goodbye.”/etc/xinetd.d这个目录下面,保存的就是挂在xinetd下面各种服务的配置文件
#cd /etc/xinetd.d/
# ls
chargen-dgram daytime-dgram discard-stream eklogin klogin ktalk time-dgram
chargen-stream daytime-stream echo-dgram ekrb5-telnet krb5-telnet rsync time-stream
cvs discard-dgram echo-stream gssftp kshell tcpmux-server编辑krb5-telnet和gssftp两个文件,将disable = yes,改为disable = no,然后重新启动xinetd,修改配置文件之后需要重新启动服务。
# service xinetd restart
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]
(四)ftp登陆时出现”530 must perform authentication before identifying user”的错误提示在/etc/xinetd.d/目录下面有ekrb5-telnet和krb5-telnet这两个telnet,有什么区别呢?ekrb5-telnet是一个加密的telnet服务,假如打开,则默认telnet是加密的,于是我们登陆的就是就会出现这样的错误,因此需要关闭这个服务,修改/etc/xinetd.d/ekrb5-telnet里面的disable = yes,然后重新启动xinetd。
在使用Kerberos 5来认证和加密telnet会话前,需要先搭建一个Kerberos服务器。
(五)开启root用户的telnet权限修改/etc/xinetd.d/gssftp文件,将server_args后面的-a删掉,然后重新启动xinetd服务。
service ftp
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/kerberos/sbin/ftpd
#server_args = -l -a
server_args = -l
log_on_failure += USERID
disable = no
}
(1)确认/etc/pam.d/login中的pam_securetty.so行,并将其注释掉"#"
[root@rhel52 /]# vim /etc/pam.d/login
(2)通telnet控制台,在/etc/securetty文件中设定
#%PAM-1.0
#auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
auth include system-auth
account required pam_nologin.so
account include system-auth
password include system-auth
# pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session include system-auth
session required pam_loginuid.so
session optional pam_console.so
# pam_selinux.so open should only be followed by sessions to be executed in the
user context
session required pam_selinux.so open
session optional pam_keyinit.so force revoke
[root@rhel52 /]# vim /etc/securetty
console
vc/1
vc/2
vc/3
tty1
tty2
tty3
tty4
tty5
...
pts/0
pts/1
pts/2
pts/3
pts/4
在文件后面追加"pts/0....pts/n",参考资料上有错,需要从pts/0开始添加,假如需要登陆的人很多,后面的n就要比较大,否则超过了也将无法登陆。