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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: sendmail и iptables

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Vinyl
Отправлено: 06 Апреля, 2013 - 15:03:01
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 645
Дата рег-ции: Янв. 2012  
Откуда: Армавир, Краснодарский край


Помог: 15 раз(а)




Доброго времени.

Настраиваю iptables на сервере Debian 6 (VPS, KVM).
На сервере снаружи нужна видимость только nginx(80) и ssh(22).
Также, нужно обеспечить работу sendmail(25,587)

Установил правила
CODE (bash):
скопировать код в буфер обмена
  1. #!/bin/bash
  2.  
  3. # сбрасываем все ранее установленные правила
  4. iptables -F
  5. iptables -t nat -F
  6. iptables -t mangle -F
  7.  
  8. iptables -X
  9. iptables -t nat -X
  10. iptables -t mangle -X
  11.  
  12.  
  13. # по умолчанию
  14. iptables -P INPUT DROP
  15. iptables -P OUTPUT ACCEPT
  16. iptables -P FORWARD DROP
  17.  
  18.  
  19. iptables -A INPUT -i lo -j ACCEPT
  20. iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
  21. iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
  22.  
  23. iptables -A INPUT  -p tcp --dport 25 -j ACCEPT
  24. iptables -A INPUT  -p tcp --sport 25 -j ACCEPT
  25.  
  26. iptables -A INPUT  -p udp --dport 25 -j ACCEPT
  27. iptables -A INPUT  -p udp --sport 25 -j ACCEPT
  28.  
  29. iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT
  30. iptables -A OUTPUT -p tcp --sport 25 -j ACCEPT
  31.  
  32. iptables -A OUTPUT -p udp --dport 25 -j ACCEPT
  33. iptables -A OUTPUT -p udp --sport 25 -j ACCEPT
  34.  
  35. iptables -A INPUT  -p tcp --dport 587 -j ACCEPT
  36. iptables -A INPUT  -p tcp --sport 587 -j ACCEPT
  37.  
  38. iptables -A INPUT  -p udp --dport 587 -j ACCEPT
  39. iptables -A INPUT  -p udp --sport 587 -j ACCEPT
  40.  
  41. iptables -A OUTPUT -p tcp --dport 587 -j ACCEPT
  42. iptables -A OUTPUT -p tcp --sport 587 -j ACCEPT
  43.  
  44. iptables -A OUTPUT -p udp --dport 587 -j ACCEPT
  45. iptables -A OUTPUT -p udp --sport 587 -j ACCEPT


После установки таких правил sendmail не отправляет почту. Как только сбросишь настройки iptables, сразу начинают письма сыпаться в ящик (как будто в очереди стояли). В /var/log/mail.log, /var/log/mail.warn, /var/log/syslog и /var/log/messages ничего. Подскажите, где я ошибся. Спасибо.


-----
Пессимисты пользуются die(), оптимисты - exit()
 
 Top
DeepVarvar Супермодератор
Отправлено: 06 Апреля, 2013 - 17:21:01
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Vinyl пишет:
FORWARD DROP
Зачем внутренние пакеты дропаешь?
А ниже нигде не разрешаешь. Это же твой локалхост.
 
 Top
Vinyl
Отправлено: 06 Апреля, 2013 - 17:51:17
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 645
Дата рег-ции: Янв. 2012  
Откуда: Армавир, Краснодарский край


Помог: 15 раз(а)




DeepVarvar пишет:
Зачем внутренние пакеты дропаешь?
C iptables -P FORWARD ACCEPT то же самое.

DeepVarvar пишет:
А ниже нигде не разрешаешь. Это же твой локалхост.
Ну эти правила я как-то где-то вычитал, а вникать не вникал. На 80 работает же всё Радость

Я до сих пор не могу с iptables разобраться, это, видимо, выше моих сил Разнесу!


-----
Пессимисты пользуются die(), оптимисты - exit()
 
 Top
Мелкий Супермодератор
Отправлено: 06 Апреля, 2013 - 18:00:23
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




sendmail точно на 587 порту? Гляньте /sbin/ss -ln

Как вариант - нет 53 порта (DNS), если для входящей почты идёт проверка PTR - то она сфейлится всегда.


-----
PostgreSQL DBA
 
 Top
