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


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

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

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

Оффлайн terrible_user

  • Активист
  • *
  • Сообщений: 438
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #375 : 28 Июня 2009, 23:40:13 »
Вот правило которое перебросит исходящие соединение на порт 3128 локального прокси
iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 3128но самый прикольный момент, что трафик от самого прокси так же будет переброшен
Как же входящий трафик по 80 порту завернуть на прокси, если в системе только eth0 который смотрит в инет и lo на котором висит Squid.
Теперь я вообще не врубаюсь, скажи лучше что собственно задумал
Вот это и было когда к тебе на 80 порт идет подключение
iptables -t nat -A PREROUTING  -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
Бери больше, кидай дальше

Оффлайн alexandrm80

  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #376 : 29 Июня 2009, 00:14:05 »
Теперь я вообще не врубаюсь, скажи лучше что собственно задумал
Вот это и было когда к тебе на 80 порт идет подключение
iptables -t nat -A PREROUTING  -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
Везде встречается куча статей по описанию настройки Squid'а для раздачи инета в локалку, то есть есть вторая сетевая eth1 (например). Я хочу настроить Squid что бы он кэшировал запросы самого сервера, то есть компа за которым я непосредственно работаю. Сделал следующее:
в Squid:
http_port 127.0.0.1:3128
visible_hostname localhost
http_access allow localhost
А, вот как в iptables завернуть пакеты в прокси не пойму.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #377 : 29 Июня 2009, 05:59:17 »
Не проще не парить мозги и просто прописать прокси в системе?
Транспарент нужен, когда сеть большая и за всеми не набегаешься, прокси настраивая.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн alexandrm80

  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #378 : 29 Июня 2009, 07:00:46 »
