当前位置: 首页 > article >正文

iptables实例

实验开始前
1、 关闭firewalld防火墙并禁止自启
2、 下载iptables
3、 清空防火墙规则

4、 开放22端口,并设置filter表INPUT默认禁掉所有不匹配的规则

[root@localhost ~]# systemctl stop firewalld && systemctl disable firewalld
[root@localhost ~]# yum -y install iptables-services
[root@localhost ~]# systemctl start iptables && systemctl enable iptables
[root@localhost ~]# iptables -F
// 清空防火墙规则

[root@localhost ~]# iptables -A INPUT -p tcp --dport=22 -j ACCEPT		
// 允许22端口进入防火墙
[root@localhost ~]# iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
// 允许已经建立 tcp 连接的包以及该连接相关的包通过
[root@localhost ~]# iptables -P INPUT DROP		
// 禁止filter表的INPUT链所有数据包
[root@localhost ~]# service iptables save
// 保存配置,默认位置是在/etc/sysconfig/iptables文件中

[root@localhost ~]# iptables -nL
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED

实例1、运行web服务开放80端口

https://blog.csdn.net/qq_50247813/article/details/129236781 #
docker的安装

[root@localhost ~]# iptables -t filter -F FORWARD			#  清空filter表 FORWARD 所有规则

1、 使用docker部署httpd服务

[root@localhost ~]# docker run -d --name web -p 80:80 httpd

2、 开放80端口并访问测试
1) 先来测试一下,不开发80端口是否可以访问

在这里插入图片描述
// 可以看出不可访问

2) 开放80端口在进行测试

[root@localhost ~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Chain INPUT (policy DROP) target prot opt source
destination ACCEPT tcp – 0.0.0.0/0
0.0.0.0/0 tcp dpt:22 ACCEPT all – 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED ACCEPT tcp – 0.0.0.0/0 0.0.0.0/0 tcp dpt:80

在这里插入图片描述

// 访问成功

3) 删除80这条规则
查看这条规则的编号

[root@localhost ~]# iptables -nL --line-num| head
Chain INPUT (policy DROP)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
2    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
3    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80

Chain FORWARD (policy DROP)
num  target     prot opt source               destination         
1    DOCKER-USER  all  --  0.0.0.0/0            0.0.0.0/0           
2    DOCKER-ISOLATION-STAGE-1  all  --  0.0.0.0/0            0.0.0.0/0

删除编号3这条规则

[root@localhost ~]# iptables -D INPUT 3
[root@localhost ~]# iptables -nL --line-num| head
Chain INPUT (policy DROP)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
2    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
// 已经删除了

实例2、只允许某个ip或者某个ip端的网络访问本机的80端口

1) 只允许192.168.44.1地址访问本机的80端口

[root@localhost ~]# iptables -A INPUT -p tcp --dport 80 -s 192.168.44.1 -j ACCEPT
[root@localhost ~]# iptables -nL --line-num| head
Chain INPUT (policy DROP)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
2    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
3    ACCEPT     tcp  --  192.168.44.1         0.0.0.0/0            tcp dpt:80

在这里插入图片描述
// 使用192.168.44.1 访问成功

[root@localhost ~]# iptables -D INPUT 3
// 删除规则3

2) 限制某个ip段的网络访问本机的80端口
只允许192.168.44.0/24网段的用户访问

[root@localhost ~]# iptables -A INPUT -p tcp --dport 22 -s 192.168.44.0/24 -j ACCEPT
[root@localhost ~]# iptables -nL --line-num | head
Chain INPUT (policy DROP)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
2    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
3    ACCEPT     tcp  --  192.168.44.0/24      0.0.0.0/0            tcp dpt:22

在这里插入图片描述
// 访问成功

实例3、开放多端口和端口范围

  • 开放80、8080端口
    搭建http、tomcat服务器

      [root@localhost ~]# docker run -d --name web -p 80:80 httpd
      [root@localhost ~]# docker run -d --name tomcat -p 8080:8080 tomcat
      [root@localhost ~]# docker exec -t tomcat rm -rf  /usr/local/tomcat/webapps
      [root@localhost ~]# docker exec -t tomcat  mv /usr/local/tomcat/webapps.dist  /usr/local/tomcat/webapps
    

    开放80,8080端口

      [root@localhost ~]# iptables -A INPUT -p tcp -m multiport --dports 80,8080 -j ACCEPT
      [root@localhost ~]# iptables -nL | head
    
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 80,8080

访问测试
在这里插入图片描述
在这里插入图片描述

  • 开放端口范围
    部署vsftp服务器开放21,20端口和12020-12025端口
    部署具体操作参考:https://blog.csdn.net/qq_50247813/article/details/129269580

     [root@localhost ~]# iptables -A INPUT -p tcp -m multiport --dport 20,21 -j ACCEPT
     [root@localhost ~]# iptables -A INPUT -p tcp  --dport  12020:12025 -j ACCEPT
     [root@localhost ~]# iptables -nL --line-num| head
    
Chain INPUT (policy DROP)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
2    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
3    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 20,21
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpts:12020:12025
[root@localhost ~]# iptables -D INPUT 3
[root@localhost ~]# iptables -D INPUT 3

#删除上述两条规则

  • 访问测试
    在这里插入图片描述
    #可以看出端口是已经被开放了

实例4、开放多端口和端口范围

服务器禁ping 或 允许ping
#由于INPUT链是默认拒绝所有流进来的流量,所以是默认禁止ping的


http://www.kler.cn/a/6095.html

相关文章:

  • 【HTML+CSS+JS+VUE】web前端教程-2-HTML5介绍和基础骨架
  • WebRTC 在视频联网平台中的应用:开启实时通信新篇章
  • 大数据架构设计:数据分层治理的全景指南
  • 机器学习笔记 - 单幅图像深度估计的最新技术
  • 代码随想录算法训练营第四十天 | 股票问题
  • Spring Boot项目中使用单一动态SQL方法可能带来的问题
  • 为什么我们都需要学点数据可视化?
  • vue+echarts.js 实现中国地图——根据数值表示省份的深浅——技能提升
  • 【Linux】线程互斥
  • Linux进程
  • 【动手学强化学习】安装gym subprocess-exited-with-error
  • 基于html+css的evenly布局
  • ChatGP使用案例之写文章
  • 【数据结构】第三章 栈 队列和数组
  • 华为OD机试用java实现 -【高效的任务规划】
  • LinuxFTP文件传输服务和DNS域名解析服务
  • SpringAOP入门及纯注解开发
  • ros中动态参数dynamic_reconfigure客户端
  • 一套完整的动环监控系统,适用于各类机房、学校机房、医院机房、银行库房等
  • 汽车开放系统架构
  • 隐藏个人信息
  • 为什么数字化转型,必须是“一把手”工程?
  • @Controller和@RestController的区别
  • 2023年全国最新高校辅导员精选真题及答案38
  • 【测试开发】python 应用时间做事情
  • 3.JAVA基础面试题:其他