mdserver-web/web/admin/firewall/__init__.py

126 lines
4.2 KiB
Python
Raw Permalink Normal View History

2024-10-19 09:52:59 -04:00
# coding:utf-8
# ---------------------------------------------------------------------------------
# MW-Linux面板
# ---------------------------------------------------------------------------------
# copyright (c) 2018-∞(https://github.com/midoks/mdserver-web) All rights reserved.
# ---------------------------------------------------------------------------------
# Author: midoks <midoks@163.com>
# ---------------------------------------------------------------------------------
from flask import Blueprint, render_template
2024-10-25 16:22:18 -04:00
from flask import request
from admin.user_login_check import panel_login_required
2024-10-31 07:20:35 -04:00
from utils.firewall import Firewall as MwFirewall
2024-10-25 16:22:18 -04:00
import core.mw as mw
2024-11-20 03:40:06 -05:00
import thisdb
2024-10-19 09:52:59 -04:00
2024-11-20 03:40:06 -05:00
blueprint = Blueprint('firewall', __name__, url_prefix='/firewall', template_folder='../../templates')
2024-10-19 09:52:59 -04:00
@blueprint.route('/index', endpoint='index')
2024-10-29 12:55:34 -04:00
@panel_login_required
2024-10-19 09:52:59 -04:00
def index():
2024-11-20 03:40:06 -05:00
name = thisdb.getOption('template', default='default')
return render_template('%s/firewall.html' % name)
2024-10-25 16:22:18 -04:00
# 防火墙列表
@blueprint.route('/get_list', endpoint='get_list', methods=['POST'])
@panel_login_required
def get_list():
p = request.form.get('p', '1').strip()
limit = request.form.get('limit', '10').strip()
2024-11-04 11:16:19 -05:00
return MwFirewall.instance().getList(p,limit)
2024-10-27 07:29:09 -04:00
# 获取站点日志目录
@blueprint.route('/get_www_path', endpoint='get_www_path', methods=['POST'])
2024-10-29 12:55:34 -04:00
@panel_login_required
2024-10-27 07:29:09 -04:00
def get_www_path():
path = mw.getLogsDir()
return {'path': path}
2024-10-31 13:22:56 -04:00
# 获取ssh信息
2024-10-27 07:29:09 -04:00
@blueprint.route('/get_ssh_info', endpoint='get_ssh_info', methods=['POST'])
2024-10-29 12:55:34 -04:00
@panel_login_required
2024-10-27 07:29:09 -04:00
def get_ssh_info():
2024-11-04 11:16:19 -05:00
return MwFirewall.instance().getSshInfo()
2024-10-27 07:29:09 -04:00
2024-10-31 13:22:56 -04:00
# 切换ping开关
@blueprint.route('/set_ping', endpoint='set_ping', methods=['POST'])
@panel_login_required
def set_ping():
2024-12-10 02:51:15 -05:00
status = request.form.get('status')
return MwFirewall.instance().setPing(status)
2024-11-12 07:05:34 -05:00
# 修改ssh端口
@blueprint.route('/set_ssh_port', endpoint='set_ssh_port', methods=['POST'])
@panel_login_required
def set_ssh_port():
port = request.form.get('port', '1').strip()
return MwFirewall.instance().setSshPort(port)
2024-11-01 14:19:58 -04:00
# 添加放行端口
@blueprint.route('/add_accept_port', endpoint='add_accept_port', methods=['POST'])
@panel_login_required
def add_accept_port():
port = request.form.get('port', '').strip()
ps = request.form.get('ps', '').strip()
protocol = request.form.get('protocol', '').strip()
stype = request.form.get('type', '').strip()
2024-10-31 13:22:56 -04:00
2024-11-04 11:38:22 -05:00
return MwFirewall.instance().addAcceptPort(port, ps, stype, protocol=protocol)
2024-10-31 13:22:56 -04:00
2024-11-11 12:21:14 -05:00
# 删除放行端口
2024-11-04 13:56:12 -05:00
@blueprint.route('/del_accept_port', endpoint='del_accept_port', methods=['POST'])
@panel_login_required
def del_accept_port():
port = request.form.get('port', '').strip()
firewall_id = request.form.get('id', '').strip()
protocol = request.form.get('protocol', '').strip()
return MwFirewall.instance().delAcceptPort(firewall_id, port, protocol=protocol)
2024-11-11 12:21:14 -05:00
# 设置防火墙状态
@blueprint.route('/set_fw', endpoint='set_fw', methods=['POST'])
@panel_login_required
def set_fw():
if mw.isAppleSystem():
return mw.returnData(True, '开发机不能设置!')
status = request.form.get('status', '1')
return MwFirewall.instance().setFw(status)
2024-10-27 07:29:09 -04:00
2025-09-10 09:25:41 -04:00
@blueprint.route('/set_ssh_root_status', endpoint='set_ssh_root_status', methods=['POST'])
@panel_login_required
def set_ssh_root_status():
if mw.isAppleSystem():
return mw.returnData(True, '开发机不能设置!')
status = request.form.get('status', '1')
return MwFirewall.instance().setSshRootStatus(status)
2024-11-23 15:13:22 -05:00
@blueprint.route('/set_ssh_pass_status', endpoint='set_ssh_pass_status', methods=['POST'])
2024-11-23 15:06:53 -05:00
@panel_login_required
2024-11-23 15:13:22 -05:00
def set_ssh_pass_status():
2024-11-23 15:06:53 -05:00
if mw.isAppleSystem():
return mw.returnData(True, '开发机不能设置!')
status = request.form.get('status', '1')
return MwFirewall.instance().setSshPassStatus(status)
2024-11-23 15:17:05 -05:00
@blueprint.route('/set_ssh_pubkey_status', endpoint='set_ssh_pubkey_status', methods=['POST'])
@panel_login_required
def set_ssh_pubkey_status():
if mw.isAppleSystem():
return mw.returnData(True, '开发机不能设置!')
status = request.form.get('status', '1')
return MwFirewall.instance().setSshPubkeyStatus(status)
2024-11-23 15:06:53 -05:00
2024-10-27 07:29:09 -04:00