Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: и снова iptables
Форумы портала PHP.SU » Серверное администрирование » Администрирование *nix » и снова iptables

Страниц (2): [1] 2 »
 

1. Vinyl - 24 Января, 2013 - 19:28:08 - перейти к сообщению
Здравствуйте, друзья. Как же я ега (iptables) недолюбливаю, мягко говоря.

Надо закрыть все порты, кроме 80 и 22. На хабре нашел:
CODE (bash):
скопировать код в буфер обмена
  1. # Настраиваем политики по умолчанию
  2. iptables -P INPUT DROP
  3. iptables -P OUTPUT DROP
  4. iptables -P FORWARD DROP
  5.  
  6. # удаляем все имеющиеся правила
  7. iptables -F
  8. iptables -t nat -F
  9. iptables -t mangle -F
  10.  
  11. iptables -X
  12. iptables -t nat -X
  13. iptables -t mangle -X
  14.  
  15. # правила входящих соединений
  16. iptables -A INPUT -i lo -j ACCEPT
  17. iptables -A INPUT -i eth0 --match state --state ESTABLISHED,RELATED -j ACCEPT
  18. iptables -A INPUT -i eth0 -p tcp --dport 80 --match state --state NEW -j ACCEPT
  19. iptables -A INPUT -i eth0 -p tcp --dport 22 --match state --state NEW -j ACCEPT
  20.  
  21. # Правила исходящих соединений
  22. iptables -A OUTPUT -o lo -j ACCEPT
  23. iptables -A OUTPUT -o eth0 --match state --state NEW, ESTABLISHED, RELATED -j ACCEPT
После этого все везде закрыто. И 80 и 22 тоже. Что не так? Заранее спасибо.
2. esterio - 24 Января, 2013 - 19:53:15 - перейти к сообщению
Если я правильно понял то у Вас пропал доступ к SSH?. Была такая же шняга, пришлось переустанавливать линь, но недавно наткнувся на такое мб поможет.
http://habrahabr[dot]ru/qa/5627/
Правда немного не то, но может что-то там все таки есть
3. EuGen - 24 Января, 2013 - 19:54:09 - перейти к сообщению
CODE (bash):
скопировать код в буфер обмена
  1. iptables -P INPUT DROP
  2. iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
  3. iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT

?
Понять iptables в свое время мне помогла очень хорошая статья на opennet
4. Vinyl - 24 Января, 2013 - 20:03:50 - перейти к сообщению
esterio, нет, доступ есть. Он пропадает после исполнения скрипта (код выше), но после ребута из панели (VDS Manager) все открывается обратно.

EuGen, неа, та же песня. 80 и 22 молчат. За ссылку спасибо, пока в закладки, на выходных почитаю Улыбка
5. esterio - 24 Января, 2013 - 20:16:22 - перейти к сообщению
Vinyl
Вам заканало, я сохранил настройкы был, и никакой ребут не помогал, сам не знаю как умудрился такое учудить, но я пока-что лишь учу никсы
6. Vinyl - 24 Января, 2013 - 20:26:43 - перейти к сообщению
esterio, сочувствую. Бывают в Линуксе неприятные сюрпризы. Однако, кто что бы не говорил, сколько бы раз я не обжигался, я все равно под рутом и в ssh и на ftp Сомбреро А с iptables мне все так с рук сходит т.к. сервер виртуальный, на OpenVZ. Насколько я понимаю, именно поэтому скидываются правила iptables после ребута. Если мне не изменяет память, на железном сервере правила iptables после ребута никуда не сбрасываются.
7. EuGen - 24 Января, 2013 - 20:30:06 - перейти к сообщению
Возможно, есть какие-либо другие правила. Важный вопрос - это маршрутизатор (сети, например, или шлюз) - или сервер (принимающий запросы конечный хост). Если первое - то интересующая цепочка - FORWARD, но не INPUT. Следует убедиться так же в отсутствии иных блокирующих/разрешающих правил.
8. esterio - 24 Января, 2013 - 20:36:05 - перейти к сообщению
Vinyl
Да у меня полностю виделеный серв.Нет, там после ребута правила сидиваюсться. Но я по статте сделал(попал на не хорошую) там сначала написано было закрить все порты, я так и сделал, но там одной командой ило и еще сохранение. Но ето опыт, если бы никто не обжигался ничему бы не научился. Ок не буду флудит. Ответа если чесно ен знаю, установили arno-iptables-firewall, немного танцов с бубном и все получилось
9. Vinyl - 24 Января, 2013 - 20:36:45 - перейти к сообщению
EuGen, это http-сервер. Других правил нет, после ребута все сбрасываются.
10. EuGen - 24 Января, 2013 - 20:40:02 - перейти к сообщению
Vinyl пишет:
Если мне не изменяет память, на железном сервере правила iptables после ребута никуда не сбрасываются.

