编写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,如需转载请自行联系原作者
目录
相关文章
|
21天前
|
网络协议
iptables配置tcp端口转发
iptables配置tcp端口转发
26 1
|
4月前
|
网络协议 Linux 网络安全
百度搜索:蓝易云【iptables-nvL查看linux系统的所有ip和端口情况教程。】
请注意,使用iptables需要具有管理员权限。如果你没有权限或遇到问题,请以管理员身份运行命令或联系系统管理员寻求帮助。
123 0
|
6月前
|
Linux
centos使用iptables实现nat端口转发
centos使用iptables实现nat端口转发
243 4
|
4月前
|
网络安全 网络架构
公网IP与内网穿透与端口映射区别
公网IP(Public IP) 公网IP是全球互联网上可路由的IP地址,用于标识网络中的设备。这些IP地址是全球唯一的,可以用来访问互联网上的资源。 公网IP通常由互联网服务提供商(ISP)分配给网络中的设备,例如家庭路由器、服务器或计算机。 公网IP是公开可访问的,因此可以用来托管服务器、提供网络服务,或者访问互联网上的资源。
187 5
|
3月前
|
运维 安全 数据库
cmd中使用telnet检测远程的ip及端口是否处于监听状态
cmd中使用telnet检测远程的ip及端口是否处于监听状态
30 1
|
3月前
|
测试技术
Netty4 websocket 开启服务端并设置IP和端口号
Netty4 websocket 开启服务端并设置IP和端口号
62 0
|
3月前
|
Java Linux
linux一键启动和停止多个端口服务脚本:springboot项目打jar包指定多个端口
linux一键启动和停止多个端口服务脚本:springboot项目打jar包指定多个端口
|
4月前
|
安全 Linux 网络安全
Linux【安全 01】云服务器主机安全加固(修改SSHD端口、禁用登陆失败的IP地址、使用密钥登录)
Linux【安全 01】云服务器主机安全加固(修改SSHD端口、禁用登陆失败的IP地址、使用密钥登录)
180 1
|
6月前
|
网络协议
iptables 开放所有端口, 对特殊端口只开放给指定IP
iptables 开放所有端口, 对特殊端口只开放给指定IP
108 1
|
8月前
|
机器学习/深度学习 网络协议 数据安全/隐私保护
远程访问本地jupyter notebook服务 - 无公网IP端口映射
远程访问本地jupyter notebook服务 - 无公网IP端口映射
128 0