Бесплатный фтп сервер net2ftp.ru

20 гигов
20 мбит/сек
Россия, Словения
DO вводит IPv6 и по случаю раздаёт всем 10 $ на счёт. Код — IPV6CREDIT
общий, базовый синтаксис вызова iptables для установки правил:
iptables -A очередь -s источник -j действие


Удалить все правила с определенной очереди можно с помощью ключа -F:
iptables -F очередь


Самая простая задача файрвола – блокировка всего трафика в сторону нашего сервера с определенного IP. Для этого необходимо выполнить такую команду:
iptables -A INPUT -s 1.2.3.4 -j DROP


При установке такого фильтра все IP-пакеты с адреса 1.2.3.4 будут уничтожаться на входе. В том случае, если отправителю нужно указать, что для него узел недоступен, нужно использовать несколько видоизмененное правило:
iptables -A INPUT -s 1.2.3.4 -j REJECT


В случае использования REJECT система на каждый приходящий пакет будет формировать специальный ответ, информирующий отправителя о невозможности доставки. Используйте REJECT только в необходимых случаях – при формировании этих ответов используются ресурсы сервера, поэтому в большинстве случаев достаточно использовать DROP.

В правилах можно использовать также фильтрацию по протоколам. Например, можно заблокировать только UDP с определенного отправителя:
iptables -A INPUT -p UDP -s 1.2.3.4 -j DROP


В следующем примере рассмотрим, как можно указать номера портов. Воспользуемся ключем –dport (порт назначения, destination port) для того, чтобы запретить для хоста 1.2.3.4 подключение к нашему серверу по протоколу ssh на стандартный порт 22:
iptables -A INPUT -p TCP -s 1.2.3.4 --dport 22 -j DROP


Есть возможность протоколировать работу определенных правил. Давайте сделаем так, чтобы в лог-файле (обычно – в /var/log/messages) были записи о работе фильтра. Первое правило протоколирует поступившие пакеты, второе – уничтожает их:
iptables -A INPUT -p TCP -s 1.2.3.4 --dport 22 -j LOG --log-prefix "SSH Filter:" iptables -A INPUT -p TCP -s 1.2.3.4 --dport 22 -j DROP


В iptables можно указывать не только единичный адрес – возможно указать целую сеть. Для примера – заблокируем подключение к нашему вэбсерверу (порт 80) с диапазона адресов 10.1.2.* (в CIDR-нотации 10.1.2.0/24):
iptables -A INPUT -p TCP -s 10.0.0.0/24 --dport 80 -j DROP


Следующий пример покажет, как можно использовать iptables для проверки содержимого IP-пакетов. Например, можно журналировать или уничтожать пакеты, в которых есть определенная последовательность символов, в данном примере – ‘hack.php’:
iptables -I INPUT -p TCP -m string --string "hack.php" -j LOG --log-prefix "HACK:"


Рассмотрим еще одну практическую задачу – ограничение количества подключений в сторону нашего сервера за единицу времени. Это может быть полезно для борьбы с флудом или простыми атаками. Следующим правилом мы установим лимит в 5 одновременных подключений с одного IP к нашему серверу по протоколу ssh:
iptables -A INPUT -p TCP --syn --dport 22 -m connlimit --connlimit-above 5 -j REJECT


Можно использовать другую конструкцию – следующее правило будет ограничивать количество новых соединений в сторону вэбсервера в 25 в минуту, причем этот лимит включится в том случае, если за предыдущую минуту было отмечено 100 соединений:
iptables -A INPUT -p TCP --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT


Можно лимитировать соединения не по единичным адресам или в целом по системе, но и с использованием маски. В примере ниже мы установим блокировку для целой сети /24 в том случае, если ее адресов поступит более 20 соединений:
iptables -A INPUT -p TCP --dport 80 -m iplimit --iplimit-above 20 --iplimit-mask 24 -j REJECT


В заключение рассмотрим, как сохранять запрограммированные правила iptables, чтобы при перезагрузке операционной системы они были снова установлены. В Centos достаточно выполнить команду
service iptables save


Для Debian рекомендуется установить вспомогательный пакет iptables-persistent, его следует инсталлировать с помощью стандартного менеджера пакетов:
aptitude install iptables-persistent


