10/04/20 21:13:21 Ul0MYHra
仮想マシンのFirefoxで10.0.2.3にアクセスしてみたら
ユーザー名とパスワードを要求された。
ブロードバンドルーターにアクセスしているような感じだったが
何も入力しないで閉じた。
URLリンク(10.0.2.15)はタイムアウトではなくて
「正常に接続できませんでした」となるので、
ファイヤーヲールを通過しているみたいな感じだな。
自分自身への接続は全部許可しているのかな。
936:ジャイアン ◆J1N3P2v8mu/2
10/04/21 21:20:22 1V6RdD6V
ルールを挿入する行を指定できるようになっているが、
肝心の行番号が表示されていないから
ルールの数が多くなると不便そうだな。
複雑なファイヤーヲールを作るのは
Gufwの目指すところではないだろうから、
LAN内部の通信くらいは全部通してもいいのかも。
937:ジャイアン ◆J1N3P2v8mu/2
10/04/22 21:23:34 +O0KR6R8
デフォルトで全部拒否して、
10.0.2.0へ(DHCP、DNSとか)
TCPでポート80へ(WWW)
TCPでポート443へ(WWW)
UDPでポート123から123へ(時刻合わせ)
他にメールとかLAN内部からとか
を許可したら事足りるだろうか。
938:ジャイアン ◆J1N3P2v8mu/2
10/04/23 21:40:16 bRUp7oK4
もっと複雑な制限をかけたい場合には
Gufwでは機能が不足しているだろうから、
他のものを使うことになりそうだな。
例えば、「ジャイ子がp2pファイル共有で同人漫画を集めたりできないようにしたい」とか、
「通信帯域を制限したい。特に、httpで大きなファイルを転送するのを妨害したい」とか。
939:login:Penguin
10/04/23 22:51:35 sQAbnDPf
じゃいあんって何者なんだ
ただものではないだろjk
940:login:Penguin
10/04/24 02:58:42 rcjdpk52
Ubuntuを使っている以上、ただ(無料)の物が好きな事だけはまちまいない。
941:ジャイアン ◆J1N3P2v8mu/2
10/04/24 21:31:24 vAABxVVL
UFW
URLリンク(help.ubuntu.com)
pingを通す方法が書いてあるみたいだな。
ルールは上にあるものほど優先されるから
順番に気をつけろというようなことが書いてあるようだ。
どうせコマンドラインでやるならiptablesの方がいいだろ。
同じやり方でFedoraとかでも通用するだろうし。
942:login:Penguin
10/04/24 22:01:18 CBvLasud
ubuntu9.10でgnometris(gnomegamesのテトリス)が
rm@v21g-ubuntu:~$ gnometris
(gnometris:2279): ClutterGLX-CRITICAL **: Unable to find suitable GL visual.
Failed to initialise clutter: Unable to realize the default stage
ってなって起動できないんですけど。
943:login:Penguin
10/04/24 22:22:17 iRoOTI1f
9.10だけどICH8とかICH9を認識しないの?クソなの?
944:ジャイアン ◆J1N3P2v8mu/2
10/04/25 22:32:10 JcQ6doaP
IPTablesHowTo
URLリンク(help.ubuntu.com)
URLリンク(manpages.ubuntu.com)
難しいうえにやたらと長いな。
やる気がなくなるぜ。
iptablesのスレも見てるんだが、iptablesコマンドを使うことだけは分かった。
のび太、ご苦労だったな。
iptablesをいじる前に、Gufwで作ったルールを無効にしておかないといけないな。
「有効にする」のチェックを外して再起動するだけでいいみたいだ。
945:ジャイアン ◆J1N3P2v8mu/2
10/04/26 21:22:58 Qb5zDx8Q
sudo iptables -L
これを実行すると現在の状態が表示されるとか。
実際にやってみると
INPUT、FORWARD、OUTPUTというチェインがあって、
それぞれでポリシーは許可、ルールなし
となっているようだな。
946:ジャイアン ◆J1N3P2v8mu/2
10/04/27 20:42:21 ylKXayBp
「ポリシー」というのはデフォルトのルールだろ。
「チェイン」の概念はなんだかよく分からんが、
「特定のルールの集合」みたいな感じか。
受信のルールをINPUTチェインに
送信のルールをOUTPUTチェインに追加すればいいみたいだな。
947:login:Penguin
10/04/27 22:58:16 EcVh2KoA
ジャイアンのキャラとかもうどうでもいいんだなw
948:login:Penguin
10/04/27 23:05:19 R0QkNSP2
ところでジャイアン、ガキ板でおぬしと同名のコテがいたらしいが記憶あるかえ?
まぁ、ぃぬ板有数の良スレに育て上げたおぬしに今更な事だが。
949:login:Penguin
10/04/27 23:12:24 7tMw3Ate
今のジャイアンは二代目だよ
>>236あたり参照
950:ジャイアン ◆J1N3P2v8mu/2
10/04/28 20:57:53 MlpD3Q+D
INPUT、FORWARD、OUTPUTの各チェインでポリシーを設定して
これの例外となるルールを追加していくわけだな。
必要な通信だけを通すようにするには、
ポリシーで全部遮断して個別のルールで通すものを指定する
ということになるな。
次はiptablesコマンドの使い方を調べるか。
951:ジャイアン ◆J1N3P2v8mu/2
10/04/29 21:00:36 yAMyzSoI
-Pオプションでポリシーを設定する。
sudo iptables -P チェイン ターゲット
「チェイン」はINPUT、FORWARD、OUTPUTのいずれかだな。
「ターゲット」は通信をどうするかということらしい。
ACCEPTは通す。DROPはこっそり遮断する。
だから、通信を全部遮断するには
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT DROP
だな。
952:ジャイアン ◆J1N3P2v8mu/2
10/04/30 21:10:33 m+ldm6Hc
-Aオプションでルールを追加する。
sudo iptables -A チェイン ルールの仕様
「チェイン」はINPUT、FORWARD、OUTPUTのいずれかだな。
「ルールの仕様」はうんざりするな。ドキュメントにも「憶えなくていいお」って書いてある。
後で見て分かるようにしておくのが大事だな。
-p プロトコルを指定する。tcp、udp、icmp、allのいずれか。allが既定値。
-s 送信元を指定する。IPアドレスで。「! -s」は「指定したアドレス以外」という意味。
-d 送信先を指定する。同上。
-j パケットが条件に合った場合のターゲットを指定する。ACCEPTかDROP。他のは知らん。
-i 受信することになるインターフェイス名を指定する。省略した場合、任意のインターフェイス。
-o 送信することになるインターフェイス名を指定する。
-m 条件をもっと詳しく指定する。後回し。
953:login:Penguin
10/04/30 21:22:04 EaQXy4cC
何かジャイアンじゃないw
954:ジャイアン ◆J1N3P2v8mu/2
10/04/30 22:09:09 m+ldm6Hc
書き忘れたが、>>952の-pとか-sはルールの仕様に関するオプションだ。
例えば
sudo iptables OUTPUT -d 10.0.2.0/255.255.255.0 -j ACCEPT
とすると、送信先がLAN内部ならば通すというルールを
OUTPUTチェインに追加するわけだな。
さらにポート番号を指定したいとかいうような場合は
-mで条件を拡張するわけだが、数が多くてやってられん。
頭が混乱しないように使いそうなやつだけメモしておくか。
955:login:Penguin
10/05/01 14:48:32 8PzX/j98
そこはシェルスクリプトにするのが定石だと思う
ネットで探せば例が転がっているんじゃないかと
956:ジャイアン ◆J1N3P2v8mu/2
10/05/03 21:30:34 1CX8aWeJ
シェルスクリプトのことを出木杉にきいてきたぞ。
実行すべきコマンドを列挙したテキストファイルのことだそうだな。
シェルスクリプトを実行すると、書いてあるコマンドが順に実行されるらしい。
ファイヤーウォールを設定するには
iptablesコマンドを何度も実行することになるから、
シェルスクリプトを作ると都合がいいみたいだな。
957:ジャイアン ◆J1N3P2v8mu/2
10/05/04 21:11:35 HLpsuDls
>>954の続きだ。
-m tcp
TCPに関係する条件を詳しく指定できるようにする。
「-p tcp」が指定された場合、「-m tcp」は省略できる。
--source-port 送信元のポートを指定する。省略して「--sport」でもいい。「:」で範囲。
--destination-port 送信先のポートを指定する。「--dport」でいい。
-m udp
UDPに関係する(ry。-m tcpに準じる。
-m multiport
送信元・送信先のポートを「,」で区切って15個まで指定できるようにする。
--source-ports 送信元のポートを指定する。省略して「--sports」。
--destinaton-ports 送信先のポート。「--dports」。
-m conntrack
接続の状態とかを指定できるようにする。-m stateよりも強力。
--ctstate 接続の状態を指定する。NEWは新規接続。ESTABLISHEDは既存の接続。RELATEDは既存の接続に関係のある新規接続、INVALIDは無効な接続。
958:ジャイアン ◆J1N3P2v8mu/2
10/05/04 22:26:13 HLpsuDls
例えば
sudo iptables -A OUTPUT -p tcp -m conntrack --ctstate NEW -m multiport --dports 80,443 ACCEPT
を実行すれば、TCPでポート80または443への新規接続を許可するルールを
OUTPUTチェインに追加することになるだろう。
なるべく接続の状態も指定した方が安全になるらしい。
ブロードバンドルーターに「SPI」という機能がついてるんだが、
「-m conntrack --ctstate」はこれと同じようなことのような感じだな。
959:login:Penguin
10/05/04 22:36:22 dVx748ni
OUTPUTチェインを弄ることは、現実的にはあまり無いよ。
サーバならINPUTチェインを、ルーティングもするなら
FORWARDチェインを弄ることになる。
960:ジャイアン ◆J1N3P2v8mu/2
10/05/05 20:33:48 VmXl8nxk
せっかくあるんだからOUTPUTチェインも使おうぜ。
よく知らんが、UPnPとかいう仕組みでポートを勝手に使えるらしいから
INPUTチェインでの制限だけでは十分じゃないかもしれないぞ。
961:ジャイアン ◆J1N3P2v8mu/2
10/05/05 21:09:17 VmXl8nxk
>>957の他に使えそうなやつ
-m connbytes、-m connlimit、-m quota
転送量や接続数を制限する。
-m limit、-m hashlimit
ルールが適用される頻度を制限する。
-m mac
送信元のMACアドレスを指定する。
-m owner
通信しようとしているユーザーを指定する。
-m recent
悪いことをしようとした奴らを締め出すのに使えるらしい。
-m time
時間を指定する。
962:ジャイアン ◆J1N3P2v8mu/2
10/05/05 21:27:49 VmXl8nxk
例えば
sudo iptables -A OUTPUT ! -d 10.0.2.0/255.255.255.0 -m owner --uid-owner jaiko -m time --timestart 21:00:00 --timestop 05:00:00 -j DROP
を実行すると、
jaikoは夜の9時から朝の5時までの間、
LAN内部以外とは通信できなくなるのかな。
963:ジャイアン ◆J1N3P2v8mu/2
10/05/06 20:49:17 wRsOF2vt
-iや-oで指定するインターフェイス名は
/etc/network/interfacesを見ればだいたい分かるだろう。
ifconfigコマンドを実行すると
稼働中のネットワークインターフェイスが表示されるので
これも参考になるだろう。
964:ジャイアン ◆J1N3P2v8mu/2
10/05/08 20:54:40 LQrEbcm1
-Dオプションでルールを削除する。
-Fオプションでチェイン内の全ルールを消去する。
何かおかしくなったときに使えそうだな。
-Zオプションですべてのチェインのパケットカウンタ、バイトカウンタを0にする。
各ルールが適用されたパケット数、バイト数を記録してるんだな。
カウンタの数値は「-L -v」オプションで見られるらしい。
965:ジャイアン ◆J1N3P2v8mu/2
10/05/09 21:06:00 IU09vcKg
ルールは上にあるものほど優先されるから、順番が大切だ。
>>962のようなやつは、通信を許可するルールよりも
上にしておかないと意味がないらしい。
よく使うルールはなるべく上の方にしておくと
CPUの仕事が少し減るとかなんとかで、
パケットカウンタも参考にして順番を決めるんだとか。
966:ジャイアン ◆J1N3P2v8mu/2
10/05/09 21:53:40 IU09vcKg
いよいよファイヤーウォールの設定を始めるわけだが、
>>955にあるとおり、シェルスクリプトを使うのが普通みたいだな。
送信は
既存の接続とこれに関連のある接続を通す
DNS、DHCP、NTP、webとメール、ループバック、pingの新規接続を通す
他は通さない
受信は
既存の接続とこれに関連のある接続を通す
ループバック、LAN内部からのpingの新規接続を通す
他は通さない
という方針でやってみよう。
DHCPサーバーとDNSサーバーのアドレスは>>927だ。
967:ジャイアン ◆J1N3P2v8mu/2
10/05/10 20:47:26 c5Akoipn
>>954
× sudo iptables OUTPUT -d 10.0.2.0/255.255.255.0 -j ACCEPT
○ sudo iptables -A OUTPUT -d 10.0.2.0/255.255.255.0 -j ACCEPT
>>958
× sudo iptables -A OUTPUT -p tcp -m conntrack --ctstate NEW -m multiport --dports 80,443 ACCEPT
○ sudo iptables -A OUTPUT -p tcp -m conntrack --ctstate NEW -m multiport --dports 80,443 -j ACCEPT
よく見てみたら、けっこう間違ってるじゃないか。
iptablesは複雑で難しいな。
のび太は1から全部読み返してみて、どこがどう間違っているか指摘しろ。
968:login:Penguin
10/05/10 20:52:45 o8QQ0v0D
なんというできるジャイアン
969:ジャイアン ◆J1N3P2v8mu/2
10/05/14 21:06:05 c090gNNJ
以下の内容でload-firewall-rulesというシェルスクリプトを作った。
ほとんど全部、誰かが作ったやつのコピペだ。
のび太はよく検証しておかしなところがあったらおしえろ。
INPUTもOUTPUTも、やりとりするパケットの大半はESTABLISHEDになるみたいだから、
これを通すルールを一番上にした。
manによるとRELATEDはFTPデータ転送とかICMPエラーとかで使われるらしいが、
他にどんなのがRELATEDとして扱われるか、RELATEDを通さないとどんな問題があるか
のび太はよく調べて報告しろ。
970:ジャイアン ◆J1N3P2v8mu/2
10/05/14 21:08:49 c090gNNJ
---ここから
#!/bin/sh
#各チェインを初期化する
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -Z
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
#各チェインのポリシーを設定する
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -P FORWARD DROP
971:ジャイアン ◆J1N3P2v8mu/2
10/05/14 21:12:56 c090gNNJ
#OUTPUTチェインにルールを追加する
#既存の接続とそれに関連する接続を通す
/sbin/iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
#DNSサーバーへの新規接続を通す
/sbin/iptables -A OUTPUT -p udp -d 10.0.2.3 -m udp --dport 53 -m conntrack --ctstate NEW -j ACCEPT
#WWWサーバーへの新規接続を通す
/sbin/iptables -A OUTPUT -p tcp -m multiport --dports 80,443 -m conntrack --ctstate NEW -j ACCEPT
#NTPサーバーへの新規接続を通す
/sbin/iptables -A OUTPUT -p udp -m udp --sport 123 --dport 123 -m conntrack --ctstate NEW -j ACCEPT
#DHCPサーバーへの新規接続を通す
/sbin/iptables -A OUTPUT -p udp -d 10.0.2.2 -m udp --sport 68 --dport 67 -m conntrack --ctstate NEW -j ACCEPT
#メールサーバーへの新規接続を通す
/sbin/iptables -A OUTPUT -p tcp -m multiport --dports 25,110 -m conntrack --ctstate NEW -j ACCEPT
#自分自身への新規接続(loopback)を通す
/sbin/iptables -A OUTPUT -o lo -s 127.0.0.0/255.0.0.0 -d 127.0.0.0/255.0.0.0 -m conntrack --ctstate NEW -j ACCEPT
#pingを通す
/sbin/iptables -A OUTPUT -p icmp -m icmp --icmp-type 8 -m conntrack --ctstate NEW -j ACCEPT
972:ジャイアン ◆J1N3P2v8mu/2
10/05/14 21:14:20 c090gNNJ
#INPUTチェインにルールを追加する
#既存の接続とそれに関連する接続を通す
/sbin/iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
#自分自身からの新規接続(loopback)を通す
/sbin/iptables -A INPUT -i lo -s 127.0.0.0/255.0.0.0 -d 127.0.0.0/255.0.0.0 -m conntrack --ctstate NEW -j ACCEPT
#LAN内部からのpingを通す
/sbin/iptables -A INPUT -p icmp -s 10.0.2.0/255.255.255.0 -m icmp --icmp-type 8 -m conntrack --ctstate NEW -j ACCEPT
---ここまで
973:login:Penguin
10/05/15 12:11:57 GGpTElO6
>970
頻繁に使うIPアドレスはわかりやすい名前の変数に入れておくと、後々メンテするときにパッと見てどんなルールなのか理解しやすいかもしれない。
SELF=`ifconfig eth0 | grep "inetアドレス" | awk '{print $1}' | sed 's/.*://'`
DNS='192.168.0.1'
BCAST='255.255.255.255'
ANY='0.0.0.0/0'
こんな風に書いておけば$SELFとか$ANYで参照すればいいし。
|#各チェインを初期化する
直後にDROPしているからACCEPTしている3行は必要ないと思う。
あとは以下を最後に入れておくとdmesgでDROPしたログが取れて便利かもしれない。
iptables -N LOGGING
iptables -A LOGGING -j LOG --log-level warning --log-prefix "DROP:" -m limit
iptables -A LOGGING -j DROP
iptables -A INPUT -j LOGGING
iptables -A OUTPUT -j LOGGING
974:ジャイアン ◆J1N3P2v8mu/2
10/05/15 21:24:32 1+V3dTpu
$がついてるのは変数というものか。
確かにそうしている例が多かったな。
シェルスクリプトについては、まだ知らないことがたくさんあるから、
今回は単純にコマンドを並べただけにした。
知識が増えるにつれて、少しづつ改良できるようになるといいな。
チェインの初期化についても、のび太の言う通りだが、
こんな風にしている奴が多かったから、俺も真似してみた。
-Fオプションはルールを消すだけでポリシーはそのままだから
なんとかかんとかって言ってた奴がいたが、やっぱり要らないよな。
ログの取り方はドキュメントに少し書いてあった。
同じ内容であふれないように「-m limit」で頻度を調整するみたいだな。
-jオプションで指定するターゲットもたくさんあって訳が分からんのだが、
LOGターゲットについては後で余裕があったら調べてみようかな。
975:ジャイアン ◆J1N3P2v8mu/2
10/05/17 21:56:00 s3cgTh1e
>>970-972のスクリプトでファイヤーヲールを設定できるわけだが、
PCを再起動するとその設定は失われてしまうので
起動する度にスクリプトを実行しないといけないらしい。
976:login:Penguin
10/05/18 10:26:57 cIfMJtXp
>975
URLリンク(forums.ubuntulinux.jp)
ちょっと古いけど参考になりそうな記事。
もしかするとufwに挑戦しないといけないのかもしれない。
977:login:Penguin
10/05/18 10:46:30 rcU8yBdM
もう2年か。DVD再生できなかったとか言ってた頃よりずいぶんスキルアップしたなwwww
978:ジャイアン ◆J1N3P2v8mu/2
10/05/18 21:13:58 e42ouVj1
URLリンク(manpages.ubuntu.com)
/etc/network/if-pre-up.dにスクリプトを置いておくと
ネットワークインターフェイスが起動するときに
それを自動で実行すると書いてある。
これにはrun-partsというのを使っているそうだが、
URLリンク(manpages.ubuntu.com)
ファイル名に制約があるらしい。
大文字、小文字、数字、アンダースコア、ハイフン
だけにしろというようなことが書いてある。
979:ジャイアン ◆J1N3P2v8mu/2
10/05/18 21:52:34 e42ouVj1
network-managerを使ってると都合が悪いというようなことが
ドキュメントにも書いてあったんだが、
>>976の奴の場合は、他に原因があったみたいだな。
ドキュメントの記述が古いのだろうか。
いずれにせよ、俺はnetwork-managerをインストールしてないから関係なさそうだな。
980:野比 のび太
10/05/18 22:19:29 vVeBSaym
g