iptables的使用详解

1.命令管理(查看链规则的内容)
[root@base1 Desktop]# systemctl stop firewalld
[root@base1 Desktop]# yum install -y iptables-services
[root@base1 Desktop]# systemctl start iptables
[root@base1 Desktop]# systemctl enable iptables
[root@base1 Desktop]# iptables -L   # -L 表示列出所有
[root@base1 Desktop]# systemctl stop firewalld
[root@base1 Desktop]# yum install -y iptables-services
[root@base1 Desktop]# systemctl start iptables
[root@base1 Desktop]# systemctl enable iptables
[root@base1 Desktop]# iptables -L   # -L 表示列出所有规则

在这里插入图片描述

[root@base1 Desktop]# iptables -nL  # -n 表示不做解析

在这里插入图片描述

[root@base1 Desktop]# iptables -t nat -nL  # 指定查看nat表,-t 表示指定表

在这里插入图片描述

[root@base1 Desktop]# iptables -t mangle -nL   # 指定查看mangle表

在这里插入图片描述

[root@base1 Desktop]# iptables -F   # 刷掉所有规则,即清除
[root@base1 Desktop]# iptables -L   # 再次查看

在这里插入图片描述

[root@base1 Desktop]# systemctl restart iptables.service   # 但是重启服务之后,规则又会出现
[root@base1 Desktop]# iptables -L

在这里插入图片描述

[root@base1 Desktop]# vim /etc/sysconfig/iptables  # 是因为所有的规则全部被保存在了文件里
[root@base1 Desktop]# iptables -F  # 刷新策略
[root@base1 Desktop]# service iptables save   # 将刷新后的内容保存到文件里
[root@base1 Desktop]# systemctl restart iptables.service    # 重启服务也不会影响
[root@base1 Desktop]# iptables -L   # 查看,保存成功

在这里插入图片描述

[root@base1 Desktop]# vim /etc/sysconfig/iptables   # 文件内容不会改变

在这里插入图片描述

2.修改火墙策略
[root@base1 Desktop]# iptables -nL

在这里插入图片描述

[root@base1 Desktop]# iptables -P INPUT DROP   # 改变规则为DROP
[root@base1 Desktop]# iptables -nL 

在这里插入图片描述

[root@base1 Desktop]# iptables -N LINUX   # 添加自定义的链LINUX
[root@base1 Desktop]# iptables -nL	

在这里插入图片描述

[root@base1 Desktop]# iptables -E LINUX linux   # 修改链的名称
[root@base1 Desktop]# iptables -nL	

在这里插入图片描述

3.添加火墙策略
[root@base1 Desktop]# iptables -t filter -A INPUT -s 172.25.254.78 -p tcp --dport 22 -j REJECT    # 在filter表中添加策略,不允许172.25.254.78这台主机连接我
[root@base1 Desktop]# iptables -nL

在这里插入图片描述

# 测试
[root@foundation78 ~]# ssh root@172.25.254.125   # 拒绝连接
ssh: connect to host 172.25.254.125 port 22: Connection refused

[root@base1 Desktop]# iptables -A INPUT -j REJECT  # 任何人访问我的时候都被拒绝
[root@base1 Desktop]# iptables -t filter -A INPUT -s 172.25.254.78 -p tcp --dport 22 -j ACCEPT   # 只允许78这台主机连接我
[root@base1 Desktop]# iptables -nL

在这里插入图片描述

# 在78这台主机上测试,不生效,是因为默认度的规则是第一条,后面的规则不生效
[root@foundation78 ~]# ssh root@172.25.254.125 s
sh: connect to host 172.25.254.125 port 22: Connection refused	
在服务端修改
[root@base1 Desktop]# iptables -I INPUT -s 172.25.254.78 -p tcp --dport 22 -j ACCEPT    # 把这条规则插入到第一条,-I表示插入,默认是1
[root@base1 Desktop]# iptables -D INPUT 3   # 删除第3条策略
[root@base1 Desktop]# iptables -nL

在这里插入图片描述

[root@base1 Desktop]# iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT   # 设置使连接过的和正在使用的不读取,那么在后边新写入的策略就会被读取,以此类推,新写入的策略总能被读取到 
iptables -A INPUT -m state –state NEW -p tcp –dport 22 -j ACCEPT
[root@base1 Desktop]# iptables -A INPUT -m state –state NEW -p tcp –dport 53 -j ACCEPT
[root@base1 Desktop]# iptables -A INPUT -m state –state NEW -p tcp –dport 80 -j ACCEPT 
[root@base1 Desktop]# iptables -A INPUT -m state –state NEW -p tcp –dport 443 -j ACCEPT 
[root@base1 Desktop]# iptables -A INPUT -m state –state NEW -p tcp –dport 3260 -j ACCEPT 
[root@base1 Desktop]# iptables -A INPUT -m state –state NEW -p -i lo  -j ACCEPT
[root@base1 Desktop]# iptables   -nL 

在这里插入图片描述

[root@base1 Desktop]#  iptables   -F
[root@base1 Desktop]#  service iptables save   # 保存策略到文件中
[root@base1 Desktop]#  cat /etc/sysconfig/iptales 

在这里插入图片描述

# 在78这台主机上测试,连接成功
[root@foundation78 ~]# ssh root@172.25.254.125
root@172.25.254.125's password: Last login: Sun Dec  9 11:05:36 2018 from 172.25.254.178
[root@base1 ~]# exit
在服务端
[root@base1 Desktop]# iptables -R INPUT 2 -j ACCEPT  # 把第二条策略改为ACCEPT
[root@base1 Desktop]# iptables -nL

在这里插入图片描述

[root@base1 Desktop]# iptables -F
[root@base1 Desktop]# iptables -A INPUT ! -s 172.25.254.78 -p  tcp --dport 22 -j ACCEPT
[root@base1 Desktop]# iptables -nL

在这里插入图片描述

4.实现端口转发和地址伪装(在nat表中实现)
1.地址伪装
[root@base1 Desktop]# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.125  # 从eth0出去的数据做SNAT转换为172.25.254.125
[root@base1 Desktop]# iptables -t nat -nL

在这里插入图片描述

[root@base1 Desktop]# sysctl -a | grep ip_froward   # 查看内核IP路由功能功能是否打开、

在这里插入图片描述

# 在客户端测试
[root@base3 Desktop]# ssh root@172.25.254.78 # 此处输入的密码是转换后主机的密码
root@172.25.254.784's password: 
Last login: Sun Dec  9 12:52:27 2018 from 172.25.254.125
[root@foundation78 ~]# w -i | cat	

在这里插入图片描述

2.端口转发
[root@base1 Desktop]# iptables -t nat -A PREROUTING -i eth0 -j DNAT  --to-dest 192.168.0.225  #  所有从eth0进来的数据都转发到192.168.0.225这台主机上
[root@base1 Desktop]# iptables -t nat -nL 

在这里插入图片描述

# 测试
[root@foundation78 ~]# ssh root@172.25.254.125
root@172.25.254.125's password:      # 此处输入的密码是转发到的主机上的密码
[root@base3 ~]# ifconfig    # 查看,转发成功

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值