FreeBSD, установка и настройка fail2ban

обновлено 23.01.2026

pkg install py311-fail2ban  
sysrc fail2ban_enable="YES"

Указать верные пути до журналов апача в paths-freebsd.conf.

Создаем свой файл конфигурации(local — позволяет при обновлении не затирать наши настройки), vi /usr/local/etc/fail2ban/jail.local:

[DEFAULT]
ignoreip = 127.0.0.1 192.168.37.0/24
# время бана в секундах(только число) или минутах(m)
bantime = 180m

# время проверки,за которое событие успеет повторится
findtime = 900

# максимальное число правонарушений
maxretry = 2
# по-умолчанию применять IPFW
action = bsd-ipfw[table=1]

# метод парсинга логов
backend = auto
usedns= no

[ssh-ipfw]
enabled = true
filter = bsd-sshd
action = bsd-ipfw[table=50]
logpath = /var/log/auth.log
maxretry = 3

[proftpd-ipfw]
enabled = true
filter = proftpd
action = bsd-ipfw[table=51]
# sendmail[name=proftpd, dest=admin@example.com]
logpath = /var/log/proftpd/proftpd.log

#[postfix-ipfw]
#enabled = true
#filter = postfix
#action = bsd-ipfw[table=52]
## sendmail[name=postfix, dest=admin@example.com]
#logpath = /var/log/maillog
#bantime = 604800
#maxretry = 3

