1.基础
1)基本参数
参数 | 功能 |
---|---|
-t | 指定表名称 |
-n | 不作解析 |
-L | 列出指定表中的策略 |
-A | 增加策略 |
–dport | 端口 |
-s | 数据来源 |
-j | 动作 |
ACCEPT | 允许 |
REJECT | 拒绝 |
DPOR | 丢弃 |
-N | 增加链 |
-E | 修改链名称 |
-X | 删除链 |
-D | 删除指定策略 |
-I | 插入 |
-R | 修改策略 |
-p | 网络协议 |
-P | 修改默认策略 |
2)iptables火墙策略执行生效规则
<1>策略即改即生效
<2>iptables -nL 是从上到下短路规则查看权限,匹配了就直接通过,后面就不看了
2.基本命令操作与实验
1)基本命令演示
systemctl stop firewalld
systemctl start iptables.service
iptables -nL ##列出指定表中的策略,并对来源地址进行反向解析
iptables -t filter -L ##查看filter表中的策略,不做解析
iptables -t filter -nL ##查看filter表中的策略,并做解析
service iptables save ##保存当前策略
iptable -F #刷掉filter表中的所有策略,当没有用-t指定表名称时,默认为表filter
iptables -A INPUT -i lo -j ACCEPT #允许lo
iptables -A INPUT -p tcp --dport 22 -j ACCEPT ##允许访问22端口
iptables -A INPUT -s 172.25.254.250 -j ACCEPT ##允许250主机访问本机所有端口
iptables -A INPUT -j REJECT ##拒绝所有主机的数据来源
iptables -N redhat ##增加链redhat
iptables -E redhat westos ##改变链名称
iptables -X westos ##删除westos链
iptables -D INPUT 1 ##删除INPUT链中的第一条策略
iptables -I INPUT 2 -p tcp --dport 80 -j REJECT ##插入策略到INPUT中的第二条(不写插入位置。默认第一条)
iptables -R INPUT 4 -p tcp --dport 80 -j ACCEPT ##修改第四条策略
iptables -P INPUT DROP ##把INPUT表中的默认策略改为drop
2)利用以上命令进行实验
实验一:利用iptables火墙策略实现火墙地址伪装功能
双网卡(172.25.6.106/1.1.1.106)主机作为服务端,相关配置如下:
iptables -F ##刷掉原有的火墙策略
保证能ping通250主机
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.106
iptables -nL -t nat
–to-source: POSTROUTING:可以在这里定义进行源NAT的规 则,系统在决定了数据包的路由以后在执行该链中的规则。
客户端(1.1.1.206)测试:
实验二:利用iptables火墙策略实现转接功能
在服务端添加新策略:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 22 -j DNAT --to-dest 1.1.1.221 ##添加转接功能
–to-dest:
PREROUTING:(外部访问内部)可以在这里定义进行 目的NAT的规则,因为路由器进行路由时只检查数据包的目的ip地址,所以为了使数据包得以正确路由,我们必须在路由之前就进行目的NAT
测试:在172.25.6.250上做
3.火墙策略优化
iptables -F ##刷掉所有策略
之前连接过本机、与正在连接的机子向他们开放所有服务
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
新连接的主机如是通过回环接口,即可允许
iptables -A INPUT -i lo -m state --state NEW -j ACCEPT
新连接的机子若是通过22/tcp 接口进入的被允许
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
新连接的机子若是通过80/tcp 接口进入的被允许
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
新连接的机子若是通过443/tcp 接口进入的被允许
iptables -A INPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT
新连接的机子若是通过53/tcp 接口进入的被允许
iptables -A INPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT
通过其他接口进入的新主机都将被禁止
iptables -A INPUT -m state --state NEW -j REJECT
常用端口号对应的服务或协议
139、455——SMB
860——ISCSI
22——SSH
80——HTTP
443——HTTPS
53——DNS