Linux的防火墙iptables

本文涉及的产品
云防火墙,500元 1000GB
简介:

一.iptables简介

iptables是与Linux内核集成的过滤防火墙系统,其中包含三表(filter表,nat表,mangle表)、五链(INPUT,OUTPUT,FORWARD,PREROUTING,POSTROUTING) 


nat表Nat 表主要用于网络地址转换。根据表中的每一条规则修改网络包的IP地址。流中的包仅遍历一遍Nat表。例如,如果一个通过某个接口的包被修饰(修改了IP地 址),该流中其余的包将不再遍历这个表。通常不建议在这个表中进行过滤,由NAT表支持的链称为PREROUTING 链,POSTROUTING 链和OUTPUT 链。

mangle表这个表用于校正网络包。它用来对特殊包的包头和内容(TTL,TOS,MARK)进行标记修改。Mangle表不能用于地址伪装。支持的链包括PREROUTING链,OUTPUT链Forward链Input链和POSTROUTING链

filter表:如果没有定义任何规则,Filter表则被当作默认的表,并且基于它来过滤。它用来访问控制,规则匹配,过滤网络包。支持的链有INPUT 链,OUTPUT 链,FORWARD 链。

wKioL1mVsL-A__TqAAsICdNSMX8148.png

wKioL1mVsMKwpcW8AAYYuPt_U9c681.png

wKiom1mVsMaQ2bnaAAZ9-Eb96DQ427.png


二.安装启动iptable服务

wKiom1mVsR6wB2RCAAAlMrRyZE4442.png

关闭firewalld服务,开启iptables服务

wKioL1mVsR2SBITXAAAztmTxHN4949.png

wKiom1mVsSDhlo5FAAD_-tbWCX8848.png


三.参数解释用法

   

    -t     指定表名称 
    -n     不作解析
    -L     列出指定表中的策略
    -A     增加策略
    -p     网络协议
    --dport  端口
    -s     数据来源
    -j     动作
    ACCEPT     允许
    REJECT   拒绝
    DROP     丢弃
    -N         增加链
    -E     修改链名称
    -X     删除链
    -D     删除指定策略
    -I       插入
    -R     修改策略
    -P     修改默认策略


查看iptables列表

iptables -t filter -nL          查看filter表中的策略(不加-t则默认为filter表)

wKioL1mVsXfAsbKbAAENCOcOnrg730.png


iptables -F                         刷掉filter表中的测量,当没有用-t指定表名称时默认为filter

service iptables save      保存当前策略

wKiom1mVsXnzrUfgAADUAM4BFqk879.png


1.filter表丢弃所有

无法访问http

wKiom1mVsXqg2AKdAAEia3DQSfY563.png


2.filter表通过所有

可以正常访问

wKioL1mVsXrx5rpsAAFaJsPikcY801.png


3.iptables -A INPUT -j REJECT             拒绝所有主机的数据来源

wKioL1mVsYrgUihfAAE1H55esZw094.png



4.允许lo

wKiom1mVsYzTgwyPAAB_QhbAkGQ818.png

允许172.25.254.228访问22端口

wKiom1mVsY7QtV8gAAIMQ5d3-uw528.png



5.允许访问80端口

wKioL1mVsYuRjgJEAAH8dnfSR-c428.png


6. iptable -D INPUT 3     删除INPUT链中的第二条策略

wKioL1mVsY3hqxejAAGptB0UKO0715.png


7.iptables -D INPUT  -p tcp --dport 80  -j REJECT 删除允许接入80端口的策略

wKioL1mVs7-iEWpXAAGwyY7M43A022.png



8.iptables -R INPUT 1 -s 172.25.254.228-p tcp --dport 80 -j ACCEPT     修改第一条策略

wKioL1mVs7-y9Ih2AAGH0B1X7rc777.png


9.iptables -N WESTOS     增加链WESTOS

wKiom1mVs8Gh8OuvAAFQ7Grahcs584.png


10.iptables -E WESTOS redhat     改变链名称

wKiom1mVs8LTd3Q-AAEIZosnkP8127.png


11.iptables -X redhat   删除redhat 链

wKioL1mVs8Hin5Y1AADuqUR83p0307.png



四.数据包状态策略(缓解压力,提高速度)

iptables -A INPUT -m state --state RELATED,ESTABLISHED  -j ACCEPT        

允许RELATED,ESTABLISHED状态通过


iptables -A INPUT -i lo -m state --state NEW -j ACCEPT 

允许lo回环接口状态为NEW通过


iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT

允许访问端口22状态为NEW通过


iptables -A INPUT -j REJECT 
拒绝所有主机数据来源

wKioL1mVtLDBiImkAAAtdOMD7LA856.png

wKiom1mVtLLSIaZzAAHcul9fvuU682.png

wKioL1mVtLGgCgWsAAAcz5ODhN0430.png

wKioL1mVtLKzlziAAAGUf0h2A8U036.png

wKiom1mVtTjzpNSJAABWiVx5VRU222.png

该策略第一次通过后状态会变为RELATED或ESTABLISHED,此后访问时直接通过iptables,不会给iptables带来访问压力


五.vsftp在iptables开启下的设置

ftp主动模式下会随机打开一个大于1024的端口,所以开启防火墙后会被禁掉,无法正常使用


解决方案:

wKioL1mVtTiQK5F4AAA5JAiMPEg698.png

