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


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

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

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

Оффлайн LDE2007

  • Новичок
  • *
  • Сообщений: 26
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #150 : 13 Ноября 2008, 19:21:52 »
Неужели никто ответить не может?

Оффлайн H1ghlander

  • Любитель
  • *
  • Сообщений: 51
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #151 : 13 Ноября 2008, 19:34:54 »
Кто на гугл ломится сам линукс или клиенты?
Если линукс, то тогда тебе нужно еще добавить правила в цепочки INPUT и OUTPUT, чтобы не шли пакеты с/на гугл.

eth0 и eth1 кто из этих интерейсов у вас смотрит в инет, а кто в сеть?

Оффлайн LDE2007

  • Новичок
  • *
  • Сообщений: 26
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #152 : 13 Ноября 2008, 19:50:29 »
В гугл ломятся клиенты. Гулг взят для примера, потренироваться настраивать ограничения. eth0 - инет, eth1 - локалка.

Оффлайн H1ghlander

  • Любитель
  • *
  • Сообщений: 51
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #153 : 13 Ноября 2008, 20:10:04 »
Попробуй так:
iptables -A FORWARD -o eth0 -s 192.168.0.10 -d 209.85.129.99 -j DROP
или попробуй еще запретить на все интерфейсы
еще учти что у гугла несколько айпи - 209.85.171.99, 64.233.187.99, 72.14.207.99

Вообще мне так кажется, что в качестве исходящего айпи нужно указывать не локальные ипы, а айпи с помощью которого юзеры выходят в инет
« Последнее редактирование: 13 Ноября 2008, 20:21:35 от H1ghlander »

Оффлайн LDE2007

  • Новичок
  • *
  • Сообщений: 26
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #154 : 13 Ноября 2008, 20:33:50 »
Выход в инет через динамический айпи.

А можно вместо айпи гугла использовать www.google.ru? Как вариант.

Почему первые 4 строки перечеркнуты?

Если организовывать ограничения не через iptables, то через что?

спасибо H1ghlander, сработало. Более того, если указать www.google.ru, то перекрывается доступ к любому гуглу, хоть .ru, хоть .com, хоть .com.ua.

Пеперь еще пара вопросов:
1. можно ли указывать не полный адрес, а часть, а все остальное замещать, например *google*?
2. можно ли в той части правила, где стоит запрет на узел, указывать например имя файла, в котором будут перечилены все запрещенные узлы? Если да, то как это сделать?
« Последнее редактирование: 13 Ноября 2008, 20:44:17 от LDE2007 »

Оффлайн LDE2007

  • Новичок
  • *
  • Сообщений: 26
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #155 : 14 Ноября 2008, 10:51:52 »
Почитал документацию. Сложилась такая картинка:

1. iptables - используем для настройки маршрутизации, каких-либо глобальных ограничений
2. squid - раздаем инет народу, с авторизацией по логину или айпи или еще как, кэширования, разделения канала и прочего.
3. SquidGuard - настройка запретов на посещение ресурсов, скачку файлов и прочего.

По-моему так. Или я ошибаюсь?

Оффлайн gard

  • Любитель
  • *
  • Сообщений: 84
  • -=:area51:=-
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #156 : 14 Ноября 2008, 13:40:42 »
Кажется немного не так..
 - iptables - маршрутизация и ограничение
- iproute (tc..) - управление трафиком, к примеру легко реализуемое QoS
- squid - прокся со всеми вытекающими, а SquidGuard незнаю но навскидку думаю ето гуй морда к squid, ибо запреты и все прочее пишется в правилах squid.
gard.area51@jabber.ru..

Оффлайн LDE2007

  • Новичок
  • *
  • Сообщений: 26
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #157 : 14 Ноября 2008, 14:33:54 »
Вот цитата из книги Колисниченко "Linux-сервер своими руками":

"Средствами Squid вы можете запретить пользователям откывать адреса, соответствующие определенным регулярным выражениям. Ясно, что тут никаких сил не хватит описывать все URL, содержащие запрещенный контент, а именно порно, насилие, ...

Тут на помощь приходит SquidGuard. Он дополняет Squid базой данных по запрещенным узлам. ..."

Книга написана под Mandriva и Fedora, но под Ubuntu эта штука тоже должна работать? Вопрос только в том, насколько она полезна?

Оффлайн gard

  • Любитель
  • *
  • Сообщений: 84
  • -=:area51:=-
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #158 : 14 Ноября 2008, 14:50:22 »
В общем это же она и есть.. надстройка, только с BlackList, но удобно ничего не скажешь.  :) Я думаю сначала ручками и только ручками! Поймете как работает решите стоит или нет вешать дополнительные вещи.
« Последнее редактирование: 14 Ноября 2008, 15:08:28 от gard »
gard.area51@jabber.ru..

