Поскольку я понимаю Ваш вопрос, Вы хотите эту машину (тот, на котором мы боремся с iptables) смочь к отправленным прерываниям к удаленному серверу, правильно?
В этом случае интересная часть является ВЫХОДНОЙ цепочкой, как это, что регулирует судьбу пакетов, происходящих в поле.
Шаг отладки один: закрытие iptables и проверяет ту отправку прерывания работы. Если это не делает проблемы, не с конфигурацией брандмауэра источника прерывания SNMP. Не продолжайте ступать два, пока у Вас не будет вещей, работающих с остановленным iptables.
Шаг отладки два: grep -i /etc/services
выставочное множество записей для различных связанных с SNMP вещей. Можно или прочитать документацию и узнать, на котором портирует программное обеспечение, связывается, или станьте оригинальными. Принятие последнего добавляет строку в конце ВЫХОДНОЙ конфигурации цепочки, которая отправляет все в цепочку LOGDROP. Затем запустите iptables, проверьте, что правило находится там в ВЫХОДНОЙ цепочке, и сделайте прерывание, которое будет отправлено. Затем смотрите в своем/var/log/messages, и Вы будете видеть запись, сгенерированную LOGDROP, который скажет Вам, что пакет с локальной машины на удаленную машину с помощью протокола UDP, предназначенный для портирования XXX, был отброшен. Бинго!
Шаг отладки три. Добавьте к ВЫХОДНЫМ правилам цепочки (выше записи LOGDROP) строку, которая ПРИНИМАЕТ исходящие пакеты UDP (-p udp
) к удаленному серверу (-d <IP_ADDRESS>
) на порте XXX (--dport XXX
) определенный в Отладке ступают три. Проверьте (iptables -L -n -v
), то, что правило там. Сделайте прерывание, которое будет отправлено и будет видеть, что он прибывает безопасно в место назначения. Если это не прибывает, Ваше программное обеспечение может связаться больше чем на одном порте, но затем шаге Отладки GOTO два. В патологическом случае, который необходимо определить большой (десятки, сотни...) порты, используемые программным обеспечением, и если политика безопасности разрешает, чтобы, можно было просто позволить все (или весь UDP) исходящий трафик с этого поля на удаленную машину.
Прибыль ;)
I had a similar issue with the rc.local file on an amazon instance. It turned out for me that I had an error with the script in rc.local that would not allow it to execute unless I had a tty.
So how do you find out if your getting a similar error? Use cloud-init to execute your script.
For my amazon linux distro I first edited /etc/init.d/cloud-init-user-scripts
.
Change this line
/ usr / bin / cloud-init-run-module один раз для каждого экземпляра пользовательские скрипты выполняют части выполнения $ {SCRIPT_DIR}> / dev / null && success || ошибка
TO "всегда"
/ usr / bin / cloud-init-run-module всегда пользовательские скрипты выполняют run-parts $ {SCRIPT_DIR}> / dev / null && success || ошибка
Затем создайте каталог mkdir / var / lib / cloud / data / scripts
.. Теперь скопируйте свой сценарий, который вы хотите запустить при запуске, в / var / lib / cloud / данные / скрипты
. Убедитесь, что бит исполняемого файла вашего скрипта установлен.
Теперь вы сможете выполнить sudo /etc/init.d/cloud-init-user-scripts start
.. Затем вы можете проверить / var / log / cloud-init. log
на наличие ошибок.