主机安全(4)iptables实战

本文涉及的产品
云防火墙,500元 1000GB
公网NAT网关,每月750个小时 15CU
简介:

   1,ssh的限制

ssh监控的是22端口,可以通过端口限制来限制ssh登录

[root@mail ~]# netstat -antup|grep ssh
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      3796/sshd


不允许192.168.87.133主机ssh mail

[root@mail ~]# iptables  -A INPUT  -s 192.168.87.133 -p tcp --destination-port 22  -j DROP


只允许192.168.87.0这个网段的ip来ssh主机

(当拒绝和允许冲突的时候,允许优先)

[root@mail ~]# iptables  -A INPUT  -s 192.168.87.0/24 -p tcp --dport 22  -j  ACCEPT

[root@mail ~]# iptables -A INPUT -p tcp --dport 22 -j DROP

 2,禁止代理端口

#iptables -A INPUT -p tcp –dport 3128 -j REJECT


 3,禁止黑客ping我的主机 

只允许192.168.87.0网段的主机ping我的主机

[root@mail ~]# iptables -A INPUT -s 192.168.87.0/24 -p  icmp --icmp-type echo-request -j ACCEPT

[root@mail ~]# iptables -A INPUT  -p  icmp --icmp-type echo-request -j DROP


  4,禁止QQ端口

#iptables -D FORWARD -p udp –dport 8000 -j REJECT


  5,强制访问指定的站点

 要使192.168.52.0/24网络内的计算机(这此计算机的网关应设为192.168.52.10)强制访问指定的站点,在做为防火墙的计算机(192.168.52.10)上应添加以下规则: 1. 打开ip包转发功能  echo 1 > /proc/sys/net/ipv4/ip_forward 


在NAT/防火墙计算机上的NAT表中添加目的地址转换规则: iptables -t nat -I PREROUTING -i eth0 -p tcp –dport 80 -j DNAT –to-destination 202.96.134.130:80

iptables -t nat -I PREROUTING -i eth0 -p udp –dport 80 -j DNAT –to-destination 202.96.134.130:80 


在NAT/防火墙计算机上的NAT表中添加源地址转换规则:  iptables -t nat -I POSTROUTING -o eth1 -p tcp –dport 80 -s 192.168.52.0/24 -j SNAT –to-source 202.96.134.10:20000-30000  


测试:在内部网的任一台计算机上打开浏览器,输入任一非本网络的IP,都将指向IP为202.96.134.130的网站.


   6,发布内部网络服务器

要使因特网上的计算机访问到内部网的FTP服务器、WEB服务器,在做为防火墙的计算机上应添加以下规则: 1. echo 1 > /proc/sys/net/ipv4/ip_forward 2. 发布内部网web服务器
iptables -t nat -I PREROUTING -p tcp -i eth1 -s 202.96.134.0/24 –dport 80 -j DNAT –to-destination 192.168.52.15:80
iptables -t nat -I POSTROUTING -p tcp -i eth0 -s 192.168.52.15 –sport 80 -j SNAT –to-source 202.96.134.10:20000-30000  3. 发布内部网ftp服务器
iptables -t nat -I PREROUTING -p tcp -i eth1 -s 202.96.134.0/24 –dport 21 -j DNAT –to-destination 192.168.52.14:21
iptables -t nat -I POSTROUTING -p tcp -i eth0 -s 192.168.52.14 –sport 21 -j SNAT –to-source 202.96.134.10:40000-50000   4. 注意:内部网的计算机网关要设置为防火墙的ip(192.168.52.1) 5. 测试: 用一台IP地址为202.96.134.0段的计算机虚拟因特网访问,当在其浏览器中访问http://202.96.134.10时,实际应看到的是192.168.52.15的的web服务; 当访问ftp://202.96.134.10时,实际应看到的是192.168.52.14上的的ftp服务

  7,智能DNS

1. echo 1 > /proc/sys/net/ipv4/ip_forward 2. 在NAT服务器上添加以下规则: 在PREROUTING链中添加目的地址转换规则:
iptables -t nat -I PREROUTING -i eth0 -p tcp –dpor 53 -j DNAT –to-destination 202.96.134.130 iptables -t nat -I PREROUTING -i eth0 -p udp –dpor 53 -j DNAT –to-destination 202.96.134.130 在POSTROUTING链中添加源地址转换规则:
iptables -t nat -I POSTROUTING -o eth1 -s 192.168.52.0/24 -p tcp –dpor 53 -j SNAT –to-source 202.96.134.10:40000-50000 iptables -t nat -I POSTROUTING -o eth1 -s 192.168.52.0/24 -p udp –dpor 53 -j SNAT –to-source 202.96.134.10:40000-50000 3. 测试 在内部网任一台计算机上,将DNS设置为任意的外网IP,就可以使用DNS测试工具如nslookup来解析DNS服务器202.96.134.130上的名称.

   8,端口映射