#[wordpress]
#enabled = true
#filter = wordpress
#action = bsd-ipfw[table=53]
## sendmail[name=wordpress, dest=admin@example.com]
#logpath = /var/log/auth.log
# выявляем неудачные попытки ввода пароля
[apache]
enabled = true
port = http,https
filter = apache-auth
action = bsd-ipfw[table=53]
logpath = /var/log/apache24/*-error.log
# выявляем потенциальные сканирования уязвимостей
[apache-noscript]
enabled = true
port = http,https
filter = apache-noscript
action = bsd-ipfw[table=53]
logpath = /var/log/apache24/*-error.log
# выявляем попытки переполнения Апача
[apache-overflows]
enabled = true
port = http,https
filter = apache-overflows
action = bsd-ipfw[table=53]
logpath = /var/log/apache24/*-error.log
maxretry = 2
# выявляем неудачные попытки в поиске домашней директории на сервере
[apache-nohome]
enabled = true
port = http,https
filter = apache-nohome
action = bsd-ipfw[table=53]
logpath = /var/log/apache24/*-error.log
maxretry = 2


4. Создаем свою директиву действий при срабатывании фильтров:/usr/local/etc/fail2ban/action.d/bsd-ipfw.local

[Definition]
actionstart =
actionstop =
actioncheck =
#
actionban = ipfw table <table> add <ip>
actionunban = ipfw table <table> delete <ip>
 
[Init]
localhost = 127.0.0.1


5. Добавляем правила создания таблиц файлтубаном в свой сетевой экран:

#!/bin/sh

ipfw -q -f flush
cmd="ipfw -q add"

....

# списки fail2ban
sshd_ban_table="table(50)"
proftpd_ban_table="table(51)"
postfix_ban_table="table(52)"
wordpress_ban_table="table(53)"

...
#####################################################################
...
# запрет по fail2ban списку
$cmd 0210 deny all from "table(1)" to me in via $WAN
$cmd 0205 deny tcp from ${proftpd_ban_table} to me 21 via ${WAN}
$cmd 0210 deny tcp from ${sshd_ban_table} to me 22 via ${WAN}
$cmd 0220 deny tcp from ${postfix_ban_table} to me 25 via ${WAN}
$cmd 0230 deny tcp from ${wordpress_ban_table} to me 80 via ${WAN}
...

 В поставке fail2ban есть утилита контроля и управления — fail2ban-client.
С ее помощью проверим какие правила у нас обрабатываются:

# fail2ban-client status
Status
|- Number of jail: 1
`- Jail list: sshd

Так же можем посмотреть статус любого загруженного правила:

# fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 0
| |- Total failed: 0
| `- File list: /var/log/auth.log
`- Actions
|- Currently banned: 0
|- Total banned: 0
`- Banned IP list:

Так же можем посмотреть с помощью fail2ban-client:

# fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 0
| |- Total failed: 3
| `- File list: /var/log/auth.log
`- Actions
|- Currently banned: 1
|- Total banned: 1
`- Banned IP list: 10.200.200.35

Давайте вытащим IP из бана:

# fail2ban-client set sshd unbanip 10.200.200.35
1

Собственно все.

Источники:

https://marvins.ru/administrirovanie/freebsd-fail2ban-ustanavlivaem-i-nastraivaem.html

https://www.lissyara.su/articles/freebsd/security/fail2ban/? 

https://habr.com/ru/post/409915/

https://www.site-motor.ru/docs/freebsd/security_fail2ban.html

https://www.site-motor.ru/manuals/asterisk/asterisk_security_fail2ban.html

https://forum.sys-adm.in/index.php?topic=3121.0

https://itstuff.info/web/install-and-configure-fail2ban/#filters_and_jails

Смена ИМЕЙ кода на модеме E352

Начну с конца. После нескольких часов проб набрел на указатель:


на е352 с 11 прошивкой IMEI at командами не поменять!!!

И все же, Домовой с форпэдэа помог. Запросил старый и новый имей, и в ответ прислал прогу для перепрошивки :

Это не помогло в моем случае:

Метод с DATALOCK работает только на модемах с процессором HISILICON и версия ПО в таких модемах начинается с цифры 21 или 22 как эта Firmware 21.156.00.00.143 А также версия железа Hardware CH2E303SM
Метод с модификацией прошивки HEX редактором через заморозку процесса работает
только на моделях Huawei Е1550 и Е173 с определенным размером микросхемы памяти и типом процессора QUALCOMM и версией железа CD1E153M
Грубо говоря это модифицированные прошивки для Е1550 11.609.18.00.00.B418 и для Е173 11.126.85.00.209.B427
Под другие модели и модемы прошивки никто не модифицировал.
Соотвественно на Е173 с ПО 11.126.16.17.209 или 21.017.01.00.21 21.015.01.00.21 такой метод не работает
Смена IMEI на модели Е150 Е153 E156 E160 E170 E177 E171 E173 E1750 E180 E367 E352 E392 и т.д. работает метод генерации скрипта разрешающего перезапись области в которой хранится IMEI

Сообщение отредактировал Domovoj — 28.11.18, 15:07

Программа* (Soft)— это программа управления модемом для установки на компьютер с ОС Windows, без записи в память модема.
Прошивка** (Dashboard) — это та же программа управления модемом, но подготовленная для записи в память модема:

Схема сети — чем рисовать

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

1) Microsoft Visio

Это наверно первое, что может придти в голову. Это фактически стандарт для рисования схем. Тут и не поспоришь. Инструмент действительно очень функциональный. Более того, иногда при приеме молодых инженеров на работу, некоторые компании чуть ли не обязательным условием ставят «умение работать в Visio». Я бы добавил, что если вы рисуете схему для какой-то компании, то вы обязаны использовать Visio. Скорее всего им захочется иметь возможность вносить правки и тут уже никто не будет разбираться, что за программу вы использовали. Большинство компаний хотят видеть свои схемы именно в Visio-формате.
Большой плюс Visio — огромное количество дополнительных иконок и фигур. Многие вендоры (Cisco, VMware, Check Point, Fortinet и т.д.) сами делают эти иконки для Visio и выкладывают их в открытый (либо закрытый) доступ. К примеру иконки Cisco можно посмотреть здесь.
Несколько скриншотов программы:
C недавнего времени доступна online версия:
Есть один минус — утилита платная. Я знаю, что это мало кого останавливает, но все же. Плюс, как мне кажется, для рядовых задач этот инструмент слишком «мощный». Когда вам нужно быстро «накидать» простенькую схему, то можно вполне обойтись более простым инструментом…

2) Draw.io

На текущий момент это мой любимый инструмент для отрисовки схем. Схемы я затем использую в своих книгах, курсах, статьях и т.д. Изначально это online-платформа которая работает из любого браузера:
Главное удобство — этот сервис интегрируется с Google Drive, а значит все созданные вами схемы будут в одном месте и доступны в любое время. Сам интерфейс и функционал очень напоминает Visio, поэтому особых проблем в навигации не возникнет. Сервис — бесплатный.
Относительно недавно была представлена и десктопная версия. Доступно несколько операционных систем:
Главный минус — маленький набор иконок. Cisco-фигуры хоть и присутствуют, но довольно старого дизайна. При этом нет никаких проблем, если добавлять иконки в png формате.
Хотел бы повториться, что я использую данный сервис исключительно для «своих» схем. Если мне нужно отправить схему заказчику, то я использую только Visio.

Используем свободные телефоны для пользы дела

MediaDeb: Debian для китафонов чипах MediaTek

В этой заметке я расскажу о том, как превратить старый убитый китафон на чипе MediaTek, пылящийся на полке, уже даже без обновлений от производителя в… сервер под управлением Debian Stretch! Оную операцию я проделал для UMI-X2 и iOcean X8, и прошивки для оных и можно скачать по ссылке у меня в блоге. Учитывая, что типичный китайский телефон уже давно имеет по четыре, а то и десять процессорных ядер и 2GB оперативной памяти, а то и больше, результат получается намного более производительным, чем тот же Raspbberry PI, при схожем окружении.

Дайте догадаюсь, на полке пылится старый телефон? В котором скорее всего 4 или даже 8 ядер, в котором есть 2 GB RAM а то и больше, и уж точно хватает флеша? И не смотря на это производитель забил на апдейты. Или, быть может разбит экран, пластик поцарапан, антенна отвалилась и т.п. Аппарат за замену мы давно купили, старый уже не продашь, ибо никому даром не нужен, а выкидывать жалко.

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

Так что я готов представить общественности первую версию моего небольшого проектика ‘MediaDeb’, который позволяет запустить на mediatek’овских трубках debian. И нет, это не chroot, где отдельные программы из debian запускаются параллельно с android. Это полноценная установка debian с кастомным ядром, в котором включено все, что нужно чтобы развернуть systemd, iotop и прочие нужности, отключен некоторые android-специфичные вещи, которые ломают debian-окружение. Сам же android выпилен из системы во имя экономии оперативной памяти и флеша.

Иными словами, если можно просто взять телефон, прошить его через SP Flash Tool debian прошивкой, воткнуть usb провод и вуоля: устройство определиться как композитное усб устройство с сетевым адаптером, виртуальным ком-портом и флешкой. Последовательный порт можно использовать, чтобы получить доступ к консоли, если вдруг неправильно настроена сеть. По умолчанию прошивка попытается получить IP адрес через dhcp на rndis интерфейсе. Теперь этого зомби можно положить на полку и представить, что мы арендовали небольшой выделенный сервер.

На что годится такой зомби?

В моем случае основное применение для этих зомби-телефонов – кросс-сборка программного обеспечения для arm используя платформу непрерывной интеграции jenkins. Так же в таком варианте этот аппарат можно использовать как небольшой дешевый сервер, например для персонального блога (долгое время этот самый блог крутился на сервере со схожими характеристиками).

А батарея не разбухнет постоянно держать аппарат на зарядке?

Если батарею телефона постоянно держать на зарядке, т.е. заряженной до 4.2 вольт, то через некоторое время она раздуется и будет ни на что не пригодна. Вдумчивая раскурка исходных кодов с применением зеленого чая показала, что это значение захардкожено в драйвере PMIC. А значит его можно отредактировать и выставить, например, в значение 3.7-3.8 вольт, что позволит батарее месяцами находиться на зарядке, и при этом в случае сбоя питания этого хватит чтобы успеть корректно завершить работу. Пока этот batteryhack сделан только для UMI-X2, Iocean-X8 на очереди.

В каком все состоянии?

Пока проект находится в зачаточной стадии (т.е. собирается на моей машине, результат вполне сносно работает). Я добавил базовую поддержку трубок UMI-X2 (MT6589, 4 ядра) и iOcean X8 (MT6592, 8 ядер). Базовая поддержка телефонов на этих чипсетах должна быть сравнительно простой. Если хотите помочь и портировать это безобразие на свою трубку – милости просим на github

В следующих заметках я постараюсь рассказать про то, как портировать MediaDeb на другие устройства на базе чипов mtk.

Источник:

https://ncrmnt.org/2017/08/04/mediadeb-debian-%D0%B4%D0%BB%D1%8F-%D0%BA%D0%B8%D1%82%D0%B0%D1%84%D0%BE%D0%BD%D0%BE%D0%B2-%D1%87%D0%B8%D0%BF%D0%B0%D1%85-mediatek/?lang=ru

Фото: Дарья Григоревская

Восстановление загрузчика ОС

Представьте себе, по какой-либо причине у вас есть другие операционные системы, установленные рядом с Debian. Или по какой-то другой причине вам придется его переустановить, потому что он на самом деле сломан. Опять же, представьте себе, у этой дрянной ОС получилась дрянная установка и она переписала загрузочную запись MBR, полностью завладев компьютером. Что дальше? Переустановка Debian? Нет.

Теория установки загрузчика

Загрузчик — это микропрограмма, устанавливаемая в  главную загрузочную запись. Главная загрузочная запись содержит программу загрузчика + таблица разделов жесткого диска + сигнатуры. Расположена главная загрузочная запись в главном загрузочном секторе — первом секторе жесткого диска .
Т.е,  каждый жесткий диск может содержать ЕДИНСТВЕННУЮ загрузочную запись, причем расположена она отдельно от самих разделов жесткого диска.

В нашем примере, главная загрузочная запись для первого диска sda находиться на /dev/sda, а не на /dev/sda1. На /dev/sda1 находится первый раздел нашего диска.

Стандартная процедура

Загрузиться c установочной флешки Debian. Выбирать установку Rescue, дойти до выбора логических дисков и запустить оболочку, затем ознакомится с присутствующими дисками командой «fdisk -l»  и выбрать жесткий диск, на котором установлены были ОС(не логические(sda1), а сам хард(sda)у меня Windows7 и Debian9 стояли на /dev/sda…), далее «grub-install /dev/sda» и всё. Перезагрузка.

Читать далее «Восстановление загрузчика ОС»

Установка и настройка FTP-сервера на FreeBSD 11.0 Release. Практика использования ProFTPD

Задача: установить FTP-сервер для оперативного выкладывания для клиентов больших файлов, которые сложно переслать по почте. Будем использовать ProFTPD.
Введение

ProFTPD появился как безопасный и удобно настраиваемый FTP-сервер, используя Apache-подобный синтаксис файла конфигурации.

В то время когда начали создавать ProFTPD, наиболее часто используемым сервером был wu-ftpd. wu-ftpd обеспечивает отличную производительность, но испытывает недостаток в многочисленных функциях новых серверов Win32 FTP, а также имеет плохую историю безопасности. Многие люди, в том числе разработчиков, которые работают на ProFTPD, потратил много времени на исправление ошибок и дыр безопасности wu-ftpd. Но к сожалению, стало ясно, что необходим начать с нуля для реализации легкой конфигурируемости и обеспечения безопасности.

Есть и другие серверы FTP, который значительно более безопасные и менее ресурсоемкие, чем wu-ftpd. Но к сожалению, не предлагают набор расширенных функций, необходимых для более сложных FTP сайтов.

ProFTPD это безопасный FTP сервер разработанный с нуля, удобный и легко конфигурируемый. Очень много хорошо известных и высоконагруженных серверов используют ProFTPD.
Установка ProFTPD

Найдем нужный порт и установим его через portmaster.

# whereis proftpd
proftpd: /usr/ports/ftp/proftpd
# portmaster /usr/ports/ftp/proftpd

Либо через порты:

#cd /usr/ports/ftp/proftpd && make install clean

===> SECURITY REPORT:
This port has installed the following files which may act as network
servers and may therefore pose a remote security risk to the system.
/usr/local/libexec/proftpd/mod_snmp.so
/usr/local/sbin/proftpd
/usr/local/libexec/proftpd/mod_radius.so
/usr/local/bin/ftpdctl

This port has installed the following startup scripts which may cause
these network services to be started at boot time.
/usr/local/etc/rc.d/proftpd

If there are vulnerabilities in these programs there may be a security
risk to the system. FreeBSD makes no guarantee about the security of
ports included in the Ports Collection. Please type ‘make deinstall’
to deinstall the port if this is a concern.

For more information, and contact details about the security
status of this software, see the following webpage:
http://www.proftpd.org/

===>>> Installation of ftp/proftpd (proftpd-1.3.5b) complete

Установка завершена, перейдем к настройке.
Настройка ProFTPD

Посмотрим файл конфигурации, который создал установщик /usr/local/etc/proftpd.conf

#
# For more information about Proftpd configuration
# see http://www.proftpd.org/
#
# This is a basic ProFTPD configuration file (rename it to
# ‘proftpd.conf’ for actual use. It establishes a single server
# and a single anonymous login. It assumes that you have a user/group
# «nobody» and «ftp» for normal operation and anon.

ServerName «ProFTPD Default Installation»
ServerType standalone
DefaultServer on
ScoreboardFile /var/run/proftpd/proftpd.scoreboard

# Port 21 is the standard FTP port.
Port 21

# Use IPv6 support by default.
UseIPv6 on

# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask 022

# To prevent DoS attacks, set the maximum number of child processes
# to 30. If you need to allow more than 30 concurrent connections
# at once, simply increase this value. Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd).
MaxInstances 30

CommandBufferSize 512

# Set the user and group under which the server will run.
User nobody
Group nogroup

# To cause every FTP user to be «jailed» (chrooted) into their home
# directory, uncomment this line.
#DefaultRoot ~

# Normally, we want files to be overwriteable.
AllowOverwrite on

# Bar use of SITE CHMOD by default
DenyAll

# A basic anonymous configuration, no upload directories. If you do not
# want anonymous users, simply delete this entire section.

#########################################################################
# #
# Uncomment lines with only one # to allow basic anonymous access #
# #
#########################################################################

#
# User ftp
# Group ftp

### We want clients to be able to login with «anonymous» as well as «ftp»
# UserAlias anonymous ftp

### Limit the maximum number of anonymous logins
# MaxClients 10

### We want ‘welcome.msg’ displayed at login, and ‘.message’ displayed
### in each newly chdired directory.
# DisplayLogin welcome.msg
# DisplayFirstChdir .message

Limit WRITE everywhere in the anonymous chroot
# # DenyAll
# #

По сути все должно уже работать с этим конфигом.
Запуск ProFTPD

В файл /etc/rc.conf добавляем строку

proftpd_enable=»YES»

Запускаем без перезагрузки сервера сервис ProFTPD:

# service proftpd start

Вышла ошибка:

# service proftpd start
Starting proftpd.
2016-12-19 11:26:14,483 srv01 proftpd[14406]: fatal: UseIPv6: Use of the UseIPv6 directive requires IPv6 support (—enable-ipv6) on line 19 of ‘/usr/local/etc/proftpd.conf’
/usr/local/etc/rc.d/proftpd: WARNING: failed to start proftpd

Закомментировал строку:

# Use IPv6 support by default.
# UseIPv6 on

Запустил заново, вышла ошибка:

# service proftpd start
Starting proftpd.
2016-12-19 11:31:07,047 srv01 proftpd[14439]: warning: unable to determine IP address of ‘srv01’
2016-12-19 11:31:07,047 srv01 proftpd[14439]: error: no valid servers configured
2016-12-19 11:31:07,047 srv01 proftpd[14439]: fatal: error processing configuration file ‘/usr/local/etc/proftpd.conf’
/usr/local/etc/rc.d/proftpd: WARNING: failed to start proftpd

Имя сервера у меня srv01, добавляю в hosts

192.168.146.252 srv01

Теперь все успешно запустилось:

# service proftpd start
Starting proftpd.

Перезапустить можно командой:

# service proftpd restart

Теперь можно на любом клиенте проверить доступ к серверу по следующему адресу (в адресной строке любого браузера набираете):

ftp://192.168.146.252/

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

Естественно вводите существующего пользователя системы FreeBSD 11.0

По сути вот мы и произвели простейшую настройку ФТП-сервера для использования в локальной сети.

Думаю надо остановиться на вопросах прописывания правил для файерволла ipfw, для того, чтобы открыть доступ снаружи к установленному фтп-серверу.
Русские символы в название файла

Проблема: на FreeBSD 11.0 установлена локаль UTF-8, при доступе к файлу, которые именован русскими буквами произошла ошибка.

Решение: добавил в конфигурационный файл следующие строки

UseEncoding utf8 cp1251

Полезные команды ProFTPD

Проверка правильности синтаксиса конфигурационного файла

# proftpd -t
Checking syntax of configuration file
Syntax check complete.

Проверка поддерживаемых модулей

# proftpd -l
Compiled-in modules:
mod_core.c
mod_xfer.c
mod_rlimit.c
mod_auth_unix.c
mod_auth_file.c
mod_auth.c
mod_ls.c
mod_log.c
mod_site.c
mod_delay.c
mod_facts.c
mod_dso.c
mod_ident.c
mod_auth_pam.c
mod_ctrls.c
mod_lang.c
Описание настроек ProFTPD

Все что написано выше, это простейшая конфигурация ProFTPD сервера. В реальной жизни может использоваться только в локальной сети.

К сожалению в жизни все не просто так. Начнем с того, что сам протокол FTP не является безопасным, поэтому используют различные ухищрения, чтобы его использование не дискредитировало вас и ваш сервер.

Начнем, будем создавать виртуальных ftp-пользователей. То есть они не имеют системной учетной записи в самой системе FreeBSD. Есть несколько вариантов хранения учетных записей виртуальных пользователей.

Предлагаю начать с использования альтернативного файла имен и паролей пользователей, также можно использовать базу данных MySQL.

Выполним начальные настройки, которые нам советуют сделать в дефолтном конфигурационном файле.

# To cause every FTP user to be «jailed» (chrooted) into their home
# directory, uncomment this line.
DefaultRoot ~
ServerIdent on «FTP Server ready.»

Подготовительный этап

Создаем место для хранения файлов, я использую zfs поэтому производим следующие манипуляции:

# zfs list
NAME USED AVAIL REFER MOUNTPOINT
bootpool 121M 1,80G 121M /bootpool
zroot 3,59G 888G 96K /zroot
zroot/ROOT 1,58G 888G 96K none
zroot/ROOT/default 1,58G 888G 1,58G /
zroot/tmp 144K 888G 144K /tmp
zroot/usr 2,01G 888G 96K /usr
zroot/usr/home 136K 888G 136K /usr/home
zroot/usr/ports 1,41G 888G 1,41G /usr/ports
zroot/usr/src 608M 888G 608M /usr/src
zroot/var 736K 888G 96K /var
zroot/var/audit 96K 888G 96K /var/audit
zroot/var/crash 96K 888G 96K /var/crash
zroot/var/log 232K 888G 232K /var/log
zroot/var/mail 120K 888G 120K /var/mail
zroot/var/tmp 96K 888G 96K /var/tmp

Смотрим как сейчас, затем создаем файловую систему:

# zfs create zroot/data

Смотрим что получилось

# zfs list
NAME USED AVAIL REFER MOUNTPOINT
bootpool 121M 1,80G 121M /bootpool
zroot 3,59G 888G 96K /zroot
zroot/ROOT 1,58G 888G 96K none
zroot/ROOT/default 1,58G 888G 1,58G /
zroot/data 96K 888G 96K /zroot/data
zroot/tmp 144K 888G 144K /tmp
zroot/usr 2,01G 888G 96K /usr
zroot/usr/home 136K 888G 136K /usr/home
zroot/usr/ports 1,41G 888G 1,41G /usr/ports
zroot/usr/src 608M 888G 608M /usr/src
zroot/var 736K 888G 96K /var
zroot/var/audit 96K 888G 96K /var/audit
zroot/var/crash 96K 888G 96K /var/crash
zroot/var/log 232K 888G 232K /var/log
zroot/var/mail 120K 888G 120K /var/mail
zroot/var/tmp 96K 888G 96K /var/tmp

Выделенным место для хранения файлов сервера фтп.

Можно назначить квоту, зарезервировать необходимое место и включить автоматическое сжатие хранимых данных. Команды ниже не обязательны, это опции. Если не понимаете, что они значат не выполняйте их, значит оно вам не нужно.

#Резервируем место под свою файловую систему
zfs set reservation=800m zroot/data

#Устанавливаем квоту для вашей файловой системы, которую вы не сможете превысить
zfs set quota=800m zroot/data

#Включаем компрессию.
zfs set compression=on zroot/data
Настройка доступа ftp-пользователей к директориям

Изменяем владельца директории /zroot/data (необходимо указать нужную группу и пользователя ниже)

Создаем сначала реального пользователя через adduser

# adduser
Username: proftp
Full name:
Uid (Leave empty for default):
Login group [proftp]:
Login group is proftp. Invite proftp into other groups? []:
Login class [default]:
Shell (sh csh tcsh bash rbash nologin) [sh]: nologin
Home directory [/home/proftp]: /zroot/data
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username : proftp
Password : *****
Full Name :
Uid : 1002
Class :
Groups : proftp
Home : /zroot/data
Home Mode :
Shell : /usr/sbin/nologin
Locked : no

Затем права папке присваиваем

# chown proftp:proftp /zroot/data

Выставляем права доступа к директории, иначе увидим permission denied

# chmod 775 /zroot/data

Теперь виртуальные пользователи могут создавать, редактировать и удалять файлы и папки.

Смотрим в файле /etc/passwd uid и gid созданного юзера, у меня вышло 1002
Сохраняем учетные записи виртуальных пользователей в текстовом файле

Необходимо, чтобы ftp-пользователь имел возможность редактировать и удалять файлы.
Создаем нового виртуального ftp-пользователя с логином ftpuser, идентификатором 1002, группой 1002 и домашним каталогом /data.

ftpasswd —passwd —file=/usr/local/etc/proftpd/ftpd.passwd
—name=ftpuser —uid=1002 —gid=1002 —home=/zroot/data
—shell=/usr/sbin/nologin

После выполнения команды система попросит ввести дважды пароль пользователя.
В итоге, у нас появится файл /usr/local/etc/proftpd/ftp.passwd с записью о пользователе.

Изменить пароль пользователя можно следующей командой:

ftpasswd —passwd —name=ftpuser —change-password

Изменяем /usr/local/etc/proftpd.conf, для подключения виртуального пользователя:

RequireValidShell off
AuthUserFile /usr/local/etc/proftpd/ftpd.passwd

Перезапускаем ftp-сервер:

service proftpd restart
Мониторинг работы ProFTPD

ftpcount — показывает число соединений в настоящий момент (с разбивкой по виртуальным хостам).

ftpwho — показывает информацию о каждом текущем соединении (—verbose показывает также текущую рабочую директорию).

ftptop — аналог программы top для процессов ProFTPD.
Настройкалогов

Добавляем в/usr/local/etc/proftpd.conf

ExtendedLog /var/log/ftp.log
TransferLog /var/log/proftpd
SystemLog /var/log/proftpd/proftpd.log

Создаем необходимые файлы.

touch /var/log/ftp.log
mkdir /var/log/proftpd
touch /var/log/proftpd/xferlog
touch /var/log/proftpd/proftpd.log

Выпускаем наружу FTP-сервер через шлюз с помощью NAT (ProFTPD)

Читаем документацию и пробуем.

Сначала добавляем строку в ваш конфигурационный файл proftpd.conf. Прописываем днс-имя или ip-адрес, в зависимости от того, как вы будете обращаться к серверу снаружи.
Добавляем директиву MasqueradeAddress

MasqueradeAddress ftp.mydomain.com # если используете DNS-имя
MasqueradeAddress 123.45.67.89 # если используете IP-адрес

Естественно используете публичный адрес, а не локальный.

Существует одна большая проблема, дело в том что при пассивном режиме фтп используются порты от 1024 и выше, что означает , что вы должны направить все порты 1024-65535 от NAT к FTP-серверу. Скажем так, это не очень безопасно.

Для решения этой проблемы, используйте директиву PassivePortsв вашем конфигурационном файле proftpd.conf, чтобы контролировать , какие порты proftpd будут использоваться для передачи данных в пассивном режиме:

PassivePorts 50000 50200 # Эти порты должны быть безопасными

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

Перезапускаете proftpd сервер.

# service proftpd restart
Stopping proftpd.
Waiting for PIDS: 18273.
Starting proftpd.
2016-12-22 11:20:09,680 srv01 proftpd[23575] srv01: 192.168.146.252:21 masquerading as 123.45.67.89

Увидите примерно такую же запись, которая приведена выше. С первой частью задания вы справились.
Настройка директории для хранения файлов proftpd.conf

AllowOverwrite on
AllowStoreRestart on
AllowAll
AllowAll

Немного теории: принцип работы протокола FTP

Существует два режима работы протокола FTP:

активный режим работы протокола FTP;
Это когда клиент соединяется на 21 порт сервера, затем сервер при необходимости создает DATA соединение с 20 порта на указанный порт клиента (от 1024 и выше).
пассивный режим работы;
Клиент соединяется на 21 порт сервера, затем клиент при необходимости создает DATA соединение на указанный порт сервера. Диапазон портов сервера для данного режима как раз прописывается в конфигурационном файле ProFTPD, параметр PassivePorts.

Клиенту удобнее использовать пассивный режим, а серверу удобнее использовать активный режим, так как проще настройка ipfw.
Правила IPFW для проброса FTP на внутренний сервер локальной сети
Для активного режима:

#NAT
$ipfw nat 1 config log if $internet_interface reset same_ports deny_in \
redirect_port tcp 192.168.146.252:21 21

$ipfw add 00500 nat 1 ip from any to any via $internet_interface

$ipfw add 00605 allow tcp from any to 192.168.146.252 21 setup
$ipfw add 00606 allow tcp from me 20 to any setup

(надо еще проверить, не забыть про параметр в /etc/sysctl.conf net.inet.ip.fw.one_pass=0 )

Для пассивного режима:

#NAT
$ipfw nat 1 config log if $internet_interface reset same_ports deny_in \
redirect_port tcp 192.168.146.252:21 21 \
redirect_port tcp 192.168.146.252:50000-50200 50000-50200

$ipfw add 00500 nat 1 ip from any to any via $internet_interface

(проверено работает,net.inet.ip.fw.one_pass=0)

Использованы материалы: http://www.andrewblog.ru/ustanovka-i-nastrojka-ftp-servera-na-freebsd-11-0-release-praktika-ispolzovaniya-proftpd/

Прописать список баз 1С для всех пользователей

Для того, чтобы прописать список баз для всех пользователей необходимо выполнить следующие операции:

  • прописать у себя нужные базы
  • скопировать свой файл C:\Documents and Settings\All Users\Application Data\1C\1CEStart\ibases.v8i, например, в C:\path_to_base\
  • в файл 1CEStart.cfg вставить:

CommonInfoBases=C:\path_to_base\ibases.v8i

и положить его в C:\Documents and Settings\All Users\Application Data\1C\1CEStart Читать далее «Прописать список баз 1С для всех пользователей»

Как вставить php-код в WordPress на страницу или запись

Всем привет!
Сегодня я поделюсь кодом, с помощью которого можно будет вставлять любой код, написанный на php, в страницу или в запись.
Если у вас стоял плагин, с помощью которого вы решали все эти проблемы, можете его удалить (к примеру, плагин Inline PHP), если не ставили, то не устанавливайте, так как код имеет всего пару строчек.
Зачем выводить внутри статьи или записи работающий код php?
Бывают разные причины, вот например, вы хотите вывести кнопку «купить» в самой статье, где после нажатия, товар попадет в корзину, или хотите вывести форму в статье, где будет вестись подсчет символов и балов. Идей, как применить данную функцию, я думаю, вы найдете намного больше. Итак, добавьте в файл «functions.php» вашей темы вот такую функцию:

[cc lang=»php»]
/* чтобы вставить код php в статьях/страницах WordPress,
* поставьте шоркод: [exec]код[/exec]
*/
function exec_php($matches){
eval(‘ob_start();’.$matches[1].’$inline_execute_output = ob_get_contents();ob_end_clean();’);
return $inline_execute_output;
}
function inline_php($content){
$content = preg_replace_callback(‘/\[exec\]((.|\n)*?)\[\/exec\]/’, ‘exec_php’, $content);
$content = preg_replace(‘/\[exec off\]((.|\n)*?)\[\/exec\]/’, ‘$1’, $content);
return $content;
}
add_filter(‘the_content’, ‘inline_php’, 0);[/cc]

