iptables面试题

1、详述iptales工作流程以及规则过滤顺序?


 
 
  1. 工作顺序依次为:raw 、mangle 、nat 、 filter规则链间的匹配顺序
  2. 入站数据:PREROUTING 、INPUT
  3. 出站数据:OUTPUT 、POSTROUTING
  4. 转发数据:PREROUTING 、FORWARD POSTROUTING

image.png

2、iptables有几个表以及每个表有几个链?

Iptables有四表五链

3、请写出查看iptables当前所有规则的命令。

iptables -L –nv

 
 

4、禁止来自10.0.0.188 ip地址访问80端口的请求

iptables -A INPUT -p tcp --dport 80 -j DROP

 
 

5、如何使在命令行执行的iptables规则永久生效?

iptables save >>/etc/sysconfig/iptables

 
 

6、实现把访问10.0.0.3:80的请求转到172.16.1.17:80

tables -t nat -A PREROUTING -d 10.0.0.3 -p tcp --dport 80 -j DNAT --to-destination 172.16.1.6:80

 
 

7、实现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
  2. iptables -t nat -A POSTROUTING -s 172.16 .1 .0/ 24 -j MASQUERADE

8、描述tcp 3次握手及四次断开过程?

9、请描述iptables的常见生产应用场景。

端口映射
企业应用场景:
1) 把访问外网IP及端口的请求映射到内网某个服务器及端口(企业内部);
2) 硬件防火墙,把访问LVS/nginx外网VIP及80端口的请求映射到IDC 负载均衡服务器内部IP及端口上(IDC机房的操作) ;
局域网共享上网
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j SNAT --to-source 120.43.61.124

10、企业WEB应用较大并发场景如何优化iptables?


 
 
  1. net.nf_conntrack_max = 25000000
  2. net.netfilter.nf_conntrack_max = 25000000
  3. net.netfilter.nf_conntrack_tcp_timeout_established = 180
  4. net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
  5. net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
  6. net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120

11、写一个防火墙配置脚本,只允许远程主机访问本机的80端口(奇虎360面试题)


 
 
  1. iptables -A INPUT -p tcp --dport 80 -j accept
  2. iptables -A INPUT -p tcp -j DROP

12、请描述如何配置一个linux上网网关?

route add -net 192.168.0.0/24 gw 10.0.0.253 dev eth1

 
 

13、请描述如何配置一个专业的安全的WEB服务器主机防火墙?


 
 
  1. 先将默认的INPUT链和Forward链关闭,只开放允许进入的端口
  2. iptables -P OUTPUT ACCEPT
  3. iptables -P FORWARD DROP
  4. iptables -P INPUT DROP

14、企业实战题6:请用至少两种方法实现!写一个脚本解决DOS攻击生产案例

提示:根据web日志或者或者网络连接数,监控当某个IP并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP,监控频率每隔3分钟。防火墙命令为:iptables -A INPUT -s 10.0.1.10 -j DROP。


 
 
  1. 方法一:
  2. netstat -na|grep EST|awk -F "[ :]+" ‘{ print $6}‘|sort|uniq -c >>/tmp/a.log
  3. while true
  4. do
  5. grep EST a.log|awk -F ‘[ :]+‘ ‘{ print $6}‘|sort|uniq -c >/tmp/tmp.log
  6. exec </tmp/tmp.log
  7. while read line
  8. do
  9. ip=` echo $line|awk "{print $2}"`
  10. count=` echo $line|awk "{print $1}"`
  11. if [ $count -gt 100 ] && [ `iptables -L -n|grep $ip|wc -l` -lt 1 ]
  12. then
  13. iptables -I INPUT -s $ip -j DROP //-I 将其封杀在iptables显示在第一条
  14. echo "$line is dropped" >>/tmp/dropip.log
  15. fi
  16. done
  17. sleep 180
  18. done
  19. 方法二:netstat -na|grep EST|awk -F "[ :]+" ‘{ print $6}‘|awk ‘{S[ $1]++}END{ for(i in S) print i,S[i]}‘

15、/var/log/messages日志出现kernel: nf_conntrack: table full, dropping packet.请问是什么原因导致的?如何解决?

优化内核参数


 
 
  1. net.nf_conntrack_max = 25000000
  2. net.netfilter.nf_conntrack_max = 25000000
  3. net.netfilter.nf_conntrack_tcp_timeout_established = 180
  4. net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
  5. net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
  6. net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120

17、压轴上机实战iptables考试题

image.png

 

image.png


 
 
  1. ptables -t nat -A POSTROUTING -s 10 .0 .0 .253 -j SNAT -o eth0 --to-source 120 .43 .61 .124
  2. iptables -A INPUT -p tcp --dport 80 -j ACCEPT
  3. tcpdump ip host 10 .0 .0 .253 and 10 .0 .0 .6tcpdump ip host 10 .0 .0 .253 and 10 .0 .0 .7
  4. iptables -t nat -A PREROUTING -d 120 .43 .61 .124 -p tcp --dport 80 -j DNAT --to-destination 172 .16 .1 .6 :80

小礼物走一走,来简书关注我



作者:王亚飞1992
链接:https://www.jianshu.com/p/8ef3bb10d791
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值