Linux - iptables(上)

本文涉及的产品
公网NAT网关,每月750个小时 15CU
简介: Linux - iptables(上)

一、iptables 简介

二、iptables规则原理和组成

1、netfilter和iptables

2、iptables的4张表和5条链
iptables规则组成:
组成部分:四张表+五条连(Hook point)+规则
mangle表:修改数据包,改变包头中内容(TTL、TOS、MARK)
raw表:数据包状态的跟踪和分析
filter表:访问控制、规则匹配
nat表:地址转发

3、iptables规则组成
语法:
iptables(选项)(参数)

数据包访问控制:ACCEPT, DROP(不有信息返回), REJECT(有拒绝信息)
数据包改写:SNAT(来源改写), DNAT(到目标改写)
信息记录:LOG(记入日志)

选项:
-t<表>:指定要操纵的表;
-A:新追加一个规则(在规则链尾);
-I:新追加一个规则(在规则链头);
-D:从规则链中删除条目;
-L:显示规则链中已有的条目;
-F:把iptables现有的规则进行一个清理;
-n: 常与-L连起来使用,目的是hostname一些相关的不让其显示出来
-P:设置一个默认的iptables的规则。

规则链名包括:
INPUT链:处理输入数据包。
OUTPUT链:处理输出数据包。
PORWARD链:处理转发数据包。
PREROUTING链:用于目标地址转换(DNAT)。
POSTOUTING链:用于源地址转换(SNAT)。

具体的一些参数:
-p tcp 表示它的协议有哪些
-s 它的发起源有哪些
-d 它的目标地址
--sport 发起的源端口
--dport 目标的端口
--dports 端口段
-m tcp
state
multiport 在原有规则上的补充

动作包括:
-j ACCEPT:接收数据包。
DROP:丢弃数据包。
REDIRECT:重定向、映射、透明代理。
SNAT:源地址转换。
DNAT:目标地址转换。
LOG:日志记录。

iptables命令选项输入顺序:
iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作

三、iptables实践场景一

1、允许其他机子访问本机
iptables -I INPUT -p tcp --dport 80 -j ACCEPT外面的机子访问我的80端口是允许的
iptables -I INPUT -P tcp --dport 10:22 -j ACCEPT访问10-22端口是允许的
iptables -I INPUT -p icmp -j ACCEPT访问icmp协议所有的端口都是允许的
iptables -L列出所有的规则
iptables -A INPUT -j REJECT在现有规则的后面增加一条规则对默认没有允许的规则进行禁止
iptables -D INPUT -p tcp --dport 80 -j ACCEPT 删除这条80规则
iptables -I INPUT -p tcp --dport 80 -j REJECT 不允许访问我的80规则
Ps:检测目标服务器端口开启情况:nmap -sS -p 0-1000 192.168.5.123

2、访问其他机子和本机
iptables -I INPUT -i lo -j ACCEPT 允许对lo过来的数据包,对本地的网卡设备允许访问
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 对外访问时,如果ftp的状态为established和related时允许访问
Ps:看能否访问22端口:telnet 10.10.188.232 22

3、允许指定机子访问本机
iptables -I INPUT -p tcp -s 10.10.188.233 --dport 80 -j ACCEPT 只允许10.10.188.233通过http请求访问本机,-s指定源主机
Ps:返回请求信息:curl -I http://10.10.188.232/

四、iptables实践场景二

1、主动模式

2、被动模式


Ps:解释
ftp 10.10.188.233 进入ftp模式
passive 关闭被动模式,自动转成主动模式
ls 显示目录/文件

五、iptables实践场景三

iptables -F
iptables -I INPUT -i lo -j ACCEPT
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -s 10.10.188.0/24 -j ACCEPT(允许该IP访问所有)
iptables -A INPUT -s 10.10.140.0/24 -j ACCEPT(自己使用ssh连接电脑的网段)(允许该IP访问所有)
iptabels -A INPUT -p tcp --dport 80 -j ACCEPT(允许所有主机访问80端口)
iptabels -A INPUT -p tcp --dport 1723 -j ACCEPT(允许VPN访问)
iptabels -I INPUT -p icmp -j ACCEPT
接下来拒绝掉所有的未设置的规则
iptables -A INPUT -j REJECT

