Ubuntu 7.10でAbillS課金システムを使用してVPNサーバーをインストールおよび構成する

おそらく誰もが、モスクワとロシアのインターネット価格の状況が非常に異なっていることを知っています。

比較のために、トリアッティ(サマラ地域)では、1か月あたり512 kbit / sの速度で無制限にアクセスするには2300ドルかかります。

首都では、同じ量で、おそらく既に20 Mbpsを使用できます。



だから、どんなにワイルドに聞こえても、このチャンネル(512 kbit / s)をローカルホームネットワーク上の他の数人と共有して、コストを削減します=)



プロバイダーは、VPNサーバーを介してインターネットへのアクセスを許可します。



LANのユーザーは、無料でトラフィック制御なしで都市内リソースにアクセスできます。

外部では、ローカルネットワーク上のサーバーへのVPN接続を介してそれらを解放することが決定されました。



システムはテストされ、ほぼ6か月間動作しています。苦情はありません。すべてが安定しています。



サーバー構成:Pentium III 1000MHz、SDRAM 512Mb



サーバーの負荷を軽減するために、圧縮と暗号化を使用しないことが決定されました。この点で、クライアントはWindowsのVPN設定で「暗号化が必要」ボックスのチェックを外す必要があります。



この手順では、すべてのインストールおよび構成の経験を収集することにしました。

最初は自分で書いたが、一般の人も役に立つと思う。





それでは、 abills billingを使用してVPNサーバーのインストールを開始しましょう



Ubuntu 7.10をインストールします

それを説明する意味はないので、設定に移りましょう。 =)まあ、私が気づくことができる唯一のことは、グラフィックスなしでUbuntuのサーバーバージョンをインストールする価値があるということです。



OSのセットアップ

そのため、ローカルクライアントをプロバイダーの内部ネットワークに解放するために、サーバーでNATを構成する必要があります。

/etc/rc.localに、失敗後に設定を自動的に復元する次の行を記述します。

  echo "1"> / proc / sys / net / ipv4 / ip_dynaddr
 echo "1"> / proc / sys / net / ipv4 / ip_forward
 iptables-restore /etc/iptables.conf 
iptablesの設定は/etc/iptables.confに保存されます

次に、次の行を/ etc / modulesファイルに追加します

  ip_conntrack
 ip_gre
 ip_nat_pptp
 ip_conntrack_ftp
 ip_nat_ftp 
これらすべてのパラメーターを適用するには、/ etc / rc.localスクリプトを実行してコマンドを与えることができます

  modprobe ip_conntrack
 modprobe ip_gre
 modprobe ip_nat_pptp
 modprobe ip_conntrack_ftp
 modprobe ip_nat_ftp 
その後、NATを上げるには、次のコマンドを入力します

  iptables -t nat-ポストルーティング-o!  eth1 -jマスカレード 
Eth1インターフェース-LANを見る

これで、LANからのすべてのユーザーがプロバイダーの内部ネットワークにアクセスできるようになりました。

ファイアウォールの設定を保存することを忘れないでください

  iptables-save> /etc/iptables.conf 
インターネットへのサーバーアクセス用にVPN(pptp)クライアントを構成します。

DVDディスクまたはインターネットに接続している場合は、単にコマンドを与えることができます

  apt-get pppp-linuxをインストール 
自動インストールの可能性がない場合は、パッケージをフォルダーにダウンロードし、手動でインストールを開始する必要があります。

  dpkg -i pptp-linux_1.7.0-2ubuntu2_i386.deb 
VPNをセットアップしましょう。これのために、/ etc / ppp / peersフォルダーに移動し、そこにaistなどのファイルを作成します。

  vim / etc / ppp / peers / aist 
そして、私たちはすでにそれを書いています

  mtu 1400
 mru 1500
持続する
 maxfail 0
 lcp-echo-interval 60
 lcp-echo-failure 4
 pty "pptp provider vpn server address --nolaunchpppd"
名前ログイン
パスワードパスワード
リモート名PPTP
 require-mppe-128
デフォルトルート
 replacedefaultroute 