Теперь вставляйте шорткод прямо в статью или запись:
[cc lang=»php»][exec]здесь php код [/exec][/cc]

Внимание: при вставке php кода в шорткод, не используйте «»
То есть будет вот так:
[cc lang=»php»][exec]echo date(‘Y’);[/exec][/cc]

Если вы хотите вывести код, как обычный текст, выведите php код вот таким шорткодом:
[cc lang=»php»][exec off]php код[/exec][/cc]
Это все! Удачи!

Источник: https://bloggood.ru/wordpress/kak-vstavit-php-kod-v-wordpress-na-stranicu-ili-zapis.html/

 

Перевод темы WordPress на русский язык

Примечание: и снова рекомендую начать с инструкции первоисточника(англ.): https://codex.wordpress.org/User:Lorelle/Installing

или читать первую часть. Более подробо о формате gettext см. в Части 2

Часть 1 «для чайников»

Перевод темы WordPress на русский язык

Оформление большей части шаблонов WordPress на английском языке. Конечно, имеются темы и на русском, а также других языках, но большинство все же остается на английском. В связи с этим может возникнуть необходимость в русификации темы на Вордпресс.

Как локализировать шаблон на русский язык.

Эта статья поможет разобраться, как локализировать шаблон на русский язык, используя программу Poedit, и как выполнить перевод тем WordPress при помощи одного плагина под названием CodeStyling Localization.

