1

Интересно, можно ли сделать скрипт, который добавляет правило в iptables по запросу с другого ПК? Я имею в виду, что скрипт "знает", что делать, но адрес для правила исходит из запроса.

И как вы думаете, это должно быть реализовано? Полагаю, это должен быть Деймон или демонизированный сценарий ...

1 ответ1

1

Вероятно, проще всего реализовать это, используя серверный язык сценариев, такой как PHP или Perl. Однако, поскольку ввод в скрипт контролируется пользователем, вы должны быть очень осторожны при использовании его в качестве ввода.

Пример ниже (я не веб-кодер, поэтому с этим кодом могут возникнуть серьезные проблемы с безопасностью, используйте его с особой осторожностью):

#!/usr/bin/perl -wT

# Send HTTP content-type
print "Content-type:text/html\r\n\r\n";

my $requester_ip;
# Do some sanity checking on the IP send by the webserver
if ( $ENV{'REMOTE_ADDR'} =~ m/(\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b)/ ) {
  my $requester_ip = $1;
} else {
  print "An error occurred\n";
  exit;
}

# Open SMTP for the requester
`sudo iptables -A INPUT -d $requester_ip -p tcp --dport 25 -j ACCEPT` 

Если вы хотите использовать это, убедитесь, что пользователь вашего веб-сервера может запускать sudo только с этой конкретной командой. Опять же, этот код предоставляется в надежде, что он будет полезен, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ ИЛИ ФИТНЕСА ДЛЯ ОСОБЕННОЙ ЦЕЛИ.

Было бы еще лучше сделать это в два этапа:

  • Попросите веб-сервер записать IP-адрес в файл
  • Пусть отдельный скрипт запускается из crontab, чтобы получить IP из файла и запустить iptables .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .