Nmap命令的29个实用范例 https://www.cnblogs.com/MacoLee/articles/5714165.html
===================================
nc指令开启tcp/udp端口及端品扫描
有时候我们的主机是在内网的, 但是为了线上业务功能会开放防火墙端口, 为了让公网上的用户能正常使用服务, 在IT同事配置好后检测他的工作是否完成, 不可能直接把自己的服务给部署上去, 因为还没开发好或没有达到上线标准, 那么我们就可以用nc这个指令在远程服务上模拟运行端口, 然后在本机上探测或扫描端口以达到判断的目的;
1. 在服务端开启udp端口监听:
nc -ulp 25500
2. 在服务端开启tcp端口监听:
nc -l 25500
3. 在客户端探测或发消息到udp端口
nc -vu xxx.xxx.xxx.xxx 25500
4. 在客户端探测或发消息到tcp端口
nc -v xxx.xxx.xxx.xxx 25500
其它nc查关的参数见: nc -help
-i 设置数据报传送时间间隔
-l 以服务器方式运行
-k 重复接收并处理某个端口上的所有连接,必须与-l选项一起使用
-n 使用ip地址表示主机,而不是主机名;使用数字表示端口,而不是服务名称
-p 当nc命令以客户端运行时,强制其使用端口号
-s 设置本地主机发出的数据报的ip地址
-C 将CR和LF俩个字符作为行结束符
-U 使用UNIX本地域协议
-u 使用UDP协议,默认是TCP协议
-w 如果nc客户端在指定的事件内未检测到任何输入,则退出
-X 当nc客户端和代理服务器通信时,该选项指定他们之间的通信协议
-x 指定目标代理服务器的IP地址和端口号
-z 扫描目标机器上的某个或某些服务是否开启
==================================
linux 查看并对外开放端口(防火墙拦截处理) https://www.cnblogs.com/blog-yuesheng521/p/7198829.html
CentOS/Debian/Ubuntu系统iptables防火墙的基本应用规则配置教程 https://www.8dlive.com/post/538.html
iptables 之 REJECT 与 DROP 对比 https://segmentfault.com/a/1190000012637947
nc 监听端口
nc -l 4444
TCP端口扫描 nc -v -z -w2 127.0.0.1 1-100
Connection to 127.0.0.1 22 port [tcp/ssh] succeeded!
nmap 扫描端口
time nmap -p4444 127.0.0.1
使用下面命令发起 TCP 连接请求(nc 或者 telnet):
nc 127.0.0.1 4444
tcpdump 抓包分析
tcpdump -i lo port 4444
=====================================================================
iptables -t nat -L -n --line-number
这里要注意的地方就是手动添加的nat,在重启ufw时,不会自动清理掉,所以每次重启ufw前,你会要手动清除nat映射:
sudo iptables -F -t nat
在/etc/ufw/before.rules(文件顶部)中的过滤器部分之前添加:
*nat :PREROUTING ACCEPT [0:0] -A PREROUTING -p tcp --dport 1724 -j REDIRECT --to-port 1723 COMMIT
然后需要重新加载这些规则;只是禁用和重新启用ufw或运行ufw reload是不够的。最简单的解决方案是重新启动,否则您可以使用中提到的解决方法之一Launchpad bug#881137。
查看iptables生效状态
在中转服务器查看
iptables -t nat -L -v
查看指定规则表状态
iptables -t nat -vnL POSTROUTING
iptables -t nat -vnL PREROUTING
查看连接状态
在目标服务器查看
lsof -i:10010
重启防火墙
ufw reload
-A PREROUTING -i eth0 -p tcp --dport 22 -j DNAT --to-destination [目标服务器:端口]
-A POSTROUTING -s [回传服务器IP192.168.1.0/24] -o eth0 -j MASQUERADE
这个地方要注意的就是必需同时添加PREROUTING和POSTROUTING。
以上配置需要注意:
如果服务器是公网,然后通过公网IP+端口转内网的话,需要注意配置上面的网卡 eth0,可以执行ifconfig查询外网网卡是哪一个然后配置上去
多端口转发
$ iptables -t nat -A PREROUTING -p tcp -m tcp --dport 10000:10010 -j DNAT --to-destination 103.79.78.76
$ iptables -t nat -A POSTROUTING -p tcp -m tcp -d 103.79.78.76 --dport 10000:10010 -j SNAT --to-source 183.60.100.8
国外目标服务器IP: 103.79.78.76
国内中转服务器IP: 183.60.100.8
iptables 端口转发(CentOS)
注意:一来一去
在中转服务器操作
iptables -t nat -A PREROUTING -p tcp --dport [端口号] -j DNAT --to-destination [目标IP]
iptables -t nat -A POSTROUTING -p tcp -d [目标IP] --dport [端口号] -j SNAT --to-source [中转服务器IP]
开启ipv4转发
echo -e "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
同端口转发(tcp+udp)
本地网络连接的端口是10010
$ iptables -t nat -A PREROUTING -p tcp --dport 10010 -j DNAT --to-destination 103.79.78.76
$ iptables -t nat -A PREROUTING -p udp --dport 10010 -j DNAT --to-destination 103.79.78.76
$ iptables -t nat -A POSTROUTING -p tcp -d 103.79.78.76 --dport 10010 -j SNAT --to-source 183.60.100.8
$ iptables -t nat -A POSTROUTING -p udp -d 103.79.78.76 --dport 10010 -j SNAT --to-source 183.60.100.8
不同端口转发
本地网络连接的端口依旧是10010,而不是10086
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 10010 -j DNAT --to-destination 103.79.78.76:10086
iptables -t nat -A POSTROUTING -p tcp -m tcp -d 103.79.78.76 --dport 10086 -j SNAT --to-source 183.60.100.8
多端口转发
本地网络连接的端口是10000-10010
$ iptables -t nat -A PREROUTING -p tcp -m tcp --dport 10000:10010 -j DNAT --to-destination 103.79.78.76
$ iptables -t nat -A POSTROUTING -p tcp -m tcp -d 103.79.78.76 --dport 10000:10010 -j SNAT --to-source 183.60.100.8
保存iptables配置
service iptables save
删除NAT规则
删除第一个规则
iptables -t nat -D POSTROUTING 1
iptables -t nat -D PREROUTING 1
ufw端口转发(Ubuntu)