Iptablesを設定するための次のような小さなスクリプトがあります。
#!/bin/bash
PRE_STR="iptables -t nat -A PREROUTING -p tcp -j DNAT"
FOR_STR="iptables -A FORWARD -p tcp -j ACCEPT"
#####################################
# instances
CM="10.0.1.137"
MASTER="10.0.1.149"
MYSQL="10.0.1.83"
REPORTING="10.0.1.85"
#####################################
# Clear Iptables
iptables -F
iptables -t nat -F
#####################################
# Forward to enable Internet on private nodes
iptables -t nat -A POSTROUTING -j MASQUERADE
#####################################
# Port forwarding
forward()
{
$PRE_STR --dport $1 --to $2:$3
$FOR_STR --dport $3 -d $2
}
#what from to ip to port
forward 3222 $CM 22
forward 7183 $CM 7183
forward 7180 $CM 7180
forward 3122 $MASTER 22
forward 8888 $MASTER 8888
forward 11000 $MASTER 11000
forward 2122 $MYSQL 22
forward 13306 $MYSQL 3306
iptables-save > /etc/firewall.conf
問題は、次の起動時に現在のiptables設定で/etc/firwall.conf
をロードする方法ですか?
通常のDebianマシンでは、iptables-restore < /etc/firewall.conf
を起動するスクリプトを/etc/network/if-up.d/iptables
フォルダーに配置します。しかし、これはこの画像では利用できません。
それで、これをロードする正しい理由は何ですか/etc/firewall.conf
?
AMI ID:AMI-1de2d969
更新:
iptables-restore < /etc/firewall.conf
の/etc/rc.local
で実行してもよろしいですか?
ソース: http://www.cyberciti.biz/faq/how-do-i-save-iptables-rules-or-settings/
Debian(および派生物)は、このタスクにiptables-persistent
パッケージを使用します。
/etc/iptables/rules.4
や/etc/iptables/rules.6
でルールを定義し、(update-rc.d
、chkconfig
または任意のツールを使用して)サービスをアクティブ化します。
RHELおよび派生物では、起動スクリプト/etc/init.d/iptables
は/etc/sysconfig/iptables
を読み取るため、そこでルールを定義し、iptables
サービスがアクティブ化されていることを確認する必要があります(chkconfig iptables on
)および開始しました(service iptables start
)。
service iptables save
または
/etc/init.d/iptables save