С самого начала следует обозначить, что перевод на русский язык английских строк внутри исходных файлов .php темы – ошибочное мнение. Данную ошибку допускают многие начинающие разработчики и пользователи WordPress.

Для локализации в WordPress используется GNU gettext технология, которая говорит о том, что исходный программный код должен быть прописан на английском языке. Почему так?

Это позволит, например, переводить на русский темы WordPress, не внося изменений в исходный код шаблона. Главное, при выходе обновлений к шаблонам, перевод никуда не исчезнет.

Русификация темы WordPress

Иногда, к сожалению, не каждую тему для WordPress возможно перевести «правильным» способом. Все зависит от того, провел ли разработчик подготовку своей темы к переводу.

Где найти шаблон, готовый к переводу? На самом деле, это несложно. Например, на сайте WordPress.org имеется специальная пометка translation-ready, указывающая на тот факт, что тема подготовлена разработчиком к переводу, и вы сможете перевести ее на русский язык, не изменяя исходный программный код.

Если вы выбрали тему не с официального сайта, то информацию о том, готов ли шаблон к переводу, уточняйте у разработчика.

Совет! Шаблоны для WordPress нужно скачивать с официального ресурса. Использовать темы с «левых» сайтов, особенно, если они бесплатные, очень рискованно.

Файлы .po и .mo

