ファイアウォールが有効になっているLinuxクライアントPCからのFTPアクセスを修正
今日は、LinuxでのFTPアクセスに関する私の個人的な経験を共有したいと思います。 マイクロソフトの新しいオペレーティングシステムのおかげで、日常の使用には適さないと思いますが、数年前にLinuxに切り替えました。 ホームネットワークでFTPサーバーを実行していますが、実行中のクライアントPCからFTPサーバーにアクセスできませんでした インバウンド接続をブロックするファイアウォールルールがあるLinux、つまりINPUTポリシーがREJECTに設定されている iptables。 これが私が問題を修正した方法です。
クライアントマシンとサーバーマシンの両方でOUTPUTポリシーがACCEPTであると想定しています。
解決策#1。 カーネルモジュールnf_conntrack_ftpを使用します
カーネルモジュールnf_conntrack_ftpを使用すると、接続を確立するたびに、FTPサーバーに必要なポートへのアクセスのブロックを自動的に解除できます。 このモジュールの唯一の要件は、クライアントPCのiptablesルール(通常は/etc/iptables/iptables.rules)の次の行です。
$ IPT -A INPUT -i eth0 -m state --state RELATED、ESTABLISHED -j ACCEPT
eth0はネットワークデバイス名です。
次に、nf_conntrack_ftpがロードされていない場合は、ロードする必要があります。 クライアントPCでrootとして次のコマンドを実行します
#modprobe nf_conntrack_ftp
サーバーがデフォルト以外のポート(ポート21以外)を使用している場合は、次のコマンドを使用します。
#modprobe nf_conntrack_ftpports = your_port
これにより、FTPサーバーとクライアントソフトウェアの間に必要なすべてのポートとの自動接続が提供されます。 これは、PCを再起動するまで機能します。
この変更を永続的にするには、新しいテキストファイル/etc/modules-load.d/conntrack_ftp.confを作成し、このファイルに次の行を追加する必要があります。
nf_conntrack_ftp
デフォルト以外のサーバーポートの場合は、次の内容の追加ファイル/etc/modprobe.d/conntrack_ftp.confを作成する必要があります。
オプションnf_conntrack_ftpポート=
これで十分です。
解決策#2。 固定パッシブポート範囲を使用する
nf_conntrack_ftpモジュールを使用できない場合は、FTPサーバーソフトウェアの固定ポート範囲を設定して、クライアントPCで開くことができます。 たとえば、vsftpdアプリでこれを行う方法は次のとおりです。
- vsftpdの構成ファイル(通常は/etc/vsftpd.conf)に、次の行を追加します。
pasv_min_port = 5500。 pasv_max_port = 6500
これはサーバー側で実行する必要があります。 その後、vsftpdを再起動する必要があります。
- クライアントPCのiptablesルール(通常は/etc/iptables/iptables.rules)に、次のルールを追加します。
$ IPT -A INPUT -p tcp -s
--dport 5500:6500 -j ACCEPT - 次のようにiptablesルールを適用します。
#iptables-restore etc / iptables / iptables.rules
それでおしまい。