nixp.ru v3.0

19 октября 2017,
четверг,
19:13:12 MSK

DevOps с компанией «Флант»
neogeisha написала 11 декабря 2007 года в 07:38 (332 просмотра) Ведет себя как женщина; открыла 53 темы в форуме, оставила 266 комментариев на сайте.

Поругайте плиз правила.

Какие есть замечания, предложения для увеличения безопасности, упрощения правил.

Почему я могу соединиться по SSH с 192.168.2.51, ведь я разрешила только коннект с 192.168.2.50?????

iptables.sh

#!/bin/sh
IPT="/sbin/iptables"
case "$1" in
start)
  echo "   >>>>>>>> start iptables <<<<<<<<   "
  echo 1 > /proc/sys/net/ipv4/ip_forward
  $IPT -P INPUT DROP
  $IPT -P FORWARD DROP
  $IPT -P OUTPUT DROP
  $IPT -F
  $IPT -X
  clear
  $IPT -t mangle -A OUTPUT -j TTL --ttl-set 128
  # zapret nobody
  $IPT -A OUTPUT -m owner --uid-owner nobody -j DROP
  # droping all tcp-packets heving status INVALID,NEW,
  # no, not heving flags SYN,ACK
  $IPT -A INPUT -p TCP --tcp-flags SYN,ACK SYN,ACK -m state --state INVALID,NEW -j DROP
  $IPT -A OUTPUT -p TCP --tcp-flags SYN,ACK SYN,ACK -m state --state INVALID,NEW -j DROP
  # prinimaem all tcp packet k yzhe ystanovlennim soedinenijam
  $IPT -A INPUT -p TCP --syn -j ACCEPT
  $IPT -A OUTPUT -p TCP --syn -j ACCEPT
  $IPT -A INPUT -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
  $IPT -A OUTPUT -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
  # loopback
  $IPT -A INPUT -p ALL -i lo -j ACCEPT
  $IPT -A OUTPUT -p ALL -o lo -j ACCEPT
  # icmp
  # razreshaem icmp for local interfaces
  $IPT -A INPUT -p ICMP --icmp-type 0 -j ACCEPT
  $IPT -A OUTPUT -p ICMP -j ACCEPT
  # razreshaem icmp for 192.168.2.50
  $IPT -A INPUT -i eth0 -p ICMP -s 192.168.2.50 -j ACCEPT
  # ssh server
  $IPT -A INPUT -i eth0 -p TCP -s 192.168.2.50 --dport 22 -j ACCEPT
  $IPT -A OUTPUT -o eth0 -p TCP --sport 22 -d 192.168.2.50 -j ACCEPT
  # dns server
  $IPT -A INPUT -i eth0 -p UDP --sport 53 -j ACCEPT
  $IPT -A OUTPUT -o eth0 -p UDP --dport 53 -j ACCEPT
  # dns client
  $IPT -A INPUT -i eth0 -p TCP --sport 53 -j ACCEPT
  $IPT -A OUTPUT -o eth0 -p TCP --dport 53 -j ACCEPT
  # samba server
  $IPT -A INPUT -i eth0 -p TCP -m tcp -s 192.168.2.0/24 --dport 137:139 -j ACCEPT
  $IPT -A OUTPUT -o eth0 -p TCP -m tcp --sport 137:139 -d 192.168.2.0/24 -j ACCEPT
  # ftp server
  $IPT -A INPUT -i eth0 -p TCP --dport 20 -j ACCEPT
  $IPT -A OUTPUT -o eth0 -p TCP -m multiport --sports 20,21 -j ACCEPT
  # ftp client
  $IPT -A INPUT -i eth0 -p TCP -m multiport --sports 20,21 -j ACCEPT
  $IPT -A OUTPUT -o eth0 -p TCP --dport 21 -j ACCEPT
  $IPT -L -n
    ;;