ここで、VPNを上げる前に、プロバイダーの内部ネットワークのルーティングを規定する必要があります。 VPN経由ではアクセスできません。

ファイル/ etc / network / interfacesを編集して、次の内容を取得します

  auto lo eth1 eth0
 iface lo inetループバック

 iface eth1 inet static
   アドレス192.168.110.1
   ネットマスク255.255.255.0

 iface eth0 inet dhcp
    up route add -net 172.16.0.0 netmask 255.240.0.0 dev eth0
    up route add -net 10.0.0.0 netmask 255.0.0.0 dev eth0
    up route add -net 192.168.0.0 netmask 255.255.255.0 dev eth0
   ポンポン
   プレダウンポフエイスト 
確認するには、次のコマンドを使用できます

  /etc/init.d/networking restart 
その後、すべてのインターフェイスが再起動されます。 VPNは自動的に接続します。

すべてがうまくいった場合、ifconfigコマンドでppp0インターフェイスが表示されたかどうかを確認できます。

!!! 注意、現時点では、サーバー上でNATが構成されており、インターネット、つまり ロカルカのすべてのユーザーはインターネットに無制限にアクセスできます。



poff aistコマンドでvpnを無効にできます

接続-pon aist



Freeradiusインストール

  apt-get freeradiusのインストール 
/ etc / freeradius / usersの編集では、次の行のみを残します
デフォルトの認証タイプ= Accept
   Exec-Program-Wait = "/usr/abills/libexec/rauth.pl" 
残りはコメントまたは削除します。



次に、/ etc / freeradius / acct_usersを最後に追加して編集します

  DEFAULT Acct-Status-Type ==開始
   Exec-Program = "/usr/abills/libexec/racct.pl"

デフォルトのAcct-Status-Type == Alive
   Exec-Program = "/usr/abills/libexec/racct.pl"

デフォルトのAcct-Status-Type == Stop
   Exec-Program = "/usr/abills/libexec/racct.pl" 
/etc/freeradius/clients.confを編集してすべてをコメント化し、最後に追加します

 クライアントlocalhost {
   secret = radsecret
  ショートネーム=ショートネーム
 } 
理由もわかりませんが、設定時にこのような不具合があり、eth0のアドレスに同じ行を追加する必要がありました

 クライアント172.16.102.72 {
   secret = radsecret
  ショートネーム=ショートネーム
 } 
/etc/freeradius/radiusd.confで、authorizeセクションのmschapおよびeap行についてコメントします

 承認する{
  前処理
   #chap
   #カウンター
   #attr_filter
   #eap
  接尾辞
  ファイル
   #etc_smbpasswd
   #sql
   #mschap
 } 
ファイルの編集に進みます/ etc / freeradius /辞書最後に追加

  #セッショントラフィックを制限する
 ATTRIBUTE Session-Octets-Limit 227整数
 #制限として想定するもの-0 in + out、1 in、2 out、3 max(in、out)
 ATTRIBUTE Octets-Direction 228整数
 #接続速度の制限
 ATTRIBUTE PPPD-Upstream-Speed-Limit 230整数
 ATTRIBUTE PPPD-Downstream-Speed-Limit 231整数
 ATTRIBUTE PPPD-Upstream-Speed-Limit-1 232整数
 ATTRIBUTE PPPD-Downstream-Speed-Limit-1 233整数
 ATTRIBUTE PPPD-Upstream-Speed-Limit-2 234整数
 ATTRIBUTE PPPD-Downstream-Speed-Limit-2 235整数
 ATTRIBUTE PPPD-Upstream-Speed-Limit-3 236整数
 ATTRIBUTE PPPD-Downstream-Speed-Limit-3 237整数
 ATTRIBUTE Acct-Interim-Interval 85整数 
その後、半径を再起動します

/etc/init.d/freeradius restart



Radiusclientを構成する

Radiusclientをインストールする

  apt-get radiusclient1のインストール 
ファイル/etc/radiusclient/radiusclient.confを編集します。

  authserver 127.0.0.1
 acctserver 127.0.0.1 
/ etc / radiusclient / serversの編集

  127.0.0.1 radsecret 
