FreeBSDでBBルータを作ろう互助会 3Gbps
■ このスレッドは過去ログ倉庫に格納されています
0001名も無きfxp25
NGNG「PPPoEの方法」
「NATにする方法」
「NICを2枚使う方法」
「ファイヤーウォール設定・セキュリティ対策」
その他なんでもいいからここで質問&アドバイスして輪を広げてこう。
悪質ブロードバンドルーター製品逝ってよし!
最近のブロードバンドルータは安くて速いぞ。遅くてヘボいルーター作るなよ。
前スレ
FreeBSDでBBルータを作ろう互助会
http://pc.2ch.net/test/read.cgi/unix/1038060563/
FreeBSDでBBルータを作ろう互助会 2Mbps
http://pc5.2ch.net/test/read.cgi/unix/1060660932/
関連サイト
pf:http://www.openbsd.org/faq/pf/ja/index.html
0164名無しさん@お腹いっぱい。
2005/04/04(月) 16:58:40素材は他にもあるんだから自分でしましょう
0165名無しさん@お腹いっぱい。
2005/04/04(月) 17:10:38できるっしょ。
0166名無しさん@お腹いっぱい。
2005/04/09(土) 21:31:35FreeBSD鯖にNICが3枚刺さってて、うち1枚は外と繋がってます。
で、あとの2枚が中(イントラ側)となってるんですが、2枚のIFに同じネットワークのIPを割り当てては
ダメなんでしょうか?ググって調べても、必ずといって良いほど違うネットワークになるようにIP
が振られているので。
右側---192.168.0.0/24----(192.168.0.253)[鯖](192.168.0.254)----192.168.0.0/24---左側
としてはダメ?
0167名無しさん@お腹いっぱい。
2005/04/09(土) 21:53:59ifconfig_fxp0="inet 192.168.0.1 netmask 255.255.255.0"
ifconfig_fxp1="inet 192.168.0.2 netmask 255.255.255.0"
ifconfig_fxp2="inet 192.168.0.3 netmask 255.255.255.0"
は当然できる。
ifconfig_fxp0="inet 192.168.0.1 netmask 255.255.255.0"
ifconfig_fxp1="inet 192.168.0.1 netmask 255.255.255.0"
ifconfig_fxp2="inet 192.168.0.1 netmask 255.255.255.0"
はできない。
0168名無しさん@お腹いっぱい。
2005/04/09(土) 22:15:54そーゆー構成にしたい場合は鯖をブリッジにする
0169166
2005/04/09(土) 22:26:33その場合
右側---192.168.0.0/24----(192.168.0.1)[FreeBSD鯖](192.168.0.2)----192.168.0.0/24---左側
右側にぶら下がっているマシンから左側にぶら下がっているマシンへパケットを飛ばしたい場合、
鯖に何も設定しなくても良きに計らってくれるんでしょうか?(右側も左側も同一ネットワークだから
設定不要?)
>>168
えと、ブリッジ、とはちょっと目的が違うので。
単に
外---[鯖]---[HUB]====[PC数台]
で済む所を、HUBのポートが足りなかったのでHUBを買いなおす代わりに鯖にNICをもう1枚追
加しただけなんで・・・なのでネットワークを分けるとかそういう意図は全然ないんです。
0170名無しさん@お腹いっぱい。
2005/04/09(土) 23:44:53> 鯖に何も設定しなくても良きに計らってくれるんでしょうか?
良きに計らってはくれませんので、ブリッジの設定が必要です。
そうでないと左右のネットワーク間でARPパケットが到達できません。
つーか、試せるならとりあえずいろいろ試してみればいいかと。
これ以上はスレ違いな気がしないでもないが。
0172名無しさん@お腹いっぱい。
2005/04/10(日) 11:48:29うちはWAN側にem0、LAN側にre0,re1,re2があって、re0,re1,re2はブリッジ設定だ。
--- sysctl.conf
net.link.ether.bridge.config=re0,re1,re2
net.link.ether.bridge.ipf=1
net.link.ether.bridge.enable=1
--- start_if.re0
ifconfig re0 up
--- start_if.re1
ifconfig re1 inet 192.168.12.1 netmask 0xffffff00
--- start_if.re2
ifconfig re2 up
ってな感じ。
さらにここにath0を足して無線アクポにしようとした。一応機能するんだが、不安定でイライラしたので外してある。
0173166
2005/04/11(月) 23:01:37な、なるほどぉぉぉッッッッ!!
そういう設定にすればいいのかぁぁぁァッ!!!
re0, re1, re2 は同一ネットワークだからIPもre1のみに振れば良いと言うわけですね。
早速試して見ます。アドバイスありがとうございます。
0174名無しさん@お腹いっぱい。
2005/04/12(火) 17:37:24マッチ条件に
port 5000-9999 のうち、port 8888を除いた全て
という指定は出来ないのでしょうか?
ipfw add 100 deny tcp from any to me {5000-9999 and not 8888}
だとエラーになってしまうんですが・・・
# {5000-8887 or 8889-9999} という記述は無しで
0175名無しさん@お腹いっぱい。
2005/04/12(火) 23:10:54ifconfigの出力かなんかからシェルで
・アドレス
・ネットワークアドレスを
・ネットマスク
を取得してipfwの設定に渡したいんですけどね。
ifconfigの出力にはアドレス、ネットマスクはあるけど
ネットワークアドレスはないですね。
ブロードキャストアドレスはあるけど・・・
ネットマスクの値をゲットするのにどうやってます?
0176名無しさん@お腹いっぱい。
2005/04/12(火) 23:19:39pf使ってるから、そのあたりの面倒なことで苦労しなくて済んでる。
0177名無しさん@お腹いっぱい。
2005/04/12(火) 23:26:14ファーストマッチなんだから
port 8888の処理
port 5000-9999の処理
とかじゃだめ?
0178名無しさん@お腹いっぱい。
2005/04/13(水) 08:04:12ifconfigの出力をPerlなどで切り出す。
アドレスとネットマスクのandを計算すればネットワークアドレスも得られるし
そんなに難しいか?
0179名無しさん@お腹いっぱい。
2005/04/13(水) 23:07:01perlを使えばそりゃ簡単。
シェルだけでできないかっつー質問
0180名無しさん@お腹いっぱい。
2005/04/13(水) 23:42:50アホ?
そんぐらいシェルでも余裕だけど。アホ?
0181178
2005/04/14(木) 00:48:28そんなことどこにも書いてないぞ、という突っ込みはおいておいて。
Perlを使えない理由は?
まあ、awkとsedを駆使すればPerlは要らないけど、Perlの方が書きやすい。
0182名無しさん@お腹いっぱい。
2005/04/15(金) 09:11:16└ ftp server
firefoxのbookmarks synchronizerがftpのPASVと非PASVを選択できないせいで
clientからftp serverに接続しようとするとFreeBSDのWAN側のアドレスを返されてしまうので
当然のごとく接続できません
pfでうまくリダイレクトできないものかと考えてみたもののいい方法が思いつかない。
何かいい方法ないでしょうか
0183名無しさん@お腹いっぱい。
2005/04/15(金) 14:06:22よくわからないが、FreeBSD boxにftp proxyを置くのはどうか。
/usr/ports/ftp/ftpproxyとか。
0184名無しさん@お腹いっぱい。
2005/04/15(金) 21:10:07ftpserverはclientと同じLAN内です。FreeBSDにぶらさがってます
ftp-proxy(8)試してみました。inetd.confとpf.confにそれぞれ
ftp stream tcp nowait root /usr/libexec/ftp-proxy ftp-proxy
rdr on fxp0 inet proto tcp from 192.168.0.0/16 to (ng0) port = ftp -> 127.0.0.1
としましたが、rdrはされているものの(pf -ssで確認
$ ftp XXXXXXXXX
Connected to XXXXXXXXX
421 Service not available, remote server has closed connection
正直ftp-proxyのことよくわかってません。
あとはftpserver側でPASVに使うポートを制限しておいてから最初からng0に接続しにいって
connection portもdata portも両方FreeBSD boxのinetdでncしてみたり。
これだとログインはできるもののPASV接続に使うポートを全てinetd.confに書かないといけない…
0185名無しさん@お腹いっぱい。
2005/04/16(土) 02:20:40以前、Daemon Newsでそういうネタを見たことがあるけれど、
次のような構造にしてWANからFTPができるようにしてたね。
WAN-NAT1-(LAN)-NAT2-ftpserver
ftpserverにはWAN側のIPアドレスがつけてあって、
外からの接続はNAT1でprivate IPアドレスへの変換、NAT2でglobal IPアドレスへの
変換を行う。
ここで、ftpserverにはglobalなIPアドレスがついているのでPASVの時には
それについているglobalなIPアドレスを返し、WAN側に居るクライアントと通信ができる。
0186名無しさん@お腹いっぱい。
2005/04/20(水) 22:40:38mpd -b を実行するとコンソールにこんなメッセージが出て
ppp が動いてくれませぬ・・・
module_register: module netgraph already exists!
linker_file_sysinit "netgraph.ko" failed to register! 17
カーネルには
options NETGRAPH
options NETGRAPH_PPPOE
options NETGRAPH_SOCKET
を加えて再構築してます
0187名無しさん@お腹いっぱい。
2005/04/20(水) 22:48:130188名無しさん@お腹いっぱい。
2005/04/20(水) 23:34:090189名無しさん@お腹いっぱい。
2005/04/21(木) 00:07:29懐かしい話題だから。
0190名無しさん@お腹いっぱい。
2005/04/21(木) 00:52:32ppp+ipfw+natd から ppp+ipf+ipnat にして、さらに mpd なるものを知って
mpd+ipf+ipnat にしてみたところ
module_register: module netgraph already exists!
linker_file_sysinit "netgraph.ko" failed to register! 17
こんなエラーが出て接続出来ません。
ちなみに FreeBSD4.8-stable でカーネルコンフィグファイルに
options NETGRAPH
options NETGRAPH_PPPOE
options NETGRAPH_SOCKET
options NETGRAPH_ETHER
を加えて再構築しました。
どうすれば解決出来ますでしょうか?
533 名前:名無しさん@お腹いっぱい。[sage] 投稿日:03/06/01(日) 10:34
>>525>>528
そのエラーメッセージは、カーネルにNETGRAPHが組み込まれているのに
さらに動的モジュール版のNETGRAPHをロードしようとして、同じ物が既にあるから
ロードに失敗したということを示している。
従ってこれはウザい警告なだけであって、その後の動作には影響ない。
pppを使う場合もNETGRAPHを使うけど、この場合はコンフィグにそれらを追加しても
しなくてもよい。ただし、それら4つのうち例えばNETGRAPHだけなどのように
中途半端な追加をするとやはり同じメッセージが出る。たぶん足りない他の3つを
ロードする際にNETGRAPHもロードしようとしてしまうからだと思う。
まあいずれにしてもその後の動作に影響はないけどね。
0191名無しさん@お腹いっぱい。
2005/04/21(木) 22:44:230192名無しさん@お腹いっぱい。
2005/04/21(木) 23:43:100193名無しさん@お腹いっぱい。
2005/04/22(金) 10:41:19options NETGRAPH_BPF
options NETGRAPH_ETHER
options NETGRAPH_IFACE
options NETGRAPH_PPP
options NETGRAPH_PPPOE
options NETGRAPH_SOCKET
options NETGRAPH_VJC
してみれ。
0194名無しさん@お腹いっぱい。
2005/04/22(金) 10:50:24options MSGBUF_SIZE=65536
を追加するとレスポンスが上がりました
0195名無しさん@お腹いっぱい。
2005/04/22(金) 14:18:38man altqしてみたらサポートしてるDeviceにngが無い・・・
もしかしなくてもmpdでaltqって使えない・・・?
0196名無しさん@お腹いっぱい。
2005/04/22(金) 14:44:09/etc/rc.confにpfの設定しても、pf起動時にng0がなくて怒られるし。
0197名無しさん@お腹いっぱい。
2005/04/23(土) 00:17:57とかにmpdの起動スクリプトを書いている。
0198名無しさん@お腹いっぱい。
2005/04/23(土) 14:57:29set iface up-script /usr/local/libexec/mpd.linkup
って書いてその中で起動してる。pfじゃなくてipf使ってるけど。
0199名無しさん@お腹いっぱい。
2005/04/24(日) 01:25:080200名無しさん@お腹いっぱい。
2005/04/24(日) 04:06:54日本時間で表示されるのはどうやるのでしょうか?
0201名無しさん@お腹いっぱい。
2005/04/24(日) 04:49:39BBルータ作ってないユーザですが、RELENG_5 の tcpdump.c で
if (tflag > 0)
thiszone = gmt2local(0);
というそれっぽい行があったので、 "tflag tcpdump" でぐぐったところ
http://www.tcpdump.org/lists/workers/2004/06/msg00034.html
これが引っかかったよ。
net/tcpdump のほうはビルドできないね orz
pf2xml
http://www.monkey.org/~jose/software/pf2xml/
というのもあった(awk スクリプト)
http://www.freebsd.org/send-pr.html
なぜか貼っておきますw
0202200
2005/04/24(日) 05:12:58もう本家 3.9 alpha で反映されてますた。
http://www.freebsd.org/cgi/query-pr.cgi?pr=bin/71619
本家で直ってるし、こういう場合 FreeBSD send-pr しないほうがいいのか。
スマソ
0203201
2005/04/24(日) 05:14:180205195
2005/04/24(日) 17:02:190206名無しさん@お腹いっぱい。
2005/04/28(木) 03:43:44ipfwのルールで次の書いてやっても通りませぬぅ・・・
${fwcmd} add pass udp from ${inet}:${imask} to any 500
${fwcmd} add pass udp from any 500 to ${inet}:${imask}
${fwcmd} add pass udp from ${inet}:${imask} to any 10000
${fwcmd} add pass udp from any 10000 to ${inet}:${imask}
このIPsecのisakmpはudpのport 500、実通信はudpの port 10000 という仕様なのは
確認してるのだが。
isakmpはdst,srcともにportは500なんだけど、ひよっとして1023より小さい
port番号のパケットは通さないとかあったりします?
0207名無しさん@お腹いっぱい。
2005/04/28(木) 04:02:510208名無しさん@お腹いっぱい。
2005/04/28(木) 08:33:4803700 0 0 allow udp from any 500 to 192.168.1.0/24
03800 0 0 allow udp from 192.168.1.0/24 to any 10000
03900 0 0 allow udp from any 10000 to 192.168.1.0/24
LAN(192.168.1.0/24)からWANへ抜けていかないのでisakmp(port 500)の
パケットが返りも来ない状態です。WAN側、LAN側を同時にtcpdumpして
確認もしてます。
0209名無しさん@お腹いっぱい。
2005/04/28(木) 13:19:09${fwcmd} add pass udp from any 500 to any
${fwcmd} add pass udp from any to any 10000
${fwcmd} add pass udp from any 10000 to any
これで抜けない?。
0210208
2005/04/28(木) 22:22:49しかしinside側のプライベートセグメントはNAT変換されるから
指定しても無意味ってことでしょうか。。
0211名無しさん@お腹いっぱい。
2005/04/30(土) 12:09:00気持ち悪ければ NAT 通る前にあらかじめ対象外のパケットを落としちゃえば?
もっとも既に他のルールで落ちちゃってるかもしれないけど。
0212名無しさん@お腹いっぱい。
2005/05/07(土) 11:40:40[PPPoE] ppp node is "mpd80015-PPPoE"
[PPPoE] using interface ng0
[PPPoE] IPCP: peer address cannot be zero
[PPPoE] IFACE: Open event
[PPPoE] IPCP: Open event
[PPPoE] IPCP: state change Initial --> Starting
[PPPoE] IPCP: LayerStart
[PPPoE:PPPoE] [PPPoE] bundle: OPEN event in state CLOSED
[PPPoE] opening link "PPPoE"...
[PPPoE] link: OPEN event
[PPPoE] LCP: Open event
[PPPoE] LCP: state change Initial --> Starting
[PPPoE] LCP: LayerStart
[PPPoE] device: OPEN event in state DOWN
[PPPoE] PPPoE originate option is not enabled
[PPPoE] device is now in state OPENING
[PPPoE] device: DOWN event in state OPENING
[PPPoE] device is now in state DOWN
[PPPoE] link: DOWN event
[PPPoE] LCP: Down event
[PPPoE] device: OPEN event in state DOWN
[PPPoE] pausing 4 seconds before open
[PPPoE] device is now in state DOWN
[PPPoE] device: OPEN event in state DOWN
[PPPoE] pausing 2 seconds before open
[PPPoE] device is now in state DOWN
と繰り返します。何が悪いのか・・・
0213名無しさん@お腹いっぱい。
2005/05/07(土) 13:49:540214名無しさん@お腹いっぱい。
2005/05/07(土) 17:00:57default:
load PPPoE
PPPoE:
new -i ng0 PPPoE PPPoE
set iface route default
set iface disable on-demand
set iface idle 0
set iface mtu 1492
set bundle disable multilink
set bundle authname tp25077@tpc1.fiberbit.net
set link no acfcomp protocomp
set link disable pap chap
set link accept chap
set link mtu 1492
set link mru 1492
set ipcp yes vjcomp
set ipcp ranges 0.0.0.0/0 0.0.0.0/0
open iface
0215名無しさん@お腹いっぱい。
2005/05/07(土) 21:26:55ユーザID晒すのはあんまりよろしくねぇ行為だなw
0216名無しさん@お腹いっぱい。
2005/05/07(土) 23:27:29じゃないの?
0217名無しさん@お腹いっぱい。
2005/05/08(日) 12:49:00フレッツじゃないから MTU は 1454 でなくても大丈夫なんじゃないか?
PPPoEのヘッダは8Byteだから1492は正解と思われ
0218名無しさん@お腹いっぱい。
2005/05/10(火) 15:20:02なんかうちと同じ症状かも
pppの設定してpppで一旦ダイアルしてからだったら上手くいったりしない?
0219名無しさん@お腹いっぱい。
2005/05/10(火) 15:59:34mpd.linksで
set pppoe enable originate
が入ってないのなら入れてみたら?またはわざわざdisableしてるとか。
> [PPPoE] PPPoE originate option is not enabled
PPPoEのサーバ側(?)をやってるわけでない以上、これがなんか変なので。
あと、
> set ipcp yes vjcomp
は、PPPoEの場合noにした方が帯域は出るかも。
yesにしてても相手が蹴るだけかもしれないけど。
0220名無しさん@お腹いっぱい。
2005/05/14(土) 20:43:20どなたか教えてください。
WAN---BBルータ---FreeBSD---client
FreeBSDの稼動サービス
named,dhcp,ssh,http
BBルータ内側 192.168.1.1
FreeBSD外側 192.168.1.216
FreeBSD内側 192.168.10.1
client 192.168.10.2
FreeBSDから外部へのping,digともに問題ありません。
clinetは外部へのdigの結果は返ってくるもののpingを打つと戻ってこず、
tracerouteすると"1 * * *"となっています。
clientからFreeBSDへのpingは応答があります。
0221名無しさん@お腹いっぱい。
2005/05/14(土) 20:45:28# macros
int_if = "sk0"
ext_if = "sk1"
tcp_services = "{ 22, 53, 113 }"
icmp_types = "echoreq"
priv_nets = "{ 127.0.0.0/8, 172.16.0.0/12, 10.0.0.0/8 }"
# options
set block-policy return
set loginterface $ext_if
# scrub
scrub in all
scrub out all max-mms 1414
# nat/rdr
nat on $ext_if from $int_if:network to any -> ($ext_if)
#rdr on $int_if proto tcp from any to any port 21 -> 127.0.0.1 \
port 8021
0222220
2005/05/14(土) 20:45:59# filter rules
#block all
pass quick on lo0 all
#block drop in quick on $ext_if from $priv_nets to any
#block drop out quick on $ext_if from any to $priv_nets
pass in on $ext_if inet proto tcp from any to ($ext_if) \
port $tcp_services flags S/SA keep state
pass in inet proto icmp all icmp-type $icmp_types keep state
pass in on $int_if from $int_if:network to any keep state
pass out on $int_if from any to $int_if:network keep state
pass out on $ext_if proto tcp all modulate state flags S/SA
pass out on $ext_if proto { udp, icmp } all keep state
長々となりましたが、どこがおかしいか教えてください。
0223名無しさん@お腹いっぱい。
2005/05/14(土) 20:47:26pf以前の問題でそもそもforwardingしていないとか。
0225名無しさん@お腹いっぱい。
2005/05/14(土) 22:19:31server# mpd
Multi-link PPP for FreeBSD, by Archie L. Cobbs.
Based on iij-ppp, by Toshiharu OHNO.
mpd: pid 570, version 3.18 (root@server.localnet 20:22 14-May-2005)
[PPPoE] ppp node is "mpd570-PPPoE"
[PPPoE] exec: /sbin/ifconfig fxp0 up
[PPPoE] Cannot send a netgraph message: fxp0::No such file or directory
[PPPoE] Error in creation ng_pppoe node on fxp0:
(略)
と出ます。`ifconfig -a`でng0がいないのが原因じゃないかとは思うのですが、以下の4行を追加して
kernelを再構築してインスコ→rebootすればとりあえずng0って出来ませんでしたっけ?
4.xではこれでよかった気がするんですが・・・
options NETGRAPH
options NETGRAPH_ETHER
options NETGRAPH_PPPOE
options NETGRAPH_SOCKET
server# kldstat
Id Refs Address Size Name
(略)
4 1 0xc23c1000 5000 ng_socket.ko
5 5 0xc23d6000 12000 netgraph.ko
6 1 0xc23ec000 4000 ng_iface.ko
7 1 0xc23f9000 8000 ng_ppp.ko
8 1 0xc2401000 4000 ng_bpf.ko
9 1 0xc2405000 5000 ng_vjc.ko
0226名無しさん@お腹いっぱい。
2005/05/14(土) 22:26:10GENERICでやってみそ
0227名無しさん@お腹いっぱい。
2005/05/14(土) 22:46:15それでできるのはmpdじゃなくてuserland-pppによるPPPoEの場合だと思うな。
mpdの場合はkldstatしてもわかるようにもっと色んなものをkernelに組み込まないと
いけないのでその部分ですでに入っているものとkldloadしたものとで競合が起きて
うまくいかないのではないかと思う。
ちゃんと調べて自分で全部入れるかnetgraph関係をはずして完全に自動でやってもらうか
どちらかだな。
0228名無しさん@お腹いっぱい。
2005/05/15(日) 00:03:35試して見ました。全く変わりません。kldstatで見るとちゃんとng_*.koは読み込まれてる
んですけど、それでも "Cannot send a netgraph message: fxp0〜" と言われます。
>>227
すみません、書き方が足りなかったです。
既にmpdで通信できているFreeBSD 4.10R鯖があって、これと並行試験をするために
今回別途5.4R鯖を立てて、4.10Rのときと全く同じ手順でmpdを導入しようとしてハマッ
ている最中なのです。4.10Rの時は上記の手順でmpdが動きました。
0229名無しさん@お腹いっぱい。
2005/05/15(日) 00:19:070230名無しさん@お腹いっぱい。
2005/05/15(日) 00:54:03>>229
生えてます。
という訳でこんなページを見つけたので、↓
ttp://lists.freebsd.org/pipermail/freebsd-questions/2003-June/008570.html
mpd起動前にあらかじめkldloadで "ng_ether.ko" を手動で読み込ませておいてからmpdを起動
させたら問題なく動くようになりました。4.xではこんなことは必要なかったような・・・
5.xでnetgraphの仕様が変わった事に対してmpdが追従できてない?とかなんでしょうか。
とりあえず根本的な解決法ではないかもしれませんが、しばらくこれで運用してみます。
0231名無しさん@お腹いっぱい。
2005/05/16(月) 12:33:55tcpmssdなんですが、
# tcpmssd -p **** -m 1454
の **** の数値って何にすればいいんでしょう。
/etc/servicesの中のnatdの8668にしくのがいいんですかね?
ぐぐってみると1234とか適当につけてる例も出てるし
0232231
2005/05/16(月) 12:37:02速度を上げたいので mpd + ipf に変えようかと思ったら
カーネルで bpf を外せとのこと。
LAN側はdhcpサーバ動かしたいし、時にはtcpdumpしたい
こともあるんで bpf は外したくないんだけどそれって
mpd + ipf では無理なんですかね。
0233名無しさん@お腹いっぱい。
2005/05/16(月) 13:44:300234名無しさん@お腹いっぱい。
2005/05/16(月) 14:43:46# tcpmssd -p 8668 -m 1492
tcpmssd: can't bind divert socket: Address already in use
となる。natdが既に動いているから8668にしてはダメってことか。
しかし -p 1234 とかやっても windows update に接続できないし
mss書き換えてくれない。どうしたもんだろー
0235名無しさん@お腹いっぱい。
2005/05/16(月) 15:58:40-p で指定したポートで tcpmssd を待ち受けさせて
ipfw の divert でそこに流し込むという使い方じゃなかったっけか
4.11 とか使えば tcpmssd はもう要らなかったと思うが
0236名無しさん@お腹いっぱい。
2005/05/16(月) 17:00:080237名無しさん@お腹いっぱい。
2005/05/18(水) 07:58:52# tcpmssd -p 8669 -m 1492
を実行して、
/etc/rc.firewallに
${fwcmd} add divert 8669 tcp from any to any out recv ${oif} xmit ${iif} tcpflags syn
を追加してみましたが、
mssの書き換えを実施してくれませんでした。
一応 /etc/servicesに、
tcpmssd 8669/divert
と追加もしてみましたが(これは関係ないか・・・)。
0238名無しさん@お腹いっぱい。
2005/05/18(水) 10:24:19mssの値ってISDNなら1000でADSLなら1454じゃないっけ?
というのはさておき、
firewallの設定はまず大域的にやってそれから高速化を目指して限定的にやる
というアプローチがいいと思います。
つまり、これくらいのルールでまずやってみて、それから限定していったほうが
よいかとおもいます。
${fwcmd} add divert 8669 tcp from any to any
これだと出て行く場合も入ってくる場合もtcpmssdに飛ばされますけれど。
tcpflags synとついているのでsynパケットだけtcpmssdに渡されて
正規化されて、他のパケットは渡されないからsynは通るけれど他が通ってない
ということだとおもう。
あと、recv ${oif} xmit ${iif}ってほんと?$oifから来て、${iif}に行くパケットを
正規化しても仕方が無いと思うんだけど、oifというのは内側のNICを指しているんだろうか?
0239名無しさん@お腹いっぱい。
2005/05/19(木) 21:33:18今度はWANからclientの80番に接続できずにいます。
WAN---FreeBSD---client
FreeBSD内側 192.168.10.1
client 192.168.10.2
WANからつないで見るとタイムアウトしているような感じです。
pfの設定はこうなってます。
# macros
ext_if = "sk0"
int0_if = "sk1"
tcp_services = "{ ssh }"
icmp_types = "{echoreq, unreach, squench, timex}"
priv_nets = "{ 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 }"
local_nets = "192.168.0.0/16"
# options
set block-policy return
set loginterface $ext_if
# scrub
scrub in all
scrub out all max-mss 1414
0240220
2005/05/19(木) 21:34:43# nat/rdr
nat on $ext_if from $local_nets to any -> ($ext_if)
rdr on $int0_if proto tcp from any to any port 21 -> 127.0.0.1 port 8021
# filter rules
block all
pass quick on lo0 all
block drop in quick on $ext_if from $priv_nets to any
block drop out quick on $ext_if from any to $priv_nets
pass in quick on $ext_if inet proto tcp from any to ($ext_if) port $tcp_services \
flags S/SA keep state
pass in inet proto icmp all icmp-type $icmp_types keep state
pass out quick on $ext_if proto tcp all modulate state flags S/SA
pass out quick on $ext_if proto { udp, icmp } all keep state
pass quick on $int0_if all
0241220
2005/05/19(木) 21:37:41239 = 220です。
0242220
2005/05/20(金) 20:11:19# macros
ext_if = "sk0"
int0_if = "sk1"
local_nets = "192.168.10.0/24"
# options
set block-policy return
set loginterface $ext_if
# scrub
scrub in all
scrub out all max-mss 1414
# nat/rdr
nat on $ext_if from $local_nets to any -> ($ext_if)
rdr on $int0_if proto tcp from any to any port 21 -> 127.0.0.1 port 8021
rdr on $ext_if proto tcp from any to ($ext_if) port 80 -> 192.168.10.2 port 80
これでは届くようになりました。
後はフィルタリングをうまくすればいいようです。
0243220
2005/05/24(火) 01:22:59逆だと思っていました。これで解決します。
0244名無しさん@お腹いっぱい。
2005/05/24(火) 09:58:56自分のやったところだと逆にリダイレクト->フィルタリングだった。
総合して考えて、
quickフィルタリングルール->リダイレクト->普通のフィルタリングルール
quickの方が高速なんだけれど、quick無しのほうが処理時間が一定になるね。
0245220
2005/05/24(火) 20:14:14最終的にはこうなりました。
# macros
ext_if = "sk0"
int_if = "sk1"
tcp_services = "{ ssh, http }"
icmp_types = "{echoreq, unreach, squench, timex}"
priv_nets = "{ 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 }"
# options
set block-policy return
set loginterface $ext_if
# scrub
scrub in all
scrub out all max-mss 1414
# nat/rdr
nat on $ext_if from $int_if:network to any -> ($ext_if)
rdr on $int_if proto tcp from any to any port 21 -> 127.0.0.1 port 8021
rdr on $ext_if proto tcp from any to ($ext_if) port http -> 192.168.10.2 port http
# filter rules
block all
pass quick on lo0 all
block drop in quick on $ext_if from $priv_nets to any
block drop out quick on $ext_if from any to $priv_nets
pass in quick on $ext_if proto tcp from any to any port $tcp_services flags S/SA \ modulate state
pass in inet proto icmp all icmp-type $icmp_types keep state
pass in quick on $int_if from $int_if:network to any keep state
pass out quick on $int_if from any to $int_if:network keep state
pass out quick on $ext_if proto tcp all modulate state
pass out quick on $ext_if proto { udp, icmp } all keep state
誰かの参考になればと思います
0246名無しさん@お腹いっぱい。
2005/05/27(金) 02:14:1610年早かったかorz....ガンガロ...
0247名無しさん@お腹いっぱい。
2005/05/30(月) 02:02:41int_if = "sis1"
ext_if = "sis0"
priv_nets = "{ 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 }"
int_nets = "{ 内側ネットワークのIPアドレス群 }"
tcp_services = "{ ssh, domain }"
udp_services = "{ domain, ntp }"
icmp_types = "{echoreq, unreach, squench, timex}"
set block-policy return
set loginterface $ext_if
scrub in all
# filter rules
block log all
pass quick on lo all
block drop in quick on $ext_if from $priv_nets to any
block drop out quick on $ext_if from any to $priv_nets
pass in on $ext_if inet proto tcp from any to $ext_if \
port $tcp_services flags S/SA keep state
pass in on $ext_if inet proto udp from any to $ext_if \
port $udp_services
pass in inet proto icmp all icmp-type $icmp_types keep state
pass in on $int_if from $int_nets to any keep state
pass out on $int_if from any to $int_nets keep state
pass out on $ext_if proto tcp all modulate state flags S/SA
pass out on $ext_if proto { udp, icmp } all keep state
上記だと内側ネットワークの端末からTCP通信が出来なかった(UDP,ICMPは可能)
下から二行目のmodulateをkeepに変えたら通信できるようになった。
PF: OpenBSD パケットフィルタに載っていたとおり書いたつもりだったんだけど・・・
何が原因なのか、現状の設定で問題ないか、教えてエロい人!
0248247
2005/05/30(月) 02:06:38flags S/SAも消してました・・・
0249名無しさん@お腹いっぱい。
2005/06/06(月) 18:44:260250中の人
2005/06/07(火) 12:29:16全然更新していませんが、いまだに参考にしてくれている人もいるみたいなので
新しいURLをはっておきます。
ttp://www.daily-labo.com/ygg14.html
0251名無しさん@お腹いっぱい。
2005/06/07(火) 12:35:49乙
0252名無しさん@お腹いっぱい。
2005/06/07(火) 14:45:06週末探してました。ありがとう。
0253名無しさん@お腹いっぱい。
2005/06/08(水) 00:03:19もれもmpd使うときは参考にしたよ。
でも、もれはipfilterの人嫌いだからpf使ったよ。
pfの場合はscrub max-mssでやるね。
ちなみにinだけ設定すれば十分。
0254名無しさん@お腹いっぱい。
2005/06/08(水) 00:18:16喧嘩売ってますか?
0255253
2005/06/09(木) 01:40:32表現が誤解を生んだね。すまん。
もれはTheo教なのでipfilterの作者を嫌いなんです。
ipfilterの利用者にはなんとも思ってません。
0256名無しさん@お腹いっぱい。
2005/06/09(木) 02:04:140257名無しさん@お腹いっぱい。
2005/06/13(月) 01:21:05ルーティングはどうしてますか?
ちなみに、もれはdefault routeをプロバイダにしてFlet's側として見つかったものを
whoisしてnetmaskを求め、一つ一つmpd.confに加えてる。
でも、書いてないものはルーティングされないし、そもそもいちいち設定するのが
面倒くさいので何とかしたいのだが。
0258名無しさん@お腹いっぱい。
2005/06/13(月) 01:40:57ttp://www.flets.com/square/routing.html
0260名無しさん@お腹いっぱい。
2005/06/15(水) 19:03:47/var/log/auth.log を見ると短時間に数百から数千の
不正アクセスを試みている形跡が山盛りあるのですが
こういうアクセスを遮断する、おおげさでない良い方法はありますか?
今は/var/log/auth.logを10分おきに調べて不正アクセス
が多いものを自動でipfw add denyするようにしています。
0261名無しさん@お腹いっぱい。
2005/06/15(水) 22:16:50ipfw add 1 dny from any to any
0262261
2005/06/15(水) 22:17:190263名無しさん@お腹いっぱい。
2005/06/15(水) 22:53:42攻撃がssh経由のログインなら、sshdを外へのインタフェースアドレスに
bind(2)しないように設定するとか?
sshd_config(5)のListenAddressの説明が参考になるかも。
外からログインしたい場合はこれじゃダメだけど。
自分は外へのインタフェースに対してはポート番号を22以外にしたりしてる。
■ このスレッドは過去ログ倉庫に格納されています