stop)
    echo "   >>>>>>>> stop iptables <<<<<<<<   "
    echo 0 > /proc/sys/net/ipv4/ip_forward
  $IPT -P INPUT ACCEPT
  $IPT -P FORWARD ACCEPT
  $IPT -P OUTPUT ACCEPT
  $IPT -F
  $IPT -X
  $IPT -L -n
    ;;
    *)
    echo "Usage: $0 {start|stop}"
    exit 1
esac
exit 0
sky

Протоколы строчными буквами указываются…поэтому и по ssh можешь зайти, т.к. правила не работают.

fly4life

Какой смысл в следующих двух правилах? Запрет 'nobody' улыбает =).

$IPT -t mangle -A OUTPUT -j TTL --ttl-set 128
# zapret nobody
$IPT -A OUTPUT -m owner --uid-owner nobody -j DROP

Следующие правила избыточны. У тебя и так политика цепочки «INPUT» выставлена в 'DROP’.

# droping all tcp-packets heving status INVALID,NEW,
  # no, not heving flags SYN,ACK
  $IPT -A INPUT -p TCP --tcp-flags SYN,ACK SYN,ACK -m state --state INVALID,NEW -j DROP
  $IPT -A OUTPUT -p TCP --tcp-flags SYN,ACK SYN,ACK -m state --state INVALID,NEW -j DROP

Ну, а этими ты, собственно, разрешила все входящие (это к вопросу, почему получается соединиться с 51-го адреса) =). Практически политика 'ACCEPT' в цепочке. И вообще, этот '--syn’ — пережиток прошлого (привет, ipchains). Так что, как минимум, из INPUT правило убирай.

$IPT -A INPUT -p TCP --syn -j ACCEPT

Да, эти правила на какой станции? На обычной сетевой или на шлюзовой? Если на шлюзовой (хм, а для какой ещё устанавливается ip_forward?), то не вижу правил для цепочки «FORWARD». Транзитный трафик будет блокироваться.

И ещё. Кто-нибудь может мне объяснить практический смысл выставлять «*filter OUTPUT» в 'DROP’?

fly4life
sky
Протоколы строчными буквами указываются…поэтому и по ssh можешь зайти, т.к. правила не работают.

Значение '-p' подойдёт любое, присутствующее в /etc/protocols. А там в алиасах для tcp может быть значение и в верхнем регистре.

neogeisha
И ещё. Кто-нибудь может мне объяснить практический смысл выставлять «*filter OUTPUT» в 'DROP’?

ну чтоб какая нить злая шняга не хулиганила =)

я вот иногда сижу в инете через телефон, ну вот скажем чтоб че нить да не ломилось в интернет — денюшку снимала

fly4life
neogeisha
ну чтоб какая нить злая шняга не хулиганила =)

я вот иногда сижу в инете через телефон, ну вот скажем чтоб че нить да не ломилось в интернет — денюшку снимала

Фу, какие нехорошие стереотипы из мира дружественной пользователю ОС ;).

Anarchist
fly4life
Фу, какие нехорошие стереотипы из мира дружественной пользователю ОС ;).

Тебе не кажется, что ты забыл поставить кавычки? ;)

fly4life
Anarchist
Тебе не кажется, что ты забыл поставить кавычки? ;)

Да как угодно =). Суть стереотипов от этого не меняется ;).

neogeisha
fly4life
Фу, какие нехорошие стереотипы из мира дружественной пользователю ОС ;).

это может быть скажем апт, какой нить лицензионный софт…

neogeisha

в конце концов, что кс в сеть не долбилась! =)

neogeisha
Anarchist
Тебе не кажется, что ты забыл поставить кавычки? ;)

в выходные начну миграцию утконосиков, все уже подготовленно для этой глупости =))

зы. оффтоп мне =)

fly4life
neogeisha
это может быть скажем апт, какой нить лицензионный софт…

APT? Самопроизвольно?! Это либо ты чего-то путаешь, либо дебиан таки говно? Да и про «лицензионный» (это, насколько я понял, про лицензионный не по GPL) софт как-то сомнительно звучит.

fly4life
neogeisha
в конце концов, что кс в сеть не долбилась! =)

