Linux

Linux中是否有任何日誌可以告訴您是否某個埠已被拒絕

  • June 5, 2017

假設我啟動了防火牆或任何其他安全性,如 SE linux 等。

現在假設使用者想要連接到埠21並且 Iptables 不允許它。

現在,當使用者被拒絕時,該消息會記錄在任何位置,以便我可以看到所使用的特定埠被阻止或特定埠被阻止的原因。

而不是探勘每一個設置來找出為什麼我沒有通過它。

我已將預設 ssh 埠更改為,8022但連接被拒絕。

我已經檢查了 telnet 及其在該埠上的偵聽。我有空的 iptables。

是否有任何日誌可以檢查誰拒絕連接

第一個答案

沒有。預設沒有日誌,顯示這個,但是

顯示目前防火牆配置

看看你的防火牆是如何配置的:

iptables -L

先找Chain [INPUT|OUTPUT] policy。如果有任何其他的東西ACCEPT,使用過的埠可能必須明確地ACCEPT起泡……

iptables -L INPUT | grep `port=2[01]`

要顯示有關埠 20 和埠 21 的明確規則,但請注意,您可能必須閱讀整個防火牆配置,檢查有關multiportuser-defined chains等。如果您根本不知道,這可能會變得困難iptables

一個空的打開的防火牆配置可能如下所示:

iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

看:

man iptables

知道什麼可能會阻止您的規則中的某些內容

我使用這個技巧:

touch /tmp/tmp_iptable_stat.txt
getChanges() {
   pushd /tmp >/dev/null
   for table in $(</proc/self/net/ip_tables_names);do
       echo $RANDOM: - $table
       iptables -t $table -nvxL --line-number
     done |
       diff -u tmp_iptable_stat.txt - |
       tee >(patch -p0) |
       sed '
           s/^+[0-9]*: - /TABLE /p;
           s/^+//p;
           d'
   popd >/dev/null
}

比第一次呼叫getChanges將轉儲所有表和計數器。隨後對同一函式的呼叫將僅列印修改計數器的規則。這可以幫助找出哪個規則阻止了某些東西。

顯示目前網路堆棧狀態:

核心網路堆棧可以由

netstat -tan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN
tcp        0   2364 192.168.1.1:21          192.168.1.35:49179      ESTABLISHED

對於 TCP 套接字或

netstat -uan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      

用於 UDP 套接字。

由於我的FTP伺服器使用TCP套接字,我可以看到目前在我的伺服器和主機之間建立了一個交換**…35,(伺服器目前有 2364 個數據包要發送給客戶端。可能是一個文件,也可能是一個列表…)

跟踪特定介面上的流量

而不是使用log,您可以觀看界面上發生的事情:

tcpdump -i ethX

這將轉儲有關流量的有用資訊ethX,但預設情況下,為了更易於閱讀,此工具將嘗試解析每個 IP 的名稱。因此,事件本身與終端上的轉儲之間可能存在一些延遲。所以:

tcpdump -ani ethX

不會嘗試解析 (opt -n) IP 和服務名稱,並且會顯示所有 ( -a) 數據包通過介面。

更精細:

tcpdump -ani ethX port 21 or port 20
09:17:58.264453 IP 192.168.1.1.21 > 192.168.24.91.45951: Flags [S.], seq 3593971599, ack 1942867644, win 5792, options [mss 1460,sackOK,TS val 1168768120 ecr 62841986,nop,wscale 7], length 0
09:17:58.299693 IP 192.168.1.35.56485 > 192.168.1.1.21: Flags [S], seq 3334605998, win 5840, options [mss 1368,sackOK,TS val 1936641509 ecr 0,nop,wscale 7], length 0
09:17:58.299728 IP 192.168.1.1.21 > 192.168.1.35.56485: Flags [S.], seq 980554936, ack 3334605999, win 5792, options [mss 1460,sackOK,TS val 1168768129 ecr 1936641509,nop,wscale 7], length 0
...

更詳細:... use -v or -vv for full protocol decode

tcpdump -anvvi ethX port 21 or port 20
tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes
09:22:40.047486 IP (tos 0x0, ttl 62, id 31488, offset 0, flags [DF], proto TCP (6), length 60)
   192.168.24.91.46011 > 192.168.1.1.21: Flags [S], cksum 0x5985 (correct), seq 3989081263, win 14600, options [mss 1368,sackOK,TS val 62912431 ecr 0,nop,wscale 6], length 0
09:22:40.047525 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 60)
   192.168.1.1.21 > 192.168.24.91.46011: Flags [S.], cksum 0x926d (correct), seq 2283473829, ack 3989081264, win 5792, options [mss 1460,sackOK,TS val 1168838566 ecr 62912431,nop,wscale 7], length 0
09:22:40.817248 IP (tos 0x0, ttl 62, id 31489, offset 0, flags [DF], proto TCP (6), length 52)
   192.168.24.91.46011 > 192.168.1.1.21: Flags [.], cksum 0xd6e9 (correct), seq 1, ack 1, win 229, options [nop,nop,TS val 62912442 ecr 1168838566], length 0
09:22:40.817567 IP (tos 0x0, ttl 62, id 31490, offset 0, flags [DF], proto TCP (6), length 52)
   192.168.24.91.46011 > 192.168.1.1.21: Flags [F.], cksum 0xd6e3 (correct), seq 1, ack 1, win 229, options [nop,nop,TS val 62912447 ecr 1168838566], length 0
...

您可以在哪裡跟踪每個操作。

引用自:https://serverfault.com/questions/525197