Browse Source

Added some instructions

Dmitry Yu Okunev 3 years ago
parent
commit
cb1488b352

+ 13 - 0
app/assets/stylesheets/application.css

@@ -256,3 +256,16 @@ ul li {
 	transition:		all 0.1s ease-in-out 0s;
 }
 
+#content pre {
+	font-family:		"Lucida Console", Monaco, monospace;
+	border-radius:		15px;
+	padding:		15px;
+	margin-left:		80px;
+	background-color:	black;
+	color:			#aaa;
+	max-width:		1400px;
+	overflow-x:		auto;
+}
+#content pre.result {
+	background-color:	#444;
+}

+ 4 - 0
app/controllers/vpn_controller.rb

@@ -5,6 +5,10 @@ class VpnController < ApplicationController
 	end
 
 	def get_openvpn_config
+		if @user.nil?
+			redirect_to "https://login.mephi.ru/login?service=#{url_for(:only_path => false)}.#{params[:format]}" if @user.nil?
+			return
+		end
 		@account = Account.where(:login => params[:login].downcase, :owner => @user["user"]).first
 
 		if @account.nil?

+ 10 - 3
app/views/layouts/application.html.erb

@@ -24,7 +24,7 @@
 			&nbsp;
 		</div>
 
-		<div id='content'>
+		<div id='content' class='transition'>
 			<div id='contentPadded'>
 				<%= yield %>
 			</div>
@@ -34,8 +34,8 @@
 			<ul class='transition'>
 					<li><a href='/'>О сервисе</a></li>
 					<li><a href='/vpn/linux'>Инструкция для Linux</a></li>
-					<li><a href='http://ut.mephi.ru/services/vpn-mephi-ru/freebsd'>Инструкция для FreeBSD</a></li>
-					<li><a href='http://ut.mephi.ru/services/vpn-mephi-ru/win7'>Инструкция для Windows</a></li>
+					<li><a href='/vpn/freebsd'>Инструкция для FreeBSD</a></li>
+					<li><a href='/vpn/windows'>Инструкция для Windows</a></li>
 					<li><a href='/vpn/macos'>Инструкция для MacOS</a></li>
 					<li><a href='/vpn/openvpn'>Настройка OpenVPN</a></li>
 			</ul>
@@ -46,3 +46,10 @@
 		</div>
 	</body>
 </html>
+<script>
+	$('#navigation').mouseover(function(){
+		$('#content').css('left', '300px');
+	}).mouseleave(function(){
+		$('#content').css('left', '30px');
+	})
+</script>

+ 5 - 0
app/views/vpn/freebsd.html.erb

@@ -0,0 +1,5 @@
+<h1>Инструкции для FreeBSD</h1>
+<ul>
+	<li><a href='/vpn/openvpn-freebsd'>OpenVPN</a></li>
+	<li><a href='http://ut.mephi.ru/services/vpn-mephi-ru/freebsd'>L2TP (устаревший метод)</a></li>
+</ul>

+ 7 - 1
app/views/vpn/linux.html.erb

@@ -1,4 +1,10 @@
-<h1>Инструкция для Linux</h1>
+<h1>Инструкции для Linux</h1>
+<h2>OpenVPN</h2>
+<ul>
+	<li><a href='/vpn/openvpn-debian'>Debian/Ubuntu</a></li>
+	<li><a href='/vpn/openvpn-fedora'>Fedora</a></li>
+</ul>
+<h2>L2TP (устаревший метод)</h2>
 <ul>
 	<li><a href='http://ut.mephi.ru/services/vpn-mephi-ru/debian'>Debian/Wheezy</a></li>
 	<li><a href='http://ut.mephi.ru/services/vpn-mephi-ru/fedora'>Fedora</a></li>

+ 1 - 1
app/views/vpn/macos.html.erb

@@ -1,2 +1,2 @@
 <h1>Инструкция для MacOS</h1>
-Инструкция отсутствует.
+В данный момент для MacOS поддерживается только соединение с применением <a href=/vpn/openvpn>OpenVPN</a>.

+ 4 - 3
app/views/vpn/openvpn.html.erb

