Ubuntu 14からDebian 8に「openvpnサーバーの設定」を移植しています。これまでは、このセクションを除いてうまくいきます。
# Set up iptables to forward packets for vpn and do this upon startup.
echo 'iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
exit 0' > /etc/rc.local
Debian 8 はこのファイルを使用していないようで、/etc/rc.local
VPN サーバーが再起動した後にトラフィックを正しく転送しません。スクリプトを手動で呼び出すか、コマンドを実行する必要があります。
起動時にiptablesを更新する「debian 8方式」とは何ですか?
修正する
その内容を読んだ後、/etc/rc.local
権限を755に設定し、次のようにスクリプトを更新しました。
/bin/echo "starting..." > /root/rc.local.log
/sbin/iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
/sbin/iptables -A FORWARD -j REJECT
/sbin/iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
/bin/echo "completed successfully" >> /root/rc.local.log
exit 0
その後、空のエントリを作成して再/root/rc.local.log
起動する前に権限を付与しました777
。ファイルがまだ空で、/etc/rc.localスクリプトがまったく実行されていないようです。
答え1
Debian が起動時に iptables を設定する方法は次のとおりです。iptables - 持続性パック。
パッケージをインストールし、iptables-persistent
必要に応じてiptablesルールを設定した後netfilter-persistent save
。netfilter
まさかiptables
.)
よりnetfilter-persistのマニュアルページ詳細については。
Debian 7(Wheezy)以降、テーブルの保存方法が変更されました。 Wheezyでは、人々は次のことを行いますinvoke-rc.d iptables-persistent save
。
答え2
iptables
起動時にDebian 8を設定する方法については明確な答えはありませんが、うまくいきますrc.local
。
systemdの場合、これはネットワークの後に自動的に起動して実行されるrc.local
ことによって処理されます。唯一の要件は、実行可能でなければならないことです。/lib/systemd/system/rc-local.service
/etc/rc.local start
/etc/rc.local
chmod 755 /etc/rc.local
また、#!/bin/sh
systemdとして実行するには、rc.localファイルの上部にそれを追加する必要があります。それ以外の場合、Failed at step EXEC spawning /etc/rc.local: Exec format error
実行時に赤色のエラーが発生します。sudo journalctl