初心者もOK! FreeBSD質問スレッド まとめサイト @Wiki 外部サイトへのftpができないのでipfwの設定を


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

外部サイトへのftpができないのでipfwの設定を

html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。
5.3Rで ppp(PPPoE)+ipfw+natd なルータを構築中です.
主に 英語handbook の 26.6.5.7 An Example NAT and Stateful Ruleset を参考にしています.
ぶっちゃけると外部サイトへのftp接続がうまくいきません.

html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。 ftp -p anonymous@ftp3.jp.freebsd.org
Trying 2001:e40:100:207::2...
ftp: connect to address 2001:e40:100:207::2: No route to host
Trying 210.188.213.230...
Connected to ring.sakura.ad.jp.
220 ProFTPD 1.3.0rc2 Server (ring.sakura.ad.jp) [::ffff:210.188.213.230]
331 Anonymous login ok, send your complete email address as your password.
Password:
230-
html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。 #################################################
html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。 Welcome to the RingServer FTP service. #
html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。 #################################################
Localtime [Wed Feb 15 00:39:18 2006 JST+0900]
Current [4] users / Max [100] users
230 Anonymous access granted, restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> dir
229 Entering Extended Passive Mode (|||65348|)
ftp: connect: Permission denied
ftp>

こんな感じで,ログイン自体はできるんですが……といった状態です.
何が悪いのかさっぱりになってしまったので,とりあえず色々晒してみようと思います.
アドバイスをいただけると助かります.

html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。
WAN向けNICはxl0, LAN向けNICはxl1

html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。 rc.confの一部
ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="NO"
ppp_profile="-unit0 hoge"
firewall_enable="YES"
firewall_script="/etc/ipfw.rules"
firewall_logging="YES"
natd_enable="YES"
natd_interface="tun0"
natd_flags="-dynamic -f /etc/natd.conf"

html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。 ppp.conf
default:
html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。 set log Phase Chat LCP IPCP CCP tun command
set log Phase tun command
set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
set timeout 0
hoge:
set device PPPoE:xl0
set authname ********
set authkey ********
set dial
set login
add default HISADDR
enable dns


html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。
html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。 natd.conf
log yes
verbose no
deny_incoming no
log_denied no
log_facility security
use_sockets yes
same_ports yes
unregistered_only yes

html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。 ipfw.rules
html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。 !/bin/sh
ipfw -q -f flush
cmd="ipfw -q add"
oif="tun0"
iif="xl1"
skip="skipto 1000"
good_tcpo="20,21,etc" # etcにはその他色々使うものを記述
good_udpo="20,21,etc" # etcにはその他色々使うものを記述
html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。 services provided by server # 鯖が提供するサービス
pub_tcp="22,80,etc"
html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。 services provided inner_pc # LAN内のクライアントが提供するサービス
inner_tcp="etc"
inner_udp="etc"

つづく

html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。
名前じゃなくてE-mailに712って書いてたorz

html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。 allow LAN <-> LAN
$cmd 00005 allow all from any to any via $iif
html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。 allow loopback
$cmd 00010 allow all from any to any via lo0
html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。 allow nat IN
$cmd 00100 divert natd ip from any to any in via $oif
$cmd 00101 check-state
html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。 if packet match to these rules, goto-line 1000 and allow
html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。 allow DNS
$cmd 00120 $skip udp from any to ***.***.***.*** 53 out via $oif keep-state
$cmd 00121 $skip udp from any to ***.***.***.*** 53 out via $oif keep-state
html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。 good port(LAN->WAN)
$cmd 00125 $skip tcp from any to any $good_tcpo out via $oif setup keep-state
$cmd 00126 $skip udp from any to any $good_udpo out via $oif keep-state
html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。 ICMP
$cmd 00130 $skip icmp from any to any out via $oif keep-state
html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。 NTP
$cmd 00135 $skip udp from any to any 123 out via $oif keep-state

あと少し

html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。
html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。 services provided by server(myself)
$cmd 00420 allow tcp from any to me $pub_tcp in via $oif setup limit src-port 10
$cmd 00430 allow tcp from any to me 53 in via $iif
$cmd 00440 allow tcp from any to me 53 out via $iif
html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。 services provided by client
$cmd 000450 $skip all from any to any $inner_tcp
$cmd 000451 $skip all from any $inner_tcp to any
$cmd 000452 $skip all from any to any $inner_udp
$cmd 000453 $skip all from any $inner_udp to any
html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。 deny others
$cmd 00500 deny log ip from any to any
html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。 allow
$cmd 01000 divert natd ip from any to any out via $oif
$cmd 65000 allow ip from any to any

