QoS ssh
Можно ли в linux использовать этот самый QoS, чтобы ssh был доступен, даже когда весь канал забивается? Или не qos, может через TC?
Можно ли в linux использовать этот самый QoS, чтобы ssh был доступен, даже когда весь канал забивается? Или не qos, может через TC?
Как на 1 интерфейс навешать 5000 адресов и чтобы запросы шли рэндомно с этих IP?
Хочу что-то типа
iptables -A POSTROUTING -d 10.0.0.2/32 -j SNAT --to-source x.x.x.x
Насколько велика вероятность того, что запрос на сервер пришел с фейкового(подмененого) IP? Насколько я знаю, маршрутизаторы у ISP блокируют такие пакеты(если SRC изменен), то есть если клиенту выдали 3 IP, то в пакете SRC должен быть именно эти адреса, а не другие. Или есть такие ISP которые не делают таких проверок? Насколько их много?
Хочу сделать SYNPROXY, для смягчения syn флуда. Вроде все понятно, делаю как тут https://www.opennet.ru/tips/info/2928.shtml или тут https://habr.com/ru/company/infobox/blog/232227/
Общий смысл ясен, исключить из conntrack syn, метить INVALID ложные ACK, отправлять куку, потом все это дело отправлять в SYNPROXY, там проверяется ACK от клиента и если он правильный, то создавать соединение, если нет, то следующее правило дропает пакеты.
Не пойму почему не отправляются куки, смотрю изменения через
netstat -s | grep -Ei "cook"
10 SYN cookies sent
2 SYN cookies received
netstat -s | grep -Ei "listen"
0 SYNs to LISTEN sockets dropped
tcpdump -i any -n port 80 and src 10.0.0.2
23:22:03.259081 IP 10.0.0.2.80 > 46.39.196.229.5827: Flags [S.], seq 515620665, ack 1531057089, win 0, length 0
23:22:03.259094 IP 10.0.0.2.80 > 191.24.222.41.5829: Flags [S.], seq 2946937250, ack 1684158566, win 0, length 0
23:22:03.259305 IP 10.0.0.2.80 > 73.95.252.199.5830: Flags [S.], seq 4071935182, ack 825496706, win 0, length 0
23:22:03.259382 IP 10.0.0.2.80 > 68.156.77.164.5831: Flags [S.], seq 3453282316, ack 1806698451, win 0, length 0
23:22:03.259417 IP 10.0.0.2.80 > 136.74.64.98.5832: Flags [S.], seq 966049922, ack 1438489520, win 0, length 0
23:22:03.259443 IP 10.0.0.2.80 > 5.39.64.98.5833: Flags [S.], seq 3456217848, ack 1877534406, win 0, length 0
23:22:03.259567 IP 10.0.0.2.80 > 75.2.162.73.5834: Flags [S.], seq 2934636789, ack 2019708598, win 0, length 0
23:22:03.259658 IP 10.0.0.2.80 > 151.8.33.142.5835: Flags [S.], seq 923844625, ack 176880257, win 0, length 0
23:22:03.259849 IP 10.0.0.2.80 > 141.122.230.196.5836: Flags [S.], seq 2816293618, ack 666495559, win 0, length 0
23:22:03.259892 IP 10.0.0.2.80 > 247.21.5.9.5837: Flags [S.], seq 2611127790, ack 1590842067, win 0, length 0
23:22:03.260048 IP 10.0.0.2.80 > 24.170.93.203.5841: Flags [S.], seq 2875532378, ack 1007533654, win 0, length 0
23:22:03.260099 IP 10.0.0.2.80 > 243.236.162.73.5839: Flags [S.], seq 4142336230, ack 855143884, win 0, length 0
23:22:03.260100 IP 10.0.0.2.80 > 106.106.151.181.5840: Flags [S.], seq 3272823395, ack 1830105953, win 0, length 0
23:22:03.260186 IP 10.0.0.2.80 > 46.79.157.229.5842: Flags [S.], seq 464842204, ack 958111797, win 0, length 0
23:22:03.260215 IP 10.0.0.2.80 > 95.152.222.141.5843: Flags [S.], seq 69167228, ack 1910363156, win 0, length 0
23:22:03.262073 IP 10.0.0.2.80 > 73.88.143.121.5844: Flags [S.], seq 404959580, ack 21012037, win 0, length 0
23:22:03.262219 IP 10.0.0.2.80 > 208.27.201.254.5847: Flags [S.], seq 2806492340, ack 715377600, win 0, length 0
23:22:03.262246 IP 10.0.0.2.80 > 154.236.128.246.5846: Flags [S.], seq 3797225913, ack 1438349079, win 0, length 0
23:22:03.262309 IP 10.0.0.2.80 > 157.45.122.93.5848: Flags [S.], seq 2918462004, ack 2056743493, win 0, length 0^C
hping3 --syn 10.0.0.2 -p 80 --rand-source -i u100
hping3 --syn 10.0.0.2 -p 80 --rand-source --flod
cat /etc/sysctl.conf
fs.file-max = 999999
net.core.netdev_max_backlog=10000
net.core.somaxconn=512 //больше нет смысла ставить, у nginx по умолчанию backlog=512
net.ipv4.tcp_syncookies=2 //отправлять куки всегда
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_max_tw_buckets = 65536
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_tw_reuse = 0
net.ipv4.tcp_fin_timeout = 5
net.ipv4.tcp_keepalive_time = 1800
net.ipv4.tcp_keepalive_probes = 7
net.ipv4.tcp_keepalive_intvl = 75
net.core.wmem_max = 33554432
net.core.rmem_max = 33554432
net.core.rmem_default = 8388608
net.core.wmem_default = 4194394
net.ipv4.tcp_rmem = 4096 8388608 16777216
net.ipv4.tcp_wmem = 4096 4194394 16777216
net.netfilter.nf_conntrack_max=3000000
net.netfilter.nf_conntrack_tcp_loose = 0
net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 1
net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 1
net.ipv4.ip_forward = 0
net.ipv4.tcp_synack_retries = 1
iptables -t raw -nvL
Chain PREROUTING (policy ACCEPT 2871K packets, 115M bytes)
pkts bytes target prot opt in out source destination
2851K 114M CT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x02 CT notrack
Chain INPUT (policy ACCEPT 21481 packets, 1127K bytes)
pkts bytes target prot opt in out source destination
2602K 104M SYNPROXY tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp ctstate INVALID,UNTRACKED SYNPROXY sack-perm timestamp wscale 7 mss 1460
6 240 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate INVALID
Почему такое не работает?
-A INPUT -p tcp --dport 80 -m state --state NEW -m hashlimit --hashlimit-above 3/sec --hashlimit-burst 1 --hashlimit-mode srcip --hashlimit-name syn -j DROP
hping3 --syn 10.0.0.2 -p 80 -i u10000
tcpdump -n -i any port 80 and src 10.0.0.3
130866 packets captured
131283 packets received by filter
417 packets dropped by kernel
iptables -nvL INPUT
pkts bytes target prot opt in out source destination
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 state NEW limit: above 3/sec burst 1 mode srcip
cat /proc/net/ipt_hashlimit/syn
3600 10.0.0.3:0->0.0.0.0:0 0 0 0
3252 10.0.0.1:0->0.0.0.0:0 0 0 0
Временами бывает что сервер(Debian 9.4) недоступен по сети, не знаю то ли у провайдера (сапорт пока молчит), то ли на сервере проблемы.
Симптомы
* Zabbix(на этом же сервере) показывает падение трафика почти до 0
* PPS тоже 0
* Пинг с другого сервера FAIL
* Нагрузка на проц падает
* netstat -na | grep SYN_RECV | wc -l = 502
* dropped\missed\fifo по нулям (network-top)
* В syslog пусто
Единственная аномалия это возросшие записи conntrack c ~7000 до 441 389 записей с флагом SYN_SENT UNREPLIED. Но переполнения таблицы не регистрируется.
/etc/sysctl.conf
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 10000
net.core.netdev_budget = 600
net.netfilter.nf_conntrack_max=1048576
net.netfilter.nf_conntrack_tcp_loose = 0
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_syncookies = 1
net.netfilter.nf_conntrack_tcp_timeout_established = 7200
Есть hex последовательность символов E2808c(utf-8 ZERO WIDTH NON-JOINER) в строке, их надо удалять. Как написать регулярку по их замене?
Пробую
text.replace(/\xe2\x80\x8c/gm, "")
не заменяет
text.match(/\xe2\x80\x8c/gm)
null
У меня есть в iptables(ipset) список около 20000 IP, которые заблокированы. Хотелось бы убрать их из iptables и перенести блокировку в nginx. На ум приходит только MAP
Собственно задача, дать блокируемому адресу подключиться к 443 порту и выдать статичную страницу с уведомлением о блокировке. Сейчас же блокируемый тупо не может даже законнектиться к серверу и думает что ничего не работает.
Хочу динамический fastcgi_read_timeout в зависимости от URL. Например при /stats 1m, /ajax 1s, остальные 3s
Пытаюсь
map $uri $tm {
default "3s";
"/stats" "1m";
"/ajax" "1s"
}
fastcgi_read_timeout $tm;
set $tm "1s";
fastcgi_read_timeout $tm;
set $fpm_sock "/run/php/prod.sock";
fastcgi_pass unix:$fpm_sock;
Есть nginx+php-fpm через unix socket.
Пул static
...
pm = static
pm.max_children = 300
pm.max_requests = 1000
request_terminate_timeout = 60s
listen.backlog = -1
...
fastcgi_connect_timeout 1s;
На MacOS 10.13, Safari 11.1.2 при открывании напрямую файла .m3u8 выходит сообщение о том, что отсутствует плагин. Также не работают плееры, которые используют HLS в качестве доставки видео. Вроде как HLS родной формат Apple, что ж ему надо собаке?
С таким конфигом сервер выдает всегда 404, когда запрос по http идет. Если https использутся то норм
location / {
if ($scheme = "http") {
}
try_files $uri $uri/ @php;
}
location / {
try_files $uri $uri/ @php;
}
Раньше был сафари под винду, сейчас его нет. Есть какие то эмуляторы
iPadian - платный, пробовал какую то бесплатную версию, ничего не получилось
MobiOne Studio - проект официально прекращен
Air iPhone - не удалось установить
Xamarin - не понятно, вроде какой то фреймворк для Visual Studio
Appetize.Io - онлайн сервис, реально работает, но не удобно. Нет консоли, лимит по времени, маленький экран
Что ещё есть??
Как в Symfony 2 сделать route, чтобы в него попадали все картинки
/images/*
/images/dir/3/pic.jpg
/images/pic.jpg
/images/subdir/pic.jpg
/**
* @Route("/images/*", name="img")
*/
public function image(Request $request){}
В последнем хроме почему то примерно через 30-120 сек приостанавливается видео. При этом звук продолжает идти
Навесил уже все события(error, abort, pause, suspend, interruptend, ended...) - ничего подозрительного нет. Событие progress генерируется, но видео остановлено. Ошибок нет video.error = null. С сетью все норм, в консоле пусто. Проверял в Опере - нормально идет уже пол часа.
Параметры такие
autoplay=false
muted=true
Делаю стрим: rtp => ffmpeg => rtmp
Ffmpeg берет поток из RTP(h264+aac), без перекодировки видео и шлет его на rtmp сервер. Все нормально работает, но если видео остановить(нажать на паузу), то в rtmp не будут передаваться ключевые кадры(iframe) и клиент не увидит статичной картинки. Если нажать на play, то нормально, видео пойдет.
Можно как-нибудь заставить ffmpeg генерировать i-frame(ключевой) без перекодировки(-vcodec copy) видео? Точнее нужно отправлять последний iframe(кэшировать?), если он не был отправлен допустим последние 3 сек. В нормальном режиме интервал около 2-3 сек.
Делала через -force_key_frames 0:00:01 не помогает
Или как заставить слать этот кадр источник(в моем случае браузер, webrtc). Получаю поток через getUserMedia(mediaConstraints), но в параметрах нет возможности указать что то типа force keyframe interval
Мне нужна таблица audioProfileLevelIndication Values из ISO/IEC 14496-1 Coding of audio-visual objects — Part 1
Вот эта
https://www.iso.org/standard/55688.html
Неужели я должен ее покупать и почему? Неужели эта информация такая секретная?
Хочу настроить aac и h264 кодеки
Читаю https://tools.ietf.org/html/rfc3640#section-3.3.6
Настройка такая(5.1 channel AAC stream with a
sampling rate of 48 kHz)
streamtype=5;profile-level-id=16;mode=AAC-hbr;config=11B0;sizelength=13;indexlength=3;indexDeltaLength=3
AudioSpecificConfig ()
{
audioObjectType; 5 bslbf
samplingFrequencyIndex; 4 bslbf
if ( samplingFrequencyIndex==0xf )
samplingFrequency; 24 uimsbf
channelConfiguration; 4 bslbf
if ( audioObjectType == 1 || audioObjectType == 2 ||
audioObjectType == 3 || audioObjectType == 4 ||
audioObjectType == 6 || audioObjectType == 7 )
GASpecificConfig();
if ( audioObjectType == 8 )
CelpSpecificConfig();
if ( audioObjectType == 9 )
HvxcSpecificConfig();
if ( audioObjectType == 12 )
TTSSpecificConfig();
if ( audioObjectType == 13 || audioObjectType == 14 ||
audioObjectType == 15 || audioObjectType==16)
StructuredAudioSpecificConfig();
if ( audioObjectType == 17 || audioObjectType == 19 ||
audioObjectType == 20 || audioObjectType == 21 ||
audioObjectType == 22 || audioObjectType == 23 )
GASpecificConfig();
if ( audioObjectType == 24)
ErrorResilientCelpSpecificConfig();
if ( audioObjectType == 25)
ErrorResilientHvxcSpecificConfig();
if ( audioObjectType == 26 || audioObjectType == 27)
ParametricSpecificConfig();
if ( audioObjectType == 17 || audioObjectType == 19 ||
audioObjectType == 20 || audioObjectType == 21 ||
audioObjectType == 22 || audioObjectType == 23 ||
audioObjectType == 24 || audioObjectType == 25 ||
audioObjectType == 26 || audioObjectType == 27 ) {
epConfig; 2 bslbf
if ( epConfig == 2 || epConfig == 3 ) {
ErrorProtectionSpecificConfig();
}
profile-level-id=16
config=11B0
Заметил, что на многих сайтах сейчас есть всплывашка «у нас есть куки(внезапно!), а вы не знали?».
Ну потом:
Да, я знаю идите нах.
Или:
Ох тыж, вот херня, я и не знал что тут есть куки, наверное я должен покинуть этот сайт.
Для чего, для кого эта дичь рассчитана?
Мне нужно в проекте https://github.com/ant-media/Ant-Media-Server изменить пару строчек и пересобрать все это дело. Опыт был только с проектами Android, но там сырой Java и вроде как с maven. Недолго думая установил IntelliJ Idea, скачал репозиторий, распаковал папку и сделал импорт Maven project из idea. Вроде как все импортировал, проиндексировал, но когда нажимаю Rebuild Project, то вылазит куча ошибок непонятных мне.
Типа таких
Error:(21, 33) java: cannot find symbol
symbol: class IScope
location: package org.red5.server.api.scope
import org.red5.server.api.scope.IScope;
| ← назад | следующие → |