dropbear 用户名_Openwrt基础配置

本文分享OpenWrt的配置方法。包括安装步骤,如opkg升级、换源、升级包等;安全配置,用openssh替代dropbear、开启网页https访问、配置fail2ban防火墙;其他配置,如给硬盘分区、网络优化等,还给出了详细的命令操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

——分享来自于“秀子营学习交流群 - 南京-学生-RivenNero”,经作者允许,可以转载分享。

一、安装 openwrt

1、opkg 升级

先安装证书和一些必备组件

opkg update

opkg install wget ca-certificates openssl-util ca-bundle curl

换源

cp /etc/opkg/distfeeds.conf /etc/opkg/distfeeds.conf.backup

sed -i 's/downloads.openwrt.org/mirrors.tuna.tsinghua.edu.cn\/lede/g'

/etc/opkg/distfeeds.conf

# sed -i 's/downloads.openwrt.org/mirrors.cloud.tencent.com\/lede/g'

/etc/opkg/distfeeds.conf

sed -i 's/http/https/g' /etc/opkg/distfeeds.conf

升级 opkg 包管理器

opkg update

opkg upgrade opkg

用脚本升级所有包

仅建议 x86 软路由用户这么做,因为 ARM 或者 MIPS 的路由器存储空间可能空间不够会导致升级失败,升级之前请确认空间是否足够

#!/bin/sh

opkg update

for ipk in $(opkg list-upgradable | awk '$1!~/^kmod|^Multiple/{print $1}'); do

opkg upgrade $ipk

done

chmod +x 你刚才编辑与创建的脚本文件.sh

./你刚才编辑与创建的脚本文件.sh

reboot

2、更改 ntp 服务器

在 luci 界面更改时区, 建议使用 ntppool 网站的 ntp 服务器

0.cn.pool.ntp.org

1.cn.pool.ntp.org

2.cn.pool.ntp.org

3.cn.pool.ntp.org

3、OpenWrt 易用性配置

安装主题和中文语言包

opkg update

opkg install luci-theme-material luci-i18n-base-zh-cn luci-i18n-firewall-zh-cn

设置字符集

echo 'LANG=en_US.UTF-8' >> /etc/profile

source /etc/profile

安装 zsh

opkg install zsh

编辑 .zshrc

autoload -Uz compinit promptinit

autoload -Uz up-line-or-beginning-search down-line-or-beginning-search

compinit

promptinit

zstyle ':completion:*' menu select

zstyle ':completion::complete:*' gain-privileges 1

zstyle ':completion:*' rehash true

setopt COMPLETE_ALIASES

setopt HIST_IGNORE_DUPS

zle -N up-line-or-beginning-search

zle -N down-line-or-beginning-search

[[ -n "${key[Up]}" ]] && bindkey -- "${key[Up]}" up-line-or-beginning-search

[[ -n "${key[Down]}" ]] && bindkey -- "${key[Down]}" down-line-or-beginningsearch

ttyctl -f

# This will set the default prompt to the walters theme

prompt adam2

设置默认 shell

vim /etc/passwd

/usr/bin/zsh

重新输入 zsh , 即配置完成

4、安装完整版 vim 编辑器

安装 vim 以及 sudo

opkg update

opkg install vim-fuller sudo

使 vim 成为默认编辑器, 编辑环境变量配置文件

vim /etc/profile

在最下面加入这两行

EDITOR=/usr/bin/vim

VISUAL=/usr/bin/vim

配置 sudoer 文件的打开方式

visudo

在最下面加入

Defaults editor=/usr/bin/vim

重启使 vim-fuller 生效

reboot

5、安装完整版 ip 包

opkg install ip-full

安装 netdata 检测软件

opkg install netdata

安装之后可以在 ip:19999 端口查看信息

二、openwrt 安全配置

1、用 openssh 替代 dropbear

先给 root 设置密码

passwd

安装 openssh 组件

opkg update

opkg install openssh-client openssh-client-utils openssh-keygen openssh-moduli

openssh-server-pam openssh-sftp-avahi-service openssh-sftp-client openssh-sftpserver

编辑 sshd_config 文件

vim /etc/ssh/sshd_config

进行安全配置, 将文档中的配置改成如下

Port 你想要设置的端口

# 下面这项配置的功能是仅允许 root 用户以公私钥方式登录

PermitRootLogin prohibit-password

