iptables面试题

作者: 王亚飞1992 | 来源:发表于2019-05-14 09:32 被阅读0次

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

    工作顺序依次为:raw 、mangle 、nat 、filter规则链间的匹配顺序
    入站数据:PREROUTING 、INPUT
    出站数据:OUTPUT 、POSTROUTING
    转发数据: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共享上网。

    iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j SNAT --to-source 124.32.54.26
    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?

    net.nf_conntrack_max = 25000000
    net.netfilter.nf_conntrack_max = 25000000
    net.netfilter.nf_conntrack_tcp_timeout_established = 180
    net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
    net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
    net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
    

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

    iptables -A INPUT -p tcp --dport 80 -j accept
    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服务器主机防火墙?

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

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

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

    方法一:
    netstat -na|grep EST|awk -F "[ :]+" ‘{print $6}‘|sort|uniq -c >>/tmp/a.log
    while true
    do
    grep EST a.log|awk -F ‘[ :]+‘ ‘{print $6}‘|sort|uniq -c >/tmp/tmp.log
    exec </tmp/tmp.log
    while read line
    do
    ip=`echo $line|awk "{print $2}"`
    count=`echo $line|awk "{print $1}"`
    if [ $count -gt 100 ] && [ `iptables -L -n|grep $ip|wc -l` -lt 1 ]
    then
    iptables -I INPUT -s $ip -j DROP //-I 将其封杀在iptables显示在第一条
    echo "$line is dropped" >>/tmp/dropip.log
    fi
    done
    sleep 180
    done
    
    方法二: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.请问是什么原因导致的?如何解决?

    优化内核参数

    net.nf_conntrack_max = 25000000
    net.netfilter.nf_conntrack_max = 25000000
    net.netfilter.nf_conntrack_tcp_timeout_established = 180
    net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
    net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
    net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120 
    

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

    image.png
    image.png
    ptables -t nat -A POSTROUTING -s 10.0.0.253 -j SNAT -o eth0 --to-source 120.43.61.124
    iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    
    tcpdump ip host 10.0.0.253 and 10.0.0.6 或 tcpdump ip host 10.0.0.253 and 10.0.0.7
    iptables -t nat -A PREROUTING -d 120.43.61.124 -p tcp --dport 80 -j DNAT --to-destination 172.16.1.6:80
    

    相关文章

      网友评论

        本文标题:iptables面试题

        本文链接:https://www.haomeiwen.com/subject/cqsjaqtx.html