@@ -7,9 +7,9 @@
 	</p>
 	<br>
 	<table id='accounts'>
-		<tr><th title='Дата создания учётной записи'>Дата создания</th><th>Логин</th><th>IP-адрес</th><th title='Количество использований'>Кол-во исп.</th><th></th></tr>
+		<tr><th title='Дата создания учётной записи'>Дата создания</th><th>Логин</th><th>IP-адрес</th><th></th></tr>
 		<% @accounts.each do |account| %>
-			<tr><td><%= account.created_at.to_date %></td><td><%= account.login %></td><td><%= account.IPAddr %></td><td><%= account.pulled %></td><td><a href="/vpn/openvpn/<%= @user['user'] %>.zip">openvpn</a></td></tr>
+			<tr><td><%= account.created_at.to_date %></td><td><%= account.login %></td><td><%= account.IPAddr %></td><td><a href="/vpn/openvpn/<%= @user['user'] %>.zip">openvpn</a></td></tr>
 		<% end %>
 	</table>
 	<br>
@@ -21,11 +21,12 @@
 			Linux —
 			<ul>
 				<li><a href='/vpn/openvpn-debian'>Debian/Ubuntu</a></li>
-				<li><a href='/vpn/openvpn-fedora'>Fedora/RHEL/Scientific</a></li>
+				<li><a href='/vpn/openvpn-fedora'>Fedora</a></li>
 			</ul>
 		</li>
 		<li><a href='/vpn/openvpn-freebsd'>FreeBSD</a></li>
 		<li><a href='/vpn/openvpn-windows'>Windows</a></li>
 		<li><a href='/vpn/openvpn-macos'>MacOS</a></li>
 	</ul>
+	<a href='/vpn/openvpn-troubleshooting'>Список типичных ошибок</a>
 <% end %>

+ 79 - 0
app/views/vpn/openvpn_debian.html.erb

