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

tweeeetyのぶろぐ的めも

アウトプットが少なかったダメな自分をアウトプット<br>\(^o^)/

さくらvpsの設定自分メモ - iptables

はじめに

こちらはほぼまるまる参考にさせて頂いたサイトのコピーです

補足

ほとんど同じですがわけあって記事を書き直しました。
さくらvpsの設定自分メモ - iptables②(パケットフィルタリング)

設定する

以下を好きな場所に保存してたたくだけ
今回は/root/sh/init_iptables.shとかにしました

#!/bin/bash

# フィルタリングルールを消去する
/sbin/iptables -F

# デフォルトポリシーを設定
/sbin/iptables -P INPUT DROP
/sbin/iptables -P FORWARD DROP
/sbin/iptables -P OUTPUT DROP

# ループバックを許可する
/sbin/iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
/sbin/iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT

# プライベートアドレスが使われているパケットを破棄
/sbin/iptables -A INPUT -i eth0 -s 10.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -i eth0 -d 10.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -i eth0 -s 172.16.0.0/12 -j DROP
/sbin/iptables -A INPUT -i eth0 -d 172.16.0.0/12 -j DROP
/sbin/iptables -A INPUT -i eth0 -s 192.168.0.0/16 -j DROP
/sbin/iptables -A INPUT -i eth0 -d 192.168.0.0/16 -j DROP

# 基本サービスを許可。とりあえずSSH、HTTP、HTTPSのみ
/sbin/iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT

# すでにコネクションを確立しているものは許可
/sbin/iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

# Ping of Death対策
/sbin/iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

# 外への接続は全て許可
/sbin/iptables -P OUTPUT ACCEPT

# 保存 + iptables再起動
/etc/init.d/iptables save
/etc/init.d/iptables restart

# 設定が適用されているか確認
/sbin/iptables -L

たたく

# chmod 700 init_iptables.sh
# ./init_iptables.sh
iptables: ファイアウォールのルールを /etc/sysconfig/iptable[  OK  ]中: 
iptables: チェインをポリシー ACCEPT へ設定中filter         [  OK  ]
iptables: ファイアウォールルールを消去中:                  [  OK  ]
iptables: モジュールを取り外し中:                          [  OK  ]
iptables: ファイアウォールルールを適用中:                  [  OK  ]
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  localhost            localhost           
DROP       all  --  10.0.0.0/8           anywhere            
DROP       all  --  anywhere             10.0.0.0/8          
DROP       all  --  172.16.0.0/12        anywhere            
DROP       all  --  anywhere             172.16.0.0/12       
DROP       all  --  192.168.0.0/16       anywhere            
DROP       all  --  anywhere             192.168.0.0/16      
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh 
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:http 
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:https 
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
ACCEPT     icmp --  anywhere             anywhere            icmp echo-request limit: avg 1/sec burst 5 

Chain FORWARD (policy DROP)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  localhost            localhost           

参考サイト
iptablesの基本設定(ファイアウォール)

補足

上記の設定だと一部こまることがあったので現在はこっちにしてます
viでiptablesを開いてまるっとこれに置き換えて問題ないはずです

# sudo vi /etc/sysconfig/iptables
--vi編集--
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]

-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT

-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# SSH, HTTP, HTTPS, SSH(22)
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22    -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80    -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443   -j ACCEPT

-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited

COMMIT
----------

※再起動
# sudo /etc/init.d/iptables restart

※気になる場合は確認
# sudo /sbin/iptables -L

iptables難しい(><)
ちなみにこちらを参考にさせて頂きました
さくら VPS のサーバーに iptables の設定をしてみた