再识iptables规则

实验机器

测试机:192.168.1.140 CentOS release 6.5

客户端:192.168.1.179 CentOS release 6.5

描述,客户端通过nmap知悉测试机的22、80、443、3306tcp接口有服务。

 

1、基础部分

查看是否开启状态:service iptables status

-nvL 就是查看规则, -F 是临时清除当前规则,重启系统或者重启 iptalbes 服务后还会加载已经保存的规则,所以需要使用 /etc/init.d/iptables save 保存一下规则,通过上边的命令输出我们也可以看到,防火墙规则保存在了/etc/sysconfig/iptables 你可以查看一下这个文件。

 

重点案例:

a、远程SSH登陆,我们要开启22端口.

[root@tp ~]# iptables -A INPUT -s 192.168.1.179 -p tcp --dport 22 -j ACCEPT

[root@tp ~]# iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT (注:这个规则,如果你把OUTPUT 设置成DROP的就要写上这一部,好多人都是望了写这一部规则导致,始终无法SSH)

 

b、允许icmp包通过,也就是允许ping,

[root@tp ~]# iptables -A OUTPUT -p icmp -j ACCEPT (OUTPUT设置成DROP的话)

[root@tp ~]# iptables -A INPUT -s 192.168.1.179 -p icmp -j DROP (INPUT设置成DROP的话)

[root@tp ~]# iptables -A INPUT -s 192.168.1.10/24 -p icmp -j ACCEPT

[root@localhost ~]# iptables -I INPUT -p icmp --icmp-type 8 -j DROP

--icmp-type 这个选项是要跟-p icmp 一起使用的,后面指定类型编号。这个8指的是能在本机ping通其他机器,而其他机器不能ping通本机。

 

c、按序号删除规则

忘记创建规则,直接删除序号

[root@localhost ~]# iptables -nL --line-numbers

Chain INPUT (policy ACCEPT)

num target prot opt source destination

1 ACCEPT tcp -- 192.168.1.179 0.0.0.0/0 tcp dpt:22

2 DROP tcp -- 192.168.1.180 0.0.0.0/0 tcp dpt:80

3 DROP all -- 192.168.1.181 0.0.0.0/0

4 ACCEPT icmp -- 192.168.1.0/24 0.0.0.0/0

Chain FORWARD (policy ACCEPT)

num target prot opt source destination

Chain OUTPUT (policy ACCEPT)

num target prot opt source destination

1 DROP tcp -- 0.0.0.0/0 192.168.1.79 tcp dpt:22

2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0

3 ACCEPT icmp -- 192.168.1.179 0.0.0.0/0

删除某一条规则使用如下命令:

[root@localhost ~]# iptables -D OUTPUT 1

[root@localhost ~]# iptables -nL --line-numbers

 

2、路由功能

a、内核参数相关的配置文件,打开路由转发功能

[root@1-243 ~]# echo "1" > /proc/sys/net/ipv4/ip_forward 开启路由转发(临时生效)

[root@1-243 ~]# cat /etc/sysctl.conf 开启路由转发(永久生效)

 

b、iptables对nat表做IP转发,-s 表示内部需要上网的ip段,-o 选项后跟设备名,即出口网卡,MASQUERADE表示伪装

[root@1-243 ~]# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j MASQUERADE

 

c、实现端口转发功能

将局域网业务代理出去

[root@1-243 ~]iptables -t nat -A PREROUTING -d 120.237.xx.xxx -p tcp -m tcp --dport 82 -j DNAT --to-destination 192.168.1.244:82 

posted @   wang_wei123  阅读(160)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示