欢迎光临
我们一直在努力

Linux技巧

Centos下修改虚拟化镜像qcow2默认密码

阅读(232)评论(0)

最近在研究虚拟化镜像,之前安装系统一直都是使用iso镜像完整安装,后面发现这种方式太繁琐,每次都得从头配置,后面思路转变,直接参考众多vps服务商使用的qcow2镜像加载模式,这样可以快速生成新系统,但是qcow2默认密码基本都不提供,所以得考虑修改默认密码,快速启动小鸡。

操作办法:

1.下载qcow2镜像到本地,文章底部提供了部分商家的qcow2镜像,如果害怕镜像夹带私货,安装好之后自己dd重装下,就是完整镜像。

2.安装guestfish用于修改密码:

yum -y install guestfish
yum -y install libguestfs-tools

3.使用 guestfish 更改 root 密码:

guestfish --rw -a debian11.qcow2
run
list-filesystems //查看具体分区
mount /dev/dba /  //根据上面输出的磁盘调整,将其挂载至根目录
vi /etc/shadow  //修改root密码加密部分,可用 openssl passwd -1 创建新密码
quit

至此,密码修改完成。使用quem虚拟机加载镜像启动即可。

部分qcow2镜像仓库:

https://down.idc.wiki/Image/realServer-Template/
https://cloud.centos.org/centos/

强烈建议安装后自己DD一个纯净系统。

centos7宝塔linux面板图文安装教程(新手)

阅读(296)评论(0)

一、安装堡塔远程工具连接Linux服务器

1、先下载堡塔服务器远程连接工具,下载链接https://download.bt.cn/ssh/BT-Term.exe
2、堡塔服务器远程连接工具下载好后,接着按照软件提示安装好此远程工具。

centos7宝塔linux面板图文安装教程(新手)

二、使用堡塔远程工具连接至Linux服务器

centos7宝塔linux面板图文安装教程(新手)

1、打开堡塔远程工具,进入堡塔远程工具软件界面;
2、按照软件提示填写你的Linux服务器信息,IP请填写公网IP,不要写成了内网IP,这里需要大家注意下。

centos7宝塔linux面板图文安装教程(新手)

centos7宝塔linux面板图文安装教程(新手)

3、填写好你的linux服务器信息后,就可以连接你的linux服务器了;
4、如果你已经进入了以下截图界面,就表明你已经成功连接linux服务器了,接下来我们就可以来安装堡塔面板了。

centos7宝塔linux面板图文安装教程(新手)

三、安装宝塔面板

下面我们以新版宝塔面板为例,给大家讲讲宝塔面板如何安装。
1、根据你的Linux服务器系统版本来选择宝塔面板安装命令,下面以Centos系统为例给大家讲解,下面一段代码需要完整复制。
Centos安装命令:

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

2、复制以上命令代码后,打开堡塔远程工具并连接你的Linux服务器,粘贴已复制好的Centos安装命令代码。

centos7宝塔linux面板图文安装教程(新手)
3、Centos安装命令代码复制粘贴好以后,就直接按回车键就行了,根据系统的提示输入”Y“,按回车键确认安装就行了;
centos7宝塔linux面板图文安装教程(新手)

4、宝塔面板安装完成以后,就会出现宝塔面板默认的登录帐号密码,访问地址为ip:8888,可以直接将宝塔面板复制粘贴到浏览器中打开;

centos7宝塔linux面板图文安装教程(新手)
5、输入宝塔面板默认的登录帐号密码,就可以正常使用宝塔面板了,如果提示无法访问,检查IP是不是正确,再检查是否放行了8888端口。

centos7宝塔linux面板图文安装教程(新手)

Linux 服务器时间校对

阅读(300)评论(0)

1.使用背景

在测试项目的时候,发现系统中多处时间不一致,检查发现有的是实时时间,有的是服务器时间,所以需要对服务器时间做一个校准。

2.操作步骤

第一步:安装ntpdate

命令:yum install -y ntpdate

自动草稿

第二步:删除/etc/localtime

命令:rm -rf /etc/localtime

第三步:复制上海时区

命令:cp /usr/share/zoneinfo/Asia/Shanghai /etc/locatime

第四步:更新时间

命令:ntpdate - ntp.api.bz

第五步:保存修改

命令:hwclock -w

最后,可以查看date一下,查看修改效果

自动草稿

3.解决服务器时间与实际时间相差8小时的问题

原因:由于时区不同,校准时间后导致服务器时间与实际时间之前相差8小时,给出如下解决方案

第一步:在/etc/profile文件中增加一行 export TZ='CST-8'

