2015-12-12 3 views
-1

Я нашел скрипт, который позволяет открывать или закрывать любой порт и сохранять его в iptables. Проблема, с которой я столкнулась, заключается в том, что она выдает синтаксическую ошибку после того, как я говорю ей закрыть, но прежде чем я смогу присвоить ей номер порта. Проблема прямо перед первым.Сценарий оболочки Open/close port

#!/bin/bash 

PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin 

clear 

echo -e "############################nnnPresent ports opened on this machine are 

$(iptables -nL INPUT | grep ACCEPT | grep dpt) 

nCompleted listing...nnn#########################" 

read -p "To open port enter open, to close etner close) " OPT1 

if [[ "$OPT1" == open ]] 

then 

read -p "Please enter your desired port number to open: " PORT1 

if [[ "$PORT1" =~ [0-9]{1,6} ]] 

then 

iptables -D INPUT $(iptables -nL INPUT --line-numbers | grep "$PORT1" | grep REJECT | awk '{print $1}') 

iptables -A INPUT -m tcp -p tcp --dport "$PORT1" -j ACCEPT && { service iptables save;service iptables restart; echo -e "Ports opend through iptables are n$(iptables -nL INPUT | grep ACCEPT | grep dpt)"; } 

else 

echo "Please enter a valid port(0-65000)" 

fi 

elif [[ "$OPT1" == close ]] 

then 

read -p "Please enter your desired port number to close: " PORT1 

     if [[ "$PORT1" =~ [0-9]{1,6} ]] 

     then 

iptables -D INPUT $(iptables -nL INPUT --line-numbers | grep "$PORT1" | grep ACCEPT | awk '{print $1}') 

     iptables -A INPUT -m tcp -p tcp --dport "$PORT1" -j REJECT && { service iptables save;service iptables restart; echo -e "Ports closed through iptables are n$(iptables -nL INPUT | grep REJECT | grep dpt)"; } 

     else 

     echo "Please enter a valid port(0-65000)" 

     fi 

else 

echo "Please enter only open or close..! Exiting script now";exit 1 

fi 

ответ

0

Я не вижу ошибок в скрипте. Можете ли вы вставить ошибку, которую вы получаете? Ниже

[корень @ Kali ~] # ./ip.sh

порты ###################### nnnPresent открыт на этой машине

nCompleted список ... NNN #########################

чтобы открыть порт ввода открытой, чтобы закрыть etner близко) закрыть

Пожалуйста, введите нужный номер порта для закрытия: 23

IPTables: Bad правило (делает правило соответствия существует в этой цепи?).

Iptables: правила брандмауэра Сохранение в/и т.д./sysconfig/Iptables: [OK]

Перенаправление в/бен/рестарта systemctl iptables.service

порты закрыты через IPTables являются nREJECT ТСР - 0.0.0.0/0 0.0.0.0/0 tcp dpt: 23 reject-with icmp-port-unreachable

+0

Я понял, когда я написал код, я забыл добавить последние три строки, и он заканчивался abroubtly. Код работает так, как написано здесь. Думаю, это то, чего я не могу спать. –

Смежные вопросы