После установки iptables-persistent система будет автоматически сохранять актуальные правила при остановке операционной системы и восстанавливать их при запуске.
  • avatar NoM
  • 0
Thank You For Your Share…
  • avatar mikhey
  • 0
Пример файла crontab:
# как обычно, с символа '#' начинаются комментарии
# в качестве командного интерпретатора использовать /bin/sh
SHELL=/bin/sh
# результаты работы отправлять по этому адресу
MAILTO=paul@example.org
# добавить в PATH домашний каталог пользователя
PATH=/bin:/usr/bin:/home/paul/bin
#### Здесь начинаются задания
# выполнять каждый день в 0 часов 5 минут, результат складывать в log/daily
5 0 * * * $HOME/bin/daily.job >> $HOME/log/daily 2>&1
# выполнять 1 числа каждого месяца в 14 часов 15 минут
15 14 1 * * $HOME/bin/monthly
# каждый рабочий день в 22:00
0 22 * * 1-5 echo «Пора домой» | mail -s «Уже 22:00» john
23 */2 * * * echo «Выполняется в 0:23, 2:23, 4:23 и т. д.»
5 4 * * sun echo «Выполняется в 4:05 в воскресенье»
0 0 1 1 * echo «С новым годом!»
15 10,13 * * 1,4 echo «Эта надпись выводится в понедельник и четверг в 10:15 и 13:15»
0-59 * * * * echo «Выполняется ежеминутно»
0-59/2 * * * * echo «Выполняется по четным минутам»
1-59/2 * * * * echo «Выполняется по нечетным минутам»
# каждые 5 минут
*/5 * * * * echo «Прошло пять минут»
# каждое первое воскресенье каждого месяца. -eq 7 это код дня недели, т.е. 1 -> понедельник, 2 -> вторник и т.д.
0 1 1-7 * * [ "$(date '+\%u')" -eq 7 ] && echo «Эта надпись выводится каждое первое воскресенье каждого месяца в 1:00»
  • avatar mikhey
  • 0
Немного промокодов, которые помогут вам бесплатно потестить данный сервис:

609089-279698-237219
475228-165786-775558
609089-279698-237219
569124-471236-259173
521313-844291-264878
609089-279698-237219
531611-123147-154061
017800-387781-839012
412589-743558-733959
  • avatar mikhey
  • 0
Полезный мануал по настройке — wiki.archlinux.org/index.php/Lighttpd_%28%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%29 на русском
  • avatar mikhey
  • 0
Пример одного из конфигов:
server.document-root = "/usr/local/www" #Корневая директория вашего веб-сервера
server.port = 80 # Порт слушаемый для http
server.username = "www" # Имя пользователя, от имени которого запускается сервер
server.groupname = "www" # Группа пользователя
server.bind  = "192.168.0.10" # Привязываем сервер к определенному адресу
server.tag ="lighttpd 1.4.27/FreeBSD 7.3" # Тут можно написать хоть "IIS/Win32" - это будет отображаться в строке идентификации сервера
server.event-handler = "freebsd-kqueue" # Метод разбивки на пуллы (!) Подходит только для FreeBSD, для других ОС методы свои

#Говорим куда писать логи
server.errorlog            = "/var/log/lighttpd/error.log"
accesslog.filename         = "/var/log/lighttpd/access.log"

# Подключаем модули
server.modules              = (
            "mod_access",
            "mod_accesslog",
            "mod_fastcgi",
            "mod_cgi",
            "mod_rewrite",
            "mod_auth",
            "mod_compress",
            "mod_alias"
)


