{"id":31311,"date":"2025-10-08T13:41:11","date_gmt":"2025-10-08T10:41:11","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=31311"},"modified":"2025-10-08T13:41:11","modified_gmt":"2025-10-08T10:41:11","slug":"ubuntu-14-04-uzerinde-docker-konteynerinde-openvpn-calistirma-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-docker-konteynerinde-openvpn-calistirma-rehberi\/","title":{"rendered":"Ubuntu 14.04 \u00dczerinde Docker Konteynerinde OpenVPN \u00c7al\u0131\u015ft\u0131rma Rehberi"},"content":{"rendered":"<p><body><\/p>\n<h2>Ubuntu 14.04 \u00dczerinde Docker Konteynerinde OpenVPN \u00c7al\u0131\u015ft\u0131rma Rehberi<\/h2>\n<h3>Giri\u015f: OpenVPN, Docker ve Ubuntu 14.04<\/h3>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn dijital d\u00fcnyas\u0131nda, g\u00fcvenli ileti\u015fim ve a\u011f eri\u015fimi her zamankinden daha kritik hale gelmi\u015ftir. Sanal \u00d6zel A\u011flar (VPN&#8217;ler), internet \u00fczerinden g\u00fcvenli ve \u015fifreli ba\u011flant\u0131lar kurarak bu ihtiyac\u0131 kar\u015f\u0131lar. OpenVPN, a\u00e7\u0131k kaynakl\u0131, esnek ve olduk\u00e7a g\u00fcvenli bir VPN \u00e7\u00f6z\u00fcm\u00fcd\u00fcr. Di\u011fer yandan, Docker, uygulamalar\u0131 konteynerler i\u00e7inde izole bir \u015fekilde \u00e7al\u0131\u015ft\u0131rmay\u0131 sa\u011flayan bir platformdur. Bu, uygulamalar\u0131n farkl\u0131 ortamlarda tutarl\u0131 bir \u015fekilde \u00e7al\u0131\u015fmas\u0131n\u0131 garanti eder ve da\u011f\u0131t\u0131m ile y\u00f6netimi kolayla\u015ft\u0131r\u0131r.<\/p>\n<p>Bu makalede, Ubuntu 14.04 i\u015fletim sistemi \u00fczerinde Docker kullanarak bir OpenVPN sunucusunu nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ve y\u00f6netece\u011finizi ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131z. Ubuntu 14.04 eski bir s\u00fcr\u00fcm olsa da, belirli senaryolarda (\u00f6rne\u011fin, eski bir sunucuyu yeniden kullanma veya belirli bir uyumluluk gereksinimini kar\u015f\u0131lama) bu s\u00fcr\u00fcm \u00fczerinde OpenVPN&#8217;i \u00e7al\u0131\u015ft\u0131rma ihtiyac\u0131 do\u011fabilir. Docker&#8217;\u0131n esnekli\u011fi sayesinde, eski bir i\u015fletim sistemi \u00fczerinde bile modern ve g\u00fcncel bir OpenVPN kurulumu ger\u00e7ekle\u015ftirebiliriz.<\/p>\n<p>Bu rehber, OpenVPN&#8217;in kurulumunu basitle\u015ftirmek, ba\u011f\u0131ml\u0131l\u0131k sorunlar\u0131n\u0131 minimize etmek ve sunucunun ta\u015f\u0131nabilirli\u011fini art\u0131rmak i\u00e7in Docker&#8217;\u0131n avantajlar\u0131ndan faydalanacakt\u0131r. Konteynerle\u015ftirilmi\u015f bir OpenVPN sunucusu, ana sistemden izole \u00e7al\u0131\u015f\u0131r, bu da g\u00fcvenlik ve y\u00f6netim a\u00e7\u0131s\u0131ndan \u00f6nemli faydalar sa\u011flar.<\/p>\n<h3>\u00d6n Ko\u015fullar<\/h3>\n<p>Bu rehbere ba\u015flamadan \u00f6nce a\u015fa\u011f\u0131daki \u00f6n ko\u015fullar\u0131n yerine getirildi\u011finden emin olun:<\/p>\n<p>*   <strong>Ubuntu 14.04 Sunucusu:<\/strong> Kurulumu yap\u0131lm\u0131\u015f ve \u00e7al\u0131\u015fan bir Ubuntu 14.04 (Trusty Tahr) sunucusu.<br \/>\n*   <strong>Sudo Yetkileri:<\/strong> Sunucuda <code>sudo<\/code> komutunu kullanabilecek bir kullan\u0131c\u0131 hesab\u0131na sahip olmak.<br \/>\n*   <strong>\u0130nternet Ba\u011flant\u0131s\u0131:<\/strong> Sunucunun internete eri\u015fimi olmas\u0131 gerekmektedir.<br \/>\n*   <strong>Temel Linux Bilgisi:<\/strong> Komut sat\u0131r\u0131 kullan\u0131m\u0131 ve temel Linux komutlar\u0131na a\u015final\u0131k.<br \/>\n*   <strong>A\u011f Bilgisi:<\/strong> Temel a\u011f kavramlar\u0131 (IP adresleri, portlar, g\u00fcvenlik duvarlar\u0131) hakk\u0131nda bilgi sahibi olmak faydal\u0131d\u0131r.<\/p>\n<h3>Ad\u0131m 1: Ubuntu 14.04 Sistemini G\u00fcncelleme ve Gerekli Paketleri Kurma<\/h3>\n<p>\u0130lk olarak, sisteminizin g\u00fcncel oldu\u011fundan ve Docker kurulumu i\u00e7in gerekli temel paketlere sahip oldu\u011fundan emin olal\u0131m. Ubuntu 14.04 eski bir s\u00fcr\u00fcm oldu\u011fundan, baz\u0131 depolar\u0131n art\u0131k aktif olmayabilece\u011fini unutmay\u0131n.<\/p>\n<pre><code class=\"language-bash\">sudo apt-get update\nsudo apt-get upgrade -y<\/code><\/pre>\n<p>Bu komutlar, paket listelerinizi g\u00fcnceller ve mevcut paketlerinizi en son s\u00fcr\u00fcmlerine y\u00fckseltir. Ard\u0131ndan, Docker&#8217;\u0131n ba\u011f\u0131ml\u0131l\u0131klar\u0131 i\u00e7in gerekli olabilecek paketleri kural\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common<\/code><\/pre>\n<p>*   <code>apt-transport-https<\/code>: APT&#8217;nin HTTPS \u00fczerinden depolar\u0131 kullanmas\u0131n\u0131 sa\u011flar.<br \/>\n*   <code>ca-certificates<\/code>: SSL\/TLS sertifikalar\u0131n\u0131 do\u011frulamak i\u00e7in gereklidir.<br \/>\n*   <code>curl<\/code>: Web sayfalar\u0131n\u0131 ve dosyalar\u0131 indirmek i\u00e7in kullan\u0131l\u0131r.<br \/>\n*   <code>software-properties-common<\/code>: Depo eklemek i\u00e7in <code>add-apt-repository<\/code> komutunu sa\u011flar.<\/p>\n<h3>Ad\u0131m 2: Ubuntu 14.04 \u00dczerine Docker Kurulumu<\/h3>\n<p>Ubuntu 14.04 i\u00e7in Docker&#8217;\u0131n en g\u00fcncel s\u00fcr\u00fcm\u00fcn\u00fc y\u00fcklemek yerine, o d\u00f6neme uygun olan ve hala \u00e7al\u0131\u015fabilen bir s\u00fcr\u00fcm\u00fc kurmam\u0131z gerekecek. Docker&#8217;\u0131n resmi deposunu ekleyerek bu i\u015flemi ger\u00e7ekle\u015ftirebiliriz.<\/p>\n<p>1.  <strong>Docker GPG Anahtar\u0131n\u0131 Ekleme:<\/strong><br \/>\n    Docker&#8217;\u0131n resmi deposundan paketleri indirmek i\u00e7in GPG anahtar\u0131n\u0131 sisteminize eklemeniz gerekir.<\/p>\n<pre><code class=\"language-bash\">curl -fsSL https:\/\/download.docker.com\/linux\/ubuntu\/gpg | sudo apt-key add -<\/code><\/pre>\n<p>    Bu komut, Docker&#8217;\u0131n resmi GPG anahtar\u0131n\u0131 indirir ve sisteminize ekler. <code>OK<\/code> \u00e7\u0131kt\u0131s\u0131n\u0131 g\u00f6rmelisiniz.<\/p>\n<p>2.  <strong>Docker Deposunu Ekleme:<\/strong><br \/>\n    \u015eimdi, Docker&#8217;\u0131n Ubuntu 14.04 (trusty) i\u00e7in deposunu sisteminize ekleyelim.<\/p>\n<pre><code class=\"language-bash\">sudo add-apt-repository \"deb [arch=amd64] https:\/\/download.docker.com\/linux\/ubuntu trusty stable\"<\/code><\/pre>\n<p>    Bu komut, Docker&#8217;\u0131n <code>stable<\/code> (kararl\u0131) s\u00fcr\u00fcm\u00fcn\u00fc i\u00e7eren depoyu <code>\/etc\/apt\/sources.list.d\/<\/code> alt\u0131na ekler.<\/p>\n<p>3.  <strong>Paket Listesini G\u00fcncelleme ve Docker Kurulumu:<\/strong><br \/>\n    Yeni depoyu ekledikten sonra paket listesini tekrar g\u00fcncellemeli ve Docker CE&#8217;yi (Community Edition) kurmal\u0131y\u0131z.<\/p>\n<pre><code class=\"language-bash\">sudo apt-get update\n    sudo apt-get install -y docker-ce<\/code><\/pre>\n<p>    Bu komut <code>docker-ce<\/code> paketini kuracakt\u0131r. Kurulum s\u0131ras\u0131nda ba\u011f\u0131ml\u0131l\u0131klar da otomatik olarak y\u00fcklenecektir.<\/p>\n<p>4.  <strong>Docker Kurulumunu Do\u011frulama:<\/strong><br \/>\n    Docker&#8217;\u0131n do\u011fru bir \u015fekilde kurulup kurulmad\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status docker # veya sudo service docker status\n    sudo docker run hello-world<\/code><\/pre>\n<p>    <code>hello-world<\/code> konteynerinin ba\u015far\u0131yla \u00e7al\u0131\u015f\u0131p bir mesaj g\u00f6stermesi, Docker&#8217;\u0131n d\u00fczg\u00fcn \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6sterir.<br \/>\n    E\u011fer <code>systemctl<\/code> komutu bulunamazsa, Ubuntu 14.04 <code>upstart<\/code> kullan\u0131yor olabilir. Bu durumda <code>sudo service docker status<\/code> komutunu kullan\u0131n.<\/p>\n<p>5.  <strong>Kullan\u0131c\u0131y\u0131 <code>docker<\/code> Grubuna Ekleme (Opsiyonel ama \u00d6nerilir):<\/strong><br \/>\n    <code>sudo<\/code> kullanmadan Docker komutlar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rmak i\u00e7in kullan\u0131c\u0131n\u0131z\u0131 <code>docker<\/code> grubuna ekleyebilirsiniz.<\/p>\n<pre><code class=\"language-bash\">sudo usermod -aG docker $USER<\/code><\/pre>\n<p>    Bu de\u011fi\u015fikliklerin etkili olmas\u0131 i\u00e7in oturumu kapat\u0131p tekrar a\u00e7man\u0131z veya sistemi yeniden ba\u015flatman\u0131z gerekebilir: <code>newgrp docker<\/code>.<\/p>\n<h3>Ad\u0131m 3: OpenVPN Konteyneri \u0130\u00e7in Uygun Bir Docker \u0130maj\u0131 Se\u00e7imi<\/h3>\n<p>OpenVPN sunucusu kurmak i\u00e7in bir\u00e7ok Docker imaj\u0131 bulunmaktad\u0131r. Bu rehberde, pop\u00fcler ve iyi bak\u0131m\u0131 yap\u0131lan <code>kylemanna\/openvpn<\/code> imaj\u0131n\u0131 kullanaca\u011f\u0131z. Bu imaj, OpenVPN sunucusunu h\u0131zl\u0131 ve kolay bir \u015fekilde kurmak i\u00e7in gerekli t\u00fcm ara\u00e7lar\u0131 (Easy-RSA gibi) i\u00e7erir.<\/p>\n<h3>Ad\u0131m 4: OpenVPN Sunucusunu Yap\u0131land\u0131rma ve Ba\u015flatma<\/h3>\n<p>OpenVPN sunucusunu Docker \u00fczerinde \u00e7al\u0131\u015ft\u0131rmak, kal\u0131c\u0131 veri depolamas\u0131 i\u00e7in bir Docker volume (hacim) olu\u015fturmay\u0131 ve ard\u0131ndan sunucuyu ba\u015flatmak i\u00e7in gerekli komutlar\u0131 \u00e7al\u0131\u015ft\u0131rmay\u0131 i\u00e7erir.<\/p>\n<h4>4.1. Veri Hacmi Olu\u015fturma<\/h4>\n<p>OpenVPN sunucu yap\u0131land\u0131rmas\u0131, sertifikalar ve anahtarlar gibi \u00f6nemli veriler konteyner silindi\u011finde kaybolmamal\u0131d\u0131r. Bu nedenle, kal\u0131c\u0131 bir veri hacmi (volume) olu\u015fturaca\u011f\u0131z.<\/p>\n<pre><code class=\"language-bash\">docker volume create ovpn-data<\/code><\/pre>\n<p>Bu komut <code>ovpn-data<\/code> ad\u0131nda bir Docker hacmi olu\u015fturur. Bu hacim, OpenVPN konteynerinin i\u00e7indeki <code>\/etc\/openvpn<\/code> dizinine ba\u011flanacakt\u0131r.<\/p>\n<h4>4.2. OpenVPN Sunucu Yap\u0131land\u0131rmas\u0131n\u0131 Olu\u015fturma<\/h4>\n<p><code>kylemanna\/openvpn<\/code> imaj\u0131, sunucu yap\u0131land\u0131rmas\u0131n\u0131 ve PKI&#8217;y\u0131 (Public Key Infrastructure) ba\u015flatmak i\u00e7in kullan\u0131\u015fl\u0131 komutlar sunar. \u0130lk olarak, sunucu yap\u0131land\u0131rma dosyas\u0131n\u0131 (server.conf) olu\u015fturaca\u011f\u0131z. Bu i\u015flem s\u0131ras\u0131nda sunucunuzun harici IP adresini veya alan ad\u0131n\u0131 belirtmeniz gerekecektir.<\/p>\n<pre><code class=\"language-bash\">docker run -v ovpn-data:\/etc\/openvpn --log-driver=none --rm kylemanna\/openvpn ovpn_genconfig -u udp:\/\/<SUNUCU_IP_ADRES\u0130_VEYA_ALAN_ADI><\/code><\/pre>\n<p>*   <code>-v ovpn-data:\/etc\/openvpn<\/code>: <code>ovpn-data<\/code> hacmini konteyner i\u00e7indeki <code>\/etc\/openvpn<\/code> dizinine ba\u011flar.<br \/>\n*   <code>--log-driver=none<\/code>: Bu komutun g\u00fcnl\u00fcklerini kaydetmez (ge\u00e7ici bir i\u015flem oldu\u011fu i\u00e7in).<br \/>\n*   <code>--rm<\/code>: Komut tamamland\u0131\u011f\u0131nda konteyneri otomatik olarak siler.<br \/>\n*   <code>kylemanna\/openvpn<\/code>: Kullan\u0131lacak Docker imaj\u0131.<br \/>\n*   <code>ovpn_genconfig -u udp:\/\/<SUNUCU_IP_ADRES\u0130_VEYA_ALAN_ADI><\/code>: OpenVPN yap\u0131land\u0131rma dosyas\u0131n\u0131 olu\u015fturur. <code><SUNUCU_IP_ADRES\u0130_VEYA_ALAN_ADI><\/code> yerine sunucunuzun herkese a\u00e7\u0131k IP adresini veya bir alan ad\u0131n\u0131 yaz\u0131n (\u00f6rne\u011fin, <code>vpn.example.com<\/code>). <code>udp<\/code> protokol\u00fcn\u00fc kullan\u0131yoruz, bu varsay\u0131lan ve genellikle daha h\u0131zl\u0131d\u0131r.<\/p>\n<p>E\u011fer VPN istemcilerinin internete eri\u015fmesini istiyorsan\u0131z, VPN a\u011f\u0131na bir DNS sunucusu ataman\u0131z gerekir. Bunu <code>ovpn_genconfig<\/code> komutuna ekleyebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">docker run -v ovpn-data:\/etc\/openvpn --log-driver=none --rm kylemanna\/openvpn ovpn_genconfig -u udp:\/\/<SUNUCU_IP_ADRES\u0130_VEYA_ALAN_ADI> -e \"push \\\"dhcp-option DNS 8.8.8.8\\\"\" -e \"push \\\"dhcp-option DNS 8.8.4.4\\\"\"<\/code><\/pre>\n<p>Bu komut, Google&#8217;\u0131n DNS sunucular\u0131n\u0131 (8.8.8.8 ve 8.8.4.4) VPN istemcilerine iletecektir.<\/p>\n<h4>4.3. PKI&#8217;y\u0131 Ba\u015flatma<\/h4>\n<p>OpenVPN, g\u00fcvenli\u011fi sa\u011flamak i\u00e7in PKI kullan\u0131r. Bu ad\u0131mda, bir Sertifika Yetkilisi (CA), sunucu anahtar\u0131 ve Diffie-Hellman parametreleri olu\u015fturaca\u011f\u0131z. Bu i\u015flem biraz zaman alabilir.<\/p>\n<pre><code class=\"language-bash\">docker run -v ovpn-data:\/etc\/openvpn --log-driver=none --rm -it kylemanna\/openvpn ovpn_initpki<\/code><\/pre>\n<p>Bu komutu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, CA i\u00e7in bir parola belirlemeniz istenecektir. G\u00fc\u00e7l\u00fc bir parola se\u00e7in ve unutmay\u0131n. Ayr\u0131ca, &#8220;Common Name&#8221; (Ortak Ad) soruldu\u011funda, varsay\u0131lan de\u011feri (genellikle <code><SUNUCU_IP_ADRES\u0130_VEYA_ALAN_ADI><\/code>) onaylamak i\u00e7in Enter tu\u015funa basabilirsiniz.<\/p>\n<h4>4.4. OpenVPN Sunucusunu Ba\u015flatma<\/h4>\n<p>Art\u0131k yap\u0131land\u0131rma ve PKI haz\u0131r oldu\u011funa g\u00f6re, OpenVPN sunucusunu bir Docker konteyneri olarak ba\u015flatabiliriz.<\/p>\n<pre><code class=\"language-bash\">docker run -d \\\n    --name openvpn-server \\\n    --restart=always \\\n    --cap-add=NET_ADMIN \\\n    -p 1194:1194\/udp \\\n    -v ovpn-data:\/etc\/openvpn \\\n    kylemanna\/openvpn<\/code><\/pre>\n<p>Bu komutun a\u00e7\u0131klamas\u0131:<\/p>\n<p>*   <code>-d<\/code>: Konteyneri arka planda (detached mode) \u00e7al\u0131\u015ft\u0131r\u0131r.<br \/>\n*   <code>--name openvpn-server<\/code>: Konteynere <code>openvpn-server<\/code> ad\u0131n\u0131 verir. Bu ad\u0131 daha sonra konteyneri y\u00f6netmek i\u00e7in kullanabilirsiniz.<br \/>\n*   <code>--restart=always<\/code>: Konteynerin her zaman otomatik olarak yeniden ba\u015flat\u0131lmas\u0131n\u0131 sa\u011flar (sistem yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda veya konteyner \u00e7\u00f6kt\u00fc\u011f\u00fcnde).<br \/>\n*   <code>--cap-add=NET_ADMIN<\/code>: Konteynerin a\u011f aray\u00fczlerini de\u011fi\u015ftirmesine ve y\u00f6nlendirme tablolar\u0131n\u0131 ayarlamas\u0131na izin veren <code>NET_ADMIN<\/code> yetene\u011fini ekler. OpenVPN i\u00e7in bu gereklidir.<br \/>\n*   <code>-p 1194:1194\/udp<\/code>: Ana sistemin 1194\/UDP portunu konteynerin 1194\/UDP portuna y\u00f6nlendirir. OpenVPN varsay\u0131lan olarak bu portu kullan\u0131r.<br \/>\n*   <code>-v ovpn-data:\/etc\/openvpn<\/code>: <code>ovpn-data<\/code> hacmini konteynerin <code>\/etc\/openvpn<\/code> dizinine ba\u011flar.<br \/>\n*   <code>kylemanna\/openvpn<\/code>: Kullan\u0131lacak Docker imaj\u0131.<\/p>\n<p>Konteynerin \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 do\u011frulamak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">docker ps<\/code><\/pre>\n<p><code>openvpn-server<\/code> adl\u0131 bir konteynerin \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6rmelisiniz.<\/p>\n<h3>Ad\u0131m 5: A\u011f Y\u00f6nlendirmeyi Etkinle\u015ftirme ve G\u00fcvenlik Duvar\u0131 Kurallar\u0131<\/h3>\n<p>OpenVPN istemcilerinin sunucu \u00fczerinden internete eri\u015febilmesi i\u00e7in, sunucunuzda IP y\u00f6nlendirmeyi etkinle\u015ftirmeniz ve uygun g\u00fcvenlik duvar\u0131 (NAT) kurallar\u0131n\u0131 ayarlaman\u0131z gerekir.<\/p>\n<h4>5.1. IP Y\u00f6nlendirmeyi Etkinle\u015ftirme<\/h4>\n<p>Sunucunun IP paketlerini bir a\u011f aray\u00fcz\u00fcnden di\u011ferine y\u00f6nlendirmesi i\u00e7in IP y\u00f6nlendirmeyi etkinle\u015ftirmemiz gerekir.<\/p>\n<pre><code class=\"language-bash\">sudo sysctl -w net.ipv4.ip_forward=1<\/code><\/pre>\n<p>Bu komut, IP y\u00f6nlendirmeyi hemen etkinle\u015ftirir. Ancak, sistem yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda bu ayar kaybolacakt\u0131r. Kal\u0131c\u0131 hale getirmek i\u00e7in <code>\/etc\/sysctl.conf<\/code> dosyas\u0131n\u0131 d\u00fczenlemelisiniz:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/sysctl.conf<\/code><\/pre>\n<p>Dosyan\u0131n i\u00e7inde a\u015fa\u011f\u0131daki sat\u0131r\u0131 bulun veya ekleyin:<\/p>\n<pre><code class=\"language-\">net.ipv4.ip_forward = 1<\/code><\/pre>\n<p>De\u011fi\u015fiklikleri kaydedin ve dosyay\u0131 kapat\u0131n (Ctrl+O, Enter, Ctrl+X). De\u011fi\u015fikliklerin etkili olmas\u0131 i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo sysctl -p<\/code><\/pre>\n<h4>5.2. G\u00fcvenlik Duvar\u0131 (NAT) Kurallar\u0131n\u0131 Ayarlama<\/h4>\n<p>OpenVPN istemcileri sunucuya ba\u011fland\u0131\u011f\u0131nda, sunucu bu istemcilerin internete eri\u015fimi i\u00e7in bir NAT (Network Address Translation) g\u00f6revi g\u00f6rmelidir. Bu, <code>iptables<\/code> kurallar\u0131 ile yap\u0131l\u0131r.<\/p>\n<p>\u00d6ncelikle, sunucunuzun ana a\u011f aray\u00fcz\u00fcn\u00fcn ad\u0131n\u0131 bulman\u0131z gerekir (\u00f6rne\u011fin, <code>eth0<\/code>, <code>enp0s3<\/code>).<\/p>\n<pre><code class=\"language-bash\">ip route show default<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da <code>dev <aray\u00fcz_ad\u0131><\/code> k\u0131sm\u0131n\u0131 aray\u0131n. \u00d6rne\u011fin, <code>default via 192.168.1.1 dev eth0<\/code> ise aray\u00fcz ad\u0131n\u0131z <code>eth0<\/code>&#8216;d\u0131r.<\/p>\n<p>\u015eimdi, NAT kural\u0131n\u0131 ekleyelim. <code><ANA_A\u011e_ARAY\u00dcZ\u00dc><\/code> yerine kendi aray\u00fcz ad\u0131n\u0131z\u0131 yaz\u0131n.<\/p>\n<pre><code class=\"language-bash\">sudo iptables -t nat -A POSTROUTING -s 10.8.0.0\/24 -o <ANA_A\u011e_ARAY\u00dcZ\u00dc> -j MASQUERADE\nsudo iptables -A FORWARD -i tun0 -o <ANA_A\u011e_ARAY\u00dcZ\u00dc> -j ACCEPT\nsudo iptables -A FORWARD -i <ANA_A\u011e_ARAY\u00dcZ\u00dc> -o tun0 -j ACCEPT<\/code><\/pre>\n<p>*   <code>10.8.0.0\/24<\/code>: Bu, OpenVPN sunucusunun istemcilere atad\u0131\u011f\u0131 varsay\u0131lan IP aral\u0131\u011f\u0131d\u0131r. E\u011fer <code>ovpn_genconfig<\/code> s\u0131ras\u0131nda farkl\u0131 bir aral\u0131k belirttiyseniz, onu kullan\u0131n.<br \/>\n*   <code>tun0<\/code>: OpenVPN&#8217;in olu\u015fturdu\u011fu sanal a\u011f aray\u00fcz\u00fcd\u00fcr.<\/p>\n<p><strong>G\u00fcvenlik Duvar\u0131 Kurallar\u0131n\u0131 Kal\u0131c\u0131 Hale Getirme:<\/strong><br \/>\n<code>iptables<\/code> kurallar\u0131, sistem yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda kaybolur. Bunlar\u0131 kal\u0131c\u0131 hale getirmek i\u00e7in <code>iptables-persistent<\/code> paketini kullanabiliriz.<\/p>\n<pre><code class=\"language-bash\">sudo apt-get install -y iptables-persistent<\/code><\/pre>\n<p>Kurulum s\u0131ras\u0131nda mevcut <code>iptables<\/code> kurallar\u0131n\u0131 kaydetmek isteyip istemedi\u011finiz sorulacakt\u0131r. Evet&#8217;i se\u00e7in. E\u011fer daha sonra kurallar\u0131 manuel olarak kaydetmeniz gerekirse:<\/p>\n<pre><code class=\"language-bash\">sudo netfilter-persistent save<\/code><\/pre>\n<h3>Ad\u0131m 6: \u0130stemci Yap\u0131land\u0131rma Dosyalar\u0131n\u0131 Olu\u015fturma<\/h3>\n<p>VPN istemcilerinin sunucuya ba\u011flanabilmesi i\u00e7in <code>.ovpn<\/code> uzant\u0131l\u0131 bir yap\u0131land\u0131rma dosyas\u0131na ihtiya\u00e7lar\u0131 vard\u0131r. Bu dosyalar, istemcinin kimlik do\u011frulama i\u00e7in kullanaca\u011f\u0131 sertifikalar\u0131 ve anahtarlar\u0131 i\u00e7erir.<\/p>\n<h4>6.1. \u0130stemci Sertifikas\u0131 ve Anahtar\u0131 Olu\u015fturma<\/h4>\n<p>Her istemci i\u00e7in benzersiz bir sertifika ve anahtar \u00e7ifti olu\u015fturmal\u0131s\u0131n\u0131z. <code><\u0130STEMC\u0130_ADI><\/code> yerine istemciniz i\u00e7in a\u00e7\u0131klay\u0131c\u0131 bir ad kullan\u0131n (\u00f6rne\u011fin, <code>laptop_user<\/code>, <code>mobile_phone<\/code>).<\/p>\n<pre><code class=\"language-bash\">docker run -v ovpn-data:\/etc\/openvpn --log-driver=none --rm -it kylemanna\/openvpn easyrsa build-client-full <\u0130STEMC\u0130_ADI> nopass<\/code><\/pre>\n<p>*   <code>nopass<\/code>: \u0130stemci anahtar\u0131 i\u00e7in parola istemez. E\u011fer parola korumal\u0131 bir anahtar istiyorsan\u0131z, <code>nopass<\/code> k\u0131sm\u0131n\u0131 \u00e7\u0131kar\u0131n.<\/p>\n<p>Bu komutu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, daha \u00f6nce belirledi\u011finiz CA parolas\u0131n\u0131 girmeniz istenecektir.<\/p>\n<h4>6.2. \u0130stemci Yap\u0131land\u0131rma Dosyas\u0131n\u0131 D\u0131\u015far\u0131 Aktarma<\/h4>\n<p>Olu\u015fturulan istemci sertifikalar\u0131 ve anahtarlar\u0131, <code>ovpn-data<\/code> hacminin i\u00e7indedir. Bu verileri i\u00e7eren <code>.ovpn<\/code> dosyas\u0131n\u0131 sunucunuzun dosya sistemine aktarmam\u0131z gerekiyor.<\/p>\n<pre><code class=\"language-bash\">docker run -v ovpn-data:\/etc\/openvpn --log-driver=none --rm kylemanna\/openvpn ovpn_getclient <\u0130STEMC\u0130_ADI> > <\u0130STEMC\u0130_ADI>.ovpn<\/code><\/pre>\n<p>Bu komut, <code>ovpn-data<\/code> i\u00e7indeki gerekli t\u00fcm bilgileri toplar ve <code><\u0130STEMC\u0130_ADI>.ovpn<\/code> ad\u0131nda tek bir yap\u0131land\u0131rma dosyas\u0131 olu\u015fturur. Bu dosya, komutu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131z dizine kaydedilecektir.<\/p>\n<h4>6.3. \u0130stemci Dosyas\u0131n\u0131 Da\u011f\u0131tma<\/h4>\n<p>Olu\u015fturdu\u011funuz <code>.ovpn<\/code> dosyas\u0131n\u0131, VPN&#8217;e ba\u011flanmak isteyen istemci cihaz\u0131na g\u00fcvenli bir \u015fekilde aktar\u0131n (\u00f6rne\u011fin, SCP, SFTP veya USB bellek arac\u0131l\u0131\u011f\u0131yla). Bu dosyay\u0131 e-posta ile g\u00f6ndermek g\u00fcvenli de\u011fildir.<\/p>\n<p>\u0130stemci taraf\u0131nda, OpenVPN yaz\u0131l\u0131m\u0131n\u0131 kurman\u0131z (Windows, macOS, Linux i\u00e7in) veya mobil uygulamay\u0131 (Android, iOS i\u00e7in) kullanman\u0131z gerekecektir. <code>.ovpn<\/code> dosyas\u0131n\u0131 OpenVPN istemcisine aktar\u0131n ve ba\u011flant\u0131y\u0131 kurun.<\/p>\n<h3>Ad\u0131m 7: Geli\u015fmi\u015f Yap\u0131land\u0131rmalar ve Y\u00f6netim<\/h3>\n<h4>7.1. Sertifika \u0130ptali<\/h4>\n<p>Bir istemcinin eri\u015fimini iptal etmeniz gerekti\u011finde (\u00f6rne\u011fin, cihaz \u00e7al\u0131nd\u0131ysa veya kullan\u0131c\u0131 art\u0131k eri\u015fime ihtiya\u00e7 duymuyorsa), istemcinin sertifikas\u0131n\u0131 iptal edebilirsiniz.<\/p>\n<pre><code class=\"language-bash\">docker run -v ovpn-data:\/etc\/openvpn --log-driver=none --rm -it kylemanna\/openvpn easyrsa revoke <\u0130STEMC\u0130_ADI><\/code><\/pre>\n<p>CA parolas\u0131n\u0131 girmeniz istenecektir. Ard\u0131ndan, iptal listesini (CRL) g\u00fcncellemeli ve OpenVPN sunucusunu yeniden ba\u015flatmal\u0131s\u0131n\u0131z:<\/p>\n<pre><code class=\"language-bash\">docker run -v ovpn-data:\/etc\/openvpn --log-driver=none --rm kylemanna\/openvpn ovpn_genconfig -E\ndocker restart openvpn-server<\/code><\/pre>\n<h4>7.2. \u00d6zel OpenVPN Direktifleri Ekleme<\/h4>\n<p>OpenVPN sunucu yap\u0131land\u0131rmas\u0131na ek direktifler eklemek isterseniz, <code>ovpn_genconfig<\/code> komutunu kullanarak bunu yapabilirsiniz. \u00d6rne\u011fin, TCP protokol\u00fcn\u00fc kullanmak veya farkl\u0131 bir port belirtmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">docker run -v ovpn-data:\/etc\/openvpn --log-driver=none --rm kylemanna\/openvpn ovpn_genconfig -u tcp:\/\/<SUNUCU_IP_ADRES\u0130_VEYA_ALAN_ADI>:443 -e \"push \\\"dhcp-option DNS 8.8.8.8\\\"\"<\/code><\/pre>\n<p>Bu durumda, sunucu ba\u015flatma komutundaki port y\u00f6nlendirmesini de de\u011fi\u015ftirmeniz gerekir: <code>-p 443:443\/tcp<\/code>.<\/p>\n<h4>7.3. Sunucu G\u00fcnl\u00fcklerini Kontrol Etme<\/h4>\n<p>OpenVPN sunucusunun d\u00fczg\u00fcn \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 veya ba\u011flant\u0131 sorunlar\u0131n\u0131 gidermek i\u00e7in konteynerin g\u00fcnl\u00fcklerini kontrol edebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">docker logs openvpn-server<\/code><\/pre>\n<p>Daha fazla ayr\u0131nt\u0131 i\u00e7in <code>-f<\/code> (follow) veya <code>--tail<\/code> se\u00e7eneklerini kullanabilirsiniz.<\/p>\n<h3>Ad\u0131m 8: Sorun Giderme<\/h3>\n<p>OpenVPN kurulumu s\u0131ras\u0131nda kar\u015f\u0131la\u015fabilece\u011finiz baz\u0131 yayg\u0131n sorunlar ve \u00e7\u00f6z\u00fcmleri:<\/p>\n<p>*   <strong>Ba\u011flant\u0131 Kurulam\u0131yor:<\/strong><br \/>\n    *   <strong>G\u00fcvenlik Duvar\u0131:<\/strong> Sunucunuzdaki g\u00fcvenlik duvar\u0131n\u0131n (UFW veya <code>iptables<\/code>) 1194\/UDP (veya belirledi\u011finiz ba\u015fka bir port\/protokol) portuna gelen ba\u011flant\u0131lara izin verdi\u011finden emin olun.<br \/>\n    *   <strong>IP Y\u00f6nlendirme:<\/strong> <code>net.ipv4.ip_forward<\/code> ayar\u0131n\u0131n <code>1<\/code> oldu\u011fundan emin olun (<code>sudo sysctl net.ipv4.ip_forward<\/code>).<br \/>\n    *   <strong>NAT Kurallar\u0131:<\/strong> <code>iptables<\/code> NAT kurallar\u0131n\u0131n do\u011fru oldu\u011fundan ve ana a\u011f aray\u00fcz\u00fcn\u00fcz\u00fc i\u00e7erdi\u011finden emin olun.<br \/>\n    *   <strong>Sunucu IP&#8217;si\/Alan Ad\u0131:<\/strong> \u0130stemci <code>.ovpn<\/code> dosyas\u0131ndaki sunucu IP adresinin veya alan ad\u0131n\u0131n do\u011fru ve eri\u015filebilir oldu\u011fundan emin olun.<br \/>\n    *   <strong>Konteyner \u00c7al\u0131\u015f\u0131yor mu?<\/strong> <code>docker ps<\/code> komutu ile <code>openvpn-server<\/code> konteynerinin \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 do\u011frulay\u0131n.<br \/>\n    *   <strong>Konteyner G\u00fcnl\u00fckleri:<\/strong> <code>docker logs openvpn-server<\/code> komutu ile herhangi bir hata olup olmad\u0131\u011f\u0131n\u0131 kontrol edin.<\/p>\n<p>*   <strong>\u0130stemciler \u0130nternete Eri\u015femiyor:<\/strong><br \/>\n    *   <strong>NAT Kurallar\u0131:<\/strong> <code>iptables<\/code> NAT kurallar\u0131n\u0131n do\u011fru bir \u015fekilde ayarland\u0131\u011f\u0131ndan ve kaydedildi\u011finden emin olun. \u00d6zellikle <code>MASQUERADE<\/code> kural\u0131 kritiktir.<br \/>\n    *   <strong>IP Y\u00f6nlendirme:<\/strong> Sunucuda IP y\u00f6nlendirme etkin mi?<br \/>\n    *   <strong>DNS Ayarlar\u0131:<\/strong> <code>ovpn_genconfig<\/code> komutunda DNS sunucular\u0131n\u0131 do\u011fru bir \u015fekilde <code>push<\/code> etti\u011finizden emin olun.<\/p>\n<p>*   <strong>Sertifika Hatalar\u0131:<\/strong><br \/>\n    *   <strong>Tarih ve Saat:<\/strong> Sunucu ve istemci cihazlar\u0131n\u0131n tarih ve saatlerinin do\u011fru oldu\u011fundan emin olun. Sertifika ge\u00e7erlili\u011fi i\u00e7in bu \u00f6nemlidir.<br \/>\n    *   <strong>CA Parolas\u0131:<\/strong> PKI olu\u015ftururken kullan\u0131lan CA parolas\u0131n\u0131 do\u011fru girdi\u011finizden emin olun.<\/p>\n<p>*   <strong>&#8220;Permission denied&#8221; Hatalar\u0131:<\/strong><br \/>\n    *   <code>docker<\/code> komutlar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131r\u0131rken <code>sudo<\/code> kulland\u0131\u011f\u0131n\u0131zdan veya kullan\u0131c\u0131n\u0131z\u0131n <code>docker<\/code> grubuna ekli oldu\u011fundan emin olun.<\/p>\n<h3>Ad\u0131m 9: G\u00fcvenlik Hususlar\u0131<\/h3>\n<p>OpenVPN sunucunuzu \u00e7al\u0131\u015ft\u0131r\u0131rken a\u015fa\u011f\u0131daki g\u00fcvenlik hususlar\u0131n\u0131 g\u00f6z \u00f6n\u00fcnde bulundurun:<\/p>\n<p>*   <strong>G\u00fc\u00e7l\u00fc CA Parolas\u0131:<\/strong> PKI&#8217;y\u0131 ba\u015flat\u0131rken belirledi\u011finiz CA parolas\u0131n\u0131n g\u00fc\u00e7l\u00fc ve benzersiz oldu\u011fundan emin olun. Bu parola, yeni sertifikalar olu\u015fturmak veya mevcut sertifikalar\u0131 iptal etmek i\u00e7in gereklidir.<br \/>\n*   <strong>\u0130stemci Sertifikalar\u0131n\u0131n G\u00fcvenli\u011fi:<\/strong> Olu\u015fturdu\u011funuz <code>.ovpn<\/code> dosyalar\u0131n\u0131 g\u00fcvenli bir \u015fekilde saklay\u0131n ve da\u011f\u0131t\u0131n. Bu dosyalar, VPN&#8217;e eri\u015fim i\u00e7in anahtarlard\u0131r.<br \/>\n*   <strong>Gereksiz Portlar\u0131 Kapatma:<\/strong> Sunucunuzda OpenVPN i\u00e7in gerekli olan portlar d\u0131\u015f\u0131ndaki t\u00fcm gereksiz portlar\u0131 g\u00fcvenlik duvar\u0131 ile kapat\u0131n.<br \/>\n*   <strong>Yaz\u0131l\u0131m G\u00fcncellemeleri:<\/strong> Ubuntu 14.04 eski bir s\u00fcr\u00fcm olsa da, sisteminizdeki ve Docker&#8217;daki paketleri d\u00fczenli olarak g\u00fcncel tutmaya \u00e7al\u0131\u015f\u0131n (m\u00fcmk\u00fcn oldu\u011funca). Docker imajlar\u0131n\u0131 da d\u00fczenli olarak g\u00fcncelleyerek bilinen g\u00fcvenlik a\u00e7\u0131klar\u0131ndan korunabilirsiniz. <code>kylemanna\/openvpn<\/code> imaj\u0131n\u0131n g\u00fcncel tutuldu\u011fundan emin olun.<br \/>\n*   <strong>Eri\u015fim Kontrol\u00fc:<\/strong> Sadece yetkili kullan\u0131c\u0131lar\u0131n VPN sunucusuna eri\u015febilmesi i\u00e7in sertifika bazl\u0131 kimlik do\u011frulamay\u0131 kullan\u0131n.<br \/>\n*   <strong>G\u00fcnl\u00fckleri \u0130zleme:<\/strong> Sunucunuzun ve OpenVPN konteynerinin g\u00fcnl\u00fcklerini d\u00fczenli olarak kontrol ederek anormal etkinlikleri veya g\u00fcvenlik ihlallerini tespit edin.<br \/>\n*   <strong>Ubuntu 14.04&#8217;\u00fcn Eskili\u011fi:<\/strong> Ubuntu 14.04&#8217;\u00fcn resmi deste\u011finin sona erdi\u011fini unutmay\u0131n. Bu, g\u00fcvenlik g\u00fcncellemelerinin art\u0131k sa\u011flanmad\u0131\u011f\u0131 anlam\u0131na gelir. M\u00fcmk\u00fcnse, daha yeni ve desteklenen bir Ubuntu s\u00fcr\u00fcm\u00fcne y\u00fckseltmeyi d\u00fc\u015f\u00fcn\u00fcn. Bu rehber, belirli bir senaryo i\u00e7in 14.04 \u00fczerinde kurulumu g\u00f6stermekle birlikte, genel g\u00fcvenlik i\u00e7in modern bir i\u015fletim sistemi tercih edilmelidir.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu kapsaml\u0131 rehberde, Ubuntu 14.04 i\u015fletim sistemi \u00fczerinde Docker kullanarak g\u00fcvenli bir OpenVPN sunucusunu nas\u0131l kuraca\u011f\u0131n\u0131z\u0131, yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 ve y\u00f6netece\u011finizi ad\u0131m ad\u0131m \u00f6\u011frendiniz. Docker&#8217;\u0131n sa\u011flad\u0131\u011f\u0131 izolasyon ve kolay y\u00f6netim sayesinde, eski bir i\u015fletim sistemi \u00fczerinde bile modern ve i\u015flevsel bir VPN \u00e7\u00f6z\u00fcm\u00fc elde ettik.<\/p>\n<p>OpenVPN&#8217;i Docker konteynerinde \u00e7al\u0131\u015ft\u0131rman\u0131n temel faydalar\u0131 aras\u0131nda kolay da\u011f\u0131t\u0131m, ba\u011f\u0131ml\u0131l\u0131k sorunlar\u0131n\u0131n azalmas\u0131, tutarl\u0131 \u00e7al\u0131\u015fma ortam\u0131 ve ta\u015f\u0131nabilirlik yer al\u0131r. Bu kurulum, ev a\u011f\u0131n\u0131z\u0131 korumak, co\u011frafi k\u0131s\u0131tlamalar\u0131 a\u015fmak veya uzak sunucular\u0131n\u0131za g\u00fcvenli bir \u015fekilde eri\u015fmek i\u00e7in g\u00fc\u00e7l\u00fc bir temel sa\u011flar.<\/p>\n<p>Unutulmamal\u0131d\u0131r ki, Ubuntu 14.04&#8217;\u00fcn destek \u00f6mr\u00fcn\u00fcn sona ermesi nedeniyle, bu t\u00fcr bir kurulumu \u00fcretim ortamlar\u0131nda kullan\u0131rken g\u00fcvenlik risklerini dikkatle de\u011ferlendirmek ve m\u00fcmk\u00fcn olan en k\u0131sa s\u00fcrede daha g\u00fcncel bir i\u015fletim sistemine ge\u00e7meyi planlamak \u00f6nemlidir. Ancak, bu rehber, belirli ihtiya\u00e7lar do\u011frultusunda eski sistemler \u00fczerinde bile modern teknolojileri nas\u0131l uygulayabilece\u011finize dair de\u011ferli bir bak\u0131\u015f a\u00e7\u0131s\u0131 sunmaktad\u0131r. G\u00fcvenli ve \u00f6zel internet deneyimleriniz i\u00e7in art\u0131k sa\u011flam bir OpenVPN altyap\u0131n\u0131z var.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Ubuntu 14.04 \u00dczerinde Docker Konteynerinde OpenVPN \u00c7al\u0131\u015ft\u0131rma Rehberi\nGiri\u015f: OpenVPN, Docker ve Ubuntu 14.04\nG\u00fcn\u00fcm\u00fcz\u00fcn dijital d\u00fcnyas\u0131nda","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1468],"tags":[],"class_list":{"0":"post-31311","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ubuntu","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Ubuntu 14.04 \u00dczerinde Docker Konteynerinde OpenVPN \u00c7al\u0131\u015ft\u0131rma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-docker-konteynerinde-openvpn-calistirma-rehberi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ubuntu 14.04 \u00dczerinde Docker Konteynerinde OpenVPN \u00c7al\u0131\u015ft\u0131rma Rehberi\" \/>\n<meta property=\"og:description\" content=\"Ubuntu 14.04 \u00dczerinde Docker Konteynerinde OpenVPN \u00c7al\u0131\u015ft\u0131rma Rehberi Giri\u015f: OpenVPN, Docker ve Ubuntu 14.04 G\u00fcn\u00fcm\u00fcz\u00fcn dijital d\u00fcnyas\u0131nda\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-docker-konteynerinde-openvpn-calistirma-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-08T10:41:11+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-docker-konteynerinde-openvpn-calistirma-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-docker-konteynerinde-openvpn-calistirma-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Ubuntu 14.04 \u00dczerinde Docker Konteynerinde OpenVPN \u00c7al\u0131\u015ft\u0131rma Rehberi\",\"datePublished\":\"2025-10-08T10:41:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-docker-konteynerinde-openvpn-calistirma-rehberi\/\"},\"wordCount\":2703,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Ubuntu\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-docker-konteynerinde-openvpn-calistirma-rehberi\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-docker-konteynerinde-openvpn-calistirma-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-docker-konteynerinde-openvpn-calistirma-rehberi\/\",\"name\":\"Ubuntu 14.04 \u00dczerinde Docker Konteynerinde OpenVPN \u00c7al\u0131\u015ft\u0131rma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-08T10:41:11+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-docker-konteynerinde-openvpn-calistirma-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-docker-konteynerinde-openvpn-calistirma-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-docker-konteynerinde-openvpn-calistirma-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ubuntu 14.04 \u00dczerinde Docker Konteynerinde OpenVPN \u00c7al\u0131\u015ft\u0131rma Rehberi\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Ubuntu 14.04 \u00dczerinde Docker Konteynerinde OpenVPN \u00c7al\u0131\u015ft\u0131rma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-docker-konteynerinde-openvpn-calistirma-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"Ubuntu 14.04 \u00dczerinde Docker Konteynerinde OpenVPN \u00c7al\u0131\u015ft\u0131rma Rehberi","og_description":"Ubuntu 14.04 \u00dczerinde Docker Konteynerinde OpenVPN \u00c7al\u0131\u015ft\u0131rma Rehberi Giri\u015f: OpenVPN, Docker ve Ubuntu 14.04 G\u00fcn\u00fcm\u00fcz\u00fcn dijital d\u00fcnyas\u0131nda","og_url":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-docker-konteynerinde-openvpn-calistirma-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-08T10:41:11+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"16 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-docker-konteynerinde-openvpn-calistirma-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-docker-konteynerinde-openvpn-calistirma-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Ubuntu 14.04 \u00dczerinde Docker Konteynerinde OpenVPN \u00c7al\u0131\u015ft\u0131rma Rehberi","datePublished":"2025-10-08T10:41:11+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-docker-konteynerinde-openvpn-calistirma-rehberi\/"},"wordCount":2703,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Ubuntu"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-docker-konteynerinde-openvpn-calistirma-rehberi\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-docker-konteynerinde-openvpn-calistirma-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-docker-konteynerinde-openvpn-calistirma-rehberi\/","name":"Ubuntu 14.04 \u00dczerinde Docker Konteynerinde OpenVPN \u00c7al\u0131\u015ft\u0131rma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-08T10:41:11+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-docker-konteynerinde-openvpn-calistirma-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-docker-konteynerinde-openvpn-calistirma-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-docker-konteynerinde-openvpn-calistirma-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Ubuntu 14.04 \u00dczerinde Docker Konteynerinde OpenVPN \u00c7al\u0131\u015ft\u0131rma Rehberi"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31311","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=31311"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31311\/revisions"}],"predecessor-version":[{"id":31312,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31311\/revisions\/31312"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=31311"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=31311"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=31311"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}