PFSenseでVPNユーザーの作成を自動化する

画像



PFSense 2.0が本当に好きです。 OpenVPNサーバー機能は特に優れていました。 サーバー自体は、数回クリックするだけで構成されます( www.youtube.com/watch?v=odjviG-KDq8 )。 その後、ユーザーを作成し、設定を含むアーカイブを送信するだけです。 しかし、ClearOSからPFSenseに70人のユーザーを移動するという課題に直面したとき、私は正直落ち込みました。 見通しは次のように描かれました。 [ユーザーマネージャー]に移動し、[ユーザーの追加]ボタンをクリックし、ログインを入力し、パスワードを入力し、パスワードを再入力し、姓と名を入力し、[ユーザー証明書を作成する]チェックボックスをオンにし、再度姓と名を入力し、[保存]ボタンをクリックします、「OpenVPNサーバー」タブ「クライアントエクスポート」に移動し、設定でアーカイブを保存し、手紙を作成し、そこにメールを挿入し、ログイン、パスワードを書き、設定でアーカイブを添付し、付随するテキストを書いて送信します。 そしてそれで70回!!! もちろん、目標を設定して脳をオフにすれば、これらすべてを1日で、またはそれ以下で行うことができます。 しかし、愚かな仕事から、私は眠りにつくか、激怒します。 したがって、このプロセスを自動化することが決定されました。 そして、絶望になり、今は絶望に変わり、2度目の私を追い抜いた。 PFSenseは、その内臓を読み取り専用ファイルシステムで書き換えようとする私の試みに応答し、その構造の知識では、config.xmlを使用して計画したことを実行できませんでした(そして、これはその手段では不可能だと思います)。 つまり、地平線上で神経質な眠りに落ちるか、人型の人の近くに噛みつくかのいずれかが迫っています。 しかし、抜け道が見つかりました。 自分で作業をしたくない場合は、自分ではなくボタンをクリックするスクリプトを作成する必要があります。 私はすでに、「AutoIt、AutoIt!」と叫んでいるWindowsユーザーの手の森を見ています。 申し訳ありませんが、全体像を説明しませんでした。 私はUbuntuの下で働いています。 うん。 手の森は大幅に間引かれています。 残りのカップルは3人です。 さあ、あなたは必死のひげを着たセーターを着た少年です。 どうやって? そうだね。 座って、5。 Xdotools、友達。 これは、胸に文字Sが付いた青いレオタードを着た同じ男で、私の絶望的な状況を救った。





労働条件。

画面のロックを解除する必要があります。

Google Chromeブラウザーがインストールされている必要があります。 他では、テストされていません。

PFSense管理パネルは少なくとも1回開く必要があります。 スクリプトはログイン名とパスワードを入力しませんが、最初はそのような考えがありました。

Ubuntu 11.04デスクトップシステム。 他の人にはチェックされませんでした。

xdotoolsおよびsendemailパッケージをインストールする必要があります。

ユーザーリストの形式は次のとおりです。

ログインfirst_name second_name

例:

S_Astapovセルゲイアスタポフ

ログインはメールアドレスと一致する必要があります。



以下にコードを示します(お願いします、スツールで撃たないでください。私はプログラマーではありません。そのため、コードはプログラムのドグマとルールに恵みを装うものではありません)。



 #!/bin/bash #      bdpath=/opt/automa #    bdusers=(`cat $bdpath/users.txt`) #      .     . fs=(`echo ${bdusers[0]} | sed -e 's/^.[a-zA-Z]\{0\}//'`) #   a=0 b=`expr $a + 1` c=`expr $b + 1` #    . bdusers[0]=$fs #    tab="xdotool key --delay 300 "Tab"" shifttab="xdotool key --delay 300 --clearmodifiers "Shift+Tab"" #  while [ ${bdusers[$a]} ] do #         . #echo "All is right?" && read #    /usr/bin/google-chrome - https://pfsense.loc/system_usermanager.php?act=new sleep 3 #   name1="${bdusers[$c]}" name2="${bdusers[$b]}" login="${bdusers[$a]}" pass=`pwgen -1n` #   #   Username i=0 while [ "$i" != "9" ] do $tab i=`expr $i + 1` done #  xdotool type $login #   Password xdotool key --delay 200 "Tab" #  xdotool type $pass xdotool key --delay 200 "Tab" xdotool type $pass #   Full Name xdotool key --delay 200 "Tab" #  xdotool type $name1 #  xdotool key space #  xdotool type $name2 #   Click to create a user certificate. i=0 while [ "$i" != "7" ] do $tab i=`expr $i + 1` done #  Click to create a user certificate. xdotool key space #  Descriptive name xdotool key --delay 30 "Tab" #  xdotool type $name1 #  xdotool key space #  xdotool type $name2 #   Save i=0 while [ "$i" != "6" ] do $tab i=`expr $i + 1` done #  Save xdotool key "Return" #  xdotool key "Ctrl+w" #    /usr/bin/google-chrome — https://pfsense.loc/vpn_openvpn_export.php sleep 3 #      i=0 while [ "$i" != "6" ] do $shifttab i=`expr $i + 1` done #   xdotool key "Return" sleep 2 #  /home/user/temp/       xdotool key slash xdotool type "home" xdotool key slash xdotool type "user" xdotool key slash xdotool type "temp" xdotool key slash xdotool type "vpn-TCP-1194-config" # Enter xdotool key "Return" sleep 3 #  xdotool key "Ctrl+w" #    ,     sendemail -f admin@company.ru -t $login@company.ru -o message-charset=utf-8 -o message-content-type=html -u "NewVPN Settings" -m "<p> .<br>   VPN .          .</p><p>name - $login <br> pass - $pass"\ -s mail.company.ru -xu admin@company.ru -xp password -a instruction.doc /home/user/temp/vpn-TCP-1194-config.zip #   rm /home/user/temp/vpn-TCP-1194-config.zip a=`expr $a + 3` b=`expr $b + 3` c=`expr $c + 3` done 
      





