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に察凊しおくれおありがずう。私はそれずは䜕の関係もありたせん。 圌はこの蚘事を曞きたした。 圌のために頑固にこの蚘事を公開するこずを蚱可したせんでした
頑匵っお 故障を含むすべおの質問を聞く準備ができおいたす。

Source: https://habr.com/ru/post/J87421/


All Articles