首页 > 其他分享 >企业网络服务搭建(一)OpenWRT uhttpd ddns firewall wireguard

企业网络服务搭建(一)OpenWRT uhttpd ddns firewall wireguard

时间:2024-10-12 14:00:01浏览次数:6  
标签:name firewall uhttpd auth sh 网卡 wireguard ddns

简介:

最近要给媳妇的企业重新搞一搞信息化,这个也写个系列文章吧。

为什么要写openwrt呢?小公司,搞不起托管、搞不起上云。也不算搞不起,主要是自己手边各种垃圾材料多啊。自己家,公司,父母家,3处家用宽带。

本着垃圾佬的心态,能省则省。其实更多的是模拟大型异地办公需求的一种探索。

OpenWR:

开源免费的一个路由系统,玩的比较多,功能比较多,能刷openwrt的路由器也挺多。价格还实惠。它将是各个节点的接入系统,虽然还有一些更高级的pfSense OPNsense,在初级阶段,我还是会考虑openwrt的。

本例使用设备如下

家里:

型号 Xiaomi Redmi Router AC2100
架构 MediaTek MT7621 ver:1 eco:3
目标平台 ramips/mt7621
固件版本 OpenWrt 23.05.5 r24106-10cc5fcd00

办公室:

型号 Phicomm K2P
架构 MediaTek MT7621 ver:1 eco:3
目标平台 ramips/mt7621
固件版本 OpenWrt 23.05.2 r23630-842932a63d

uHTTPd:

干嘛搞这个呢?openwrt是有web管理的,不用苦哈哈的在命令行窗口干。为了通过internet远程管理检查路由,我们受运营商的限制,80、443是无法访问的。所以需要修改openwrt默认的web服务器uhttpd的端口。用来实现远程互联网管理。

而且我3条宽带,最后申请的这条是怎么投诉都不开IPV4公网地址了。还要为未来考虑,直接ipv6组网了。

安装:

虽然openwrt默认已安装uhttpd,但是它没安装luci-app-uhttpd,也就是没有web控制界面,所以需要安装一下,可以web更新列表,搜索uhttpd,找到luci-app-uhttpd安装,也可以ssh上去  opkg update  && opkg install luci-app-uhttpd。

 

安装完毕以后,可能需要退出登陆,重新登陆才能出现菜单。

 添加监听端口

 我添加了18080、18443两个ipv6的监听端口。ipv4的前面是0.0.0.0:,ipv6的前面是[::]:

重新启动uhtpd

 测试:

找到路由获取的ipv6地址,带上端口号测试一下是否可以访问。

设备--接口,随便复制一个ipv6地址,带协议和端口访问测试。

不好复制,就点一下右上角的刷新变为暂停

 我测试的地址是

 

http://[240e:xxxx:xxxx::1]:18080
https://[240e:xxxx:xxxx::1]:18443

可以正常访问就好了。

 

DDNS

我说了,三条家用宽带,这是没有固定IP地址的,还得上ddns,你们喜欢用什么我管不了,为了我的个人习惯和需求,我写了一个cloudflare-ddns。

jackadam1981/cloudflare-ddns (github.com)

顺便将用法写在这里。

单文件,shell脚本,支持cloudflare,更灵活。

安装

仅需要一个文件raw.githubusercontent.com/jackadam1981/cloudflare-ddns/refs/heads/main/ddns.sh

我一般复制到/root/cfddns/ddns.sh

token令牌

要跟cloudflare一起用,需要有cloudflare的tokenAPI 令牌 | Cloudflare在这个页面注册一个新的令牌

 使用DNS模板

 

 编辑下令牌名称,选择所有区域,继续

 

 创建令牌

 这个令牌只显示一次,存入keepass(用了十多年的跨平台云密码管理软件)吧。

 脚本加权限

在你存ddns.sh的目录下给这个脚本增加执行权限。

chmod +x ddns.sh

初次执行脚本

直接执行当前目录的ddns.sh   

./ddns.sh

执行指定目录的ddns.sh

/root/cfddns/ddns.sh

依赖

虽说是纯shell实现,但是也依赖jq json编解码 curl 网络请求两个包。

如果系统没有这两个包,会提示你安装,并给出安装命令。

配置文件

这个就是重点讲一下的了。

很多动态域名,我并不知道它提交的IP是怎么来的,也不了解过程,这也是我写这个脚本的原因之一。

'{
    "settings": {
        "log_level": "debug,info",
        "arIp6QueryUrl": "https://6.ipw.cn",
        "arIp4QueryUrl": "https://4.ipw.cn",
        "log_header_name": "DDNS"
    },
    "domains": [
        {
            "domain_name": "example1.com",
            "zone_id": "",
            "auth_email": "[email protected]",
            "auth_key": "your_auth_key1",
            "auth_key_valid": false,
            "records": [
                {
                    "name": "subdomain1",
                    "type": "A",
                    "proxy": false,
                    "local": true,
                    "nic_name": "eth0"
                },
                {
                    "name": "subdomain2",
                    "type": "AAAA",
                    "proxy": true,
                    "local": false,
                    "nic_name": "eth0"
                }
            ]
        },
        {
            "domain_name": "example2.com",
            "zone_id": "",
            "auth_email": "[email protected]",
            "auth_key": "your_auth_key2",
            "auth_key_valid": false,
            "records": [
                {
                    "name": "subdomain3",
                    "type": "A",
                    "proxy": false,
                    "local": true,
                    "nic_name": "eth1"
                }
            ]
        }
    ]
}'
log_level:可以写debug,可以写info,debug会显示更多的信息给你,info就写简单的信息给你。
arIp6QueryUrl:在线获取ipv6地址的网站
arIp4QueryUrl:在线获取ipv4地址的网站
log_header_name:日志记录头,在选择行读取日志时很有用
domains:域名相关设置,可以有多个域名,示例文件是两个域名。
domain_name:域名的名字,就是你注册的那个名字
zone_id:cloudflare对域名的识别号,不用填,会自动获取并缓存
auth_email:忘记了,应该是不用填的
auth_key:刚才申请的token,或许改成token更好,有空改脚本再说。
auth_key_valid:验证过没有,默认false,脚本自己会检测这个token是否有效可用,如果可用会自动改true
name:子域名,就是你想注册的主机名
type: A 或 AAAA IPV4 或 IPV6
proxy:白嫖的CDN加速,ddos防火墙,开不开随便你了。
local:是否使用本地网卡地址,true使用本地网卡地址,需配套下面的nic_name
nic_name:如果使用本地网卡地址,多网卡时用哪个网卡?写网卡名,一般是 ip addr 显示的网卡名。

