Radius+Openwisp

1.安装radius

pacman -S freeradius radcli python-pip

2.生成key

/etc/raddb/certs/bootstrap

3.配置服务器

nano -w /etc/raddb.default/certs/server.cnf
nano -w /etc/raddb.default/clients.conf

4.启动服务

systemctl start freeradius

5.安装python的环境

pacman -S python-virtualenvwrapper python-cairo pango

6.创建虚拟环境

/usr/bin/virtualenvwrapper.sh radius

python -m venv /srv/radius

7.激活环境变量

sh /srv/radius/bin/activate

8.使用pypi安装

# REQUIRED: update base python packages
/srv/radius/bin/pip install -U pip setuptools wheel
# install openwisp-radius
/srv/radius/bin/pip install openwisp-radius

/srv/radius/bin/pip install python-dateutil

9.创建django项目

/srv/radius/bin/django-admin startproject radiusadmin

10.修改settings.py

#!/srv/radius/bin/python
...
INSTALLED_APPS = [
    #'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    'django.contrib.humanize',
    # openwisp admin theme
    'openwisp_utils.admin_theme',
    # all-auth
    'django.contrib.sites',
    'allauth',
    'allauth.account',
    # admin
    'django.contrib.admin',
    # rest framework
    'rest_framework',
    'django_filters',
    # registration
    'rest_framework.authtoken',  
    'dj_rest_auth',
    'dj_rest_auth.registration',
    # openwisp radius
    'openwisp_radius',
    'openwisp_users',
    'private_storage',   
    'drf_yasg',     
]

11.增加静态的路径

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
PRIVATE_STORAGE_ROOT = os.path.join(MEDIA_ROOT, 'private')

12.增加登录

AUTH_USER_MODEL = 'openwisp_users.User'
SITE_ID = 1
AUTHENTICATION_BACKENDS = (
    'openwisp_users.backends.UsersAuthenticationBackend',
)

13.添加允许的freeraduis

OPENWISP_RADIUS_FREERADIUS_ALLOWED_HOSTS = ['127.0.0.1']

14.增加URL映射

from django.conf.urls import include
...
    # openwisp-radius urls
    path('api/v1/', include('openwisp_utils.api.urls')),
    path('api/v1/', include('openwisp_users.api.urls')),
    path('accounts/', include('openwisp_users.accounts.urls')),
    path('', include('openwisp_radius.urls'))

15.创建用户

[root@archlinux radiusadmin]# ./manage.py createsuperuser
Username: zeno
Email address: zeno@xxx.com
Password: 
Password (again): 
Superuser created successfully.

16.启动服务

./manage.py runserver 0.0.0.0:8080

关于Zeno Chen

本人涉及的领域较多,杂而不精 程序设计语言: Perl, Java, PHP, Python; 数据库系统: MySQL,Oracle; 偶尔做做电路板的开发,主攻STM32单片机
此条目发表在Python分类目录。将固定链接加入收藏夹。