После скачивания темы переходим к этапу «Как перевести тему WordPress на русский язык?». Ищем в теме директорию languages. Именно в ней находятся нужные файлы для перевода темы шаблона на разные языки. Имя файла должно указывать на локаль. К примеру, ru_RU – это русский. Все эти файлы идут с расширением .po и .mo.

.po файлы хранят в текстовом формате переведенные строки. К этим данным обращается переводчик темы.

.mo файлы — те же строки, но в скомпонованном варианте. Данные файлы использует WordPress ядро для отображения выполненного перевода.

Отредактировав перевод в файле .po, его следует скомпилировать в .mo, чтоб подтвердить и применить исправления. Используя редактор Poedit, это можно делать автоматически.

Как русифицировать Вордпресс при помощи Poedit

Poedit — это редактор .po файлов (gettext каталогов), отвечающий за перевод программного обеспечения. Большая часть разработчиков отдает предпочтение gettext, чтоб локализовать программы Unix. Так, решив перевести любимые программы Linux, можно смело использовать Poedit.

Какие особенности имеет редактор Poedit:

  1. Имеется проверка орфографии.
  2. .mo файлы компилируются автоматически.
  3. Присутствует поддержка множественных форм.
  4. Есть возможность редактировать комментарии.
  5. В наличии удобный строчный поиск.