А куда они деваются? В выключенном состоянии и ОС не работает. Просто они при автозагрузке восстанавливаются (rc.firewall к примеру)
Если конечный хост, то цепочка - INPUT и все должно работать. На всякий случай, разумеется, проверю завтра, однако, думаю, имеется еще какой-либо упущенный фактор.
11. Vinyl - 24 Января, 2013 - 20:40:19 - перейти к сообщению
esterio пишет:
установили arno-iptables-firewall

Я тоже хотел, но он не стал. Мне Мелкий, помнится, объяснял, что из-за особенностей виртуализации OpenVZ нет возможности вносить изменения в ядро iptables, посему и не становится.
12. EuGen - 25 Января, 2013 - 12:32:43 - перейти к сообщению
sshd же тоже нужно что-то слать с исходного порта 22 (ну, или httpd с 80), поэтому и не работало. Вчера я это не учел. Должно быть примерно следующее (примерно - потому как Вы можете захотеть дополнительно фильтровать соединения по состоянию NEW, ESTABLISHED и т.п. - ну и для 80 порта добавите такое же)
CODE (bash):
скопировать код в буфер обмена
  1. iptables -F
  2. iptables -X
  3.  
  4. iptables -P INPUT DROP
  5. iptables -P OUTPUT DROP
  6. iptables -P FORWARD DROP
  7.  
  8. iptables -A INPUT -i lo -j ACCEPT
  9. iptables -A OUTPUT -o lo -j ACCEPT
  10. iptables -A FORWARD -i lo -j ACCEPT
  11.  
  12. iptables -A INPUT  -p tcp --dport 22 -j ACCEPT
  13. iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
13. Vinyl - 26 Января, 2013 - 07:12:07 - перейти к сообщению
EuGen, спасибище! Работает!
14. Vinyl - 26 Января, 2013 - 08:09:10 - перейти к сообщению
А правильно ли я указываю диапазон портов (для ftp-транзакций):
CODE (bash):
скопировать код в буфер обмена
  1. iptables -A INPUT  -p tcp -m multiport --dports 49152:65534 -j ACCEPT
  2. iptables -A OUTPUT -p tcp -m multiport --sports 49152:65534 -j ACCEPT
?




________________________________ _____________________________

Вот же загадка этот iptables..
Делаю:
CODE (bash):
скопировать код в буфер обмена
  1. #!/bin/bash
  2.  
  3. iptables -F
  4. iptables -X
  5.  
  6. iptables -P INPUT DROP
  7. iptables -P OUTPUT ACCEPT
  8. iptables -P FORWARD DROP
  9.  
  10. iptables -A INPUT -i lo -j ACCEPT
  11. iptables -A OUTPUT -o lo -j ACCEPT
  12. iptables -A FORWARD -i lo -j ACCEPT
  13.  
  14. iptables -A INPUT  -p tcp --dport 20 -j ACCEPT
  15. iptables -A INPUT  -p tcp --dport 21 -j ACCEPT
  16. iptables -A INPUT  -p tcp --dport 22 -j ACCEPT
  17. iptables -A INPUT  -p tcp --dport 80 -j ACCEPT
  18. iptables -A INPUT  -p tcp --dport 587 -j ACCEPT
  19. iptables -A INPUT  -p tcp -m multiport --dports 49152:65534 -j ACCEPT


Оставляю открытыми все исх. порты, открываю вх. нужные, в т.ч. и 587-й (по нему яндекс-почта работает), пробую отправить письмо - пишет "ssmtp: Cannot open smtp.yandex.ru:587" Как так?

Терминал пишет:
# iptables -L -n
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:20
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:21
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:587
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 49152:65534

Chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
15. Vinyl - 26 Января, 2013 - 12:14:48 - перейти к сообщению
И что значит ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ?

 

Powered by ExBB FM 1.0 RC1