/ etc / radiusclient /辞書に追加

  ATTRIBUTE Acct-Interim-Interval 85整数
 ATTRIBUTE Session-Octets-Limit 227整数
 ATTRIBUTE Octets-Direction 228整数

 ATTRIBUTE PPPD-Upstream-Speed-Limit 230整数
 ATTRIBUTE PPPD-Downstream-Speed-Limit 231整数
 ATTRIBUTE PPPD-Upstream-Speed-Limit-1 232整数
 ATTRIBUTE PPPD-Downstream-Speed-Limit-1 233整数
 ATTRIBUTE PPPD-Upstream-Speed-Limit-2 234整数
 ATTRIBUTE PPPD-Downstream-Speed-Limit-2 235整数
 ATTRIBUTE PPPD-Upstream-Speed-Limit-3 236整数
 ATTRIBUTE PPPD-Downstream-Speed-Limit-3 237整数 
AbillS課金システムをダウンロードし、解凍します

  tar -xf abills-0.37.tgz 
/ usr / abillsフォルダーに移動します

  mv abills / usr / 
MySQLセットアップ

インストールする

  apt-get mysql-serverのインストール 
次に、AbillSのデータベースを作成する必要があります

  mysql -u root -p
 CREATE DATABASE abills; 
これで、abillsを含むカタログからのデータベースダンプをデータベースに入力する必要があります
  mysql -u root -p abills <abills.sql 


Apacheをインストールする



  apt-get apache2のインストール 


mod_rewriteサポートを追加します。



  ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load 


/ etc / apache2 / sites-enabled / 000-defaultの編集

 <VirtualHost *>  
    DocumentRoot / usr / abills / cgi-bin /
    エイリアス/ abills "/ usr / abills / cgi-bin /"
     <ディレクトリ "/ usr / abills / cgi-bin">  
   <IfModule mod_rewrite.c>  
       Rewriteengine on   
         RewriteCond%{HTTP:Authorization} ^(。*) 
        RewriteRule ^(。*)-[E = HTTP_CGI_AUTHORIZATION:%1]  
      オプションインデックスExecCGI SymLinksIfOwnerMatch   
      </ IfModule>    
     AddHandler cgi-script .cgi   
    オプションインデックスExecCGI FollowSymLinks   
     AllowOverride none    
     DirectoryIndex index.cgi    
     #Options ExecCGI       
    <ファイル〜 "\。(Db | log)$">      
     注文許可、拒否       
    すべてから拒否      
   </ファイル>  
  </ディレクトリ>      
 #管理者インターフェース   
  <ディレクトリ "/ usr / abills / cgi-bin / admin">  
   AddHandler cgi-script .cgi   
   オプションインデックスExecCGI FollowSymLinks    
     AllowOverride none  
   DirectoryIndex index.cgi  
  注文拒否、許可  
  すべてから許可する   
  </ディレクトリ>    
 </ VirtualHost>    


*ここでは、habrはいくつかのタグを食べます。 ここからサイト取得できます



perlのパッケージをインストールします

  apt-get install libdbi-perl libdbd-mysql-perl libdigest-md4-perl libdigest-sha1-perl libcrypt-des-perl 
Apacheを再起動します

/etc/init.d/apache2 restart



abillsのセットアップ

フォルダー/ usr / abills / libexecで、cp config.pl.default config.plを実行してから、config.plを編集します

データベースへのアクセスの正しい詳細を示し、また変更します

  $ conf {MAX_SESSION_TRAFFIC} = 2047;
 $ conf {periodic_check} = 'yes';
 $ conf {ERROR_ALIVE_COUNT} = 10; 
次に、/ etc / sudoersを編集して行を追加します

  www-data ALL = NOPASSWD:/ usr / abills / misc / pppd_kill 
/ etc / crontabに入れます

  * / 5 * * * * root / usr / abills / libexec / billd -all
 1 0 * * * root / usr / abills / libexec /定期的に毎日
 1 0 1 * * root / usr / abills / libexec /定期的に毎月 
WebサーバーによるWebインターフェイスファイルの読み取りおよび書き込み権限を設定します。

  chown -Rf www-data / usr / abills / cgi-bin 
