iptables拒绝所有端口放开特定端口方法流程,iptables允许ping和拒绝ping、hosts阻止所有ip指定放开ip方法流程

news2024/11/24 22:50:48

文章目录

  • 说明
  • iptables拒绝所有端口放开特定端口方法流程
    • 拒绝所有端口
    • 允许特定端口
    • 临时规则写入配置文件永久生效
  • iptables允许ping和拒绝ping
    • 禁止允许ping说明
      • 内核参数设置
        • 禁止
        • 允许
      • 防火墙设置
        • 禁止
        • 允许
    • 禁止ping
    • 允许ping
      • 外部ping通虚拟机内部
      • 虚拟机内部使用ping
      • 规则详细
  • hosts阻止所有ip指定放开ip方法流程
    • 允许需要访问ip
    • 拒绝所有

说明

  • 收到下面一封邮件,简单来说就是需要一个虚拟机,外网能ping同,但端口全封,给他们做渗透用。
    在这里插入图片描述
  • 问了需求 不需要登录,封死所有端口。
    所以 就用下面2个方式双重封死。

iptables拒绝所有端口放开特定端口方法流程

拒绝所有端口

  • 命令:

  • iptables -P INPUT DROP【我这就执行了这个进的】

  • iptables -P FORWARD DROP

  • iptables -P OUTPUT DROP

  • 注:上面执行以后,看不到具体规则且iptables -F是无法清除上面规则的,同时ping也不能使用。

  • 测试
    在这里插入图片描述

允许特定端口

  • 我这不需要放开,下面是说明,按需放开端口【特别是ssh,不放开外部无法登录,我这是控制台登录的,所以啥都没放】
#允许已建立的连接通过【不执行也可以,但有些特定版本不执行这个可能下面规则不会生效】
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


# 允许 SSH 连接
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# 允许 HTTP 连接
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# 允许 HTTPS 连接
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

临时规则写入配置文件永久生效

  • 上面做的是临时生效的,重启以后就没了,想要永久生效,执行下面命令【下面配置文件中的规则是基于iptables服务的,如果服务没启动,重启后下面规则依然不会生效】
  • 命令iptables-save > /etc/sysconfig/iptables

在这里插入图片描述

iptables允许ping和拒绝ping

  • 首先,我执行iptables -P INPUT DROP命令以后,外部就ping不通了,我执行iptables -F以后依然ping不通,折腾许久外部都无法ping通,我以为我网络出问题了,但每次重启就好,后来才发现这个命令的规则-F清除不掉,卧槽。

禁止允许ping说明

  • 下面内容来源网络整理,自行测试。

内核参数设置

禁止
  • 临时禁止ping设置
echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all
  • 永久禁止ping设置
echo net.ipv4.icmp_echo_ignore_all=1 >> /etc/sysctl.conf
  • 使/etc/sysctl.conf 配置文件生效
    注意:如果 /etc/sysctl.conf 配置文件里已经有net.ipv4.icmp_echo_ignore_all字段了,那么直接用 vim 进去直接修改0或1即可。
sysctl -p 
允许
  • 临时允许ping设置
echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all
  • 永久允许ping设置
echo net.ipv4.icmp_echo_ignore_all=0 >> /etc/sysctl.conf
  • 使/etc/sysctl.conf 配置文件生效
    注意:如果 /etc/sysctl.conf 配置文件里已经有net.ipv4.icmp_echo_ignore_all字段了,那么直接用 vim 进去直接修改0或1即可
sysctl -p 

防火墙设置

  • 注:使用以下方法的前提是内核配置是默认值,也就是内核没有禁ping
禁止
  • 禁止PING设置
iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP
  • 上面代码参数说明
    • --icmp-type 8 echo request 表示回显请求(ping请求)
    • 0/0 表示所有 IP
允许
  • 允许PING设置 【方式1】
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
  • 允许PING设置 【方式2】
iptables -A INPUT -i eth+ -p icmp --icmp-type 8 -j ACCEPT
  • 允许PING设置 【方式1】
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
  • 允许PING设置 【方式2】
iptables -A OUTPUT -o eth+ -p icmp --icmp-type 0 -j ACCEPT

禁止ping

  • 我这用的是这种方式 iptables -P INPUT DROP【慎用,所以端口都无法进出】

允许ping

