本文档分享了两个实用的IT运维脚本案例,分别为自动阻止尝试失败密码登录的SSH IP地址过滤器和自动化服务器文件管理器。以下是这两个脚本的主要知识点:
1. **自动阻止失败SSH登录脚本**
- **脚本标题**:"autodropsshIPaddress"
- **描述**:该脚本通过监控 `/var/log/secure` 文件中的失败密码登录记录,查找连续4次尝试失败登录的IP地址,然后将这些IP添加到iptables规则中,将它们的TCP端口22(SSH)设为DROP,以防止进一步的恶意访问。
- **关键命令行**:
- `tail-n1000 /var/log/secure`: 获取最近1000条登录日志。
- `grep "Failedpassword"`: 搜索失败登录信息。
- `egrep-o "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"`: 提取IP地址。
- `sort-nr`, `uniq-c`, `awk '$1>=4{print$2}'`: 对IP地址进行排序、计数筛选出连续失败4次的IP。
- `IPTABLE_CONF=/etc/sysconfig/iptables`: 定义iptables配置文件路径。
- `sed-i` 和 `grep` 联动操作,修改iptables规则。
2. **自动化服务器文件管理器脚本**
- **脚本标题**:"AutochangeServerFiles"
- **描述**:此脚本用于管理和更新服务器上的文件。它首先检查`ip.txt`文件是否存在,如果不存在则创建并填充一些示例IP地址。用户可以通过传递参数执行特定操作,如复制文件(`Src_Files`)或移动文件(`Src_dirDes_dir`)。
- **关键部分**:
- `if [!-f ip.txt]`: 检查`ip.txt`文件是否已存在。
- `cat << EOF`: 显示如何创建和填写`ip.txt`文件的内容。
- `-z "$1"`: 检查命令行参数是否存在。
- `Usage:`: 提供使用脚本的命令格式示例。
这两个脚本展示了在运维环境中如何利用bash脚本自动化常见的安全性和文件管理任务,提高效率并简化日常运维工作。通过学习和应用这样的脚本,运维人员可以更好地监控和保护系统,同时提升对服务器的管理能力。