FTP(vsftpd)のポート変更作業を行ったので、vsftpdのポート変更についてまとめておきます。
vsftpdのポート番号変更設定
FTPは、コントロールコネクション(待ち受け)ポート(デフォルト21番ポート)とデータコネクション(デフォルト20番ポート)ポートの2つのポートを使用します。
このポートの、コントロール(待ち受け)ポート番号を変更し、パッシブ(PASV)モードで、通信するように変更して、FTPの通信ポートを変更します。
設定としては、以下のように設定します。
# vi /etc/vsftpd/vsftpd.conf
listen_port=50021
pasv_enable=YES
pasv_min_port=50020
pasv_max_port=50020
pasv_address={global_ip_address}
ここでは、コントロール(待ち受け)ポート番号を「50021」に、データポート番号を「50020-50020」に設定しました。環境によってポート番号を変更したり、データポートの範囲を広げたりすればいいかと。
自由に利用できるポート番号 (49152–65535)
この範囲のポート番号は、自由に利用できるポート番号として割り当てられている。
多くのLinuxでは、 /proc/sys/net/ipv4/ip_local_port_range でこのポート番号の範囲が32768から61000までと設定されている。また、FreeBSDではnet.inet.ip.portrange(設定ファイル上は/etc/sysctl.conf)にて49152から65535の範囲が設定されている。
vsftpd を再起動して設定を適用します。
# /etc/init.d/vsftpd restart
ファイアウォール(パケットフィルタリング)の設定を行います。
# iptables -L -n --line-numbers # iptables -I INPUT -p tcp --dport 50021 -j ACCEPT # iptables -I INPUT -p tcp --dport 50020:50020 -j ACCEPT
ファイアウォールの設定を適用します。
# /etc/init.d/iptables save # /etc/init.d/iptables restart
これで完了です。
あとは、FTPクライアント等でPASVモードで通信するように設定して使います。
参考
- Manpage of VSFTPD.CONF
http://www.linux.or.jp/JM/html/vsftpd/man5/vsftpd.conf.5.html







