比較のために、トリアッティ(サマラ地域)では、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に、失敗後に設定を自動的に復元する次の行を記述します。
iptablesの設定は/etc/iptables.confに保存されますecho "1"> / proc / sys / net / ipv4 / ip_dynaddr echo "1"> / proc / sys / net / ipv4 / ip_forward iptables-restore /etc/iptables.conf
次に、次の行を/ etc / modulesファイルに追加します
これらすべてのパラメーターを適用するには、/ etc / rc.localスクリプトを実行してコマンドを与えることができますip_conntrack ip_gre ip_nat_pptp ip_conntrack_ftp ip_nat_ftp
その後、NATを上げるには、次のコマンドを入力しますmodprobe ip_conntrack modprobe ip_gre modprobe ip_nat_pptp modprobe ip_conntrack_ftp modprobe ip_nat_ftp
Eth1インターフェース-LANを見るiptables -t nat-ポストルーティング-o! eth1 -jマスカレード
これで、LANからのすべてのユーザーがプロバイダーの内部ネットワークにアクセスできるようになりました。
ファイアウォールの設定を保存することを忘れないでください
インターネットへのサーバーアクセス用にVPN(pptp)クライアントを構成します。iptables-save> /etc/iptables.conf
DVDディスクまたはインターネットに接続している場合は、単にコマンドを与えることができます
自動インストールの可能性がない場合は、パッケージをフォルダーにダウンロードし、手動でインストールを開始する必要があります。apt-get pppp-linuxをインストール
VPNをセットアップしましょう。これのために、/ etc / ppp / peersフォルダーに移動し、そこにaistなどのファイルを作成します。dpkg -i pptp-linux_1.7.0-2ubuntu2_i386.deb
そして、私たちはすでにそれを書いていますvim / etc / ppp / peers / aist
ここで、VPNを上げる前に、プロバイダーの内部ネットワークのルーティングを規定する必要があります。 VPN経由ではアクセスできません。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
ファイル/ 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 ポンポン プレダウンポフエイスト
その後、すべてのインターフェイスが再起動されます。 VPNは自動的に接続します。/etc/init.d/networking restart
すべてがうまくいった場合、ifconfigコマンドでppp0インターフェイスが表示されたかどうかを確認できます。
!!! 注意、現時点では、サーバー上でNATが構成されており、インターネット、つまり ロカルカのすべてのユーザーはインターネットに無制限にアクセスできます。
poff aistコマンドでvpnを無効にできます
接続-pon aist
Freeradiusインストール
/ etc / freeradius / usersの編集では、次の行のみを残しますapt-get freeradiusのインストール
残りはコメントまたは削除します。デフォルトの認証タイプ= Accept Exec-Program-Wait = "/usr/abills/libexec/rauth.pl"
次に、/ etc / freeradius / acct_usersを最後に追加して編集します
/etc/freeradius/clients.confを編集してすべてをコメント化し、最後に追加します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"
理由もわかりませんが、設定時にこのような不具合があり、eth0のアドレスに同じ行を追加する必要がありましたクライアントlocalhost { secret = radsecret ショートネーム=ショートネーム }
/etc/freeradius/radiusd.confで、authorizeセクションのmschapおよびeap行についてコメントしますクライアント172.16.102.72 { secret = radsecret ショートネーム=ショートネーム }
ファイルの編集に進みます/ etc / freeradius /辞書最後に追加承認する{ 前処理 #chap #カウンター #attr_filter #eap 接尾辞 ファイル #etc_smbpasswd #sql #mschap }
その後、半径を再起動します#セッショントラフィックを制限する 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をインストールする
ファイル/etc/radiusclient/radiusclient.confを編集します。apt-get radiusclient1のインストール
/ etc / radiusclient / serversの編集authserver 127.0.0.1 acctserver 127.0.0.1
/ etc / radiusclient /辞書に追加127.0.0.1 radsecret
AbillS課金システムをダウンロードし、解凍します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整数
/ usr / abillsフォルダーに移動しますtar -xf abills-0.37.tgz
MySQLセットアップmv abills / usr /
インストールする
次に、AbillSのデータベースを作成する必要がありますapt-get mysql-serverのインストール
これで、abillsを含むカタログからのデータベースダンプをデータベースに入力する必要がありますmysql -u root -p CREATE DATABASE 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のパッケージをインストールします
Apacheを再起動しますapt-get install libdbi-perl libdbd-mysql-perl libdigest-md4-perl libdigest-sha1-perl libcrypt-des-perl
/etc/init.d/apache2 restart
abillsのセットアップ
フォルダー/ usr / abills / libexecで、cp config.pl.default config.plを実行してから、config.plを編集します
データベースへのアクセスの正しい詳細を示し、また変更します
次に、/ etc / sudoersを編集して行を追加します$ conf {MAX_SESSION_TRAFFIC} = 2047; $ conf {periodic_check} = 'yes'; $ conf {ERROR_ALIVE_COUNT} = 10;
/ etc / crontabに入れますwww-data ALL = NOPASSWD:/ usr / abills / misc / pppd_kill
WebサーバーによるWebインターフェイスファイルの読み取りおよび書き込み権限を設定します。* / 5 * * * * root / usr / abills / libexec / billd -all 1 0 * * * root / usr / abills / libexec /定期的に毎日 1 0 1 * * root / usr / abills / libexec /定期的に毎月
不足しているディレクトリを作成します。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を編集します
2.9 pptpdのインストール$ SNMPWALK = '/ usr / bin / snmpwalk'; $ Gzip = '/ bin / gzip'; $ MYSQLDUMP = '/ usr / bin / mysqldump';
apt-get pptpdをインストール
/ etc / ppp /オプションの編集
+チャップ
/ etc / ppp / pptpd-optionsの編集
#require-mppe-128 #require-mschap-v2 プラグイン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を置きます
その後、関税とユーザーを作成するために残ります、お楽しみください;)
私のブログからのクロスポスト