第二步:使文件立即生效:source /etc/profile 或者 . /etc/profile

第三步:同步网络时间:ntpdate time.nist.gov

第四步:同步成功后调整硬件时间:hwclock -w

最后,可以date一下,看时间是否准确

自动草稿

CentOS显示内存与实际硬件内存大小不一致

阅读(283)评论(0)

购买的服务器写的内存是 2GB,但是从宝塔看只用 1800 多 MB...

先用free看一下:

  1. total used free shared buff/cache available
  2. Mem: 1882000 422140 682784 776 777076 1283632
  3. Swap: 1049596 40448 1009148
  4.  

查看内核预留内存:dmesg | grep -i memory

  1. [ 0.000000] Base memory trampoline at [ffff9eb200099000] 99000 size 24576
  2. [ 0.000000] Reserving 161MB of memory at 688MB for crashkernel (System RAM: 2047MB)
  3. [ 0.000000] Early memory node ranges
  4. [ 0.000000] PM: Registered nosave memory: [mem 0x0009f000-0x0009ffff]
  5. [ 0.000000] PM: Registered nosave memory: [mem 0x000a0000-0x000effff]
  6. [ 0.000000] PM: Registered nosave memory: [mem 0x000f0000-0x000fffff]
  7. [ 0.000000] Memory: 1858740k/2097008k available (7788k kernel code, 392k absent, 237876k reserved, 5954k data, 1984k init)
  8. [ 0.000000] please try 'cgroup_disable=memory' option if you don't want memory cgroups
  9. [ 0.331747] Initializing cgroup subsys memory
  10. [ 0.475802] x86/mm: Memory block size: 128MB
  11. [ 1.231809] Freeing initrd memory: 20320k freed
  12. [ 1.349328] Non-volatile memory driver v1.3
  13. [ 1.352113] crash memory driver: version 1.1
  14. [ 1.498955] Freeing unused kernel memory: 1984k freed
  15. [ 1.502904] Freeing unused kernel memory: 392k freed
  16. [ 1.505199] Freeing unused kernel memory: 536k freed
  17. [ 2.262990] [TTM] Zone kernel: Available graphics memory: 941000 kiB

crashkernel保留了161MB的内存,属于kdump服务.

注意:kdump 是在系统崩溃、死锁或者死机的时候用来转储内存运行参数的一个工具和服务。打个比方,如果系统一旦崩溃那么正常的内核就没有办法工作了,在这个时候将由 kdump 产生一个用于 capture 当前运行信息的内核,该内核会将此时的内存中的所有运行状态和数据信息收集到一个 dump core 文件中以便于工程师分析崩溃原因,一旦内存信息收集完成,系统将自动重启。

停止并关闭kdump

  1. systemctl stop kdump
  2. systemctl disable kdump

修改grub文件(宝塔直接在线改就好)

  1. vi /etc/default/grub

crashkernel=auto改为crashkernel=0
如:

  1. GRUB_TIMEOUT=5#请无视本行
  2. GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"#请无视本行
  3. GRUB_DEFAULT=saved#请无视本行
  4. GRUB_DISABLE_SUBMENU=true#请无视本行
  5. GRUB_TERMINAL_OUTPUT="console"#请无视本行
  6. GRUB_CMDLINE_LINUX="crashkernel=0 resume=UUID=XXXX-XXXX-XXXX-XXXX-XXXX" #改动此行
  7. GRUB_DISABLE_RECOVERY="true"#请无视本行
  8. GRUB_ENABLE_BLSCFG=true#请无视本行

更新grub配置文件、重启系统

  1. grub2-mkconfig -o /boot/grub2/grub.cfg
  2. reboot

你就会发现内存变多了..

假如Linux服务器被入侵了,要怎么排除呢?

阅读(215)评论(0)

假如Linux服务器被入侵了,要怎么排除呢?
其实如果出现服务器被渗透这类问题,还是建议之家重装系统,因为这是一种最保险、最稳妥的方法。但还是有一些排除手段可以用来参考。

1.查看异常进程活动-查找是否有异常进程和端口占用

1.1 查找占用 cpu 最多的进程

  • 运行 top 命令后,键入大写字母 P 按 cpu 排序

1.2 查找占用内存最多的进程

  • 运行 top 命令后,键入大写字母 M
  • ps aux | sort -k4nr

1.3 查找进程对应的文件

  • ls -la /proc/$pid/exe
  • ls -la /proc/$pid

1.4 跟踪异常进程运行情况

  • strace -tt -T -e trace=all -p $pid

1.5 查看进程打开的文件

  • lsof -p $pid

