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的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值