Проброс портов в ipfw | FreeBSD

Итак задача тривиальная – надо получить доступ к машине под Windows за натом.

Имеем:

- машину к которой нужно получить доступ под Windows с realVNC (к примеру)
- шлюз на FreeBSD с kernel NAT (ipfw)
- машину с Windows (с маршрутизируемым IP) c realVNC клиентом.

1. Ставим на машину с айпи, скажем, 172.16.5.233, к которой хотим коннектиться, сервер VNC.
2. На шлюзе в правилах фаерволла правим правило NAT:

${fwcmd} nat 1 config if ${LanOut} log redirect_port tcp 172.16.5.233:5900 5900

3. Перезапускаем сеть:

#/etc/netstart

4. Коннектимся к внешнему айпи шлюза на порт 5900 клиентом VNC.

Получаем доступ к виндовой машине за натом.

PS: Конечно порт нужно менять, ограничивать доступ и т.д. и т.п.

ipfw: install_state: Too many dynamic rules | FreeBSD

Если ipfw во FreeBSD выбрасывает на консоль ошибку:

ipfw: install_state: Too many dynamic rules

Может помочь увеличение переменной net.inet.ip.fw.dyn_max
Смотрим значение переменной:

#sysctl net.inet.ip.fw.dyn_max

Рекомендуют выставлять net.inet.ip.fw.dyn_max=16384
Делаем

#sysctl net.inet.ip.fw.dyn_max=16384

Или прописываем переменную в sysctl.conf

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

#sysctl net.inet.ip.fw.dyn_count

У меня сообщение ipfw: install_state: Too many dynamic rules иногда проскакивает по причине ограничения одновременных подключений с одного айпи на 80 порт.

Есть ещё один совет – просмотреть количество незакрытых соединений:

#netstat -na | grep FIN_WAIT_2 | wc -l

Если количество около 4000 – запретить ожидание:

#sysctl net.inet.ip.fw.dyn_keepalive=0

По умолчанию переменная установлена – в 1.

Активность по ip адресу | Apache

Иногда полезно просмотреть с какого айпи чаще всего пользователи заходят на Ваш веб сайт. Ну скажем если вы подозреваете что кто-то злоупотребляет количеством одновременных соединений с одной машины.
Парсим лог апача выбираем уникальные айпи и количество хитов.

#sort /var/log/httpd-access.log | awk '{print $1}' | uniq -c | sort -n > /tmp/who

Получаем список – количество вхождений, и айпи.

23 182.24.23.5
24 23.10.234.54
27 129.34.25.333
и т.д.

Кстати ограничить количество соединений на 80 порт можно строкой фаервола (ipfw):

${fwcmd} add allow tcp from any to me 80 limit src-addr 200

После src-addr пишем количество одновременных коннектов с одного айпи.