不足しているディレクトリを作成します。

  mkdir / usr / abills /バックアップ
 chown www-data / usr / abills /バックアップ


apt-get install snmpの実行



ファイル/usr/abills/Abills/defs.confを編集します

  $ SNMPWALK = '/ usr / bin / snmpwalk';
 $ Gzip = '/ bin / gzip';
 $ MYSQLDUMP = '/ usr / bin / mysqldump'; 
2.9 pptpdのインストール

  apt-get pptpdをインストール 




/ etc / ppp /オプションの編集

  +チャップ 


/ etc / ppp / pptpd-optionsの編集

  #require-mppe-128
 #require-mschap-v​​2
プラグインradius.so
プラグインradattr.so
デバッグ
 ms-dns 192.168.160.1 


/etc/pptpd.confの編集

  ppp / usr / sbin / pppd
オプション/ etc / ppp / pptpd-options
デバッグ
 localip 192.168.160.1 


pptpd /etc/init.d/pptpd restartを再起動します



スピードリミッターを使用するには、/ etc / ppp / ip-upに追加します

 if [-f /var/run/radattr.$1]
それから
ダウンスピード= `/ usr / bin / awk '/ PPPD-Downstream-Speed-Limit / {print $ 2}' / var / run / radattr。$ 1`
 UPSPEED = `/ usr / bin / awk '/ PPPD-Upstream-Speed-Limit / {print $ 2}' / var / run / radattr。$ 1`
フィルター= `/ usr / bin / awk '/ Filter-Id / {print $ 2}' / var / run / radattr。$ 1`
 #echo $ダウンスピード
 #echo $ UPSPEED
 #echo $フィルター
 / sbin / tc qdisc del dev $ 1 root> / dev / null
 / sbin / tc qdisc del dev $ 1 ingress> / dev / null

 #####高速サーバー->クライアント
 if ["$ UPSPEED"!= "0"];
それから
 / sbin / tc qdisc add dev $ 1 root handle 1:htb default 20 r2q 1
 / sbin / tc class add dev $ 1 parent 1:classid 1:1 htb rate $ {UPSPEED} kbit burst 4k
 / sbin / tc class add dev $ 1 parent 1:1 classid 1:10 htb rate $ {UPSPEED} kbit burst 4k prio 1
 / sbin / tc class add dev $ 1 parent 1:1 classid 1:20 htb rate $ {UPSPEED} kbit burst 4k prio 2
 / sbin / tc qdisc add dev $ 1 parent 1:10 handle 10:sfq perturb 10 quanti 1500
 / sbin / tc qdisc add dev $ 1 parent 1:20 handle 20:sfq perturb 10 quanti 1500
 / sbin / tc filter add dev $ 1 parent 1:0 protocol ip prio 10 u32 match ip tos 0x10 0xff flowid 1:10
 / sbin / tc filter add dev $ 1 parent 1:0 protocol ip prio 10 u32 match ip protocol 1 0xff flowid 1:10
 / sbin / tc filter add dev $ 1 parent 1:protocol ip prio 10 u32 match ip protocol 6 0xff match u8 0x05 0x0f at 0 match u160x0000 0xffc0 at 2 match u8 0x10 0xff at 33 flowid 1:10
 fi

 #####スピードクライアント->サーバー
 if ["$ DOWNSPEED"!= "0"];
それから
 / sbin / tc qdisc add dev $ 1 handle ffff:ingress
 / sbin / tc filter add dev $ 1 parent ffff:protocol ip prio 50 u32 match ip src 0.0.0.0/0 police rate $ {DOWNSPEED} kbit burst 12k drop flowid:1
 fi
 fi 




3 AbillS設定

yourhost / adminで管理Webインターフェースを開きます

ユーザー名/パスワードabills / abillsは後で変更できます。



システム構成-> NASに移動します

IP書き込み127.0.0.1

pppdタイプを選択します:pppd + Radius

生きている(秒):120

RADIUSパラメーター(、):Acct-Interim-Interval = 60



IPプールを追加します

192.168.160.2-192.168.160.254を置きます



その後、関税とユーザーを作成するために残ります、お楽しみください;)

私のブログからのクロスポスト




All Articles