#!/bin/bash # bdpath=/opt/automa # bdusers=(`cat $bdpath/users.txt`) # . . fs=(`echo ${bdusers[0]} | sed -e 's/^.[a-zA-Z]\{0\}//'`) # a=0 b=`expr $a + 1` c=`expr $b + 1` # . bdusers[0]=$fs # tab="xdotool key --delay 300 "Tab"" shifttab="xdotool key --delay 300 --clearmodifiers "Shift+Tab"" # while [ ${bdusers[$a]} ] do # . #echo "All is right?" && read # /usr/bin/google-chrome - https://pfsense.loc/system_usermanager.php?act=new sleep 3 # name1="${bdusers[$c]}" name2="${bdusers[$b]}" login="${bdusers[$a]}" pass=`pwgen -1n` # # Username i=0 while [ "$i" != "9" ] do $tab i=`expr $i + 1` done # xdotool type $login # Password xdotool key --delay 200 "Tab" # xdotool type $pass xdotool key --delay 200 "Tab" xdotool type $pass # Full Name xdotool key --delay 200 "Tab" # xdotool type $name1 # xdotool key space # xdotool type $name2 # Click to create a user certificate. i=0 while [ "$i" != "7" ] do $tab i=`expr $i + 1` done # Click to create a user certificate. xdotool key space # Descriptive name xdotool key --delay 30 "Tab" # xdotool type $name1 # xdotool key space # xdotool type $name2 # Save i=0 while [ "$i" != "6" ] do $tab i=`expr $i + 1` done # Save xdotool key "Return" # xdotool key "Ctrl+w" # /usr/bin/google-chrome — https://pfsense.loc/vpn_openvpn_export.php sleep 3 # i=0 while [ "$i" != "6" ] do $shifttab i=`expr $i + 1` done # xdotool key "Return" sleep 2 # /home/user/temp/ xdotool key slash xdotool type "home" xdotool key slash xdotool type "user" xdotool key slash xdotool type "temp" xdotool key slash xdotool type "vpn-TCP-1194-config" # Enter xdotool key "Return" sleep 3 # xdotool key "Ctrl+w" # , sendemail -f admin@company.ru -t $login@company.ru -o message-charset=utf-8 -o message-content-type=html -u "NewVPN Settings" -m "<p> .<br> VPN . .</p><p>name - $login <br> pass - $pass"\ -s mail.company.ru -xu admin@company.ru -xp password -a instruction.doc /home/user/temp/vpn-TCP-1194-config.zip # rm /home/user/temp/vpn-TCP-1194-config.zip a=`expr $a + 3` b=`expr $b + 3` c=`expr $c + 3` done







洗練された読者は、「ファイル名を設定するときに拡張子が合わないのはなぜですか」と尋ねるかもしれません。そして、アーカイブを保存すると(少なくとも私にとって)、選択は自動的にファイル名のみに設定されるためです。 そして、パスと名前を処方するとき、拡張子は変更されません。





「すべては正しいですか?」という行エコーのコメントを外すことを強くお勧めします。テスト中に10〜15秒間、より確実に読み取りまたは一時停止します。

まあ、それだけです。 スクリプトが私の状況に陥った人々を助けることを心から願っています。 そして最後に、ビデオ。 どのように生きていますか。




All Articles