前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iptables系列教程(三)| iptables 实战篇

iptables系列教程(三)| iptables 实战篇

原创
作者头像
开源Linux
修改2020-05-18 14:26:19
2.6K0
修改2020-05-18 14:26:19
举报
文章被收录于专栏:开源Linux

iptables 实战篇

实战1 服务器禁止ping

代码语言:txt
复制
iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP
// 禁止任何人ping通本机

除了上面禁止PING的方法,我们还可以通过修改内核配置实现,如下:

代码语言:txt
复制
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服务器配置:

代码语言:txt
复制
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防火墙策略

代码语言:txt
复制
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服务器
代码语言:txt
复制
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

代码语言:txt
复制
1、开启内核转发
echo "net.ipv4.ip_forward = 1" >> etc/sysctl.conf 
sysctl -p

2、添加iptables规则
[root@qll252 ~]# iptables -t nat -A PREROUTING -d 10.43.5.166 -p tcp --dport 8000 -j DNAT --to 10.43.187.252:80

3、保存iptables规则
[root@qll251 ~]# service iptables save

4.3 验证

结果正如我们所料,浏览器上输入http://20.20.20.20:8000,即可跳转到qll252的内容,实现端口映射。

结语

公众号『开源Linux』,专注分享Linux/Unix相关内容,包括Linux运维、Linux系统开发、网络编程、以及虚拟化和云计算等技术干货。后台回复『学习』,送你一套学习Linux的系列书籍,期待与你相遇。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • iptables 实战篇
  • 实战1 服务器禁止ping
  • 实战2 利用iptables保护公司 web 服务器
    • 2.1 web服务器配置:
      • 2.2 客户端验证(未配置iptables)
        • 2.3 配置iptables防火墙策略
          • 2.4 再次验证
            • 实验拓扑图
            • 4.1 qll252 web服务器
        • 实战3 利用iptables搭建网关服务器
        • 实战4 利用iptables实现端口映射(DNAT)
          • 4.2 在qll251上做DNAT
            • 4.3 验证
            • 结语
            相关产品与服务
            云服务器
            云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档