OpenVPN. enhance admin interface.



  • Внимание! это для продвинутых пользователей.  Любое неаккуртное движение может всё полностью поломать.

    Маленькие хитрости. (для  pFsense 2.0 release,  pFsense 2.1 release и на промежуточных версиях тоже работает)

    Хитрость 1.

    Добавляем рюшечки полезности и наглядности на страничку Client Specific Override.

    http://192.168.1.1/vpn_openvpn_csc.php

    Редактируем файл  /usr/local/www/vpn_openvpn_csc.php

    примерно в районе 679 строки. следующий код.

    									$i = 0;
    					foreach($a_csc as $csc):
    						$disabled = "no";
    						if (isset($csc['disable']))
    							$disabled = "**yes**";
    				?>
    
    

    заменяем вот на такой:

    									$i = 0;
    					foreach($a_csc as $csc):
    						$disabled = "  no";
    						if (isset($csc['disable']))
                                                            { 
    							$disabled = "**yes**";
                                                            } 
    						$block = "|  no";
                                                    if ((isset($csc['block']))&(htmlspecialchars($csc['block']>"")))
                                                            {
                                                             $block = "| yes"; 
    							}
    				?>
    
    

    Несколькими строками ниже

    Дополняем так, чтобы получилось следующее:

    Хитрость 2.

    Сортируем список текущих впн соединений по IP адресу.
    Несколько раз сталкивался что клиентам выдаваются одинаковые IP адреса, тунель не работал или работал с глюакми.  Причины тут конечно в руках.

    Эта хитрость позволяет видеть в табличке клиентов с одинаковыми адресами сразу на соседних строках.

    http://192.168.1.1/status_openvpn.php

    Редактируем /usr/local/www/status_openvpn.php

    находим строку

    в версии 2.1  это  примерно 142 строка.

    приводим к следующему виду

    function cmp($a, $b) 
    {
    	return (ip2long($a['virtual_addr'])==ip2long($b['virtual_addr']))?0:(ip2long($a['virtual_addr'])>ip2long($b['virtual_addr']))?1:-1;
    }
    
    foreach ($servers as $server): 
    ?>
    
    

    далее, примерно на 17 строк ниже

    приводим к виду

    uasort(&$server['conns'], "cmp");
    foreach ($server['conns'] as $conn): 
    ?>
    

    Готово. 
    Тут же, есть следующая Хитрость 2.2.

    Если этот блок php кода сделать таким:

    uasort(&$server['conns'], "cmp");
    foreach ($server['conns'] as $conn): 
    $eveodd=$eveodd+1; 
    if ($eveodd % 2) 
      {
        $clrbkgtb="";
      } 
    else 
      {
        $clrbkgtb="e";
      }  ?>
    

    а далее 6 (шесть) строк

    Исправить на

    то визуально станет значительно красивше.
    особенно, если  в /usr/local/www/themes/code-red/all.css 
    (или в соответсвенном для  используемой тобой теме)

    добавить описание стиля .listlre  (скопировав из .listlr )

    немножко изменив цвет фона ячейки таблицы .





Log in to reply