Linux firewalld开启日志审计功能(2)

在Firewalld防火墙中启用和配置logdenied选项,记录被拒绝的数据包(等同于开启日志功能)

效果展示:

1.开启日志记录功能

firewall-cmd --set-log-denied=unicast

#重新加载生效配置

firewall-cmd --reload

2.配置rsyslog捕获日志

##Rsyslog可以用来捕获日志,并将其重定向到指定文件中

cat <<END>> /etc/rsyslog.d/firewalld.conf

:msg,contains,"_DROP" /var/log/firewalld.log

& stop

:msg,contains,"_REJECT" /var/log/firewalld.log

& stop

END

#重启使其生效

systemctl restart rsyslog

3.审计日志

##查看日志发现日志条目太长了,并且数量也多很难统计出有效信息,所以需要借助脚本过滤出提取有效信息

(1)添加过滤日志脚本

cat <<END>> /usr/local/bin/firewall-log
#!/bin/bash
PH=/tmp/.deny_analyze

echo '===> firewalld拦截信息日志 <==='
echo
echo  "拒绝次数 IP地址/端口"
cat /var/log/firewalld.log | awk '{print $10"="$17":"$19}' | grep -vE "SRC=0000*|SRC=fe80*" | grep DPT >$PH
cat /var/log/firewalld.log | awk '{print $10"="$18":"$20}' | grep -vE "SRC=0000*|SRC=fe80*" | grep DPT >>$PH
cat $PH | awk -F= '{gsub("PROTO","协议",$3);gsub("DPT","",$4);print $2"->"$3"/"$4$5}' | sort -nr | uniq -c | sort -nr | head -10
END

(2)添加可执行权限

chmod +x /usr/local/bin/firewall-log

4.尝试运行查看日志命令

firewall-log

