2015年4月28日火曜日

ftpd

vsftpdは導入が困難。
で openbsd 純正ftpdを導入。

これは
http://www.openbsd.org/faq/faq10.html#vipw
をみれば ftpdの導入は容易。

# echo /usr/bin/false >> /etc/shells
# 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 [1002]: Enter
Login group ftp [ftp]: Enter
Login group is ``ftp''. Invite ftp into other groups: guest no 
[no]: Enter
Login class authpf daemon default staff [default]: Enter
Enter password []: Enter
Disable password logins for the user? (y/n) [n]: y

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

# ./comment-out.bat /etc/rc.conf.local                                        
dhcpd_flags=""  #NO             # for normal use: ""
ntpd_flags=""   #NO             # for normal use: ""
ftpd_flags="-llUSA"


 Users in a login class with the ftp-chroot variable set are automatically chrooted.
 Additionally, you can add a username to the file /etc/ftpchroot to chroot those usernames.
 だけ覚えていけばよい。

普通に ユーザー ftp-1をつくってここにロウロクすれば
chroot される。
IDとパスワードがついてくる。
lftp OB -i ftp-1 てかんじ。

lftp OB だと /home/ftpにはいっていく。





問題はこれからで
opebsdをインターネットに晒すftpサーバーするには、
http://www.openbsd.org/faq/pf/ftp.html
をみないとできない。

インターネットの場合は 普通は1台のマシンだけだから
PF is running on the FTP server itself なので


 インターネット---------router------------------------------linux(実験用)
                                       |
                                     sis0 OpenBSD ne3--intraet      


from linux, lftp OpenBSD -u joe

 int_if="ne3"
ext="sis0"
tcp_services="{ 22, 113 }"
icmp_types="echoreq"
set block-policy return
set loginterface $ext
set skip on lo
match out on $ext inet from !($ext:network) to any nat-to ($ext:0)
block in log
pass out quick
antispoof quick for { lo $int_if }
pass in on $ext inet proto tcp from any to ($ext) port $tcp_services
pass in inet proto icmp all icmp-type $icmp_types
pass in on $int_if
pass in on $ext proto tcp to port 21
pass in on $ext proto tcp to port > 49151

くらいでできる。








0 件のコメント:

コメントを投稿