Linux中是否有任何日志告诉某个端口是否被拒绝

前端之家收集整理的这篇文章主要介绍了Linux中是否有任何日志告诉某个端口是否被拒绝前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我有防火墙活动或任何其他安全,如SE Linux等.

现在假设用户想要连接到端口21并且Iptables不允许它.

现在,当用户被拒绝时,该消息记录在任何地方,以便我可以看到所使用的部分被阻止或为什么特定端口被阻止.

而不是挖掘每一个设置,找出为什么我没有通过它.

我已经将默认的ssh端口更改为8022,但我得到了连接拒绝.

我检查过telnet并在该端口上监听.我有空的iptables.

是否有任何日志,我可以检查谁拒绝连接

解决方法

第一个答案

没有.默认情况下没有日志,显示了这一点,但是

显示当前的防火墙配置

了解防火墙的配置方式:

iptables -L

首先查找Chain [INPUT | OUTPUT]策略.如果除了ACCEPT之外还有其他任何东西,那么使用过的端口可能需要进行彻底的接受.

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

显示有关端口20和端口21的明确规则,但要注意,您可能必须阅读整个防火墙配置,检查多端口,用户定义链等.如果您根本不了解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个数据包发送给客户端.也许是一个文件,可能是列表…)

跟踪特定接口上的流量

您可以观看界面上发生的事情,而不是使用日志:

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,TS val 1936641509 ecr 0,length 0
09:17:58.299728 IP 192.168.1.1.21 > 192.168.1.35.56485: Flags [S.],seq 980554936,ack 3334605999,TS val 1168768129 ecr 1936641509,length 0
...

更详细:…使用-v或-vv进行完整协议解码

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,TS val 62912431 ecr 0,wscale 6],length 0
09:22:40.047525 IP (tos 0x0,ttl 64,id 0,length 60)
    192.168.1.1.21 > 192.168.24.91.46011: Flags [S.],cksum 0x926d (correct),seq 2283473829,ack 3989081264,TS val 1168838566 ecr 62912431,length 0
09:22:40.817248 IP (tos 0x0,id 31489,length 52)
    192.168.24.91.46011 > 192.168.1.1.21: Flags [.],cksum 0xd6e9 (correct),seq 1,ack 1,win 229,options [nop,TS val 62912442 ecr 1168838566],length 0
09:22:40.817567 IP (tos 0x0,id 31490,length 52)
    192.168.24.91.46011 > 192.168.1.1.21: Flags [F.],cksum 0xd6e3 (correct),TS val 62912447 ecr 1168838566],length 0
...

您可以在哪里遵循每项操作.

原文链接:/linux/397213.html

猜你在找的Linux相关文章