外部ping通虚拟机内部

  • 我执行了下面命令以后
    iptables -A INPUT -i eth+ -p icmp --icmp-type 8 -j ACCEPT【这条命令执行完外部就通虚拟机了】
    iptables -A OUTPUT -o eth+ -p icmp --icmp-type 0 -j ACCEPT【好像这个没生效?】
    外部就可以ping通该虚拟机ip
    在这里插入图片描述

虚拟机内部使用ping

  • 但我发现,虚拟机内部不能使用ping了。我以为是面中的output没生效。
    • 但我最后发现,换个方式执行INPUT以后,虚拟机内部就能使用ping了。
      iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
    • 所以这里的output到底是啥逻辑?

在这里插入图片描述

规则详细

至此未知,现在的规则详细如下:
在这里插入图片描述

hosts阻止所有ip指定放开ip方法流程

其实上面的iptables已经限制的死死的了,但怕iptables出意外,所以用hosts加固一下

允许需要访问ip

  • 这里以sshd服务为例,配置完成后,只允许配置允许的IP才能ssh连接本机服务器,其他IP拒绝
    注:一定要先允许在拒绝所有
  • 编辑hosts.allow配置文件

vi /etc/hosts.allow     
  • 允许1个或多个ip
    末尾添加允许的IP远程登录本机服务器,如果有多个IP,以逗号隔开连续写即可
sshd:111.2.3.4,111.6.7.8.9   
  • 以段添加
    添加允许的111.2.3网段的IP远程登录本机服务器
sshd:111.2.3.

拒绝所有

  • 编辑hosts.deny配置文件
vi /etc/hosts.deny
  • 拒绝所有所有IP远程登录本机服务器
    末尾添加下面内容即可
sshd:ALL         

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1260625.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

全国重点文物保护单位数据第1-8批数据,附数据可视化

今天分享的第二个数据是全国重点文物保护单位数据,涉及全国重点文物保护单位第一批至第八批,数据格式为shpcsv格式,以点为几何类型,已经经过精加工,可直接使用。 涉及字段列表如下: 序号字段名称字段说明…

java学习part16代码块

108-面向对象(高级)-类的成员之四:代码块_哔哩哔哩_bilibili 1. 代码块只能static修饰,不存在权限修饰。 因为它是在某种情况下自动执行的,不存在调用的情况。 非静态代码块随着对象创建自动执行(一个对象执行一次)…

