Автор Тема: Сайты не открываются по доменным именам. Iptables. [Решено]  (Прочитано 4962 раз)

Оффлайн Cool_Lamer

  • Участник
  • *
  • Сообщений: 473
-A OUTPUT -p udp -m udp --sport 53 --dport 1024:65535 -j ACCEPT
-A OUTPUT -p udp -m udp --dport 53 -j ACCEPT
OUTPUT-то почему ? Это что NAT касается:
-A INPUT -p udp -m udp --dport 1024:65535 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 1024:65535 -j ACCEPT

Остальное подскажет tcpdump. Может и к DNS запросы уходят с >1024. Имеют право, в общем-то.
Заработало, но ведь с "1024:65535" все мои правила бесполезны?) Ведь теперь пропускается всё, что выше 1024 порта.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
Заработало, но ведь с "1024:65535" все мои правила бесполезны?) Ведь теперь пропускается всё, что выше 1024 порта.
А зачем закрывать порты, на которых никто ничего не слушает ? Надо смотреть netstat -ap и закрывать те порты, которые слушает кто-то, к кому не надо давать доступ снаружи. :)

Оффлайн Cool_Lamer

  • Участник
  • *
  • Сообщений: 473
Заработало, но ведь с "1024:65535" все мои правила бесполезны?) Ведь теперь пропускается всё, что выше 1024 порта.
А зачем закрывать порты, на которых никто ничего не слушает ? Надо смотреть netstat -ap и закрывать те порты, которые слушает кто-то, к кому не надо давать доступ снаружи. :)
Окай. Спасибо за разъяснения, но я останусь при своём  :-) Ибо открывать доменные имена на сервере нужно крайне редко, а список портов "которые слушает кто-то" имхо огромен, половину из которых я ещё не понимаю в силу своей необразованности  ;-D и писать их все в iptables чернила не хватит  :-).
« Последнее редактирование: 26.02.2014 00:39:56 от Cool_Lamer »

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
Окай. Спасибо за разъяснения, но я останусь при своём  :-) Ибо открывать доменные имена на сервере нужно крайне редко,
DNS с сервера - это побочное явление. Я про NAT писал, это для него плохо.
а список портов "которые слушает кто-то" имхо огромен,
1. "имхо" не катит. Катит исключительно "netstat -lpntuw".
2. если  "писать их все в iptables чернила не хватит", то всё уже плохо, пора искать, кто что поломал. :-)

Грубо говоря

1. надо открыть нужное из "до 1024" (22, 80 и т.д.)
2. перекрыть всё скопом "до 1024"
3. перекрыть попортово ненужные сервисы от 1024 выше (или сами сервисы отключить).

Больше ничего не трогать.

Оффлайн Cool_Lamer

  • Участник
  • *
  • Сообщений: 473
Цитировать
DNS с сервера - это побочное явление. Я про NAT писал, это для него плохо.
Мне оно сейчас нужно было, для того чтобы сделать wget. Плохо для NAT что? Открытие dns-имён?

Цитировать
Грубо говоря
1. надо открыть нужное из "до 1024" (22, 80 и т.д.)
2. перекрыть всё скопом "до 1024"
3. перекрыть попортово ненужные сервисы от 1024 выше (или сами сервисы отключить).

Это я понял ещё из предыдущего вашего поста, но пока, увы, нет времени знакомиться со всем тем, что там и зачем ветится, но при случае обязательно займусь  :-)

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
Плохо для NAT что? Открытие dns-имён?
Нет. Закрытые порты выше 1024.
Это я понял ещё из предыдущего вашего поста, но пока, увы, нет времени знакомиться со всем тем, что там и зачем ветится, но при случае обязательно займусь  :-)
В свежеустановленной системе их не более десятка всего. Причём, ещё можно исключить localhost:
netstat -lpntuw | grep -v 127.0.0.1На пол-часа изучения. Ну или перечислить всё, что есть, без разбора.

Оффлайн Cool_Lamer

  • Участник
  • *
  • Сообщений: 473
netstat -lpntuw | grep -v 127.0.0.1я то дурак про netstat -ap думал.

А как это будет выглядеть в моём конфиге, что-то типо
-A INPUT -p udp -m udp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 2049 -j DROP
-A INPUT -p icmp -j ACCEPT
-A INPUT -i eth+ -j DROP
Или как?

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
-A INPUT -i eth+ -j DROP
Или как?
Я не знаю, что такое "eth+". Все eth что ли ? Тогда нет: зачем это на внутреннем интерфейсе ?

Допустим, eth0 - внешний интерфейс. (исходя из -A POSTROUTING -o eth0 -j MASQUERADE)

# enable access to services (почему, кстати, --dport 80 и udp ? Ошибка, или так задумано ?)
-A INPUT -i eth0 -p udp -m udp --dport 80 -j ACCEPT

# drop all lower 1024
-A INPUT -i eth0 -p udp -m udp --dport :1023 -j DROP
-A INPUT -i eth0 -p tcp -m tcp --dport :1023 -j DROP

