Ubuntu 9.10、10.04にアップグレードするには、何も触らずに。
pptpd 1.3.4-2
freeradius2.1.0
abills 0.5
dictionary.microsoft
請求開発者はこちら: abills.net.ua
この請求書の開発者に感謝します!
目的:
1.インターネットにローカルエリアネットワークを提供します。
2.トラフィックアカウンティング
3.財務会計
4.料金プランの作成。
5.制限速度
6. 128ビット暗号化には、多くの理由があります。
7.暗号化なし、mschapv2を使用。
8.個人アカウントの暗号化(Apache SSL)
9.近代化の可能性:メールサーバーと課金などの統合。 多くのモジュールが支払われており、そうではありません。
参照:
abillsのインストールに関する2つの有用な記事を見つけました。
habrahabr.ru/blogs/linux/23650-財団
silverghost.org.ua/2008/10/13/ustanovka-billinga-abills-na-ubuntu-804-lts-server-mikrotik-router-os-v-kachestve-servera-dostupa-財団番号2
その他:
www.opennet.ru/base/net/abills_server.txt.htmlも同様に有用ですが、microtikはありません。
www.xakep.ru/magazine/xa/112/136/1.asp-pppoe
pptpdのパラメーターの説明
www.compress.ru/article.aspx?id=18183&iid=842
原則として、このセットアップは、PPPoEまたはmicrotikをNASとして使用する場合と変わりません。 頭痛のないクライアントが100人以上いる場合、後者の方が収益性が高くなります。
最初の2つの記事から情報を取得します。これらは私たちのトピックに最も近いものです。 修正された第1の記事には、第2の+ドロボッキからの詳細が追加されます。
注意! システムのインストールを開始する前に。 使用しているネットワークカードを決定します。 Intelまたは3comカードの使用をお勧めします。 realteksのPPTPは、明確な理由もなくトンネルをグリッチして破損します。
1.システムをインストールします。
私が選んだのはUbuntu 9.10ディストリビューションでした。これはすでに、一連のパッケージが作成された実績のあるシステムです。 残り1.5か月の10.04へのアップグレードは問題になりません。 良い管理者-怠け者の管理者。 なぜ頭痛が必要なのですか? LTS 8.04の最初のサーバーは、ハードドライブがカバーされるまで1.5年間存在していました。 この間、誰も請求に触れませんでした。
インストール後、更新し、すべてを最後に配置します。
#apt-get update
#apt-get dist-upgrade
そして再起動します。
ルートの下に行きます。
$ sudo -s -H
2. 1行で必要なパッケージをインストールします。
#apt-get install mysql-server mysql-client libmysqlclient15-dev apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt libdbi-perl libdbd-mysql-perl libdigest-md4-perl libdigest-sha1-perl libcrypt-des-perl freeradius radiusclient1 radiusclient1 pptpd
MySQLのインストール中に、サーバーはmysqlサーバーのルートパスワードを2回要求します。すぐに必要になります。
Apache用にインストールされたモジュールを実行します。
#a2enmod ssl
#a2enmod rewrite
#a2enmod suexec
#a2enmod include
Apacheを再起動します。
#/etc/init.d/apache2 restart
#a2enmod rewrite-必須。管理パネルに入るとエラーが発生します。
3. abills.net.uaサイトからabills 0.50をダウンロードし、/ usr / abillsに展開するか、cvsを使用して安定版リリースをダウンロードします。
ファイルリンク: sourceforge.net/projects/abills/files
4.不足しているディレクトリを作成し、権限を変更します。
# mkdir /usr/abills/backup
# chown -R www-data:www-data /usr/abills/backup
# mkdir /usr/abills/cgi-bin/admin/nets
# chown -R www-data:www-data /usr/abills/cgi-bin/
# mkdir /usr/abills/var
# mkdir /usr/abills/var/log
# chown -R freerad:freerad /usr/abills/var
次に、/ etc / sudoersを編集して行を追加します。 このコマンドは、VPNトンネルを強制終了します。
www-data ALL=NOPASSWD: /usr/abills/misc/pppd_kill
5.開発者のサーバーからの情報をfreeradiusに設定し、ディストリビューションを編集します。
モジュールセクションの/etc/freeradius/radiusd.confでセクションを説明します。
#abills_preauth
exec abills_preauth {
program = "/usr/abills/libexec/rauth.pl pre_auth"
wait = yes
input_pairs = request
shell_escape = yes
#output = no
output_pairs = config
}
#abills_postauth
exec abills_postauth {
program = "/usr/abills/libexec/rauth.pl post_auth"
wait = yes
input_pairs = request
shell_escape = yes
#output = no
output_pairs = config
}
#abills_auth
exec abills_auth {
program = "/usr/abills/libexec/rauth.pl"
wait = yes
input_pairs = request
shell_escape = yes
output = no
output_pairs = reply
}
#abills_acc
exec abills_acc {
program = "/usr/abills/libexec/racct.pl"
wait = yes
input_pairs = request
shell_escape = yes
output = no
output_pairs = reply
}
execセクションのfile / etc / freeradius / modules / execでは、次のようになります。
exec {
wait = yes
input_pairs = request
shell_escape = yes
output = none
output_pairs = reply
}
ファイル/ etc / freeradius / sites-enabled / default-承認、preacct、post-authセクションを編集します。 これらのセクションでは、残りをコメントまたは削除します。
authorize {
preprocess
abills_preauth
mschap
files
abills_auth
}
preacct {
preprocess
abills_acc
}
post-auth {
Post-Auth-Type REJECT {
abills_postauth
}
}
/ etc / freeradius / users
DEFAULT Auth-Type = Accept
/etc/freeradius/clients.confを編集し、すべてをコメント化し、最後に追加します(別のコードワードを変更した方が良い場合は、ローカルマシンのクライアント/サーバー)
client localhost {
ipaddr = 127.0.0.1
secret = radsecret
shortname = shortname
}
ファイル/ etc / freeradius /辞書の編集に進み、最後に追加します
# Limit session traffic
ATTRIBUTE Session-Octets-Limit 227 integer
# What to assume as limit - 0 in+out, 1 in, 2 out, 3 max(in,out)
ATTRIBUTE Octets-Direction 228 integer
# Connection Speed Limit
ATTRIBUTE PPPD-Upstream-Speed-Limit 230 integer
ATTRIBUTE PPPD-Downstream-Speed-Limit 231 integer
ATTRIBUTE PPPD-Upstream-Speed-Limit-1 232 integer
ATTRIBUTE PPPD-Downstream-Speed-Limit-1 233 integer
ATTRIBUTE PPPD-Upstream-Speed-Limit-2 234 integer
ATTRIBUTE PPPD-Downstream-Speed-Limit-2 235 integer
ATTRIBUTE PPPD-Upstream-Speed-Limit-3 236 integer
ATTRIBUTE PPPD-Downstream-Speed-Limit-3 237 integer
ATTRIBUTE Acct-Interim-Interval 85 integer
その後、半径を再起動します。
#/etc/init.d/freeradius restart
エラーを書き込んだ場合、freeradius -Xコマンドはログを発行し、それを検索します。
6. radiusclientを構成します。
/ etc / radiusclient / serversの編集
127.0.0.1 radsecret
/ etc / radiusclient /に配置されたdictionary.microsoft
これらのファイルは、mschap v2およびmppeのサポートを担当します。
mschap2なしでcakebilling.googlecode.com/files/etc.tar.bz2でファイルを取得できます。mppeは機能しません。
辞書ファイルに次の行を追加します。
INCLUDE /etc/radiusclient/dictionary.microsoft
# Limit session traffic
ATTRIBUTE Session-Octets-Limit 227 integer
# What to assume as limit - 0 in+out, 1 in, 2 out, 3 max(in,out)
ATTRIBUTE Octets-Direction 228 integer
# Connection Speed Limit
ATTRIBUTE PPPD-Upstream-Speed-Limit 230 integer
ATTRIBUTE PPPD-Downstream-Speed-Limit 231 integer
ATTRIBUTE PPPD-Upstream-Speed-Limit-1 232 integer
ATTRIBUTE PPPD-Downstream-Speed-Limit-1 233 integer
ATTRIBUTE PPPD-Upstream-Speed-Limit-2 234 integer
ATTRIBUTE PPPD-Downstream-Speed-Limit-2 235 integer
ATTRIBUTE PPPD-Upstream-Speed-Limit-3 236 integer
ATTRIBUTE PPPD-Downstream-Speed-Limit-3 237 integer
ATTRIBUTE Acct-Interim-Interval 85 integer
ファイルを編集する/ etc / hosts
127.0.0.1 localhost vpn-server
127.0.1.1 localhost vpn-server
vpn-serverはあなたのサーバーの名前です。あなたの裁量で変更してください。 そうしないと、radiusクライアントはradiusサーバーに接続できません。
7.次に、AbillSのデータベースを作成する必要があります
#mysql -u root -p
GRANT ALL ON abills.* TO abills@localhost IDENTIFIED BY "yourpassword";
CREATE DATABASE abills;
オプション2:phpmyadminパッケージをインストールし、強力なパスワードの生成を含むすべてを1分で簡単に実行できます。
sudo apt-get install phpmyadmin
さらに
サーバーのIPアドレス/ phpmyadmin
ルートユーザー名とパスワードを入力してサーバーを管理し、
[特権]タブ-> [新しいユーザーを追加]
ユーザー名:abills
ホスト:localhost
パスワード:生成ボタンを押し、パスワードを記憶するかメモします。
Dawを置く:名前にユーザー名を使用してデータベースを作成し、それに完全な権限を付与します。
[OK]をクリックすると、データベースが作成されます。
これで、abillsを含むカタログからのデータベースダンプをデータベースに入力する必要があります
#mysql -u root -p abills < abills.sql
Abills構成ファイルの構成
フォルダー/ usr / abills / libexecで実行します
#cd /usr/abills/libexec
#cp config.pl.default config.pl
それから編集します。
データベースへのアクセスの正しい詳細を示し、いくつかのパラメーターも変更します。
$conf{dbhost}='localhost';
$conf{dbname}='abills';
$conf{dbuser}='abills';
$conf{dbpasswd}='SxTcBAx7dYfR7cG7';
$conf{dbcharset}='utf-8';
$conf{default_language}='russian';
$conf{periodic_check}='yes';
$conf{ERROR_ALIVE_COUNT} = 10;
$conf{RADIUS2}=1;
不要なモジュールを無効にします。
@MODULES = ('Dv',
# 'Voip',
# 'Docs',
# 'Mail',
'Sqlcmd');
8. conf /usr/abills/Abills/defs.confを修正します
以下の行のみを変更します
$SNMPWALK = '/usr/bin/snmpwalk';
$SNMPSET = '/usr/bin/snmpset';
$GZIP = '/bin/gzip';
$TAR='/bin/tar';
$MYSQLDUMP = '/usr/bin/mysqldump';
$IFCONFIG='/sbin/ifconfig';
バックアップが機能するようになりました。最初は、構成がfreeBSDでシャープになります。
8. Apacheの証明書を作成します
#mkdir /etc/apache2/ssl
次のコマンドの質問に答えます。
#make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem
#a2enmod ssl
/ etc / apache2 / sites-available / default-sslのテキストを指定のテキストに置き換えます。
<VirtualHost *:443>
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem
DocumentRoot /usr/abills/cgi-bin/
Alias /abills "/usr/abills/cgi-bin/"
<Directory "/usr/abills/cgi-bin">
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_CGI_AUTHORIZATION:%1]
Options Indexes ExecCGI SymLinksIfOwnerMatch
<_/_IfModule>
AddHandler cgi-script .cgi
Options Indexes ExecCGI FollowSymLinks
AllowOverride none
DirectoryIndex index.cgi
#Options ExecCGI
<Files ~ ".(db|log)$">
Order allow,deny
Deny from all
<_/_Files>
<_/_Directory>
#Admin interface
<Directory "/usr/abills/cgi-bin/admin">
AddHandler cgi-script .cgi
Options Indexes ExecCGI FollowSymLinks
AllowOverride none
DirectoryIndex index.cgi
order deny,allow
allow from all
<_/_Directory>
ErrorLog /var/log/apache2/error-abills.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access-abills.log combined
<_/_virtualhost>
コピーするときは、スラッシュの前後にある記号を削除してください!!!
ここでコーデックをcp1251に変更します/etc/apache2/conf.d/charset
AddDefaultCharset cp1251
シンボリックリンクを作成します。
#ln -s /etc/apache2/sites-available/default-ssl /etc/apache2/sites-enabled/default-ssl
Apacheを再起動します
#/etc/init.d/apache2 restart
サーバーの動作を確認し、アドレスにアクセスします。
あなたのserver_ip_address / admin
すべてが成功した場合、ガット。 そうでない場合は、ログを読んでください。 すべての力は彼らの中にあります!
9. pptpdの構成:
/etc/pptpd.confの編集
ppp /usr/sbin/pppd
option /etc/ppp/pptpd-options
connections 500
localip 192.168.160.1
/ etc / ppp / optionsを編集して、行を追加します
+mschap-v2
/ etc / ppp / pptpd-optionsを編集し、次の行を追加します。
ms-dns 192.168.160.1 #
asyncmap 0
lcp-echo-failure 30
lcp-echo-interval 5
ipcp-accept-local
ipcp-accept-remote
plugin radius.so
plugin radattr.so
デフォルトでは、confはmschap-v2 + mppeで構成されます。
シェイパースクリプトを作成し、起動権限を付与します。
#touch /etc/ppp/ip-up.d/shaper
#chmod 744 /etc/ppp/ip-up.d/shaper
#nano /etc/ppp/ip-up.d/shaper
#!/bin/sh
if [ -f /var/run/radattr.$1 ]
then
DOWNSPEED=`/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`
# echo $DOWNSPEED
# echo $UPSPEED >
/sbin/tc qdisc del dev $1 root > /dev/null
/sbin/tc qdisc del dev $1 ingress > /dev/null
##### speed server->client
if [ "$UPSPEED" != "0" ] ;
then
# /sbin/tc qdisc add dev $1 root handle 1: htb default 20 r2q 1
/sbin/tc qdisc add dev $1 root handle 1: htb default 20
/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 quantum 1500
/sbin/tc qdisc add dev $1 parent 1:20 handle 20: sfq perturb 10 quantum 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
##### speed client->server
if [ "$DOWNSPEED" != "0" ] ;
then
/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
成形する別の方法があります。 IPNモジュール経由。 この方法については、開発者のフォーラムで読むことができます。
10.必要に応じて、squidをインストールし、透明にします。
#apt-get install squid
/etc/squid/squid.confファイルの行を変更します
http_port 3128
に
http_port 3128 transparent
デフォルトでは、考えられるすべてのネットワークが構成に登録されているため、コメントを削除します。
http_access allow localnet
サービスを再開する
# /etc/init.d/squid restart
11. natをオンにして、次の行をrc.localファイルに書き込みます
ファイアウォールルール:
IPアドレス192.168.1.10、adslルーターに向かっています。
# .
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
# NAT
iptables -t nat -A POSTROUTING -s 192.168.160.0/255.255.255.0 -j SNAT --to-source 192.168.1.10
# , .
iptables -t nat -A PREROUTING -p tcp -s 192.168.160.0/24 --dport 80 -j REDIRECT --to-port 3128
#
iptables -A INPUT -p TCP -i eth0 --dport 3128 -j DROP # proxy
iptables -A INPUT -p TCP -i eth1 --dport 3128 -j DROP
iptables -A INPUT -p TCP -i eth0 --dport 3306 -j DROP #mysql
iptables -A INPUT -p TCP -i eth1 --dport 3306 -j DROP
#
echo "1" > /proc/sys/net/ipv4/ip_forward
exit 0
スクリプトは原始的ですが、開始するには十分です。
12. / etc / crontabに次を入力します。
*/5 * * * * root /usr/abills/libexec/billd -all
1 0 * * * root /usr/abills/libexec/periodic daily
1 0 1 * * root /usr/abills/libexec/periodic monthly
#backup
1 3 * * * root /usr/abills/libexec/periodic backup
13.アビルの設定
ip-address-your-server / 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を置きます
料金グループを設定します。
/システム/インターネット/料金プラン/グループ/
追加:無制限、GID:0
/システム/インターネット/料金プラン/
#:1
タイトル:「無制限」
グループ:「1:無制限」
毎日a / p:10
加える
速度を決定します。
/システム/インターネット/料金プラン/
クリックして、選択したレート「間隔」
追加ボタンをクリックしてから、トラフィック
速度を入力して追加します。
ユーザーを取得します:
/クライアント/ログイン/インターネット/ユーザーの追加/
クライアントを作成します:パスワード、ログイン、名前、クレジット。 そして、すぐに口座にお金を入れることができます。
ここでの主なことは、最初に関税グループを作成し、次に関税自体を作成することです。 さらに、WiKiですべてのオプションについて詳しく読んでください。 通常、彼らはオプションの意味を理解する前に叫び始めます。
すでに関連性はありませんが、アビラスはその安定性と柔軟性に満足しています。残りはあなたの手にあります。
暗号化を削除する必要がある場合は、次を実行します。
ファイル/ etc / ppp / pptpd-optionsの行「require-mppe-128」を削除します。これにより、VPNトンネルの安定性が向上し、CPUが解放されます。
結果のスクリーンショット:
![画像](http://img697.imageshack.us/img697/516/neti.png)
![画像](http://img79.imageshack.us/img79/118/90303907.png)
![画像](http://img78.imageshack.us/img78/2061/68063813.png)
![画像](http://img83.imageshack.us/img83/816/71838809.png)
Forum.ubuntu.ru =)でNesmit'yに対処してくれてありがとう。私はそれとは何の関係もありません。 彼はこの記事を書きました。 彼のために頑固にこの記事を公開することを許可しませんでした!))
頑張って 故障を含むすべての質問を聞く準備ができています。