首页 > 代码库 > 再识iptables规则
再识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
再识iptables规则