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


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Помогие советом по iptables  (Прочитано 768 раз)

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

Оффлайн Vlad.V

  • Автор темы
  • Активист
  • *
  • Сообщений: 478
    • Просмотр профиля
Помогие советом по iptables
« : 28 Октября 2015, 14:20:06 »
Первый раз в жизне ставлю сервак для раздачи интернета, но это меня не пугает, пугает что у него все открыто и я не совсем понимаю как это закрыть. Чуть-чуть походил по сети, почитал, но инфы очень много и за два дня ее не понять, а сервак нужен, как всегда, на вчера. Собственно и хотел получить совет от тех, кто уже сталкивался с таким.
Подскажите, насколько правильно закрывать все порты следующей командой:
iptables -P INPUT DROPА после нее открывать только те порты, которые мне нужны, допустим 22й порт? Пробовал таким образом прикрыть все порты и потом открывать по одному, получилась странная хрень.
С другого пк в сети делаю nmap -Pn 192.168.10.1(адрес будующего сервера), получаю вот такой ответ:
Цитировать
Not shown: 996 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
139/tcp open  netbios-ssn
445/tcp open  microsoft-ds

Из этих портов, оставляю только 2(22 и 80), все остальные были закрыты ранее командой iptables -P INPUT DROP.
Повторное сканирование показывает, что открыто только два порта, как и должно быть. После этого запускаю на серевере apt-get update, update не может связаться с сервером, пока снова не открою все порты, хотя если я делаю update c машины, которая стоит за сервером (192.168.10.10), то update проходит. Отсюда возникло два вопроса, какой порт нужен серверу для обновления и как получается так, что обновление с машины за сервером проходит, хотя порты закрыты, а с сервера - нет
Заранее спасбо!
« Последнее редактирование: 28 Октября 2015, 14:30:15 от Vlad.V »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Помогие советом по iptables
« Ответ #1 : 28 Октября 2015, 14:38:06 »
подход ПОЧТИ правильный.
Этой командой Вы указываете правило по-умолчанию для цепочки INPUT.
Есть ещё две основные цепочки: OUTPUT и FORWARD. Если для первой из них устанавливать такое же правило, то для новичка это почти 100% значит получить головняк высшей степени. А степень опасности - ниже среднего. Потому OUTPUT лучше вообще не трогать до появления уверенности в работе с netfilter.
Судя по тому, что это будет шлюз для раздачи интернета, то защищать нужно не только себя любимого сам шлюз, то и подопечных клиентов, которые будут работать через цепочку FORWARD. Вот её-то тоже надо бы прикрыть ... можно таким же правилом.

Теперь про "облом". Вы закрыли все входящие пакеты за исключением сервисов, которые наметили анонсировать в интернет. Но совершенно забыли, что при обращении шлюза в сеть он захочет получить ответ, а значит ответные пакеты тоже попадут в ловушку. А значит нужно разрешить проходить пакетам установленного соединения.

И это ещё не всё. Вы закрыли не только доступ с интернета, но и из будущей локальной сети. Но это уже другая история.

Кстати, есть ещё один неявный интерфейс, про который все забывают, но от работы которого может зависеть нормальная работа системы - это Loopback. И ему Вы тоже перекрыли цепочку INPUT.
« Последнее редактирование: 28 Октября 2015, 14:41:02 от fisher74 »

alexxnight

  • Гость
Re: Помогие советом по iptables
« Ответ #2 : 28 Октября 2015, 21:12:59 »
Существую 2 подхода к построению защиты:
1. Разрешено все, что не запрещено
2. Запрещено все, что не разрешено

Суть очень простая:
в 1 случае пишем много запрещающих правил, и если пакет не подошел под запрет, разрешаем.
во 2 - сначала идут разрешающие правила, и то, что не подошло запрещаем.

Вы выбрали второй вариант (и на мой взгляд наиболее правильный) INPUT -P DROP
теперь Вам нужно прописать набор разрешающих правил
то, что было сказано выше не забывайте про:
iptables -t filter -A INPUT -i lo -j ACCEPT

А с NMAP штука интересная. Даже если Вы будете запрещать пакеты в таблице filter, он вычислит сервисы и напишет, что-то типа:
22/tcp  filtered  ssh

С этим можно бороться, но это другая песня :)