1.6 查看进程端口情况

  • 查看所有端口 netstat -anltp
  • 查看指定进程的端口 netstat -anltp | grep $pid
  • netstat -apn|more

1.7 清除恶意进程

  • 清除可疑进程的进程链: ps -elf | grep [pid] kill -9 [pid]

2.查看账号安全

2.1 查看是否有存在新增异常账号

  • 查找特权用户 awk -F ":" '$3==0{print $1}' /etc/passwd
  • 查找可以远程登录的账号信息 awk '/\$1|\$6/{print $1}' /etc/shadow
  • 查找 sudo 权限账户 cat /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"

2.2 查看是否有账号异常登录情况

  • 查看当前登录用户和其行为 w
  • 查看所有用户最后一次登录的时间 lastlog
  • 查看错误登陆信息 lasstb
  • 查看所有用户的登录注销信息及系统的启动、重启及关机事件 last
  • 查看登录成功的日期、用户名及 ip grep "Accepted " /var/log/secure* | awk '{print $1,$2,$3,$9,$11}'
  • 查看试图爆破主机的 ip
Source Code
  1. grep refused /var/log/secure* | awk {'print $9'} | sort | uniq -c |sort -nr | more
  2.  
  3. grep "Failed password" /var/log/secure* | grep -E -o "(([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3}))" | uniq -c
  • 查看有哪些 ip 在爆破主机的 root 账号
    grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort
  • 查看爆破使用的用户名字典
    grep "Failed password" /var/log/secure | awk {'print $9'} | sort | uniq -c | sort -nr

3.检查开机启动项

一般通过crontab -l命令即可检测到定时任务后门。不同的 linux 发行版可能查看开机启动项的文件不大相同,Debian 系 linux 系统一般是通过查看/etc/init.d目录有无最近修改和异常的开机启动项。而 Redhat 系的 linux 系统一般是查看/etc/rc.d/init.d或者/etc/systemd/system等目录。

依次排查:

