为了配置 Open Suse Linux 11.1 的 FTP Server,今天几乎折腾了一天,现在算是小有所获吧,写写自己的过程。
首先在安装 SUSE 的过程中,software 部分选上 File Server,这部分包括 FTP Server。当然喽,在YaST中安装这个也可以。安装完Linux之后,打开 YaST,在 network service 中选择 FTP Server。然后在 Start-up 页中选择 "Service Start" 为 "When Booting"。在某些时候,可能由于Firewall的关系,其它的电脑不能通过网络访问这个FTP server,这个时候需要在 Expert Settings 页中,选择 "Open Port in Firewall",然后重启 FTP server 就可以了。
在这个步骤之前,学习了老半天 /etc/xinetd.d 目录下的文件,学习如何修改这个文件来启动 ftp services,但总是失败,不过也小有收获,大致知道了这些文件都是做这个用的,在这儿写下来,以备将来参考。
linux中,/etc/xinetd.d 目录中各文件的设定
在由 super deamon 管理的服务一般是在 /etc/xinetd.d 中设置参数,在启动时,会读取 /etc/xinetd.conf 中的预设参数,但是我们可以在 /ect/xinetd.d 中更改预设的参数。
在/etc/xinetd.d 中参数档案的内容都类似于:
---------------------------------------------------------------------------------------------
service <service_name>
{
<attributte> <assign_op> <value> <value>.......
............
}
-------------------------------------------------------------------------------------------
第一行一定都有一个 service,至于那个 <service_name> 里面的内容,则与 /etc/services 有关,因为它可以对照着 /etc/services内的名称与 port number 来决定所要启用的 port 是哪个。然后相关的参数就在两个大括号中间。 attribute 是一些 xinetd 的管理参数,assign_op 则是参数的设定方法。assign_op 的主要设定形式为:
= : 表示后面的设定参数就是这样的
+= :表示后面的设定为“在原来的设定里加上新的参数”
-= :表示后面的设定为”在原来的参数舍弃这里输入的参数“
下面是相关说明:
一般设定项目:
disable yes/no
允许该 server可以执行或者不能执行。如果我想要启动某个服务,则应 设定为: disable = no
socket_tpye stream/dgram/raw
stream为联机机制较为可靠的TCP包,若为UDP则使用dgram机制。raw代表server需要与IP直接对谈。例如:telnet 使TCP:
socket_type = stream
protocol tcp/udp/......
这个东西是说在联机时使用的是哪一种协议。各个协议的代号 可以参考 /etc/protocols内容。此外,除非是你自己设定的服务,否则这个可以不用设定
wait yes/no
这就是Multi-threaded 与single-threaded的方式,即如果同时有多人请求服务,是同时进行服务个还是按顺序一个一个的服务。 如果允许同时,可设为: wait = no
user UID/root
如果服务启动者不要以root为主的话,那么这个地方就可以改变为其它 的使用者,例如 nobody 。此外,这个UID必须存在于 /etc/passwd中。
group GID
同user,只是这个GID也必须存在于 /etc/group中
instance number/UNLIMITED
这个是在同一时间之内,同一个服务可以允许的联机数目,可以 写入一个数字进行控制,也可以使用UNLIMITED不限制上限。
nice -19~19
设置该程序的优先级,数字越小(负值)越先被执行
server program(完整路径)
这个就是指出这个服务的启动程序:例如要启动telnet的话,可以输入: server = /usr/bin/telnet
server_args program的一些参数
这里就是在 server那里需要的一些参数
log_on_success PID/HOST/USERID/EXIT/DURATION
在成功登入之后,需记录的项目: PID 为记录该server启动时的process ID,HOST为远程主机的IP,USERID为登入者的账号,EXIT为离开的时候记录的项目,DURATION为该使用者使用此服务多久。
log_on_failure HOST/USERID/ATTEMPT/RECORD
在登入失败后被 syslog记录的项目: HOST为远程主机的IP,USERID为登入者账号,ATTEMPT为记录登入者的企图为何,RECORD为记录远程主机的信息以及为何本机server不能启动的原因,主要有login,shell,exec,finger等指令可以使用在这里 (基本上,可以在 /etc/hosts.allow 或/etc/hosts.deny书写内容)。
高级设定项目:
env 'name=value'
这个项目可以让你设定环境变量
port number
这里可以设定不同的服务与对应的port,但请记住你的port与服务名称必 须与 /etc/services 内记载的相同才行!
redirect IP_Address port
将client端对我们的要求,转到另一部主机上去。那个IP_Address 即为远程主机的IP。
includedir directory
表示引入此目录底下的所有档案到/etc/xinetd.conf
安全控制项目:
bind IP_Address
这个是设定“允许使用此一服务的适配卡”的意思。即如果你的LINUX主机上有 两个IP,你只想让IP1可以使用此一服务,但IP2不能,这里就可以将IP1写入。
interface IP_Address
与bind相同
only_from 0.0.0.0或192.168.1.0/24 或host_name 或domain_name
这东西用在安全机制上面,也就是管制“只有这里面规定的IP或者主机名称可以登入”!如果是0.0.0.0则表示所有主机都可以登入,如果是192.168.1.0/24,则为192.168.1.1~192.168.1.255之间的可登入。另外也可以选择 domainname,例如,.ev.ncku.edu.tw,则为该域内主机可登入。
no_access 同上
跟only_from差不多,只是表示为“不可以”登入的主机
access_times 00:00-12:00/HH:MM-HH:MM
这个项目在设定“该server启动的时间“,是使用24小时设定。例如你的ftp要在8点到16点开放的话,就是: 08:00-16:00。
umask 000/777/022
设定使用者建立目录或档案的时候默认的属性。系统建议值为022。