無料で構築するVPN(OpenVPN) Part.3
Part.2の続きです。
VPNインタフェース用ファイアウォール自動設定
OpenVPN起動時実行スクリプト新規作成
規制方法は色々あるので試してみると良い。
基本はiptablesで規制を行う。
# vi /etc/openvpn/openvpn-startup ---------------------------------------------------------------------------- #!/bin/bash # VPNインタフェースiptablesルール削除スクリプト実行※必須 /etc/openvpn/openvpn-shutdown iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT iptables -I INPUT -p tcp --dport 7505 -j ACCEPT iptables -A INPUT -i eth0 -p icmp -j ACCEPT iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -p icmp -m limit --limit 1/sec -m icmp --icmp-type 8 -j ACCEPT # VPNサーバーからの送信を許可※必須 iptables -I OUTPUT -o tun+ -j ACCEPT iptables -I FORWARD -o tun+ -j ACCEPT # VPNクライアントからVPNサーバーへのアクセスを許可する場合 #iptables -I INPUT -i tun+ -j ACCEPT iptables -I INPUT -p udp --dport 1194 -j ACCEPT # 外部ネットワークにアクセスする場合はマスカレードが必要 iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE # VPNクライアントからLANへのアクセスを許可する場合 # (例としてVPNクライアントから192.168.1.0/24へのアクセスを許可する場合) # ※192.168.1.0/24側のファイアウォール等でVPNクライアント(10.8.0.0/24)からのアクセスを許可すること #iptables -I FORWARD -i tun+ -d 192.168.1.0/24 -j ACCEPT # VPNクライアントからLAN内特定マシンのみへのアクセスを許可する場合 # (例としてVPNクライアントから192.168.1.10へのアクセスを許可する場合) # ※192.168.1.0/24側のファイアウォール等でVPNクライアント(10.8.0.0/24)からのアクセスを許可すること #iptables -I FORWARD -i tun+ -d 192.168.1.10 -j ACCEPT
OpenVPN起動時実行スクリプトへ実行権限付加
# chmod +x /etc/openvpn/openvpn-startup
VPNインタフェース用ファイアウォール自動設定解除
OpenVPN停止時実行スクリプト新規作成
停止の際の挙動は色々あるが、とりあえず標準のIPtablesを止めると着信されなくなるので、以下としている。
#!/bin/bash /etc/init.d/iptables stop
OpenVPN停止時実行スクリプトへ実行権限付加
# chmod +x /etc/openvpn/openvpn-shutdown
OpenVPNログローテーション設定
OpenVPNログローテーション設定ファイル新規作成
# vi /etc/logrotate.d/openvpn --------------------------------------------------------- /var/log/openvpn.log { missingok notifempty sharedscripts postrotate /etc/rc.d/init.d/openvpn restart 2>&1 > /dev/null || true endscript } --------------------------------------------------------- # vi /etc/logrotate.d/openvpn-status --------------------------------------------------------- /var/log/openvpn-status.log { missingok notifempty sharedscripts postrotate /etc/rc.d/init.d/openvpn restart 2>&1 > /dev/null || true endscript } ---------------------------------------------------------
OpenVPN起動
OpenVPN起動スクリプト編集
# vi /etc/init.d/openvpn --------------------------------------------------------- echo 1 > /proc/sys/net/ipv4/ip_forward ←行頭の#を削除してコメント解除(パケット転送有効化) ---------------------------------------------------------
OpenVPN起動
# /etc/init.d/openvpn start
FWポリシー設定
上位にFWが存在する場合、許可設定を行う
・OpenVPNサーバに対しUDP/1194を通過するように設定。
・10.8.0.0/24の通信は192.168.1.10を通過する様にルーティング設定。
Part.4へ続きます。次回で最後です。
ディスカッション
コメント一覧
まだ、コメントがありません