{"id":19280,"date":"2016-08-25T06:00:32","date_gmt":"2016-08-24T22:00:32","guid":{"rendered":"https:\/\/2blog.ilc.edu.tw\/25793\/2016\/08\/25\/%e5%9c%a8-centos-7-x-%e4%b8%8a%e4%bd%bf%e7%94%a8-openvpn\/"},"modified":"2021-03-18T17:24:48","modified_gmt":"2021-03-18T09:24:48","slug":"%e5%9c%a8-centos-7-x-%e4%b8%8a%e4%bd%bf%e7%94%a8-openvpn","status":"publish","type":"post","link":"https:\/\/2blog.ilc.edu.tw\/25793\/2016\/08\/25\/%e5%9c%a8-centos-7-x-%e4%b8%8a%e4%bd%bf%e7%94%a8-openvpn\/","title":{"rendered":"\u5728 CentOS 7.x \u4e0a\u4f7f\u7528 OpenVPN"},"content":{"rendered":"<p>\u53c3\u8003\u7db2\u7ad9\uff1a<br \/><a href=\"http:\/\/dreamtails.pixnet.net\/blog\/post\/30797812-centos-7-install-openvpn\" target=\"_blank\" rel=\"noopener noreferrer\">CentOS 7 install OpenVPN @ \u56de\u61b6&#8230;&#8230;! :: \u75de\u5ba2\u90a6 PIXNET ::<\/a><br \/><a href=\"http:\/\/www.phpini.com\/linux\/centos-7-install-openvpn-server\" target=\"_blank\" rel=\"noopener noreferrer\">CentOS 7 \u5b89\u88dd OpenVPN Server \u2013 Linux \u6280\u8853\u624b\u672d<\/a><\/p>\n<p>1. \u5b89\u88dd epel \u5957\u4ef6\u5eab<br \/># <span style=\"color: #ff0000\">yum install epel-release<\/span><\/p>\n<p>2. \u5b89\u88dd OpenVPN \u5957\u4ef6<br \/># <span style=\"color: #ff0000\">yum install openvpn<\/span><\/p>\n<p>3. \u5b89\u88dd Easy RSA \u5957\u4ef6\uff0c\u4e4b\u5f8c\u8981\u7522\u751f Key \u7684<br \/># <span style=\"color: #ff0000\">yum install easy-rsa<\/span>[@more@]4. \u8907\u88fd server.conf \u7684\u7bc4\u4f8b\u6a94\u81f3 openvpn \u8a2d\u5b9a\u6a94\u76ee\u9304<br \/># <span style=\"color: #ff0000\">cp \/usr\/share\/doc\/openvpn-*\/sample\/sample-config-files\/server.conf \/etc\/openvpn<\/span><\/p>\n<p>5. \u5099\u4efd\u539f\u8a2d\u5b9a\u6a94<br \/># <span style=\"color: #ff0000\">cp \/etc\/openvpn\/server.conf \/etc\/openvpn\/server.conf.$(date +%F)<\/span><\/p>\n<p>6. \u4fee\u6539 <span style=\"color: #0000ff\">\/etc\/openvpn\/server.conf<\/span> \u8a2d\u5b9a\u6a94<br \/># <span style=\"color: #ff0000\">egrep -v &#8220;^#|^$|^;&#8221; \/etc\/openvpn\/server.conf<\/span><br \/><span style=\"color: #0000ff\">port 1194<\/span><br \/><span style=\"color: #0000ff\">proto tcp<\/span><br \/><span style=\"color: #0000ff\">dev tun<\/span><br \/><span style=\"color: #0000ff\">ca ca.crt<\/span><br \/><span style=\"color: #0000ff\">cert server.crt<\/span><br \/><span style=\"color: #0000ff\">key server.key\u00a0 # This file should be kept secret<\/span><br \/><span style=\"color: #0000ff\">dh dh2048.pem<\/span><br \/><span style=\"color: #0000ff\">server 10.8.0.0 255.255.255.0<\/span><br \/><span style=\"color: #0000ff\">ifconfig-pool-persist ipp.txt<\/span><br \/><span style=\"color: #0000ff\">push &#8220;route 10.8.0.0 255.255.255.0&#8221;<\/span><br \/><span style=\"color: #0000ff\">push &#8220;redirect-gateway def1 bypass-dhcp&#8221;<\/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 8.8.8.8&#8221;<\/span><br \/><span style=\"color: #0000ff\">client-to-client<\/span><br \/><span style=\"color: #0000ff\">duplicate-cn<\/span><br \/><span style=\"color: #0000ff\">keepalive 10 120<\/span><br \/><span style=\"color: #0000ff\">tls-auth ta.key 0 # This file is secret<\/span><br \/><span style=\"color: #0000ff\">comp-lzo<\/span><br \/><span style=\"color: #0000ff\">max-clients 10<\/span><br \/><span style=\"color: #0000ff\">user nobody<\/span><br \/><span style=\"color: #0000ff\">group nobody<\/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><\/p>\n<p>7. \u5efa\u7acb Easy RSA \u8981\u7522\u751f Key \u7684\u76ee\u9304<br \/># <span style=\"color: #ff0000\">mkdir -p \/etc\/openvpn\/easy-rsa\/keys<\/span><\/p>\n<p>8. \u8907\u88fd Easy RSA \u7bc4\u4f8b\u6a94\u81f3 Easy RSA \u8a2d\u5b9a\u6a94\u76ee\u9304<br \/># <span style=\"color: #ff0000\">cp -rf \/usr\/share\/easy-rsa\/2.0\/* \/etc\/openvpn\/easy-rsa<\/span><\/p>\n<p>9. \u8acb\u60c5\u6cc1\u4fee\u6539 <span style=\"color: #0000ff\">\/etc\/openvpn\/easy-rsa\/vars<\/span> \u4e2d\u7684\u8b8a\u6578<br \/><span style=\"color: #0000ff\">export KEY_COUNTRY=&#8221;US&#8221;<\/span><br \/><span style=\"color: #0000ff\">export KEY_PROVINCE=&#8221;CA&#8221;<\/span><br \/><span style=\"color: #0000ff\">export KEY_CITY=&#8221;SanFrancisco&#8221;<\/span><br \/><span style=\"color: #0000ff\">export KEY_ORG=&#8221;Fort-Funston&#8221;<\/span><br \/><span style=\"color: #0000ff\">export KEY_EMAIL=&#8221;me@myhost.mydomain&#8221;<\/span><br \/><span style=\"color: #0000ff\">export KEY_OU=&#8221;MyOrganizationalUnit&#8221;<\/span><\/p>\n<p><span style=\"color: #0000ff\"># X509 Subject Field<\/span><br \/><span style=\"color: #0000ff\">export KEY_NAME=&#8221;EasyRSA&#8221;<\/span><\/p>\n<p>10. \u4ee5\u4e0b\u70ba\u958b\u59cb\u505a\u5efa\u7acb\u6191\u8b49\u7684\u52d5\u4f5c:<br \/># <span style=\"color: #ff0000\">cp \/etc\/openvpn\/easy-rsa\/openssl-1.0.0.cnf \/etc\/openvpn\/easy-rsa\/openssl.cnf<\/span><br \/># <span style=\"color: #ff0000\">cd \/etc\/openvpn\/easy-rsa<\/span><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># <span style=\"color: #ff0000\">.\/clean-all<\/span><br \/># <span style=\"color: #ff0000\">.\/build-ca<\/span><br \/># <span style=\"color: #ff0000\">.\/build-key-server server<\/span><\/p>\n<p># <span style=\"color: #ff0000\">.\/build-dh<\/span><br \/># <span style=\"color: #ff0000\">cd \/etc\/openvpn\/easy-rsa\/keys<\/span><br \/># <span style=\"color: #ff0000\">cp dh2048.pem ca.crt server.crt server.key \/etc\/openvpn<\/span><br \/># <span style=\"color: #ff0000\">cd \/etc\/openvpn\/easy-rsa<\/span><br \/># <span style=\"color: #ff0000\">.\/build-key client<\/span><\/p>\n<p>11. \u7522\u751f ta.key<br \/># <span style=\"color: #ff0000\">cd \/etc\/openvpn\/<\/span><br \/># <span style=\"color: #ff0000\">openvpn &#8211;genkey &#8211;secret ta.key<\/span><\/p>\n<p>12. \u5b89\u88dd iptables \u7684\u76f8\u95dc packages \u8207\u8a2d\u5b9a iptables<br \/># <span style=\"color: #ff0000\">yum install iptables-services -y<\/span><br \/># <span style=\"color: #ff0000\">systemctl mask firewalld<\/span><br \/># <span style=\"color: #ff0000\">systemctl enable iptables<\/span><br \/><span style=\"color: #0000ff\">Created symlink from \/etc\/systemd\/system\/basic.target.wants\/iptables.service to \/usr\/lib\/systemd\/system\/iptables.service.<\/span><br \/># <span style=\"color: #ff0000\">systemctl stop firewalld<\/span><br \/># <span style=\"color: #ff0000\">systemctl start iptables<\/span><br \/># <span style=\"color: #ff0000\">iptables &#8211;flush<\/span><\/p>\n<p>13. iptables \u9632\u706b\u7246\u4e0a\u7684\u8a2d\u5b9a <br \/>\u5c07 Source IP range \u70ba 10.8.0.0\/24 \u7684 IP \u505a NAT \u5f8c\uff0c\u4e26\u7531 ppp0 \u51fa\u53bb<br \/># <span style=\"color: #ff0000\">iptables -A FORWARD -i tun0 -s 10.8.0.0\/24 -j ACCEPT<\/span><br \/># <span style=\"color: #ff0000\">iptables -t nat -A POSTROUTING -s 10.8.0.0\/24 -o ppp0 -j MASQUERADE<\/span><br \/># <span style=\"color: #ff0000\">iptables-save &gt; \/etc\/sysconfig\/iptables<\/span><br \/># <span style=\"color: #ff0000\">systemctl restart iptables<\/span><\/p>\n<p>14. \u4fee\u6539<span style=\"color: #0000ff\"> \/etc\/sysctl.conf<\/span> \u8a2d\u5b9a<br \/># <span style=\"color: #ff0000\">vim \/etc\/sysctl.conf<\/span><br \/>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\uff0e\uff0e\uff0e\uff0e\uff0e\uff0e<br \/><span style=\"color: #0000ff\">net.ipv4.ip_forward = 1<\/span><br \/>\uff0e\uff0e\uff0e\uff0e\uff0e\uff0e<br \/>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p>15. \u555f\u52d5 OpenVPN \u670d\u52d9\uff0c\u4e26\u8a2d\u5b9a\u958b\u6a5f\u6642\u555f\u52d5<br \/># <span style=\"color: #ff0000\">systemctl start openvpn@server.service<\/span><br \/># <span style=\"color: #ff0000\">systemctl enable openvpn@server.service<\/span><br \/><span style=\"color: #0000ff\">Created symlink from \/etc\/systemd\/system\/multi-user.target.wants\/openvpn@server.service to \/usr\/lib\/systemd\/system\/openvpn@.service.<\/span><\/p>\n<p>16. \u6aa2\u67e5 OpenVPN \u670d\u52d9\u72c0\u614b<br \/># <span style=\"color: #ff0000\">systemctl status openvpn@server.service<\/span><br \/><span style=\"color: #0000ff\">\u25cf openvpn@server.service &#8211; OpenVPN Robust And Highly Flexible Tunneling Application On server<\/span><br \/><span style=\"color: #0000ff\">\u00a0\u00a0 Loaded: loaded (\/usr\/lib\/systemd\/system\/openvpn@.service; enabled; vendor preset: disabled)<\/span><br \/><span style=\"color: #0000ff\">\u00a0\u00a0 Active: active (running) since \u65e5 2016-08-14 15:13:07 CST; 9s ago<\/span><br \/><span style=\"color: #0000ff\">\u00a0 Process: 2294 ExecStart=\/usr\/sbin\/openvpn &#8211;daemon &#8211;writepid \/var\/run\/openvpn\/%i.pid &#8211;cd \/etc\/openvpn\/ &#8211;config %i.conf (code=exited, status=0\/SUCCESS)<\/span><br \/><span style=\"color: #0000ff\">\u00a0Main PID: 2295 (openvpn)<\/span><br \/><span style=\"color: #0000ff\">\u00a0\u00a0 CGroup: \/system.slice\/system-openvpn.slice\/openvpn@server.service<\/span><br \/><span style=\"color: #0000ff\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 mq2295 \/usr\/sbin\/openvpn &#8211;daemon &#8211;writepid \/var\/run\/openvpn\/server.pid &#8211;cd \/etc\/openvpn\/ &#8211;config server.conf<\/span><\/p>\n<p>17. \u6aa2\u67e5 OpenVPN \u662f\u5426\u6709\u6b63\u5e38\u555f\u52d5<br \/># <span style=\"color: #ff0000\">netstat -antulp | grep :1194<\/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:1194\u00a0\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 1<span style=\"color: #ff0000\">039\/openvpn<\/span><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u53c3\u8003\u7db2\u7ad9\uff1aCentOS 7 install OpenVPN @ \u56de\u61b6&#8230;&#8230;! :: \u75de\u5ba2 &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/2blog.ilc.edu.tw\/25793\/2016\/08\/25\/%e5%9c%a8-centos-7-x-%e4%b8%8a%e4%bd%bf%e7%94%a8-openvpn\/\" class=\"more-link\">\u95b1\u8b80\u5168\u6587<span class=\"screen-reader-text\">\u3008\u5728 CentOS 7.x \u4e0a\u4f7f\u7528 OpenVPN\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":[117,168],"tags":[],"class_list":["post-19280","post","type-post","status-publish","format-standard","hentry","category-c-78462","category-c-84780"],"meta_key":{"_pingme":["1"],"_encloseme":["1"],"lt_post_id":["650586"]},"_links":{"self":[{"href":"https:\/\/2blog.ilc.edu.tw\/25793\/wp-json\/wp\/v2\/posts\/19280"}],"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=19280"}],"version-history":[{"count":1,"href":"https:\/\/2blog.ilc.edu.tw\/25793\/wp-json\/wp\/v2\/posts\/19280\/revisions"}],"predecessor-version":[{"id":20830,"href":"https:\/\/2blog.ilc.edu.tw\/25793\/wp-json\/wp\/v2\/posts\/19280\/revisions\/20830"}],"wp:attachment":[{"href":"https:\/\/2blog.ilc.edu.tw\/25793\/wp-json\/wp\/v2\/media?parent=19280"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/2blog.ilc.edu.tw\/25793\/wp-json\/wp\/v2\/categories?post=19280"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/2blog.ilc.edu.tw\/25793\/wp-json\/wp\/v2\/tags?post=19280"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}