iptables系列教程(三)| iptables 实战篇
一个执着于技术的公众号
实战1 服务器禁止ping
iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP
// 禁止任何人ping通本机
“除了上面禁止PING的方法,我们还可以通过修改内核配置实现,如下:
echo net.ipv4.icmp_echo_ignore_all=1 >> /etc/sysctl.conf
sysctl -p
// 如果允许PING,则将 `ignore_all=1`,修改成 `ingore_all=0` 即可
实战2 利用iptables保护公司 web 服务器
2.1 web服务器配置:
1、安装httpd及vsftpd服务
yum -y install httpd
yum -y install vsftpd //安装vsfptd服务目的是为了对比iptables
2、启动httpd及vsftpd服务
systemctl start httpd
systemctl start vsftpd
2.2 客户端验证(未配置iptables)
测试web访问
测试vsftpd
2.3 配置iptables防火墙策略
iptables -A INPUT -i lo -j ACCEPT
// 放行环回口所有数据
iptables -A INPUT -p tcp -m multiport --dports 22,80 -j ACCEP
// 放行 TCP/22,80 端口
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
// 允许已经建立 tcp 连接的包以及该连接相关的包通过
iptables -P INPUT DROP
// 设置filter表INPUT链默认规则。当数据包没有被任何规则匹配时,则按默认规则拒绝所有
2.4 再次验证
测试web访问
测试vsftpd
“测试结果正如我们所料:可以正常访问web服务,但由于iptables规则未放行ftp相关端口,因此无法访问ftp服务。
实战3 利用iptables搭建网关服务器
“
背景
:公司使用双网卡Linux主机作为网关服务器,其中网卡eth0连接局域网,网卡eth1接入Internet。由于公司只注册了一个公网IP地址,要求合理配置网关策略,使局域网内的PC机可以通过共享的方式访问Internet,如下图所示:
具体实验步骤,点击:干货|利用iptables搭建网关服务器
实战4 利用iptables实现端口映射(DNAT)
实验拓扑图
4.1 qll252 web服务器
1、安装httpd服务
[root@qll252 ~]# yum -y install httpd
2、设置http服务首页内容
[root@qll252 ~]# echo 10.10.10.2 > index.html
3、启动httpd服务
[root@qll252 ~]# systemctl start httpd
4、指定qll251为网关
[root@qll252 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
GATEWAY=10.10.10.1
5、重启网卡服务
[root@qll252 ~]# systemctl restart network
4.2 在qll251上做DNAT
1、开启内核转发
echo "net.ipv4.ip_forward = 1" >> etc/sysctl.conf
sysctl -p
2、添加iptables规则
[root@qll252 ~]# iptables -t nat -A PREROUTING -d 20.20.20.20 -p tcp --dport 8000 -j DNAT --to 10.10.10.2:80
3、保存iptables规则
[root@qll251 ~]# service iptables save
4.3 验证
“结果正如我们所料,浏览器上输入
http://20.20.20.20:8000
,即可跳转到qll252
的内容,实现端口映射。
结语
如果您看完本文后有所收获, 还希望您随手点个在看
、或者分享转发
。您的支持是我坚持分享的最大动力!
往期精彩
好文和朋友一起看~
十年磨一剑
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