Оффлайн Vlad.V

  • Автор темы
  • Активист
  • *
  • Сообщений: 478
    • Просмотр профиля
Re: Помогие советом по iptables
« Ответ #3 : 28 Октября 2015, 23:58:20 »
Всем спасибо за ответы, только добрался до ноута вот что у меня получилось в итоге:

echo 1 > /proc/sys/net/ipv4/ip_forward

EXT_ETH=eth1 #External
INT_ETH=eth2 #Internal

# delete all existing rules.
iptables -F

#close all ports for in-traff
iptables -P INPUT DROP

#close all ports for forward-traff
iptables -P FORWARD DROP

#open all ports for out-traff
iptables -P OUTPUT ACCEPT

# Always accept loopback traffic
iptables -A INPUT -i lo -j ACCEPT

iptables -A FORWARD -i $INT_ETH -o $EXT_ETH -j ACCEPT

#Turn on the NAT
iptables -t nat -A POSTROUTING -o $EXT_ETH -s 192.168.10.0/24 -j MASQUERADE

iptables -A FORWARD -i $EXT_ETH -m state --state ESTABLISHED,RELATED -j ACCEPT

#open only 22 port
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
 
#open only 80 port
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Используя такие правила, как я и писал выше, наблюдаю странную картину: apt-get update на сервера я сделать не могу, не может подключится "Could not resolve 'security.ubuntu.com' и так далее", а с машины которая за натом, т.е. этим сервером - легко. Если выполнить команду iptables -P INPUT ACCEPT, то все в шоколаде, сервер обновляется. Мне кажется я что-то упустил...

И это ещё не всё. Вы закрыли не только доступ с интернета, но и из будущей локальной сети. Но это уже другая история.

Но я их могу в любой момент пробросить, если это нужно, верно? По аналогии с любым роутером, открываем только, что нужно и пробрасываем туда, куда нужно или открываем для всех.

А с NMAP штука интересная. Даже если Вы будете запрещать пакеты в таблице filter, он вычислит сервисы и напишет, что-то типа:
22/tcp  filtered  ssh

С этим можно бороться, но это другая песня :)

У меня тут не Пентагон да и я не крутой хацкер, а самое главное - паранойи пока нет)) Но хотя бы элементарную безопасность обеспечить нужно. Так что пока ограничусь без других песен))

Еще раз спасибо всем!

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Помогие советом по iptables
« Ответ #4 : 29 Октября 2015, 00:42:51 »
Мне кажется я что-то упустил...
Угу, вот это
Вы закрыли все входящие пакеты ...А значит нужно разрешить проходить пакетам установленного соединения.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28270
    • Просмотр профиля
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Помогие советом по iptables
« Ответ #6 : 29 Октября 2015, 07:39:19 »
Эххх, весь учебный процесс коту под хвост...

alexxnight

  • Гость
Re: Помогие советом по iptables
« Ответ #7 : 29 Октября 2015, 08:39:17 »
:) да в принципе верно. Есть же тема iptables для новичков

Оффлайн Vlad.V

  • Автор темы
  • Активист
  • *
  • Сообщений: 478
    • Просмотр профиля
Re: Помогие советом по iptables
« Ответ #8 : 29 Октября 2015, 09:37:33 »
Угу, вот это
Вы закрыли все входящие пакеты ...А значит нужно разрешить проходить пакетам установленного соединения.
Думал за это отвечает эта строкаiptables -A FORWARD -i $EXT_ETH -m state --state ESTABLISHED,RELATED -j ACCEPT

Насчет темы для новичков, не заметил так как изначально искал в разделе "сервера", там же и тему создал.
Сорри, перехожу в другую тему. Спасибо!

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Помогие советом по iptables
« Ответ #9 : 29 Октября 2015, 09:44:02 »
все входящие пакеты
Думал за это отвечает эта строка
Цитировать
iptables -A FORWARD -i $EXT_ETH -m state --state ESTABLISHED,RELATED -j ACCEPT
Как говорится: почувствуй разницу

И iptables в данном контексте это раздел сетей, а не серверов.

Оффлайн Vlad.V

  • Автор темы
  • Активист
  • *
  • Сообщений: 478
    • Просмотр профиля
Re: Помогие советом по iptables
« Ответ #10 : 29 Октября 2015, 09:45:42 »
Ааа капец, уже чувствую, ошибка - смех! Спасибо!

 

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