用iptables管理防火墙

 什么时iptables?

 概念:iptables 是用来设置、维护和检查Linux内核的IP包过滤规则的。可以定义不同的表,每个表都包含几个内部的链,也能包含用户定义的链。每个链都是一个规则列表,对对应的包进行匹配:每条规则指定应当如何处理与之相匹配的包。这被称作'target'(目标),也可以跳向同一个表内的用户定义的链。防火墙的规则指定所检查包的特征,和目标。如果包不匹配,将送往该链中下一条规则检查;如果匹配,那么下一条规则由目标值确定.该目标值可以是用户定义的链名,或是某个专用值,如ACCEPT[通过],DROP[删除],QUEUE[排队],或者 RETURN[返回]。

防火墙处理数据包的四种方式:

1.ACCEPT 允许数据包通过
2.DROP 直接丢弃数据包,不给任何回应信息
3.REJECT 拒绝数据包通过,必要时会给数据发送端一个响应的信息。
4.LOG在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则

iptables的四表五链

Filter表:过滤数据包
NAT表:用于网络地址转换(IP、端口)
Mangle表:修改数据包的服务类型、TTL、并且可以配置路由实现QOS
Raw表:决定数据包是否被状态跟踪机制处理 

五条链分别存放什么链路的规则?

INPUT链——进来的数据包应用此规则链中的规则
OUTPUT链——外出的数据包应用此规则链中的规则
FORWARD链——转发数据包时应用此规则链中的规则
PREROUTING链——对数据包作路由选择前应用此链中的规则
POSTROUTING链——对数据包作路由选择后应用此链中的规则

iptables的基本命令

-A 在指定链的末尾添加(append)一条新的规则
-D删除(delete)指定链中的某一条规则,可以按规则序号和内容删除
-I在指定链中插入(insert)一条新的规则,默认在第一行添加
-R修改、替换(replace)指定链中的某一条规则,可以按规则序号和内容替换
-L列出(list)指定链中所有的规则进行查看
-F清空(flush)
-N新建(new-chain)一条用户自己定义的规则链
-X删除指定表中用户自定义的规则链(delete-chain)
-P设置指定链的默认策略(policy)
-n使用数字形式(numeric)显示输出结果
-v查看规则表详细信息(verbose)的信息
-V查看版本(version)
-h获取帮助(help)

iptables命令的使用

  1. 开启服务                                                                                                                                                              
    systemctl stop firewalld
    systemctl musk firewalld
    yum install iptables-services
    systemctl start iptables
    systemctl enable iptables

  2. 清空规则(-F)

  3. iptables的配置文件
    vim /etc/sysconfig/iptables

  4. 开放指定文件的端口

iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT               #允许本地回环接口(即运行本机访问本机)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT    #允许已建立的或相关连的通行
iptables -A OUTPUT -j ACCEPT         #允许所有本机向外的访问
iptables -A INPUT -p tcp --dport 22 -j ACCEPT    #允许访问22端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT    #允许访问80端口
iptables -A INPUT -p tcp --dport 21 -j ACCEPT    #允许ftp服务的21端口
iptables -A INPUT -p tcp --dport 20 -j ACCEPT    #允许FTP服务的20端口
iptables -A INPUT -j reject       #禁止其他未允许的规则访问
iptables -A FORWARD -j REJECT     #禁止其他未允许的规则访问
屏蔽IP
iptables -I INPUT -s 123.45.6.7 -j DROP       #屏蔽单个IP的命令
iptables -I INPUT -s 123.0.0.0/8 -j DROP      #封整个段即从123.0.0.1到123.255.255.254的命令
iptables -I INPUT -s 124.45.0.0/16 -j DROP    #封IP段即从123.45.0.1到123.45.255.254的命令
iptables -I INPUT -s 123.45.6.0/24 -j DROP    #封IP段即从123.45.6.1到123.45.6.254的命令是

查看已经添加的iptables规则

地址伪装

 在desktop中设置两个网卡,ip分别为eth0:172.25.254.117和eth1:192.168.0.117

在server中设置ip为192.168.0.217,网关设置为192.168.0.117

在desktop上

[root@localhost Desktop]# iptables -F
[root@localhost Desktop]# iptables -t nat -nL
[root@localhost Desktop]# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.117
[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上

在ping主机172.25.254.17

地址转换

[root@localhost Desktop]# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 22 -j DNAT --to-dest 192.168.0.217   ##伪装ip为217

在主机连117虚拟机时,转换到217虚拟机

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值