# Расписываем типы файлов
mimetype.assign             = (
  ".pdf"          =>      "application/pdf",
  ".sig"          =>      "application/pgp-signature",
  ".spl"          =>      "application/futuresplash",
  ".class"        =>      "application/octet-stream",
  ".ps"           =>      "application/postscript",
  ".torrent"      =>      "application/x-bittorrent",
  ".dvi"          =>      "application/x-dvi",
  ".gz"           =>      "application/x-gzip",
  ".pac"          =>      "application/x-ns-proxy-autoconfig",
  ".swf"          =>      "application/x-shockwave-flash",
  ".tar.gz"       =>      "application/x-tgz",
  ".tgz"          =>      "application/x-tgz",
  ".tar"          =>      "application/x-tar",
  ".zip"          =>      "application/zip",
  ".mp3"          =>      "audio/mpeg",
  ".m3u"          =>      "audio/x-mpegurl",
  ".wma"          =>      "audio/x-ms-wma",
  ".wax"          =>      "audio/x-ms-wax",
  ".ogg"          =>      "audio/x-wav",
  ".wav"          =>      "audio/x-wav",
  ".gif"          =>      "image/gif",
  ".jpg"          =>      "image/jpeg",
  ".jpeg"         =>      "image/jpeg",
  ".png"          =>      "image/png",
  ".xbm"          =>      "image/x-xbitmap",
  ".xpm"          =>      "image/x-xpixmap",
  ".xwd"          =>      "image/x-xwindowdump",
  ".css"          =>      "text/css",
  ".html"         =>      "text/html",
  ".htm"          =>      "text/html",
  ".js"           =>      "text/javascript",
  ".asc"          =>      "text/plain",
  ".c"            =>      "text/plain",
  ".conf"         =>      "text/plain",
  ".text"         =>      "text/plain",
  ".txt"          =>      "text/plain",
  ".dtd"          =>      "text/xml",
  ".xml"          =>      "text/xml",
  ".mpeg"         =>      "video/mpeg",
  ".mpg"          =>      "video/mpeg",
  ".mov"          =>      "video/quicktime",
  ".qt"           =>      "video/quicktime",
  ".avi"          =>      "video/x-msvideo",
  ".asf"          =>      "video/x-ms-asf",
  ".asx"          =>      "video/x-ms-asf",
  ".wmv"          =>      "video/x-ms-wmv",
  ".bz2"          =>      "application/x-bzip",
  ".tbz"          =>      "application/x-bzip-compressed-tar",
  ".tar.bz2"      =>      "application/x-bzip-compressed-tar"
 )

# Делаем возможной http-авторизацию. Заморачиваться с шифрованием не стал - ктож меня будет из локалки-то ломать?
auth.debug = 2
auth.backend = "plain"
auth.backend.plain.userfile = "/usr/local/etc/lighttpd/.lighttpdpassword" # Файл с паролями

# Запускаем  FastCGI посредством php-fpm
fastcgi.server = ( ".php" =>
  ((
              "host" => "127.0.0.1",
                 "port" => 9000,
      )
    )
 )

#Подключаем модуль CGI для запуска перлов
cgi.assign                 = ( ".pl"  => "/usr/bin/perl",
                               ".cgi" => "/usr/bin/perl" )

# Определяем индексы
index-file.names = ( "index.html", "index.php", "index.pl", "index.cgi" )

# А вот теперь самое интересное - виртуалхосты
#Первый хост я использую для netams, который у меня использует базу данных на PostgreSQL, которая в свою очередь управляется через веб-морду phpPgAdmin
$HTTP["host"] =~ "(^|\.)stat\.svyaznoy\.kg$" {
server.document-root = "/usr/local/www/netams"
dir-listing.activate = "disable" # показывать-ли содержимое папки? Нет.
dir-listing.encoding = "utf-8" # Кодировка отображения содержимого папки
alias.url = ( "/pgadmin" => "/usr/local/www/phpPgAdmin") # Алиас для phpPgAdmin
server.errorlog = "/var/log/lighttpd/stat.error.log" # Куда же без логов  :)
accesslog.filename = "/var/log/lighttpd/stat.access.log"
server.error-handler-404 = "/e404.php" # Страница ошибки
# Для доступа к определенным папкам используется http-авторизация. Тут и расписываем что куда.
auth.require = ( "/cgi-bin/admin/" =>
(
"method" => "basic",
"realm" => "Password protected area",
"require" => "user=admin"
)
)
# Поскольку netams складывает свою перловую кашу с граблями в поддиректории, появилась необходимость расписать что куда.
$HTTP["url"] =~ "/cgi-bin/" {
      cgi.assign = ( ".pl" => "/usr/local/bin/perl",
      ".cgi" => "/usr/bin/perl" )
  }
$HTTP["url"] =~ "/cgi-bin/admin/" {
        cgi.assign = ( ".pl" => "/usr/bin/perl",
              ".cgi" => "/usr/bin/perl" )
                }
}