А зачем тебе КС без сети? =)) Проще не запускать его вообще, чем настраивать пакетную фильтрацию =).

neogeisha
fly4life
APT? Самопроизвольно?! Это либо ты чего-то путаешь, либо дебиан таки говно? Да и про «лицензионный» (это, насколько я понял, про лицензионный не по GPL) софт как-то сомнительно звучит.

не, при попытке поставить пакеты

софт так это, каторый из под wine пущаеться

дебиан — самый лучший дистриб!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

neogeisha
fly4life
А зачем тебе КС без сети? =)) Проще не запускать его вообще, чем настраивать пакетную фильтрацию =).

так говорю, интернет чере сотовый телефон

он и так сам по себе не дешовый

а тут еще и мегабайты!!!!!!!

fly4life
neogeisha
не, при попытке поставить пакеты

А если source-лист с репозиториями настроить? ;) В смысле, убрать оттуда интернетовские?

neogeisha
софт так это, каторый из под wine пущаеться

Ладно, допустим, софт пытается сам вылезти в инет.. Совокупность твоих правил в цепочке «OUTPUT» даст ему это сделать.

Если кроме разрешённых тобой ssh, ftp, dns больше ничего не надо, то «$IPT -A OUTPUT -p TCP --syn -j ACCEPT» нужно убрать.

neogeisha
fly4life
А если source-лист с репозиториями настроить? ;) В смысле, убрать оттуда интернетовские?

Ладно, допустим, софт пытается сам вылезти в инет.. Совокупность твоих правил в цепочке «OUTPUT» даст ему это сделать.

Если кроме разрешённых тобой ssh, ftp, dns больше ничего не надо, то «$IPT -A OUTPUT -p TCP --syn -j ACCEPT» нужно убрать.

а если этого пакета там нет? ;)

fly4life
neogeisha
а если этого пакета там нет? ;)

Какого и где?

Anarchist
neogeisha
дебиан — самый лучший дистриб!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Эт точно!!! :)

Давай набьём модератору морду? ;)

neogeisha
fly4life
Какого и где?

в репозите

bulbulator.deb =))

у меня только 3 двд, иногда преходиться пакетики скачивать..

neogeisha
Anarchist
Эт точно!!! :)

Давай набьём модератору морду? ;)

держите меня за лапки…

где, где он?

дайте его мачкану

=))

neogeisha

for fly4life

>И вообще, этот '--syn’ — пережиток прошлого (привет, ipchains).

посоветуй тогда как сделать )

Возникло 2 вопроса:

Медленно подключается к фтп серверу, точнее с задержкой, как побороть?

ФТП клиент подсоединяется но не скачивает, как побороть?

остались следущие правила:

$IPT -t mangle -A OUTPUT -j TTL --ttl-set 128
  $IPT -A INPUT -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
  $IPT -A OUTPUT -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
  # loopback
  $IPT -A INPUT -p ALL -i lo -j ACCEPT
  $IPT -A OUTPUT -p ALL -o lo -j ACCEPT
  # icmp
  # razreshaem ping for local interfaces
  $IPT -A INPUT -p ICMP --icmp-type 0 -j ACCEPT
  $IPT -A OUTPUT -p ICMP --icmp-type 8 -j ACCEPT
  # razreshaem icmp for 192.168.2.50
  $IPT -A INPUT -i eth0 -p ICMP -s 192.168.2.50 -j ACCEPT
  # ssh server
  $IPT -A INPUT -i eth0 -p TCP -s 192.168.2.50 --dport 22 -j ACCEPT
  $IPT -A OUTPUT -o eth0 -p TCP --sport 22 -d 192.168.2.50 -j ACCEPT
  # samba server
  $IPT -A INPUT -i eth0 -p TCP -m tcp -s 192.168.2.0/24 --dport 137:139 -j ACCEPT
  $IPT -A OUTPUT -o eth0 -p TCP -m tcp --sport 137:139 -d 192.168.2.0/24 -j ACCEPT
  # ftp server
  $IPT -A INPUT -i eth0 -p TCP -m multiport -s 192.168.2.0/24 --dports 21 -j ACCEPT
  $IPT -A OUTPUT -o eth0 -p TCP -m multiport --sports 20,21 -d 192.168.2.0/24 -j ACCEPT
  # ftp client
  $IPT -A INPUT -i eth0 -p TCP -m multiport --dports 20,21 -j ACCEPT
  $IPT -A OUTPUT -o eth0 -p TCP --dport 21 -j ACCEPT