Оффлайн Costa

  • Активист
  • *
  • Сообщений: 405
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #159 : 17 Ноября 2008, 10:09:08 »
День добрый!

Имеется сервер Ubuntu 8.10 server, два интерфейса, eth0 смотрит в сторону интернета со статическим IP, eth1 смотрит в сторону локальной сети, машинам этой сети IP раздаются по DHCP сервера. iptables настроен так:

# Generated by iptables-save v1.4.0 on Thu Nov 13 16:49:09 2008
*nat
:OUTPUT ACCEPT [0:0]
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Thu Nov 13 16:49:09 2008
# Generated by iptables-save v1.4.0 on Thu Nov 13 16:49:09 2008
*mangle
:PREROUTING ACCEPT [231:16053]
:INPUT ACCEPT [90:9095]
:FORWARD ACCEPT [140:6720]
:OUTPUT ACCEPT [52:8679]
:POSTROUTING ACCEPT [196:16213]
COMMIT
# Completed on Thu Nov 13 16:49:09 2008
# Generated by iptables-save v1.4.0 on Thu Nov 13 16:49:09 2008
*filter
:INPUT ACCEPT [17003:6426770]
:FORWARD ACCEPT [986:47373]
:OUTPUT ACCEPT [10668:4646019]
-A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth1 -o eth0 -j ACCEPT
-A FORWARD -j LOG
COMMIT
# Completed on Thu Nov 13 16:49:09 2008

В таком варианте доступ в интернет на локальных машинах есть.

Воспользовался шаблоном со 2-ой стр. темы, немного его отредактировав, и столкнулся с проблемой. После применения правил перестали устанавливаться соединения, т.е. нельзя открыть страницу в браузере, принять/отправить почту и т.д. Однако, если аська до применения правил была в коннекте, то она так и продолжает работать, пока не сделаешь ей дисконнект. Все, после этого и она отказывается работать. Да, речь идет о соединениях с машины в локальной сети. При этом пингуется и свой сервер (оба интерфейса), и шлюз провайдера, но не пингуются буквенные адреса (например, www.google.ru) - как будто упала DNS, но я-то ее не трогал.

Новые настройки iptables (для наглядности вырезал комментарии, хотя может быть и зря):

IPTABLES="/sbin/iptables"

$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT

$IPTABLES -t nat -P PREROUTING ACCEPT
$IPTABLES -t nat -P POSTROUTING ACCEPT
$IPTABLES -t nat -P OUTPUT ACCEPT

$IPTABLES -t mangle -P PREROUTING ACCEPT
$IPTABLES -t mangle -P OUTPUT ACCEPT

$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
$IPTABLES -X
$IPTABLES -t nat -X
$IPTABLES -t mangle -X

INET_IP="xxx.xxx.xxx.xxx"
INET_IFACE="eth0"

LAN_IP="192.168.0.50"
LAN_IP_RANGE="192.168.0.0/24"
LAN_IFACE="eth1"

LO_IFACE="lo"
LO_IP="127.0.0.1"
LO_IP_RANGE="127.0.0.0/8"

DNS_PORT="53"
HTTP_PORT="80"
HTTPS_PORT="443"
FTP_PORT="21"
POP3_PORT="25"
SMTP_PORT="110"
SSH_PORT="22"
ICQ_PORT="5190"
WEBMIN_PORT="10000"
WEBCUPS_PORT="631"
#TORRENT_PORT="6881"
#MYSQL_PORT="3306"

/sbin/modprobe ip_conntrack_ftp
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD ACCEPT

$IPTABLES -N bad_tcp_packets

$IPTABLES -N allowed
$IPTABLES -N tcp_packets
$IPTABLES -N udp_packets
$IPTABLES -N icmp_packets

$IPTABLES -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset
$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "New not syn:"
$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP

$IPTABLES -A allowed -p TCP --syn -j ACCEPT
$IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A allowed -p TCP -j DROP

$IPTABLES -A tcp_packets -p TCP --dport $DNS_PORT -j allowed
$IPTABLES -A tcp_packets -p TCP --dport $FTP_PORT -j allowed
$IPTABLES -A tcp_packets -p TCP --dport $HTTP_PORT -j allowed
$IPTABLES -A tcp_packets -p TCP --dport $HTTPS_PORT -j allowed
$IPTABLES -A tcp_packets -p TCP --dport $WEBMIN_PORT -j allowed
$IPTABLES -A tcp_packets -p TCP --dport $WEBCUPS_PORT -j allowed
$IPTABLES -A tcp_packets -p TCP --dport $POP3_PORT -j allowed
$IPTABLES -A tcp_packets -p TCP --dport $SMTP_PORT -j allowed
$IPTABLES -A tcp_packets -p TCP --dport $SSH_PORT -j allowed
$IPTABLES -A tcp_packets -p TCP --dport $ICQ_PORT -j allowed

