<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-7" http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
<tt>Παρατηρώντας τα αναφερόμενα στο
<a class="moz-txt-link-freetext"
 href="http://www.westworks.ch/%7Echris/netbsd/NetBSD-NAT-FTP-server.html">http://www.westworks.ch/~chris/netbsd/NetBSD-NAT-FTP-server.html</a><br>
και δοκιμάζοντας τώρα να το μεταφέρω σε linux, διαπιστώνω, ότι δεν έχει
κάτι το ιδιαίτερο από πλευράς αναγκών σε iptables ή κάτι άλλο
"linux-specific", και μάλιστα άν δεν
υπάρχει firewall στον ftp server, δεν χρειάζεται καθόλου η χρήση
iptables, αλλά για σίγουρα, μόνο οι δοκιμές θα δείξουν. <span
 class="moz-smiley-s1"><span> :-)  </span></span><br>
Πάντως, μετά από δοκιμή με το </tt><tt>wget, που έχει default passive
mode,
παίζει, αλλά με firefox (από windoze μηχάνημα) και με ie δεν έπαιξε και
δεν ξέρω γιατί.</tt><tt><br>
<br>
Ιδού το setup:<br>
<br>
</tt>
<pre><tt>                 _____
  +--------+   _(    _)        +-------------+   +-----------------+
  | Client |--(____    )-------| ADSL router |---| vsftpd (Server) |
  +--------+    (_(___)        +-------------+   +-----------------+

                INTERNET                           (192.168.0.2)

</tt></pre>
<p><tt>1) vsftpd server configuration:</tt></p>
<p><tt>Server vsftpd # pwd<br>
/etc/vsftpd<br>
Server vsftpd # ls<br>
email_passwords  vsftpd.conf <br>
Server vsftpd # cat vsftpd.conf</tt></p>
<p><tt>pasv_min_port=50000<br>
pasv_max_port=50003<br>
anonymous_enable=YES<br>
banner_file=/etc/WELCOME_BANNER<br>
connect_from_port_20=YES<br>
dirmessage_enable=YES<br>
nopriv_user=ftpsecure<br>
xferlog_enable=YES<br>
<br>
# for anonymous uploads with specific email<br>
write_enable=YES<br>
anon_upload_enable=YES<br>
anon_other_write_enable=YES<br>
anon_world_readable_only=NO<br>
hide_ids=YES<br>
secure_email_list_enable=YES<br>
email_password_file=/etc/vsftpd/email_passwords</tt></p>
<p><tt>Server vsftpd # cat email_passwords<br>
passwd-1<br>
passwd-2<br>
passwd-3<br>
...<br>
</tt></p>
<p><tt>2) Στον ADSL router κάνουμε forward τις θύρες (tcp):  <br>
0.0.0.0/0 port 21       -&gt; 192.168.0.2 port 21<br>
0.0.0.0/0 port 50000 -&gt; <samp>192.168.0.2</samp> port 50000<br>
0.0.0.0/0 port 50001 -&gt; <samp>192.168.0.2</samp> port 50001<br>
0.0.0.0/0 port 50002 -&gt; <samp>192.168.0.2</samp> port 50002<br>
0.0.0.0/0 port 50003 -&gt; <samp>192.168.0.2</samp> port 50003<br>
</tt></p>
<p><tt>3) ftp home directory permissions:<br>
</tt></p>
<p><tt>Server home # pwd<br>
/home<br>
Server home # ls -ld ftp<br>
drwxr-xr-x 6 root ftp 58 2008-12-08 14:29 ftp<br>
Server home # cd ftp<br>
Server ftp # ls -ld uploads/<br>
drwxr-xr-x 2 ftp root 21 2008-12-29 11:57 uploads/<br>
Server ftp # <br>
<br>
</tt></p>
<tt>4) Τέλος για δοκιμή, από κάποια εξωτερική IP (από την πλευρά του
internet)<br>
Δοκιμάζουμε κάποιες url, πχ:<br>
<br>
<a class="moz-txt-link-freetext" href="ftp://fpt:passwd-1@Server/">ftp://fpt:passwd-1@Server/</a><br>
<br>
wget <a class="moz-txt-link-freetext"
 href="ftp://fpt:passwd-1@Server/file1">ftp://fpt:passwd-1@Server/file1</a><br>
<br>
5) Υπ`όψιν</tt><tt> ότι </tt><tt>στο περιγραφέν setup</tt><tt>:<br>
α) δεν έχουμε σηκωμένο firewall στον
Server. Διαφορετικά θα πρέπει να ανοίξουμε στον firewall τις ίδιες
θύρες (21,
και 50000 έως 50003)<br>
β) Υπάρχει ο χρήστης </tt><tt>ftpsecure (</tt><tt>nopriv_user=ftpsecure),
ο οποίος έχει για shell το /bin/false.<br>
γ) Δεν μπορούμε να κάνουμε anonymous login (λόγω των </tt><tt>secure_email_list_enable=YES
και<br>
email_password_file=/etc/vsftpd/email_passwords</tt><tt> στο config).<br>
</tt><tt>δ) τον vsftpd τον τρέχουμε μέσω xinetd (με το εξής
configuration):<br>
<br>
# cat /etc/xinetd.conf  |grep -v \#<br>
<br>
defaults<br>
{<br>
<br>
    log_type    = SYSLOG daemon info <br>
    log_on_failure    = HOST<br>
    log_on_success    = PID HOST DURATION EXIT<br>
<br>
    cps        = 50 10<br>
    instances    = 50<br>
    per_source    = 10<br>
<br>
    v6only        = no<br>
<br>
    groups        = yes<br>
    umask        = 002<br>
<br>
}<br>
<br>
includedir /etc/xinetd.d<br>
<br>
# cat /etc/xinetd.d/vsftpd |grep -v \#<br>
<br>
service ftp<br>
{<br>
    socket_type     = stream<br>
    wait            = no<br>
    user            = root<br>
    server          = /usr/sbin/vsftpd<br>
    server_args     = /etc/vsftpd/vsftpd.conf<br>
    log_on_success  += DURATION <br>
    nice            = 10<br>
    disable         = no<br>
}<br>
<br>
</tt><tt>6) Αυτά...<span class="moz-smiley-s1"><span> :-) </span></span><br>
Άν θέλει κάποιος
άς δοκιμάσει κάτι τέτοιο, να μας πεί τις εντυπώσεις του.</tt><tt><br>
</tt>
</body>
</html>