Intereting Posts

Правило Iptables допускает только один порт и блокирует другие

У нас есть два приложения, работающие (поверх Linux), и оба они обмениваются данными через порт 42605. Я хотел бы быстро проверить, является ли это единственным портом, который использовался для связи между ними. Я попробовал правило ниже, но, похоже, он не работает. Итак, просто хотел, чтобы это выяснилось, если я делаю это неправильно.

Ниже приведена последовательность команд, которые я запускал

iptables -I INPUT -j REJECT iptables -I INPUT -p tcp --dport 42605 -j ACCEPT iptables -I INPUT -p icmp -j ACCEPT iptables -I OUTPUT -p tcp --dport 42605 -j ACCEPT 

Таким образом, это будет добавлено в обратном порядке, так как я его вставляю.

Я хотел разрешить входящие и исходящие сообщения от и до 42605. Правильно ли это правило выглядит правильно или я делаю это неправильно?

Другой вопрос, будет ли это правильным способом тестирования, или, может быть, я должен использовать команду «netstat», чтобы узнать, какой порт имеет соединение с другим ip?

Мы можем сбросить политику INPUT, чтобы заблокировать все и разрешить только определенные порты

 # allow established sessions to receive traffic iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # allow your application port iptables -I INPUT -p tcp --dport 42605 -j ACCEPT # allow SSH iptables -I INPUT -p tcp --dport 22 -j ACCEPT # Allow Ping iptables -A INPUT -p icmp --icmp-type 0 -m state --state ESTABLISHED,RELATED -j ACCEPT # allow localhost iptables -A INPUT -i lo -j ACCEPT # block everything else iptables -A INPUT -j DROP 

Другой вопрос, будет ли это правильным способом тестирования, или, может быть, я должен использовать команду «netstat», чтобы узнать, какой порт имеет соединение с другим ip?

Да, вы можете проверить netstat -antop | grep app_port netstat -antop | grep app_port и вы также можете использовать strace:

 strace -f -e trace=network -s 10000 PROCESS ARGUMENTS 

Чтобы контролировать существующий процесс с помощью известного pid:

 strace -p $( pgrep application_name) -f -e trace=network -s 10000