Не проще не парить мозги и просто прописать прокси в системе?
Транспарент нужен, когда сеть большая и за всеми не набегаешься, прокси настраивая.
Транспарент убрал, но как в iptables перенаправить все входящие по 80 порту на порт 3128? Нужно ли прописывать правила в таблицу Filters? Изначально пакеты приходят в таблицу Filters или Nat?

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #379 : 29 Июня 2009, 16:14:53 »
оооооооомояголоваа.... :( Зачем тебе iptables для одной локальной машины????
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн alexandrm80

  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #380 : 29 Июня 2009, 16:53:29 »
оооооооомояголоваа.... :( Зачем тебе iptables для одной локальной машины????
Просто в Squid'е прописать http_port --> 80? Просто необходимо запретить некоторые сайты, что бы совсем не открывались.
« Последнее редактирование: 29 Июня 2009, 16:56:20 от alexandrm80 »

Оффлайн terrible_user

  • Активист
  • *
  • Сообщений: 438
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #381 : 29 Июня 2009, 20:20:28 »
оооооооомояголоваа.... :( Зачем тебе iptables для одной локальной машины????
Просто в Squid'е прописать http_port --> 80? Просто необходимо запретить некоторые сайты, что бы совсем не открывались.

Это последняя моя идея чем можно тебе помочь средствами iptables
iptables -A OUTPUT -p tcp --dport 80 -d yandex.ru -j DROP
Бери больше, кидай дальше

Оффлайн alexandrm80

  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #382 : 29 Июня 2009, 20:52:03 »
Это последняя моя идея чем можно тебе помочь средствами iptables
iptables -A OUTPUT -p tcp --dport 80 -d yandex.ru -j DROP
Спасибо за помощь и проявленное терпение.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #383 : 30 Июня 2009, 03:30:38 »
оооооооомояголоваа.... :( Зачем тебе iptables для одной локальной машины????
Просто в Squid'е прописать http_port --> 80? Просто необходимо запретить некоторые сайты, что бы совсем не открывались.

С этого И НАДО БЫЛО НАЧИНАТЬ! Всегда задавай вопрос, на который ты хочешь услышать ответ, а не который придет тебе в голову задать.
Решением твоей задачи является правильная настройка, да, фильтров, как это показал terrible_user. (по умолчанию, без "-t <таблица>", принимается "-t filter")
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн alexandrm80

  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #384 : 30 Июня 2009, 08:58:44 »
С этого И НАДО БЫЛО НАЧИНАТЬ! Всегда задавай вопрос, на который ты хочешь услышать ответ, а не который придет тебе в голову задать.
Решением твоей задачи является правильная настройка, да, фильтров, как это показал terrible_user. (по умолчанию, без "-t <таблица>", принимается "-t filter")
Спасибо за помощь и советы. В дальнейшем постараюсь точнее формулировать вопросы. На Ubuntu перебрался не так давно, вот и пытаюсь понять как и что.

Оффлайн thunderamur

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6844
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #385 : 05 Июля 2009, 04:54:10 »
запрет пинга компа из внешней сети
iptables -A INPUT -i eth1 -p icmp --icmp-type 8 -j DROP
Правильно ли я пинг компа из Инета запрещаю? Инет подаётся с модема в режиме роутера на eth1. Раньше вроде работало, когда модем в режиме моста был, щас пингуется мой айпишник, но это походу модем отвечает на пинг, а не комп щас, я правильно понимаю, что надо в модеме пинг запретить?

закрываем доступ к портам mysqld, smbd, apache2, vsftpd, cupsd, smbd
iptables -A INPUT -i eth1 -p tcp --dport 3306 -j DROP
iptables -A INPUT -i eth1 -p tcp --dport 139 -j DROP
iptables -A INPUT -i eth1 -p tcp --dport 80  -j DROP
iptables -A INPUT -i eth1 -p tcp --dport 21 -j DROP
iptables -A INPUT -i eth1 -p tcp --dport 631 -j DROP
iptables -A INPUT -i eth1 -p tcp --dport 445 -j DROP

тут конечно всё это можно было не делать, просто как-то заметил, что в Инете доступны мои веб-сервер и фтп-сервер, ну и закрыл всё что есть в netstat -anep | grep tcp.

Оффлайн Tokh

  • Активист
  • *
  • Сообщений: 705
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #386 : 05 Июля 2009, 11:31:17 »
Наверняка модем отвечает. Надеюсь, для ясности, пинг приходит снаружи от компьютера друга. Иначе могут быть варианты, в принципе.

В веб интерфейсе настройки модема где-то должен быть запрет пингования модема. Если модем в режиме маршрутизатора (вместо моста), то 99,99 из 100, что он делает NAT и без специальной и специфической настройки в принципе невозможно пропинговать внутреннюю машину. Причина - NAT и, кроме того, серый ip адрес у внутренней машины. Серый адрес во внешней сети, в интернете сам по себе недоступен, или доступен не далее шлюза провайдера.


Зачем запрещать отдельно каждый порт? Это как травля блох реактивом с инструкцией "поймать каждую, насыпать реактив в глаза". :)

Надо вообще всё запретить. Дефолтное действие для INPUT, OUTPUT, FORWARD установить в DROP. А потом разрешать нужное.

Причём если в цепи OUTPUT всё же разрешить вообще всё, а в цепи INPUT использовать
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp # tracking ESTABLISHED-RELATED status of a ftp connection
iptables -A INPUT -p ALL -d ${MY_HOME_IP} -m state --state ESTABLISHED,RELATED -j ACCEPT
, то серверы будут закрыты от входящих соединений и в тоже время любой софт установленный на этом компьютере сможет использовать интернет. А правила получаются более простые. Меньше шанса упустить упущенное.
« Последнее редактирование: 05 Июля 2009, 11:37:33 от u-375 »
StarDict и Mueller помогут против английского мануала.

Оффлайн thunderamur

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6844
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #387 : 05 Июля 2009, 18:39:39 »
u-375
Да, правильнее по механизму "всё, что не разрешено, то запрещено", но это домашний комп, а не сервак и мне как-то лень разрешать отдельно, хотя лучше делать сразу Ъ, чем потом переучиваться, если это не шибко гемморнее чем так как есть...

как я понял ты предлагаешь:
iptables -A INPUT -p ALL -j DROP
iptables -A INPUT -p ALL -d ${MY_HOME_IP} -m state --state ESTABLISHED,RELATED -j ACCEPT

1) ${MY_HOME_IP} - так и писать или тут мой локальный IP (eth0 - интерфейс локалки или eth1 - интерфейс на модем)?
2) /sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp # tracking ESTABLISHED-RELATED status of a ftp connection
это что значит?
3) будут ли в этом случае работать торренты и будет ли инет у машин в локальной сети (на eth0)?

Пользователь решил продолжить мысль 05 Июля 2009, 18:42:08:
Цитировать
Надеюсь, для ясности, пинг приходит снаружи от компьютера друга
да, прошу чтоб проверили.

Цитировать
Серый адрес во внешней сети, в интернете сам по себе недоступен, или доступен не далее шлюза провайдера.
угу, угу, просто раньше модем мостом был, а правило по привычке воткнул...
« Последнее редактирование: 05 Июля 2009, 18:42:08 от Thunde® »

