禁止icmp互联网控制消息协议-禁止ping

禁止icmp(Internet Control Message Protocol)互联网控制消息协议,禁止ping

1、临时禁止ping

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

2、永久禁止ping

编辑/etc/sysctl.conf文件,天剑或修改以下行:

net.ipv4.icmp_echo_ignore_all = 1

应用更改:sysctl -p

3、防火墙配置(防火墙规则顺序先放行白名单,再拒绝其他请求)

iptables:

#允许内部网络(如192.168.1.0/24) ICMP

iptables -A INPUT -p icmp --icmp-type echo-request -s 192.168.1.0/24 -j accept

#允许指定ip

iptables -A INPUT -p icmp --icmp-type echo-request echo-request -s 178.11.1.0 -j


#拒绝所有进入服务器的数据包,返回ICMP主机禁止消息(icmp-host-prohibited)

-A INPUT -j REJECT --reject-with icmp-host-prohibited

#拒绝所有通过服务器转发的数据包,返回相同消息

-A FORWARD -j REJECT --reject-with icmp-host-prohibited


禁止所有ICMP请求

iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

保存规则

service iptables save

iptables -L -v -n # 检查规则是否生效

ufw:

ufw deny in proto icmp to any

ufw enable

firewald:

firewall-cmd --permanent --add-rich-rule='rule protocol value="icmp" drop'

firewall-cmd --reload

3、windows

命令行:netsh firewall set icmpsetting 8 disable

高级防火墙->入站规则->回显请求-ICMPv4-In->禁用规则

4、禁止telnet访问

disable_telnet.sh

#!/bin/bash

方法1:使用firewalld

firewall-cmd --permanent --remove-service=telnet

firewall-cmd --reload

方法2:使用iptables

禁用Telnet服务

systemctl disable --now telnet.socket

iptables -A INPUT -p tcp --dport 23 -j DROP

netfilter-persistent save

#方法3:ufw_disable_telnet.sh

#!/bin/bash

禁用Telnet服务

systemctl disable --now telnet.socket

添加ufw规则阻止端口23

ufw deny 23/tcp

ufw reload


修改hosts文件禁止Telnet访问

/etc/hosts.allow

ALL: ALL, EXCEPT 192.168.1.100

/etc/hosts.deny

telnetd: ALL

1、hosts.allow允许所有IP(排除特定IP),hosts.deny禁止telnetd服务

2、需root权限修改,实时生效无需重启服务

3、防止非法IP访问Telnet端口,适用于Linux/Unix系统

========================================

一、ipatble允许或禁止多个ip

icmp_filter.sh

#!/bin/bash

允许内部网络ICMP

for ip in 192.168.1.0/24; do

iptables -A INPUT -p icmp --icmp-type echo-request -s $ip -j ACCEPT

done

允许指定IP ICMP

for ip in 192.168.1.100 192.168.1.101; do

iptables -A INPUT -p icmp --icmp-type echo-request -s $ip -j ACCEPT

done

禁止多个IP ICMP

for ip in 1.1.1.1 2.2.2.2 3.3.3.3; do

iptables -A INPUT -p icmp --icmp-type echo-request -s $ip -j DROP

done

拒绝所有其他ICMP请求

iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

保存规则

service iptables save

2、ufw允许和禁止多个ip

ufw_allow_deny_ip.sh

#!/bin/bash

检查root权限

if [[ $EUID -ne 0 ]]; then

echo "请以root权限运行此脚本"

exit 1

fi

检查ufw状态

if ! command -v ufw &> /dev/null; then

echo "未安装ufw,请先安装"

exit 1

fi

验证IP格式

validate_ip() {

local ip=$1

if [[ ip =\~ \^\[0-9\]{1,3}\\.\[0-9\]{1,3}\\.\[0-9\]{1,3}\\.\[0-9\]{1,3}(/(\[0-9\]\|\[1-2\]\[0-9\]\|3\[0-2\]))? ]]; then

return 0

else

return 1

fi

}

允许IP

