IPTABLES使用总结(内网模拟银行网络)
iptables中有以下三种类型的表:
FILTER表,默认的表,包含以下三种内建链:
- INPUT链,发给本地sockets的包
- FORWARD链,经由系统发送的包
- OUTPUT链,本地生成并发出的包
NAT表,当一个包试图创建新连接时将访问该表,该表包含以下内建链:
- PREROUTING链,更改刚接收到的包
- OUTPUT链,更改本地产生的包
- POSTROUTING链,更改即将发出的包
MANGLE表,用于包的更改:
- PREROUTING链:更改传入连接
- OUTPUT链:更改本地产生的包
- INPUT链:更改传入的包
- POSTROUTING链:更改即将发出的包
- FORWARD链:更改经过的包
本次业务需求,我们仅需要操作FILTER表。
使用iptables思路
由于每条tcp连接对于每个主机来说,都需要两个端口。对服务端来说,需要监听端口,即inputPort,也需要对客户端进行响应的出端口,即 outputPort。对客户端来说,也需要两个端口,一个去连接服务端的outputPort,一个接受服务端返回数据的inputPort。
限制端口,可以在客户端进行限制,也可以在服务端进行限制。一般都是客户端去连接服务端的某个指定端口,所有只有服务端的inputPort是固定的,客户端的inputPort、outputPort和服务端的outPort都是随机端口,每次重新连接后,都会改变。故我们仅需用iptables对服务端的input端口进行限制即可。
iptables 具体配置详解
说明:
-A:参数就看成是添加一条 INPUT 的规则
-p:指定是什么协议 我们常用的tcp 协议,当然也有udp,例如53端口的DNS
--dport:就是目标端口,当数据从外部进入服务器为目标端口
--sport:数据从服务器出去,则为数据源端口
-j:就是指定是 ACCEPT接收或者DROP不接收
仅对input进行拦截。
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
清理原有所有iptables规则,并查看结果
sudo iptables -F && sudo iptables -X && sudo iptables -Z && sudo iptables -S
结果如下:
-P INPUT ACCEPT
-P FORWARD DROP
-P OUTPUT ACCEPT
允许回环流量
Loopback接口,也被称为lo ,就是一台电脑用来进行网络连接到自身。 iptables -A INPUT -i lo -j ACCEPT
允许下面端口被别人连接
因为output没有做限制,所以只需要限制input即可。iptables -A INPUT -p tcp -m multiport --dports 22,80,443,8080,8081,31020:31024,31031:31036,2375 -j ACCEPT
允许自己去连接别人的以下端口
因为对input做了限制,所以当自己去连接别家服务器的端口时,自己作为客户端,input端口需要开通,且该端口时随机的,故只能对数据源端口进行区分iptables -A INPUT -p tcp -m multiport --sports 22,31410,8080,31020:31024,31031:31036 -m conntrack --ctstate ESTABLISHED -j ACCEPT
允许docker容器间的通信
首先先查看本机docker使用的网段,再进行设置,此处docker网段为172.17.0.1/24,若不设置该规则,masami将无法访问mysql数据库iptables -A INPUT -s 172.17.0.0/24 -d 172.17.0.0/24 -j ACCEPT
下面是目前使用的iptables规则
目前仅对kafka和baas进行了限制,未对k8s的slave和master进行限制
10.0.0.59 master1
10.0.0.69 slave1
10.0.0.71/192.168.9.28 baas1
10.0.0.70 master2
10.0.0.91 slave2
10.0.0.92/192.168.9.51 baas2
10.0.0.83 master3
10.0.0.95 slave3
10.0.0.74/192.168.9.32 baas3
10.0.0.55 master4
10.0.0.49 slave4
10.0.0.42/192.168.9.30 baas4
10.0.0.56 master5
10.0.0.61 slave5
10.0.0.73/192.168.9.29 baas5
10.0.0.65/192.168.9.45 kafka1
10.0.0.77/192.168.9.46 kafka2
清理原有规则
iptables -F && iptables -X && iptables -Z && reboot
kafka1
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
允许下面端口被别人连接
iptables -A INPUT -p tcp -m multiport --dports 22,80,443,2375 -j ACCEPT
允许回环流量
iptables -A INPUT -i lo -j ACCEPT
允许下面端口被特定ip连接
iptables -A INPUT -p tcp -s 10.0.0.69,10.0.0.91,10.0.0.95,10.0.0.49,10.0.0.61,10.0.0.65,10.0.0.77 -m multiport --dports 9092:9094,2181:2183,2888:2890,3888:3890 -j ACCEPT
允许自己去连接别人的以下端口
iptables -A INPUT -p tcp -m multiport --sports 22,9092:9094,2181:2183,2888:2890,3888:3890 -m conntrack --ctstate ESTABLISHED -j ACCEPT
允许docker0和本地网卡流量
iptables -A INPUT -s 172.18.0.0/24 -d 10.0.0.65 -j ACCEPT
允许docker0内部流量
iptables -A INPUT -s 172.18.0.0/24 -d 172.18.0.0/24 -j ACCEPT
kafka2
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
允许回环流量
iptables -A INPUT -i lo -j ACCEPT
允许下面端口被别人连接
iptables -A INPUT -p tcp -m multiport --dports 22,80,443,2375 -j ACCEPT
允许下面端口被特定ip连接
iptables -A INPUT -p tcp -s 10.0.0.69,10.0.0.91,10.0.0.95,10.0.0.49,10.0.0.61,10.0.0.65,10.0.0.77 -m multiport --dports 9092:9094,2181:2183,2888:2890,3888:3890 -j ACCEPT
允许自己去连接别人的以下端口
iptables -A INPUT -p tcp -m multiport --sports 22,9092:9094,2181:2183,2888:2890,3888:3890 -m conntrack --ctstate ESTABLISHED -j ACCEPT
允许docker0和本地网卡流量
iptables -A INPUT -s 172.18.0.0/24 -d 10.0.0.77 -j ACCEPT
允许docker0内部流量
iptables -A INPUT -s 172.18.0.0/24 -d 172.18.0.0/24 -j ACCEPT
baas5
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
允许回环流量
iptables -A INPUT -i lo -j ACCEPT
允许下面端口被别人连接
iptables -A INPUT -p tcp -m multiport --dports 22,80,443,8080,8081,31020:31024,31031:31036,2375 -j ACCEPT
允许自己去连接别人的以下端口
iptables -A INPUT -p tcp -m multiport --sports 22,31410,8080,31020:31024,31031:31036 -m conntrack --ctstate ESTABLISHED -j ACCEPT
允许masami和mysql通讯
iptables -A INPUT -s 172.17.0.0/24 -d 172.17.0.0/24 -j ACCEPT
baas4
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
允许回环流量
iptables -A INPUT -i lo -j ACCEPT
允许下面端口被别人连接
iptables -A INPUT -p tcp -m multiport --dports 22,80,443,8080,8081,31020:31024,31031:31036,2375 -j ACCEPT
允许自己去连接别人的以下端口
iptables -A INPUT -p tcp -m multiport --sports 22,31410,8080,31020:31024,31031:31036 -m conntrack --ctstate ESTABLISHED -j ACCEPT
允许masami和mysql通讯
iptables -A INPUT -s 172.17.0.0/24 -d 172.17.0.0/24 -j ACCEPT
baas3
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
允许回环流量
iptables -A INPUT -i lo -j ACCEPT
允许下面端口被别人连接
iptables -A INPUT -p tcp -m multiport --dports 22,80,443,8080,8081,31020:31024,31031:31036,2375 -j ACCEPT
允许自己去连接别人的以下端口
iptables -A INPUT -p tcp -m multiport --sports 22,31410,8080,31020:31024,31031:31036 -m conntrack --ctstate ESTABLISHED -j ACCEPT
允许masami和mysql通讯
iptables -A INPUT -s 172.17.0.0/24 -d 172.17.0.0/24 -j ACCEPT
baas2
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
允许回环流量
iptables -A INPUT -i lo -j ACCEPT
允许下面端口被别人连接
iptables -A INPUT -p tcp -m multiport --dports 22,80,443,8080,8081,31020:31024,31031:31036,2375 -j ACCEPT
允许自己去连接别人的以下端口
iptables -A INPUT -p tcp -m multiport --sports 22,31410,8080,31020:31024,31031:31036 -m conntrack --ctstate ESTABLISHED -j ACCEPT
允许masami和mysql通讯
iptables -A INPUT -s 172.17.0.0/24 -d 172.17.0.0/24 -j ACCEPT
baas1
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
允许回环流量
iptables -A INPUT -i lo -j ACCEPT
允许下面端口被别人连接
iptables -A INPUT -p tcp -m multiport --dports 22,80,443,8080,8081,31020:31024,31031:31036,2375 -j ACCEPT
允许自己去连接别人的以下端口
iptables -A INPUT -p tcp -m multiport --sports 22,443,31410,8080,38254,31020:31024,31031:31036 -m conntrack --ctstate ESTABLISHED -j ACCEPT
允许masami和mysql通讯
iptables -A INPUT -s 172.17.0.0/24 -d 172.17.0.0/24 -j ACCEPT
转载请注明出处:https://www.cnblogs.com/zooqkl
IPTABLES使用总结(内网模拟银行网络)的更多相关文章
- iptables 实现centos内网机器访问外网
环境:一台带外网和内网的机器,另一台只有内网,默认不能上网.两台机器都是centos系统带外网机器的外网ip为 123.221.20.11, 内网ip为 192.168.15.100内网机器的内网ip ...
- linux服务器外网内网(双网络)搭建
一共有2台服务器,分别用a,b表示.a双网卡,即有外网也有内网.b只有内网环境.a,b的内网是通过交换机组建.至于外网怎么搭建我就不说了.关键说一说内网是怎么组建的. 如果你对linux不熟悉,对网卡 ...
- 如何通过iptables代理访问内网
场景 A机器能够联通内网机器,B机器能够联通A机器,但是访问不到内网机器,场景是希望通过A机器能够转发直接联通局域网内的其它机器 机器IP 内网为172.0.0.x/24 A机器为172.0.0.10 ...
- iptables 端口转发--内网实现上网
iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 118.x.x.xiptables -A FORWARD -s ...
- CS内网横向移动 模拟渗透实操 超详细
@Webkio 前言: 最近在跟朋友搞一些项目玩,所以最近没怎么更新内容接下来我将在虚拟中模拟内网多层靶场,进行内网渗透实验,超详细,适合小白.本文仅供网安学习,不可利用于未授权渗透工作中,否则后果自 ...
- 公司内网Debian Server上的openvpnserver搭建并通过SSH隧道转发到广域网
因为戴维营公司在长沙的学员,研发人员和北京的研发人员须要协同研发,故须要让北京的兄弟们增加到长沙办公室的内网,訪问版本号 管理server,于是採用在内网server上搭建一个OpenVPN服务,并把 ...
- centos 内网ip访问mysql数据库
参考博文: CentOS 配置mysql允许远程登录 Centos6.5 双网卡配置一个上外网一个接局域网 这个博文仅作参考 公司租用景安的服务器,给景安沟通配置内网. [root@bogon ng ...
- 内网服务器离线编译安装mysql5.7并调优
目录 内网服务器离线编译安装mysql5.7并调优 前言 关于MySQL 一.MySQL安装篇 部署环境 前期准备工具 挂载系统ISO镜像,配置yum源 二.MySQL调优篇 1.对MySQL进行安全 ...
- iptables之NAT代理-内网访问外网
1.前言 本文使用NAT功能:内网服务器,想上网又不想被攻击. 工作原理:内网主机向公网发送数据包时,由于目的主机跟源主机不在同一网段,所以数据包暂时发往内网默认网关处理,而本网段的主机对此数据包不做 ...
随机推荐
- mysql 的mgr集群
mysql 的mgr集群 http://wubx.net/mgr%E7%9B%91%E6%8E%A7%E5%8F%8A%E4%BC%98%E5%8C%96%E7%82%B9/ MGR调优参数因为基本复 ...
- 移动iptv安装三方软件
1.思路: 分为硬件和软件. a.硬件是ttl直接上串口,弄得比较复杂,且容易损坏盒子,先不考虑 b.软件:抓包获取iptv的请求数据,将移动光猫的iptv出口接到交换机上,电脑和盒子接入到同一个交 ...
- C# 字典Dictionary
Dictionary<TKey, TValue> 泛型类提供了从一组键到一组值的映射.通过键来检索值的速度是非常快的,接近于 O(1),这是因为 Dictionary<TKey, T ...
- 编程填空:第i位替换
编程填空:第i位替换 OpenJudge 总时间限制:1000ms 内存限制:1024kB 描述:写出函数中缺失的部分,使得函数返回值为一个整数,该整数的第i位和m的第i位相同,其他位和n相同. 请使 ...
- Docker容器中安装vim
我在docker中安装了jexus.使用vim编辑default配置文件的时候提示 vim: command not found 原因是docker中没有安装vim命令 如果你直接输入 apt-ge ...
- ShowWindow 隐藏、显示、最大化、最小化窗口
#include <Windows.h> #include <tchar.h> int WINAPI _tWinMain(HINSTANCE hInstance, HINSTA ...
- hibernate连接数据库和使用
hibernate.cfg.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibe ...
- linux ip命令和ifconfig命令
From https://blog.csdn.net/freeking101/article/details/68939059
- program与module
program,各方面与module都类似,其中声明的变量在program中都可见, 生命周期也是static类型的, program的结束,也是需要等待其中的所有initial块都执行结束. 与mo ...
- ASP.NET MVC案例教程(四)
ASP.NET MVC案例教程(四) 前言 通过前几篇文章,我们已经能比较自如的使用ASP.NET MVC来呈现页面和数据了.但是,有一个大问题没有解决:如何处理表单数据.例如,我们将要实现的公告发布 ...