HOW-TO pptpd + freeradius2 + mysql + Ubuntu 9.10 / 10.04の小規模オフィスまたは小規模プロバイダー向けのabills 0.50b

尊敬されているNesmitのリクエストに応じて、私は自分の代わりにHOW-TOを公開しています。 彼の指導は、この投稿に載っていた私のものよりも注目に値すると思います。私のものでは、多くの欠点や誤りがありました。 そして無駄に彼の記事はテープに入れられませんでした。 非常に良い記事。 ここに彼女は



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-v​​2 + 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ですべてのオプションについて詳しく読んでください。 通常、彼らはオプションの意味を理解する前に叫び始めます。



この指示に従って、私は4台のサーバーを上げて、正常に動作しています。

すでに関連性はありませんが、アビラスはその安定性と柔軟性に満足しています。残りはあなたの手にあります。



暗号化を削除する必要がある場合は、次を実行します。

ファイル/ etc / ppp / pptpd-optionsの行「require-mppe-128」を削除します。これにより、VPNトンネルの安定性が向上し、CPUが解放されます。

結果のスクリーンショット:

画像

画像

画像

画像

Forum.ubuntu.ru =)でNesmit'yに対処してくれてありがとう。私はそれとは何の関係もありません。 彼はこの記事を書きました。 彼のために頑固にこの記事を公開することを許可しませんでした!))

頑張って 故障を含むすべての質問を聞く準備ができています。



All Articles