防火墙管理器二:iptables
来源:互联网 发布:可靠性软件 编辑:程序博客网 时间:2024/06/14 02:43
一、iptables的部署
因为iptables和firewalld服务不能同时存在,所以我们在使用iptables时必须关闭firewalld服务
查看filter表
[root@server ~]# iptables -t filter -L[root@server ~]# iptables -t filter -nL[root@server ~]# iptables -nL
刷新filter表
[root@server ~]# iptables -F
保存当前filter表
[root@server ~]# service iptables save
一般刷新后都要保存一下,不然重启服务后又恢复之前的设定了
配置文件
[root@server ~]# cat /etc/sysconfig/iptables
在做接下来的实验前我们先刷掉之前的设定并保存
二、iptable的用法
[root@server ~]# iptables -A INPUT -i lo -j ACCEPT #添加本地回环接口
[root@server ~]# iptables -A INPUT -s 172.25.254.14 -p tcp --dport 22 -j ACCEPT #允许14主机使用22端口访问
[root@server ~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT #允许所有人访问80端口
[root@server ~]# iptables -A INPUT -j REJECT#拒绝所有人访问
用44主机连:
用14主机连
发现14主机依然可以访问我们的22号端口,是因为我们之前设定过14主机可以访问22号端口,策略在读取的时候是按顺序读取的,所以14主机访问时读取的是第二条策略,44主机读取的是最后一条策略
分别用44主机和14主机访问ftp服务都会被拒绝,因为当访问ftp服务时读的都是最后一条策略
[root@server ~]# iptables -I INPUT 1 -p tcp --dport 22 -j DROP #将此条策略插到第1条
删除第二条策略
REJECT与 DROP的区别
用REJECT拒绝14 主机访问22端口
14主机访问的时侯会有connection refused 的提示
用DROP拒绝14主机访问22端口
14主机访问的时后没有任何响应
state 通常可以有4种状态:
»NEW: 该包想要开始一个新的连接(重新连接或连接重定 向)
»RELATED:该包是属于某个已建立的连接所建立的新连接。举例:FTP的数据传输连接和控制连接之间就是RELATED关系。
»ESTABLISHED:该包属于某个已建立的连接。
»INVALID:该 包不匹配于任何连接,通常这些包被DROP。
我们可以这样设计我们的策略:
[root@server ~]# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT[root@server ~]# iptables -A INPUT -m state --state NEW -i lo -j ACCEPT[root@server ~]# iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT [root@server ~]# iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT [root@server ~]# iptables -A INPUT -j REJECT [root@server ~]# service iptables save
DNAT(目标地址转换)与 SNAT(源地址转换)
POSTROUTING:可以在这里定义进行源NAT的规则,系统在决定了数据包的路由以后在执行该链中的规则。
SNAT就是改变转发数据包的源地址
–to-source:
PREROUTING:(外部访问内部)可以在这里定义进行目的NAT的规则,因为路由器进行路由时只检查数据包的目的ip地址,所以为了使数据包得以正确路由,我们必须在路由之前就进行目的NAT;
DNAT就是改变转发数据包的目的地址 –to-dest:
MASQUERADE:使用拨号方式,公有地址不固定(地址伪装)
[root@server ~]# iptables -t nat -nL #查看nat表的策略
SNAT:
在server上配置双网卡:
eth0:172.25.254.244
eth1:172.25.44.1
在www上配置:
ip:172.25.254.14
gateway:172.25.254.244(server主机上与自己ip处于同一网段的ip)
配置完成后检测是否能ping通网关,以免对接下来的实验产生影响
我这里刚开始是ping不同的,原因是因为我之前写的策略的问题,将之前的策略刷掉,再ping就可以ping通了
在进行SNAT之前我们的www主机是不能用ssh 连接172.25.44.250这台主机的
接下来我们在server上进行SNAT
[root@server ~]# iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 172.25.44.1
server这台主机具有双ip,既能与172.25.254.14这台主机传输数据,又能与172.25.44.250这台主机传输数据。
当14想要访问250时,由于二者不能直接通信,所以14先去找server,server会告诉250主机这个数据包是从我的172.25.44.1上来的,这样就可以让server可以向250传输数据
在我们写完源地址转换策略后还需要做一下设定:
可以看到默认net.ipv4.ip_forward = 0
[root@server ~]# sysctl -a | grep ip_forwardnet.ipv4.ip_forward = 0
编辑/etc/sysctl.conf,插入net.ipv4.ip_forward = 1
[root@server ~]# vim /etc/sysctl.conf
[root@server ~]# sysctl -pnet.ipv4.ip_forward = 1
再次用14主机连接250主机,就可以成功连接了
DNAT:
[root@server ~]# iptables -t nat -A PREROUTING -i eth1 -j DNAT --to-dest 172.25.254.14
当250主机想要和14进行数据传输,250先去找server,由于250这个主机可以与server的172.25.44.1这个ip传输数据,所以server就做了这样的设定:当250主机访问自己的172.25.44.1这个ip时,将目的地转发到172.25.254.14这台主机上,这样就实现了从250到14主机的数据传输
写完上面策略后测试:
- 防火墙管理器二:iptables
- iptables防火墙详解(二)
- iptables防火墙详解(二)SNAT和DNAT
- Linux防火墙iptables详解(二)--参数指令
- Linux防火墙iptables(二)iptables 常用命令列表
- iptables 防火墙
- 防火墙(iptables)
- iptables 防火墙
- iptables 防火墙
- iptables防火墙
- Iptables防火墙
- iptables防火墙
- iptables 防火墙
- iptables 防火墙
- 防火墙---iptables
- iptables 防火墙
- iptables防火墙
- iptables防火墙
- 开发需要注意的小点
- 实训第三次博客
- P1256 显示图像 【队列维护bfs】
- C# 生成不重复的随机数
- android的surfaceflinger原理讲解
- 防火墙管理器二:iptables
- 计算机网络系列(4)之应用层SubNet and DHCP
- [dsu on tree] Codeforces #600E. Lomsat gelral
- 过滤器filter
- c语言操作符总结
- tensorflow 学习笔记 2
- book类练习题
- 查找数组(不限维数)中的最大元素和最小元素
- "xxx" is not translated in "en" (English)