במאמר זה נציג תצורת 3proxy על שרת ייעודי המופעל על ידי מערכת ההפעלה ArchLinux/CentOS. 3proxy הוא אחד הכלים הרלוונטיים והפונקציונליים ביותר. הוא תומך בסוגים שונים של פרוטוקולים: HTTP, HTTPS, FTP, SOCKS ואחרים. זה יעזור לך להגדיר שרת פרוקסי משלך תוך דקות ספורות.
המאמר מכיל הדרכה שלב אחר שלב על התקנת כלי השירות והתצורה הנוספת שלו. נושאים כגון התקנה ממקור רשמי, הגדרת קבצי תצורה, פתיחת יציאות לא סטנדרטיות נשקלות, וכן מתוארות שגיאות נפוצות וניתנות המלצות מעשיות לפתרון אותן. לפני ההשקה, עליך להזמין א VPS or שרת ייעודי מופעל על ידי מערכת ההפעלה CentOS או ArchLinux. כל הפעולות בדוגמה יבוצעו על שרת ייעודי המופעל על ידי מערכת ההפעלה CentOS7 עם כתובת IP ציבורית סטטית אחת ייעודית.
הַתקָנָה
שלב 1
3proxy מותקן ישירות מהמקורות. gcc ישמש כקומפיילר. אנו מתחברים לשרת כ-root (משתמש-על) ומתקינים את המהדר.
yum install gcc
שלב 2
כעת יש צורך להוריד את קובצי המקור של 3proxy. אתה יכול לעשות זאת על ידי מעבר אל אתר רשמי והעתקת הקישור לגרסה הנוכחית:
אם יש צורך בגרסה בארכיון, תוכל גם להוריד את הקישור ישירות מ GitHub:
בזמן כתיבת מאמר זה, הגרסה הנוכחית היא 0.9.3. הורד אותו ומיד פרק אותו:
wget https://github.com/z3APA3A/3proxy/archive/0.9.3.tar.gz
tar -xvzf 0.9.3.tar.gz
שלב 3
עבור לספרייה עם הפרוייקט שנפרק והידור:
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
הדבר היחיד שאנחנו צריכים הוא להפעיל את 3proxy המוגדר, להוסיף אותו ל-autostart, וגם לפתוח פורטים בחומת האש.
הוסף אותו להפעלה אוטומטית, הפעל ובדוק סטטוס:
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 נעשתה בצורה שגויה. הבה נשקול את הבעיות הנפוצות ביותר ואת הפתרונות שלהן במהלך ההתקנה והגדרת התוכנה.
אין חיבור
הבעיה הנפוצה ביותר עבור משתמשים רבים היא חיבור בלתי נגיש כאשר נראה שקובצי התצורה מוגדרים כהלכה. אם אתה בטוח שכל ההגדרות הוגדרו כהלכה, ספק האירוח אינו מגביל את היציאה שנבחרה וכל הנתונים מצביעים על שירות עובד, ייתכן שהבעיה היא בחומת האש, או ליתר דיוק, התצורה השגויה שלה. לדוגמה, ייתכן שיהיו יותר משתי תוכניות מותקנות במערכת אשר יתנגשו זו בזו. כדי לפתור את הבעיה, מספיק להשתמש בחומת אש ספציפית אחת. אנו ממליצים לך לבחור רק iptables או חומת אש-cmd.
השירות לא מופעל
השירות אינו מתחיל לאחר הגדרת כל קבצי התצורה הדרושים. זה מתרחש כאשר פספס שלב תצורה, הזכויות המתאימות לא ניתנות, או שנעשתה שגיאה קלה בקבצי התצורה. אנו ממליצים לך ללמוד היטב את ההוראות צעד אחר צעד שוב, אולי פספסת את אחד השלבים. אם שום דבר לא עוזר, זה יהיה רעיון טוב להתקין מחדש את מערכת ההפעלה ולבצע את כל השלבים מההתחלה. אנו ממליצים להשתמש לִטעוֹם הממוקם ב-/cfg/3proxy.cfg.sample, כתצורת בדיקה, והמותקן מראש חומת אש-cmd בתור חומת אש.
רישום
הנושא האחרון, אך לא פחות חשוב, נוגע לאחסון קבצים. 3proxy לוקח מספר mb במהלך ההתקנה, אך ניתן להגדיל את הגודל באופן משמעותי רק באמצעות רישום עם הזמן. העובדה היא שמשתמשים רבים מאפשרים רישום יומן בקובץ נפרד, אך אינם מגדירים רוטציה ואינם מוחקים יומנים לא רלוונטיים. ניתן להשתמש בשלוש אפשרויות לפתרון בעיה זו:
- אפשר רישום;
- מחק מדי פעם יומנים לא רלוונטיים;
- אפשר סיבוב, כפי שנעשה בתצורה שלמעלה. לדוגמה, "סובב 30" בקובץ התצורה אומר ש-3proxy יאחסן רק את 30 הקבצים האחרונים.
סיכום
התקנה וקביעת התצורה של 3proxy במערכות ההפעלה CentOS ו-ArchLinux היא משימה פשוטה למדי, אך בו זמנית יעילה. המאמר סיקר את השלבים להתקנת החבילות הדרושות, תצורת קבצי תצורה והפעלת השירות. הידע שנצבר יאפשר לך להתקין ולהגדיר את שרת ה-proxy שלך בעצמך ללא קשיים.