Vinyl
Отправлено: 06 Апреля, 2013 - 18:21:13
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 645
Дата рег-ции: Янв. 2012  
Откуда: Армавир, Краснодарский край


Помог: 15 раз(а)




Кажись положил я его серьезно...
Были у меня два файла в корне:
/iptables_set - его листинг выше
/iptables_reset - в нем только сбрасывающие правила
Кроном запускался каждые 5 минут /iptables_reset на всякий случай, а /iptables_set у меня в автозагрузке висел. А /iptables_reset я в crontab то ставил, то убирал. И последний раз, видимо, _set вместо _reset написал... А на лисяре мне посоветовали
Цитата:
iptables -I INPUT -m conntrack --ctstate NEW -p tcp --dport 22 -j ACCEPT
iptables -I INPUT -m conntrack --ctstate NEW -p tcp --dport 25 -j ACCEPT

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

Мелкий пишет:
sendmail точно на 587 порту?
в netstat -lptn слушал 25 и 587

Мелкий пишет:
Гляньте /sbin/ss -ln
Уже завтра, видимо

Мелкий пишет:
Как вариант - нет 53 порта (DNS)
Спасибо. Попробую.
(Добавление)
Выкрутился через внутренний терминал Hetzner'a Пляшу от радости

/sbin/ss -ln пишет:
Recv-Q Send-Q Local Address:Port Peer Address:Port
0 50 127.0.0.1:3306 *:*
0 10 127.0.0.1:587 *:*
0 128 127.0.0.1:11211 *:*
0 128 *:80 *:*
0 128 *:81 *:*
0 128 *:22 *:*
0 10 127.0.0.1:25 *:*


Мелкий пишет:
нет 53 порта (DNS)
iptables -A INPUT -i eth0 -p tcp --dport 53 -j ACCEPT ? Если так, то тоже не работает.

(Отредактировано автором: 06 Апреля, 2013 - 18:22:13)



-----
Пессимисты пользуются die(), оптимисты - exit()
 
 Top
Мелкий Супермодератор
Отправлено: 06 Апреля, 2013 - 22:17:50
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Vinyl пишет:
iptables -A INPUT -i eth0 -p tcp --dport 53 -j ACCEPT ? Если так, то тоже не работает.

Он udp. Впрочем, по RFC tcp тоже используется, но обычно udp.

Сделайте в конце правило -j LOG, тогда запишет в лог данные о пришедших в это правило пакетах.


-----
PostgreSQL DBA
 
 Top
Vinyl
Отправлено: 06 Апреля, 2013 - 22:29:12
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 645
Дата рег-ции: Янв. 2012  
Откуда: Армавир, Краснодарский край


Помог: 15 раз(а)




Мелкий пишет:
Сделайте в конце правило -j LOG

Спойлер (Отобразить)
Ничего не пойму Огорчение


-----
Пессимисты пользуются die(), оптимисты - exit()
 
 Top
Vinyl
Отправлено: 09 Апреля, 2013 - 09:37:35
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 645
Дата рег-ции: Янв. 2012  
Откуда: Армавир, Краснодарский край


Помог: 15 раз(а)




Готово. Если кому-то пригодится:
CODE (bash):
скопировать код в буфер обмена
  1. #!/bin/bash
  2.  
  3. iptables -F
  4. iptables -t nat -F
  5. iptables -t mangle -F
  6.  
  7. iptables -X
  8. iptables -t nat -X
  9. iptables -t mangle -X
  10.  
  11. iptables -P INPUT DROP
  12. iptables -P OUTPUT ACCEPT
  13. iptables -P FORWARD DROP
  14.  
  15. iptables -A INPUT -i lo -j ACCEPT
  16. iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
  17. iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
  18.  
  19. iptables -A OUTPUT -p tcp --sport 25 -j ACCEPT
  20.  
  21. iptables -A INPUT  -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT
  22. iptables -A OUTPUT -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT
  23.  
  24. iptables -A INPUT  -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
  25. iptables -A OUTPUT -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
Так работает nginx и sendmail. В плане безопасности не уверен.

(Отредактировано автором: 09 Апреля, 2013 - 09:39:04)



-----
Пессимисты пользуются die(), оптимисты - exit()
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Администрирование *nix »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB