水一枪

我对防火墙这块的认知是比较低的, 之前一直没怎么去用

最多的要么就是

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT

,这还是以前刚出来接触linux的时候redhat6跑的,后来改革了,好吧,centos7

firewall-cmd --zone=public --add-port=6379/tcp --permanent && firewall-cmd --reload

直到我与区块链搭上了肩膀才用上了iptables端口转发

上面水了一段,正文开始

需求

在生产环境上面所在运行的数据库做一个远程连接,前提是数据库不能重启(由于原先只有一个root用户而且限定是本地使用的,不能添加额外连接用户)

那么这个时候就可以用iptables做一个小小的映射,其实说的那么玄乎,无非就是nat规则...

把本地的3306端口映射出去变成63306,外面连接的语句是

mysql -uroot -p'password' -h xxxxx -P 63306

注:当访问63306的时候,会自动去请求3306,然后返回数据,当然,63306是不受监听的哈,那些用过kali或者渗透的朋友是不是应该想到了什么呢...

什么?没有?那当我没说过。

实现

先扔三条code去抠一下

echo 1 >/proc/sys/net/ipv4/ip_forward
sysctl -w net.ipv4.conf.eth0.route_localnet=1
sysctl -w net.ipv4.conf.default.route_localnet=1

不用说也知道这是干嘛的了,【允许数据包转发】

nat规则

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 63306 -j DNAT --to-destination 127.0.0.1:3306
iptables -t nat -A POSTROUTING -p tcp -m tcp --dport 63306 -j SNAT --to-source 127.0.0.1

注:这是允许所有外来的IP访问,慎用。

限制单个来源IP

iptables -t nat -R PREROUTING 4 -s 192.168.40.154 -p tcp -m tcp --dport 63306 -j DNAT --to-destination 127.0.0.1:3306
iptables -t nat -R POSTROUTING 4 -s 192.168.40.154 -p tcp -m tcp --dport 63306 -j SNAT --to-source 127.0.0.1

注:这是只给外网的192.168.40.154连接, 其他的都连不上,

修改规则(4代表编号, --line-number可查看对应编号, -s 指定来源IP)。

查看nat规则

iptables -L -t nat --line-number

删除nat规则

iptables -t nat -D POSTROUTING 1

笔记

-A 追加规则-->iptables -A INPUT
-D 删除规则-->iptables -D INPUT 1(编号)
-R 修改规则-->iptables -R INPUT 1 -s 192.168.12.0 -j DROP 取代现行规则,顺序不变(1是位置)
-I 插入规则-->iptables -I INPUT 1 --dport 80 -j ACCEPT 插入一条规则,原本位置上的规则将会往后移动一个顺位
-L 查看规则-->iptables -L INPUT 列出规则链中的所有规则
-N 新的规则-->iptables -N allowed 定义新的规则

最新文章

  1. Docker搭建便捷的开发者环境
  2. Oracle中获取当前时间半小时前的时间
  3. mininet之miniedit可视化操作
  4. 【转载】Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
  5. Part 52 Attributes in C#
  6. ash, bash, ksh, csh, zsh
  7. css透明度的设置
  8. shell自动化巡检
  9. 一天就学会Android开发四大组件
  10. ruby中如何直接编译运行C代码
  11. Yii2表单提交(带文件上传)
  12. 使用原生 python 造轮子搭建博客
  13. 手写SpringMVC实现
  14. css繼承
  15. [转] Mongoose简要API
  16. Alpha冲刺10
  17. Java设计模式之八 ----- 责任链模式和命令模式
  18. Linux内核分析——Linux内核学习总结
  19. Ubuntu17安装Jenkins
  20. redis调优 -- 内存碎片

热门文章

  1. matplotlib实战
  2. Android平台签名证书(.keystore)生成指南
  3. idea的一些常用快捷键
  4. 通过pathinfo返回扩展名
  5. 【linux学习笔记四】文件搜索命令
  6. __proto__和prototype的一些理解
  7. 使用 RedisDesktopManager 连接redis所需步骤
  8. mysql left join 右表数据不唯一的情况解决方法
  9. 在ensp上配置通过Stelnet登录系统
  10. qt qml 类型之Keys