Linux---iptables的基本命令的常用配置以及地址伪装

iptables的基本认识

iptables其实不是真正的防火墙,我们可以把它理解成一个客户端代理,用户通过iptables这个代理,将用户的安全设定执行到对应的”安全框架”中,这个”安全框架”才是真正的防 火墙,这个框架的名字叫netfilter.
netfilter才是防火墙真正的安全框架(framework),netfilter位于内核空间。 iptables其实是一个命令行工具,位于用户空间,我们用这个工具操作真正的框架。
netfilter/iptables(下文中简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案, 完成封包过滤、封包重定向和网络地址转换(NAT)等功能。
Netfilter是Linux操作系统核心层内部的一个数据包处理模块,它具有如下功能: 网络地址转换(Network Address Translate) 数据包内容修改 以及数据包过滤的防火墙功能
所以说,虽然我们使用service iptables start启动iptables”服务”,但是其实准确的来说,iptables并没有一个守护进程,所以并不能算是真正意义上的服务,而应该算是内核提供的功能。


Netfilter表、链对应关系

这里写图片描述


iptables基本命令

iptables -t 指定操作的表
iptables -A 添加(不能指定添加的位置)
iptables -I 添加(可以指定添加位置)
iptables -R 策略修改
iptables -N 不做解析显示IP
iptables -L 显示所要查看的策略信息
iptables -F 清空规则链
iptables -D 删除

[root@localhost ~]# systemctl stop firewalld  ##关闭火墙
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# systemctl start iptables.service ##开启iptables服务
[root@localhost ~]# systemctl enable iptables.service
[root@localhoat ~]# systemctl start httpd  ##开启http服务
[root@localhost ~]# iptables -nL  ##列出当前
[root@localhost ~]# iptables -F   ##清除规则链中已有的条目
[root@localhost ~]# iptables -nL
[root@localhost ~]# service iptables save  ##保存

这里写图片描述
这里写图片描述
这里写图片描述
在真机上网页浏览172.25.254.128
这里写图片描述
在server虚拟机上网页浏览172.25.254.128
这里写图片描述

[root@localhost Desktop]# iptables -t filter -nL  查看filter表策略
[root@localhost Desktop]#iptables -t nat -nL    查看nat表策略
[root@localhoat Desktop]#iptables -t mangle -nL  查看mangle表策略
[root@localhoat Desktop]# iptables -P INPUT DROP   设置为丢弃状态
[root@localhoat Desktop]# iptables -nL

这里写图片描述
在真机上网页浏览172.25.254.128
这里写图片描述
在server虚拟机上网页浏览172.25.254.128
这里写图片描述
当设置为DROP状态的时候系统是处于丢弃状态,一直转圈却打不开网页,因为丢弃状态不返回值。

[root@localhost Desktop]# iptables -P INPUT ACCEPT  重新将策略改为接受
[root@localhost Desktop]# iptables -A INPUT -p tcp --dport 80 -j REJECT  将80端口设置为拒绝
[root@localhost Desktop]# iptables -nL  查看策略

这里写图片描述

[root@localhoat Desktop]# iptables -A INPUT -s 172.25.254.68 -p tcp --dport 80 -j ACCEPT  
设置68主机可以访问
[root@localhoat Desktop]# iptables -A INPUT -p tcp --dport 80 -j REJECT  拒绝其他用户访问
[root@localhoat Desktop]# iptables -nL  查看策略

这里写图片描述
在真机测试和虚拟机测试结果如下:
这里写图片描述
这里写图片描述
iptables的规则是从上读取,如果第一个策略是拒绝所有IP那么无论下面的策略是接受还是丢弃都会被拒绝。

[root@localhost Desktop]# iptables -D INPUT 1  删除第一条策略
[root@localhost Desktop]# iptables -nL  查看策略

这里写图片描述
在真机IP为68的主机测试:
这里写图片描述
在虚拟机测试:
这里写图片描述

[root@localhost Desktop]# iptables -F  ##清除规则链中已有的条目
[root@localhost Desktop]# iptables -nL
[root@localhost Desktop]# service iptables save  ##保存
[root@localhost Desktop]# iptables -N westos  添加一行
[root@localhost Desktop]# iptables -nL  查看策略多出来一行
[root@localhost Desktop]# iptables -E westos WESTOS  更改名字为大写
[root@desktop Desktop]# iptables -nL  查看策略
[root@desktop Desktop]# iptables -X WESTOS  删除WESTOS表

这里写图片描述
这里写图片描述


基本常用配置

[root@localhost Desktop]# iptables -F  ##清空
[root@localhost Desktop]# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
[root@localhost Desktop]# iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT ##允许数据包从22端口进入
[root@localhost Desktop]# iptables -A INPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT ##允许数据包从53端口进入
[root@localhost Desktop]# iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT  ##允许数据包从80端口进入
[root@localhost Desktop]# iptables -A INPUT -m state --state NEW -p tcp --dport 3260 -j ACCEPT ##允许数据包从3260端口进入
[root@localhost Desktop]# iptables -A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT  ##允许数据包从443端口进入
[root@localhost Desktop]# iptables -A INPUT -m state --state NEW -i lo -j ACCEPT ##允许回环接口
[root@localhost Desktop]# iptables -A INPUT -j REJECT
[root@localhost Desktop]# iptables -nL ##查看策略
[root@localhost Desktop]# service iptables save  ##保存策略

这里写图片描述


iptables的地址伪装

在desktop虚拟机:

添加网卡,设置两个IP在不同网段
eth0:172.25.254.128
eth1:172.25.0.128
这里写图片描述

[root@localhost Desktop]# iptables -F
[root@localhost Desktop]# iptables -t nat -nL
[root@localhost Desktop]# iptables -t nat -A POSTROUTING -o eth0(254网段) -j SNAT --to-source 172.25.254.128
[root@localhost Desktop]# iptables -t nat -nL
[root@localhost Desktop]# vim /etc/sysctl.conf 
加入:net.ipv4.ip_forward = 1
[root@localhost Desktop]# sysctl -p
net.ipv4.ip_forward = 1

这里写图片描述
这里写图片描述

在server虚拟机上

这里写图片描述

[root@localhost Desktop]# ping 172.25.254.68
[root@localhost Desktop]# ssh root@172.25.254.68
[root@localhost Desktop]# w -i  出来的是254网段

这里写图片描述
这里写图片描述

在desktop虚拟机:

[root@localhost Desktop]# iptables -t nat -A PREROUTING -i eth0(254网段) -p tcp --dport 22 -j DNAT --to-dest 172.25.0.228   ##伪装IP为228

在真机上连接desktop虚拟机

[kiosk@foundation68 Desktop]$ ssh root@172.25.254.128
[root@localhost ~]# ifconfig

这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值