Есть ли, любой входит в систему Linux, который говорит, был ли некоторый порт отклонен

<LocationMatch (?i)^/yourcontextroot>
...

(? i) говорит базовому PCRE быть нечувствительным к регистру.

4
задан 22 July 2013 в 08:37
3 ответа

Первый ответ

Нет. По умолчанию нет журнала , показывающего это, но

Отображение текущей конфигурации межсетевого экрана

Посмотрите, как настроен ваш межсетевой экран:

iptables -L

Найдите политику Chain [INPUT | OUTPUT] первый. Если есть что-то еще, кроме ACCEPT , используемый порт, возможно, придется явно 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

Зная, что может заблокировать что-то в ваших правилах

, я использую этот трюк: Последующие вызовы одной и той же функции будут печатать только правила, в которых изменен счетчик. Это может помочь определить, какое правило что-то блокирует.

Отображение текущего состояния сетевых стеков:

Сетевой стек ядра может быть сброшен с помощью

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,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
...

Более подробно: ... используйте -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, 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
...

Где вы можете отслеживать каждую операцию.

8
ответ дан 3 December 2019 в 02:29

Если iptables и SElinux отключены, журналы для чтения, скорее всего, не будут. Я не совсем понимаю, где telnet вписывается в этот сценарий, поскольку он не имеет ничего общего с ssh. Текущая политика SELinux блокирует только ssh-соединения на нестандартных портах ниже 1023, так что это маловероятно.

Сообщение В соединении отказано обычно означает, что на запрошенном порту ничего не прослушивается. Вы можете проверить, прослушивает ли что-то, используя netstat

netstat -tunlp | grep 8022
tcp        0      0 0.0.0.0:8022        0.0.0.0:*           LISTEN      2178/sshd
tcp6       0      0 :::8022             :::*                LISTEN      2178/sshd

. Выше показано, что sshd прослушивает порт 8022 на всех интерфейсах IPv4 и IPv6.

2
ответ дан 3 December 2019 в 02:29

Если у вас установлен LOG в правиле iptables, вы должны получить запись журнала в / var / adm / messages . Вот пример:

# --- Log new connections:
-A INPUT -m state --state NEW -j LOG  --log-prefix "NEW: " --log-level info

Правило, подобное приведенному ниже, в вашем наборе правил IP-таблиц может помочь вам начать:

# Enable port 8022 (ssh) but rate limit it:
-A INPUT -p tcp -m tcp --dport 8022 ! --syn -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8022 --syn -m limit --limit 3/minute -j ACCEPT

Команда sestatus сообщит вам, включен ли selinux:

[root@seadog ~]# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   enforcing
Mode from config file:          enforcing
Policy version:                 24
Policy from config file:        targeted

Сообщения от selinux попадают в / var /log/audit/audit.log по умолчанию.

Команда semanage (находится в rpm: policycoreutils-python) также может быть полезна для перечисления портов, которыми управляет selinux:

root@seadog log]# semanage port -l
SELinux Port Type              Proto    Port Number

afs_bos_port_t                 udp      7007
afs_client_port_t              udp      7001
afs_fs_port_t                  tcp      2040
afs_fs_port_t                  udp      7000, 7005
afs_ka_port_t                  udp      7004
afs_pt_port_t                  udp      7002
afs_vl_port_t                  udp      7003
agentx_port_t                  tcp      705

TCP Wrapper также может быть включен. Проверьте файлы /etc/hosts.allow и /etc/hosts.deny .

2
ответ дан 3 December 2019 в 02:29

Теги

Похожие вопросы