こんにちは。
iptablesの学習でテスト用のFWサーバーと2台のWebサーバーをつくりました。
いまはForwardでアクセスごとに転送先を振り分ける実験をしています。
FTPのForward設定でわからないことがあるので質問させてください。
やりたいこと:
ip_conntrack_ftpを組み込めばiptablesにいちいちパッシブ通信の使用ポートすべてを指定しなくても、モジュールが自動で制御してくれるという情報をネットで見かけ、それをやってみようと考えています。ところがどうがんばってもFTPのパッシブモードがつながりません。FTP以外のサービス、たとえばDNS, NTP, HTTP等のForwardは問題なく行えています。
環境:
FWサーバー → CentOS6 iptablesで外部からのアクセスをブロックしたり、振り分けたり。
WEBサーバー → CentOS6 apacheとvsftpdでWebサーバーを構成。iptables無効です。
ルーター → 業務用ですがファイアウォール等はすべて無効になっています。
111.222.333.0はグローバルIPアドレスです。
192.168.1.0はローカルIPアドレスです。
-eth0(WEB_SERVER1)
| 192.168.1.2(→111.222.333.2)
(ONU)-(ROUTER)-eth0(FW_SERVER)eth1----|
111.222.333.1(eth0) |
111.222.333.2(eth0:1) -eth0(WEB_SERVER2)
111.222.333.3(eth0:2) 192.168.1.3(→111.222.333.3)
192.168.1.1(eth1)
FWサーバーのiptable設定:
net.ipv4.ip_forward = 1
ip_conntrack_ftpモジュール有効
ip_nat_ftpモジュール有効
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
.
.(一部省略)
.
# HTTP
iptables -A FORWARD -p tcp -i eth0 -o eth1 -m multiport --dport 80,443 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp -i eth1 -o eth0 -m multiport --sport 80,443 -m state --state ESTABLISHED,RELATED -j ACCEPT
# FTP(ここをどうしたらいいのかわからない)
iptables -A FORWARD -p tcp --dport 21 -j ACCEPT
iptables -A FORWARD -p tcp --sport 21 -j ACCEPT
# Webserver1
iptables -t nat -A PREROUTING -i eth0 -d 111.222.333.2 -j DNAT --to-destination 192.168.1.2
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.2 -j SNAT --to-source 111.222.333.2
# Webserver2
iptables -t nat -A PREROUTING -i eth0 -d 111.222.333.3 -j DNAT --to-destination 192.168.1.3
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.3 -j SNAT --to-source 111.222.333.3
上記設定でFTPのForward部分をmultiportにしてポート20を入れたり除いたり、NEWやESTABLISHEDやRELATEDを入れたり消したり、いろいろ試行錯誤していますがFilezillaで下のようなエラーがでます。
PASV
レスポンス:227 Entering Passive Mode (111,222,333,2,92,226).
コマンド:LIST
エラー:接続タイムアウト
エラー:ディレクトリ一覧表示の取り出しに失敗しました
説明が長くて恐縮ですがよろしくお願いします。
<(_ _)>
No.1ベストアンサー
- 回答日時:
うーん。
こうしたらどうでしょう。# HTTP
iptables -A FORWARD -p tcp -i eth0 -o eth1 -m multiport --dport 80,443 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp -i eth1 -o eth0 -m multiport --sport 80,443 -m state --state ESTABLISHED,RELATED -j ACCEPT
# FTP(ここをどうしたらいいのかわからない)
iptables -A FORWARD -p tcp --dport 21 -j ACCEPT
iptables -A FORWARD -p tcp --sport 21 -j ACCEPT
↓
iptables -A FORWARD -p tcp -m state --state ESTABLISHED,RELATED -jACCEPT (1)
iptables -A FORWARD -i eth0 -o eth1 -p tcp -m state --state NEW -m multiport --dport 21,80,443 -j ACCEPT (2)
まずは上の2行(1)(2)でHTTP通信ができる事を確認して欲しい。なぜこれでうまくいくかというと、eth0から入ってきてeth1に出ていく80番への接続要求パケットは(2)で許可されるが、そこからの戻りパケットならびにその後の通信は(1)で許可される(ESTABLISHEDステート)。
その後でFTPの検証をしましょう。まず、FTPコネクションはHTTPと同じく(2)から(1)のコンボで通信できる。さらに、(1)のstateにRELATEDというものを加える(アンドip_conntrack_ftpとip_nat_ftp)事でFTP-DATAコネクションもいける、はず。パッシブFTPでもアクティブFTPでもいける、はず。
セキュリティのためには(2)はもう少し入れた方が良い。
iptables -A FORWARD -i eth0 -o eth1 -p tcp -d 192.168.1.2 -m state --state NEW -m multiport --dport 21,80,443 -j ACCEPT (2)'
iptables -A FORWARD -i eth0 -o eth1 -p tcp -d 192.168.1.3 -m state --state NEW -m multiport --dport 21,80,443 -j ACCEPT (2)''
あて先IPアドレスを指定する事で、192.168.1.2と192.168.1.3以外のノードを192.168.1.0のセグメントに接続した場合でも2と3以外の80番とかにはインターネットから到達させないようにするのだ。
ここで指定するのはローカルIPアドレスだ。なぜかというとfilterテーブルのFORWARDチェインに到達したパケットは先にnatテーブルのPREROUTINGチェインにてDNATされているからだ。このようにiptablesはチェインの順番を意識して組み立てないといけない事も多いのでチェインの流れを調べておくと良いだろう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux Ubuntuサーバーでメールを受信できない 7 2022/08/23 20:55
- UNIX・Linux iptablesを設定するとメール送信処理が遅くなる!? 6 2022/06/07 01:11
- サーバー Googleドライブなどを使わずにテザリングAndroidでWindowsとファイル共有 1 2023/02/19 13:14
- Windows 10 インストールしたてのVirtualBoxの仮想マシンにDHCPで割り振られるIPアドレスにつきまして 1 2023/05/03 14:46
- ドメイン・サーバー・クラウドサービス FileZillaを使用してwpXサーバーに接続できない 2 2022/03/29 21:02
- サーバー ネットワークの構成に困っています 3 2023/07/05 11:55
- サーバー 「自分のPCをWebサーバーにする事」とはについて 2 2023/03/20 17:47
- サーバー FTPサーバについて詳しい方(アクセス権のないディレクトリを非表示にする方法) 4 2022/08/22 22:33
- UNIX・Linux raspberry piを使ったWebサーバー制作をしています、接続するネットワークを変更したときに 1 2023/01/09 15:57
- C言語・C++・C# TCP/IP通信時のサーバーからの受信 2 2022/11/23 09:11
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・【穴埋めお題】恐竜の新説
- ・我がまちの「給食」自慢を聞かせてっ!
- ・冬の健康法を教えて!
- ・一番好きな「クリスマスソング」は?
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・【大喜利】【投稿~12/6】 西暦2100年、小学生のなりたい職業ランキング
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・遅刻の「言い訳」選手権
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
scpコマンドでサーバー間のファ...
-
RH-Firewall-1-INPUTとは?
-
iptablesでFTPのパッシブモード...
-
サーバーでポート587番が開放で...
-
iptablesでダイナミックDNSを指...
-
linuxのルーティング処理
-
notes のメールがループし送れ...
-
リモートデスクトップ接続でパ...
-
エラーメールで"too many hops"...
-
パスワード設定していないユー...
-
応答を解析できません
-
同一のホスト名で何か問題があ...
-
「DNSサーバーを自動的に取得す...
-
エクセルで#N/Aを含めた平均値...
-
DNSサーバを設定したのですがns...
-
VirtualBoxのGuestマシンのネッ...
-
サーバーというのとメインフレ...
-
”Tortoise SVN” と ”Subversio...
-
同じ独自ドメインを2つのサーバ...
-
Mailの送信済みメールボックス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
iptablesによるルーティング
-
UDPパケットのバッファサイズ変...
-
sambaで使用するポートについて
-
scpコマンドでサーバー間のファ...
-
chkconfig iptables --listって...
-
ファイアウォールは必要?hosts...
-
iptablesの無効設定
-
iptablesでFTPのパッシブモード...
-
iptablesでダイナミックDNSを指...
-
RH-Firewall-1-INPUTとは?
-
vsftpdで動的IP制限をかけたい
-
ポート番号の開放方法について
-
iptablesにてRDPが通らない。
-
ProFTPdとポート開放
-
Linux環境で、UDP514ポートが開...
-
sshでリモートアクセス
-
iptablesの設定 NetBiosについて
-
Choose the correct word(s) fo...
-
iptablesの設定がうまく反映さ...
-
iptablesでINPUT DROPの設定を...
おすすめ情報