# drop access to some non standard services
-A INPUT -i eth0 -p tcp -m tcp --dport 2049 -j DROP

Никаких "-A INPUT -i eth+ -j DROP" не надо, это совершенно ненужное правило, даже вредное скорее. Вместо него надо просто отключать сервис совсем, или вешать его на 127.0.0.1
« Последнее редактирование: 27.02.2014 11:34:22 от asy »

Оффлайн Cool_Lamer

  • Участник
  • *
  • Сообщений: 473
[root@123 bacula]# netstat -lpntuw | grep -v 127.0.0.1
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 0.0.0.0:2049                0.0.0.0:*                   LISTEN      -
tcp        0      0 0.0.0.0:41379               0.0.0.0:*                   LISTEN      6469/rpc.statd
tcp        0      0 0.0.0.0:2020                0.0.0.0:*                   LISTEN      7479/sshd
tcp        0      0 0.0.0.0:58472               0.0.0.0:*                   LISTEN      -
tcp        0      0 0.0.0.0:9101                0.0.0.0:*                   LISTEN      8390/bacula-dir.mys
tcp        0      0 0.0.0.0:13                  0.0.0.0:*                   LISTEN      7423/xinetd
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      6417/rpcbind
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      4006/httpd2
tcp        0      0 0.0.0.0:33265               0.0.0.0:*                   LISTEN      7608/rpc.mountd
tcp        0      0 0.0.0.0:8085                0.0.0.0:*                   LISTEN      4006/httpd2
tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN      7423/xinetd
tcp        0      0 0.0.0.0:39000               0.0.0.0:*                   LISTEN      7608/rpc.mountd
tcp        0      0 0.0.0.0:8090                0.0.0.0:*                   LISTEN      4006/httpd2
tcp        0      0 0.0.0.0:762                 0.0.0.0:*                   LISTEN      7543/rpc.rquotad
tcp        0      0 0.0.0.0:443                 0.0.0.0:*                   LISTEN      4006/httpd2
tcp        0      0 0.0.0.0:51709               0.0.0.0:*                   LISTEN      7608/rpc.mountd
udp        0      0 0.0.0.0:5353                0.0.0.0:*                               7372/avahi-daemon:
udp        0      0 0.0.0.0:39271               0.0.0.0:*                               7608/rpc.mountd
udp        0      0 0.0.0.0:56059               0.0.0.0:*                               7372/avahi-daemon:
udp        0      0 0.0.0.0:40427               0.0.0.0:*                               7608/rpc.mountd
udp        0      0 0.0.0.0:69                  0.0.0.0:*                               7423/xinetd
udp        0      0 0.0.0.0:111                 0.0.0.0:*                               6417/rpcbind
udp        0      0 0.0.0.0:621                 0.0.0.0:*                               6417/rpcbind
udp        0      0 0.0.0.0:709                 0.0.0.0:*                               6469/rpc.statd
udp        0      0 0.0.0.0:33515               0.0.0.0:*                               7608/rpc.mountd
udp        0      0 0.0.0.0:762                 0.0.0.0:*                               7543/rpc.rquotad
udp        0      0 0.0.0.0:50590               0.0.0.0:*                               -
udp        0      0 0.0.0.0:2049                0.0.0.0:*                               -
udp        0      0 0.0.0.0:59624               0.0.0.0:*                               6469/rpc.statd

Оставляем httpd2, sshd, xinetd. Avahi тоже пускай будет.
Вырубил bacula. Что такое bacula-dir.mys (bacula-dir.mysql ?), как это вырубить (я имею ввиду автозагрузку)?
rpc, необходимо ли ему смотреть куда-либо кроме localhost'а для корректной работы, учитывая, что это не только NAT-сервер, а ещё и веб.
И что это за "лица без гражданства", т.е. сервисы без названий?

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
rpc - remote procedure call. как раз на localhost оно бесполезно. Но вот наружу rpc открывать тоже незачем. Кто такие "лица без гражданства" - непонятно. Но так бывает иногда. Если посмотреть сразу после перезагрузки, должно быть видно, кто это.

Оффлайн Cool_Lamer

  • Участник
  • *
  • Сообщений: 473
rpc - remote procedure call. как раз на localhost оно бесполезно. Но вот наружу rpc открывать тоже незачем. Кто такие "лица без гражданства" - непонятно. Но так бывает иногда. Если посмотреть сразу после перезагрузки, должно быть видно, кто это.
Так что его, по хорошему в DROP отправлять?
А bacula-dir.mys?

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
Так что его, по хорошему в DROP отправлять?
или DROP, или REJECT. Смотря какого эффекта хочется достичь.
А bacula-dir.mys?
Я бакулой не пользуюсь, не знаю. Вообще, это штука для резервного копирования.

Оффлайн Cool_Lamer

  • Участник
  • *
  • Сообщений: 473
Я бакулой не пользуюсь, не знаю. Вообще, это штука для резервного копирования.
Я почитал, знаю, простоя я все процессы убил, а этот что-то никак. Ладно буду разбираться.
Спасибо за разъяснения  :-)