Различия
Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.
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'' окажется недоступен из интернет при медленном установлении соединения с провайдером во время старта или после разрыва и последующего восстановления соединения. | ||
+ |