読者です 読者をやめる 読者になる 読者になる

opamp_sando's blog

クソザコが割りと適当なことを書くためにある備忘録です。あとたまに普通の日記も書きます

俺は昔iptablesの記事を書いた気がしたが気のせいだったのか?

タイトルどおり昔iptablesの記事を書いた気がするが気のせいだったんだろうか... まあいいや。改めて書きます。

※ArchLinuxでの作業を前提としています。

インストールする

$ sudo pacman -S iptables

としてインストールする。

設定を行う

やり方としては、"コマンドで設定 -> iptables-saveで書き出し"という手段を使うよ。

※注意

iptablesの設定中、一時的にsshなどが繋がらなくなるのでそんな状況でも操作できる環境で作業してください

ということで初めて行くけど、まずは...

$ sudo iptables -t filter -F
$ sudo iptables -t nat -F

とすることで、すべての設定を一旦クリアできる。ちなみにこれをすると多分sshとか繋がらなくなる。

$ sudo iptables -P FORWARD DROP
$ sudo iptables -P INPUT DROP
$ sudo iptables -P OUTPUT ACCEPT

する。これはそのチェーンのデフォルトの挙動を設定する。 チェーンとはFORWARD,INPUT,OUTPUTのこと。(ユーザー定義チェーンというものもあるらしいがここでは使わない)

まずは、sshをつなげる

$ sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$ sudo iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT

とすることで、sshが多分つながるようになる。

あと、自分自身のアクセスが通るようにしておく。

$ sudo iptables -A INPUT -i lo -j ACCEPT
$ sudo iptables -A OUTPUT -o lo -j ACCEPT

これでおk。 あとは、使うポートを設定していく。例えば80番ポートを使うなら

$ sudo iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT

という具合に設定していく。

※補足 "--dport"と"--sport"というオプションがあるが、ここにはポートを指定する。 -A INPUTでは「サーバーがクライアントからデータをもらう(INPUT)」なので、"--dport"はサーバー側のポートを指す。また、"--sport"は"source port"なのでこの場合はクライアント側のポートを指す。 -A OUTPUTではこれが逆になる。 まあ、「データーを送る側」がsportになるんじゃないかな?

あと、"-i"はインターフェース。ifconfigなどを実行して確認する。さくらVPSならeth0でいい気がする。 (ArchLinuxでifconfigするにはnet-toolsをpacmanでインストールする)

終わり

ということで今日はこのへんで。 適当に書いてすみませんでした。次からはちゃんとしますorz

Firefox ブラウザ無料ダウンロード