fail2ban не понимает русские конфиги proftpd
Понимаю, что уже порядком всем надоел, но рискну еще задать вопрос.
Захотелось настроить fail2ban и для proftpd (хоть он - proftpd 100 лет никому не нужен, но уж если fail2ban стоит, то пусть и ftp мониторит). Изначально столкнулся с тем, что fail2ban не понимает конфиги proftpd. Сразу, честно скажу, не догадался почему - ясное дело, мне то русский, в отличии от fail2ban - родной язык. Воспользовался гуглом, помойму... и нашел вот это. Человек столкнулся с аналогичной моей проблеммой, но он сразу понял в чем дело.
В принципе, программа ProFTP (как я понял) использует тот язык, который в момент ее запуска указан в системе в качестве системного.
А у меня:
# locale LANG=ru_RU.UTF-8 LC_CTYPE="ru_RU.UTF-8" LC_NUMERIC=C LC_TIME="ru_RU.UTF-8" LC_COLLATE="ru_RU.UTF-8" LC_MONETARY="ru_RU.UTF-8" LC_MESSAGES="ru_RU.UTF-8" LC_PAPER="ru_RU.UTF-8" LC_NAME="ru_RU.UTF-8" LC_ADDRESS="ru_RU.UTF-8" LC_TELEPHONE="ru_RU.UTF-8" LC_MEASUREMENT="ru_RU.UTF-8" LC_IDENTIFICATION="ru_RU.UTF-8" LC_ALL=
То есть прям как у него.
Он решил проблему следующим способом:
Что ж, подумал я, если в момент запуска ProFTP указать, что системный язык английский, то есть шанс, что и сообщения в лог пойдут тоже на нем. Сказано — сделано. Пошел я в папку /etc/init.d и нашел в ней скрипт запуска сервера ProFTP (файл proftpd). Открыл его в редакторе и нашел в нем следующую строку:
daemon "proftpd >/dev/null 2>&1"
и НАД ней добавил (чтоб долго не угадывать) следующие три:
export LC_MESSAGES="en_US.UTF-8" export LC_ALL="en_US.UTF-8" export LANG="en_US.UTF-8"Должен заметить, что строка daemon «proftpd >/dev/null 2>&1″ присутствует в скрипте два раза. Как следствие и свои строки с назначением переменным LC_MESSAGES, LC_ALL и LANG значения en_US.UTF-8 я тоже добавил два раза (в обоих местах). Перезапустил ProFTP, заглянул в лог — красота, сообщения в нем снова на «родном английском»! Что ж, пол дела сделано.
Я вообще не очень люблю скрипты править, то есть совсем не люблю, я стараюсь конфигами ограничиться, поэтому я погуглил на тему proftpd mod_lang и попал сюда. Радостно взял и откорректировал proftpd.conf, добавив:
<IfModule mod_lang_c> LangEngine on LangDefault en_US UseEncoding on UseEncoding UTF8 CP1251 </IfModule>
Перегрузил proftpd (предварительно почистив логи, чтоб в глазах не рябило), залогинился к ftp серверу, чтобы в логи что нить упало, и стал смотреть логи:
# cat /var/log/proftpd.log марта 20 00:27:35 jazz_bass proftpd[3008] 172.23.8.8: ProFTPD 1.3.3g (maint) (built Вс. марта 17 2013 18:34:40 MSK) standalone mode STARTUP марта 20 00:27:46 jazz_bass proftpd[3011] 172.23.8.8 (172.23.8.4[172.23.8.4]): FTP session opened. марта 19 20:27:46 jazz_bass proftpd[3011] 172.23.8.8 (172.23.8.4[172.23.8.4]): Preparing to chroot to directory '/home/bass' марта 19 20:27:46 jazz_bass proftpd[3011] 172.23.8.8 (172.23.8.4[172.23.8.4]): USER bass: Login successful. марта 19 20:28:00 jazz_bass proftpd[3011] 172.23.8.8 (172.23.8.4[172.23.8.4]): FTP session closed.
Короче, не помогло!
Прийдется, думаю, в скрипт запуска proftpd лезть. Ну и полез, а когда открыл понял, что у человека, который до меня с этой проблемой столкнулся, скрипт башовый (хотя я не уверен), а у меня нет.
Вообще к своему стыду признаюсь, что в части скриптов я дуб дубом, один раз наваял свой скрипт для iptables, и подправляю его периодически, именно поэтому я и не люблю скрипты ковырять - конфиги для меня гораздо понятней.
Буду благодарен за помощь, желательно конечно решить проблему путем правки конфигов, но если уж никак, то и скрипты править готов.
- Для комментирования войдите или зарегистрируйтесь