Недавно в силу некоторых нужд (особенно с помощью Google) изучил способ настройки VPN-сервера на VPS. Если вы столкнулись с какими-то подводными камнями, запишите их для следующего раза.
Фактически, с VPS,Есть еще одна альтернатива。Это прямо на роутереsshтуннель+sock5актерское мастерство+использоватьautosshАвтоматическое повторное подключение+использоватьpolipoделатьHTTPактерское мастерство+PAC-файлавтоматическийактерское мастерствовыключатель。выполнить,Это то, что я сделал дома,И никакого другого влияния на структуру сети это не оказывает.
Ничто из вышеперечисленного не важно, давайте без лишних слов начнем с VPN.
В Интернете есть множество руководств по OpenVPN. Его легко настроить, но этот процесс довольно утомительный. Общий процесс
Следует отметить, что на самом деле в примерах OpenVPN есть много хорошо составленных аннотированных конфигураций. Вам не нужно следовать инструкциям во многих руководствах, чтобы самостоятельно написать конфигурации iptables и сервера.
#!/bin/sh
# CentOS 6 x86_64 Команда аналогична другим системам
# Проверьте тун (Если возникает ошибка, говорящая о том, что ядро не поддерживает tun)
modinfo tun;
# источник EPEL
rpm -ivh "http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm";
# Установить пакеты
yum install -y easy-rsa openvpn;
mkdir -p /etc/openvpn;
cp -f /usr/share/doc/openvpn-*/sample/sample-config-files/* /etc/openvpn ;
cp -rf /usr/share/easy-rsa /etc/openvpn/ ;
# Создать сертификат вручную ...
# Настройте firewall.sh (брандмауэр и Маршрутизация). и переадресация, будьте осторожны, не блокируйте открытые вами порты)
# Настройте файл конфигурации VPN для запуска в openvpn-startup.sh (последние несколько строк).
# Запустить опенвпн
cd /etc/openvpn && ./openvpn-startup.sh
# закрыть openvpn
cd /etc/openvpn && ./openvpn-shutdown.sh
Перед настройкой рекомендуется использовать виртуальную машину, чтобы опробовать ее.,потому чтоGFWОчень крутоиз Вы можете нажатьпротокол Возьмитесь за сцеплениеивыбросить。Я просто застрял здесь на очень долгое время,UDPсоединять выдает сообщение о том, что проверка не удалась,TCPсоединятьклиенти Сервер получил код ошибки-1изотключитьсясоединятьсообщение。Жизнь и смерть не связаны,большинствоназадперехожу на внутреннийизодинVPSтакой жеиз Метод строительства обычно напрямую связан.。
Из-за различных барьеров OpenVPN я хотел перейти на решение с более высокой поддержкой и использовать протокол pptp. Общий процесс в CentOS 6 выглядит следующим образом:
#!/bin/sh
# 1. Установить пакеты
# источник EPEL
rpm -ivh "http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm";
yum install ppp pptp pptpd pptp-setup -y;
# 2. Конфигурация
vim /etc/pptpd.conf;
# 2.1.1 удалять localip Предварительный комментарий
# 2.1.2 удалять remoteip Предварительный комментарий и измените содержимое на 192.168.10.100-200
vim /etc/ppp/option.pptpd
# 2.2 ms-dns 8.8.8.8 и ms-dns 8.8.4.4
# 2.3 Конфигурация Счет
vim /etc/ppp/chap/secrets
# добавить в [имя пользователя] pptpd [пароль] * (pptpd следует изменить на *, чтобы соответствовать всем именам, но я не пробовал)
# 3. Запустить модуль идобавить в Инициализировать автозагрузочный модуль
modprobe ppp_mppe
modprobe ip_gre
echo "#!/bin/sh" > /etc/sysconfig/modules/pptpd.modules
echo "modprobe ppp_mppe" >> /etc/sysconfig/modules/pptpd.modules
echo "modprobe ip_gre" >> /etc/sysconfig/modules/pptpd.modules
# 4. pptpd запускается и загружается
service pptpd start
chkconfig --add pptpd
chkconfig --level 5 pptpd on
chkconfig --level 6 pptpd on
# 5. Включить политику брандмауэра
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -p tcp --dport 47 -j ACCEPT
iptables -A INPUT -p gre -j ACCEPT
iptables -A POSTROUTING -t nat -s 192.168.10.0/24 -o eth0 -j MASQUERADE
iptables -A INPUT -p UDP --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
service iptables save
Обратите внимание на конфигурацию при подключении конечного клиента.
Я успешно подключился по этой конфигурации, но потом напутал при настройке l2tp, и не знаю почему не могу подключиться. Это очень хлопотно.
Это соглашение самое хлопотное, и мне оно никогда не удавалось. Но запишите процесс работы.
# 1. Установить yum install openswan xl2tpd openswan-doc lsof libpcap-devel
# 2. Конфигурация
vim /etc/ipsec.conf
# редактировать dumpdir=/var/run/pluto/
# редактировать virtual_private=%v4:10.0.0.0/8,%v4:192.168.11.0/24,%v4:172.16.0.0/12,%v4:25.0.0.0/8,%v6:fd00::/8,%v6:fe80::/10
# /etc/ipsec.d/xl2tpd.conf
cat > /etc/ipsec.d/xl2tpd.conf <<EOF
# Add connections here
# sample VPN connection
# for more examples, see /etc/ipsec.d/examples/
#conn sample
# # Left security gateway, subnet behind it, nexthop toward right.
# left=10.0.0.1
# leftsubnet=172.16.0.0/24
# leftnexthop=10.22.33.44
# # Right security gateway, subnet behind it, nexthop toward left.
# right=10.12.12.1
# rightsubnet=192.168.0.0/24
# rightnexthop=10.101.102.103
# # To authorize this connection, but not actually start it,
# # at startup, uncomment this.
# #auto=add
conn L2TP-PSK-NAT
rightsubnet=vhost:%priv
also=L2TP-PSK-noNAT
conn L2TP-PSK-noNAT
authby=secret
pfs=no
auto=add
keyingtries=3
rekey=no
ikelifetime=8h
keylife=1h
type=transport
left=[локальный IP или доменное имя] #Запишите здесь общедоступный IP-адрес. Если фиксированного IP-адреса нет, перейдите в Peanut Shell, чтобы получить динамическое разрешение доменного имени.
leftid=[локальный IP-адрес или имя домена]
leftprotoport=17/1701
right=%any
EOF;
# Установить общий ключ
vim /etc/ipsec.d/xl2tpd.secrets
echo ': PSK "l2tpd.owent.net"' > /etc/ipsec.d/xl2tpd.secrets;
# 3. Настройки сети
sysctl -w net.ipv4.ip_forward=1
sysctl -w net.ipv4.conf.default.rp_filter=0
sysctl -w net.ipv4.conf.default.send_redirects=0
sysctl -w net.ipv4.conf.default.accept_redirects=0
# Рекомендуется записать вышеуказанное содержимое в /etc/sysctl.conf назад осуществлять sysctl -p
# 3. Запустите и протестируйте
service ipsec start
ipsec verify
# Просто передайте все или Н/Д
# 4. настройки ксл2тпд
vim /etc/ppp/options.xl2tpd
# удалятьrequire-mschap-v2Предварительный комментарий
# name l2tpd
vim /etc/xl2tpd/xl2tpd.conf
# Перепишите следующее
# [global]
# listen-addr = [IP-адрес сервера]
# ipsec saref = yes # если ipsec verify возвращаться SAref kernel support [N/A] затем измените на no
# [lns default]
# ip range = 192.168.11.128-192.168.11.254
# local ip = 192.168.11.1
# name = l2tpd
vim /etc/ppp/chap-secrets
# Установите имя пользователя и пароль [имя пользователя] l2tpd [пароль] *
# 5. iptables правило
iptables -A INPUT -p tcp --dport 1194 -j ACCEPT
iptables -A INPUT -p udp --dport 1701 -j ACCEPT
iptables -A INPUT -p udp --dport 500 -j ACCEPT
iptables -A INPUT -p udp --dport 4500 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.11.0/24 -o eth0 -j MASQUERADE
iptables -A FORWARD -s 192.168.11.0/24 -j ACCEPT
iptables -A FORWARD -d 192.168.11.0/24 -j ACCEPT
service iptables save
# 6. Запустить xl2tpd и запустить автоматически
chkconfig --level 2345 ipsec on
chkconfig --level 2345 xl2tpd on
Но мне не удалось успешно подключиться, не знаю почему. Кроме того, говорят, что это также может бытьиспользоватьstrongswanзаменятьopenswan,иstrongswanвозвращатьсядоступный Приходить КонфигурацияIKEv1 и IKEv2протокол。
Две недели мучилсяназад,Обнаружил, что на самом деле существуют простые и жестокие решения VPN.,Это Японияизпрограммное обеспечение с открытым исходным кодомSoftether VPN
Список источников: https://www.softether.org/5-download/src Адрес Гитхаба: https://github.com/SoftEtherVPN/SoftEtherVPN/ Google Кодовый адрес: https://code.google.com/p/softether/source/browse/ Source Адрес кузницы: http://sourceforge.net/p/softethervpn/code/ci/master/tree/src/
Эта штука упрощает настройку VPN, ее можно развернуть в Linux, а затем подключить и управлять ею с помощью программ управления Windows. И поддерживает множество протоколов: OpenVPN, l2tp, IKEv1, IKEv2, IKEv3, sstp и т. д. (Оно того не стоит. Пробовал openvpn и l2tp, работают очень хорошо)
Установка этого продукта очень проста, просто следуйте документации на официальном сайте. При использовании следует учитывать несколько моментов.
#!/bin/sh
# Порты, которые я открыл, следующие:
iptables -A INPUT -p tcp --dport 47 -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 992 -j ACCEPT
iptables -A INPUT -p udp --dport 992 -j ACCEPT
iptables -A INPUT -p udp --dport 500 -j ACCEPT
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -p udp --dport 4500 -j ACCEPT
iptables -A INPUT -p tcp --dport 5555 -j ACCEPT
service iptables save