allow_ip() {

local ip=$1

if validate_ip "$ip"; then

ufw allow from "$ip" to any proto icmp

echo "允许IP: $ip"

else

echo "无效IP格式: $ip"

fi

}

禁止IP

deny_ip() {

local ip=$1

if validate_ip "$ip"; then

ufw deny from "$ip" to any proto icmp

echo "禁止IP: $ip"

else

echo "无效IP格式: $ip"

fi

}

主菜单

while true; do

echo

echo "UFW IP管理工具"

echo "1. 允许IP"

echo "2. 禁止IP"

echo "3. 退出"

read -p "请选择操作 (1-3): " choice

case $choice in

read -p "请输入要允许的IP地址: " ip

allow_ip "$ip"

;;

read -p "请输入要禁止的IP地址: " ip

deny_ip "$ip"

;;

echo "退出"

break

;;

*)

echo "无效选项,请重试"

;;

esac

done

重启ufw

ufw reload

echo "规则已应用"

三、firewalld允许和禁止ip

#!/bin/bash

检查root权限

if [[ $EUID -ne 0 ]]; then

echo "请以root权限运行此脚本"

exit 1

fi

检查firewalld状态

if ! command -v firewall-cmd &> /dev/null; then

echo "未安装firewalld,请先安装"

exit 1

fi

验证IP格式

validate_ip() {

local ip=$1

if [[ ip =\~ \^\[0-9\]{1,3}\\.\[0-9\]{1,3}\\.\[0-9\]{1,3}\\.\[0-9\]{1,3}(/(\[0-9\]\|\[1-2\]\[0-9\]\|3\[0-2\]))? ]]; then

return 0

else

return 1

fi

}

允许IP

allow_ip() {

local ip=$1

if validate_ip "$ip"; then

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='$ip' accept"

echo "允许IP: $ip"

else

echo "无效IP格式: $ip"

fi

}

禁止IP

deny_ip() {

local ip=$1

if validate_ip "$ip"; then

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='$ip' drop"

echo "禁止IP: $ip"

else

echo "无效IP格式: $ip"

fi

}

主菜单

while true; do

echo

echo "Firewalld IP管理工具"

echo "1. 允许IP"

echo "2. 禁止IP"

echo "3. 退出"

read -p "请选择操作 (1-3): " choice

case $choice in

read -p "请输入要允许的IP地址: " ip

allow_ip "$ip"

;;

read -p "请输入要禁止的IP地址: " ip

deny_ip "$ip"

;;

echo "退出"

break

;;

*)

echo "无效选项,请重试"

;;

esac

done

重启firewalld

firewall-cmd --reload

echo "规则已应用"

相关推荐
星马梦缘3 个月前
计算机网络4 第四章 网络层——网络间的通信问题(省际之间如何规划信件运输路线)
网络·计算机网络·路由·ip地址·子网掩码·icmp·ipv4/ipv6
利刃大大7 个月前
【网络编程】十三、DNS && ICMP && NAT/NAPT && 代理服务器
服务器·网络·dns·nat·代理·icmp
m0_549314867 个月前
二、IGMP
网络·网络协议·组播·icmp·igmp·multicast
满怀10158 个月前
【ICMP协议深度解析】从网络诊断到安全实践
网络·tcp/ip·安全·icmp·网络诊断
计算机鬼才~8 个月前
网络安全·第三天·ICMP协议安全分析
网络·web安全·icmp·traceroute·ping
Zfox_10 个月前
DNS 详细过程 与 ICMP
网络·网络协议·dns·icmp
王木木很酷_1 年前
【计算机网络】网络层
网络·计算机网络·协议·ip·网络层·icmp·子网
炫酷的伊莉娜2 年前
【Linux 网络】网络基础(三)(其他重要协议或技术:DNS、ICMP、NAT)
linux·网络·dns·nat·icmp·代理服务器
学徒6302 年前
IP协议中的四大支柱:DHCP、NAT、ICMP和IGMP的功能剖析
网络·tcp/ip·计算机网络·ip·nat·dhcp·icmp