$IPTABLES -A udp_packets -p UDP --destination-port 123 -j ACCEPT

$IPTABLES -A udp_packets -p UDP -i $INET_IFACE -d 255.255.255.255 --dport 135:139 -j DROP
$IPTABLES -A udp_packets -p UDP -i $LAN_IFACE -d 255.255.255.255 --dport 135:139 -j DROP

$IPTABLES -A udp_packets -p UDP -i $INET_IFACE -d 255.255.255.255 --destination-port 67:68 -j DROP
$IPTABLES -A udp_packets -p UDP -i $LAN_IFACE -d 255.255.255.255 --destination-port 67:68 -j DROP

$IPTABLES -A icmp_packets -p ICMP --icmp-type 8 -j ACCEPT
$IPTABLES -A icmp_packets -p ICMP --icmp-type 11 -j ACCEPT

$IPTABLES -A INPUT -p tcp -j bad_tcp_packets

$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LO_IP_RANGE -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LAN_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $INET_IP -j ACCEPT

$IPTABLES -A INPUT -p ALL -d $LAN_IP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p TCP -i $LAN_IFACE -j tcp_packets
$IPTABLES -A INPUT -p UDP -i $LAN_IFACE -j udp_packets
$IPTABLES -A INPUT -p ICMP -i $LAN_IFACE -j icmp_packets

$IPTABLES -A INPUT -p ALL -d $INET_IP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets
$IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udp_packets
$IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets

$IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT INPUT packet died: "

$IPTABLES -A FORWARD -p tcp -j bad_tcp_packets

$IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT FORWARD packet died: "

$IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets

$IPTABLES -A OUTPUT -p ALL -s $LO_IP_RANGE -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $INET_IP -j ACCEPT

$IPTABLES -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT OUTPUT packet died: "

$IPTABLES -t nat -A POSTROUTING -s $LAN_IP_RANGE -o $INET_IFACE -j SNAT --to-source $INET_IP

Подскажите, где я допустил ошибку?
« Последнее редактирование: 25 Ноября 2008, 13:31:06 от Costa »

Оффлайн Costa

  • Активист
  • *
  • Сообщений: 405
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #160 : 17 Ноября 2008, 17:33:01 »
Че-то молчат уважаемые гуру :)
Может надо дополнительную инфу дать?

Оффлайн jzk

  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #161 : 24 Ноября 2008, 13:33:39 »
Здраствуйте!

У меня следующая проблема:
Ubuntu 8.10,
Свитч на котором есть 2 ноута с Windows (192.168.77.2 и 192.168.77.3) маска (255.255.255.0) gateway (192.168.77.1)
В етот же свитч входит Ethernet локальной сети из котой по ppp0 приходит интернет
В компе с Ubuntu, внимание, _одна_ сетевая плата - eth0 на которой DHCP для связи с провайдером і (eth0:0)192.168.77.1 - для роздачи win машинам интернета.

iptables не хочет работать с алиасами (eth0:0)  :'(

Есть куча инфы как ето стделать имея 2 сетевухи, а как быть если она одна?


Оффлайн LDE2007

  • Новичок
  • *
  • Сообщений: 26
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #162 : 24 Ноября 2008, 15:34:28 »
Помогите в таком вопросе:

как написать правило iptables, чтобы завернуть все на прозрачный прокси? Все стоит на одной машине, eth0 (192.168.1.2) - ADSL, eth1 (192.168.0.1) - LAN + squid, port - 3128.

заранее спасибо!

Оффлайн InkVisitor

  • Участник
  • *
  • Сообщений: 190
  • Nikopol, Ukraine
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #163 : 24 Ноября 2008, 16:04:44 »
Свитч на котором есть 2 ноута с Windows (192.168.77.2 и 192.168.77.3) маска (255.255.255.0) gateway (192.168.77.1)
В етот же свитч входит Ethernet локальной сети из котой по ppp0 приходит интернет

 :-\ Кто как, а я ничего не разобрал... Может схемку?

Оффлайн Costa

  • Активист
  • *
  • Сообщений: 405
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #164 : 24 Ноября 2008, 16:13:02 »
Up. По моей проблеме никаких идей не возникает?

 

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