Скачать Poedit редактор можно по ссылке https://poedit.net/download.

Запустив программу для создания нового перевода, нужно (через раздел меню Файл) создать из POT-файла каталог.

Выбираем .pot файл (или .po) в директории languages вашей темы. Далее редактор предложит заполнить форму перевода и сохранить новый созданный каталог. Сохраняем его в той же languages директории под именем локали, к примеру, ru_RU.po.

Если нужно, то для внесения поправок в существующий перевод, нужно открыть соответствующий .po файл.

Poedit — это редактор .po файлов (gettext каталогов), отвечающий за перевод программного обеспечения.

Работа с редактором Poedit не вызывает дополнительных вопросов. Все просто и понятно. Исходный вариант текста расположен слева, а текст перевода — справа. Чтоб внести коррективы в перевод, нужно щелкнуть на нужную строчку и ввести правильный перевод. Нажав сохранить, редактор сам скомпилирует новый перевод и создаст соответствующий .mo файл.

Установка перевода в Вордпресс

После внесения окончательных изменений в перевод, помним, что его нужно сохранить. Следующий этап – это загрузка темы с русским переводом на сайт и его активация.

Если на сайте тема уже установлена, то достаточно загрузить файлы ru_RU.po и ru_RU.mo в ее директорию languages.

