搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
繁依Fanyi0
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
git安装与使用
2
超实用的网络安全开源工具
3
【kubernetes】关于k8s集群如何将pod调度到指定node节点(亲和与反亲和等)
4
Spring aop 前置、后置、环绕通知详解
5
STM32 HAL库 自学记录(野火/江科大)_野火的例程能烧进江科大的板子吗
6
使用PostgREST构建PostgreSQL数据库的REST风格API
7
perl太空船操作符_perl飞船操作符
8
C# EF框架(一)配置_c# ef entity配置技巧
9
java获取视频文件的编解码器_java video audio encoder
10
javascript 代码中的“use strict“;是什么意思_use lhtz;代码的意思是:使用 一个叫 的 。
当前位置:
article
> 正文
Iptables_在本机设置iptables规则,要求允许主机222.34.156.33访问本机的tcp端口23,而来
作者:繁依Fanyi0 | 2024-05-27 12:15:55
赞
踩
在本机设置iptables规则,要求允许主机222.34.156.33访问本机的tcp端口23,而来
一 iptables规则原理和组成
1.
iptables
:
将规则组成一个列表,实现绝对详细的访问控制功能。其实就是一个
定义规则
的
工具
,让在内核空间当中的
netfilter(网络过滤器)
读取这些规则。从而实现防火墙功能。
监控路径:
1.内核空间中:从一个网络接口进来,到另一个网络接口去的
2.数据包从内核流入用户空间的
3.数据包从用户空间流出的
4.进入/离开本机的外网接口
5.进入/离开本机的内网接口
2.
netfilter
是Linux操作系统核心层内部的一个数据模块。
3.
Hook point
(5条链)
数据包在
Netfilter
中的挂载点。数据包在
网络层
会经过挂载点,就有机会对数据包做操作处理。
4.规则组成
四张表+五张链+规则
1.Iptables中的4表5链
4张表:filter表(过滤)、nat表(修改源、目标或端口)、mangle表(标记)、raw表(状态跟踪)
5条链:
PRE_ROUTING(路由前)、INPUT(数据包流入口)、
FORWARD(转发关卡)、
OUTPUT(数据包流出口)、POST_ROUTING(路由后)
2.规则
数据包访问控制:ACCEPT、DROP、REJECT、LOG
数据包改写:SNAT、DNAT
二、iptables命令(规则)
1.
iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型]
-P
设置默认策略:
iptables -P INPUT (DROP|ACCEPT)
-F
清空规则链
-L
查看规则链(列出已有规则)(
-n
显示IP数字 默认会反向解析成域名)
-A
在规则链末尾加新规则
-I INPUT/...
num
在规则链头部加入新规则
-D
INPUT/... num
删除某一规则
-s
匹配
来源地址IP/MASK
(!取反)
-d
匹配
目标地址
-i
网卡名
匹配从这块网卡流入的数据
-o 网卡名
匹配从这块网卡流出的数据
-p
匹配
协议
(tcp,udp,icmp)
--dport num
匹配目标端口
--sport num
匹配来源端口
注:
1.没指定规则表默认为filter表
2.不指定规则链则指表内所有规则链
3.匹配会按
照顺序(由上往下)匹配规则,保证
允许
规则在
拒绝
规则之上
4.iptables执行规则策略仅当前生效,永久生效执行
service iptables save
(
/etc/sysconfig/iptables
)
5.
设置默认的策略(iptables -L 命令显示 policy里面的默认策略的"ACCEPT"
一般不要用-P命令行来改 远程登录改后会直接掉线
)
2.
iptables防攻击cc的模块
connlimit模块(用于限制每个IP并发连接数 主要是
限制内网用户的网络使用
)
eg:
iptables -I INPUT -p tcp --syn --dport 80
-m connlimit --connlimit-above 100
-j REJECT
limit模块(限速,控制流量)
eg: iptables -A INPUT -p icmp -m
limit --limit 100/m --limit-burst 10000
-j ACCEPT (前10000个包可正常流量 之后限制每分钟100次包传输)(只有 --limit-burst
相当只允许通过10000个包
只有 --limit 100/m 相当直接限速100/m个包通过)
iptables -A INPUT -p icmp -j DROP(必须有 因为如果默认"ACCEPT" 不加的话超限的数据包也会通过)
三 SNAT与DNAT
SNAT:源地址转换技术,让多个内网用户通过一个外网地址上网,并能正常接受反馈数据。
(MASQUERADE:动态伪装)
DNAT:目的地址转换技术,让外网IP能访问局域网内不同的服务器。
四 流量均衡技术和端口转发技术
流量均衡
技术:
iptables -A PREROUTING -i eth0 -p tcp --dorpt 80 -m state --state NEW -m nth --counter 0 --every 2 --packet() -j DNAT --to-destination 192.168.1.166:80
iptables -A PREROUTING -i eth0 -p tcp --dorpt 80 -m state --state NEW -m nth --counter 0 --every 2 --packet() -j DNAT --to-destination 192.168.1.188:80
端口转发
功能(将原本到某主机端口的数据包转发给其他主机)
firewall-cmd --permanent --zone=<区域> --add-forward-port=port=<源端口>:proto=<协议>:toport=<目标端口>:toaddr=<目标IP>
五 iptables配置场景
场景一:
规则1:对所有地址开放本机的tcp(80,22,1-20)端口
规则2:允许所有地址开放本机基于ICMP协议的数据包
规则3:其他未被允许的端口禁止
主机1(ip:192.168.1.188)(设置iptables防火墙):
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
iptables -I INPUT -p tcp --dport 1:20 -j ACCEPT
iptables -A INPUT -j REJECT
主机二(192.168.1.166)(访问者):
注:mnap是扫描显示目标主机端口指令详见《Linux系统扫描》
注意还没完(问题来了)
主机1(192.168.1.188):
主机不能访问本机回环和其他主机了。。(就是被访问的其他主机回包时被挡了)
问题解决
建立本机回环允许
iptables -I INPUT -i lo -j ACCEPT
当允许已监听状态的数据包进入
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
补充:仅允许主机2(192.168.1.166)访问主机1(192.168.1.188)的http 80
先删除原本允许访问80,再设置仅允许主机2访问
iptables -D INPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp -s 192.168.1.166 --dport 80 -j ACCEPT
场景二:
ftp主动模式和被动模式
区别:
FTP主动模式服务器开放
20端口
主动把数据送到客户端
FTP被动模式服务器开放随机端口被客户端拉取数据
1.iptables对于FTP主动模式允许
ftp准备(以后搭服务器具体再说,不具体说明):
1.主机1(服务器 192.168.1.188)和2(客户端192.168.1.166)安装ftp(
yum install vsftpd
(服务器)和
yum install vsf
(客户端)
)
2.服务器允许ftp主动模式,重启服务器 (默认ftp只允许被动模式
/etc/vsftpd/vsftpd.conf
connect_from_port_20=YES
前添加
port_enable=20
)
客户端(主机2 192.168.1.166):
登录服务器(192.168.1.188)测试(使用
anonymous
匿名用户登录(无密码)
ftp默认连接为被动模式,
passive
命令改为主动模式
)(防火墙未开启)
正式iptables测试:
服务器:(设置防火墙 关于vsftp仅开发21端口)
iptables -F
i
ptables -I INPUT -p tcp --dport 21 -j ACCEPT
iptables -I INPUT -p tcp --dport 22 -j ACCEPT(因使用ssh远程连接)
iptables -I INPUT -p icmp -j ACCEPT
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -j REJECT
客户端:(被动模式被拒,主动模式成功)
2.iptables对于ftp被动模式允许
方法一:
服务器(主机1):
1.vsftp文件配置vim
/etc/vsftpd/vsftpd.conf
(设置被动模式的提供随机端口号范围)
pasv_min_port=50000
pasv_max_port=60000
2.在主动模式iptables配置基础操作
iptables -I INPUT -p tcp --dport 50000:60000 -j ACCEPT
客户端:(主机2)
方法二:(使用连接追踪模块
modprobe nf_conntrack_ftp
加载内核连接追踪模块
)
(永久生效
/etc/sysconfig/iptables-config
加入
IPTABLES_MODULES="nf_conntrack_ftp"
)
服务器(192.168.1.166)(在方法一基础上完成)
iptables -D INPUT -p tcp --dport 50000:60000 -j ACCEPT
modprobe nf_conntrack_ftp
客户端:
声明:
本文内容由网友自发贡献,转载请注明出处:
【wpsshop博客】
推荐阅读
article
iptables
—
包
过滤
(
网络层
)
防火墙
_
iptables
动态
包
过滤
...
一:Linux
防火墙
基础:Linux
防火墙
体系主要工作在
网络层
,针对TCP/IP数据
包
实施
过滤
和限制,属于典型的
包
过滤
...
赞
踩
article
Linux
防火墙
iptables
详解_
linux
iptables
...
防火墙
是一种计算机网络安全设备,用于保护计算机和网络不受未经授权访问。它通过控制网络上进出数据流的流量,来控制通信的访问...
赞
踩
article
iptables
防火墙
(
fi
lter
表)_
防火墙
规则表
fi
...
IP信息包括过滤系统,它实际上由两个组件net
fi
lter
和
iptables
组成。主要工作在网络层,针对IP数据包,体现...
赞
踩
article
IPT
a
bles
防火墙
规则
简单使用!_2.开启
ip
t
a
bles
规则
(终端2)
ip
t
a
bles
-...
IPT
a
bles
是一种常用的Linux防火墙工具,本文介绍了
IPT
a
bles
的结构和
规则
,包括四个表和五个链。同时详细说...
赞
踩
article
Linux
中的
防火墙
netfilter
/
iptables
简介...
防火墙
netfilter
/
iptables
一、
Linux
防火墙
基础1.1 ptables的表、链结构1.1.1 Linu...
赞
踩
article
Linux
防火墙
之
iptables
的基本使用_
target
prot
opt
source
d...
防火墙
作为公网与内网之间的保护屏障,在保障数据的安全性方面起着至关重要的作用。在比较新的系统中,firewalld 防火...
赞
踩
相关标签
网络
防火墙
iptables
linux kernel
内核
linux
服务器
tcp/ip
centos
运维
安全