На самом деле я полагаю, что существует локаль, которая соответствует Вашим требованиям лучше, чем en_IE. Это неофициально, но это en_SE.UTF-8
. Это - ссылка, которая указывает на файл локали.
Это в основном копирует sv-SE, который должен получить Вас все, что Вы хотите (хотя я не перепроверил), но дает Вам английские системные сообщения, меню, и т.д. Я использовал его прежде, и это работало очень хорошо на меня на практике несмотря на протесты в блоке комментария наверху файла.
Устанавливать:
/usr/share/i18n/locales/en_SE
sudo localedef -i en_SE -f UTF-8 en_SE.UTF-8
/var/lib/locales/supported.d/local
строка en_SE.UTF-8 UTF-8
(могло бы отличаться на основе распределения; Debian Сжимают/6.0, кажется, доволен /etc/locale.gen
)sudo locale-gen
en_SE.UTF-8
(например, через /etc/default/locale
в подобных Debian системах)Смотрите в странице справочника для iptables
. Это показывает названную цель LOG
который может сделать то, что Вы хотите.
Установите регистрирующийся уровень для LOG
к 4.
# DROP everything and Log it
iptables -A INPUT -j LOG --log-level 4
iptables -A INPUT -j DROP
Настроить syslog.conf
записать эти сообщения в отдельный файл.
# /etc/syslog.conf
kern.warning /var/log/iptables.log
Перезапуск syslogd.
Debian/Ubuntu
$ sudo /etc/init.d/sysklogd restart
Fedora/CentOS/RHEL
$ sudo /etc/init.d/syslog restart
Примечание: Этот метод входа называют фиксированными приоритетами. Они - или числа или имена (1,2,3,4..) или (ОТЛАДКА, ПРЕДУПРЕДИТЕ, ИНФОРМАЦИЯ, и т.д.).
Если случайно Вы используете rsyslog
, можно создать основанный на свойстве фильтр как так:
# /etc/rsyslog.conf
:msg, contains, "NETFILTER" /var/log/iptables.log
:msg, contains, "NETFILTER" ~
Затем добавьте, что оглобли переключаются на Ваши правила iptables, что Вы хотите зарегистрироваться:
–log-prefix NETFILTER
Как альтернатива Вы могли также зарегистрировать сообщения с помощью этого типа фильтра свойства:
:msg, startswith, "iptables: " -/var/log/iptables.log
& ~
:msg, regex, "^\[ *[0-9]*\.[0-9]*\] iptables: " -/var/log/iptables.log
& ~
Примечание: Этот 2-й метод не требует никаких изменений в iptables
.
Это предполагает, что ваш брандмауэр уже делает журналы, поскольку любой простой брандмауэр должен. Для некоторых примеров требуется идентифицируемое сообщение, такое как «NetFilter» в примере SLM.
Составьте файл в RSYSLOG.D
vim /etc/rsyslog.d/10-firewall.conf
Это работает в Centos 7. Я не знаю, как убедиться, что он пришел из брандмауэра, отличного от того, чтобы искать и выйти ... CentOS странно. Не используйте это, если только следующая версия не работает.
# into separate file and stop their further processing
if ($msg contains 'IN=' and $msg contains 'OUT=') \
then {
-/var/log/firewall
& ~
}
Это работает в CentOS 7 и проверяет на содержание сообщения (заменить «Shorewall» с тем, что у вас есть в сообщении правила журнала «Дж»):
# into separate file and stop their further processing
if ($msg contains 'Shorewall') and \
($msg contains 'IN=' and $msg contains 'OUT=') \
then {
-/var/log/firewall
& ~
}
Это работает в других (Ubuntu, Debian, OpenSuse). И это лучший способ сделать это. Никаких поисков строк в сообщении:
# into separate file and stop their further processing
if ($syslogfacility-text == 'kern') and \\
($msg contains 'IN=' and $msg contains 'OUT=') \\
then -/var/log/firewall
& ~
и вот какое устройство OpenSUSE по умолчанию имеет (что, я думаю, каждый дистрибутив должен иметь и отсутствует) (разница, кажется, только «останови» вместо «& ~»; не все Системы поддерживают как синтаксики):
if ($syslogfacility-text == 'kern') and \
($msg contains 'IN=' and $msg contains 'OUT=') \
then {
-/var/log/firewall
stop
}
и для всех вышеперечисленных, не забудьте файл logrotate.d тоже:
vim /etc/logrotate.d/firewall
, содержащий:
/var/log/firewall {
rotate 7
size 500k
postrotate
# before using this, run the command yourself to make sure
# it is right... the daemon name may vary
/usr/bin/killall -HUP rsyslogd
endscript
}
/var/log/iptables
и также в/var/log/messages
. Я хочу только одну копию с этих данных вiptables.log
– Abid 18.10.2013, 10:26