赞
踩
# 设置默认允许策略 iptables -P INPUT ACCEPT # 清空现有的所有策略 iptables -F # 允许业务需要的端口 iptables -A INPUT -p tcp -m tcp--dport 80 -j ACCEPT # 允许远程登陆的端口 iptables -A INPUT -s 1.1.1.1 -p tcp -m tcp--dport 22 -j ACCEPT # 允许内网网卡全通--如果服务器有内网ip和外网ip,一般内网那张卡是全开的 iptables -A INPUT -i eth1 -j ACCEPT # 回环会话一定要打开 iptables -A INPUT -i lo -j ACCEPT # 安全防护措施 照抄图片就行
https://blog.51cto.com/dlican/3741859
# 安装ntsysv
yum install -y ntsysv
# 使用ntsysv管理服务自启
ntsysv
440
#!/usr/bin/env bash ## 删除内置的多余账号 function delete_redundant_account(){ # 理论上adm,lp,sync,shutdown,halt,news,uucp,operator,games,ftp,postfix,dovecot这些账号都可以删除,但是删了以后想加回去会很麻烦 redundant_user_lists=(operator lp shutdown halt games ) for user in "${redundant_user_lists[@]}"; do # 这里使用-r参数可能会把/root目录给删除掉 userdel -f "$user" done } ## 删除内置的多余用户组 function delete_redundant_group(){ # 可以删除的组adm,lp,mail,games,ftp,audio redundant_group_lists=(lp uucp games dip games) for group_name in "${redundant_group_lists[@]}"; do # 删除用户组 groupdel -f "$group_name" done } ## 锁定重要系统文件 function Lock_important_system_files(){ # 重要系统文件列表 important_system_files=("/etc/passwd" "/etc/shadow" "/etc/group" "/etc/inittab" "/root/.ssh/authorized_keys") # 锁定重要系统文件 for file in "${important_system_files[@]}"; do (ls "$file" && chattr +i "$file" && lsattr "$file") || echo "$file"文件不存在 done } # 清空/etc/issue,/etc/issue.net 去除系统内核版本登陆的屏幕显示 function clear_login_prompt(){ sysinfo_files=("/etc/issue" "/etc/issue.net") for file in "${sysinfo_files[@]}"; do echo >"$file" done } main() { # 1.删除内置的多余账号 delete_redundant_account # 2.删除内置的多余用户组 delete_redundant_group # 3.锁定重要系统文件 Lock_important_system_files # 4.清空登录提示 clear_login_prompt } main
源码:https://github.com/omaidb/qiaofei_notes/blob/main/shell_code/infosec/block_ssh_error_ip.sh
#!/bin/bash # 本脚本适用于rhel8+iptables # 自动拉黑ssh密码登录错误大于7次的ip # 开启debug模式 # set -ex function check() { # 初始化IP列表 block_ip_list="" # 获取最近ssh密码错误登录的IP列表和次数 failed_logins=$(journalctl _SYSTEMD_UNIT=sshd.service | grep 'Failed password' | awk '{print $(NF-3)}' | sort | uniq -c) # 遍历错误登录事件 while read -r line; do # ssh登录错误次数 count=$(echo "$line" | awk '{print $1}') # ssh登录错误源ip ip=$(echo "$line" | awk '{print $2}') # ssh登录错误大于等于7次,就添加到黑名单IP列表中 if [ "$count" -ge 7 ]; then # echo "IP $ip failed $count times. Adding to block list." block_ip_list="$block_ip_list $ip" fi done <<< "$failed_logins" } # 方法:拉黑IP function block_ip() { local ip="$1" echo "Blocking IP: $ip" # 检查是否已有该IP的防火墙规则,存在则什么都不显示,不存在则报错 if sudo iptables -C INPUT -s "$ip" -j DROP >/dev/null 2>&1; then # echo "IP $ip 已在被iptables封锁中。" : else # 将IP添加到防火墙规则中 sudo iptables -A INPUT -s "$ip" -j DROP echo "拉黑$ip" fi } # 脚本退出前保存防火墙规则 function ipt_save(){ # 退出前保存iptabels规则 service iptables save || iptables-save > /etc/sysconfig/iptables echo "防火墙规则已保存" } # 捕获脚本退出信号 # trap 退出时绑定的函数名 EXIT # trap cleanup EXIT # 捕获CTRL+C信号 # trap ipt_save INT # 捕获所有信号 trap ipt_save SIGINT SIGTERM SIGHUP # 设置退出信号处理方式 trap ipt_save EXIT # 设置INT信号处理方式 # 在接收到INT信号时执行exit 2命令,即以退出状态码2退出当前脚本。 trap 'exit 2' INT main() { # 间隔10s无限循环检查函数 while true; do # 检查ssh登录错误的恶意IP check # 循化拉黑检查到的ip for ip in $block_ip_list; do block_ip "$ip" done # 每隔10s检查一次,时间可根据需要自定义 sleep 10 done } # 执行主方法 main
https://blog.csdn.net/omaidb/article/details/120231345
Centos7配置yum国内源(BaseOS+epel+ELRepo+SCL+IUS+REMI)
上线之前必须更新内核和系统补丁
https://blog.csdn.net/omaidb/article/details/127122959
# 清空yum缓存
yum clean all
# 生成缓存
yum makecache
# 更新内核
yum install kernel -y
# 更新系统及内核
yum upgrade
# 必备软件
yum install ntpdate wget -y
# ntp时间服务器
ntp.aliyun.com
# 用crontab计划任务对时--ntp
/usr/sbin/ntpdate ntp.aliyun.com>>/var/log/ntp.log 2>&1;/sbin/hwclock -w
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。