{"id":18489,"date":"2014-10-03T06:15:07","date_gmt":"2014-10-02T22:15:07","guid":{"rendered":"https:\/\/2blog.ilc.edu.tw\/25793\/2014\/10\/03\/banana-pi-%e6%b8%ac%e8%a9%a6-bananian-%e7%af%87-%e5%ae%89%e8%a3%9d-openvpn-server\/"},"modified":"2021-03-18T17:24:05","modified_gmt":"2021-03-18T09:24:05","slug":"banana-pi-%e6%b8%ac%e8%a9%a6-bananian-%e7%af%87-%e5%ae%89%e8%a3%9d-openvpn-server","status":"publish","type":"post","link":"https:\/\/2blog.ilc.edu.tw\/25793\/2014\/10\/03\/banana-pi-%e6%b8%ac%e8%a9%a6-bananian-%e7%af%87-%e5%ae%89%e8%a3%9d-openvpn-server\/","title":{"rendered":"Banana Pi \u6e2c\u8a66 &#8211; Bananian \u7bc7 \u5b89\u88dd OpenVPN Server"},"content":{"rendered":"<p>\u5e95\u4e0b\u6587\u7ae0\u53c3\u8003\uff1a <br \/><a href=\"http:\/\/www.raspberrypi.org\/forums\/viewtopic.php?f=36&amp;t=21566\" target=\"_blank\" rel=\"noopener noreferrer\">Raspberry Pi \u2022 View topic &#8211; [How to] Dynamic DNS and Openvpn server<\/a> <br \/><a href=\"http:\/\/c77571.blogspot.tw\/2013\/09\/openvpn-for-raspberry-pi.html\" target=\"_blank\" rel=\"noopener noreferrer\">chen: \u5b89\u88ddOpenVpn For Raspberry PI \u7684\u6b65\u9a5f<\/a> <br \/><a href=\"http:\/\/www.takobear.tw\/201702608526356260322804024687\/raspberry-pivpn-server\" target=\"_blank\" rel=\"noopener noreferrer\">\u5229\u7528Raspberry Pi\u5efa\u7acbVPN server &#8211; TakoBear<\/a> <\/p>\n<p>\u5b89\u88dd OpenVPN<br \/># <span style=\"color: #ff0000\">apt-get install openvpn<\/span><\/p>\n<p>\u5efa\u7acb\u76ee\u9304<br \/># <span style=\"color: #ff0000\">mkdir \/etc\/openvpn\/easy-rsa\/<\/span>[@more@]<br \/>\u8907\u88fd\u7bc4\u4f8b\u7684\u8a2d\u5b9a\u6a94\u5230 \/etc\/openvpn\/easy-rsa\u00a0\u76ee\u9304<br \/># <span style=\"color: #ff0000\">cp -r \/usr\/share\/doc\/openvpn\/examples\/easy-rsa\/2.0\/* \/etc\/openvpn\/easy-rsa\/<\/span><\/p>\n<p>\u5c07 KEY_SIZE\u00a0\u7684\u9577\u5ea6\u7531 1024\u00a0\u6539\u6210 204\uff0c\u589e\u52a0\u6191\u8b49\u96e3\u5ea6<br \/># <span style=\"color: #ff0000\">sed -i &#8216;s\/KEY_SIZE=1024\/KEY_SIZE=2048\/&#8217; \/etc\/openvpn\/easy-rsa\/vars<\/span><\/p>\n<p>\u4fee\u6539\u6191\u8b49\u9810\u8a2d\u8cc7\u8a0a<br \/> # <span style=\"color: #ff0000\">sed -i &#8216;s\/KEY_COUNTRY=&#8221;US&#8221;\/KEY_COUNTRY=&#8221;TW&#8221;\/&#8217; \/etc\/openvpn\/easy-rsa\/vars<\/span><br \/># <span style=\"color: #ff0000\">sed -i &#8216;s\/KEY_PROVINCE=&#8221;CA&#8221;\/KEY_PROVINCE=&#8221;Taiwan&#8221;\/&#8217; \/etc\/openvpn\/easy-rsa\/<\/span><span style=\"color: #ff0000\">vars<\/span><br \/># <span style=\"color: #ff0000\">sed -i &#8216;s\/KEY_CITY=&#8221;SanFrancisco&#8221;\/KEY_CITY=&#8221;E-Land&#8221;\/&#8217; \/etc\/openvpn\/easy-rsa\/<\/span><span style=\"color: #ff0000\">vars<\/span><br \/># <span style=\"color: #ff0000\">sed -i &#8216;s\/KEY_ORG=&#8221;Fort-Funston&#8221;\/KEY_ORG=&#8221;Home&#8221;\/&#8217; \/etc\/openvpn\/easy-rsa\/<\/span><span style=\"color: #ff0000\">vars<\/span><\/p>\n<p>\u5207\u63db\u76ee\u9304<br \/># <span style=\"color: #ff0000\">cd \/etc\/openvpn\/easy-rsa<\/span><\/p>\n<p>\u958b\u59cb\u5efa\u7acb\u6191\u8b49<br \/># <span style=\"color: #ff0000\">source .\/vars<\/span><br \/><span style=\"color: #0000ff\">NOTE: If you run .\/clean-all, I will be doing a rm -rf on \/etc\/openvpn\/easy-rsa\/keys<\/span><\/p>\n<p>\u6e05\u7a7a\u820a\u6709\u6191\u8b49<br \/># <span style=\"color: #ff0000\">.\/clean-all<\/span><\/p>\n<p>\u5efa\u7acb\u6240\u9700\u6191\u8b49<br \/># <span style=\"color: #ff0000\">.\/build-ca<\/span><br \/># <span style=\"color: #ff0000\">.\/build-key-server bananapi<\/span><br \/># <span style=\"color: #ff0000\">.\/build-dh<\/span><br \/># <span style=\"color: #ff0000\">.\/build-key banana<br \/><\/span><br \/>\u5c07 tls.key \u79fb\u5230 keys \u8cc7\u6599\u593e\u4e0b<br \/># <span style=\"color: #ff0000\">mv .\/tls.key .\/keys\/<\/span><\/p>\n<p>\u5207\u63db\u5230 <span style=\"color: #0000ff\">\/etc\/openvpn\/easy-rsa\/keys<\/span>\u00a0\u76ee\u9304<br \/># <span style=\"color: #ff0000\">cd \/etc\/openvpn\/easy-rsa\/keys<\/span><\/p>\n<p>\u8907\u88fd Server\u00a0\u7aef\u7684\u6a94\u6848\u5230 <span style=\"color: #0000ff\">\/etc\/openvpn<\/span><br \/># <span style=\"color: #ff0000\">cp ca.crt ca.key dh2048.pem bananapi.crt bananapi.key \/etc\/openvpn<\/span><\/p>\n<p>\u5efa\u7acb\u7528\u4f86\u5b58\u653e Client\u00a0\u7aef\u6240\u9808\u6a94\u6848\u7684\u76ee\u9304<br \/># <span style=\"color: #ff0000\">mkdir $HOME\/openvpn-client-files<\/span><br \/>\u8907\u88fd Client\u00a0\u7aef\u6240\u9808\u6a94\u6848<br \/># <span style=\"color: #ff0000\">cp ca.crt banana.crt banana.key $HOME\/openvpn-client-files<\/span><\/p>\n<p>\u66f4\u6539\u6a94\u6848\u540d\u7a31<br \/># <span style=\"color: #ff0000\">mv $HOME\/openvpn-client-files\/ca.crt $HOME\/openvpn-client-files\/capi.crt<\/span><br \/>\u66f4\u6539\u6a94\u6848\u6b0a\u9650<br \/># <span style=\"color: #ff0000\">chmod +r $HOME\/openvpn-client-files\/banana.key<\/span><\/p>\n<p>\u5efa\u7acb <span style=\"color: #0000ff\">\/etc\/openvpn\/server.conf<\/span>\u00a0\u8a2d\u5b9a\u6a94<br \/># <span style=\"color: #ff0000\">vim \/etc\/openvpn\/server.conf<\/span><br \/><span style=\"color: #0000ff\">port 34567<\/span><br \/><span style=\"color: #0000ff\">proto tcp<\/span><br \/><span style=\"color: #0000ff\">dev tun<\/span><br \/><span style=\"color: #0000ff\">;; Key File \u8a2d\u5b9a<\/span><br \/><span style=\"color: #0000ff\">dh \/etc\/openvpn\/dh2048.pem<\/span><br \/><span style=\"color: #0000ff\">ca \/etc\/openvpn\/ca.crt<\/span><br \/><span style=\"color: #0000ff\">cert \/etc\/openvpn\/bananapi.crt<\/span><br \/><span style=\"color: #0000ff\">key \/etc\/openvpn\/bananapi.key<\/span><br \/><span style=\"color: #0000ff\">;; vpn \u4f7f\u7528\u7db2\u6bb5<\/span><br \/><span style=\"color: #0000ff\">server 10.8.0.0 255.255.255.0<\/span><br \/><span style=\"color: #0000ff\">cipher AES-256-CBC<\/span><br \/><span style=\"color: #0000ff\">comp-lzo<\/span><br \/><span style=\"color: #0000ff\">persist-key<\/span><br \/><span style=\"color: #0000ff\">persist-tun<\/span><br \/><span style=\"color: #0000ff\">status openvpn-status.log<\/span><br \/><span style=\"color: #0000ff\">verb 3<\/span><br \/><span style=\"color: #0000ff\">tun-mtu 1500<\/span><br \/><span style=\"color: #0000ff\">tun-mtu-extra 32<\/span><br \/><span style=\"color: #0000ff\">mssfix 1450<\/span><br \/><span style=\"color: #0000ff\">;; \u5141\u8a31 client \u9593\u4e92\u76f8\u9023\u63a5<\/span><br \/><span style=\"color: #0000ff\">;client-to-client<\/span><br \/><span style=\"color: #0000ff\">push &#8220;redirect-gateway def1&#8221;<\/span><br \/><span style=\"color: #0000ff\">;; DNS \u8a2d\u5b9a<\/span><br \/><span style=\"color: #0000ff\">push &#8220;dhcp-option DNS 168.95.1.1&#8221;<\/span><br \/><span style=\"color: #0000ff\">push &#8220;dhcp-option DNS 140.111.66.1&#8221;<\/span><br \/><span style=\"color: #0000ff\">keepalive 5 30<\/span><br \/><span style=\"color: #0000ff\">;; \u6700\u5927\u4f7f\u7528\u8005\u91cf<\/span><br \/><span style=\"color: #0000ff\">max-clients 12<\/span><\/p>\n<p>\u9632\u706b\u7246\u4e0a\u7684\u8a2d\u5b9a\uff0c\u5982\u679c\u539f\u672c\u5c31\u6709\u9632\u706b\u7246\uff0c\u5c31\u8981\u5c07\u898f\u5247\u500b\u6574\u5408<br \/># <span style=\"color: #ff0000\">vim \/etc\/firewall.vpn<\/span><br \/><span style=\"color: #0000ff\">#!\/bin\/bash<\/span><br \/><span style=\"color: #0000ff\"># Enable ip_forward<\/span><br \/><span style=\"color: #0000ff\">echo &#8220;1&#8221; &gt; \/proc\/sys\/net\/ipv4\/ip_forward<\/span><br \/><span style=\"color: #0000ff\">iptables -t filter -F<\/span><br \/><span style=\"color: #0000ff\">iptables -t nat -F<\/span><br \/><span style=\"color: #0000ff\">iptables -A FORWARD -m state &#8211;state RELATED,ESTABLISHED -j ACCEPT<\/span><br \/><span style=\"color: #0000ff\">iptables -A FORWARD -s &#8220;10.8.0.0\/24&#8221; -j ACCEPT<\/span><br \/><span style=\"color: #0000ff\">iptables -A FORWARD -j REJECT<\/span><br \/><span style=\"color: #0000ff\">iptables -t nat -A POSTROUTING -s &#8220;10.8.0.0\/24&#8221; -j MASQUERADE<\/span><\/p>\n<p>\u66f4\u6539\u6a94\u6848\u6b0a\u9650<br \/># <span style=\"color: #ff0000\">chmod 700 \/etc\/firewall.vpn<\/span><\/p>\n<p>\u8a2d\u5b9a\u958b\u6a5f\u6642\u57f7\u884c<br \/>\u5728 <span style=\"color: #0000ff\">\/etc\/rc.local<\/span>\u00a0\u6700\u5f8c\u4e00\u884c <span style=\"color: #0000ff\">exit 0<\/span>\u00a0\u4e4b\u524d\u52a0\u5165 <span style=\"color: #ff0000\">sh \/etc\/firewall.vpn<\/span><br \/># <span style=\"color: #ff0000\">sed -i &#8216;\/^exit 0\/ish \/etc\/firewall.vpn&#8217; \/etc\/rc.local<\/span><\/p>\n<p>\u6e2c\u8a66 OpenVPN\u00a0\u662f\u5426\u80fd\u6b63\u5e38\u57f7\u884c<br \/># <span style=\"color: #ff0000\">\/etc\/init.d\/openvpn start<\/span><br \/><span style=\"color: #0000ff\">[ ok ] Starting virtual private network daemon: server.<\/span><\/p>\n<p># <span style=\"color: #ff0000\">netstat -antp | grep 34567<\/span><br \/><span style=\"color: #0000ff\">tcp\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0 0 0.0.0.0:34567\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0.0.0.0:*\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 LISTEN\u00a0\u00a0\u00a0\u00a0\u00a0 3617\/openvpn<\/span><\/p>\n<p>tun0 \u4ecb\u9762\u8cc7\u8a0a<br \/># <span style=\"color: #ff0000\">ifconfig tun0<\/span><br \/><span style=\"color: #0000ff\">tun0\u00a0\u00a0\u00a0\u00a0\u00a0 Link encap:UNSPEC\u00a0 HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00<\/span><br \/><span style=\"color: #0000ff\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 inet addr:10.8.0.1\u00a0 P-t-P:10.8.0.2\u00a0 Mask:255.255.255.255<\/span><br \/><span style=\"color: #0000ff\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 UP POINTOPOINT RUNNING NOARP MULTICAST\u00a0 MTU:1500\u00a0 Metric:1<\/span><br \/><span style=\"color: #0000ff\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 RX packets:0 errors:0 dropped:0 overruns:0 frame:0<\/span><br \/><span style=\"color: #0000ff\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0<\/span><br \/><span style=\"color: #0000ff\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 collisions:0 txqueuelen:100<\/span><br \/><span style=\"color: #0000ff\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 RX bytes:0 (0.0 B)\u00a0 TX bytes:0 (0.0 B)<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5e95\u4e0b\u6587\u7ae0\u53c3\u8003\uff1a Raspberry Pi \u2022 View topic &#8211; [How to] Dyna &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/2blog.ilc.edu.tw\/25793\/2014\/10\/03\/banana-pi-%e6%b8%ac%e8%a9%a6-bananian-%e7%af%87-%e5%ae%89%e8%a3%9d-openvpn-server\/\" class=\"more-link\">\u95b1\u8b80\u5168\u6587<span class=\"screen-reader-text\">\u3008Banana Pi \u6e2c\u8a66 &#8211; Bananian \u7bc7 \u5b89\u88dd OpenVPN Server\u3009<\/span><\/a><\/p>\n","protected":false},"author":55,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[162,168],"tags":[],"class_list":["post-18489","post","type-post","status-publish","format-standard","hentry","category-c-83744","category-c-84780"],"meta_key":{"_pingme":["1"],"_encloseme":["1"],"lt_post_id":["518843"]},"_links":{"self":[{"href":"https:\/\/2blog.ilc.edu.tw\/25793\/wp-json\/wp\/v2\/posts\/18489"}],"collection":[{"href":"https:\/\/2blog.ilc.edu.tw\/25793\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/2blog.ilc.edu.tw\/25793\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/2blog.ilc.edu.tw\/25793\/wp-json\/wp\/v2\/users\/55"}],"replies":[{"embeddable":true,"href":"https:\/\/2blog.ilc.edu.tw\/25793\/wp-json\/wp\/v2\/comments?post=18489"}],"version-history":[{"count":1,"href":"https:\/\/2blog.ilc.edu.tw\/25793\/wp-json\/wp\/v2\/posts\/18489\/revisions"}],"predecessor-version":[{"id":20129,"href":"https:\/\/2blog.ilc.edu.tw\/25793\/wp-json\/wp\/v2\/posts\/18489\/revisions\/20129"}],"wp:attachment":[{"href":"https:\/\/2blog.ilc.edu.tw\/25793\/wp-json\/wp\/v2\/media?parent=18489"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/2blog.ilc.edu.tw\/25793\/wp-json\/wp\/v2\/categories?post=18489"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/2blog.ilc.edu.tw\/25793\/wp-json\/wp\/v2\/tags?post=18489"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}