分类 Linux 下的文章

教程 | debian安装ssh服务及配置root远程登陆


描述

这边用docker安装了一个debian系统,干净的不得了,需要用到远程链接,所以这边需要安装ssh服务

更换源

1.备份当前的源列表文件:sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
2.使用编辑器打开/etc/apt/sources.list文件:sudo nano /etc/apt/sources.list
3.在文件中添加您所需要的更新源(以清华大学debian镜像源为例):

deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free

4.保存并退出编辑器。
5.更新软件包列表:sudo apt-get update
6.升级所有可用的软件包:sudo apt-get upgrade

检查

apt search openssh-server

如果安装会有以下提示

root@c07e17c9af4d:~# apt search openssh-server
Sorting... Done
Full Text Search... Done
openssh-server/oldstable,now 1:8.4p1-5+deb11u2 amd64 [installed]
  secure shell (SSH) server, for secure access from remote machines

安装

apt install openssh-server -y

配置

cd /etc/ssh
cp sshd_config sshd_config.bak
vim sshd_config

以下参数需要开启

Port 22
PermitRootLogin yes
PasswordAuthentication yes

开启对应服务

service ssh start
service ssh status # 查看服务状态

最后链接成功,告一段落。。


教程 | boost在ubuntu上编译安装


需求

中望这边给的包依赖boost,还是指定1.65.1版本的,但是最新的ubuntu确实安装的1.74,这就很尴尬,直接创建软连接的话还是会报错。那就只能自己编译一下指定版本。

boost下载地址

boost官网
boost指定版本下载定制

解压文件

tar -xvzf boost_1_65_1.tar.gz

bjam

boost库自带一套编译工具bjam,bjam本身也是跨平台的,也需要自行编译出来。解压我们下载的boost_1_65_1.zip文件,在目录下有bootstrap.sh和bootstrap.bat两个脚本文件,它们分别用来编译unix和windows下的bjam。

编译bjam

./bootstrap.sh

编译及安装boost

./b2 install --prefix="../boost1.65.1" --build-dir="build" --with-filesystem

解释: 这里试安装boost,安装目录为上级目录的boost1.65.1,编译目录为build,只编译安装filesyste这个组件

b2参数说明

参数说明
stage生成链接库(动态库或静态库)到statedir中。(不含头文件)
---stagedir=在stage生成模式下的输出目录,支持相对路径。
install生成链接库(动态库或静态库)到prefix/lib中,并将头文件放到prefix/include中
---prefix=在install生成模式下的输出目录。
---build-type=构建指定的预定义库。
complete构建所有可能的变体。
---build-dir=设置编译过程中间产物的存放路径。
---show-libraries显示需要构建和安装步骤的boost库列表,然后退出。
---layout=确定是否选择库名和头位置,以便在同一系统上可以使用多版本的boost或多个编译器。
versionedboost二进制文件的名称包括boost版本号、编译器的名称和版本以及编码的构建属性。
---help帮助文档
---with-编译哪些库,例如--with-wave --with-test,表示只编译wave和test库。
---without-排除哪些库,例如--without-wave --without-test,表示除了wave库和test库其它都编译。
-toolset=msvc-14.0/msvc-14.1/msvc-14.2/gcc指定编译器。b2.exe会自行检索当前系统下的编译器,如果该参数为缺省值,那么b2.exe将使用boost源码根目录下的project-config.jam文件中的第一个编译器。
variant=debug/release设置生成的库是调试版本还是发布版本。默认值为release debug即两者都编译。
link=static/shared设置生成的库是动态库还是静态库。默认值为satic。
threading=single/multi设置是否支持多线程(线程安全)。默认值为multi(多线程)。
runtime-link=static/shared设置运行时库的链接方式。默认shared(动态链接)。
address-model=32/64设置生成的库地址模式,是32位还是64位。默认两者都编译。
--project-config=project-config.jam加载指定项目配置文件。默认值为project-config.jam。

Linux | Python3.10.13源码编译安装


需求

最近再适配统信的机器,但是统信的源里的软件都不是最新的,python最高版本就能支持到3.7。然而这边的三方需要的python版本是3.10的,而且需要dev版本,就需要自己重新编译了。

基础依赖环境安装

sudo apt install libffi-dev tcl-dev tk-dev libbz2-dev zlib1g-dev libsqlit3-dev libxml2-dev libssl-dev libxslt1-dev liblzma-dev libreadline-dev llvm libncurses5-dev libncursesw5-dev xz-utils libgdbm-dev libncurses-dev

编译及安装

