<!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 -> 192.168.0.2 port 21<br>
0.0.0.0/0 port 50000 -> <samp>192.168.0.2</samp> port 50000<br>
0.0.0.0/0 port 50001 -> <samp>192.168.0.2</samp> port 50001<br>
0.0.0.0/0 port 50002 -> <samp>192.168.0.2</samp> port 50002<br>
0.0.0.0/0 port 50003 -> <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>