日历

2019年九月
« 5月    
 1
2345678
9101112131415
16171819202122
23242526272829
30  

最近评论

    OPENBSD

    配置匿名FTP服务

    使用ftp帐号登陆时,ftp帐号没有有效的密码,设定ftp登录后的目录是/home/ftp,ftp登录后使用的shell是/usr/bin/false,需要将/usr/bin/false添加到/etc/shells中,执行以下命令:
    # echo /usr/bin/false >> /etc/shells
    首先添加一个ftp帐号,
    # adduser
    Use option “-silent” if you don’t want to see all warnings and questions.

    Reading /etc/shells
    Check /etc/master.passwd
    Check /etc/group

    Ok, let’s go.
    Don’t worry about mistakes. There will be a chance later to correct any input.
    Enter username []: ftp
    Enter full name []: anonymous ftp
    Enter shell csh false ksh nologin sh [ksh]: false
    Uid [1001]:
    Login group ftp [ftp]:
    Login group is “ftp”. Invite ftp into other groups: guest no
    [no]: no
    Login class authpf bgpd daemon default staff [default]:
    Enter password []:
    Set the password so that user cannot logon? (y/n) [n]: y

    Name:        ftp
    Password:    ****
    Fullname:    anonymous ftp
    Uid:         1001
    Gid:         1001 (ftp)
    Groups:      ftp
    Login Class: default
    HOME:        /home/yxg/ftp
    Shell:       /usr/bin/false
    OK? (y/n) [y]: y
    Added user “ftp”
    Copy files from /etc/skel to /home/yxg/ftp
    Add another user? (y/n) [y]: n
    Goodbye!

    建立目录:
    # mkdir /home/ftp
    # mkdir /home/ftp/pub
    # chmod 555 ftp
    # chmod 555 ftp/pub
    # ls -laR ftp      
    total 12
    dr-xr-xr-x  3 root  ftp    512 Jan 29 16:08 .
    drwxr-xr-x  4 root  wheel  512 Jan 29 16:08 ..
    dr-xr-xr-x  2 root  ftp    512 Jan 29 16:08 pub

    ftp/pub:
    total 8
    dr-xr-xr-x  2 root  ftp  512 Jan 29 16:08 .
    dr-xr-xr-x  3 root  ftp  512 Jan 29 16:08 ..
    启动服务和登陆
    这里使用/etc/inetd.conf来配置ftp服务
    ftp             stream  tcp     nowait  root    /usr/libexec/ftpd       ftpd -US
    这里ftp的默认启动参数是-US,它将登录信息记录在/var/log/ftpd,并发连接数记录在/var/run/utmp,如果不想本机用户登录,而只运行一个匿名ftp,可以使用-A参数,使用-ll参数可以在syslog内记录每一条连接的消息:
    ftp             stream  tcp     nowait  root    /usr/libexec/ftpd       ftpd -llAUS
    重新启动inetd后登陆ftp:
    # /etc/rc.d/inetd restart
    inetd(ok)
    inetd(ok)
    # ftp localhost
    Trying 127.0.0.1…
    Connected to localhost.
    220 myfreelinux.localdomain FTP server ready.
    Name (localhost:root): ftp
    331 Guest login ok, send your email address as password.
    Password:
    230 Guest login ok, access restrictions apply.
    Remote system type is UNIX.
    Using binary mode to transfer files.
    ftp> ls
    150 Opening ASCII mode data connection for ‘/bin/ls’.
    total 24
    -rw-r–r–  1 1001  1001   22 Jan 29 15:57 .Xdefaults
    -rw-r–r–  1 1001  1001  773 Jan 29 15:57 .cshrc
    -rw-r–r–  1 1001  1001  398 Jan 29 15:57 .login
    -rw-r–r–  1 1001  1001  113 Jan 29 15:57 .mailrc
    -rw-r–r–  1 1001  1001  218 Jan 29 15:57 .profile
    drwx——  2 1001  1001  512 Jan 29 15:57 .ssh
    226 Transfer complete.
    NOTE:如果ftp服务器的流量很大,就不能使用inetd.conf来启动ftp服务了,而是要使用/etc/rc.conf文件中的ftpd_flag设置,并添加-D参数,来启动ftp服务,这样启动节省系统资源。
    首先注释掉inetd.conf的ftp配置项:
    #ftp            stream  tcp     nowait  root    /usr/libexec/ftpd       ftpd -llUSA
    # /etc/rc.d/inetd restart 
    其次,设置/etc/rc.conf中的ftp配置项:
    # Set to NO if ftpd is running out of inetd
    #ftpd_flags=NO          # for non-inetd use: “-D”
    ftpd_flags=”-DllUSA”            # for non-inetd use: “-D”
    启动服务:
    # /etc/rc.d/ftpd start
    登陆ftp就行了。登陆信息和使用inetd.conf配置时显示的信息一样。
    其他相关文件:
    /etc/ftpwelcome:为用户首次访问ftp时显示的欢迎信息
    /etc/motd:      登陆成功后显示的信息
    .message:  可以在任何一个目录中放置一个.message文件,用户首次进入这个目录后显示这个文件的内容。

    评论已关闭。