耐火壁を作ります。
環境:煉瓦・ナマコン
参考人:ガソリンスタンドの施行技術者
スルーして
ファイアウォールの設定をお勉強。
環境:CentOS5.3 iptables v1.3.5 CUI環境 rootユーザ ネットワーク越しの操作はしないように。
今回の参考URL:http://penguin.nakayosi.jp/linux/iptables.html
手短に習得したい人はこのページを見ることをお薦めしません。
では現在のテーブルの状態を確認
[root@localhost etc]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt sou
おもな見方。
[root@localhost etc]# iptables -L <ー -L・・・全てのルールを表示
Chain INPUT (policy ACCEPT) <- PCに入ってくるパケットのルール。policyはACCEPTになっているので、基本は許可しますという意味。
target prot opt source destination
ここの行にルールが表示される
Chain FORWARD (policy ACCEPT) <-PCが転送するパケットのルール。全ての転送を許可する
target prot opt source destination
Chain OUTPUT (policy ACCEPT) <-PCから出ていくパケットのルール。全て許可する
target prot opt sou
この設定では皆々welcomeです。
人としては、世渡り上手かもしれませんが、PC的には問題ありです。
ともあれ、操作を学ばないと何も始まりませんので少しずつ学んでいきます。
まず、今のiptablesの設定では全てを許可しまくりんぐなので、テストをしてみます。
ping localhost
64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=1 ttl=64 time=1.47 ms
自分自身にpingを打ってみると、返事が帰ってきました。
オレ返事しろ。
なんだよ。オレ。
オレ返事しろ。
なんだよ。オレ。
オレ返事しろ。
なんだよ。オレ。
オレ返事しろ。
なんだよ。オレ。
オレ返事しろ。
なんだよ。オレ。
まさにこんな感じ。
そんなことはどうでもいいので。
では、入ってくるパケットをDROPしてみましょう。
iptables -P INPUT DROP
-P -> ターゲットの設定。設定するで問題ないかと。
DROP -> 落とす。破棄。
では、iptables -Lで変更を確認
[root@localhost etc]# iptables -P INPUT DROP
[root@localhost etc]# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@localhost etc]#
では確認できたので、もっかいpingで疎通を確認。
[root@localhost etc]# ping localhost
PING localhost.localdomain (127.0.0.1) 56(84) bytes of data.
オレ返事しろ。
オレ宛になんかパケット来たけど無視無視。
このくらいいろんなことを無視できたら、きっと世の中楽に生きれるのかもしれません。
そんなことはどうでもいいです。
pingの応答がありません。
入ってくるパケットが破棄されているので、ping対して応答しないようになりました。
でもこれでは、何もできません。
孤立してしまいます。
無視しても孤立してくだけです。そんなさみしい生き方はしたくありません。
そんなことはどうだっていいわけありませんが、先にいきましょう。
元に戻すには、
iptabes -P INPUT ACCEPT
で戻せます。
これでは、元通りです。
利便性とセキュリティを両立するのは難しいです。
では、とりあえず、PINGのパケットだけINUPUTを許可みましょう。
手始めに、INPUTパケットを全てDROPします。
[root@localhost etc]# iptables -P INPUT DROP
[root@localhost etc]# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@localhost etc]#
次に、pingだけ許可してみます。
[root@localhost etc]# iptables -A INPUT -p icmp -j ACCEPT
[root@localhost etc]# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT icmp -- anywhere anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@localhost etc]#
iptables -A INPUT -p icmp -j ACCEPT
-A->append。ルールの追加
-p->protcol。プロトコルの種類。指定できるのはtcp udp icmp all
ーj->jump。パターンにマッチした時の処理。今回は許可する
ではではpingを打ってみます。
[root@localhost etc]# ping localhost
PING localhost.localdomain (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=1 ttl=64 time=3.63 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=2 ttl=64 time=2.70 ms
--- localhost.localdomain ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 2.705/3.168/3.631/0.463 ms
[root@localhost etc]#
バッチリですな。おほほほほ。
では、こんなめんどくさいルールなんて消えてしまえ!!!!って方は。
iptabels -F
-F->flush。ルールの内容を全削除。
[root@localhost etc]# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT icmp -- anywhere anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@localhost etc]# iptables -F //消えてしまえ!!!!!!!!!
[root@localhost etc]# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@localhost etc]#
ルールは消えましたが、ベースの設定、
つまりINPUTのDROPはなんの変更もありません。注意が必要です。
ではでは、
次はポート指定で空けてみましょう。
なにをしましょうか。webでもいきますか。
現在の設定は
[root@localhost etc]# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@localhost etc]#
これではネットが見れません。
ネットが見れるように、80番ポートを開けましょう。
[root@localhost etc]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT
[root@localhost etc]# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:http
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@localhost etc]#
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
-p->プロトコル指定。
--dport->-pと併せて使用しなければならない上、ーp tcp と ーp -udp でしか指定できない
これでポートを指定する。これは受け取るポートを指定しています。つまり、80番ポートに対して通信していきたものを指定していることになります。
ではwebを見てみる。
見れない。
名前解決をしているっぽい。
DNSとの通信用のポートも開けましょう。
[root@localhost etc]# iptables -A INPUT -p udp --dport 53 -j ACCEPT
[root@localhost etc]# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT udp -- anywhere anywhere udp dpt:domain
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@localhost etc]#
もっかい挑戦。
しーん・・・・・・・・・・・・・・・・・・・・
しくしく・・・・・・・・・・・・・・・・・・・
なんででしょうね。
ってところでネットをかけづりまわると、
どうやら、送信されたポートのルールも必要見たい。
つまるところ、
DNSのプロトコルが送信されたポートと
HTTPのプロトコルが送信されたポートのルールが必要
もっかい設定。
[root@localhost etc]# iptables -A INPUT -p tcp --sport 80 -j ACCEPT
[root@localhost etc]# iptables -A INPUT -p udp --sport 53 -j ACCEPT
[root@localhost etc]# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT tcp -- anywhere anywhere tcp spt:http
ACCEPT udp -- anywhere anywhere udp dpt:domain
ACCEPT udp -- anywhere anywhere udp spt:domain
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@localhost etc]#
--sport->送信元ポートの指定。
さて、もっかいwebを見てみましょう。
どうです?
快適に接続できましたか?
今回はとりあえずこのくらいに
やりたい事とか ・RAID ・LPIC-201 ・自転車を買う(買っちゃった~) ・サイト作成
フォロワー
ブログ アーカイブ
-
▼
2009
(138)
-
▼
7月
(45)
- Ubuntu * CentOS 二回戦め
- Trac * Ubuntu
- C言語を開始
- tcpdump
- lsのソースを読もう
- Linuxコマンドのソースファイルの入手の仕方。
- そのポートをあけているのは誰だ。Linux編
- そのポートをあけているのは誰だ。Windows編
- slax cannot open dev/console
- FW ファイアウォール 2
- FW ファイアウォール
- 人のソースから何かを得る
- Re:直近で何かやりたいこととか
- 直近でなにかやり濃いこ
- メモ書き
- USBにLinuxを入れよう
- Webサーバ
- samba構築
- symbol lookup error: undefined symbol:
- エクセル覚書
- powerShellの権限問題
- ロードアベレージの見方
- CENT君のバージョンを調べる
- DVDからyum
- linux サービス一覧
- キーボードの変更
- rpmの簡単な使い方
- postgresにCSVでデータ追加
- postgresにまるっとデータコピー・バックアップ
- ブーピー音を消す
- デバイスを使用中のプロセスがわかる
- dateコマンドで日付変更
- linuxのセキュリティ設定
- upgrade
- UbuntuでUSBにgrubをinstall
- USBをつつく
- vmware エラー
- glibのバージョン
- Xウインドウ 起動順序
- 読み込み順序 ログイン/ログアウト
- Ubuntuでメール送信@添付付き
- Ubuntuでメールを送信
- 化けてない!!!
- 化けてる
- Ubuntu?chkconfig
-
▼
7月
(45)
0 件のコメント:
コメントを投稿