编写iptables脚本实现IP地址、端口过滤

简介:

实验案例:公司使用一台运行RHEL5系统的服务器作为网关,分别连接三个网络,其中LAN1为普通员工电脑所在的局域网,LAN2为DNS缓存服务器所在的局域网。eth0通过10M光纤接入Internet。为了有效的管理网络环境及增强内部网络的安全性,需要配置iptables防火墙规则实现IP地址和端口的过滤控制。网络拓扑如下:

需求描述:

入站控制:

1.允许Internet上的主机访问网关服务器的21、25、80、110、143端口。

2.允许IP地址为201.12.13.14的远程主机访问网关22端口,并记录访问日志(每15分钟记录一次)。

3.允许IP地址为192.168.1.5、MAC地址为00:0C:27:30:4E:5D的主机访问网关的22端口。

4.仅允许局域网主机(LAN1:192.168.1.0/24)访问3128端口的代理服务。

转发控制:允许LAN1的主机通过网关访问位于LAN2的DNS的服务器(192.168.2.2)。

其它任何非明确许可的数据包入站访问均予以丢弃;数据包出站访问均允许。

编写的iptables脚本如下:


  
  
  1. #!/bin/bash  
  2. #This is the firewall configuration  
  3.  
  4. iptables -t nat -F   
  5. iptables -F  
  6.  
  7. iptables -P INPUT DROP 
  8. iptables -P FORWARD DROP 
  9.  
  10. iptables -A INPUT -p tcp -m multiport --dport 21,25,80,110,143 -j ACCEPT  
  11.  
  12. iptables -A INPUT -p tcp --dport 22 -s 201.12.13.14 -j ACCEPT  
  13.  
  14. iptables -A INPUT -p tcp --dport 22 -m limit --limit 4/hour -j LOG  
  15.  
  16. iptables -A INPUT -p tcp --dport 22 -s 192.168.1.5 -m mac --mac-source 00:0C:27:30:4E:5D -j ACCEPT  
  17.  
  18. iptables -A INPUT -p tcp --dport 3128 -s 192.168.1.0/24 -j ACCEPT  
  19.  
  20. iptables -A FORWARD -p udp --dport 53 -s 192.168.1.0/24 -j ACCEPT  
  21. iptables -A FORWARD -p udp --sport 53 -d 192.168.1.0/24 -j ACCEPT  
  22.    
  23.  

最后还要开启Linux网关服务器的路由转发功能:

# vi /etc/sysctl.conf

net . ipv4 .ip_forward = 1










本文转自 kk5234 51CTO博客,原文链接:http://blog.51cto.com/kk5234/397029,如需转载请自行联系原作者
目录
相关文章
|
26天前
|
网络安全 Python
Python编程--目标IP地址段主机指定端口状态扫描
Python编程--目标IP地址段主机指定端口状态扫描
40 1
|
17天前
|
运维 安全 网络协议
Python 网络编程:端口检测与IP解析
本文介绍了使用Python进行网络编程的两个重要技能:检查端口状态和根据IP地址解析主机名。通过`socket`库实现端口扫描和主机名解析的功能,并提供了详细的示例代码。文章最后还展示了如何整合这两部分代码,实现一个简单的命令行端口扫描器,适用于网络故障排查和安全审计。
20 0
|
3月前
|
网络协议 Linux 网络安全
在Linux中,如何将本地 80 端口的请求转发到 8080 端口?当前主机 IP 为10.0.0.104。
在Linux中,如何将本地 80 端口的请求转发到 8080 端口?当前主机 IP 为10.0.0.104。
|
4月前
|
负载均衡 网络协议 Linux
|
3月前
|
网络协议 Linux 应用服务中间件
如何使用Iptables在Linux网关上转发端口
如何使用Iptables在Linux网关上转发端口
97 5
|
4月前
|
弹性计算 运维 数据安全/隐私保护
云服务器 ECS产品使用问题之如何更改服务器的IP地址或端口号
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
3月前
|
JSON 安全 网络协议
【Azure Policy】添加策略用于审计Azure 网络安全组(NSG)规则 -- 只能特定的IP地址允许3389/22端口访问
为了确保Azure虚拟机资源的安全管理,只有指定IP地址才能通过RDP/SSH远程访问。解决方案包括使用Azure Policy服务扫描所有网络安全组(NSG),检查入站规则中的3389和22端口,并验证源地址是否在允许的IP列表中。不符合条件的NSG规则将被标记为非合规。通过编写特定的Policy Rule并定义允许的IP地址参数,实现集中管控和合规性检查。
|
3月前
|
网络协议 Ubuntu Linux
在Linux中,如何将本地80端口的请求转发到8080端口,当前主机IP为192.168.16.1,其中本地网卡eth0。
在Linux中,如何将本地80端口的请求转发到8080端口,当前主机IP为192.168.16.1,其中本地网卡eth0。
|
3月前
|
网络协议 Linux
在Linux中,如何使用iptables 写⼀条规则?把来源IP为192.168.1.101访问本机80端口的包直接拒绝.
在Linux中,如何使用iptables 写⼀条规则?把来源IP为192.168.1.101访问本机80端口的包直接拒绝.
|
3月前
|
网络协议
【qt】TCP的监听 (设置服务器IP地址和端口号)
【qt】TCP的监听 (设置服务器IP地址和端口号)
169 0