Примечание: файлы конкретной темы находятся в …./wp-content/languages/themes/.., для изменить исходный(английский) текст не получилось в Poedit, максимум можно взять чужой перевод и изменить русские названия. Пробую редактировать исходный текст в обычном редакторе сначала.

 

Это можно сделать, к примеру, через FTP.

Если шаблон установлен на русском языке, то изменения будут видны сразу. Если он на английском языке, следует поменять локаль в wp-config.php. Нужно найти в файле строчку WPLANG и изменить ее:

Загрузка темы с русским переводом на сайт и его активация.

Примечание: это работало для WordPress v3.9.2 и ниже. Для WordPress v4.0 и выше:

  • изменяй язык в настройках административной Консоли. Settings > General > Site Language.

 

В результате, тема на сайте будет отображена на русском языке. Однако это не единственный способ!

Как русифицировать WordPress, используя плагин?

Плагины для Вордпресс активно используются для настройки тех или иных функций. Этот случай не будет исключением. Плагин CodeStyling Localization, в данном случае, будет очень полезен.

    1. Чтоб воспользоваться плагином, первый шаг — это скачать его и установить. В консоли находим Плагины-Добавить новый.
    2. В окне поиска вводим CodeStyling Localization и жмем Поиск.
    3. Когда поисковик его найдет, нажимаем Установить, а далее Активировать.
    4. В меню консоли сбоку выбираем Инструменты-Локализация.