这就是我为了自己的灵活使用设计的ddns脚本。
可以在一个主机上管理多个域名,主机名,是否开彩云代理,是否用本地地址,本地用哪个网卡,随意组合。

定时运行

cron定时任务还是web写吧

系统--计划任务

 */10 * * * * /root/cfddns/ddns.sh

每10分钟运行一次。

 防火墙

以前都苦巴巴的求爷爷告奶奶,申请个公网IPV4,然后端口转发。

现在IPV6也能用了,几乎不见纯IPV4的路由器了,我们就不做端口转发了。

我们直接用防火墙通信规则,放行指定端口的流量好了。

网络--防火墙--通信规则

 我写了个Allow_local,意思是允许本机的流量

允许从wan到本设备 22  18080  18443端口流量的转发。

 

标签:name,firewall,uhttpd,auth,sh,网卡,wireguard,ddns
From: https://www.cnblogs.com/jackadam/p/18460374

相关文章

  • wireguard进行组网
    logo成就你的写作梦想wireguard进行组网 it之承影含光 简书作者2024-06-1315:18IP属地:上海需求:在家中访问公司网络 1.在服务器中安装wireguard1.1下载脚本 curl-Ohttps://raw.githubusercontent.com/atrandys/wireguard/master/wg_mult.sh&&chmod+xwg_m......
  • 修改帝国CMS模板出现Application Firewall Alert错误
    当在修改帝国CMS模板时出现“ApplicationFirewallAlert”错误,通常是因为服务器上的安全软件(如360主机安全卫士、McAfee、服务器安全狗等)误将您的IP地址识别为攻击者并加入了黑名单。以下是一些解决步骤:检查服务器安全软件:登录服务器控制面板或远程桌面。检查是否安装了360......
  • Cisco Secure Firewall 3100 Series FTD Software 7.6.0 & ASA Software 9.22.1
    CiscoSecureFirewall3100SeriesFTDSoftware7.6.0&ASASoftware9.22.1FirepowerThreatDefense(FTD)Software-思科防火墙系统软件请访问原文链接:https://sysin.org/blog/cisco-firepower-3100/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgCiscoSec......
  • firewalld: 背后的原理(nftables)
    一,firewalld对一个请求会适用哪个zone?1,当接收到一个请求时,firewalld具体使用哪个zone?firewalld是通过三个步骤来判断的:source,即:源地址interface,即:接收请求的网卡firewalld.conf中配置的默认zone通常值为:DefaultZone=public 说明:三个步骤的优先级顺序降低即:......
  • Cisco Secure Firewall 4200 Series FTD Software 7.6.0 & ASA Software 9.22.1
    CiscoSecureFirewall4200SeriesFTDSoftware7.6.0&ASASoftware9.22.1FirepowerThreatDefense(FTD)Software-思科防火墙系统软件请访问原文链接:https://sysin.org/blog/cisco-firepower-4200/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgCiscoSec......
  • 安全:fail2ban:重新加载firewalld时,fail2ban添加的防火墙规则丢失
    一,问题现象:firewalld未重新加载规则前,可以看到fail2ban添加的防火墙规则:[root@web~]#firewall-cmd--list-allpublic(active)target:defaulticmp-block-inversion:nointerfaces:eth0sources:services:ports:80/tcpprotocols:forward:yesm......
  • firewall-cmd命令详解
    一、firewall-cmd简介Linux上新用的防火墙软件,跟iptables差不多的工具irewall-cmd是firewalld的字符界面管理工具,firewalld是centos7的一大特性,最大的好处有两个:支持动态更新,不用重启服务;第二个就是加入了防火墙的“zone”概念。firewalld跟iptables比起来至少有两大好处:1.firewa......
  • Cisco Secure Firewall Threat Defense Virtual 7.6.0 发布下载,新增功能概览
    CiscoSecureFirewallThreatDefenseVirtual7.6.0-思科下一代防火墙虚拟设备(FTDv)FirepowerThreatDefense(FTD)SoftwareforESXi&KVM请访问原文链接:https://sysin.org/blog/cisco-firepower-7/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgCiscoSe......
  • 【shell脚本】使用firewall-cmd批量增加IP访问规则
    原创wsdhla想惑1025增加单个IP,并指定端口:firewall-cmd--permanent--zone=public--add-rich-rule="rulefamily="ipv4"sourceaddress="xxx.xx.xx.xxx"portprotocol="tcp"port="54321"accept"批量增加IP访问规则,使用脚本:batch-ad......
  • 《QNAP QuFirewall 安全防护教程》
    在如今的数字时代,保护网络附加存储(NAS)设备的安全至关重要。QNAP的QuFirewall为我们提供了强大的安全防护功能,以下是结合NAS安全日常使用的QuFirewall教程。一、安装与启用QuFirewall在QNAP的应用中心中搜索“QuFirewall”,找到并安装该应用程序。安装完成后,打开Qu......