Python实现WOA智能鲸鱼优化算法优化XGBoost分类模型(XGBClassifier算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 鲸鱼优化算法 (whale optimization algorithm,WOA)是 2016 年由澳大利亚格里菲斯大学的Mirjalili 等提…

ubuntu/vscode下的c/c++开发之-CMake语法与练习

Cmake学习 1 语法特性介绍 基本语法格式:指令(参数 1 参数 2...) 参数使用括弧括起参数之间使用空格或分号分开 指令是大小写无关的,参数和变量是大小写相关的 set(HELLO hello.cpp) add_executable(hello main.cpp hello.cpp) ADD_EXECUTABLE(hello ma…

Django总结

文章目录 一、Web应用Web应用程序的优点Web应用程序的缺点应用程序有两种模式C/S、B/S C/S 客户端/服务端局域网连接其他电脑的MySQL数据库1.先用其他电脑再cmd命令行ping本机ip2.开放MySQL的访问 B/S 浏览器/服务端基于socket编写一个Web应用 二、Http协议1.http协议是什么2.h…

NX二次开发UF_CURVE_ask_proj_curves 函数介绍

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan UF_CURVE_ask_proj_curves Defined in: uf_curve.h int UF_CURVE_ask_proj_curves(tag_t proj_curve_feature, int * n_curve_refs, tag_t * * curve_refs ) overview 概述 Return…

【无标题】动手学深度学习_现代神经网络_未完

这里写目录标题 深度学习之前的网络 AlexNetAlexNet得到了竞赛冠军AlexNet架构Alex net更多细节数据增强 VGGNiN知识补充flop暂退法 drop_out 深度学习之前的网络 1、核方法 机器学习 SVM现在还是很广泛的使用,因为对调参的需求不那么大,对调参不太敏感…

IP代理的巨大潜力,为什么跨境业务需要它?

IP说简单不简单,说复杂也不复杂,打个比方,IP就好比我们上网的一个门牌号,每家每户都会有一个门牌号,而且是唯一的地址。而代理IP(代理服务器)是一个位于中间的服务器,充当客户端和目…

GPT还远远不是真正的智能

GPT是一个基于深度学习的自然语言处理模型,它可以生成逼真的文本。虽然GPT在生成文本方面取得了显著的进展,但它并不具备真正的智能。GPT是通过训练模型来学习语言模式,它不具备理解、推理、判断和主动学习的能力。它只是根据已有的语料库生成…

解决git与huggingface项目下载速度慢或者失败的问题

git clone 项目报错 比如使用git clone 下载项目: git clone https://github.com/ChuRuaNh0/FastSam_Awsome_TensorRT.git有时候会报以下错误: fatal: unable to access ‘https://github.com/xxx.git/’: Failed to connect to github.com port 443 …

JUC下常用的类

一、Semaphore 信号量 new Semaphore(10) 可以把他理解成停车场,最多停10辆车,多个车进来如果满了就去排队,车走了,车位就空出来了,排队的线程就可以进来主要下面2个方法 Acquire获取锁:通过CAS原子性减1&…

mobaxterm 设置文本编辑器、上传文件 、下载文件、修改文件夹或者文件权限

前言 自带的编辑如下 功能比较弱,我们可以设置外部编辑器为默认的编辑器 设置编辑器 设置sh文件的默认编辑器 我们可以在windows上新建一个1.sh文件 右键-属性 设置默认编辑器:点击更改 选择vscode编辑器 mobaxterm用vscode打开文件进行编辑 右键…

蓝桥杯day01——根据给定数字划分数组

题目描述 给你一个下标从 0 开始的整数数组 nums 和一个整数 pivot 。请你将 nums 重新排列,使得以下条件均成立: 所有小于 pivot 的元素都出现在所有大于 pivot 的元素 之前 。所有等于 pivot 的元素都出现在小于和大于 pivot 的元素 中间 。小于 piv…

Python读取照片的Exif信息: 解锁图片背后的故事

更多Python学习内容:ipengtao.com 大家好,我是涛哥,今天为大家分享 Python读取照片的Exif信息: 解锁图片背后的故事,文章2700字,阅读大约12分钟,大家enjoy~~ 在数字摄影时代,我们拍摄的照片不仅…

深入了解Rabbit加密技术:原理、实现与应用

一、引言 在信息时代,数据安全愈发受到重视,加密技术作为保障信息安全的核心手段,得到了广泛的研究与应用。Rabbit加密技术作为一种新型加密方法,具有较高的安全性和便捷性。本文将对Rabbit加密技术进行深入探讨,分析…

什么是Cyclomatic Complexity循环复杂度

Cyclomatic Complexity,可以翻译成 循环复杂度圈复杂度圈复杂性回路复杂性 循环复杂度是软件工程中的一个定量度量,表示程序或函数的复杂性。它衡量程序源代码中线性独立路径或分支的数量。如果一个函数的循环复杂度太高了,就需要进行重构。…

如何使得HAL库STM32代码可以复制,重复使用

在上面这个代码使用标准库写的,但是这个方法可以放在HAL库代码里面没有问题, 如果所有引脚的初始化都是用CubeMX生成,那么只要引脚有变化,Hal库代码就每次都要使用CubeMX生成,而且因为引脚不确定导致要移植的代码不一…

计算机基础知识59

MySQL的卸载流程 1、先停止MySQL服务:右键“此电脑”,选择“管理”,之后选择“服务和应用程序”--“服务”,在服务中找到“MySQL”,右键选择“停止”。 2、找到“控制面板”--“程序和功能”,找到MySQL&…

[python]离线加载fetch_20newsgroups数据集

首先手动下载这个数据包 http://qwone.com/~jason/20Newsgroups/20news-bydate.tar.gz 下载这个文件后和脚本放一起就行,然后 打开twenty_newsgroups.py文件(在fetch_20newsgroups函数名上,右键转到定义即可找到) 之后运行代码即…

SpringBoot监控Redis事件通知

Redis的事件通知 Redis事件通过 Redis 的订阅与发布功能(pub/sub)来进行分发, 因此所有支持订阅与发布功能的客户端都可以在无须做任何修改的情况下, 使用键空间通知功能。 因为 Redis 目前的订阅与发布功能采取的是发送即忘&am…