Почему для поднятия соксов ты выбрал программу dante-server, а не более популярную
3proxy ?
Установка 3proxy на CentOS 7
Часть 1.
Аренда VDS.
Часть 2.
Подготовка VDS к установке 3proxy.
Итак, у нас имеется:
# uname -a
Linux zeroxzed.ru 3.10.0-123.20.1.el7.x86_64 #1 SMP Thu Jan 29 18:05:33 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Меняем имя хоста (при необходимости) :
Проверить какое у нас используется hostname можно командой:
# hostname
Изменить имя хоста можно следующей командой
Для CentOS 6 в файле /etc/sysconfig/network
HOSTNAME=example.com
Для CentOS 7 командой:
# hostnamectl set-hostname новое_имя_хоста
# hostnamectl set-hostname word-music.ru
Перезапустим сетевой интерфейс чтобы изменения вступили в силу:
# /etc/init.d/network restart
Проверяем работает ли у нас все:
# hostname
Первым делом обновим систему:
# yum -y update
Для удобства администрирования, я всегда устанавливаю Midnight Commander, или просто mc:
# yum -y install mc
Подсветка синтаксиса в Midnight Commander
Для подсветки файлов, у которых нет своих цветовых настроек:
# cp /usr/share/mc/syntax/cxx.syntax /usr/share/mc/syntax/unknown.syntax
Дальше нам пригодятся сетевые утилиты.
# yum -y install net-tools.x86_64
Отключаем SELinux.
# mcedit /etc/sysconfig/selinux
меняем значение
SELINUX=disabled
Чтобы изменения вступили в силу, перезагружаемся:
# reboot
Или примените исключение:
# setenforce 0
Отключить IPv6 везде где только можно:
В файл /etc/sysctl.conf
Добавляем следующие строки:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
# echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
# echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.conf
# mcedit /etc/sysconfig/network-scripts/ifcfg-eth0
IPV6INIT=no
# mcedit /etc/sysconfig/network
добавить
NETWORKING_IPV6=no
IPV6INIT=no
SSH:
/etc/ssh/sshd_config
до
#AddressFamily any
#ListenAddress 0.0.0.0
после
AddressFamily inet
ListenAddress 0.0.0.0
# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
#::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
Перезагрузка и проверка:
# reboot
# netstat -tulnp
Все строки с ::: это ipv6 протокол
Удаляем NetworkManager в CentOS 7
Это программа, облегчающая определение и конфигурацию средств для автоматического подключения к сети.
Полезна она только для домашнего ПК или ноутбука, на сервере же может создавать проблемы с настройкой сети,
т.к. может самостоятельно менять настройки.
# systemctl stop NetworkManager && systemctl disable NetworkManager && systemctl restart network
Настраиваем время
Установим нужный часовой пояс:
# yum -y install tzdata
# mv /etc/localtime /etc/localtime.bak
# ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
Синхронизируем время:
Можно запускать синхронизацию времени вручную:
# ntpdate pool.ntp.org
Или установить сервер ntp (настройки в файле /etc/ntp.conf):
# yum install ntp
# service ntpd start
# chkconfig ntpd on
Узнать, какое время на сервере можно с помощью команды date:
# date
Часть 3.
Установка программы 3proxy.
Устанавливаем нужные пакеты для компиляции
yum update && yum -y install wget gcc mc
Загружаем 3proxy
wget
https://github.com/z3APA3A/3proxy/archive/0.8.10.tar.gz
Разархивируем скачанный архив командой
tar -xvzf 0.8.10.tar.gz
Переходим в папку с распакованными файлами:
# cd 3proxy-0.8.10
Перед компиляцией используя mcedit добавим одну строчку в src/proxy.h, чтобы сервер был анонимным
# mcedit /src/proxy.h
добавить пункт
#define ANONYMOUS 1
Можно добавить эту строку командой
# sed -i '1s/^/#define ANONYMOUS 1\n/' ./src/proxy.h
Компилируем:
make -f Makefile.Linux
Во время компиляции могут появляться следующие ошибки:
3proxy.c:1103: warning: pointer targets in passing argument 1 of …
Но они не критичны и их мы игнорируем
Создаем папки:
# mkdir /usr/local/etc/3proxy
# mkdir /usr/local/etc/3proxy/bin
# mkdir /usr/local/etc/3proxy/logs
# mkdir /usr/local/etc/3proxy/stat
яяяПереносим исполняемый файл
# cp src/3proxy /usr/local/etc/3proxy/bin
Переносим файл для автозапуска
# cp ./scripts/rc.d/proxy.sh /etc/init.d/3proxy
Ставим в автозагрузку:
/sbin/chkconfig 3proxy on
# systemctl enable 3proxy.service
Записываем информацию в файл автозагрузки CentOS
# chkconfig 3proxy on
Создаем новый конфигурационный файл
# touch /usr/local/etc/3proxy/3proxy.cfg
Или переносим из образца конфигурационный файл
# cp cfg/3proxy.cfg.sample /usr/local/etc/3proxy/3proxy.cfg
Редактируем 3proxy.cfg
# mcedit /usr/local/etc/3proxy/3proxy.cfg
Насчет конфига - никаких лишних пробелов, табуляций и т.п. знаков в начале строки,
иначе строка конфига будет считаться закоментированной и значит, не будет обрабатываться.
поменять порт на 2110 и не забыть дать пользователям разрешение на этот нестандартный порт:
**********************************************
daemon
# IP адреса
# меняем 192.168.1.2 на ip адрес вашего сервера (internal и external)
internal 192.168.1.2
external 192.168.1.2
auth strong
users admin:CL