见上节透明代理设置 #iptables -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.62.0/24 –dport 80 -j REDIRECT –to-ports 3128


9,通过NAT上网

典型NAT上网

一般做为NAT的计算机同时也是局域网的网关,假定该机有两块网卡eth0、eth1,eth0连接外网,IP为202.96.134.134;eth1连接局域网,IP为192.168.62.10 1. 先在内核里打开ip转发功能 #echo 1 > /proc/sys/net/ipv4/ip_forward 

使局域网用户能访问internet所要做的nat #iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT –to?202.96.134.134 如果上网的IP是动态IP,则使用以下规则: #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.62.0/24 -j MASQUERADE 如果是通过ADSL上网,且公网IP是动态IP,则使用以下规则: #iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.62.0/24 -j MASQUERADE 


. 使internet用户可以访问局域网内web主机所要做的nat #iptables -t nat -A PREROUTING -p tcp -d 202.96.134.134 –dport 80 -j DNAT –to-destination 192.168.62.10 注:局域网内的客户端需将默认网关、DNS设为防火墙的IP


10,在我们的网络机房实现NAT共享上网

工作环境:上层代理192.168.60.6(4480),只授予教师机(192.168.62.111)使用该代理的权限 目标:不使用squid代理上网,而是使用NAT的方式上网 方法: 

1) 确保停止教师机(192.168.62.111)的squid或其它代理服务 

2) 客户端网关、DNS均指向192.168.62.111,浏览器代理设置为192.168.60.6(4480)。测试在当前情况下能否上网 

3) 在教师机(192.168.62.111)上添加如下iptables规则: #iptables -t nat -A POSTROUTING -p tcp -d 192.168.60.6/32 –dport 4480 -j SNAT –to-source 192.168.62.111:10000-30000 解释:对于目的地为192.168.60.6、目的端口为4480的TCP包,在经过防火墙路由后,将其源地址转换为192.168.62.111,端口转换为10000-30000间的某个端口。 

4) 客户端测试能否上网



本文转自陈仲阳0 51CTO博客,原文链接:http://blog.51cto.com/wolfword/1212320


相关文章
|
NoSQL Java Redis
SpringBoot高级篇Redis之ZSet数据结构使用姿势
Redis的五大数据结构,目前就剩下最后的ZSET,可以简单的理解为带权重的集合;与前面的set最大的区别,就是每个元素可以设置一个score,从而可以实现各种排行榜的功能
1483 0
|
存储 分布式计算 Hadoop
HadoopCPU、内存、存储限制
【7月更文挑战第13天】
712 14
|
10月前
|
文字识别
统一多模态Embedding, 通义实验室开源GME系列模型
随着多媒体应用的迅猛发展,用户产生的数据类型日益多样化,不再局限于文本,还包含大量图像、音频和视频等多模态信息。这为信息检索带来了前所未有的挑战与机遇。传统的信息检索模型多关注单一模态,如仅对文本或图像进行分析和搜索。
1917 6
|
机器学习/深度学习 数据采集
RNN、LSTM、GRU神经网络构建人名分类器(一)
这个文本描述了一个使用RNN(循环神经网络)、LSTM(长短期记忆网络)和GRU(门控循环单元)构建的人名分类器的案例。案例的主要目的是通过输入一个人名来预测它最可能属于哪个国家。这个任务在国际化的公司中很重要,因为可以自动为用户注册时提供相应的国家或地区选项。
|
缓存 网络协议 算法
Http实战之编码、分块传输、范围请求
Http实战之编码、分块传输、范围请求
961 0
Http实战之编码、分块传输、范围请求
|
存储 Prometheus 监控
在微服务架构下基于 Prometheus 构建一体化监控平台的最佳实践
个人认为将来可观测性一定是标准化且由开源驱动的。现在整个软件架构体系变得越来越复杂,我们要监控的对象越来越多,场景也越来越广。封闭的单一厂商很难面面俱到的去实现全局可观测能力,需要社区生态共同参与,用开放、标准的方法来构建云原生可观测性。
915 0
在微服务架构下基于 Prometheus 构建一体化监控平台的最佳实践
|
算法 安全 Java
JDK 11新特性
JDK 11中的新功能 - 新功能和增强功能 以下注释描述了JavaSE11和JDK11中的一些增强功能。这些描述可能包含指向更详细描述增强功能的其他文档的链接。
2305 0
|
数据安全/隐私保护 负载均衡 网络架构
|
C语言 Windows 编译器