cas_user@casuser:/data/home/cas_user/code/$ tar -zxvf Python-3.10.13.tgz  # 解压
cas_user@casuser:/data/home/cas_user/code/$ cd Python-3.10.13
cas_user@casuser:/data/home/cas_user/code/Python-3.10.13$ ./configure --prefix=/home/user/python_install_path --enable-shared CFLAGS=-fPIC  # 配置参数
cas_user@casuser:/data/home/cas_user/code/Python-3.10.13$ make -j8 && sudo make install  # 编译及安装

配置参数解析

配置项解释
--prefix=path指定安装目录
--enable-shared生成.so动态库
CFLAGS=-fPIC编译选项
--enable-optimizations启用优化

其他参数以后补充。


OpenSSH | 更新到最新版本修复CVE-2023-38408


描述

2023年7月19日,OpenSSH发布紧急安全补丁,解决OpenSSH ssh-agent转发中存在安全漏洞远程执行CVE-2023-38408。CVE-2023-38408是一个远程代码执行漏洞,位于 ssh-agent 的转发功能内,特别是涉及提供PKCS#11相关服务的情况下。在某些条件下,可以操纵ssh-agent对PKCS#11的支持,以便通过转发的代理套接字来促进远程代码执行。利用的先决条件包括受害者系统上存在特定库以及需要将代理转发到攻击者控制的系统。

解决办法

1 . 升级到OpenSSH 9.3p2或更高版本:升级到最新版本的OpenSSH至关重要,因为它包含缓解漏洞的关键补丁。确保所有相关系统和服务器及时更新至推荐版本或更高版本。

2 . 另外采取预防措施来避免被利用:

建议在仅仅OpenSSH用于远程主机管理的机器,通过Openssh配置(sshd_config)、防火墙,安全组ACL等限制来源访问IP为白名单仅可信IP地址,同时,非必要,关闭SSH代理转发功能,禁止在有关主机启用ssh隧道等。

关闭SSH代理转发功能方法为:
配置/etc/ssh/sshd_config
AllowTcpForwarding NO

本人选择了更新Openssh的版本(头硬)

这边是Centos7的系统,默认的Openssh版本是

准备工作(保证编译安装不正确情况下能正常连接服务器)

1 . 安装对应服务

yum install telnet* xinetd  # 安装telnet服务

2 . 配置xinetd
下面文件内容需要自己创建文件或者编辑

  • vim /etc/xinetd.d/telnet

service telnet
{

flags=REUSE
socket_type=stream
wait=no
user=root
server=/usr/sbin/in.telnetd
log_on_failure += USERID
disable= no

}

3 . 启动相关服务

# 设置服务开机自启及启动
systemctl enable xinetd.service
systemctl enable xinetd.service
systemctl enable telnet.socket
systemctl start xinetd

# 设置防火墙放通telnet
firewall-cmd --zone=public --add-port=23/tcp --permanent
firewall-cmd --complete-reload

# 添加telnet用户(不能直接用root登录)
useradd telnet
passwd telnet

编译安装

1 . 使用telnet形式登录后su到管理员

2 . 下载源码解压

阿里云(官方推荐镜像站):https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/
openssh-9.3p2源码下载地址

wget https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.3p2.tar.gz
tar -zxvf openssh-9.3p2.tar.gz
# 停止当前ssh服务
systemctl stop sshd

3 . 备份相关信息