assword
proxy -n -a -p2110 -ixxx.xxx.xxx.xxx -exxx.xxx.xxx.xxx
proxy -n -a -p3128 -iyyy.yyy.yyy.yyy -eyyy.yyy.yyy.yyy
# Конфигурация FTP (ftp и icq), Web-proxy (http и https), SOCKS5-proxy
flush
allow admin,vasyawww
maxconn 32
# разрешим использовать прокси только тем пользователям, которых добавили в самом начале конфига и с определенным IP
allow zerochaos,zchaos 192.168.1.4,95.95.95.95 * * *
# запустим ftp прокси на порту 3127
#ftppr -p3127
# запустим web прокси на порту 3128
proxy -p3128
# запустим socks прокси на порту 3129
#socks -p3129
***********************************************
Выставляем права
# chown -R nobody:nogroup /usr/local/etc/3proxy
- эта команда выдаёт ошибку о том, что инвалид-группа "nobody:nogroup " .
# chown -R root /usr/local/etc/3proxy
Даём разрешение на выполнение скрипта:
# chmod +x /etc/init.d/3proxy
Запускаем
# service 3proxy start
Проверить, запущена ли служба 3proxy можно командой
# systemctl status 3proxy.service
Дальше — настраиваем огненную стену:
# Открываем порт для http- и socks- прокси:
$ firewall-cmd --zone=public --add-port=2110/tcp --permanent
$ firewall-cmd --zone=public --add-port=3129/tcp --permanent
$ firewall-cmd --reload
# Блокируем ICMP трафик (echo-запросы) для того, чтоб наш сервер **не отвечал** на пинги:
# Проверяем состояние:
$ firewall-cmd --zone=public --query-icmp-block=echo-reply
$ firewall-cmd --zone=public --query-icmp-block=echo-request
# Блокируем:
$ firewall-cmd --zone=public --add-icmp-block=echo-reply --permanent
$ firewall-cmd --zone=public --add-icmp-block=echo-request --permanent
# Перечитаем правила:
$ firewall-cmd --reload
# И проверим теперь:
$ firewall-cmd --zone=public --query-icmp-block=echo-reply
$ firewall-cmd --zone=public --query-icmp-block=echo-request
Проверяем слушается ли наш порт:
# netstat -an | grep -i listen
# netstat -lnpt | grep 3128
# netstat -lnpt | grep 3129
Если утилита netstat не установлена, то установить её можно командой
# yum -y install net-tools
Проверим висит ли наш процесс:
ps ax | grep [3]proxy
****************************************************************
***************************************************************
Для применения настроек выполните команду:
# systemctl restart 3proxy
Перегружаем сервер командой reboot и проверяем работоспособность.
Часть 4.
Проверка работоспособности.
**************************************************************************************
2 СПОСОБ
Установка
yum install 3proxy -y
Отредактировать настройки
nano /etc/3proxy/3proxy.cfg
Запуск
/usr/local/etc/3proxy/bin/3proxy /usr/local/3proxy/3proxy.cfg
или
service 3proxy start