Различия



Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.

Ссылка на это сравнение

wiki:ustanovka_programm_avtozapusk_programm_pravila_iptables [2013/04/07 11:08]
zyxmon создано
wiki:ustanovka_programm_avtozapusk_programm_pravila_iptables [2013/10/10 18:32] (текущий)
c61 [Правила файрвола iptables]
Строка 29: Строка 29:
   ...   ...
  
-3. ''opkg update'' - команда скачивает список пакетов, которые могут быть установлены. Рекомендуется всегда выполнять эту команду перед установкой пакета и при других "манипуляциях" с пакетами.+3. ''opkg update'' - команда скачивает и обновляет список пакетов, которые могут быть установлены. Рекомендуется всегда выполнять эту команду перед установкой пакета и при других "манипуляциях" с пакетами.
  
-4. ''opkg upgrade'' - команда обновляет установленные пакеты, если есть обновления.+4. ''opkg upgrade'' - команда обновляет установленные пакеты, если есть обновления. Если обновляется запущенная служба, то следует руками ее перезапустить или перезагрузить маршрутизатор.
  
 5. ''opkg install <имя пакета>'' - команда устанавливает пакет включая пакеты, от которых устанавливаемый пакет зависит. Например ''opkg install mc'' установит Midnight Commander. 5. ''opkg install <имя пакета>'' - команда устанавливает пакет включая пакеты, от которых устанавливаемый пакет зависит. Например ''opkg install mc'' установит Midnight Commander.
Строка 41: Строка 41:
 ===== Автозапуск программ ===== ===== Автозапуск программ =====
  
-Некоторые из собранных для Keenetic пакетов являются сервисами или демонами. Для запуска сервисов используются скрипты удовлетворяющие маске ''S??*'', расположенные в папке ''/media/DISK_A1/system/etc/init.d''. Эти скрипты запускаются в алфавитном порядке автоматически при монтировании usb носителя или включении роутера. Останавливаются скриппты в обратном порядке при размонтировании usb носителя. После установки, описанной в разделе устанавливаем систему opkg, в этой папке находятся скрипты ''S01swap'', ''S10dropbear'' и заготовка ''K02cron'', предназначенная для запуска планировщика cron. Если Вы считаете, что Вам не нужен swap файл, переименуйте файл ''S01swap'' в ''K01swap''. При установке некоторых пакетов в папке ''init.d'' появятся дополнительные скрипты ''K??*'' или ''S??*''.+Некоторые из собранных для Keenetic пакетов являются сервисами или демонами. Для автоматического запуска сервисов используются скрипты удовлетворяющие маске ''S??*'', расположенные в папке ''/media/DISK_A1/system/etc/init.d''. Эти скрипты запускаются в алфавитном порядке автоматически при монтировании usb носителя или включении роутера. Останавливаются скриппты в обратном порядке при размонтировании usb носителя. После установки, описанной в разделе устанавливаем систему opkg, в этой папке находятся скрипты ''S01swap'', ''S10dropbear'' и заготовка ''K02cron'', предназначенная для запуска планировщика cron. Если Вы считаете, что Вам не нужен swap файл, переименуйте файл ''S01swap'' в ''K01swap''. При установке некоторых пакетов в папке ''init.d'' появятся дополнительные скрипты ''K??*'' или ''S??*''.
  
 Не следует относится к этим скриптам, как к окончательным и устоявшимся. Часто их можно и нужно редактировать, дорабатывать под себя. После таких доработок переименуйте окончательный вариант скрипта ''K??*'' в ''S??*'' для автоматического запуска.  Не следует относится к этим скриптам, как к окончательным и устоявшимся. Часто их можно и нужно редактировать, дорабатывать под себя. После таких доработок переименуйте окончательный вариант скрипта ''K??*'' в ''S??*'' для автоматического запуска. 
Строка 47: Строка 47:
 ===== Правила файрвола iptables ===== ===== Правила файрвола iptables =====
  
-Если к установленным демонам нужно дать доступ из интернета (WAN), то потребуется создать дополнительные правила проброса портов, используя установленный в Keenetic файрвол ''iptables''. Правила проброса могут быть расположены непосредственно в скриптах ''S??*'' или в скриптах, расположенных в папке ''/media/DISK_A1/system/etc/firewall.d''. +Обычно к установленным демонам (сервисам) нужно дать доступ из сети интернет. Для этого потребуется создать дополнительные правила проброса портов, используя установленный в Keenetic файрвол ''iptables''. Правила проброса могут быть расположены непосредственно в скриптах запуска сервисов ''S??*'' и/или в скриптах, расположенных в папке ''/media/DISK_A1/system/etc/firewall.d''. 
  
-Правильнее такие правила размещать в скрипте в папке ''firewall.d''. Дело в том, что при разрыве сессии соединения с Интренет правила iptables сбрасываютсяи создаются заново при подъеме соединения. Правила при подъеме соединения в скриптах ''S??*'' не выполняются, а в скриптах в папке ''firewall.d'' выполняются.+При разрыве подключения к сети интернет правила ''iptables'' сбрасываются и создаются заново при восстановлении подключения. Если правило ''iptables'' находится в скрипте ''S??*'', то заново оно не будет создано. Поэтому правила правильнее размещать в скрипте в папке ''firewall.d''. Скрипты из папки ''firewall.d'' будут вызваны при восстановлении соединения
 + 
 +Учтите, что скрипты в папке ''firewall.d'' не будут выполнены, когда Вы подключаете носитель к USB (при этом выполнятся скрипты ''S??*'' из папки ''init.d''), а только в момент подключения к сети интернет.
  
 Очень часто нужно, чтобы установленные на кинетике программы взаимодействовали между собой по сети. Для этого необходимо выполнение правила Очень часто нужно, чтобы установленные на кинетике программы взаимодействовали между собой по сети. Для этого необходимо выполнение правила
  
   iptables -I INPUT -i lo -j ACCEPT   iptables -I INPUT -i lo -j ACCEPT
 +  
 +Пример файла ''/media/DISK_A1/system/etc/firewall.d/fw.sh''
 +
 +  #!/bin/sh
 +  # Разрешаем внутрисетевой обмен
 +  iptables -I INPUT -i lo -j ACCEPT
 +  # Разрешаем доступ по ssh из интернет на порт tcp 22
 +  iptables -A INPUT -p tcp --dport 22 -j ACCEPT
 +  
 +Файл ''fw.sh'' должен иметь атрибут исполнения и заканчиваться символом конец строки.
 +
 +Поскольку некоторые сервисы Вы наверняка будете перезапускать вручную, проводя эксперименты по изменению настроек, правила iptables имеет смысл дублировать в ''fw.sh''. Так, например, для ''lighttpd'' запись в ''S50lighttpd'' (если ''$PORT_F'' равен 80):
 +
 +  iptables -A INPUT -p tcp --dport $PORT_F -j ACCEPT
 +
 +требует добавления записи в ''fw.sh'':
 +
 +  # Разрешаем доступ по http из интернет на порт tcp 80
 +  iptables -A INPUT -p tcp --dport 80 -j ACCEPT
 +
 +Если этого не сделать, высока вероятность того, что Ваш сервер ''lighttpd'' окажется недоступен из интернет при медленном установлении соединения с провайдером во время старта или после разрыва и последующего восстановления соединения.
 +