iptables端口复用和端口转发

iptables端口复用和端口转发,第1张

端口复用参考: Linux利用iptables做端口复用-Linux实验室 (wanyunshuju.com)

端口转发参考: 使用 iptables 进行端口转发 - 51nb - 博客园 (cnblogs.com)

一台虚拟机:192.168.2.2(私网ip),8080端口tomcat服务

一台虚拟机:192.168.3.6(公网ip),192.168.2.10(私网ip),80端口apache服务

1、虚拟机(192.168.3.6)开启转发功能

vim /etc/sysctl.conf

输入 net.ipv4.ip_forward=1

使用命令 sysctl -p 使配置生效

2、添加iptables规则实现端口转发

iptables -t nat -I PREROUTING -i ens36 -d 192.168.3.6 -p tcp --dport 9090 -j DNAT --to-destination 192.168.2.2:8080

3、转发成功

1、设置iptables规则

iptables -t nat -I PREROUTING -i ens36 -s 192.168.3.3 -d 192.168.3.6 -p tcp --dport 80 -j REDIRECT --to-port 22

2、攻击机192.168.3.3使用XShell对192.168.3.6的80端口进行SSH连接

1、虚拟机(192.168.3.6)开启转发功能

vim /etc/sysctl.conf

输入 net.ipv4.ip_forward=1

使用命令 sysctl -p 使配置生效

2、设置iptables规则,当且仅当192.168.3.3访问时,192.168.3.6的80端口的http服务变成192.168.2.2的22端口(即iptables流量转发)

iptables -t nat -I PREROUTING -i ens36 -s 192.168.3.3 -d 192.168.3.6 -p tcp --dport 80 -j DNAT --to-destination 192.168.2.2:22

3、验证

1)当192.168.3.3进行访问时:

2)当其他ip机器访问时

利用TCP协议做遥控开关,这样攻击方在需要访问http服务的时候可以及时切换

1、创建端口复用链子

iptables -t nat -N MyChains

2、创建端口复用规则,访问192.168.3.6:80的流量转发至22端口

iptables -t nat -A MyChains -p tcp -j REDIRECT --to-port 22 (如果要转发到其他ip机器,注意需要开启转发功能)

3、设置开启开关,当接收到一个含有"nihao123coming"的TCP包,则将来源IP添加到MyChains的列表中

iptables -A INPUT -p tcp -m string --string "nihao123coming" --algo bm -m recent --set --name MyChains --rsource -j ACCEPT

4、设置关闭开关,如果接收到含有"nihao123leaving"的TCP包,则将来源IP从MyChains的列表中删除

iptables -A INPUT -p tcp -m string --string "nihao123leaving" --algo bm -m recent --name MyChains --remove -j ACCEPT

5、当发现SYN包的来源IP处于MyChains的列表中,将跳转到MyChains链进行处理,有效时间为3600秒

iptables -t nat -A PREROUTING -p tcp --dport 80 --syn -m recent --rcheck --seconds 3600 --name MyChains --rsource -j MyChains

4、开启复用,开启后发送开启命令的机器到目标80端口的流量将被转发到目标20端口

验证:

5、关闭复用

验证:

初学的话 要安装图形化界面 初学使用Ubuntu

如果已经熟悉的话 建议使用centos(Redhat系列) 服务器常用版本 系统稳定 功能齐全 软件兼容性好 结构清晰

推荐使用centos

最差的一个理由 鸟哥linux私房菜就是以centos教学的 自己也好上手跟着书本学习

第一题:

1.在linux系统中,用户账户类型分为三种,一种是超级用户,比如root,它可以在系统里做任意做想要做的 *** 作,二是普通用户,普通用户只能做自己权限范围内允许的事情,同时大部分命令是不可以在系统执行的。

2.创建一个新用户useradd (用户名) 更改所属用户名的密码passwd (用户名) 然后进入修改。

第二题:

1.插上u盘,使用df查看u盘到底是哪个,(假设u盘是/dev/sdc1 ),然后他挂载u盘,并将数据拷贝到自己的家目录下,用命令实现就是这样的。

df -H (以MB单位显示磁盘容量和查看磁盘信息)

//在mnt下创建个文件夹

mkdir /mnt/usb1

// 依照上面的假设挂载磁盘,不支持ntfs。

mount /dev/sdc1 /mnt/usb1

// 进入u盘,并找到数据拷贝,假设要拷贝的数据是ext.info ,拷贝到自己的家目录下。

cd /mnt/usb1

mv ext.info /home/(用户名)

//如果是文件夹里面有好多数据,假设这个文件夹叫ext

cd /mnt/usb1

cd ext

mv * /home/(用户名)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/6078810.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-14
下一篇 2023-03-14

发表评论

登录后才能评论

评论列表(0条)

保存