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

这里写图片描述

Linux Iptables命令列表: 用iptables -ADC 来指定链的规则,-A添加 -D删除 -C 修改 iptables - [RI] chain rule num rule-specification[option] 用iptables - RI 通过规则的顺序指定 iptables -D chain rule num[option] 删除指定规则 iptables -[LFZ] [chain][option] 用iptables -LFZ 链名 [选项] iptables -[NX] chain 用 -NX 指定链 iptables -P chain target[options] 指定链的默认目标 iptables -E old-chain-name new-chain-name -E 旧的链名 新的链名 用新的链名取代旧的链名 说明 Iptalbes 是用来设置、维护和检查Linux内核的IP包过滤规则的。 可以定义不同的表,每个表都包含几个内部的链,也能包含用户定义的链。每个链都是一个规则列表,对对应的包进行匹配:每条规则指定应当如何处理与之相匹配的包。这被称作'target'(目标),也可以跳向同一个表内的用户定义的链。 TARGETS 防火墙的规则指定所检查包的特征,和目标。如果包不匹配,将送往该链中下一条规则检查;如果匹配,那么下一条规则由目标值确定.该目标值可以是用户定义的链名,或是某个专用值,如ACCEPT[通过], DROP[删除], QUEUE[排队], 或者 RETURN[返回]。 ACCEPT 表示让这个包通过。DROP表示将这个包丢弃。QUEUE表示把这个包传递到用户空间。RETURN表示停止这条链的匹配,到前一个链的规则重新开始。如果到达了一个内建的链(的末端),或者遇到内建链的规则是RETURN,包的命运将由链准则指定的目标决定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值