пятница, 1 апреля 2011 г.

Почта (и не только) через iptables

Порой бывает нужно дать почтовым клиентам внутри локальной сети доступ к внешним серверам. В сети очень много вариантов решения данной задачи, но в этом море очень сложно найти простой ответ, для начинающего пользователя. Зачастую даже и не знаешь как найти нужную информацию.

Надеюсь мой способ пригодится людям, столкнувшимся с подобной задачей.
Вот достаточно простой способ:

1. Разрешим пересылку пакетов
echo 1 > /proc/sys/net/ipv4/ip_forward
2. Командуем iptables пускать нас на почту, да и вообще куда угодно
а) для всех клиентов в подсети 192.168.0.0
sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ppp0 -j MASQUERADE
б) для конкретного клиента по IP-адресу
sudo iptables -t nat -A POSTROUTING -s 192.168.0.22 -o ppp0 -j MASQUERADE
СЛЕДУЕТ ОБРАТИТЬ ВНИМАНИЕ НА СЛЕДУЮЩИЕ МОМЕНТЫ:
  1. Чтобы каждый раз не выполнять команду echo 1 > /proc/sys/net/ipv4/ip_forward, нужно в файле /etc/sysctl.conf раскомментировать (или вписать) такую строчку:
    net.ipv4.ip_forward=1
  2. Команду echo 1 > /proc/sys/net/ipv4/ip_forward не получится выполнить через sudo. Сначало нужно выполнить sudo su, а уже потом, с правами root-а делать echo
  3. На клиентской машине в качестве шлюза должен быть указан адрес компьютера, на котором настраиваем iptables.
  4. На клиентской машине должен быть указан адрес DNS сервера.
  5. После перезагрузки настройки iptables слетят, поэтому можно добавить команду, например эту: iptables -t nat -A POSTROUTING -s 192.168.0.22 -o ppp0 -j MASQUERADE в файл /etc/rc.local, чтобы она автоматически срабатывала при запуске системы
  6. Указав интерфейс ppp0, я имел ввиду внешний интерфейс, т.е. это может быть и eth0

Ошибка при копировании файлов в MidnightCommander по SSH

Буквально вчера произошла одна печальная история, которая чуть не превратилась в настоящую трагедию. Вот как было дело. Нужно было перетащить по сети файлы с одной Linux-машины(AltLinux Юниор 4 из комплекта СПО) на другую (Ubuntu 10.4). Запустил MC, подцепился с Альта к Убунте и скопировал файлы. Всё вроде нормально, штатно.
Перебил Альт, поставил вместо него Убунтушку, стал заливать инфу обратно по тем же способом - бац!!! а от инфы осталась только структура каталогов. Файлов нет! Это был ппц. Всё обошлось, так как на другом компе нашлась еще одна копия документов, так что именно трагедии удалось избежать. Теперь немного технических подробностей:
1. Копировалось всё на раздел с NTFS
2. Файлы и каталоги были с русскими именами

Сейчас пробую повторить копирование с AltLinux 4.1 на Ubuntu 10.4, тоже на NTFS раздел - файлы как бы копируются, но на самом деле не появляются. При этом нет разницы, русские имена файлов или нет.

При копировании с Ubuntu 10.4 на такую же - если не убрать галку "Сохранять атрибуты", то ругается, но можно пропустить и файл копируется. А вот если копировать папку, то сама папка скопируется, а файлы с русским именами внутри неё - фиг.

Через GnomeCommander всё нормально копируется, равно как и через Nautilus.

Видать баг самого MC, причём давно, да ещё и в разных дистрибутивах...