iptables 的语法
|
|
操作选项: -L 显示所指定链所有规则,如果没有指定链,所有链将被显示, 前面-n表示以数字的形式显示,不解析 -F 清空所指定链所有规则,如果没有指定链,所有链将被清空 -S 详细打印出指定表中所有的规则 -D 删除链中某条规则,可以接序号,也可以接具体的规则动作 -P 设置指定链的默认策略 -A 向指定链中追加一条规则 -I 向指定链中插入一条规则,默认插入到第一条, 链名后接序号表示插入到第几条 -R 替换所指定链中的一条规则,链名后接序号 -N 自定义链 -X 删除自定义链
- 注意: 所有链名必须大写,所有动作必须大写
匹配条件:
|
|
动作:
|
|
-
iptables使用的表有哪些?请简要的描述iptables使用的表以及它们所支持的链。
-
NAT 表
-
Mangle 表
-
Filter 表(默认)
-
Raw 表
Nat表 : Nat表主要用于网络地址转换。根据表中的每一条规则修改网络包的IP地址。流中的包仅遍历一遍Nat表。例如,如果一个通过某个接口的包被修饰(修改了IP地址),该流中其余的包将不再遍历这个表。通常不建议在这个表中进行过滤,由NAT表支持的链称为PREROUTING 链,POSTROUTING 链和OUTPUT 链。
Filter表 : Filter表是iptables中使用的默认表,它用来过滤网络包。如果没有定义任何规则,Filter表则被当作默认的表,并且基于它来过滤。支持的链有INPUT 链,OUTPUT 链,FORWARD 链。
Mangle表 : 数据包标记。
Raw表 : 数据追踪。它支持PREROUTING 链和OUTPUT 链。
-
-
检查 iptables 当前定义的规则
iptables -L
-
请在 iptables 中添加一条规则,接受所有从一个信任的 IP 地址(例如:192.168.0.7)过来的包。
1
iptables -A INPUT -s 192.168.0.7 -j ACCEPT
-
怎样在iptables中添加规则以ACCEPT,REJECT,DENY和DROP ssh的服务?
ssh运行在22端口,那也是ssh的默认端口,我们可以在iptables中添加规则来ACCEPT ssh的tcp包(在22号端口上)。
1
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
REJECT ssh服务(22号端口)的tcp包。
1
iptables -A INPUT -p tcp --dport 22 -j REJECT
DENY ssh 服务
1
iptables -A INPUT -p tcp --dport 22 -j DENY
DROP ssh 服务
1
iptables -A INPUT -p tcp --dport 22 -j DROP
-
有一台电脑的本地IP地址是192.168.0.6。你需要封锁在21、22、23和80号端口上的连接,你会怎么做?
multiport 选项
1
iptables -A INPUT -s 192.168.0.6 -p tcp -m multiport --dport 21,22,23,80 -j DROP
-
请写出查看iptables当前所有规则的命令
1
iptables -L -n --line-numbers
-
如何使在命令行执行的iptables规则永久生效?
1 2 3
/etc/init.d/iptables save iptables save >>/etc/sysconfig/iptables
-
实现把访问10.0.0.3:80的请求转到172.16.1.17:80
1
iptables -t nat -A PREROUTING -d 10.0.0.3 -p tcp --dport 80 -j DNAT --to-destination 172.16.1.17:80
-
实现172.16.1.0/24段所有主机通过124.32.54.26外网IP共享上网
1
iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j SNAT --to-source 124.32.54.26
-
描述tcp 3次握手及四次断开过程?
-
详细描述HTTP工作原理?
1 ) 地址解析
2)封装HTTP请求数据包
3)封装成TCP包,建立TCP连接(TCP的三次握手)
4)客户机发送请求命令
5)服务器响应
6)服务器关闭TCP连接
-
请描述iptables的常见生产应用场景。
端口映射
-
写一个防火墙配置脚本,只允许远程主机访问本机的80端口
1 2
iptables -A INPUT -p tcp --dport 80 -j accept iptables -A INPUT -p tcp -j DROP
-
如何配置一个 linux 上网网关?
1
route add -net 192.168.0.0/24 gw 10.0.0.253 dev eth1
-
请描述如何配置一个专业的安全的WEB服务器主机防火墙?
先将默认的INPUT链和Forward链关闭,只开放允许进入的端口
1 2 3
iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP iptables -P INPUT DROP
企业应用场景:
1) 把访问外网IP及端口的请求映射到内网某个服务器及端口(企业内部);
2) 硬件防火墙,把访问LVS/nginx外网VIP及80端口的请求映射到IDC 负载均衡服务器内部IP及端口上(IDC机房的操作) ;