fly4life
neogeisha
for fly4life

>И вообще, этот '--syn’ — пережиток прошлого (привет, ipchains).

посоветуй тогда как сделать )

А какую роль у тебя должно было играть это правило с '--syn’? (напомню, мне оно вообще показалось лишним)

neogeisha
Возникло 2 вопроса:

Медленно подключается к фтп серверу, точнее с задержкой, как побороть?

ФТП клиент подсоединяется но не скачивает, как побороть?

С твоими правилами к FTP-серверу смогут подключаться клиенты только в активном режиме. Видимо, тот, который не может скачать данные, подсоединяется в пассивном режиме. В общем, поиграйся в настройках FTP-клиента с режимом подключения.

По поводу первого вопроса мыслей нет.

neogeisha

а вот если оутпут в ассепт поставить, то все летает!

fly4life
neogeisha
а вот если оутпут в ассепт поставить, то все летает

Вывод? ;)

quadrik
neogeisha
$IPT -A OUTPUT -o eth0 -p TCP --sport 22 -d 192.168.2.50 -j ACCEPT

$IPT -A OUTPUT -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT

органичивать исходящее ssh подключение только на один хост — это уж слишком. Боишься кого-нибудь случайно хакнуть по пьяни? :-D

quadrik
neogeisha
дебиан — самый лучший дистриб!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

могу поспорить

neogeisha
quadrik
органичивать исходящее ssh подключение только на один хост — это уж слишком. Боишься кого-нибудь случайно хакнуть по пьяни? :-D

не на один, а на все хосты, у меня в оутпуте дроп стоит

neogeisha
quadrik
могу поспорить

самый лучший для меня ;)

quadrik
neogeisha
не на один, а на все хосты, у меня в оутпуте дроп стоит

ой, я хотел сказать что на все, кроме одного

neogeisha
quadrik
ой, я хотел сказать что на все, кроме одного

не, небоюсь я по пьяне,

а делаю чтоб всякий мелкомягкий софт наружу не лез =)

обильно использую вине…

ещеб вмваре поставить

мечтательно

Anarchist
neogeisha
а делаю чтоб всякий мелкомягкий софт наружу не лез =)

обильно использую вине…

ещеб вмваре поставить

мечтательно

Неправильно ты делаешь. :)

Правильно — не использовать вынь — софт.

quadrik
neogeisha
ещеб вмваре поставить

мечтательно

вмваре ваще полезная штука. В дженте ставится из портов предельно легко.

neogeisha
Anarchist
Неправильно ты делаешь. :)

Правильно — не использовать вынь — софт.

игрушки, визио, некоторые клиенты аналогов каторых нет в иксах

что на это скажешь?

neogeisha
quadrik
вмваре ваще полезная штука. В дженте ставится из портов предельно легко.

да что то немогу поставть заголовки ядра…..

quadrik
neogeisha
да что то немогу поставть заголовки ядра…..

это не ко мне вопрос, дебиан не видел. в генте они ставятся в первую очередь.

В rpm-басед дистрибутивах заголовки находятся в linux-dev и linux-headers пакетах

neogeisha

у меня ядро самосад =)

quadrik
neogeisha
у меня ядро самосад =)

в чем тогда проблема?

Anarchist
neogeisha
игрушки, визио, некоторые клиенты аналогов каторых нет в иксах

что на это скажешь?

То, что нативных (и по мне — так как и поинтереснее, и поприличнее реализованных) игрушек хватает.

С точки зрения моих задач OODraw && Dia вполне способны заменить Visio.

Касаемо клиентов — прошу представить поимённый список.