در این مقاله پیکربندی 3 پروکسی را در یک سرور اختصاصی با سیستم عامل ArchLinux/CentOS نشان خواهیم داد. 3proxy یکی از مرتبط ترین و کاربردی ترین ابزارها است. این پروتکل از انواع مختلفی از پروتکل ها پشتیبانی می کند: HTTP، HTTPS، FTP، SOCKS و غیره. این به شما کمک می کند تا در عرض چند دقیقه سرور پروکسی خود را راه اندازی کنید.
این مقاله حاوی راهنمایی گام به گام در مورد نصب ابزار و پیکربندی بیشتر آن است. مواردی مانند نصب از منبع رسمی، راه اندازی فایل های پیکربندی، باز کردن پورت های غیر استاندارد در نظر گرفته شده و همچنین خطاهای رایج شرح داده شده و توصیه های عملی برای حل آنها ارائه شده است. قبل از راه اندازی، شما باید سفارش دهید VPS or سرور اختصاصی توسط سیستم عامل CentOS یا ArchLinux پشتیبانی می شود. تمام اقدامات در مثال بر روی یک سرور اختصاصی با سیستم عامل CentOS7 با یک آدرس IP عمومی ثابت اختصاصی انجام می شود.
نصب و راه اندازی
1 گام
3پراکسی مستقیماً از منابع نصب می شود. gcc به عنوان کامپایلر استفاده خواهد شد. ما به عنوان روت (superuser) به سرور متصل می شویم و کامپایلر را نصب می کنیم.
yum install gcc
2 گام
اکنون لازم است فایل های منبع 3پروکسی را دانلود کنید. شما می توانید این کار را با رفتن به وب سایت رسمی و کپی کردن لینک به نسخه فعلی:
در صورت نیاز به نسخه آرشیو شده، می توانید لینک را مستقیماً از اینجا نیز دانلود کنید GitHub:
در زمان نگارش این مقاله، نسخه فعلی 0.9.3 است. آن را دانلود کنید و بلافاصله آن را باز کنید:
wget https://github.com/z3APA3A/3proxy/archive/0.9.3.tar.gz
tar -xvzf 0.9.3.tar.gz
3 گام
به دایرکتوری با پروژه unpacked بروید و کامپایل کنید:
cd 3proxy-0.9.3/
make -f Makefile.Linux
4 گام
ما دایرکتوری ها را ایجاد می کنیم و فایل 3proxy را در /usr/bin کپی می کنیم:
mkdir -p /var/log/3proxy
mkdir /etc/3proxy
cp bin/3proxy /usr/bin/
5 گام
ما یک کاربر برای کار با کاتالوگ ایجاد می کنیم. در این مورد نام کاربری است 3 پروکسیزر:
useradd -s /usr/sbin/nologin -U -M -r 3proxyuser
ما حقوق کار با دایرکتوری ها را به کاربر ایجاد شده اعطا می کنیم:
chown -R 3proxyuser:3proxyuser /etc/3proxy
chown -R 3proxyuser:3proxyuser /var/log/3proxy
chown -R 3proxyuser:3proxyuser /usr/bin/3proxy
حالا بیایید با استفاده از دستور یک فایل پیکربندی ایجاد کنیم:
touch /etc/3proxy/3proxy.cfg
در صورت لزوم، می توانید مجوزهایی را روی فایل پیکربندی برای کاربر ریشه تنظیم کنید. این مرحله اجباری نیست اما حفاظت را اضافه خواهد کرد:
chmod 600 /etc/3proxy/3proxy.cfg
3 پیکربندی پروکسی
6 گام
لازم است فایل پیکربندی که قبلا ایجاد شده است را به درستی پر کنید. ابتدا با دستور uid و gid کاربر را بیابید:
id 3proxyuser
در مورد ما این مقادیر زیر هستند:
برای پر کردن فایل پیکربندی، میتوانید از تنظیمات آماده استفاده کنید یا از آن استفاده کنید مستندات در وب سایت رسمی همچنین یک فایل با یک مثال از قبل به طور پیش فرض نصب شده است. می توانید آن را در طول مسیر پیدا کنید: /cfg/3proxy.cfg.sample
به عنوان مثال، ما 2 نوع پیکربندی را در نظر خواهیم گرفت: با و بدون ورود به سیستم. هر خط با نظرات همراه خواهد شد (آنها با علامت "#" مشخص شده اند).
این یک نمونه از یک پیکربندی آماده است بدون ورود به سیستم:
# We specify the user's data that we found out in the previous command
setgid 995
setuid 997
# Type the NS-servers. It is possible to clarify your own servers at /etc/resolv.conf
nserver 1.1.1.1
nserver 8.8.8.8
# Cache size
nscache 65536
# Timeouts
timeouts 1 5 30 60 180 1800 15 60
# Authorization of users by login/password (if required). You may not to use it or specify the path to the file in which authorization data is stored, for example, users $/etc/3proxy/.authfile
# If you insert a password in md5 format, replace “CL” with “CR”, as indicated in the example. You can use 2 methods at the same time.
auth cache strong
users "userproxy:CL:passwordproxy"
users "userproxy2:CR:b89097a7ad0b94f13b3c313ae76699d4 "
# Launch mode. Daemon only.
Daemon
# We write the port through which the http connection will take place. The example shows the standard one. To establish a socks connection, use the command specified in the second line, the port is also standard.
proxy -p3128
socks -p1080
ما گزینه یک فایل پیکربندی را بدون ورود به سیستم در نظر گرفتیم. اکنون یک فایل پیکربندی با آن ایجاد می کنیم ورود به سیستم و مجوز کاربر; بعداً در طول راه اندازی سرور استفاده خواهد شد.
اطمینان حاصل کنید که اطلاعات مجوز را ارائه می دهید، زیرا سرور حتی در پورت های غیر استاندارد نیز قابل شناسایی است.
# Configuring the server to launch from the userproxy user and the passwordproxy password.
users userproxy:CL:passwordproxy
# Specify the user's uid and gid
setgid 995
setuid 997
# Nameservers (NS-servers)
nserver 1.1.1.1
nserver 8.8.8.8
# Timeouts
timeouts 1 5 30 60 180 1800 15 60
# Cache size (standard)
nscache 65536
# Indicate the launch mode
daemon
# We install http proxy on a non-standard 50001 port. If there are several IP addresses on the server, be sure to specify a specific address for connecting the network. For example, "-e91.150.32.146". The argument "i" is a local address.
proxy –p50001
# In a same way as socks proxy, we conduct the installation on a 50002 port.
socks –p50002
# Path to the directory with logs, logs format and proxy rotation
Log /var/log/3proxy/3proxy.log D
logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
rotate 30
با این کار تنظیمات فایل پیکربندی اصلی تکمیل می شود. به مرحله نهایی می رویم و راه اندازی می کنیم.
7 گام
یک فایل اولیه برای systemd ایجاد کنید:
touch /etc/systemd/system/3proxy.service
صدور حقوق لازم:
chmod 664 /etc/systemd/system/3proxy.service
مقادیر زیر را در فایل کپی و پیست کرده و ذخیره کنید:
[Unit]
Description=3proxy Proxy Server
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/3proxy /etc/3proxy/3proxy.cfg
ExecStop=/bin/kill `/usr/bin/pgrep 3proxyuser`
RemainAfterExit=yes
Restart=on-failure
[Install]
WantedBy=multi-user.target»
لطفا توجه داشته باشید: در مقدار ExecStop باید نام کاربری ایجاد شده در مرحله شماره 5 را مشخص کنید.
پس از آن باید پیکربندی Daemon را با دستور زیر به روز کنید:
systemctl daemon-reload
8 گام
تنها چیزی که نیاز داریم راه اندازی 3پراکسی پیکربندی شده، اضافه کردن آن به شروع خودکار و همچنین باز کردن پورت ها در فایروال است.
آن را به راه اندازی خودکار، راه اندازی و بررسی وضعیت اضافه کنید:
systemctl enable 3proxy
systemctl start 3proxy
systemctl status 3proxy
پس از بررسی وضعیت، اطلاعاتی را مشاهده می کنیم که 3proxy با موفقیت راه اندازی شده است:
تنها چیزی که باقی می ماند باز کردن پورت هاست:
firewall-cmd --zone=public --add-port=50001/tcp
firewall-cmd --zone=public --add-port=50002/tcp
firewall-cmd –reload
در صورت لزوم، سرور را راه اندازی مجدد کنید. باز بودن پورت ها با دستور زیر امکان پذیر است:
firewall-cmd --list-all
چه چیزی باید باشد:
همانطور که می بینیم هر دو پورت با موفقیت باز شده و در حال گوش دادن هستند. اتصال http روی پورت اول و جوراب ها روی پورت دوم است.
اتصال را از طریق هر سرویس مناسب بررسی کنید:
همه چیز در حال عملیات است. به سهم خود، ما استفاده از اتصال ناامن بدون مجوز ورود به سیستم/رمز عبور و همچنین با مجموعه ای استاندارد از پورت ها را توصیه نمی کنیم.. هنگام تنظیم فایل پیکربندی، حتما یک لاگین مشخص کنید و یک رمز عبور پیچیده ایجاد کنید و همچنین پورت ها را به غیر استاندارد تغییر دهید.. در موارد استثنایی، امکان استفاده از مجوز آدرس IP وجود دارد
مشکلات معمول
مشکلی پیش آمده است و پروکسی کار نمی کند؟ شاید پیکربندی 3proxy اشتباه انجام شده باشد. بیایید رایج ترین مشکلات و راه حل های آنها را در هنگام نصب و پیکربندی ابزار در نظر بگیریم.
بدون اتصال
رایج ترین مشکل برای بسیاری از کاربران اتصال غیرقابل دسترسی است زمانی که به نظر می رسد فایل های پیکربندی به درستی پیکربندی شده اند. اگر مطمئن هستید که همه تنظیمات به درستی پیکربندی شده اند، ارائه دهنده هاست پورت انتخاب شده را محدود نمی کند و همه داده ها نشان دهنده یک سرویس کار می باشد، ممکن است مشکل در فایروال یا به طور دقیق تر، پیکربندی نادرست آن باشد. به عنوان مثال، ممکن است بیش از دو برنامه روی سیستم نصب شده باشد که با یکدیگر تداخل داشته باشند. برای حل مشکل کافی است از یک فایروال خاص استفاده کنید. ما به شما توصیه می کنیم که فقط iptable یا فایروال-cmd را انتخاب کنید.
سرویس راه اندازی نمی شود
سرویس پس از تنظیم تمام فایل های پیکربندی لازم شروع نمی شود. این زمانی اتفاق می افتد که یک مرحله پیکربندی از دست رفته باشد، حقوق مناسب داده نشود، یا یک خطای جزئی در فایل های پیکربندی ایجاد شود. ما به شما توصیه می کنیم که دستورالعمل ها را دوباره به دقت مطالعه کنید، شاید یکی از مراحل را از دست داده باشید. اگر هیچ کمکی نکرد، بهتر است سیستم عامل را دوباره نصب کنید و تمام مراحل را از ابتدا دنبال کنید. توصیه می کنیم استفاده کنید نمونه واقع در /cfg/3proxy.cfg.sample، به عنوان یک پیکربندی آزمایشی، و از پیش نصب شده فایروال-cmd به عنوان یک فایروال
ورود به سیستم
موضوع نهایی، اما نه کمتر مهم، مربوط به ذخیره سازی فایل است. 3پراکسی در حین نصب چندین مگابایت طول می کشد، اما اندازه را می توان به میزان قابل توجهی تنها از طریق ورود به سیستم با گذشت زمان افزایش داد. واقعیت این است که بسیاری از کاربران ضبط گزارش را در یک فایل جداگانه فعال می کنند، اما چرخش را تنظیم نمی کنند و گزارش های نامربوط را حذف نمی کنند. برای حل این مشکل می توان از سه گزینه استفاده کرد:
- فعال کردن ورود به سیستم؛
- به صورت دوره ای لاگ های نامربوط را حذف کنید.
- همانطور که در پیکربندی بالا انجام شد، چرخش را فعال کنید. به عنوان مثال، "rotate 30" در فایل پیکربندی به این معنی است که 3proxy فقط آخرین 30 فایل را ذخیره می کند.
نتیجه
نصب و پیکربندی 3proxy در سیستم عامل های CentOS و ArchLinux یک کار نسبتا ساده اما در عین حال موثر است. این مقاله مراحل نصب بستههای لازم، پیکربندی فایلهای پیکربندی و راهاندازی سرویس را پوشش میدهد. دانش به دست آمده به شما این امکان را می دهد که بدون هیچ مشکلی سرور پروکسی خود را نصب و پیکربندی کنید.