У меня есть монитор состояния, который я хочу настроить с помощью nmap, чтобы отображать все мои внешние открытые порты. Естественно на ум пришел nmap.
К сожалению, я использую межсетевой экран iptables и разрешаю весь трафик на интерфейсе обратной связи. Я хочу этого и мне это нужно, потому что я могу заниматься веб-разработкой, например, на apache. Я не хочу, чтобы этот порт был постоянно открыт для внешнего мира (иногда я это делаю), и есть несколько служб, для которых я это делаю, поэтому просто настроить их на прослушивание через интерфейс обратной связи может быть слишком громоздко.
Я надеялся, что есть способ сканировать nmap на том же компьютере, не задействуя другой компьютер. Обычно это не проблема, но этот компьютер является портативным и может работать в разных средах.
Я думал примерно так:
nmap -e wlan0 -PN localhost
Но это не работает (показывает, что все закрыто, когда одно открыто), и выполнение занимает слишком много времени.
Вот мои текущие правила iptables. Ничего особенного, и я также открыт для предложений, связанных с iptables.
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Я понял это манипулированием iptables.
Видимо iptables влияет на nmap, но у меня было правило:
iptables -A INPUT -i lo -j ACCEPT
Которая принимала все петлевые соединения.
Для внешних подключений можно решить следующую проблему:
iptables -D INPUT -i lo -j ACCEPT
nmap localhost
iptables -I INPUT 1 -i lo -j ACCEPT