Плагин CodeStyling Localization, в данном случае, будет очень полезен.

    1. Появится список, состоящий из локализаций WordPress, установленных тем и плагинов. Внизу будет размещено название нужной темы.  Если ее нет, то русифицировать тему придется способом, указанным выше.

Список, состоящий из локализаций WordPress, установленных тем и плагинов.

При отсутствии в перечне русского языка, нажимаем Добавить новый язык и отмечаем русский. В появившейся строчке русского языка жмем Сканировать и Завершить. Далее в строчке русского языка выбираем Редактировать. Откроется перечень фраз и перевод для них.

При отсутствии в перечне русского языка, нажимаем Добавить новый язык и отмечаем русский.

Можно редактировать отдельно каждую фразу, выбрав соответствующее действие справа.

Многие фразы отображаются с %s в конце. От этих внешних ссылок в отдельных случаях можно избавиться. Например, перевод «Powered by %1$s and %2$s theme by %3$s» можно заменить «Сайт на WordPress» без ссылок.

Переводить все имеющиеся фразы не обязательно, только самые важные. Проверив и отредактировав перевод, нажимаем над списком фраз Генерировать mo-файл.

Выполнив все этапы и поняв как русифицировать шаблон wordpress, плагин CodeStyling Localization можно смело удалить, так как даже после этого все .po и .mo файлы сохранятся.

Итог

Многие пользователи, выбирая шаблон WordPress, пугаются, увидев английский язык интерфейса. Почему-то не все понимают, что это только шаблон, который можно настроить и модифицировать. Поэтому, подобрав подходящий шаблон на английском языке, не стоит от него отказываться, так как русифицировать WordPress сможет даже новичок.

Читать далее «Перевод темы WordPress на русский язык»

Трём диски

Дано: Жесткие диски, которые нужно отдать/продать. Если можно выбросить, тогда быстрее и надежнее разобрать и магниты бонусом получить(например, для фиксации калитки здорово подходят).
Задача: Cтереть данные на них, чтобы затруднить восстановление информации третьими лицами.
Решение:
смотрим диски(разделы) в системе
sudo lsblk
затираем нулями диск sdb, блоками(bs) по 8Мб
sudo dd if=/dev/zero of=/dev/sdb bs=8M
посмотреть текущее состояние процесса:
killall -USR1 dd

 

Яндекс.Метрика