# А теперь собственно то, ради чего все и затевалось - SSL

$HTTP["host"] =~ "(^|\.)gate\.svyaznoy\.kg$" {
server.document-root = "/usr/local/www/test"
dir-listing.activate = "enable"
dir-listing.encoding = "utf-8"
server.errorlog = "/var/log/lighttpd/gate.error.log"
accesslog.filename = "/var/log/lighttpd/gate.access.log"
server.error-handler-404 = "/e404.php"
}

# При работе с SSL лайти не понимает имен сервера, так что придется использовать непосредственно IP-адресацию
$SERVER["socket"] == "192.168.0.10:443" {
  ssl.engine                  = "enable" # Включаем SSL
  ssl.ca-file                   = "/usr/local/etc/lighttpd/ca.crt" # Путь к кормевому сертификату (если у вас его нет можно просто исключить эту строчку)
  ssl.pemfile                   = "/usr/local/etc/lighttpd/ca.pem" # Путь к сертификату сервера
  server.name                 = "gate.svyaznoy.kg" # Описываем имя сервера
  server.document-root        = "/usr/local/www/secure/" # Папка, содержимое которой нам и надо защитить
  ssl.verifyclient.activate  = "enable" # Включаем проверку клиентского сертификата. Если эту и 2 последующие строки исключить, сервер не будет запрашивать проверку, а будет прописывать в браузер временную копию сертификата
  ssl.verifyclient.enforce   = "enable"
  ssl.verifyclient.depth     = "1"
# Алиас для phpMyAdmin
  alias.url = ( "/pma" => "/usr/local/www/secure/phpMyAdmin")
}
seckator@mail.ru
10% скидку на приобретение Gold статуса на Depositfiles на любой период!

Ваш купон: istl266k17hlpw78fwscidcfwj7lel9x

Действителен до: 2014-03-16 13:30:20
  • avatar mikhey
  • 0
Иногда при обновлении можно получить следующую ошибку:
root@server:~# apt-get upgrade
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following packages will be upgraded:
nginx
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 460 kB of archives.
After this operation, 964 kB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 nginx.org/packages/debian/ squeeze/nginx nginx amd64 1.4.5-1~squeeze [460 kB]
Fetched 460 kB in 2s (214 kB/s)
Reading changelogs… Done
(Reading database… 34498 files and directories currently installed.)
Preparing to replace nginx 1.2.1-2.2+wheezy2 (using .../nginx_1.4.5-1~squeeze_amd64.deb)…
Unpacking replacement nginx…
dpkg: error processing /var/cache/apt/archives/nginx_1.4.5-1~squeeze_amd64.deb (--unpack):
trying to overwrite '/etc/logrotate.d/nginx', which is also in package nginx-common 1.2.1-2.2+wheezy2
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing:
/var/cache/apt/archives/nginx_1.4.5-1~squeeze_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Исправить очень просто, нужно запустить команду:
sudo dpkg -i --force-all /var/cache/apt/archives/nginx_1.4.5-1~squeeze_amd64.deb
10% скидку на приобретение Gold статуса на Depositfiles

Ваш купон: 66kedxn2ib0qqskr73lxoxywoif7ajxh

Действителен до: 2014-02-08 19:40:44
  • avatar mikhey
  • 0
В последних версиях добавили обновление ПО (делает тоже самое что apt-get update & apt-get upgrade)
  • avatar mikhey
  • 0
Вам нужно связать все это с капчей (например такой — zloy.org/blog/php/637.html), сервисов капч куча и у каждого свои способы, поэтому тут вам нужно самому попробовать.
  • avatar mikhey
  • 0
Еще есть официальный мануал -> ru.ispdoc.com/index.php/Fatal_error:_Invalid_license
ок, спасиба… но теперь не как не могу сделать регестрацию с капчей((, подскажи пожалуйста еще как это реализовать?
  • avatar mikhey
  • 0
Вот это еще нада убрать в коде:
AND $_REQUEST[password]!=""
хз как, уже по разному пробывал не как не получаеться(((
убрал эту строчку, оно короче не работает так...(((