Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: HOWTO: Iptables для новичков  (Прочитано 528295 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн novis

  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1590 : 09 Марта 2012, 11:11:38 »
Добрый день, помогите составить правильную цепочку правил.

В данный момент iptables-save выглядит так
(Нажмите, чтобы показать/скрыть)

Что хотелось бы получить:
(Нажмите, чтобы показать/скрыть)

Составлен на основе правил участника форума.
cat firewall.sh
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 10 Марта 2012, 11:31:10 от novis »
Помогите решить проблему https://forum.ubuntu.ru/index.php?topic=176398.msg1408153#msg1408153

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1591 : 09 Марта 2012, 12:21:55 »
Зачем вам
-A fail2ban-named-refused-tcp -j RETURN
-A fail2ban-named-refused-udp -j RETURN
-A fail2ban-ssh -j RETURN
?
Из кастомных цепочек возврат автоматически происходит по достижении конца цепочки.
Таким образом, ответ на 1. становится тривиальным.
Остальное просто не понял.

Скрипт тупо бред. Это iptables а не ipchains. Используйте уже годами доступные способы облегчения жизни и себе и людям, которые будут этот ужас после вас администрировать.
1. При старте сети
  a) Загружаете шаблон правил через iptables-restore
  b) Вызываете скрипт f2b для набивания правил мясом.
2. При изменении мяса, только дёргать скрипт перебивки мяса.

И не создавайте новых цепочек, если не собираетесь обращаться к ним больше одного раза, если только такое создание не оправдывается другими соображениями.
Это по поводу
#Создание новых трех цепочек
iptables -N SERVICE
iptables -N WORKTCP
iptables -N WORKUDP
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн novis

  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1592 : 09 Марта 2012, 12:28:16 »
Спасибо за критику.
Правила fail2ban были созданы автоматом при установке пакета.
Удалены создание цепочек, правила перенесены в цепочку INPUT
Изменил cat firewall.sh
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 09 Марта 2012, 12:59:04 от novis »
Помогите решить проблему https://forum.ubuntu.ru/index.php?topic=176398.msg1408153#msg1408153

Оффлайн bumctik

  • Любитель
  • *
  • Сообщений: 57
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1593 : 09 Марта 2012, 17:05:38 »
Переведите на русский фразу "пользователя, под которым запускается сервер", пожалуйста.
Чтобы правила сохранялись, их надо сохранять.
Чтобы загружались - загружать.
Само ничего не делается.
тогда вопрос, куда должны сохранятся iptables?
===========================================================
Пользователи убунты не знают о существовании других дистров.
Они считают, что Ubuntu - это и есть Linux, единственный и неповторимый.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1594 : 09 Марта 2012, 17:32:04 »
Никуда. Вы сами должны организовать их загрузку. Из вами сохранённого места.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн novis

  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1595 : 09 Марта 2012, 18:33:29 »
Подскажите, текущие правила подходят под мои требования, из постов
1. https://forum.ubuntu.ru/index.php?topic=20334.msg1379564#msg1379564
2. https://forum.ubuntu.ru/index.php?topic=20334.msg1379624#msg1379624
На мой взгляд новичка, видится что все на своем месте. Но если не так, помогите скорректировать, помочь.  Заранее благодарю.
Помогите решить проблему https://forum.ubuntu.ru/index.php?topic=176398.msg1408153#msg1408153

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1596 : 09 Марта 2012, 18:50:51 »
Я правил не вижу. Мы здесь, к сожалению(?), не онлайн-интерпретаторы скриптов.
iptables-save показывайте.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн novis

  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1597 : 09 Марта 2012, 19:52:38 »
Я правил не вижу. Мы здесь, к сожалению(?), не онлайн-интерпретаторы скриптов.
iptables-save показывайте.
То что Вы не интерпретаторы, я прекрасно понимаю, HOWTO читаю.
Правила iptables-save теже самые, пока ничего не изменял. Поэтому составляю firewall.sh.

Пользователь решил продолжить мысль 10 Марта 2012, 10:47:50:
Добавил правила FORWARD, POSTROUTING и для squid REDIRECT

Измененный cat firewall.sh
(Нажмите, чтобы показать/скрыть)

вот как выглядит iptables-save из этого скрипта
iptables-save
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 10 Марта 2012, 11:15:20 от novis »
Помогите решить проблему https://forum.ubuntu.ru/index.php?topic=176398.msg1408153#msg1408153

Оффлайн ivsatel

  • Активист
  • *
  • Сообщений: 336
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1598 : 10 Марта 2012, 11:31:33 »
Зачем писать два правила когда можно все записать одним, это про сквид:
iptables -t nat -A PREROUTING ! -d 192.168.1.0/24 -p tcp -m multiport --dports 80,8080 -j REDIRECT --to-ports 3128И правила в INPUT которые предназначены для DROP лучше в скрипте задавать с использованием не -A а -I присваивая им номер (хотя бы основным):
iptables -I INPUT 1 -p tcp ! --syn -m conntrack --ctstate NEW,INVALID -j DROP
iptables -I INPUT 2 -f -j DROP
iptables -I INPUT 3 -p tcp --tcp-flags SYN,ACK SYN,ACK -m conntrack --ctstate NEW,INVALID -j REJECT --reject-with tcp-reset
« Последнее редактирование: 10 Марта 2012, 11:34:07 от ivsatel »

Оффлайн novis

  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1599 : 10 Марта 2012, 11:40:06 »