Оффлайн Tokh

  • Активист
  • *
  • Сообщений: 705
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #388 : 05 Июля 2009, 22:09:32 »
u-375
как я понял ты предлагаешь:
iptables -A INPUT -p ALL -j DROP
Нет. Есть понятие правила по умолчанию, кторое сработает, если пакет не обработан другими правилами. Это правило такое:
$IPTABLES -P INPUT DROPА то, что ты написал будет сразу отбрасывать весь входящий трафик, если правило записано первое.

Цитировать
1) ${MY_HOME_IP} - так и писать или тут мой локальный IP (eth0 - интерфейс локалки или eth1 - интерфейс на модем)?
Вместо ${MY_HOME_IP} надо написать ip адрес своего компьютера, адрес интерфейса соединённого с модемом. Я так понял, что сетевая карта одна. Если их две и более, то предполагаю, что стоило бы сделать правило в отношении каждого адреса. Для серьёзных вещей можно ещё строже - одновременно с адресом можно проверять и имя интерфейса, за которым закреплён этот адрес, в зависимости от задач.

Цитировать
2) /sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp # tracking ESTABLISHED-RELATED status of a ftp connection
это что значит?
Это команды загрузки необходимых модулей. Если их не выполнить, то невозможно будет оценивать состояния ESTABLISHED, RELATED. Один модуль для "вообще" соединений, а  другой для ftp соединений, ftp соединения имеют технические усложнения и потому отдельный модуль...

Цитировать
3) будут ли в этом случае работать торренты и будет ли инет у машин в локальной сети (на eth0)?
Для этого компьютера придётся в цепи INPUT открывать порт торрента - принимать трафик направленный в порт торента, по tcp и возможно udp, зависит от клиента. Тогда заработает, иначе нет. Но этого мало - нужно включить port forwarding внутри самого модема.

Модем будет прокидывать порт с внешнего адреса на указанный в настройках модема серый внутренний адрес компа, на компе iptables  в цепи INPUT будет принимать трафик для этого порта. При необходимости опубликовать любой сервер ситуация аналогична - сервер снаружи виден по наружному "белому" (если он белый) адресу модема, модем прокидывает запросы на серый адрес, в цепи INPUT принимающее правило для этих соединений...

Я так понимаю интернет приходит на этот компьютер "из модема" в eth1 и с этого компьютера интернет раздавался в eth0 для отдельной локальной сети? Раньше с этого компа интернет раздавался в локалку?

P.S. Вообще-то внутри модема установлен Linux, iptables и если в настройках модема включён firewall, то уже внутри модема iptables делают то, о чём я тут разглагольствую. Поэтому иногда рекомендуют купить роутер и не париться. :) Там уже всё сделано, хоть и по простому варианту, но обычно достаточно. Поэтому, может быть, когда модем с включённым фаерволом, то второй фаер у себя на компьтере разве что для самообразования и т.п.
« Последнее редактирование: 05 Июля 2009, 22:11:17 от u-375 »
StarDict и Mueller помогут против английского мануала.

Оффлайн thunderamur

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6844
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #389 : 06 Июля 2009, 13:17:45 »
u-375

Спасибо, что подробно расписал  :)

Цитировать
Если их две и более, то предполагаю, что стоило бы сделать правило в отношении каждого адреса. Для серьёзных вещей можно ещё строже - одновременно с адресом можно проверять и имя интерфейса, за которым закреплён этот адрес, в зависимости от задач.
Сетевых 2, на одной модем (eth1), на другой 2-й комп (eth0). Прикрывать локалку не надо, там комп просто получает доступ к ресурсам на 1-м и Инет.

Цитировать
Для этого компьютера придётся в цепи INPUT открывать порт торрента - принимать трафик направленный в порт торента, по tcp и возможно udp, зависит от клиента. Тогда заработает, иначе нет. Но этого мало - нужно включить port forwarding внутри самого модема.
Торренты нужны только на 1-м компе, поэтому можно без отбеливания серого айпи.

Цитировать
Раньше с этого компа интернет раздавался в локалку?
и раньше и сейчас.

Цитировать
P.S. Вообще-то внутри модема установлен Linux, iptables и если в настройках модема включён firewall, то уже внутри модема iptables делают то, о чём я тут разглагольствую. Поэтому иногда рекомендуют купить роутер и не париться. :) Там уже всё сделано, хоть и по простому варианту, но обычно достаточно. Поэтому, может быть, когда модем с включённым фаерволом, то второй фаер у себя на компьтере разве что для самообразования и т.п.
Угу, по дефолту фаервол включён в модеме.

З.Ы.: в моём случае самый нормальный вариант в правилах сделать только раздачу инета на еth0 и настроить сервера, чтоб работали только с локалкой (хотя и сервера я эти щас удаляю, брату не нужны, а сам в армаду на год).

 

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