UFW BLOCK записей в журнале
У меня есть много этих записей в моем журнале:
Sep 22 12:20:23 server0187 kernel: [ 7.267934] [UFW BLOCK] IN=ens3 OUT= MAC=56:00:21:32:65:eb:fe:00:00:32:65:eb:08:99 SRC=113.69.80.129 DST=se.rv.er.ip LEN=40 TOS=0x00 PREC=0x00 TTL=48 ID=63510 PROTO=TCP SPT=27738 DPT=23 WINDOW=31379 RES=0x00 SYN URGP=0
Sep 22 12:20:23 server0187 kernel: [ 7.688848] [UFW BLOCK] IN=ens3 OUT= MAC=56:00:21:32:65:eb:fe:00:00:32:65:eb:08:99 SRC=113.69.80.129 DST=se.rv.er.ip LEN=40 TOS=0x00 PREC=0x00 TTL=48 ID=63510 PROTO=TCP SPT=27738 DPT=23 WINDOW=31379 RES=0x00 SYN URGP=0
Sep 22 12:20:24 server0187 kernel: [ 7.992988] [UFW BLOCK] IN=ens3 OUT= MAC=56:00:21:32:65:eb:fe:00:00:32:65:eb:08:99 SRC=113.69.80.129 DST=se.rv.er.ip LEN=40 TOS=0x00 PREC=0x00 TTL=48 ID=63510 PROTO=TCP SPT=27738 DPT=23 WINDOW=31379 RES=0x00 SYN URGP=0
Sep 22 12:20:32 server0187 kernel: [ 16.219594] [UFW BLOCK] IN=ens3 OUT= MAC=56:00:21:32:65:eb:fe:00:00:32:65:eb:08:99 SRC=113.69.80.129 DST=se.rv.er.ip LEN=40 TOS=0x00 PREC=0x00 TTL=48 ID=63510 PROTO=TCP SPT=52457 DPT=23 WINDOW=31379 RES=0x00 SYN URGP=0
Sep 22 12:20:39 server0187 kernel: [ 23.217712] [UFW BLOCK] IN=ens3 OUT= MAC=56:00:21:32:65:eb:fe:00:00:32:65:eb:08:99 SRC=113.69.80.129 DST=se.rv.er.ip LEN=40 TOS=0x00 PREC=0x00 TTL=48 ID=63510 PROTO=TCP SPT=7040 DPT=23 WINDOW=31379 RES=0x00 SYN URGP=0
Sep 22 12:20:40 server0187 kernel: [ 24.130220] [UFW BLOCK] IN=ens3 OUT= MAC=56:00:21:32:65:eb:fe:00:00:32:65:eb:08:99 SRC=113.69.80.129 DST=se.rv.er.ip LEN=40 TOS=0x00 PREC=0x00 TTL=48 ID=63510 PROTO=TCP SPT=7040 DPT=23 WINDOW=31379 RES=0x00 SYN URGP=0
Sep 22 12:20:44 server0187 kernel: [ 28.063447] [UFW BLOCK] IN=ens3 OUT= MAC=56:00:21:32:65:eb:fe:00:00:32:65:eb:08:99 SRC=61.62.8.132 DST=se.rv.er.ip LEN=60 TOS=0x00 PREC=0x00 TTL=45 ID=33267 DF PROTO=TCP SPT=33345 DPT=23 WINDOW=14520 RES=0x00 SYN URGP=0
Sep 22 12:20:45 server0187 kernel: [ 29.063934] [UFW BLOCK] IN=ens3 OUT= MAC=56:00:21:32:65:eb:fe:00:00:32:65:eb:08:99 SRC=61.62.8.132 DST=se.rv.er.ip LEN=60 TOS=0x00 PREC=0x00 TTL=45 ID=33268 DF PROTO=TCP SPT=33345 DPT=23 WINDOW=14520 RES=0x00 SYN URGP=0
Sep 22 12:20:47 server0187 kernel: [ 31.063621] [UFW BLOCK] IN=ens3 OUT= MAC=56:00:21:32:65:eb:fe:00:00:32:65:eb:08:99 SRC=61.62.8.132 DST=se.rv.er.ip LEN=60 TOS=0x00 PREC=0x00 TTL=45 ID=33269 DF PROTO=TCP SPT=33345 DPT=23 WINDOW=14520 RES=0x00 SYN URGP=0
Sep 22 12:20:50 server0187 kernel: [ 34.272558] [UFW BLOCK] IN=ens3 OUT= MAC=56:00:21:32:65:eb:fe:00:00:32:65:eb:08:99 SRC=113.69.80.129 DST=se.rv.er.ip LEN=40 TOS=0x00 PREC=0x00 TTL=48 ID=63510 PROTO=TCP SPT=37595 DPT=23 WINDOW=31379 RES=0x00 SYN URGP=0
Sep 22 12:20:50 server0187 kernel: [ 34.667044] [UFW BLOCK] IN=ens3 OUT= MAC=56:00:21:32:65:eb:fe:00:00:32:65:eb:08:99 SRC=113.69.80.129 DST=se.rv.er.ip LEN=40 TOS=0x00 PREC=0x00 TTL=48 ID=63510 PROTO=TCP SPT=37595 DPT=23 WINDOW=31379 RES=0x00 SYN URGP=0
Sep 22 12:21:08 server0187 kernel: [ 52.296316] [UFW BLOCK] IN=ens3 OUT= MAC=56:00:21:32:65:eb:fe:00:00:32:65:eb:08:99 SRC=113.69.80.129 DST=se.rv.er.ip LEN=40 TOS=0x00 PREC=0x00 TTL=48 ID=63510 PROTO=TCP SPT=22917 DPT=23 WINDOW=31379 RES=0x00 SYN URGP=0
Sep 22 12:21:39 server0187 kernel: [ 83.646607] [UFW BLOCK] IN=ens3 OUT= MAC=56:00:21:32:65:eb:fe:00:00:32:65:eb:08:99 SRC=151.233.57.112 DST=se.rv.er.ip LEN=44 TOS=0x00 PREC=0x00 TTL=37 ID=56703 PROTO=TCP SPT=25625 DPT=23 WINDOW=30217 RES=0x00 SYN URGP=0
мой ufw
правила довольно стандартны:
22/tcp (OpenSSH) ALLOW IN Anywhere
80,443/tcp (Nginx Full) ALLOW IN Anywhere
80,443/tcp ALLOW IN Anywhere
25 ALLOW IN Anywhere
143 ALLOW IN Anywhere
993 ALLOW IN Anywhere
22 ALLOW IN Anywhere
21 ALLOW IN Anywhere
21/tcp ALLOW IN Anywhere
22/tcp (OpenSSH (v6)) ALLOW IN Anywhere (v6)
80,443/tcp (Nginx Full (v6)) ALLOW IN Anywhere (v6)
80,443/tcp (v6) ALLOW IN Anywhere (v6)
25 (v6) ALLOW IN Anywhere (v6)
143 (v6) ALLOW IN Anywhere (v6)
993 (v6) ALLOW IN Anywhere (v6)
22 (v6) ALLOW IN Anywhere (v6)
21 (v6) ALLOW IN Anywhere (v6)
21/tcp (v6) ALLOW IN Anywhere (v6)
Как мне избавиться от них?
5 ответов
Прежде чем читать этот ответ, примите во внимание следующее:
При подключении к системе имеется 65 534 используемых порта (1 - 65534) и множество разных протоколов; это означает, что существует ОГРОМНОЕ количество потенциальных "заблокированных" соединений на основе любого критерия, установленного в правилах брандмауэра для "разрешенного трафика".
Все, что связано с Интернетом, будет получать попытки подключения от различных вещей к коробке, таких как:
- Законный разрешенный трафик
- Сервисные сканеры
- Грубой силы
- Вредоносные программы / Хакеры
- и т. д. (практически все, что хочет попробовать и подключить, разрешено или нет).
Все, что находится в открытом доступе к Интернету, будет пытаться найти службы, работающие в системе, или попытаться отсканировать окно на предмет потенциальных точек взлома. Следовательно
BLOCK
оповещения в системном журнале."БЛОКИРОВКА" оповещений брандмауэра означает, что ваш брандмауэр работает должным образом, и вы не должны сильно беспокоиться о том, чтобы увидеть множество этих предупреждений, особенно если ваша система обращена непосредственно к Интернету (а не за маршрутизатором и т. Д.).
Теперь, чтобы ответить на ваши вопросы в комментариях по поводу "Есть много таких записей" и "Вот почему я волнуюсь".
Когда вы запускаете брандмауэр белого списка с UFW, в результате настроек по умолчанию UFW добавляется правило по умолчанию, которое автоматически добавляет LOG
Правило для любого трафика, не принятого или иным образом обработанного правилами брандмауэра. Например, предположим, что у меня есть сервер, и я установил его, чтобы разрешить только SSH с IP-адреса 1.2.3.4. Любой другой трафик на мой сервер, не связанный с трафиком с исходящего сервера или трафиком SSH с 1.2.3.4 на мой сервер (и наоборот в обратном направлении), будет заблокирован, и UFW BLOCK
оповещение будет отправлено в системные журналы, чтобы указать, что трафик, который не соответствует одному из моих разрешенных правил, был заблокирован. (То есть только трафик от 1.2.3.4 до порта 22 (SSH) или связанный двунаправленный трафик с этим соединением будет инициировать BLOCK
оповещения)
Вы должны быть обеспокоены этим? Точно нет. Службы, обращающиеся к сети, серверы, сети и т. Д. Получают тонну трафика от них, от сканеров служб, законных подключений, участников вредоносных угроз и т. Д. Нередко можно увидеть множество попыток подключения к сети извне большие диапазоны IP-адресов, если ваша система / сервер подключена к Интернету, потому что этот тип трафика обычно блокируется.
Теперь, чтобы ответить на ваш оригинальный вопрос о том, как отключить UFW BLOCK
оповещения. Хотя я не рекомендую отключать оповещения (поскольку это означает, что ваш брандмауэр работает должным образом), вы можете отключить элементы журнала оповещений UFW, выполнив следующие действия:
sudo ufw logging off
Обратите внимание, что я действительно не рекомендую отключать ведение журнала заблокированного трафика, если в этом нет особой необходимости (например, системный журнал занимает слишком много места на диске, что не так часто встречается даже в этих случаях), но решать вам, будете ли вы делать или нет.
Если журналы раздражают вас, потому что они загрязняют ваш системный журнал, пожалуйста, отредактируйте /etc/rsyslog.d/20-ufw.conf
, последняя строка (в 18.04) читает
# & stop
удалить #
и затем перезапустите регистрацию:
sudo service rsyslog restart
Теперь вы можете найти свои журналы UFW только в /var/log/ufw.log
В этом посте нет явного правила, запрещающего использование tcp/23(telnet), неявное правило - запрещение / ведение журнала (по умолчанию). Чтобы остановить ведение журнала и по-прежнему отказывать - создайте явное правило запрета в ens3.
UFW запретить на ens3 к любому порту 23
или просто брандмауэр Telnet, чтобы запретить Telnet на всех интерфейсах в хосте:
UFW отрицает в 23
Поместите это в самый конец правил брандмауэра. Убедитесь, что это всегда последняя запись правила:
ЗАПРЕЩАТЬ ВСЕГДА ВСЕГДА
Это то же самое, что и правило «запретить все» по умолчанию, за исключением того, что оно не регистрируется. Это позволяет продолжать регистрировать правила разрешения, предшествующие правилу запрета всех в самом конце правил.
Чтобы избавиться от них, я создал скрипт Python для анализа этих IP-адресов и явного запрета связи с моим сервером. Таким образом, в системных журналах нет предупреждений, и эти (около 3000) вредоносных IP-адресов больше не могут меня пинговать.
import glob
import gzip
import re
import subprocess
def get_lines(log_glob):
"""Return an iterator of each line in all files matching log_glob.
Lines are sorted most recent first.
Files are sorted by the integer in the suffix of the log filename.
Suffix may be one of the following:
.X (where X is an integer)
.X.gz (where X is an integer)
If the filename does not end in either suffix, it is treated as if X=0
https://www.saltycrane.com/blog/2010/01/iterating-over-lines-multiple-linux-log-files-using-python/
"""
def sort_by_suffix(fname):
m = re.search(r'.(?:\.(\d+))?(?:\.gz)?$', fname)
if m.lastindex:
suf = int(m.group(1))
else:
suf = 0
return suf
filelist = glob.glob(log_glob)
for filename in sorted(filelist, key=sort_by_suffix):
if filename.endswith('.gz'):
fh = gzip.open(filename)
else:
fh = open(filename)
for line in reversed(fh.readlines()):
yield line
fh.close()
if __name__ == "__main__":
ip = "here.your.ip.goes"
mac = "here::your::mac"
eth = "here your eth name"
# https://stackoverflow.com/questions/11264005/using-a-regex-to-match-ip-addresses-in-python
pat = re.compile(r" \[UFW BLOCK\] IN="+eth+" OUT= MAC="+mac+" SRC=(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?) DST="+ip+" LEN=")
badips = []
for i, line in enumerate(get_lines('/var/log/ufw*')):
line = line.rstrip()
line = str(line)
# ~ print(i, line)
res = re.search(pat,line)
if res is None:
if re.search(r"SRC=your\.ip\.addr\.", line) is not None:
# ~ print('Broadcast',line)
continue
else:
# ~ print(line)
continue
else:
badip = '.'.join(res.groups(0))
badips.append(badip)
badips = sorted(list(dict.fromkeys(badips)))
# ~ print(badips)
ips24 = []
for ip in badips:
if len(ips24):
lastip = ips24[-1].split('.')
thisip = ip.split('.')
if lastip[0:3] == thisip[0:3]:
if lastip[3] != "0/24" :
lastip[3] = "0/24"
ips24[-1] = '.'.join(lastip)
else:
ips24.append(ip)
else:
ips24.append(ip)
# Remove anyway all from subnet
for i, ip in enumerate(ips24):
theip = ip.split('.')
if theip[3] != "0/24":
theip[3] = "0/24"
ips24[i] = '.'.join(theip)
ips24 = sorted(list(dict.fromkeys(ips24)))
# ~ print(ips24)
ips16 = []
for ip in ips24:
if len(ips16):
lastip = ips16[-1].split('.')
thisip = ip.split('.')
if lastip[0:2] == thisip[0:2]:
if lastip[3] != "0/16" or lastip[2] != "0":
lastip[3] = "0/16"
lastip[2] = "0"
ips16[-1] = '.'.join(lastip)
else:
ips16.append(ip)
else:
ips16.append(ip)
ips16 = sorted(list(dict.fromkeys(ips16)))
# ~ print(ips16)
ufips = str(subprocess.run(['sudo','ufw','status'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)).split('\\n')
uips = []
pat = re.compile(r"Anywhere[ ]+DENY[ ]+(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?[/]?[12][46])")
for uip in ufips:
res = re.search(pat,uip)
if res is None:
# ~ print (uip)
continue
else:
badip = '.'.join(res.groups(0))
# ~ print(badip)
uips.append(badip)
uips = sorted(list(dict.fromkeys(uips)))
# ~ print(uips[:10])
newips = []
for ip in ips16:
if not ip in uips:
newips.append(ip)
print(len(badips),len(ips24),len(ips16),len(uips),len(newips))
for ip in newips:
print(ip)
proc = subprocess.Popen(['sudo','ufw','deny','from',ip,'to','any'])
proc.wait()
print('Done.')