@@ -0,0 +1,79 @@
+<h1>Настройка OpenVPN во Debian.</h1>
+
+<h2>Краткая инструкция</h2>
+<pre>
+export VPN_LOGIN=имя_пользователя
+cd /tmp; LANG=C lynx -nopause -accept_all_cookies https://vpn.mephi.ru/vpn/openvpn/$VPN_LOGIN.zip
+unzip $VPN_LOGIN.zip
+apt-get install openvpn
+mv /tmp/$VPN_LOGIN.vpn.mephi.ru/* /etc/openvpn/; rm -rf /tmp/$VPN_LOGIN.vpn.mephi.ru
+systemctl enable openvpn@$VPN_LOGIN.vpn.mephi.ru.service 2&gt;/dev/null || sed -e 's/#AUTOSTART="all"/AUTOSTART="all"/' -i /etc/default/openvpn
+service openvpn start
+</pre>
+<hr>
+<h2>Подробная инструкция</h2>
+<h3>Установка браузера для скачивания конфигурации</h3>
+<pre>
+apt-get install -y lynx unzip
+</pre>
+<h3>Скачивание конфигурации (пропустить, если уже скачан)</h3>
+<div class='folder'>
+<pre>
+cd /tmp
+LANG=C lynx -nopause -accept_all_cookies https://vpn.mephi.ru/vpn/openvpn/$VPN_LOGIN.zip
+</pre>
+<p>Вместо «$VPN_LOGIN» необходимо подставить имя пользователя требуемой учётной записи, например «iiivanov».</p>
+
+<p>В результате отобразится следующая страница:</p>
+<pre class='result'>
+   Tehnicheskaya podderzhka: +7 (495) 788-56-99, dob. 9999
+
+   [logo.png]
+   [user.png] ________________________________
+   [key.png] ________________________________
+   LOGIN
+   NIYAU MIFI, Upravlenie informatizacii
+</pre>
+<p>Необходимо правее «user.png» ввести корпоративное почтовое имя пользователя (например «iiivanov»), правее «key.png» — пароль (от корпоративной электронной почты в домене «@mephi.ru»); после чего нажать кнопку «LOGIN».</p>
+<p>В нижней части окна терминала (в статусной строке) появится список предлагаемых действий (скачать или отменить):</p>
+<pre style='background-color:blue;color:yellow;border-radius:5px;padding:5px;'>
+	application/zip D)ownload, or C)ancel
+</pre>
+<p>Необходимо нажать клавишу «d», чтобы скачать файл с конфигурацией. В результате отобразится следующее окно:</p>
+<pre class='result'>
+Downloaded link: https://vpn.mephi.ru/vpn/openvpn/$VPN_LOGIN.zip
+Suggested file name: $VPN_LOGIN.zip
+   
+Standard download options:
+   Save to disk
+
+Local additions:
+</pre>
+<p>Необходимо выбрать «Save to disk» и ещё раз нажать «Enter». После чего можно выйти из браузера, нажав «control+c».</p>
+<p>Проверить успешность получения файла с конфигурацией можно командой:</p>
+<pre>
+ls -ld $VPN_LOGIN.zip
+</pre>
+Результат должен быть похож на:
+<pre class='result'>
+root@debian8:/tmp# ls -ld $VPN_LOGIN.zip
+-rw-r--r-- 1 root root 5774 Nov 11 21:00 $VPN_LOGIN.zip
+</pre>
+</div>
+<h3>Установка OpenVPN</h3>
+<pre>
+apt-get install -y openvpn
+</pre>
+
+<h3>Установка конфигурации</h3>
+<pre>
+mv /tmp/$VPN_LOGIN.vpn.mephi.ru/* /etc/openvpn/                        # устанавливаем конфигурацию
+systemctl enable openvpn@$VPN_LOGIN.vpn.mephi.ru.service               # активируем её
+</pre>
+Если вместо systemd используется другая система инициализации, то вместо команды с «systemctl» необходимо выполнить:
+<pre>
+sed -e 's/#AUTOSTART="all"/AUTOSTART="all"/' -i /etc/default/openvpn   # активируем её
+</pre>
+
+<h3>Запуск OpenVPN</h3>
+<pre>service openvpn start</pre>

+ 92 - 0
app/views/vpn/openvpn_freebsd.html.erb

@@ -0,0 +1,92 @@
+<h1>Настройка OpenVPN во FreeBSD.</h1>
+
+<h2>Краткая инструкция</h2>
+<pre>
+export VPN_LOGIN=имя_пользователя
+cd /tmp; LANG=C lynx -nopause -accept_all_cookies https://vpn.mephi.ru/vpn/openvpn/$VPN_LOGIN.zip
+unzip $VPN_LOGIN.zip
+cd /usr/ports/security/openvpn &amp;&amp; make install
+mv /tmp/$VPN_LOGIN.vpn.mephi.ru /usr/local/etc/openvpn
+cat &gt;&gt; /etc/rc.conf &lt;&lt; EOF
+openvpn_enable="YES"
+openvpn_configfile="/usr/local/etc/openvpn/$VPN_LOGIN.vpn.mephi.ru.conf"
+EOF
+/usr/local/etc/rc.d/openvpn start
+</pre>
+<hr>
+<h2>Подробная инструкция</h2>
+<h3>Установка браузера для скачивания конфигурации</h3>
+<pre>
+cd /usr/ports/www/lynx
+make install
+</pre>
+<p>Далее необходимо ответить на вопросы установочника.</p>
+<h3>Скачивание конфигурации (пропустить, если уже скачан)</h3>
+<div class='folder'>
+<pre>
+cd /tmp
+LANG=C lynx -nopause -accept_all_cookies https://vpn.mephi.ru/vpn/openvpn/$VPN_LOGIN.zip
+</pre>
+<p>Вместо «$VPN_LOGIN» необходимо подставить имя пользователя требуемой учётной записи, например «iiivanov».</p>
+
+<p>В результате отобразится следующая страница:</p>
+<pre class='result'>
+   Tehnicheskaya podderzhka: +7 (495) 788-56-99, dob. 9999
+
+   [logo.png]
+   [user.png] ________________________________
+   [key.png] ________________________________
+   LOGIN
+   NIYAU MIFI, Upravlenie informatizacii
+</pre>
+<p>Необходимо правее «user.png» ввести корпоративное почтовое имя пользователя (например «iiivanov»), правее «key.png» — пароль (от корпоративной электронной почты в домене «@mephi.ru»); после чего нажать кнопку «LOGIN».</p>
+<p>В нижней части окна терминала (в статусной строке) появится список предлагаемых действий (скачать или отменить):</p>
+<pre style='background-color:blue;color:yellow;border-radius:5px;padding:5px;'>
+	application/zip D)ownload, or C)ancel
+</pre>
+<p>Необходимо нажать клавишу «d», чтобы скачать файл с конфигурацией. В результате отобразится следующее окно:</p>
+<pre class='result'>
+Downloaded link: https://vpn.mephi.ru/vpn/openvpn/$VPN_LOGIN.zip
+Suggested file name: $VPN_LOGIN.zip
+   
+Standard download options:
+   Save to disk
+
+Local additions:
+</pre>
+<p>Необходимо выбрать «Save to disk» и ещё раз нажать «Enter». После чего можно выйти из браузера, нажав «control+c».</p>
+<p>Проверить успешность получения файла с конфигурацией можно командой:</p>
+<pre>
+ls -ld $VPN_LOGIN.zip
+</pre>
+Результат должен быть похож на:
+<pre class='result'>
+root@freebsd9:/tmp # ls -ld $VPN_LOGIN.zip 
+-rw-r--r--  1 root  wheel  5774 Jun 17 00:00 $VPN_LOGIN.zip
+</pre>
+</div>
+
+<h3>Установка OpenVPN</h3>
+<pre>
+cd /usr/ports/security/openvpn
+make install
+</pre>
+<p>Далее необходимо ответить на вопросы установочника. В результате успешного выполнения установки команда:</p>
+<pre>
+which openvpn
+</pre>
+должна сообщить путь к «openvpn». В случае ошибки ответом будет — «openvpn: Command not found».
+
+<h3>Установка конфигурации</h3>
+<pre>
+cd /tmp
+unzip $VPN_LOGIN.zip
+mv $VPN_LOGIN.vpn.mephi.ru /usr/local/etc/openvpn
+echo 'openvpn_enable="YES"' &gt;&gt; /etc/rc.conf
+echo 'openvpn_configfile="/usr/local/etc/openvpn/$VPN_LOGIN.vpn.mephi.ru.conf"' &gt;&gt; /etc/rc.conf
+</pre>
+
+<h3>Запуск OpenVPN</h3>
+<pre>
+/usr/local/etc/rc.d/openvpn start
+</pre>

+ 5 - 0
app/views/vpn/openvpn_troubleshooting.html.erb

@@ -0,0 +1,5 @@
+<pre class='result'>VERIFY ERROR: depth=1, error=certificate is not yet valid: C=RU, ST=RU, L=Moscow, O=NRNU MEPhI, OU=UT, CN=vpn.mephi.ru, name=vpn.mephi.ru, emailAddress=admin@ut.mephi.ru</pre>
+<p>
+Данная ошибка связана с неверно настроенными часами. Необходимо синхронизировать время.
+</p>
+

+ 5 - 0
app/views/vpn/windows.html.erb

@@ -0,0 +1,5 @@
+<h1>Инструкции для Windows</h1>
+<ul>
+	<li><a href='/vpn/openvpn-windows'>OpenVPN</a></li>
+	<li><a href='http://ut.mephi.ru/services/vpn-mephi-ru/win7'>L2TP (устаревший метод)</a></li>
+</ul>

+ 2 - 0
config/routes.rb

@@ -1,6 +1,7 @@
 Rails.application.routes.draw do
 	get 'vpn/linux'
 	get 'vpn/windows'
+	get 'vpn/freebsd'
 	get 'vpn/macos'
 	get 'vpn/openvpn'
 	get 'vpn/openvpn-debian'
@@ -8,6 +9,7 @@ Rails.application.routes.draw do
 	get 'vpn/openvpn-freebsd'
 	get 'vpn/openvpn-windows'
 	get 'vpn/openvpn-macos'
+	get 'vpn/openvpn-troubleshooting'
 	get 'vpn/openvpn/:login', to: 'vpn#get_openvpn_config'
 
 	root 'vpn#about'