おそらく誰もが、モスクワとロシアのインターネット価格の状況が非常に異なっていることを知っています。
比較のために、トリアッティ(サマラ地域)では、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-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を置きます
その後、関税とユーザーを作成するために残ります、お楽しみください;)
私のブログからのクロスポスト