Bu makalede ArchLinux/CentOS işletim sistemi tarafından desteklenen özel bir sunucuda 3proxy yapılandırmasını göstereceğiz. 3proxy en alakalı ve işlevsel araçlardan biridir. Çeşitli protokol türlerini destekler: HTTP, HTTPS, FTP, SOCKS ve diğerleri. Dakikalar içinde kendi proxy sunucunuzu kurmanıza yardımcı olacaktır.
Makale, yardımcı programın kurulumu ve daha sonraki yapılandırması için adım adım kılavuz içermektedir. Resmi bir kaynaktan kurulum, yapılandırma dosyalarının oluşturulması, standart olmayan portların açılması gibi konular ele alınmış, ayrıca sık karşılaşılan hatalar açıklanmış ve bunların çözümü için pratik öneriler sunulmuştur. Başlatmadan önce, CentOS veya ArchLinux işletim sistemiyle çalışan bir VPS veya özel sunucu sipariş etmeniz gerekmektedir . Örnekteki tüm işlemler, CentOS7 işletim sistemiyle çalışan ve tek bir özel statik genel IP adresine sahip bir özel sunucuda gerçekleştirilecektir.
Montaj
1. Adım
3proxy doğrudan kaynak kodundan kurulur. Derleyici olarak gcc kullanılacaktır. Sunucuya root (süper kullanıcı) olarak bağlanıp derleyiciyi kuruyoruz.
yum install gcc
2. Adım
Şimdi 3proxy kaynak dosyalarını indirmeniz gerekiyor. Bunu, resmi web sitesine giderek ve mevcut sürümün bağlantısını kopyalayarak yapabilirsiniz :
Arşivlenmiş bir sürüme ihtiyaç duyulursa, bağlantıyı doğrudan GitHub'dan da indirebilirsiniz :
Bu makaleyi yazdığım sırada güncel sürüm 0.9.3'tür. İndirin ve hemen açın:
wget https://github.com/z3APA3A/3proxy/archive/0.9.3.tar.gz
tar -xvzf 0.9.3.tar.gz
3. Adım
Açılan projenin bulunduğu dizine gidin ve şunu derleyin:
cd 3proxy-0.9.3/
make -f Makefile.Linux
4. Adım
Dizinler oluşturuyoruz ve 3proxy dosyasını /usr/bin'e kopyalıyoruz:
mkdir -p /var/log/3proxy
mkdir /etc/3proxy
cp bin/3proxy /usr/bin/
5. Adım
Katalogla çalışmak üzere bir kullanıcı oluşturuyoruz. Bu durumda kullanıcı adı 3proxyuser'dır:
useradd -s /usr/sbin/nologin -U -M -r 3proxyuser
Oluşturulan kullanıcıya dizinlerle çalışma haklarını veriyoruz:
chown -R 3proxyuser:3proxyuser /etc/3proxy
chown -R 3proxyuser:3proxyuser /var/log/3proxy
chown -R 3proxyuser:3proxyuser /usr/bin/3proxy
Şimdi şu komutu kullanarak bir yapılandırma dosyası oluşturalım:
touch /etc/3proxy/3proxy.cfg
Gerekirse, yapılandırma dosyasına root kullanıcısı için izinler belirleyebilirsiniz. Bu adım zorunlu değildir, ancak ek koruma sağlayacaktır:
chmod 600 /etc/3proxy/3proxy.cfg
3proxy yapılandırması
6. Adım
Daha önce oluşturulan yapılandırma dosyasını doğru bir şekilde doldurmak gerekir. İlk olarak, şu komutla kullanıcının uid ve gid'ini bulun:
id 3proxyuser
Bizim durumumuzda bunlar aşağıdaki değerlerdir:
Yapılandırma dosyasını doldurmak için hazır yapılandırmaları kullanabilir veya resmi web sitesindeki belgelere başvurabilirsiniz . Ayrıca, varsayılan olarak önceden yüklenmiş bir örnek dosya da bulunmaktadır; bu dosyayı şu yolda bulabilirsiniz: /cfg/3proxy.cfg.sample
Örnek olarak, iki tür yapılandırmayı ele alacağız: günlük kaydı içeren ve içermeyen . Her satırın yanında yorumlar (bunlar "#" sembolüyle işaretlenmiştir) yer alacaktır.
Bu , kayıt tutmayan hazır bir yapılandırma örneğidir :
# 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
Kayıt tutmayan bir yapılandırma dosyası seçeneğini değerlendirdik. Şimdi ise kayıt tutma ve kullanıcı yetkilendirmesi içeren bir yapılandırma dosyası oluşturacağız ; bu dosya daha sonra sunucu kurulumu sırasında kullanılacaktır.
Yetkilendirme bilgilerini sağladığınızdan emin olun, çünkü sunucu standart olmayan portlarda bile tespit edilebilir.
# 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
Bu ana yapılandırma dosyasının kurulumunu tamamlar. Son aşamaya geçip başlatırız.
7. Adım
systemd için bir başlatma dosyası oluşturun:
touch /etc/systemd/system/3proxy.service
Gerekli hakları verin:
chmod 664 /etc/systemd/system/3proxy.service
Aşağıdaki değerleri dosyaya kopyalayıp yapıştırın ve kaydedin:
[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»
Lütfen dikkat: “ExecStop” değerine, 5. adımda oluşturulan kullanıcı adını belirtmeniz gerekmektedir.
Daha sonra Daemon yapılandırmasını şu komutla güncellemeniz gerekiyor:
systemctl daemon-reload
8. Adım
Yapmamız gereken tek şey yapılandırdığımız 3proxy'yi başlatmak, onu otomatik başlatmaya eklemek ve ayrıca güvenlik duvarında portları açmak.
Otomatik başlatmaya ekleyin, başlatın ve durumunu kontrol edin:
systemctl enable 3proxy
systemctl start 3proxy
systemctl status 3proxy
Durumu kontrol ettiğimizde 3proxy'nin başarıyla başlatıldığı bilgisini görüyoruz:
Geriye sadece portları açmak kaldı:
firewall-cmd --zone=public --add-port=50001/tcp
firewall-cmd --zone=public --add-port=50002/tcp
firewall-cmd –reload
Gerekirse sunucuyu yeniden başlatın. Portların açık olup olmadığını şu komutla kontrol etmek mümkündür:
firewall-cmd --list-all
Ne olmalı:
Görüldüğü gibi her iki port da başarıyla açılmış ve dinleniyor. http bağlantısı birinci portta, socks bağlantısı ise ikinci portta.
Bağlantıyı herhangi bir uygun servis aracılığıyla kontrol edin:
Her şey çalışıyor. Bizim açımızdan, giriş/şifre yetkilendirmesi olmadan ve standart port setiyle güvenli olmayan bir bağlantı kullanmanızı önermiyoruz . Yapılandırma dosyasını ayarlarken, mutlaka bir giriş belirtin ve karmaşık bir şifre oluşturun, ayrıca portları standart olmayan portlarla değiştirin . İstisnai durumlarda, IP adresi yetkilendirmesi kullanmak mümkündür.
Yaygın sorunlar
Bir şeyler ters gitti ve proxy çalışmıyor mu? Belki de 3proxy yapılandırması yanlış yapıldı. Yardımcı programı yükleme ve yapılandırma sırasında en sık karşılaşılan sorunları ve çözümlerini ele alalım.
Bağlantı yok
Birçok kullanıcı için en yaygın sorun, yapılandırma dosyaları doğru şekilde yapılandırılmış gibi göründüğünde erişilemeyen bir bağlantıdır. Tüm ayarların doğru şekilde yapılandırıldığından eminseniz, barındırma sağlayıcısı seçilen portu sınırlamıyorsa ve tüm veriler çalışan bir hizmeti gösteriyorsa, sorun Güvenlik Duvarı'nda veya daha doğrusu yanlış yapılandırmasında olabilir. Örneğin, sistemde birbirleriyle çakışacak ikiden fazla program yüklü olabilir. Sorunu çözmek için belirli bir Güvenlik Duvarı kullanmak yeterlidir. Yalnızca iptables veya firewall-cmd'yi seçmenizi öneririz.
Hizmet başlatılamıyor
Gerekli tüm yapılandırma dosyaları ayarlandıktan sonra servis başlamıyor. Bu durum, bir yapılandırma adımının atlanması, uygun hakların verilmemesi veya yapılandırma dosyalarında küçük bir hata yapılması durumunda ortaya çıkar. Talimatları adım adım dikkatlice tekrar incelemenizi öneririz, belki de adımlardan birini atlamışsınızdır. Hiçbir şey yardımcı olmazsa, işletim sistemini yeniden yüklemek ve tüm adımları baştan takip etmek iyi bir fikir olacaktır. Test yapılandırması olarak /cfg/3proxy.cfg.sample adresinde bulunan örnek dosyayı ve güvenlik duvarı olarak önceden yüklenmiş firewall-cmd'yi kullanmanızı öneririz.
Günlüğü
Son, ancak daha az önemli olmayan konu dosya depolamasıyla ilgilidir. 3proxy kurulum sırasında birkaç mb alır, ancak boyut yalnızca zaman geçtikçe günlük kaydı yoluyla önemli ölçüde artırılabilir. Gerçek şu ki, birçok kullanıcı ayrı bir dosyada günlük kaydını etkinleştirir, ancak rotasyonu ayarlamaz ve alakasız günlükleri silmez. Bu sorunun çözümü için üç seçenek kullanılabilir:
- Günlük kaydını etkinleştir;
- İlgisiz kayıtları periyodik olarak silin;
- Yukarıdaki yapılandırmada yapıldığı gibi döndürmeyi etkinleştirin. Örneğin, yapılandırma dosyasındaki "rotate 30", 3proxy'nin yalnızca en son 30 dosyayı depolayacağı anlamına gelir.
Sonuç
CentOS ve ArchLinux işletim sistemlerinde 3proxy'yi kurmak ve yapılandırmak oldukça basit, ancak aynı zamanda etkili bir görevdir. Makale, gerekli paketleri kurma, yapılandırma dosyalarını yapılandırma ve hizmeti başlatma adımlarını ele aldı. Edinilen bilgi, proxy sunucunuzu herhangi bir zorluk çekmeden kendiniz kurmanıza ve yapılandırmanıza olanak tanır.