iptables企業面試題集錦

      網友投稿 774 2022-05-30

      詳述iptales工作流程以及規則過濾順序?

      iptables采用數據包過濾機制工作的,他會對請求的數據包的包頭數據進行分析,并根據預先設定的規則決定是否可以進入主機.

      過濾順序是層層過濾,從上到下,從前到后進行過濾.

      只要匹配上就不再往下進行匹配

      iptables有幾個表以及每個表有幾個鏈?

      4個表

      5個鏈

      iptables的幾個表以及每個表對應鏈的作用,對應企業應用場景?

      3個表

      Filter表 真正的防火墻功能

      Nat表 負責數據包改寫,網關共享,端口映射

      Mangle表 路由相關,用的不多

      5個鏈

      INPUT 過濾進入主機的數據包

      FORWARD 負責轉發流經主機的數據包

      OUTPUT 處理從主機發出去的數據包

      PREROUTING 數據包到達防火墻時進行路由判斷之前執行的規則,適合的工作場景是端口映射

      POSTROUTING 數據包離開防火墻時進行路由判斷之后執行的規則,適合的工作場景是共享上網

      請寫出查看iptables當前所有規則的命令。

      iptables -nL

      iptables -nL -t nat

      iptables -nL -t mangle

      禁止來自10.0.0.188 ip地址訪問80端口的請求

      ipttables -A INPUT -p tcp -s 10.0.0.188 --dport 80 -j DROP

      如何使在命令行執行的iptables規則永久生效?

      /etc/init.d/iptables save

      iptables-save >/etc/sysconfig/iptables

      實現把訪問10.0.0.5:9000的請求轉到172.16.1.8:80

      iptables -t nat -A PREROUTING -d 10.0.0.5 -p tcp --dport 9000 -j DNAT --to-destination 172.16.1.8:80

      實現172.16.1.0/24段所有主機通過124.32.54.26外網IP共享上網。

      iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -o eth0 -j SNAT --to-source 10.0.0.8

      描述tcp 3次握手及四次斷開過程?

      三次握手:

      第一次握手:建立連接時,客戶端發送SYN(seq=x)包到服務器,并進入SYN_SENT狀態,等待服務器的確認.SYN:同步序列編號(Synchronize Sequence Numbers)。

      第二次握手:服務器收到SYN包,必須確認客戶的SYN(ack=x+1),同時自己也發送一個SYN包(seq=y),即發送SYN+ACK包,此時服務器進入SYN_RECV狀態;

      第三次握手:客戶端收到SYN+ACK包,向服務器發送ACK(ack=y+1)包,此包發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成三次握手.

      完成三次握手,客戶端與服務器開始傳送數據

      四次揮手:

      tcp/ip協議的四次斷開的過程

      注:揮手動作可由客戶端或服務器任意一方發起。

      第一次揮手:客戶端發送FIN+ACK包(序號為seq=a,確認序號ack=b)給服務端,用來關閉客戶端到服務端的數據傳送,客戶端進入FIN_WAIT_1狀態.

      第二次揮手:服務端收到FIN+ACK包后,發送ACK包給客戶端進行確認,服務端進入CLOSE_WAIT狀態.客戶端收到ACK包后進入FIN_WAIT_2狀態.到這里,關閉一個單向通道.

      第三次揮手:服務端發送FIN+ACK包給客戶端,服務端進入LAST_ACK狀態.

      第四次揮手:客戶端收到FIN+ACK包后,發送ACK包給服務端進行確認,客戶端進入TIME_WAIT狀態,在等待30秒(可修改)后進入CLOSED狀態.服務端收到ACK包后進入CLOSED狀態,關閉另一個單向通道.

      請描述iptables的常見生產應用場景。

      1) 局域網共享上網(適合做企業內部局域網上網網關,以及IDC機房內網的上網網關)(nat POSTROUTING)

      2) 服務器防火墻功能(適合IDC機房具有外網IP的服務器)(主要是filter INPUT的控制)

      3) 把外部IP及端口映射到局域網內部(可以一對一IP映射,也可以針對某一端口映射).也可能是IDC把網站的外網VIP及網站端口映射到負載均衡器上(硬件防火墻).(nat PREROUTING)

      4)辦公路由器+網關功能(zebra路由+iptables過濾及NAT+squid正向透明代理80+ntop/iftop/iptraf流量查看+tc流量控制限速)

      5)郵件的網關

      請描述下面iptables命令的作用

      iptables -N syn-flood

      iptables -A INPUT -i eth0 -syn -j syn-flood

      iptables -A syn-flood -m limit -limit 5000/s -limit-burst 200 -j RETURN

      iptables -A syn-flood -j DROP

      企業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

      寫一個防火墻配置腳本,只允許遠程主機訪問本機的80端口(360面試題)

      iptables -A INPUT --dport 80 -j ACCEPT

      iptables -P INPUT DROP

      請描述如何配置一個linux上網網關?

      route -net 172.16.1.0/24 gw 192.168.1.1

      請描述如何配置一個專業的安全的WEB服務器主機防火墻?

      #首先設置允許ssh連接 iptables -F iptables -X iptables -Z iptables -A INPUT -p tcp -s 10.0.0.0/24 --dport 22 -j ACCEPT iptables -P INPUT DROP iptables -nL #設置允許本機lo通信規則 iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT #修改默認規則 iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT #開啟信任網段 iptables -A INPUT -s 124.43.62.96/27 -p all -j ACCEPT <---辦公室固定IP段 iptables -A INPUT -s 192.168.1.0/24 -p all -j ACCEPT <---IDC機房的內網網段 iptables -A INPUT -s 10.0.0.0/24 -p all -j ACCEPT <---其他機房的內網網段 iptables -A INPUT -s 203.83.24.0/24 -p all -j ACCEPT <---IDC機房的外網網段 iptables -A INPUT -s 201.82.34.0/24 -p all -j ACCEPT <---其他IDC機房的外網網段 #允許業務服務端口對外訪問(允許http服務無條件通過) iptables -A INPUT -p tcp -m multiport --dport 80,443 -j ACCEPT #允許icmp類型協議通過 iptables -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT 提示:如果不想開,就不執行此命令 如果對內開,對外不開就用下面的方式 iptables -A INPUT -p icmp -s 10.0.0.0/24 -m icmp --icmp-type any -j ACCEPT #允許關聯的狀態包通過(web服務不要使用FTP服務) iptables -A INPUT -m stste --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT ##查看最終結果 [root@nginx ~]# iptables -nL Chain INPUT (policy DROP) target prot opt source destination ACCEPT tcp -- 10.0.0.0/24 0.0.0.0/0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT all -- 124.43.62.96/27 0.0.0.0/0 ACCEPT all -- 192.168.1.0/24 0.0.0.0/0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 ACCEPT icmp -- 10.0.0.0/24 0.0.0.0/0 icmp type 255 Chain FORWARD (policy DROP) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED #將iptables臨時配置保存為配置文件的方法 [root@nginx ~]# /etc/init.d/iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      36

      37

      38

      39

      40

      41

      42

      43

      44

      45

      46

      47

      48

      49

      50

      iptables企業面試題集錦

      51

      52

      53

      54

      企業實戰題6:請用至少兩種方法實現!

      寫一個腳本解決DOS攻擊生產案例

      提示:根據web日志或者或者網絡連接數,監控當某個IP并發連接數或者短時內PV達到100,即調用防火墻命令封掉對應的IP,監控頻率每隔3分鐘。防火墻命令為:iptables -A INPUT -s 10.0.1.10 -j DROP。

      腳本一:

      [root@nginx~]# cat drop_ip3.sh #!/bin/bash . /etc/init.d/functions conut=10 #訪問次數的閥值,超過10次就禁止掉這個IP Path=/server/scripts/access.log function ipt(){ #iptables 的設置 awk '{print $1}'$Path|sort|uniq -c|sort -rn >/tmp/tmp.log #統計IP訪問次數 exec < /tmp/tmp.log while read line do ip=echo $line|awk '{print $2}' if [ echo $line|awk '{print $1}' -ge $conut -a iptables -L -n|grep "$ip"|wc -l -lt 1 ] #如果IP訪問次數大于等于10并且在iptables禁止列表里沒有這個IP。 then iptables -I INPUT -s $ip -j DROP #把這個IP寫進iptables禁止列表里 RETVAL=$? if [ $RETVAL -eq 0 ] #如果上一條命令執行沒有出錯 then action "iptables -I INPUT -s $ip -j DROP" /bin/true echo "$ip" >>/tmp/ip_$(date +%F).log #把這個ip寫進一個IP地址黑名單 else action "iptables -I INPUT -s $ip -j DROP" /bin/false fi fi done } function del(){ [ -f /tmp/ip_$(date +%F -d '-1 day').log ]||{ #如果存在這個黑名單日志 echo "log is not exist" exit 1} exec

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      36

      37

      38

      39

      40

      41

      42

      43

      44

      45

      46

      47

      48

      49

      50

      51

      52

      53

      54

      55

      56

      57

      58

      59

      60

      61

      腳本二:

      #!/bin/bash . /etc/init.d/functions iptables_list=$(iptables -n -L) count=10 path=/server/scripts/access.log function ipt(){ awk '{print $1}' $path|sort|uniq -c|sort -rn >/tmp/tmp.log max_line=$(cat /tmp/tmp.log|wc -l) for ((i=1;i<=$max_line;i++)) do ip=$(awk 'NR=='"$i"'{print $2}' /tmp/tmp.log) ip_num=$(awk 'NR=='"$i"'{print $1}' /tmp/tmp.log) iptables_ip_num=$(iptables -nL|grep "$ip"|wc -l) if [ $ip_num -ge $count -a $iptables_ip_num -lt 1 ] then iptables -I INPUT -s $ip -j DROP RETVAL=$? if [ $RETVAL -eq 0 ] then action "iptables -I INPUT -s $ip -j DROP" /bin/true echo "$ip" >>/tmp/ip_$(date +%F).log else action "iptables -I INPUT -s $ip -j DROP" /bin/false fi fi done } function del(){ if [ -f /tmp/ip_$(date +%F -d '-1 day').log ] then cat /tmp/ip_$(date +%F -d '-1 day').log|awk '{print "iptables -D INPUT -s "$1" -j DROP"}'|bash else echo "log is not exist" fi } function main(){ while true do sleep 10 ((flag++)) ipt [ $flag -ge 480 ] && del && flag=0 done } main

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      36

      37

      38

      39

      40

      41

      42

      43

      44

      45

      46

      47

      48

      49

      50

      51

      /var/log/messages日志出現kernel: nf_conntrack: table full, dropping packet.請問是什么原因導致的?如何解決?

      解答:

      有兩種可能,一是打開的端口太少導致不夠用,修改ip_conntrack文件為1024 65535

      還有一個原因是nat連接真的達到了65535了,此時就把NAT映射表保持時間設置短一些.

      以下參數是對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

      NAT TCP/IP

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:怎么解決dede首頁網址自動加上index.html
      下一篇:Redis哨兵集群工作原理及架構部署(八)
      相關文章
      亚洲高清视频在线观看| 久久亚洲精品成人无码| 亚洲av日韩av永久无码电影| 亚洲黄网在线观看| 亚洲AV无码专区电影在线观看| 国产成人精品久久亚洲高清不卡 | 亚洲精品欧美综合四区| 国产99在线|亚洲| 亚洲第一成人在线| 日韩亚洲产在线观看| 亚洲人成在线免费观看| 亚洲制服丝袜中文字幕| 亚洲精品综合在线影院| 精品丝袜国产自在线拍亚洲| 国产精品亚洲片夜色在线 | 亚洲中文字幕久久精品蜜桃 | 亚洲国产精品综合久久网络| 亚洲 无码 在线 专区| 亚洲国产成人VA在线观看| 亚洲日韩精品无码专区网站| 亚洲中文字幕无码爆乳av中文| 亚洲最大av无码网址| 亚洲日韩精品射精日| 亚洲AV无码欧洲AV无码网站| 亚洲激情在线观看| 亚洲最大黄色网站| 亚洲一卡2卡4卡5卡6卡在线99 | 国产亚洲精品免费视频播放| 亚洲无线观看国产精品| 亚洲高清专区日韩精品| 亚洲色图在线观看| 亚洲人成网站在线观看播放动漫| 亚洲娇小性xxxx色| 亚洲第一成年免费网站| 亚洲精品美女久久久久99小说| 亚洲色中文字幕无码AV| 亚洲久本草在线中文字幕| 亚洲AV无码久久久久网站蜜桃| 亚洲乱色熟女一区二区三区蜜臀| 内射无码专区久久亚洲| 最新国产AV无码专区亚洲|