Посади на отдельный порт.
Пьянка без секса – признак алкоголизма.
Настоятельно просим вас при общении соблюдать Правила форума и законы РФ. Наша тематика вне политики, поэтому воздержитесь от обсуждения ситуации на Украине и связанных с ней событий, независимо от того, какую сторону вы поддерживаете.
Также напоминаем, что наш форум находится в доменной зоне .ru, физически расположен на российских серверах и мы соблюдаем действующее законодательство России. Любые сообщения о политике будут удаляться.
Linux Forum → Debian GNU/Linux → Помогите раздать инет в сети
Посади на отдельный порт.
Вот тут не совсем понял. У меня открыт 22 порт:
$IPT -A INPUT -p tcp --dport 22 -j ACCEPT
$IPT -A INPUT -p udp --dport 22 -j ACCEPTЕго закрыть, применить правила:
$IPT -A INPUT -p tcp -m state --state NEW --dport 22 -m recent --name sshattack --set
$IPT -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --name sshattack --rcheck --seconds 60 --hitcount 3 -j LOG --log-prefix 'SSH REJECT: '
$IPT -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --name sshattack --rcheck --seconds 60 --hitcount 3 -j REJECT --reject-with tcp-resetА SSH тем временем будет работать на другом порту? Или как? Закрыть 22 порт вообще? Только вот исходя из этой темы http://linuxforum.ru/viewtopic.php?pid=217215#p217215 (конкретно этого поста) - это бесполезно.
И вот еще вопрос появился. fail2ban отказывается работать с iptables.
2011-10-29 14:40:55,038 fail2ban.actions.action: ERROR iptables -N fail2ban-httpd
iptables -A fail2ban-httpd -j RETURN
iptables -I INPUT -p tcp --dport http -j fail2ban-httpd returned 400
2011-10-29 14:40:55,039 fail2ban.jail : INFO Jail 'ssh' started
2011-10-29 14:40:55,042 fail2ban.actions.action: ERROR iptables -N fail2ban-ssh-ddos
iptables -A fail2ban-ssh-ddos -j RETURN
iptables -I INPUT -p tcp -m multiport --dports ssh -j fail2ban-ssh-ddos returned 400
2011-10-29 14:40:55,043 fail2ban.jail : INFO Jail 'named-refused-tcp' started
2011-10-29 14:40:55,049 fail2ban.actions.action: ERROR iptables -N fail2ban-named-refused-tcp
iptables -A fail2ban-named-refused-tcp -j RETURN
iptables -I INPUT -p tcp -m multiport --dports domain,953 -j fail2ban-named-refused-tcp returned 200Погуглил. Нашел фикс. Добавить в iptables-multiport.conf: actionstart = sleep ${RANDOM:0:1}.${RANDOM: -1:1} и actionstop = sleep ${RANDOM:0:1}.${RANDOM: -1:1}. Но ошибка остается та же.
Если слушать всех тогда лучше вообще отказаться от всех открытых портов.
1) повесить на отдельный порт выше 10000.
2) использовать ключи.
3) дать доступ к ssh токо с нужных айпи для меня это предпочтительнее.
4) Можно написать свою цепочку и уже там извращаться.
В вашем примере это работать не будет
$IPT -A INPUT -p tcp -m state --state NEW --dport 22 -m recent --name sshattack --set
$IPT -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --name sshattack --rcheck --seconds 60 --hitcount 3 -j LOG --log-prefix 'SSH REJECT: '
$IPT -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --name sshattack --rcheck --seconds 60 --hitcount 3 -j REJECT --reject-with tcp-reset
Так как вы раньше открыли порты
$IPT -A INPUT -p tcp --dport 22 -j ACCEPT
$IPT -A INPUT -p udp --dport 22 -j ACCEPT
А вообщем чтоб не изобретать велосипед.
http://www.google.ru/search?aq=f&gc … %D0%B0+ssh
Самому лень писать вот нашол по ссылкам ваш скрипт в правильном оформлении.
## Создание цепочки правил sshguard
# Максимум 2 новых запроса в минуту для одного ip
/sbin/iptables -N sshguard
# Вкл. лог по желанию
#/sbin/iptables -A sshguard -m state --state NEW -m recent --name SSH --rcheck --seconds 60 --hitcount 2 -j LOG --log-prefix "SSH-shield: "
/sbin/iptables -A sshguard -m state --state NEW -m recent --name SSH --update --seconds 60 --hitcount 2 -j DROP
/sbin/iptables -A sshguard -m state --state NEW -m recent --name SSH --set -j ACCEPT
/sbin/iptables -A sshguard -j ACCEPT
## Применение для трафика ssh цепочку sshguard
/sbin/iptables -A INPUT -p tcp --dport 22 -j sshguardЕсли слушать всех тогда лучше вообще отказаться от всех открытых портов.
1) повесить на отдельный порт выше 10000.
Я о том, что для тех, кому понадобится, не составит труда проверить на каком порту висит SSH. Или я что-то не так понял?
3) дать доступ к ssh токо с нужных айпи для меня это предпочтительнее.
Согласен, но как быть, если IP динамический?
Я о том, что для тех, кому понадобится, не составит труда проверить на каком порту висит SSH. Или я что-то не так понял?
Устанут
Согласен, но как быть, если IP динамический?
Есть ещё мак адрес.
Логирование, случайно, не переносится в другое место, после этого правила?
#/sbin/iptables -A sshguard -m state --state NEW -m recent --name SSH --rcheck --seconds 60 --hitcount 2 -j LOG --log-prefix "SSH-shield: "Что-то в логах подозрительно чисто уже пол дня, кроме авторизаций с IP адресов, которые знают пароли.
Справился с этими ошибками:
2011-10-29 14:40:55,038 fail2ban.actions.action: ERROR iptables -N fail2ban-httpd
iptables -A fail2ban-httpd -j RETURN
iptables -I INPUT -p tcp --dport http -j fail2ban-httpd returned 400
2011-10-29 14:40:55,039 fail2ban.jail : INFO Jail 'ssh' started
2011-10-29 14:40:55,042 fail2ban.actions.action: ERROR iptables -N fail2ban-ssh-ddos
iptables -A fail2ban-ssh-ddos -j RETURN
iptables -I INPUT -p tcp -m multiport --dports ssh -j fail2ban-ssh-ddos returned 400
2011-10-29 14:40:55,043 fail2ban.jail : INFO Jail 'named-refused-tcp' started
2011-10-29 14:40:55,049 fail2ban.actions.action: ERROR iptables -N fail2ban-named-refused-tcp
iptables -A fail2ban-named-refused-tcp -j RETURN
iptables -I INPUT -p tcp -m multiport --dports domain,953 -j fail2ban-named-refused-tcp returned 200Открываем /usr/bin/fail2ban-client. Находим:
beautifier.setInputCmd(c)и выше добавляем строку:
time.sleep(0.1)Должно выглядеть примерно так:
def __processCmd(self, cmd, showRet = True):
beautifier = Beautifier()
for c in cmd:
time.sleep(0.1)
beautifier.setInputCmd(c)После рестарт fail2ban:
/etc/init.d/fail2ban restartСмотрим лог:
2011-10-30 03:08:50,185 fail2ban.jail : INFO Jail 'vsftpd' stopped
2011-10-30 03:08:51,091 fail2ban.jail : INFO Jail 'apache-noscript' stopped
2011-10-30 03:08:51,293 fail2ban.jail : INFO Jail 'ssh-ddos' stopped
2011-10-30 03:08:51,402 fail2ban.jail : INFO Jail 'ssh' stopped
2011-10-30 03:08:51,500 fail2ban.jail : INFO Jail 'named-refused-tcp' stopped
2011-10-30 03:08:51,501 fail2ban.server : INFO Exiting Fail2ban
2011-10-30 03:08:52,258 fail2ban.server : INFO Changed logging target to /var/log/fail2ban.log for Fail2ban v0.8.4-SVN
2011-10-30 03:08:52,358 fail2ban.jail : INFO Creating new jail 'apache-noscript'
2011-10-30 03:08:52,359 fail2ban.jail : INFO Jail 'apache-noscript' uses poller
2011-10-30 03:08:52,470 fail2ban.filter : INFO Added logfile = /var/log/apache2/error.log
2011-10-30 03:08:52,570 fail2ban.filter : INFO Set maxRetry = 250
2011-10-30 03:08:52,873 fail2ban.filter : INFO Set findtime = 600
2011-10-30 03:08:52,973 fail2ban.actions: INFO Set banTime = 36000
2011-10-30 03:08:54,184 fail2ban.jail : INFO Creating new jail 'vsftpd'
2011-10-30 03:08:54,184 fail2ban.jail : INFO Jail 'vsftpd' uses poller
2011-10-30 03:08:54,285 fail2ban.filter : INFO Added logfile = /var/log/vsftpd.log
2011-10-30 03:08:54,386 fail2ban.filter : INFO Set maxRetry = 6
2011-10-30 03:08:54,688 fail2ban.filter : INFO Set findtime = 600
2011-10-30 03:08:54,789 fail2ban.actions: INFO Set banTime = 36000
2011-10-30 03:08:55,999 fail2ban.jail : INFO Creating new jail 'ssh-ddos'
2011-10-30 03:08:55,999 fail2ban.jail : INFO Jail 'ssh-ddos' uses poller
2011-10-30 03:08:56,101 fail2ban.filter : INFO Added logfile = /var/log/auth.log
2011-10-30 03:08:56,202 fail2ban.filter : INFO Set maxRetry = 6
2011-10-30 03:08:56,504 fail2ban.filter : INFO Set findtime = 600
2011-10-30 03:08:56,605 fail2ban.actions: INFO Set banTime = 36000
2011-10-30 03:08:57,713 fail2ban.jail : INFO Creating new jail 'ssh'
2011-10-30 03:08:57,713 fail2ban.jail : INFO Jail 'ssh' uses poller
2011-10-30 03:08:57,814 fail2ban.filter : INFO Added logfile = /var/log/auth.log
2011-10-30 03:08:57,915 fail2ban.filter : INFO Set maxRetry = 6
2011-10-30 03:08:58,217 fail2ban.filter : INFO Set findtime = 600
2011-10-30 03:08:58,318 fail2ban.actions: INFO Set banTime = 36000
2011-10-30 03:09:00,364 fail2ban.jail : INFO Creating new jail 'named-refused-tcp'
2011-10-30 03:09:00,364 fail2ban.jail : INFO Jail 'named-refused-tcp' uses poller
2011-10-30 03:09:00,465 fail2ban.filter : INFO Set maxRetry = 10
2011-10-30 03:09:00,767 fail2ban.filter : INFO Set findtime = 600
2011-10-30 03:09:00,868 fail2ban.actions: INFO Set banTime = 36000
2011-10-30 03:09:01,978 fail2ban.jail : INFO Jail 'apache-noscript' started
2011-10-30 03:09:02,081 fail2ban.jail : INFO Jail 'vsftpd' started
2011-10-30 03:09:02,183 fail2ban.jail : INFO Jail 'ssh-ddos' started
2011-10-30 03:09:02,286 fail2ban.jail : INFO Jail 'ssh' started
2011-10-30 03:09:02,387 fail2ban.jail : INFO Jail 'named-refused-tcp' startedНеделю назад начали ddos'ить сайты. Попытался добавить такие вот правила в firewall:
iptables -I INPUT 1 -p tcp -m tcp --dport 80 --tcp-flags FIN,SYN,RST,ACK SYN -m connlimit --connlimit-above 15 --connlimit-mask 32 -j DROP
ipset -N blacklist iphash
iptables -A INPUT -p tcp -m tcp --dport 80 -m set --set blacklist src -j DROP
iptables -A INPUT -s x.x.x.x -j DROP
iptables -A INPUT -p tcp -m tcp --dport 80 -m string --string "GET / HTTP" --algo kmp --to 1024 -m recent --set --name httpddos --rsource
iptables -A INPUT -p tcp -m tcp --dport 80 -m string --string "GET / HTTP" --algo kmp --to 1024 -m recent --update --seconds 10 --hitcount 2 --name httpddos --rsource -j DROPНо вот столкнулся с проблемой установки ipset. Не рискнул с пересборкой ядра.
Как можно реализовать эти правила по другому?
Здравствуйте! Я уже писал этой теме по поводу того что я сделал шлюз как тут описано
Ну проблема следующая:
Те компьютеры которые пользуются шлюзом могут качать с торрента и играть игры хотя по скрипты только открыты порты 22, 443, 80. Немогу понять в чём дело уже перерыл всё (( помогите пожалуйста.
Вот мой скрипт:
#!/bin/bash
# Тут в принципе может и не надо этого всего но не помеха вдруг какой модуль не подгружен или форвардинг не включен
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
# Объявление переменных
export IPT="iptables"
# Интерфейс который смотрит в интернет
export WAN=eth0
# Локальная сеть
export LAN=eth1
export LAN_IP_RANGE=192.168.1.80
# Очистка всех цепочек iptables
$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X
# Закрываем изначально ВСЁ (т.е. изначально все что не разрешено - запрещено):
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
# разрешаем локальный траффик для loopback и внутренней сети
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A INPUT -i $LAN -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
$IPT -A OUTPUT -o $LAN -j ACCEPT
# Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении.
# Пропускать все уже инициированные соединения, а также дочерние от них
$IPT -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
# Пропускать новые, а так же уже инициированные и их дочерние соединения
$IPT -A OUTPUT -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# Разрешить форвардинг для новых, а так же уже инициированных и их дочерних соединений
$IPT -A FORWARD -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# Включаем фрагментацию пакетов. Необходимо из за разных значений MTU
$IPT -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
# Отбрасывать все пакеты, которые не могут быть идентифицированы и поэтому не могут иметь определенного статуса.
$IPT -A INPUT -m state --state INVALID -j DROP
$IPT -A FORWARD -m state --state INVALID -j DROP
# Приводит к связыванию системных ресурсов, так что реальный обмен данными становится не возможным.
$IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP
# Разрешаем доступ из внутренней сети наружу
$IPT -A FORWARD -i $LAN -o $WAN -j ACCEPT
# Запрещаем доступ снаружи во внутреннюю сеть
$IPT -A FORWARD -i $WAN -o $LAN -j REJECT
# Маскарадинг
$IPT -t nat -A POSTROUTING -o $WAN -s $LAN_IP_RANGE -j MASQUERADE
# Открываем порт для ssh
$IPT -A INPUT -i $WAN -p tcp --dport 22 -j ACCEPT
# Открытие 443 порта
$IPT -A INPUT -p tcp --dport 443 -j ACCEPT
# Открываем 80 порт для веб сайтов
$IPT -A INPUT -i $WAN -p all --dport 80 -j ACCEPT
# **********************************************************************
# Вывод информации о состоянии
$IPT -LДелал как мне советовали вот в этом посте http://linuxforum.ru/viewtopic.php?pid=203146#p203146
wild_osp, Это
# Пропускать новые, а так же уже инициированные и их дочерние соединения
$IPT -A OUTPUT -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# Разрешить форвардинг для новых, а так же уже инициированных и их дочерних соединений
$IPT -A FORWARD -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPTменяй на (убираем NEW)
# Пропускать новые, а так же уже инициированные и их дочерние соединения
$IPT -A OUTPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
# Разрешить форвардинг для новых, а так же уже инициированных и их дочерних соединений
$IPT -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPTтолько учти с открытием нужных портов повозиться придется, то бишь открыть нужные вручную для OUTPUT и FORWARD цепочек
ы. Старые торренты (ESTABLISHED) качаться после этого будут, новые не должны, вообще с торрентами не так все просто.
Убрал NEW но по прежнему торрент работает (
ы. Старые торренты (ESTABLISHED) качаться после этого будут, новые не должны, вообще с торрентами не так все просто.
ы. Старые торренты (ESTABLISHED) качаться после этого будут, новые не должны, вообще с торрентами не так все просто.
Специально добавил новый файл торрента и оно начало качать (ну программа Mail Agent перестала работать) ((( Ну по идее же в начале всё закрыто. то есть должны работать только те порты которые в самом низу открыты.
по идее же в начале всё закрыто. то есть должны работать только те порты которые в самом низу открыты.
Если есть NEW то соединения могут быть открыты самой программой.
Лучше расскажу для чего нужен шлюз:
Есть сеть на 50 машин в интернет нужно пускать примерно 20-25 машин и что бы у них работало всё кроме торрента. Может для этого можно что нибудь другое придумать?
Проверил, правда на шлюзе запустил торрент клиент, без NEW и просмотрев чтобы были закрыты порты которыми он может пользоваться - при добавлении нового торрента - нет связи и пиров не видит.
может создать отдельное правило что бы закрыть порты на торрент? потому что при добавлении нового торрента всё равно и пиры и сиды есть и скачка начинается! Ну когда я убираю NEW половину сайтов перестают работать!
Ну когда я убираю NEW половину сайтов перестают работать!
Я же сказал, что если убираешь NEW, то все нужные порты, во всех цепочках (касается INPUT, OUTPUT, FORWARD) необходимо ручками прописывать, плюс не забывать какому порту нужно tcp, какому udp, а каким и то и то, понятно что не просто, но других надежных вариантов нет.
Пример для сервера:
# Разрешаем пини
iptables -A INPUT -i ppp0 -p icmp -j ACCEPT
iptables -A OUTPUT -o ppp0 -p icmp -j ACCEPT
# Разрешаем http
iptables -A INPUT -i ppp0 -p tcp --sport 80 -j ACCEPT
iptables -A OUTPUT -o ppp0 -p tcp --dport 80 -j ACCEPT
# Разрешаем https
iptables -A INPUT -i eth1 -p tcp --dport 443 -j ACCEPT
iptables -A OUTPUT -o eth1 -p tcp --sport 443 -j ACCEPT
# Разрешаем ftp
iptables -A INPUT -i ppp0 -p tcp --sport 21 --dport 21 -j ACCEPT
iptables -A OUTPUT -o ppp0 -p tcp --sport 21 --dport 21 -j ACCEPTСоответственно если где-то форвард нужен, хотя вряд ли.
спасибо буду пробовать!
Вопрос по той же теме, поэтому не стал создавать новую.
Проблема в том что не получается раздать интернет. Есть сервер: DHCP+SAMBA+SQUID. Два интерфейса: eth0 - 192.168.1.21 интернет и eth1 -192.168.0.21 - локальная сеть.
Пробую заворачивать трафик таким образом:
iptables -t nat -A PREROUTING -s 192.168.0.0/24 -d ! 192.168.1.21 -p tcp -m multiport --dport 80,8080,8000 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -s 192.168.0.0/24 -d ! 192.168.0.21 -p tcp -m multiport --dport 80,8080,8000 -j REDIRECT --to-port 3128
Интернета нет, а в браузере:
ERROR
The requested URL could not be retrieved
The following error was encountered while trying to retrieve the URL: http://www.yandex.ru/?
Access Denied.
Access control configuration prevents your request from being allowed at this time. Please contact your service provider if you feel this is incorrect.
Your cache administrator is webmaster.
Generated Mon, 14 Nov 2011 13:06:32 GMT by server-ae (squid/2.7.STABLE9)
Пока оставил так, что бы интернет был.
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Что делаю не так?
iptables -t nat -A PREROUTING -s 192.168.0.0/24 -d ! 192.168.1.21 -p tcp -m multiport --dport 80,8080,8000 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -s 192.168.0.0/24 -d ! 192.168.0.21 -p tcp -m multiport --dport 80,8080,8000 -j REDIRECT --to-port 3128...
Что делаю не так?
Не понятна причина данных манипуляций.
Чем не устраивает:
$IPT -t nat -A POSTROUTING -o $WAN -s $LAN_IP_RANGE -j MASQUERADE
Консоль:iptables -t nat -A PREROUTING -s 192.168.0.0/24 -d ! 192.168.1.21 -p tcp -m multiport --dport 80,8080,8000 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -s 192.168.0.0/24 -d ! 192.168.0.21 -p tcp -m multiport --dport 80,8080,8000 -j REDIRECT --to-port 3128
Тут явно не верно. Я бы как то так завернул.Консоль:iptables -t nat -A PREROUTING -i eth0 -p tcp --source 192.168.0.0/24 -m multiport --dport 80,8080,8000 -j DNAT --to-destination 192.168.1.21:3128
Получается весь траф по tcp из сети 192.168.0.0/24 с порта 80,8080,8000 завернуть на 192.168.1.21:3128
И этого будет достаточно, что бы трафик инетовский пустить через сквид. Интерфейс eth1 вообще не трогайте.
Не работает с таким правилом к сожалению.
Не работает с таким правилом к сожалению.
Ну если все цепочки DROP, то нужно еще FORWARD разрешить в сети
Так, нужно добавить эти три правила:
А то я добавил только первое.
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Ну так что? Работает?
Ну так что? Работает?
Нет, не работает.
Прописывал все три правила. Что ж не так то :o
Покажи
Linux Forum → Debian GNU/Linux → Помогите раздать инет в сети
Форум работает на PunBB, при поддержке Informer Technologies, Inc