پیکربندی openvpn در centos7
OpenVPN یکی از محبوبترین و قدرتمندترین ابزارهای متنباز برای ایجاد شبکههای خصوصی مجازی (VPN) است که به کاربران امکان میدهد بهصورت ایمن به شبکههای مختلف متصل شوند. در این مقاله، به پیکربندی openvpn در centos7 میپردازیم و مراحل پیکربندی و فایل های امنیتی را برسی میکنیم.
OpenVPN چیست؟
OpenVPN یک نرمافزار متنباز برای ایجاد شبکههای خصوصی مجازی (VPN) است که به کاربران امکان میدهد ارتباطات اینترنتی خود را بهصورت امن و رمزگذاری شده از طریق یک تونل مجازی انجام دهند. این نرمافزار با استفاده از پروتکلهای SSL/TLS، ارتباطات بین سرور و کلاینتها را ایمن میکند و میتواند برای دسترسی به شبکههای داخلی از راه دور و عبور از محدودیتهای جغرافیایی استفاده شود.
یکی از ویژگیهای برجسته OpenVPN انعطافپذیری آن در تنظیمات مختلف است. این نرمافزار قادر است با استفاده از پیکربندیهای مختلف، از پروتکلهای UDP و TCP استفاده کند و از کلیدهای رمزنگاری 256 بیتی برای افزایش امنیت بهره ببرد. همچنین، OpenVPN از طریق گواهینامهها و کلیدهای امنیتی، احراز هویت قوی را فراهم میکند که این امر باعث میشود تنها کاربران مجاز به شبکه دسترسی داشته باشند.
OpenVPN در سیستمعاملهای مختلفی مانند ویندوز، لینوکس، macOS، و حتی دستگاههای موبایل قابل استفاده است. این نرمافزار معمولاً برای کاربردهای سازمانی و شخصی بهکار میرود، از جمله ایجاد تونلهای امن برای ارتباط با سرورهای داخلی شرکت یا دسترسی به اینترنت از طریق یک شبکه ایمن در مکانهای عمومی. با توجه به متنباز بودن و جامعه گسترده کاربران، OpenVPN به طور مداوم بهروزرسانی و بهبود مییابد، که این امر آن را به یکی از انتخابهای محبوب برای ایجاد VPN تبدیل کرده است.
پیش نیاز ها
۱- سرور مجازی
۲-سیستم عامل centos7
۳- نرم افزار putty جهت اتصال به کنسول سرور یا نرم افزار های مشابه جهت اجرای دستورات
۴- در صورت نیاز یک دامنه با dns رکورد های اختصاصی برای آیپی مد نظر شما با یک A record از سایر دامنه ها که آیپی آن با آیپی سرور برابری داشته باشد.
۵- یک سیستم کلاینت که میتواند تلفن هوشمند یا یک کامپیوتر ساده جهت تست پروتکل
بخش 1:
آمادهسازی سرور و نصب OpenVPN
1.1. بهروزرسانی سیستم
قبل از شروع، مطمئن شوید که سیستم شما بهروز است. برای این کار، دستورات زیر را اجرا کنید:
sudo yum update -y sudo yum install epel-release -y
1.2. نصب OpenVPN و EasyRSA
EasyRSA ابزاری است که برای مدیریت گواهینامهها و کلیدهای OpenVPN استفاده میشود. برای نصب OpenVPN و EasyRSA، از دستورات زیر استفاده کنید:
sudo yum install openvpn easy-rsa -y
بخش 2:
ایجاد گواهینامهها و کلیدها
2.1. تنظیم EasyRSA
ابتدا باید EasyRSA را تنظیم کنیم. یک دایرکتوری جدید ایجاد کنید و فایلهای EasyRSA را در آن کپی کنید:
mkdir -p ~/easy-rsa cp -R /usr/share/easy-rsa/3/* ~/easy-rsa/ cd ~/easy-rsa/
2.2. پیکربندی EasyRSA
فایل vars
را ویرایش کنید تا پارامترهای گواهینامهها را مشخص کنید:
nano vars
اطمینان حاصل کنید که مقادیر زیر را در فایل vars
تنظیم کردهاید:
set_var EASYRSA_REQ_COUNTRY "US" set_var EASYRSA_REQ_PROVINCE "California" set_var EASYRSA_REQ_CITY "San Francisco" set_var EASYRSA_REQ_ORG "MyOrg" set_var EASYRSA_REQ_EMAIL "email@example.com" set_var EASYRSA_REQ_OU "MyUnit"
2.3. ساخت CA (Certificate Authority)
برای ایجاد یک CA، از دستورات زیر استفاده کنید:
./easyrsa init-pki ./easyrsa build-ca nopass
این دستور یک CA بدون رمز عبور ایجاد میکند.
2.4. ایجاد گواهینامه و کلید سرور
حالا، گواهینامه و کلید سرور را ایجاد کنید:
./easyrsa gen-req server nopass ./easyrsa sign-req server server
2.5. ایجاد کلید Diffie-Hellman
کلید Diffie-Hellman برای افزایش امنیت ارتباطات استفاده میشود:
./easyrsa gen-dh
بخش 3:
پیکربندی سرور OpenVPN
3.1. کپی فایلهای مورد نیاز
فایلهای گواهینامه و کلیدهایی که ایجاد کردهاید را به دایرکتوری OpenVPN کپی کنید:
sudo cp pki/ca.crt pki/private/server.key pki/issued/server.crt pki/dh.pem /etc/openvpn/
3.2. ایجاد فایل پیکربندی سرور
فایل پیکربندی OpenVPN را در /etc/openvpn/server.conf
ایجاد کنید:
sudo nano /etc/openvpn/server.conf
محتوای زیر را در این فایل قرار دهید:
port 1194 proto udp dev tun ca ca.crt cert server.crt key server.key dh dh.pem server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 8.8.8.8" keepalive 10 120 cipher AES-256-CBC user nobody group nobody persist-key persist-tun status openvpn-status.log log-append /var/log/openvpn.log verb 3
3.3. تنظیمات فایروال
برای اجازه دادن به ترافیک OpenVPN، باید فایروال را پیکربندی کنید:
sudo firewall-cmd --add-service=openvpn --permanent sudo firewall-cmd --add-masquerade --permanent sudo firewall-cmd --reload
3.4. فعالسازی و راهاندازی سرویس OpenVPN
سرویس OpenVPN را فعال و سپس راهاندازی کنید:
sudo systemctl start openvpn@server sudo systemctl enable openvpn@server
بخش 4:
پیکربندی کلاینتها
4.1. ایجاد گواهینامه و کلیدهای کلاینت
برای هر کلاینت، باید یک جفت کلید و گواهینامه ایجاد کنید:
cd ~/easy-rsa/ ./easyrsa gen-req client1 nopass ./easyrsa sign-req client client1
سپس فایلهای client1.crt
، client1.key
و ca.crt
را به کلاینت منتقل کنید.
4.2. ایجاد فایل پیکربندی کلاینت
فایل پیکربندی کلاینت باید به شکل زیر باشد:
client dev tun proto udp remote your_server_ip 1194 resolv-retry infinite nobind user nobody group nobody persist-key persist-tun ca ca.crt cert client1.crt key client1.key cipher AES-256-CBC verb 3
بخش 5:
توصیههای امنیتی و نگهداری
5.1. بهروزرسانی مداوم سرور و نرمافزارها
5.1. بهروزرسانی مداوم سرور و نرمافزارها
بهروزرسانی مداوم سیستمعامل و نرمافزارهای مرتبط با OpenVPN از اهمیت بالایی برخوردار است. بهروزرسانیها معمولاً شامل رفع آسیبپذیریهای امنیتی، بهبود عملکرد و اضافه شدن ویژگیهای جدید هستند. برای اطمینان از امنیت سیستم خود، دستورات زیر را برای بهروزرسانی بستههای نصبشده بهطور منظم اجرا کنید:
sudo yum update -y
5.2. استفاده از احراز هویت دو مرحلهای (2FA)
احراز هویت دو مرحلهای یک لایه امنیتی اضافی برای حفاظت از سیستم شما در برابر دسترسیهای غیرمجاز است. این روش احراز هویت نیازمند وارد کردن یک کد اضافی است که از طریق یک برنامه موبایل یا دستگاه فیزیکی تولید میشود. فعالسازی 2FA برای OpenVPN میتواند تضمین کند که حتی در صورت به دست آوردن رمز عبور توسط هکرها، دسترسی به سیستم بدون این کد اضافی امکانپذیر نخواهد بود.
5.3. استفاده از یک VPN Kill Switch
یکی از خطراتی که در هنگام استفاده از VPN وجود دارد، قطع ناگهانی ارتباط VPN است که میتواند منجر به نشت اطلاعات شود. برای جلوگیری از این مشکل، میتوانید از ویژگی VPN Kill Switch استفاده کنید. این ویژگی به صورت خودکار ترافیک اینترنتی را قطع میکند اگر اتصال VPN شما از دست برود، بنابراین هیچ دادهای از طریق شبکه ناامن منتقل نخواهد شد. برای پیادهسازی این ویژگی، میتوانید از تنظیمات فایروال یا اسکریپتهای ویژه استفاده کنید.
5.4. نظارت بر لاگها و مانیتورینگ سیستم
یکی از بهترین روشها برای اطمینان از عملکرد صحیح و امنیت OpenVPN، نظارت منظم بر لاگها و مانیتورینگ سیستم است. لاگهای OpenVPN میتوانند اطلاعات ارزشمندی درباره وضعیت ارتباطات، خطاها و فعالیتهای مشکوک ارائه دهند. با بررسی منظم لاگها، میتوانید به سرعت به مشکلات احتمالی پی ببرید و از بروز حملات امنیتی جلوگیری کنید. از ابزارهای مانیتورینگ مانند Nagios
یا Zabbix
برای نظارت بر عملکرد سیستم و شبکه استفاده کنید.
5.5. پیکربندی فایروال برای افزایش امنیت
پیکربندی صحیح فایروال یکی از مهمترین مراحل در تأمین امنیت OpenVPN است. فایروال باید به گونهای تنظیم شود که تنها ترافیک مجاز از پورتهای مورد استفاده توسط OpenVPN عبور کند. همچنین، میتوانید ترافیک مربوط به پروتکلهای غیرمجاز را مسدود کنید. برای مثال، میتوانید از iptables برای محدود کردن دسترسی به پورت 1194 که بهطور پیشفرض توسط OpenVPN استفاده میشود، استفاده کنید:
sudo iptables -A INPUT -p udp --dport 1194 -j ACCEPT sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT sudo iptables -A INPUT -p udp -j DROP
این تنظیمات فایروال تضمین میکنند که تنها ترافیک مرتبط با OpenVPN به سرور شما دسترسی دارد.
5.6. استفاده از گواهینامههای قوی و محدود کردن دسترسیها
استفاده از گواهینامههای قوی و کلیدهای RSA با طول حداقل 2048 بیت برای ارتباطات OpenVPN به شدت توصیه میشود. همچنین، مدت زمان انقضای گواهینامهها را محدود کنید تا در صورت سرقت یا نفوذ، اثرات آن به حداقل برسد. میتوانید گواهینامهها را به صورت دورهای تجدید کرده و کلیدهای جدیدی ایجاد کنید تا امنیت بیشتری برای سیستم خود فراهم کنید.
5.7. بهکارگیری سیاستهای امنیتی شبکه (NAC)
سیاستهای امنیتی شبکه (Network Access Control یا NAC) میتوانند به شما کمک کنند تا دسترسی کاربران به شبکه را بر اساس معیارهای مشخصی مانند وضعیت بهروزرسانی دستگاهها یا رعایت سیاستهای امنیتی محدود کنید. NAC میتواند از اتصال دستگاههای آسیبپذیر یا نامطمئن به شبکه جلوگیری کند و بدین وسیله از نفوذهای احتمالی به سیستم جلوگیری نماید.
نتیجهگیری
پیکربندی OpenVPN در CentOS 7 با وجود پیچیدگیهای فنی، یک راهکار قدرتمند برای ایجاد اتصالات امن و پایدار است. این فرآیند به شما امکان میدهد تا شبکهای خصوصی و رمزگذاری شده ایجاد کنید که به طور قابل توجهی امنیت اطلاعات شما را افزایش میدهد. با استفاده از ابزارهایی مانند EasyRSA، میتوانید به راحتی گواهینامهها و کلیدهای امنیتی ایجاد کرده و ارتباطات را رمزگذاری کنید.
نصب و پیکربندی OpenVPN نیازمند دقت و توجه به جزئیات است، بهویژه در بخشهای مربوط به امنیت و مدیریت دسترسیها. اجرای این مراحل به شما این امکان را میدهد که از مزایای یک VPN امن بهرهمند شوید، که میتواند در محیطهای کسب و کاری و حتی استفادههای شخصی مفید واقع شود.
این مقاله تلاش کرد تا به طور جامع تمامی مراحل نصب، پیکربندی و نکات امنیتی مربوط به OpenVPN در CentOS 7 را پوشش دهد. اما مهمتر از همه، این است که با در نظر گرفتن نکات امنیتی و پیکربندیهای صحیح، اطمینان حاصل کنید که ارتباطات شما از هرگونه نفوذ و تهدید محافظت میشود.
سرانجام، استفاده از OpenVPN میتواند به شما کمک کند تا نه تنها از اطلاعات خود محافظت کنید، بلکه امکان دسترسی امن و مطمئن به منابع شبکهای خود را نیز فراهم آورید. این امر به ویژه برای سازمانها و کسب و کارهایی که با دادههای حساس کار میکنند، از اهمیت بالایی برخوردار است. با تنظیمات و نگهداری منظم، شما میتوانید از یک سرویس VPN پایدار و امن بهرهمند شوید که به شما امکان میدهد تا به راحتی و با اطمینان در اینترنت حرکت کنید.
OpenVPN یک ابزار بسیار انعطافپذیر و قدرتمند است که با پیکربندی مناسب میتواند نیازهای متنوع شبکهای را پاسخ دهد. مهم است که همواره از منابع معتبری استفاده کرده و با دقت به جزئیات پیکربندی، امنیت شبکه خود را تضمین کنید.
پیکربندی openvpn در centos7
چگونه میتوانم OpenVPN را روی CentOS 7 نصب کنم؟
نصب OpenVPN در CentOS 7 شامل استفاده از yum
برای نصب بستههای مورد نیاز و سپس پیکربندی آن است.
آیا میتوانم از یک کلید و گواهینامه برای چندین کلاینت استفاده کنم؟
استفاده از یک کلید و گواهینامه مشترک برای چندین کلاینت امکانپذیر است، اما از نظر امنیتی توصیه نمیشود.
چگونه میتوانم ترافیک اینترنتی کاربران را از طریق VPN هدایت کنم؟
با استفاده از تنظیمات مربوط به push "redirect-gateway def1 bypass-dhcp"
در فایل پیکربندی سرور OpenVPN.
آیا میتوانم از OpenVPN با پروتکل TCP به جای UDP استفاده کنم؟
بله، میتوانید با تغییر proto udp
به proto tcp
در فایل پیکربندی، از پروتکل TCP استفاده کنید.
چگونه میتوانم دسترسی به شبکه داخلی را برای کلاینتهای OpenVPN محدود کنم؟
با استفاده از تنظیمات فایروال و پیکربندی صحیح در فایل server.conf
میتوانید دسترسی کلاینتها به شبکه داخلی را محدود کنید.
فاماسرور
سلام خسته نباشید
برای نصب openvpn با ارور
https://packages.openvpn.net/openvpn3/yum/epel-7-x86_64/repodata/repomd.xml: [Errno 14] curl#7 – “Failed connect to packages.openvpn.net:443; Connection refused”
مواجه میشم که فک میکنم برای فیلتر بودن لینک هست ، آیا نیاز هست فیلترشکن استفاده کرد برای نصب یا نه؟ ممنون میشم کمکم کنید.
سلام و عرض ادب
Connection refused به دلیل عدم ارتباط با مقصد میباشد.
بصورت موقتی میتوانید از dns های تحریم شکن استفاده کنید.