以上です.
助けて偉い人.

html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。
00125でgood_tcpoしか許可してないからだろ。

html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。
確かFTPって任意のポートを叩きに行った気がするんですけど,
$cmd 00125 $skip tcp from any to any 1024-65535 out via $oif setup keep-state
みたいに開けまくりにすると,防火壁の意味がかなり無くなると思うんですよ.
いい方法があるんでしょうか?

html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。
Passive Modeは、サーバ側からクライアントに通信するポートを
ランダム、もしくはFTPサーバの設定で指定されたものを通知してくる
その通知されたポートを使用して、LAN内から外部へ接続する
だから

html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。 services provided inner_pc

ここらの設定で制限されている

html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。
passiveモードとactiveモード

html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。
html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。 >718
outboundである。
PFWみたいにアプリケーションでフィルターするわけじゃない。
なので問題ない。

html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。
素早いレスに感謝します.

が,恥ずかしながら,結局何をどうすればFTPが使えるのかさっぱりわかりません.
とりあえず
redirect_port tcp 192.168.*.*:10021 10021
redirect_port udp 192.168.*.*:10021 10021
good_tcpo="hogehoge,10021"
good_udpo="hogehoge,10021"
inner_tcp="hogehoge,10021"
inner_udp="hogehoge,10021"
あたりをやって,FFFTPで10021番アクセスしてみたんですが,駄目でした.
(PASV on/off 両方駄目.)

何を見て設定すればいいんだorz

html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。
接続先のサーバから通知されたポート番号に
内側からセッションを開始(Passive Mode)しようとしたら
Permission denied なんだから、そのポートが制限されているって事

とりあえず内側から外側への制限を全部無くしてみ

html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。
内側からのアクセスを規制するとFTPは厄介ですよね。

まあ、アクティブモードでつなぎに行って、20ポートからだけ開けとけばOKかと。
$cmd 00127 $skip tcp from any 20 to any in via $oif setup keep-state
かな。

でも20ポートからなら何だって繋げれるから、0-1023ポートはそれより前に閉めとかないとね。
$cmd 00050 deny tcp from any to any 0-19,21,23-79,81-1023 in via $oif
$cmd 00055 deny udp from any to any 0-1023 in via $oif

あとはX(6000-6031?)とかmysql(?)とかjserverとか気になるとこも閉めとくべし?
$cmd 00060 deny tcp from any to any 6000-6031 in via $oif
$cmd 00070 deny udp from any to any 6000-6031 in via $oif

私もエロくないので、もっとえらい人を待ちましょう。


html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。
FreeBSD の ftp/fetch の場合は active 時の port の範囲は
制御できます(man ftp => restrict とか参照)

というわけで IPFW にこんなの追加
html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。 for ftp-data port
${fwcmd} add pass tcp from any 20-21 to ${oip} 49152-65535 setup
まあもっと狭めてもいいけど

html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。
html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。 >724さんの
html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。 $cmd 00127 $skip tcp from any 20 to any in via $oif setup keep-state
でつながりました.
ありがとうございます.
これでFreeBSDのisoイメージが落とせます.
私の中では>>724さんをエロい人だと勝手に認定しておきます.

html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。 でも20ポートからなら何だって繋げれるから、0-1023ポートはそれより前に閉めとかないとね。
すいません,これがどういう意味なのかわからんのですが,
どういう意味なのでしょう?(日本語になってないな.)
ついでに教えていただけると助かります.

html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。
html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。 >733
00127のルールは外部のTCP22ポートから内部の*任意の*TCPポートへのコネクションを許可してるわけ。
だから、外部TCPポートが22であれば、内部の139や445や6000にアクセスを許してしまう。

これを避けるために、00127よりも前に(00050から00070のルール)で危険なポートを閉めてるわけ。

でも私はファイアウォール付きルータ内で普段は運用しているのでipfwを実運用したことはないので
参考程度にどうぞ。*安全は保障しません。自己責任でどうぞ。。。

html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。
html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。 >733=712
check-state/keep-stateについて調るべし
#静観していたが、あまりにも無茶苦茶なことしてるので

「ipfw ftp ステートフル」とかぐぐるといろいろ出て来る