Спасибо, поправил
firewall.sh
(Нажмите, чтобы показать/скрыть)

iptables-save
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 10 Марта 2012, 11:52:45 от novis »
Помогите решить проблему https://forum.ubuntu.ru/index.php?topic=176398.msg1408153#msg1408153

Оффлайн ivsatel

  • Активист
  • *
  • Сообщений: 336
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1600 : 10 Марта 2012, 11:54:29 »
# Включаем форвардинг пакетов
echo 1 > /proc/sys/net/ipv4/ip_forward
Это можно сделать раз и навсегда, если конечно это не выходит за рамки концепции) Просто вписав в sysctl.conf строки net.ipv4.ip_forward = 1 и тутже применить, в консоли набрав sysctl -p.
Или сразу в консоли:
sudo echo 'net.ipv4.ip_forward = 1' >>/etc/sysctl.conf; sysctl -pНу и проверить, чисто для себя, можно так sudo iptables-save -c , так видно будет по счетчикам, попадаеют ли пакеты под Ваши правила. Хотя конечно это вопрос спорный, некоторые правила могут сработать раз в день/неделю/месяц.
« Последнее редактирование: 10 Марта 2012, 11:58:04 от ivsatel »

Оффлайн novis

  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1601 : 10 Марта 2012, 11:58:36 »
# Включаем форвардинг пакетов
echo 1 > /proc/sys/net/ipv4/ip_forward
Это можно сделать раз и навсегда, если конечно это не выходит за рамки концепции) Просто вписав в sysctl.conf строки net.ipv4.ip_forward = 1 и тутже применить, в консоли набрав sysctl -p.
Или сразу в консоли:
sudo echo 'net.ipv4.ip_forward = 1' >>/etc/sysctl.conf; sysctl -pВот.
Эта команда и в правду была выполнена ранее. Добавил в скрипт на всякий случай ...
« Последнее редактирование: 10 Марта 2012, 12:00:40 от novis »
Помогите решить проблему https://forum.ubuntu.ru/index.php?topic=176398.msg1408153#msg1408153

Оффлайн ivsatel

  • Активист
  • *
  • Сообщений: 336
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1602 : 10 Марта 2012, 12:17:21 »
-A INPUT -p tcp -m tcp --dport 80 --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 1194 --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j ACCEPT
Здесь тоже можно использовать мультипорт)

#Открываем порты для входящих соединений http-ftp-ssh-https-openVPN:
iptables -A INPUT -p tcp -m multiport --dports 80,21,22,443,1194 --syn -m conntrack --ctstate NEW -j ACCEPT И еще, правила для пакетов с состоянием NEW лучше ставить сразу после правила для пакетов с состоянием ESTABLISHED,RELATED так же используя -I (относится к ACCEPT)

Оффлайн novis

  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1603 : 10 Марта 2012, 12:29:46 »
-A INPUT -p tcp -m tcp --dport 80 --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 1194 --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j ACCEPT
Здесь тоже можно использовать мультипорт)

#Открываем порты для входящих соединений http-ftp-ssh-https-openVPN:
iptables -A INPUT -p tcp -m multiport --dports 80,21,22,443,1194 --syn -m conntrack --ctstate NEW -j ACCEPT И еще, правила для пакетов с состоянием NEW лучше ставить сразу после правила для пакетов с состоянием ESTABLISHED,RELATED так же используя -I (относится к ACCEPT)
Благодарю за корректировку, изменил на мультипорт.
Хотя попадания пакетов лучше видиться когда они раздельны :)
А вот по поводу второго не совсем понял.
Т.е. правило iptables -A INPUT -p tcp -m multiport --dports 80,21,22,443,1194 --syn -m conntrack --ctstate NEW -j ACCEPT
перенести сразу после?
#Разрешаем хосту принимать пакеты от уже установленных соединений
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

а после этого будут идти #отбрасываем пакеты, которые невозможно идентифицировать

Или стоит перенести выше #отбрасываем пакеты, которые невозможно идентифицировать, и поставить перед #Разрешаем хосту принимать пакеты от уже установленных соединений
« Последнее редактирование: 10 Марта 2012, 12:35:29 от novis »
Помогите решить проблему https://forum.ubuntu.ru/index.php?topic=176398.msg1408153#msg1408153

Оффлайн ivsatel

  • Активист
  • *
  • Сообщений: 336
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1604 : 10 Марта 2012, 12:45:55 »
Хотя попадания пакетов лучше видиться когда они раздельны :)
Кому как нравится)
А вот по поводу второго не совсем понял.
Т.е. правило
iptables -A INPUT -p tcp -m multiport --dports 80,21,22,443,1194 --syn -m conntrack --ctstate NEW -j ACCEPT перенести сразу после?
#Разрешаем хосту принимать пакеты от уже установленных соединений
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Да.
а после этого будут идти #отбрасываем пакеты, которые невозможно идентифицировать
Нет, отбрасываемые пакеты должны быть первыми.
Примерно так:
iptables -I INPUT 1 -j DROP
iptables -I INPUT 2 -j DROP
iptables -I INPUT 3 -j DROP
iptables -I INPUT 4 -i lo -j ACCEPT
iptables -I INPUT 5 ESTABLISHED,RELATED -j ACCEPT
iptables -I INPUT 6 NEW -j ACCEPT
« Последнее редактирование: 10 Марта 2012, 12:50:51 от ivsatel »

 

Страница сгенерирована за 0.045 секунд. Запросов: 25.