Проброс портов в Линукс с помощью iptables

Linux системы набирают популярность, и частенько приходится использовать их как маршрутизатор в локальной сети, например, дома.
И, как правило, в таких случаях нам помогает такая утилита, как iptables — стандартный брендмауэр Linux.

C его помощью, например, можно достаточно легко организовать локальную сеть с NAT.

Начнем с краткого описания нужных операций в iptables:

Синтаксис: iptables -t *таблица* *команда*

Ключи:
-L — список правил
-F — удалить все правила
-A — добавить правило
пример: iptables -t *таблица* -A *цепочка* *правило*
-D — удалить правило

пример: iptables -t *таблица* -D *цепочка* *номер правила*

Для сохранения текущих правил выполните:

[code]
/etc/init.d/iptables save
[/code]

И так, допустим, у нас есть локальная сеть, и нам необходимо обеспечить ее Интернетом, а так же пробросить порты с внешнего адреса в локальную сеть.


Читать далее

Пример рабочей конфигурации Nginx + SSL + PHP-FPM

[code]
server {
listen 443;
server_name server.name.com;
root /d1/html/phpbb;

ssl on;
ssl_certificate /etc/ssl/certificate.crt;
ssl_certificate_key /etc/ssl/private.key;

ssl_session_timeout 5m;

ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;

location / {
index index.php index.html index.htm;
}

location ~ \.php$ {
include /etc/nginx/fastcgi_params;
if (-f $request_filename) {
fastcgi_pass 127.0.0.1:9000;
}
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}

[/code]

wget не работает в cron

Убедитесь в том что:

1. Процесс cron запущен (/etc/init.d/crond restart) — после установки из пакета про это легко забыть.

2. Указан полный путь к программе wget (например /usr/bin/wget)

Для теста можно скопировать приведенный ниже пример из файла crontab:

[code]
* * * * * /usr/bin/wget -O /tmp/index.php pingtool.org
[/code]
Это сохранит главную страницу pingtool.org в /tmp/index.php через 1 минуту после добавления.

Использование flock для гарантии запуска одной копии процесса

Иногда, используя планировщик запуска программ cron необходимо удостоверится, что предыдущий запуск скрипта был завершен. (Например архивация файлов должна происходить после окончании предыдущего ее запуска).
В операционных системах Linux для этого удобно использовать утилиту- flock.
[code]
/usr/bin/flock -w 600 /var/tmp/myscript.lock /root/myscript.sh
[/code]
Эта комманда запустит /root/myscript.sh и создаст lock-файл для данного процесса. Пока он активен, новый вызов данного скрипта не произойдет.
После завершения программы, блокировка файла снимается и процесс может быть снова запущен.
Параметр -w 600 определяет время ожидания комманды flock на освобождение lock-файла.
Для моментальной отмены выполнения процесса используйте параметр -w 0, для ожидания же бесконечно долгого времени параметр нужно опустить.

Наиболее подходящее место для lock-файла, папка/var/run, но для ее использования сначала потребуется создать файл и дать пользователю, исполняющему скрипт, права на его запись.