firewall-tester — NMAP-based bash script for testing target server or a set of servers for an unnesessary opened ports.
In normal mode it takes target server name (or server IP) and a list of allowed ports. The result is a list of opened ports, excluding the allowed. This allows you to know if target server containts unnesessary opened ports.
- grep
- sed
- nmap
On each launch script checks dependencies.
- download
- run
./install.sh
- enjoy
For batch mode please check:
- your
/etc/firewall-tester/server.list
- your cron if you want to use batch mode (installer creates a file
/etc/cron.daily/firewall-tester
) - your logrotate
-h — displays short help.
-s <server name or IP> — sets target server. Default is 127.0.0.1.
-a "port1, port2, ..., portN" — sets a list of allowed to be open ports for target server. Default is "22, 80, 443".
-l /path/to/log.file — sets custom log file. Default is /var/log/firewall.scan.log.
-b — sets batch mode. In this mode list of target servers and their allowed ports is taken from /etc/firewall-tester/server.list. Default is OFF.
There are long options also similar to short:
--help — equal to -h
--server — equal to -s
--allowed — equal to -a
--logfile — equal to -l
--batch — equal to -b
server1 <tab> port1, port2, ..., portN
server2 <tab> port1, port2, ..., portN
...
serverN <tab> port1, port2, ..., portN
You can comment lines with #
Hooks are located in /usr/share/firewall-tester
.
There are two files:
Hook is called when script detects at least one unnesessary opened port on target server. It receives three parameters:
- server name (or server IP)
- list of allowed ports
- list of opened ports
Hook is called when script detects at lease one unnesessary opened port on al least one target server. It receives nothing.
firewall-tester — bash-скрипт, использующий NMAP, для проверки открытых портов на стороннем сервере или по списку серверов.
В обычном режиме принимает на вход имя сервера (или его IP-адрес) и список разрешённых для сервера портов. На выходе будет выдан список открытых портов сервера с исключением разрешённых. Таким образом вы можете сразу узнать, что на целевом сервере есть несанкционированно открытые порты.
- grep
- sed
- nmap
При каждом запуске скрипт перепроверит наличие нужных утилит.
- скачиваем
- запускаем
./install.sh
- радуемся
Для корректной работы batch режима проверьте:
- ваш
/etc/firewall-tester/server.list
- ваш крон (инсталлятор создаёт
/etc/cron.daily/firewall-tester
) - ваш logrotate
-h — показывает help.
-s <server name or IP> — указывает целевой сервер. По-умолчанию 127.0.0.1.
-a "port1, port2, ..., portN" — указывает список разрешённых портов для целевого сервера. По-умолчанию "22, 80, 443".
-l /path/to/log.file — указывает другой лог-файл. По-умолчанию /var/log/firewall.scan.log.
-b — запускает batch режим. В этом режиме список целевых серверов и их разрешённых портов берётся из /etc/firewall-tester/server.list. По-умолчанию выключен.
There are long options also similar to short:
--help — то же, что и -h
--server — то же, что и -s
--allowed — то же, что и -a
--logfile — то же, что и -l
--batch — то же, что и -b
server1 <tab> port1, port2, ..., portN
server2 <tab> port1, port2, ..., portN
...
serverN <tab> port1, port2, ..., portN
строки можно комментировать с #
Хуки расположены в /usr/share/firewall-tester
.
В этой папке всего два файла:
Хук вызывается6 когда скрипт обнаруживает хотя бы один открытый порт на целевом сервере, который не входит в список разрешённых. Он получает на вход три параметра:
- имя сервера (или его ip)
- список разрешённых для этого сервера портов
- список открытых портов, за исключением разрешённых
Хук вызывается, когда скрипт обнаруживает хотябы один открытый порт хотя бы на одном целевом сервере. На вход он не получает ничего.