<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=UTF-8" http-equiv="Content-Type">
<title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
<tt>on 01/09/2009 04:12 PM Thanasis wrote the following:</tt>
<blockquote cite="mid:49675B39.7090507@asyr.hopto.org" type="cite">
<meta content="text/html;charset=ISO-8859-7" http-equiv="Content-Type">
<title></title>
<tt>Παρατηρώντας τα αναφερόμενα στο <a moz-do-not-send="true"
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 moz-do-not-send="true" class="moz-txt-link-freetext"
href="ftp://fpt:passwd-1@Server/">ftp://ftp:passwd-1@Server/</a><br>
<br>
wget <a moz-do-not-send="true" class="moz-txt-link-freetext"
href="ftp://fpt:passwd-1@Server/file1">ftp://ftp: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></blockquote>
<tt>Good news:<br>
1) Τελικά παίζει και με τους browsers διότι μάλλον το πρόβλημα ήταν το
αυστηρό SPI (Statefull Packet Inspection) στον firewall του ADSL router
μου.<br>
Στο log είδα ότι έκοβε κάποια πακέτα (καλώς ή κακώς):<br>
<br>
[INFO] Fri Jan 09 16:06:38 2009 Blocked outgoing TCP packet from
94.71.176.184:14923 to 77.49.207.76:21 with unexpected acknowledgement
2310134656 (expected 2310002343 to 2310134655)<br>
<br>
Οπότε ελάττωσα λίγο τα restrictions στον router, και ο firefox εὶδε τα
αρχεία και κατέβαζε από τον vsftpd μια χαρά. :-)<br>
<br>
2) Επίσης, για όσους έχουν firewall στον *server*, πιθανόν να χρειαστεί
να ανοίξουν σ`αυτόν και άλλες θύρες (πχ την 20, πέραν της 21 και των
50000-50003)<br>
3) Οι θύρες 50000-50003, επιτρέπουν το maximum 4 ταυτόχρονες συνδέσεις.
Άν θέλουμε περισσότερες θα πρέπει να αυξήσουμε το εύρος (αντίστοιχα και
στο vsftpd.conf), πχ 50000 έως 50100, αλλά αυτό για επαγγελματικές
γραμμές, οι ADSL δεν έχουν και πολύ upload για να δικαιολογήσουν πολλές
ταυτόχρονες συνδέσεις.<br>
<br>
</tt><tt><br>
</tt>
</body>
</html>