iptables练习题

目录

  • 练习题
    • 1. 显示当前的iptables规则
    • 2. 允许所有来自192.168.1.0/24的TCP流量到本机的22端口(SSH)
    • 3. 禁止所有来自10.0.0.0/8的ICMP流量
    • 4. 允许所有出站流量
    • 5. 拒绝所有来自外部的HTTP流量(80端口,tcp协议)
    • 6. 删除INPUT链中的最后一条规则
    • 7. 将默认策略设置为拒绝所有输入流量
    • 9. 允许UDP流量从192.168.2.0/24到本机的53端口(DNS)
    • 10. 保存当前的iptables规则到文件/etc/iptables/rules.v4(需要iptables-save命令)
    • 11. 假设你有一个允许所有HTTP流量(80端口)的规则,但现在你只想允许来自192.168.0.0/16的HTTP流量,你应该如何修改这个规则?
    • 12. 你想要允许某个特定的IP地址(例如192.168.1.100)访问你服务器上所有的服务,应如何设置规则?

练习题

1. 显示当前的iptables规则

[root@localhost ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
DOCKER-USER  all  --  anywhere             anywhere            
DOCKER-ISOLATION-STAGE-1  all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
DOCKER     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         Chain DOCKER (1 references)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             172.17.0.3           tcp dpt:radan-httpChain DOCKER-ISOLATION-STAGE-1 (1 references)
target     prot opt source               destination         
DOCKER-ISOLATION-STAGE-2  all  --  anywhere             anywhere            
RETURN     all  --  anywhere             anywhere            Chain DOCKER-ISOLATION-STAGE-2 (1 references)
target     prot opt source               destination         
DROP       all  --  anywhere             anywhere            
RETURN     all  --  anywhere             anywhere            Chain DOCKER-USER (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere

2. 允许所有来自192.168.1.0/24的TCP流量到本机的22端口(SSH)

[root@localhost ~]# iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT
[root@localhost ~]# iptables -L INPUT
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  192.168.1.0/24       anywhere             tcp dpt:ssh

3. 禁止所有来自10.0.0.0/8的ICMP流量

[root@localhost ~]# iptables -A INPUT -s 10.0.0.0/8 -p icmp -j DROP
[root@localhost ~]# iptables -L INPUT
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  192.168.1.0/24       anywhere             tcp dpt:ssh
DROP       icmp --  10.0.0.0/8           anywhere

4. 允许所有出站流量

[root@localhost ~]# iptables -A OUTPUT -j ACCEPT
[root@localhost ~]# iptables -L OUTPUT
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere   

5. 拒绝所有来自外部的HTTP流量(80端口,tcp协议)

[root@localhost ~]# iptables -A INPUT -p tcp --dport 80 -j REJECT
[root@localhost ~]# iptables -L INPUT
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  192.168.1.0/24       anywhere             tcp dpt:ssh
DROP       icmp --  10.0.0.0/8           anywhere            
REJECT     tcp  --  anywhere             anywhere             tcp dpt:http reject-with icmp-port-unreachable

6. 删除INPUT链中的最后一条规则

iptables -D INPUT -1
注意:-1 表示删除最后一条规则。
[root@localhost ~]# iptables -L INPUT --line-numbers
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  192.168.1.0/24       anywhere             tcp dpt:ssh
2    DROP       icmp --  10.0.0.0/8           anywhere            
3    REJECT     tcp  --  anywhere             anywhere             tcp dpt:http reject-with icmp-port-unreachable
[root@localhost ~]# iptables -D INPUT 3
[root@localhost ~]# iptables -L INPUT
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  192.168.1.0/24       anywhere             tcp dpt:ssh
DROP       icmp --  10.0.0.0/8           anywhere

7. 将默认策略设置为拒绝所有输入流量

iptables -P INPUT DROP
[root@localhost ~]# iptables -P INPUT DROP

在这里插入图片描述

9. 允许UDP流量从192.168.2.0/24到本机的53端口(DNS)

iptables -A INPUT -s 192.168.2.0/24 -p udp --dport 53 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -s 192.168.2.0/24 -p udp --dport 53 -j ACCEPT
[root@localhost ~]# iptables -L INPUT
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  192.168.1.0/24       anywhere             tcp dpt:ssh
DROP       icmp --  10.0.0.0/8           anywhere            
ACCEPT     udp  --  192.168.2.0/24       anywhere             udp dpt:domain

10. 保存当前的iptables规则到文件/etc/iptables/rules.v4(需要iptables-save命令)

iptables-save > /etc/iptables/rules.v4
[root@localhost ~]# mkdir -p /etc/iptables
[root@localhost ~]# iptables-save > /etc/iptables/rules.v4
[root@localhost ~]# cat /etc/iptables/rules.v4 
# Generated by iptables-save v1.8.7 on Tue May 28 20:28:05 2024
*nat
:PREROUTING ACCEPT [22:2930]
:INPUT ACCEPT [22:2930]
:OUTPUT ACCEPT [167:14376]
:POSTROUTING ACCEPT [180:15052]
:DOCKER - [0:0]
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
-A POSTROUTING -s 172.17.0.3/32 -d 172.17.0.3/32 -p tcp -m tcp --dport 8088 -j MASQUERADE
-A DOCKER -i docker0 -j RETURN
-A DOCKER ! -i docker0 -p tcp -m tcp --dport 8088 -j DNAT --to-destination 172.17.0.3:8088
COMMIT
# Completed on Tue May 28 20:28:05 2024
# Generated by iptables-save v1.8.7 on Tue May 28 20:28:05 2024
*mangle
:PREROUTING ACCEPT [37873:257277525]
:INPUT ACCEPT [30364:255656388]
:FORWARD ACCEPT [7509:1621137]
:OUTPUT ACCEPT [25976:1343905]
:POSTROUTING ACCEPT [33485:2965042]
COMMIT
# Completed on Tue May 28 20:28:05 2024
# Generated by iptables-save v1.8.7 on Tue May 28 20:28:05 2024
*raw
:PREROUTING ACCEPT [37873:257277525]
:OUTPUT ACCEPT [25976:1343905]
COMMIT
# Completed on Tue May 28 20:28:05 2024
# Generated by iptables-save v1.8.7 on Tue May 28 20:28:05 2024
*security
:INPUT ACCEPT [30332:255653088]
:FORWARD ACCEPT [7509:1621137]
:OUTPUT ACCEPT [25976:1343905]
COMMIT
# Completed on Tue May 28 20:28:05 2024
# Generated by iptables-save v1.8.7 on Tue May 28 20:28:05 2024
*filter
:INPUT ACCEPT [344:30199]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:DOCKER - [0:0]
:DOCKER-ISOLATION-STAGE-1 - [0:0]
:DOCKER-ISOLATION-STAGE-2 - [0:0]
:DOCKER-USER - [0:0]
-A INPUT -s 192.168.1.0/24 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -s 10.0.0.0/8 -p icmp -j DROP
-A INPUT -s 192.168.2.0/24 -p udp -m udp --dport 53 -j ACCEPT
-A FORWARD -j DOCKER-USER
-A FORWARD -j DOCKER-ISOLATION-STAGE-1
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o docker0 -j DOCKER
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT
-A OUTPUT -j ACCEPT
-A OUTPUT -j ACCEPT
-A DOCKER -d 172.17.0.3/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 8088 -j ACCEPT
-A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -j RETURN
-A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -j RETURN
-A DOCKER-USER -j RETURN
COMMIT
# Completed on Tue May 28 20:28:05 2024

11. 假设你有一个允许所有HTTP流量(80端口)的规则,但现在你只想允许来自192.168.0.0/16的HTTP流量,你应该如何修改这个规则?

  • 先找到并删除旧的规则(假设它是INPUT链中的第3条规则):
 iptables -D INPUT 3
  • 然后添加新的规则
iptables -A INPUT -s 192.168.0.0/16 -p tcp --dport 80 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -s 192.168.0.0/16 -p tcp --dport 80 -j ACCEPT
[root@localhost ~]# iptables -L INPUT
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  192.168.1.0/24       anywhere             tcp dpt:ssh
DROP       icmp --  10.0.0.0/8           anywhere            
ACCEPT     udp  --  192.168.2.0/24       anywhere             udp dpt:domain
ACCEPT     tcp  --  192.168.0.0/16       anywhere             tcp dpt:http

12. 你想要允许某个特定的IP地址(例如192.168.1.100)访问你服务器上所有的服务,应如何设置规则?

[root@localhost ~]# iptables -A INPUT -s 192.168.1.100 -j ACCEPT
[root@localhost ~]# iptables -L INPUT
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  192.168.1.0/24       anywhere             tcp dpt:ssh
DROP       icmp --  10.0.0.0/8           anywhere            
ACCEPT     udp  --  192.168.2.0/24       anywhere             udp dpt:domain
ACCEPT     tcp  --  192.168.0.0/16       anywhere             tcp dpt:http
ACCEPT     all  --  192.168.1.100        anywhere

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

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

相关文章

数据恢复与取证软件: WinHex 与 X-Ways Forensics 不同许可证功能区别

天津鸿萌科贸发展有限公司从事数据安全业务20余年,在数据恢复、数据取证、数据备份等领域有丰富的案例经验、专业技术及良好的行业口碑。同时,公司面向取证机构及数据恢复公司,提供数据恢复实验室建设方案,包含数据恢复硬件设备及…

期货学习笔记-斐波那契学习1

斐波那契数列介绍 斐波那契数列是1、1、2、3、5、8、13、21、34、55、89…据说这是数学家莱昂纳多 斐波那契研究兔子繁殖时发现的一个神奇数列,似乎大自然在按照这个数列进行演化,一个斐波那契数字是由该数列相邻的前两个数字相加得到的 在斐波那契交易…

基于STM32实现智能交通灯控制系统

目录 引言环境准备智能交通灯控制系统基础代码示例:实现智能交通灯控制系统 GPIO控制交通灯定时器配置与使用红外传感器检测车辆用户界面与显示应用场景:城市交通管理与自动化控制问题解决方案与优化收尾与总结 1. 引言 本教程将详细介绍如何在STM32嵌…

14.Redis之JAVASpring客户端

1.引入依赖 此时就会引入操作 redis 的依赖了~~ 2.yml配置 spring:redis:host: 127.0.0.1port: 8888 3.准备 前面使用 jedis,是通过 Jedis 对象里的各种方法来操作 redis 的.此处Spring 中则是通过 StringRedisTemplate 来操作 redis .最原始提供的类是 RedisTemplateStrin…

洛谷 P1346电车

题目来源于:洛谷 解题思路: 可以把一个路口看作一张图中的一个点,轨道是图中的边(注意:这是有向图),每一条边的权值就是这个边所联通的点是否需要按按钮(需要按按钮就是1&#xff0…

关于NLTK

一、NLTK简介 下图来自NLTK官网:https://www.nltk.org/index.html NLTK,全称为Natural Language Toolkit,是一个用于处理和分析自然语言文本的Python库。它提供了一系列丰富的工具和资源,包括词汇资源(如WordNet&am…

蓝桥楼赛第30期-Python-第三天赛题 提取电影信息题解

楼赛 第30期 Python 模块大比拼 提取电影信息 介绍 JSON(JavaScript Object Notation, /ˈdʒeɪsən/)是一种轻量级的数据交换格式,最初是作为 JavaScript 的子集被发明的,但目前已独立于编程语言之外,成为了通用的…

常见开源蜜罐系统

蜜罐系统(Honeypot)在信息安全领域中是一种被广泛使用的技术,旨在吸引和诱导黑客入侵,从而获取和分析攻击者的行为和手段。以下是一些常见的蜜罐系统的介绍: HFish开源蜜罐系统 特点: 多功能:支…

Scrapy框架简单介绍及Scrapy项目编写详细步骤(Scrapy框架爬取豆瓣网站示例)

引言 Scrapy是一个用Python编写的开源、功能强大的网络爬虫框架,专为网页抓取和数据提取设计。它允许开发者高效地从网站上抓取所需的数据,并通过一系列可扩展和可配置的组件来处理这些数据。Scrapy框架的核心组成部分包括: Scrapy Engine&…

H4022 12V24V36V40V4A同步降压芯片 Buck-DCDC 高效率95%

H4022 40V4A同步降压芯片是一款Buck-DCDC转换器,其高效率、高稳定性。以下是对该产品的详细分析: 一、产品优势 高效率:H4022的转换效率高达95%,这主要得益于其同步降压技术。同步降压技术相较于传统的异步降压技术,能…

macOS上用Qt creator编译并跑shotcut

1 简介 Shotcut是一个开源的跨平台的视频编辑软件,支持WIN/MACOS/LINUX等平台,由于该项目的编译较为麻烦,踩坑几许,因此写此文章记录完整编译构建过程,后续按此法编译,可减少走弯路,提高生产力。…

【NumPy】全面解析NumPy的bitwise_xor函数:高效按位异或操作指南

🧑 博主简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向…

民国漫画杂志《时代漫画》第29期.PDF

时代漫画29.PDF: https://url03.ctfile.com/f/1779803-1248635405-bf3c87?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了,截止1937年6月战争来临被迫停刊共发行了39期。 ps: 资源来源网络!

代码文本编辑器-小白教程(Sublime text, Notepad++ Acode下载安装与使用)

代码文本编辑器-小白教程(Sublime text, Notepad Acode下载安装与使用) 1. Windows平台和Linux平台1.1 Sublime text1.2 Notepad 2. 安卓平台 Acode参考资料 1. Windows平台和Linux平台 1.1 Sublime text 一、安装教程 1、打开Sublime Text官网下载安…

如何使用 Connector API 将数据提取到 Elasticsearch Serverless 中

作者:来自 Elastic Jedr Blaszyk Elasticsearch 支持一系列摄取方法。 其中之一是 Elastic Connectors,它将 SQL 数据库或 SharePoint Online 等外部数据源与 Elasticsearch 索引同步。 连接器对于在现有数据之上构建强大的搜索体验特别有用。 例如&…

现代信号处理11_Spectral Analysis谱分析(CSDN_20240526)

谱分析与傅里叶变换 对于一个信号,一方面可以从时域上对其进行分析,另一方面也可以从频域上对其进行认识,对信号进行频谱分析能够帮助我们了解能量在频域上的分布。 确定性信号的能量通常是有限的,而平稳随机信号的能量通常是无限…

ChatGPT自然科学应用,R语言lavaan结构方程模型、copula函数

R语言lavaan结构方程模型(SEM) 结构方程模型(Sructural Equation Modeling,SEM)是分析系统内变量间的相互关系的利器,可通过图形化方式清晰展示系统中多变量因果关系网,具有强大的数据分析功能和…

洗地机哪个牌子清洁效果好?十大公认最好的洗地机品牌

在快节奏的现代生活中,洗地机以其吸尘、拖地和洗地三合一的功能,极大地简化了家庭清洁工作,已成为家庭清洁的得力助手。它不仅能缩短清洁时间,节省体力,还能提升清洁效果。作为资深的居家测评家,关于洗地机…

[XYCTF新生赛]-Reverse:你是真的大学生吗?解析(汇编异或逆向)

无壳 查看ida 没有办法反汇编,只能直接看汇编了。 这里提示有输入,输入到2F地址后,然后从后往前异或,其中先最后一个字符与第一个字符异或。这里其实也有字符串的长度,推测应该是cx自身异或之后传给了cx 完整exp&am…

海信集团携纷享销客启动LTC数字化落地 推动ToB业务再升级

日前,海信集团携手连接型CRM纷享销客正式启动LTC(Leads to Cash)数字化平台实施落地项目。作为海信集团数字化的重要里程碑,该项目将通过统一规划、统一投资、统一平台、资源共享和数据赋能,构建ToB业务数字化经营管理…