1密钥登录
2 防止别人尝试登录,定时任务
2.1 这是前言
最近打印了 ssh 的日志。发现好多人在尝试登录
打印最新的后 20 行代码
tail -n 20 /var/log/secure
2.2创建一个脚本
vim /usr/local/bin/secure_ssh.sh
2.3写入下面的内容
#! /bin/bash
cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /usr/local/bin/black.txt
for i in `cat /usr/local/bin/black.txt`
do
IP=`echo $i |awk -F= '{print $1}'`
NUM=`echo $i|awk -F= '{print $2}'`
if [ $NUM -gt 5 ];then
grep $IP /etc/hosts.deny > /dev/null
if [ $? -gt 0 ];then
echo "sshd:$IP:deny" >> /etc/hosts.deny
fi
fi
done
创建一个文件夹用来将拉黑的名单写入,跟上面的内容保持一致
touch /usr/local/bin/black.txt
2.4创建定时任务
新建一个定时文件
vi crontab-job.txt
写入下面的内容
*/5 * * * * sh /usr/local/bin/secure_ssh.sh
2.5启用定时任务
crontab crontab-job.txt
查看定时任务
crontab -l
2.6后续
上面的代码是只将Failed 出错的代码写入到禁止访问中
现在我想把所有尝试的都写入进去
编辑
vim /usr/local/bin/secure_ssh.sh
写入
第一个是错误的
第二行是无效的Invalid的
第三行是没有匹配密钥成功的
cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /usr/local/bin/black.txt
cat /var/log/secure|awk '/Invalid/{print $(NF-2)}'|sort|uniq -c|awk '{print $2"="$1;}' > /usr/local/bin/black.txt
cat /var/log/secure|awk '/no matching/{print $(NF-12)}'|sort|uniq -c|awk '{print $2"="$1;}' > /usr/local/bin/black.txt
for i in `cat /usr/local/bin/black.txt`
do
IP=`echo $i |awk -F= '{print $1}'`
NUM=`echo $i|awk -F= '{print $2}'`
if [ $NUM -gt 3 ];then
grep $IP /etc/hosts.deny > /dev/null
if [ $? -gt 0 ];then
echo "sshd:$IP:deny" >> /etc/hosts.deny
fi
fi
done
这里为什么
立即运行一下
sh /usr/local/bin/secure_ssh.sh
cat /var/log/secure|awk ‘/Invalid/{print $(NF-2)}’ 因为他的字符和 Failed 的不一样,Failed 那一行的 IP 是在倒数第四个,Invalid 是在倒数第三个
具体有什么不懂的可以问 AI
就在我写代码的这段时间,就有很多尝试连接的
3、安装python
我是习惯将新建一个work文件夹
然后将内容放到里面
这个看个人习惯,无所谓
mkdir /work
3.1 下载包
这里是镜像地址,可以随便选择一个版本
https://registry.npmmirror.com/binary.html?path=python/
我选择的是3.9版本的
wget https://registry.npmmirror.com/-/binary/python/3.9.7/Python-3.9.7.tgz
3.10.6下载链接
wget https://registry.npmmirror.com/-/binary/python/3.10.6/Python-3.10.6.tgz
3.10.7 下载链接
可以用
wget https://registry.npmmirror.com/-/binary/python/3.10.12/Python-3.10.12.tgz
3.11.2下载链接
会出错,pip3 settools包装不上
wget https://registry.npmmirror.com/-/binary/python/3.11.2/Python-3.11.2.tgz
3.12.0下载链接
wget https://registry.npmmirror.com/-/binary/python/3.12.0/Python-3.12.0.tgz
3.2解压 安装
tar -zxvf Python-3.9.7.tgz
cd Python-3.9.7
编译
./configure prefix=/usr/local/python3
可能会出现的错误 1
error1:可能会出现的错误:
configure: error: no acceptable C compiler found in $PATH
See `config.log’ for more details
需要:
yum install gcc
即可,随后重新运行命令
编译
make && make install
如果出现 returned non-zero exit status 1.
make: *** [install] Error 1
可能是依赖不够,
下面的是解决办法
sudo yum install openssl-devel bzip2-devel libffi-devel
3.3链接
删除原有的链接
rm -rf /usr/bin/python3
rm -rf /usr/bin/pip3
建立新的连接
ln -s /usr/local/python3/bin/python3.9 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3.9 /usr/bin/pip3
3.4 如果缺少环境变量
添加环境变量
vim /etc/profile
在后面写入
export PATH=$PATH:/usr/local/python3/bin
保存
重启即可
source /etc/profile
3.5 pip 镜像安装
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
4解决Can‘t connect to HTTPS URL because the SSL module is not available.
Caused by SSLError(“Can’t connect to HTTPS URL because the SSL module is not available.”
一种方法是:
在安装包的时候加上下面的话
-i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com
另一种方法是
4.1 安装openssl 下载最新的OpenSSL
cd /usr/local
wget https://www.openssl.org/source/openssl-3.0.2.tar.gz --no-check-certificate
4.2解压
tar -zxvf openssl-3.0.2.tar.gz
4.3切换目录
cd openssl-3.0.2/
4.4配置
./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl --with-openssl-rpath=auto
4.4.1报错了
Can‘t locate IPC/Cmd.pm in
原因是因为缺少 IPC/Cmd.pm 模块,需要安装这个模块,安装方法在一个大佬文章 Linux 安装 openssl 出现 Can‘t locate IPC/Cmd.pm in,error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1_无奈的码农的博客 - CSDN 博客里找到的。
4.4.2解决办法
yum install -y perl-CPAN
perl -MCPAN -e shell
install IPC/Cmd.pm
等待安装完成
出现cpan[2] 就表明上一个任务完成了,我们这里也完成了
ctrl+D 退出 cpan
4.4.3重新配置
./Configure --prefix=/usr/local/openssl
完成了
4.5重新配置安装
make && make install
安装成功后
进入openssl文件夹
cd /usr/local/openssl
查看目录下的文件
ls
如果有lib文件,则忽略,如果没有 lib文件夹
则需要手动复制一个
cp -rf /usr/local/openssl/lib64 /usr/local/openssl/lib
进入python的安装包位置处
我的是 /work 处
我这里使用了一个通配符,因为我 work 下面只有一个 P 开头的文件夹
cd /work/P*
不管用什么喜欢,进入到python解压的位置即可
然后进入安装包内
编辑文件
vi Modules/Setup
取消注释上面的内容,ssl的地址跟前面保持一致
重新安装python
./configure --enable-optimizations
make altinstall
5重新安装python3
可参考下面的
或者 返回前面,重新做一遍
删除原来的文件
rm -rf /usr/local/python3
镜像源
https://registry.npmmirror.com/binary.html?path=python/
同上,这里不再赘述
wget https://registry.npmmirror.com/-/binary/python/3.9.7/Python-3.9.7.tgz
tar -zxvf Python-3.9.7.tgz
cd Python-3.9.7
./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl --with-openssl-rpath=auto
make -j
make install
如果报错,还是 make state【1】的错误
如果出现 returned non-zero exit status 1.
make: *** [install] Error 1
可能是依赖不够,
下面的是解决办法
sudo yum install openssl-devel bzip2-devel libffi-devel
重新
make && make install
删除原有链接
rm -rf /usr/bin/python3
rm -rf /usr/bin/pip3
新建链接
ln -s /usr/local/python3/bin/python3.9 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3.9 /usr/bin/pip3
6如果还是不行,装Anaconda
wget https://repo.anaconda.com/archive/Anaconda3-2023.03-0-Linux-x86_64.sh
sh Anaconda*.sh
#修改配置文件
vim /root/anaconda3/bin:$PATH
添加到末尾
export PATH=/root/anaconda3/bin:$PATH
如果前面有类似下面的句子,则需要注释掉
#export PATH=/usr/local/nasdsadwe
#保存
输入重启命令
source ~/.bashrc
就可以了
7 安装宝塔面板
国外宝塔安装面板,国外的不需要输手机号
yum install -y wget && wget -O install.sh http://www.aapanel.com/script/install_6.0_en.sh && bash install.sh aapanel
宝塔卸载
wget http://download.bt.cn/install/bt-uninstall.sh
sh bt-uninstall.sh
国内宝塔安装
yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec
8安装werobot
开启端口号
查看防火墙状态
firewall-cmd --state
开启端口号
firewall-cmd --zone=public --add-port=8888/tcp
firewall-cmd --zone=public --add-port=8000/tcp --permanent && firewall-cmd --reload
查看所有已经开放的端口
firewall-cmd --list-ports
关闭端口
firewall-cmd --remove-port=88/tcp --permanent
重启防火墙
systemctl restart firewalld