Source Code
  1. /var/spool/cron/*
  2. /etc/crontab
  3. /etc/cron.d/*
  4. /etc/cron.daily/*
  5. /etc/cron.hourly/*
  6. /etc/cron.monthly/*
  7. /etc/cron.weekly/
  8. /etc/anacrontab
  9. /var/spool/anacron/*
 复制 文本
  • cat /etc/rc.local
  • cat /etc/init.d/rc.local
  • chkconfig --list
  • ls -alt /etc/init.d
  • 查看 anacron 异步定时任务 cat/etc/anacrontab
  • 枚举主机所有服务 service--status-all

4.查找异常文件

4.1 查看最近一段时间内被修改的系统文件

  • find /etc/ /usr/bin/ /usr/sbin/ /bin/ /usr/local/bin/ -type f -mtime -T | xargs ls -la

4.2 按时间排序,确认最近是否有命令被替换,可以结合 rpm -Va 命令

  • ls -alt /usr/bin /usr/sbin /bin /usr/local/bin
  • rpm -Va>rpm.log

4.3 查看指定目录下文件时间的排序

  • ls -alt | head -n 10

4.4 使用 find 指令查找限定时间范围的文件

  • sudo find ./ -cmin -10 -name "*.php"

5.排查恶意 alias

检查 ~/.bashrc~/.bash_profile

6.排查恶意 ssh 公钥

  • /etc/.ssh/AuthorizedKeys
  • ~/.ssh/AuthorizedKeys

7.系统文件被替换的情况下使用busybox

被替换的系统文件通常为 ld.so.preload

  • busybox ps -ef|grep watchdogs
  • busybox ps -ef|grep ksoftirqds

8.借助工具查杀病毒和 rootkit

8.1 查杀 rootkit

chkrootkit (下载地址-http://www.chkrootkit.org)
rkhunter (下载地址-http://rkhunter.sourceforge.net)

8.2 查杀病毒

clamav(下载地址-http://www.clamav.net/download.html)

8.3 查杀 webshell

cloudwalker(下载地址-http://github.com/chaitin/cloudwalker)

9. 添加命令审计

为历史的命令增加登录的 IP 地址、执行命令时间等信息

9.1 保存 1 万条命令:

  • sed -i 's/^HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile

9.2 在/etc/profile 的文件尾部添加如下行数配置信息

Source Code
  1. USER_IP=`who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g'`
  2. if [ "$USER_IP" = "" ]
  3. then
  4. USER_IP=`hostname`
  5. fi
  6.  
  7. export HISTTIMEFORMAT="%F %T $USER_IP `whoami` "
  8. shopt -s histappend
  9. export PROMPT_COMMAND="history -a"

2023DDdebian系统以及常用设置和命令

阅读(225)评论(0)

2023DDdebian系统以及常用设置和命令

1.DD命令

bash <(wget --no-check-certificate -qO- 'https://raw.githubusercontent.com/MoeClub/Note/master/InstallNET.sh') -d 11 -v 64 -p "654321" -port "22"

1.1可选的自定义网络设置

bash <(wget --no-check-certificate -qO- 'https://raw.githubusercontent.com/MoeClub/Note/master/InstallNET.sh') -d 11 -v 64 -p "654321" -port "22" --ip-addr 你的ip --ip-gate 15.204.56.1 --ip-mask 255.255.0.0

2.安装常用命令

2.1Ubuntu/Debian 系统升级并安装 Curl/wget/sudo

apt update -y && apt install curl -y && apt install wget -y && apt install sudo -y

3.开启BBR

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p

Linux挂载新硬盘

阅读(301)评论(0)

挂载路径说明

/mnt:临时挂载点,一般挂载了做点啥事以后就卸载的。常用于U盘,移动硬盘等设备的挂载。
/media:长久挂载点

1.在media下新建文件夹

a.进入media路径

cd /media

b.新建文件夹xxx(名称自定义)

mkdir xxx

2.挂载

mount /dev/sdb1 /media/xxx

3.查看挂载是否成功

lsblk
新手建站——宝塔面板搭建wordpress教程

挂载成功

硬盘卸载

umount /media/xxx

当出现以下情况

新手建站——宝塔面板搭建wordpress教程

使用命令

umount -l /mnt

-l是稍候卸载,意思是等空闲时就卸载

致谢

在linux越走越远的路上,幸好遇到了很多大佬,不然我只会处处碰壁。感谢各位大佬!

Linux 中使用 sFTP 上传或下载文件与文件夹

阅读(403)评论(0)

sFTP(安全文件传输程序)是一种安全的交互式文件传输程序,其工作方式与 FTP(文件传输协议)类似。 然而,sFTP 比 FTP 更安全;它通过加密 SSH 传输处理所有操作。

它可以配置使用几个有用的 SSH 功能,如公钥认证和压缩。 它连接并登录到指定的远程机器,然后切换到交互式命令模式,在该模式下用户可以执行各种命令。

在本文中,我们将向你展示如何使用 sFTP 上传/下载整个目录(包括其子目录和子文件)。

如何在 Linux 中使用 sFTP 传输文件/文件夹

默认情况下,SFTP 协议采用和 SSH 传输协议一样的方式建立到远程服务器的安全连接。虽然,用户验证使用类似于 SSH 默认设置的密码方式,但是,建议创建和使用 SSH 无密码登录,以简化和更安全地连接到远程主机。

要连接到远程 sftp 服务器,如下建立一个安全 SSH 连接并创建 SFTP 会话:

$ sftp tecmint@192.168.56.10

登录到远程主机后,你可以如下运行交互式的 sFTP 命令:

sftp> ls            #list directory 
sftp> pwd           #print working directory on remote host
sftp> lpwd          #print working directory on local host
sftp> mkdir uploads     #create a new directory

Linux 中使用 sFTP 上传或下载文件与文件夹

如何使用 sFTP 上传文件夹

要将整个目录上传到远程 Linux 主机中,请使用put命令。但是,如果目录名称不存在于远程主机上的工作目录中,你将收到错误,如下面的屏幕截图所示。

因此,首先在远程主机上创建一个具有相同名称的目录,然后从本地主机上传它,-r参数允许拷贝子目录和子文件:

sftp> put -r  Tecmint.com-articles
sftp> mkdir Tecmint.com-articles
sftp> put -r Tecmint.com-articles

Linux 中使用 sFTP 上传或下载文件与文件夹
要保留修改时间、访问时间以及被传输的文件的模式,请使用-p标志。

sftp> put -pr Tecmint.com-articles
如何使用 sFTP 下载文件夹

要从远程 Linux 主机下载整个 fstools-0.0 文件夹到本机中,如下所示使用 get 命令带上-r标志:

sftp> get -r fstools-0.0

Linux 中使用 sFTP 上传或下载文件与文件夹

使用 sFTP 下载目录

如果文件夹已经下载完成了,接着查看本机的工作目录。

要退出 sFTP shell,输入:

sftp> bye或者sftp> exit

请注意,为了防止用户访问远程主机上的整个文件系统,出于安全原因,你可以使用 chroot Jail将 sFTP 用户限制到其主目录中。

就是这样了!在本文中,我们向你展示了如何使用 sFTP 上传/下载整个目录。

XenServer 7 GUI 虚拟机(VM)上的屏幕分辨率怎么提高?

阅读(220)评论(0)

 XenServer 虚拟机作为远程桌面时,默认的分辨率并不能满足我们的要求。那么如何才能提高 XenServer 7 GUI 虚拟机(VM)的屏幕分辨率以满足我们的需求呢?在这篇文章中我们将进行详尽的介绍。
介绍
目标
  • 提高 XenServer 7 GUI 虚拟机(VM)的屏幕分辨率
要求
  • 访问 XenServer 7 系统的权限
难易程度
  • 简单
惯例

给定命令需要作为root用户权限运行或者使用sudo 命令

XenServer 7 GUI 虚拟机(VM)上的屏幕分辨率怎么提高?

指导
获得 VM UUID

首先,我们需要获得想要提升分辨率的虚拟机的 UUID。
# xe vm-list
uuid ( RO) : 09a3d0d3-f16c-b215-9460-50dde9123891
name-label ( RW): CentOS 7
power-state ( RO): running
提示:如果你将此 UUID 保存为 shell 变量会节省一些时间:
# UUID=09a3d0d3-f16c-b215-9460-50dde9123891

关闭 VM
优雅地关闭 VM 或使用#xe vm-vm-shutdown 命令

# xe vm-shutdown uuid=$UUID
更新 VGA 的 VIDEORAM 设置

检查你目前的 VGA 的 VIDEORAM 参数设置:

# xe vm-param-get uuid=$UUID param-name="platform"

param-key=vgastd

# xe vm-param-get uuid=$UUID param-name="platform"

param-key=videoram8要提升屏幕的分辨率,将 VGA 更新到std(如果已经设置过,就不需要做什么),并将 videoram 调大几兆,如设置成 16:

# xe vm-param-set uuid=$UUID platform:vga=std

# xe vm-param-set uuid=$UUID platform:videoram=16

启动 V

# xe vm-start uuid=$UUID

XenServer 7 GUI 虚拟机(VM)上的屏幕分辨率怎么提高?

Ubuntu 升级内核到最新版本

阅读(206)评论(0)

每过段时间,就有新的设备和技术出来,因此如果我们想要充分利用它,保持最新的 Linux 内核就显得很重要。此外,更新系统内核将使我们能够利用新的内核优化,并且它还可以帮助我们避免在早期版本中发现的漏洞。

准备好了在 Ubuntu 16.04 或其衍生版本(如 Debian 和 Linux Mint)中更新你的内核了么?如果准备好了,请你继续阅读!

第一步:检查安装的内核版本

要发现当前系统安装的版本,我们可以:

$ uname -sr

下面的截图显示了在 Ubuntu 16.04 server 中上面命令的输出:

Ubuntu 升级内核到最新版本

在 Ubuntu 中检查内核版本
第二步:在 Ubuntu 16.04 中升级内核

要升级 Ubuntu 16.04 的内核,打开 http://kernel.ubuntu.com/~kernel-ppa/mainline/ 并选择列表中需要的版本(发布此文时最新内核是 4.10.1)。

接下来,根据你的系统架构下载 .deb 文件:

对于 64 位系统:

$ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10.1/linux-headers-4.10.1-041001_4.10.1-041001.201702260735_all.deb
$ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10.1/linux-headers-4.10.1-041001-generic_4.10.1-041001.201702260735_amd64.deb
$ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10.1/linux-image-4.10.1-041001-generic_4.10.1-041001.201702260735_amd64.deb

这是 32 位系统:

$ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10.1/linux-headers-4.10.1-041001_4.10.1-041001.201702260735_all.deb
$ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10.1/linux-headers-4.10.1-041001-generic_4.10.1-041001.201702260735_i386.deb
$ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10.1/linux-image-4.10.1-041001-generic_4.10.1-041001.201702260735_i386.deb

下载完成这些所有内核文件后,如下安装:

$ sudo dpkg -i *.deb

安装完成后,重启并验证新的内核已经被使用了:

$ uname -sr

就是这样。你下载就可以使用比 Ubuntu 16.04 默认安装的内核的更新版本了。

总结

本文我们展示了如何在 Ubuntu 系统上轻松升级Linux内核。这里还有另一个流程,但我们在这里没有展示,因为它需要从源代码编译内核,这不推荐在生产 Linux 系统上使用。

如果你仍然有兴趣编译内核作为一个学习经验,你可以在 https://kernelnewbies.org/KernelBuild 网站中得到指导该如何做。

一如既往,如果你对本文有任何问题或意见,请随时使用下面的评论栏。

登录

忘记密码 ?