<think>好的,用户现在问的是如何在Linux中安装telnet功能。我需要先回顾之前的对话历史,看看有没有相关的信息或者用户可能遇到的问题。之前用户遇到了执行dji -v时权限不够的问题,我详细解释了权限相关的解决方法。现在用户转向了安装telnet,可能需要类似的步骤,但具体内容不同。 首先,我得确认用户的需求。安装telnet可能指的是安装telnet客户端还是服务器端?通常用户可能只是想使用telnet命令来连接其他设备,所以客户端应该就够了。但有时候可能需要设置服务器端,让其他机器连接过来。不过默认情况下,安装telnet服务器可能存在安全风险,因为telnet是明文传输的,不安全。所以可能需要提醒用户使用更安全的替代方案,比如SSH。 接下来,我需要分步骤指导用户安装客户端或服务器。不同的Linux发行版有不同的包管理工具,比如Debian/Ubuntu用apt,CentOS/RHEL用yum或dnf,Arch用pacman等。需要分别列出这些命令。 另外,可能需要告诉用户如何启动和启用telnet服务器,如果用户确实需要的话。同时,强调安全风险,建议使用SSH代替。这也是一个负责任的做法,避免用户在不了解风险的情况下开启不安全服务。 用户可能的背景是什么?可能是刚开始使用Linux的系统管理员或者开发者,需要远程连接设备,但不太清楚如何安装必要的工具。也有可能是在维护旧系统,必须使用telnet。需要考虑到这些情况,提供足够的信息,同时给出最佳实践的建议。 需要检查用户的命令是否正确,比如安装包的名字是否正确。例如在Ubuntu中,telnet客户端包名是telnet,而服务器端是telnetd。同样,其他发行版的包名可能不同,需要确认。 另外,可能需要指导用户验证安装是否成功,比如运行telnet命令测试连接,或者检查服务状态。还有防火墙设置可能会影响telnet服务器的访问,需要提醒用户检查防火墙规则,比如firewalld或ufw。 总结一下,回答的结构应该包括: 1. 区分客户端和服务器的安装 2. 不同发行版的安装命令 3. 服务器端的配置和注意事项 4. 安全建议和替代方案 5. 验证步骤和常见问题处理 同时,要使用清晰的中文,步骤明确,代码块正确使用格式,符合用户之前提到的系统级指令,比如数学公式用$...$,但这里可能不需要数学公式,主要是代码块和命令行示例。需要确保LaTeX语法正确,不过这里主要用代码块。 最后,用户可能没有说明是否需要服务器端,所以最好在回答中先询问或明确说明两种情况,并给出相应的步骤。同时,强调安全风险,确保用户了解潜在问题。</think>### Linux 安装 Telnet 功能指南 Telnet 是一种用于远程登录的协议(明文传输,**不安全**)。在 Linux 中安装 Telnet 分为 **客户端工具**(连接其他设备)和 **服务端**(允许其他设备连接本机)两种场景。以下是详细步骤与注意事项: --- #### 一、安装 Telnet 客户端 客户端工具用于通过 Telnet 协议连接其他主机。 **1. 不同发行版的安装命令** - **Debian/Ubuntu**: ```bash sudo apt update sudo apt install telnet # 安装客户端 ``` - **CentOS/RHEL**: ```bash sudo yum install telnet # CentOS 7 及以下 sudo dnf install telnet # CentOS 8+/RHEL 8+ ``` - **Arch/Manjaro**: ```bash sudo pacman -Sy inetutils # 包含 telnet 客户端 ``` **2. 验证安装** ```bash telnet example.com 80 # 测试连接(如 HTTP 端口) ``` --- #### 二、安装 Telnet 服务端 ⚠️ **注意**:Telnet 服务端默认使用明文传输密码和数据,**存在安全风险**,建议仅在隔离环境使用或改用 **SSH**。 **1. 安装服务端软件** - **Debian/Ubuntu**: ```bash sudo apt install telnetd # 服务端程序 sudo systemctl start inetd # 依赖 inetd/xinetd 管理服务 ``` - **CentOS/RHEL**: ```bash sudo yum install telnet-server xinetd # 服务端及管理器 sudo systemctl start xinetd ``` **2. 配置与启用服务** - 编辑 `/etc/xinetd.d/telnet`(若不存在则创建): ```bash service telnet { flags = REUSE socket_type = stream wait = no user = root server = /usr/sbin/in.telnetd log_on_failure += USERID disable = no # 将默认的 yes 改为 no } ``` - 重启服务: ```bash sudo systemctl restart xinetd # CentOS/RHEL sudo systemctl restart inetd # Debian/Ubuntu ``` **3. 防火墙放行 Telnet 端口(默认 23)** - **firewalld**(CentOS/RHEL): ```bash sudo firewall-cmd --add-port=23/tcp --permanent sudo firewall-cmd --reload ``` - **ufw**(Ubuntu): ```bash sudo ufw allow 23/tcp ``` --- #### 三、安全建议与替代方案 1. **禁用 Telnet 服务端**: - 长期使用建议关闭服务: ```bash sudo systemctl stop xinetd # 停止服务 sudo systemctl disable xinetd # 禁止开机启动 ``` 2. **使用 SSH 替代 Telnet**: - 安装 SSH 服务端(安全加密传输): ```bash sudo apt install openssh-server # Debian/Ubuntu sudo yum install openssh-server # CentOS/RHEL ``` - 连接方式: ```bash ssh username@host_ip # 默认端口 22 ``` --- #### 四、故障排查 - **连接被拒绝**: 检查服务是否运行、防火墙规则及端口监听状态: ```bash netstat -tuln | grep 23 # 查看 23 端口监听状态 sudo systemctl status xinetd # 检查服务状态 ``` - **权限问题**: 确保服务端配置文件的权限正确(如 `/etc/xinetd.d/telnet` 应为 `644`)。 --- ### 总结 Telnet 客户端安装简单且偶尔用于调试,但服务端应避免在生产环境使用。**优先选择 SSH** 保证安全性。若必须使用 Telnet 服务端,请严格限制访问范围并定期审计日志(如 `/var/log/auth.log`)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值