使用 ssh-keygen 生成 ed25519 密钥对, 在用户目录建立 .ssh 文件夹, 将私钥下载到本地, 公钥放入 .ssh

文件夹并命名为 authorized_keys

使用 ed25519 密钥对的原因是因为 ed25519 是当前情况下最新, 速度较快并且最安全的公私钥加密方式, 详细见这三个网址:

git 源码库

Mozilla 开发人员博客文章

ed25519 官网

ssh-keygen.exe -t ed25519

cd ~

mkdir .ssh

mv 你的公钥 ~/.ssh/authorized_keys

chmod 600 .ssh

chmod 400 .ssh/authorized_keys

然后再禁止 dropbear 并启用 openssh

/etc/init.d/sshd start

/etc/init.d/sshd enable

/etc/init.d/dropbear stop

/etc/init.d/dropbear disable

此时就可以用之前配置的端口来连接 ssh 了添加新用户

opkg install shadow

mkdir /home

useradd 你要创建的用户的用户名 -s /usr/bin/zsh -m

passwd 你创建的用户的用户名

给新用户提供 sudo 权限

visudo

你创建的用户的用户名 ALL=(ALL) ALL

2、开启网页 https 访问

# 切换到默认的 ash, zsh不支持 uci 命令行配置

ash

opkg install luci-ssl

uci set uhttpd.main.listen_http='192.168.77.1:80'

uci set uhttpd.main.listen_https='192.168.77.1:443'

uci set uhttpd.main.redirect_https='1'

uci commit

/etc/init.d/uhttpd restart

3、fail2ban防火墙配置

开启 fail2ban 防火墙

opkg install freeswitch-stable-mod-fail2ban znc-mod-fail2ban

编辑 fail2ban 防火墙配置文件

vim /etc/config/freeswitch

将如下选项更改为如下

config freeswitch 'general'

option enabled '1'

启动 fail2ban 防火墙并设置开机自启

/etc/init.d/freeswitch start

/etc/init.d/freeswitch enable

三、openwrt 其他配置

1、给硬盘分区

opkg update

opkg install fdisk block-mount swap-utils

fdisk 使用教程详见: Arch wiki

fdisk

# 接下来输入你要进行的分区操作

......

格式化你刚才创建的分区

mkfs.ext4 /dev/你的分区文件名

mkswap /dev/你的分区文件名

swapon /dev/你的分区文件名

开机挂载

mkdir /disk

vim /etc/rc.local

mount /dev/你的分区文件名 /disk

swapon /dev/你的分区文件名

2、网络优化

安装 tcp_bbr 内核模块

opkg install kmod-tcp-bbr

开启 TCP Fast Open, 增大最大连接数, 开启 bbr 算法, 并使系统尽量少的使用 swap

echo 'net.ipv4.tcp_fastopen = 3

net.netfilter.nf_conntrack_max = 65535

vm.swappiness = 0' >> /etc/sysctl.conf

应用配置并重启