永久保存:

第一种方法:
/etc/init.d/iptables save
vim /etc/sysconfig/iptables
chkconfig iptables save
第二种方法:
history,复制粘贴,保存成一个shell文件
vim /etc/rc.local 中加入以下代码:wq即可
/bin/sh /opt/iptable_ssh.sh

六、iptables中NAT模式设置

1、iptables规则中SNAT规则设置

步骤:
netstat -luntp | grep 80
ip addr #查看网关服务器上的两张网卡,在这台服务器上做NAT;
vim /etc/sysctl.conf #数据包转发需打开内核的参数;
net.ipv4.ip_forward = 0 改为1;
sysctl -p #让配置全部执行;
sysctl -a | grep ip_forward #查看是生效;
iptables -t nat -A POSTROUTING -s 10.10.177.0/24 -j SNAT --to 10.10.188.232 #制定转发规则;
iptables -t nat -L #查看nat表内容
netstat -rn #在客户端pc上查看当前路由表;
route add 0.0.0.0 gw 10.10.177.232 #在客户端pc上加入路由;
curl http://101.101.101.101/xxxxx/ #进行测试

2、iptables规则中DNAT规则设置

配置:
iptable -t nat -F 规则清零
iptable -t nat -nL 查看规则
转发端口(10.10.188.232:80 <==> 10.10.177.233:80):iptables -t nat -A INPUT PREROUTING -d 10.10.188.232 -p tcp --dport 80 -j DNAT --to 10.10.177.233:80
转发端口(local_allip:80 <==> 10.10.177.233:8081):iptables -t nat -A INPUT PREROUTING -p tcp --dport -j DNAT --to 10.10.177.233:8081

七、iptables防攻击及企业场景应用

1、iptables防止CC攻击

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
安全 Linux 网络安全
百度搜索:蓝易云【linux iptables安全技术与防火墙】
请注意,iptables的具体使用方法和配置选项可能会有所不同,取决于Linux发行版和版本。管理员应该参考相关文档和资源,以了解适用于其特定环境的最佳实践和配置方法。
542 0
百度搜索:蓝易云【linux iptables安全技术与防火墙】
|
存储 Linux 网络安全
如何使用iptables在Linux中进行流量转发?
如何使用iptables在Linux中进行流量转发?
1988 0
如何使用iptables在Linux中进行流量转发?
|
9月前
|
Linux 网络性能优化 网络安全
Linux(openwrt)下iptables+tc工具实现网络流量限速控制(QoS)
通过以上步骤,您可以在Linux(OpenWrt)系统中使用iptables和tc工具实现网络流量限速控制(QoS)。这种方法灵活且功能强大,可以帮助管理员有效管理网络带宽,确保关键业务的网络性能。希望本文能够为您提供有价值的参考。
1419 28
|
机器学习/深度学习 安全 网络协议
Linux防火墙iptables命令管理入门
本文介绍了关于Linux防火墙iptables命令管理入门的教程,涵盖了iptables的基本概念、语法格式、常用参数、基础查询操作以及链和规则管理等内容。
415 73
|
运维 网络协议 安全
Linux安全运维--一篇文章全部搞懂iptables
Linux安全运维--一篇文章全部搞懂iptables
196 1
|
负载均衡 网络协议 Linux
|
域名解析 网络协议 Linux
在Linux中,iptables有哪相关的命令?
在Linux中,iptables有哪相关的命令?
|
网络协议 Linux 应用服务中间件
如何使用Iptables在Linux网关上转发端口
如何使用Iptables在Linux网关上转发端口
297 5
|
Linux 网络安全
在Linux中,iptables和firewalld两种防火墙如何使用?
在Linux中,iptables和firewalld两种防火墙如何使用?
|
Linux 网络安全
在 Alibaba Cloud Linux 上编辑 iptables
本场景是在Alibaba Cloud Linux上编辑 iptables防火墙