# 备份当前ssh服务及配置
cp -a /etc/ssh /etc/ssh.bak
cp -a /usr/sbin/sshd /usr/sbin/sshd.bak
cp -a /usr/bin/ssh /usr/bin/ssh.bak
# 删除老配置
rm -rf /etc/ssh/*

# 卸载已安装的openssh相关软件包
rpm -e `rpm -qa | grep openssh` --nodeps

4 . 配置

#编译预配置
cd openssh-9.3p2 && ./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-zlib --with-ssl-dir=/usr/local/openssl --with-md5-passwords --with-pam

configure.jpg

5 . 编译及安装

make
make install

这里编译安装会出现一些问题。提示Ubable to load host key "/etc/ssh/ssh_host_*_key": bad permission等文件权限的错误。
makeInstallError.jpg

问题解决办法:
直接重新给文件附上权限

chomd 0600 /etc/ssh/ssh_host_*_key

屏幕截图 2023-07-25 145132.jpg

6 . 启动

# 检查并删除老版本启动脚本
ls /usr/lib/systemd/system/ssh*
rm -f /usr/lib/systemd/system/ssh*

# 拷贝启动脚本
cp contrib/redhat/sshd.init /etc/init.d/sshd
# 拷贝sshd.pam配置文件
cp contrib/redhat/sshd.pam /etc/pam.d/

# 建立软连接
ln -s /usr/local/openssh/sbin/sshd /usr/sbin/# 若报错可将已存在的文件重命名,再执行软连接

systemctl daemon-reload

# 启动并设置开机自启动
systemctl start sshd && systemctl enable sshd
# 允许root远程登录
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
# 启动ssh服务
systemctl start sshd
# 查看ssh服务状态
systemctl status sshd

启动ssh服务报错:

Starting sshd:/etc/rc.d/init.d/sshd: line 49: /usr/sbin/sshd: No such file or directory
Failed to start SYSV: Openssh server daemon.

解决办法:

cp -a /usr/local/openssh/sbin/sshd /usr/sbin/sshd

屏幕截图 2023-07-25 145211.jpg

7 . 准备战斗结束

# 删除telnt
systemctl stop telnet.socket
systemctl disable telnet.socket

#删除防火墙放行端口
firewall-cmd --remove-port=23/tcp --permanent
firewall-cmd --reload

# 启动ssh服务
systemctl start sshd

屏幕截图 2023-07-25 145242.jpg
屏幕截图 2023-07-26 105921.jpg


软件 | Veracrypt开源加密软件-硬盘、U盘、文件夹加密


描述

VeraCrypt是一款适用于Windows、Mac OSX和Linux的免费开源磁盘加密软件。基于TrueCrypt 7.1a。

主要功能

  • 在文件中创建虚拟加密磁盘,并将其作为真实磁盘装载。
  • 对整个分区或存储设备(如USB闪存驱动器或硬盘驱动器)进行加密。
  • 加密安装Windows的分区或驱动器(启动前身份验证)。
  • 加密是自动、实时(动态)和透明的。
  • 并行化和流水线技术使数据的读写速度与驱动器未加密时一样快。
  • 加密可以在现代处理器上进行硬件加速。
  • 提供合理的否认,以防对手强迫你透露密码:隐藏卷(隐写术)和隐藏操作系统。

下载地址

官方下载网址

使用流程(加密文件夹,挂载成磁盘)

  1. 安装的话就是普通软件的安装流程
  2. 软件主界面点击创建加密卷
    微信截图_20230704100252.png
  3. 选在创建文件型加密卷
    微信图片编辑_20230704100508.jpg
  4. 选择标准的加密卷,隐藏的文件描述特别逗,都能感觉到画面。。。
    微信图片编辑_20230704100508.jpg
  5. 选择加密卷存放的位置
    微信图片编辑_20230704100508.jpg
  6. 配置加密算法,对于我来说默认就行,没人没事闲的处理这些玩应
    微信截图_20230704100857.png
  7. 设置加密卷的大小,这里是文件夹挂载磁盘,所以生成文件的大小就是设置的大小,也是挂载加密磁盘后的大小。
    微信截图_20230704101059.png
  8. 配置加密卷的密码,下一步的时候密码太简单会有提示
    微信截图_20230704101247.png
  9. 格式化加密卷,其中需要移动鼠标来构建随机加密的字符串
    微信截图_20230704101404.png
  10. 最后格式化完成创建
    微信截图_20230704101616.png
  11. 挂载加密卷文件为本地磁盘
    微信截图_20230704102135.png
  12. 挂载成功,正常使用。
    屏幕截图 2023-07-04 100038.jpg

创建加密磁盘/U盘流程(待处理)

  1. 优先把U盘或磁盘的加密分区分出来格式化一下。我用的工具是DiskGenius
  2. 软件主界面点击创建加密卷
  3. 选在创建加密非系统分区/设备
    屏幕截图 2023-07-05 073400.jpg
  4. 选择标准的加密卷(与加密卷一致)
  5. 选择加密卷存放的位置
  6. 配置加密算法,对于我来说默认就行,没人没事闲的处理这些玩应
  7. 加密卷的大小不用设置,直接是磁盘大小。
    屏幕截图 2023-07-05 073545.jpg
  8. 配置加密卷的密码,下一步的时候密码太简单会有提示
  9. 格式化加密卷,其中需要移动鼠标来构建随机加密的字符串
  10. 最后格式化完成创建
  11. 挂载加密卷磁盘为本地磁盘(或者选中挂载符直接点全部加载)
    微信截图_20230705100407.png
  12. 输入密码,挂载成功,正常使用。

这里挂载需要注意一下,因为Veracrypt把磁盘变成里加密卷,所以window不能直接识别,每次插入都会提示【使用驱动器中的光盘之前需要将其格式化】,你说加密了你还不能格式话,格式完就成普通磁盘了。
微信图片编辑_20230705094656.jpg