sysctl -p /etc/sysctl.d/*

sysctl -p /etc/sysctl.conf

reboot

cmake_minimum_required(VERSION 3.20) project(OPEN_SOURCE_OPENWRT) include(${CONFIG_CMAKE_DIR}/toolchains/${CONFIG_TOOLCHAIN_LINUX_APP}.cmake) set(CONFIG_OPENSRC_LINUX_VERSION 5.10) set(CONFIG_PRIVATE_C_LIB_DIR ${CONFIG_PUBLIC_COMPILE_FLAGS_CPU} ${CONFIG_PUBLIC_COMPILE_FLAGS_FLOAT_ABI} ${CONFIG_PUBLIC_COMPILE_FLAGS_FPU} ) set(CONFIG_RUNTIME_LIB_DIR ${CONFIG_RUNTIME_LIB_CPU} ${CONFIG_RUNTIME_LIB_FLOAT_ABI} ${CONFIG_RUNTIME_LIB_FPU} ) if(CONFIG_RUNTIME_LIB_DIR) set(CONFIG_PRIVATE_C_LIB_DIR ${CONFIG_RUNTIME_LIB_DIR}) endif() string(REPLACE ";" "_" CONFIG_PRIVATE_C_LIB_DIR "${CONFIG_PRIVATE_C_LIB_DIR}") set(HI_VERSION_DIR ${CMAKE_CURRENT_BINARY_DIR}/openwrt) set(LIST_LINK_SOURCES config dl feeds include package toolchain tools Makefile rules.mk Config.in feeds.conf.default ) add_custom_target(prebuild_openwrt DEPENDS prebuild_${CONFIG_TOOLCHAIN_NAME} COMMAND ${CMAKE_COMMAND} -E rm -rf ${HI_VERSION_DIR} COMMAND ${CMAKE_COMMAND} -E make_directory ${HI_VERSION_DIR} ) if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/openwrt_patch) foreach(each ${LIST_LINK_SOURCES}) add_custom_command(TARGET prebuild_openwrt COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_CURRENT_SOURCE_DIR}/${each} ${each} COMMENT "create_symlink ${CMAKE_CURRENT_SOURCE_DIR}/${each} ${each}" WORKING_DIRECTORY ${HI_VERSION_DIR} ) endforeach() add_custom_command(TARGET prebuild_openwrt COMMAND cp -rf ${CMAKE_CURRENT_SOURCE_DIR}/target ./target COMMAND [ -d ${CMAKE_CURRENT_SOURCE_DIR}/staging_dir ] && cp -rf ${CMAKE_CURRENT_SOURCE_DIR}/staging_dir ./staging_dir || true COMMAND [ -d ${CMAKE_CURRENT_SOURCE_DIR}/build_dir ] && cp -rf ${CMAKE_CURRENT_SOURCE_DIR}/build_dir ./build_dir || true COMMAND cp -rf ${CMAKE_CURRENT_SOURCE_DIR}/scripts ./scripts COMMENT "copy generate file directory" WORKING_DIRECTORY ${HI_VERSION_DIR} ) else() if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/openwrt-22.03.6.tar.gz) add_custom_command(TARGET prebuild_openwrt COMMAND mkdir -p ${HI_VERSION_DIR}/openwrt_patch COMMAND cp -rf ${CMAKE_CURRENT_SOURCE_DIR}/* ${HI_VERSION_DIR}/openwrt_patch/ COMMAND cd ${HI_VERSION_DIR}/openwrt_patch && ./apply_patch.sh COMMENT "apply openwrt patch" WORKING_DIRECTORY ${HI_VERSION_DIR} ) else() add_custom_command(TARGET prebuild_openwrt COMMAND [ ! -d ${CMAKE_CURRENT_SOURCE_DIR}/dl ] && mkdir ${CMAKE_CURRENT_SOURCE_DIR}/dl || true COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_CURRENT_SOURCE_DIR}/dl ${HI_VERSION_DIR}/dl COMMAND ls ${CMAKE_CURRENT_SOURCE_DIR}/ | grep -vE "^dl$" | xargs -i cp -rf ${CMAKE_CURRENT_SOURCE_DIR}/{} ${HI_VERSION_DIR} COMMAND cd ${HI_VERSION_DIR} && ./apply_patch.sh COMMENT "apply openwrt patch" WORKING_DIRECTORY ${HI_VERSION_DIR} ) endif() endif() if("ON" IN_LIST CONFIG_KASAN) add_custom_command(TARGET prebuild_openwrt COMMAND cp -f patches-${CONFIG_OPENSRC_LINUX_VERSION}/kasan/*.patch patches-${CONFIG_OPENSRC_LINUX_VERSION}/ COMMAND cat patches-${CONFIG_OPENSRC_LINUX_VERSION}/kasan/defconfig >> ${CONFIG_CHIP_NAME}/${CONFIG_CHIP_NAME}_${CONFIG_PRODUCT_NAME}_config-${CONFIG_OPENSRC_LINUX_VERSION} WORKING_DIRECTORY ${HI_VERSION_DIR}/target/linux/hisilicon ) endif() add_custom_command(TARGET prebuild_openwrt COMMAND cp -f target/linux/hisilicon/${CONFIG_CHIP_NAME}/${CONFIG_CHIP_NAME}_${CONFIG_PRODUCT_NAME}_config-5.10 target/linux/hisilicon/${CONFIG_CHIP_NAME}/config-5.10 COMMAND [ ${CONFIG_CHIP_NAME} = luofu ] && [ ${CONFIG_PRODUCT_NAME} = wrt_ax3000_lite ] && rm -f target/linux/hisilicon/base-files/etc/init.d/nft2ipset || true COMMAND cp -f target/linux/hisilicon/defconfig/openwrt_hsan_${CONFIG_CHIP_NAME}_${CONFIG_PRODUCT_NAME}_defconfig .config COMMAND echo 'CONFIG_TOOLCHAIN_ROOT=\"${CONFIG_TOOLCHAIN_ROOT}\"' >> .config && echo 'CONFIG_LIBC_ROOT_DIR=\"${CONFIG_CROSS_COMPILE_LIB_DIR}/${CONFIG_PRIVATE_C_LIB_DIR}\"' >> .config && echo 'CONFIG_LIBGCC_ROOT_DIR=\"${CONFIG_CROSS_COMPILE_LIB_DIR}/${CONFIG_PRIVATE_C_LIB_DIR}\"' >> .config && echo 'CONFIG_LIBSTDCPP_ROOT_DIR=\"${CONFIG_CROSS_COMPILE_LIB_DIR}/${CONFIG_PRIVATE_C_LIB_DIR}\"' >> .config && echo 'CONFIG_LIBPTHREAD_ROOT_DIR=\"${CONFIG_CROSS_COMPILE_LIB_DIR}/${CONFIG_PRIVATE_C_LIB_DIR}\"' >> .config && echo 'CONFIG_LIBRT_ROOT_DIR=\"${CONFIG_CROSS_COMPILE_LIB_DIR}/${CONFIG_PRIVATE_C_LIB_DIR}\"' >> .config && echo 'CONFIG_LIBATOMIC_ROOT_DIR=\"${CONFIG_CROSS_COMPILE_LIB_DIR}/${CONFIG_PRIVATE_C_LIB_DIR}\"' >> .config && echo 'CONFIG_TOOLCHAIN_PREFIX=\"${CONFIG_TOOLCHAIN_PREFIX}\"' >> .config && echo 'CONFIG_TARGET_NAME=\"${CONFIG_TOOLCHAIN_NAME}\"' >> .config COMMAND $(MAKE) defconfig COMMAND echo 'CONFIG_BUILD_TYPE=\"${CMAKE_BUILD_TYPE}\"' >> .config COMMAND echo 'CONFIG_PRODUCT_IDENTIFIER=\"${CONFIG_PRODUCT_NAME}\"' >> .config COMMENT "make (openwrt) defconfig ..." WORKING_DIRECTORY ${HI_VERSION_DIR} ) if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/staging_dir/host/.prepared) add_custom_command(TARGET prebuild_openwrt COMMAND $(MAKE) tools/compile V=s $<$<BOOL:${CMAKE_VERBOSE_MAKEFILE}>:"V=s"> COMMENT "make (openwrt) tools/compile ..." WORKING_DIRECTORY ${HI_VERSION_DIR} ) endif() add_custom_command(TARGET prebuild_openwrt COMMAND $(MAKE) target/linux/compile V=s $<$<BOOL:${CMAKE_VERBOSE_MAKEFILE}>:"V=s"> CONFIG_LINUX_TEXT_OFFSET=${CONFIG_LINUX_TEXT_OFFSET} COMMENT "make (openwrt) target/linux/compile ..." WORKING_DIRECTORY ${HI_VERSION_DIR} ) add_custom_target(build_linux_module ) add_custom_target(build_linux_image COMMAND $(MAKE) target/linux/install V=s $<$<BOOL:${CMAKE_VERBOSE_MAKEFILE}>:"V=s"> CONFIG_LINUX_TEXT_OFFSET=${CONFIG_LINUX_TEXT_OFFSET} CONFIG_KERNEL_INITRAMFS_SOURCE_DIR=${CONFIG_KERNEL_INITRAMFS_SOURCE_DIR}/ TARGET_ROOTFS_DIR=${CONFIG_INSTALL_DIR} HSAN_SDK_ROOTFS_DIR=${CONFIG_INSTALL_DIR}/sdk-rootfs COMMENT "make (openwrt) linux uImage ..." WORKING_DIRECTORY ${HI_VERSION_DIR} ) add_custom_target(build_openwrt DEPENDS build_linux_module COMMAND $(MAKE) V=s $<$<BOOL:${CMAKE_VERBOSE_MAKEFILE}>:"V=s"> CONFIG_LINUX_TEXT_OFFSET=${CONFIG_LINUX_TEXT_OFFSET} CONFIG_KERNEL_INITRAMFS_SOURCE_DIR=${CONFIG_KERNEL_INITRAMFS_SOURCE_DIR} TARGET_ROOTFS_DIR=${CONFIG_INSTALL_DIR} COMMENT "build openwrt ..." WORKING_DIRECTORY ${HI_VERSION_DIR} ) if(CONFIG_CHIP_NAME STREQUAL "luofu" AND CONFIG_PRODUCT_NAME STREQUAL "wrt_ax3000_lite") add_custom_command(TARGET build_openwrt COMMAND rm -f ${CONFIG_INSTALL_DIR}/rootfs.wrt/etc/rc.d/S19mwan3 COMMAND rm -f ${CONFIG_INSTALL_DIR}/rootfs.wrt/etc/rc.d/S19dropbear COMMENT "disable unnecessary startup services ..." WORKING_DIRECTORY ${HI_VERSION_DIR} ) endif() add_custom_command(TARGET build_openwrt COMMAND rm -f ${CONFIG_INSTALL_DIR}/rootfs.wrt/etc/rc.d/S95telnet COMMENT "default disable telnet" WORKING_DIRECTORY ${HI_VERSION_DIR} ) add_custom_command(TARGET build_openwrt COMMAND rm -f ${CONFIG_INSTALL_DIR}/rootfs.wrt/etc/rc.d/S97hsan_easymesh COMMENT "default disable hsan_easymesh" WORKING_DIRECTORY ${HI_VERSION_DIR} ) add_custom_target(wrt COMMAND echo "$(MAKE) $(WRT_TARGET) V=s" COMMAND $(MAKE) $(WRT_TARGET) V=s CONFIG_LINUX_TEXT_OFFSET=${CONFIG_LINUX_TEXT_OFFSET} CONFIG_KERNEL_INITRAMFS_SOURCE_DIR=${CONFIG_KERNEL_INITRAMFS_SOURCE_DIR} TARGET_ROOTFS_DIR=${CONFIG_INSTALL_DIR} WORKING_DIRECTORY ${HI_VERSION_DIR} ) if(TARGET build_dts) add_dependencies(build_dts build_linux_module) endif() if(TARGET build_dts_overlay) add_dependencies(build_dts_overlay build_linux_module) endif() add_dependencies(prebuild_open_source prebuild_openwrt) add_dependencies(build_open_source build_openwrt) #依赖库配置 add_library(openwrt_lib INTERFACE) set(LIST_LINK_LIBS ubus ubox uci ssl crypto ) if(CONFIG_GATEWAY_MML_OMCI STREQUAL ON) list(APPEND LIST_LINK_LIBS sqlite3) endif() if(CONFIG_GATEWAY_SERVICE_VOICE STREQUAL ON) list(APPEND LIST_LINK_LIBS xml2 pjsip pjsip-simple pjsip-ua pj pjnath pjlib-util pjsdp ) endif() set(LIST_OPENWRT_LIBS) foreach(each ${LIST_LINK_LIBS}) target_link_libraries(openwrt_lib INTERFACE ${OPEN_SOURCE_OPENWRT_BINARY_DIR}/openwrt/staging_dir/target-${CONFIG_TOOLCHAIN_NAME}_musl/usr/lib/lib${each}.so ) if(NOT EXISTS ${OPEN_SOURCE_OPENWRT_BINARY_DIR}/openwrt/staging_dir/target-${CONFIG_TOOLCHAIN_NAME}_musl/usr/lib/lib${each}.so) list(APPEND LIST_OPENWRT_LIBS ${each}) endif() endforeach() target_include_directories(openwrt_lib INTERFACE ${OPEN_SOURCE_OPENWRT_BINARY_DIR}/openwrt/staging_dir/target-${CONFIG_TOOLCHAIN_NAME}_musl/usr/include ${OPEN_SOURCE_OPENWRT_BINARY_DIR}/openwrt/staging_dir/target-${CONFIG_TOOLCHAIN_NAME}_musl/usr/include/libubox ${OPEN_SOURCE_OPENWRT_BINARY_DIR}/openwrt/staging_dir/target-${CONFIG_TOOLCHAIN_NAME}_musl/usr/include/libxml2 ) if(LIST_OPENWRT_LIBS) add_dependencies(openwrt_lib build_openwrt) endif() 注释以上代码,切记一定要每一句都必须有注释,不可以遗漏,并且要将代码和注释一起给出来
最新发布
07-19
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值