1.修改ftp端口为固定端口7000

wKioL1mVtTezn3ivAAB696s3vpY598.png


2.添加iptables允许通过7000端口策略

wKiom1mVtTryxCfzAAAtO9x3tm0557.png


3.关闭SElinux

wKioL1mVtTiDp_L2AAAXDZ_L1xg084.png


4.可以登陆ftp

wKiom1mVtTqC-U9xAAAyMQ5QhRQ492.png


如果取消设置ftp固定端口设置

wKioL1mVtTnjZeECAACIs_2dJF4157.png

无法登陆ftp

wKioL1mVtVjCIa5zAAA2qJOrmCs134.png


六.iptables的伪装


iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.128
iptables -t nat -A PREROUTING  -i eth0 -j DNAT --to-dest 172.25.0.228


环境配置

服务端两块网卡   eth0 172.25.254.128

                               eth1 172.25.0.128

客户端IP 172.25.0.228

真机         172.25.254.28


客户端到真机

路由转发:

(1)保存清空iptables的设置

wKiom1mVtaiRzglBAABLScJBhf8928.png

wKiom1mVtaihPE5IAACWQo-3J0o583.png


(2)设置从客户端到从服务端eth0出去的数据伪装成源数据为172.25.254.128

wKioL1mVtafx4LHoAAAwwtbaF1s794.png


(3)配置客户端的网关为172.25.0.128

wKiom1mVtamSPaKgAAA2zH6m0vs718.png

wKioL1mVtarTj4_eAAA4SPxvOIA757.png


(4)启动内核路由转发功能

wKioL1mVtanQ-zQqAAFzWLFoxP0189.png

wKioL1mVtamSblDFAABvEQcNyKA165.png

重新加载

wKiom1mVtauQWaoiAAAeB9sAeMc441.png


(5)数据出去伪装测试

客户端可以ping通真机172.25.254.28

wKiom1mVtayzB1MLAACjh4NimKw859.png

(6)在客户端ssh连接真机后

显示登陆用户为www.westos.com

wKiom1mVta2gbB5cAAFinOSpuag756.png


通过查看hosts的解析,知道www.westos.com为服务端的主机名

wKioL1mVtayh_5kWAAB4vzJSu0s309.png

(7)客户端数据出去伪装成功


真机到客户机

目的地址转换

(1)设置将真机从服务端eth0进去的数据伪装成源数据为172.25.0.228

wKioL1mX2O6C1lB9AAAtNRJBlvk009.png

wKioL1mVta2z6rKiAAEOY6vYKiU213.png







      本文转自一百个小排 51CTO博客,原文链接:http://blog.51cto.com/anfishr/1957204,如需转载请自行联系原作者






相关文章
|
2天前
|
监控 安全 Linux
启用Linux防火墙日志记录和分析功能
为iptables启用日志记录对于监控进出流量至关重要
|
3月前
|
机器学习/深度学习 安全 网络协议
Linux防火墙iptables命令管理入门
本文介绍了关于Linux防火墙iptables命令管理入门的教程,涵盖了iptables的基本概念、语法格式、常用参数、基础查询操作以及链和规则管理等内容。
242 73
|
1月前
|
存储 运维 Linux
Linux防火墙firewall的使用
CentOS 7 中的 firewalld 是基于 Netfilter 的防火墙服务,支持动态配置,无需重启服务即可生效。它通过区域管理网络流量,每个区域可以设置不同的防火墙规则。默认区域为 public,可以通过命令行工具 firewall-cmd 进行管理和配置。firewalld 提供了丰富的预定义服务和区域,方便用户根据需求进行灵活配置。
46 0
|
2月前
|
运维 网络协议 安全
Linux安全运维--一篇文章全部搞懂iptables
Linux安全运维--一篇文章全部搞懂iptables
56 1
|
4月前
|
Linux 网络安全
linux关闭方防火墙的命令
linux关闭方防火墙的命令
91 2
|
网络协议 Linux 网络安全
Linux系列——关于防火墙iptables的常用命令
Linux系列——关于防火墙iptables的常用命令
|
网络协议 Linux 网络安全
百度搜索:蓝易云【Linux 防火墙配置(iptables和firewalld)详细教程。】
以上只是一些常见的iptables和firewalld命令示例,你可以根据自己的需求进行修改和扩展。请注意,在配置防火墙时务必小心,确保不会阻塞你所需要的合法流量,并确保保存和加载配置以使其永久生效。另外,建议在配置防火墙之前备份现有的防火墙规则以防止意外情况发生。
604 2
|
网络协议 安全 Linux
Linux防火墙--IPtables配置策略思路
Linux防火墙--IPtables配置策略思路 防火墙定义:是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术。 防火墙发展应用:最早是ipfwadm和ipchains(Redhat7.0), 其次是iptables,Centos7开始后friewalld迅速发展,对iptables进行了 改良,目前还是iptables用的比较多。
441 0
Linux防火墙--IPtables配置策略思路
|
网络协议 Ubuntu 安全
Linux 防火墙 iptables 初学者教程
iptables 是专为 Linux 操作系统打造的极其灵活的防火墙工具。对 Linux 极客玩家和系统管理员来说,iptables 非常有用。本文将向你展示如何配置最通用的 Linux 防火墙。
384 0
Linux 防火墙 iptables 初学者教程