Доступ к сервисам

Аватар пользователя Alexey

Установил vsftp, он давно и хорошо работает на интерфейсе eth0, как разрешить пользователям с ppp0 подключается к серверу? Все работает, если цепочки iptables настроены на ACCEPT, но мне нужно установить политику по умолчанию DROP. Я думаю, что надо выполнять FORWARD, но не понимаю как это работает, все команды изучил, но не хватает практики. Знаю, что настройка для протокола ftp, сложна, поясните пожалуйста на примере только одного порта 21.

Аватар пользователя woodoo

Re: доступ к сервисам

Alexey

Цитата:
Установил vsftp, он давно и хорошо работает на интерфейсе eth0, как разрешить пользователям с ppp0 подключается к серверу? Все работает, если цепочки iptables настроены на ACCEPT, но мне нужно установить политику по умолчанию DROP. Я думаю, что надо выполнять FORWARD, но не понимаю как это работает, все команды изучил, но не хватает практики. Знаю, что настройка для протокола ftp, сложна, поясните пожалуйста на примере только одного порта 21.

На примере только 21-го порта - невозможно. В пассивном режиме сервер открывает случайный порт из некоего диапазона, а клиент коннектится к нему. Форварда нет, есть входящее соединение на заранее неизвестный порт.
Этот порт сообщается ftp-клиенту "внутри" самой сессии. Для отслеживания таких "типовых сообщений" используются дополнительные модули iptables. В нашем случае нужен модуль ip-nat-ftp, остальные модули (по зависимости) догрузятся автоматически.
В /etc/sysconfig/iptables-config добавим|допишем/исправим:

Цитата:
IPTABLES_MODULES="ip_nat_ftp"

А в скрипт:

Цитата:
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i ppp0 -s 0/0 -p tcp -m multiport --destination-ports 20:21 -j ACCEPT
iptables -A INPUT -i ppp0 -s 0/0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# service iptables restart
Теперь можно запустить скрипт и если все заработало:
# service iptables save

Аватар пользователя Alexey

Re: доступ к сервисам

Цитата:
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i ppp0 -s 0/0 -p tcp -m multiport --destination-ports 20:21 -j ACCEPT
iptables -A INPUT -i ppp0 -s 0/0 -m state --state ESTABLISHED,RELATED -j ACCEPT

Да все так и делаю, об этом во всех книжках написано, а вот люди говорят не можем подключиться, даже на 21. И все! Кто по интерфейсу eth0, кто по ppp0 неработает. А могу я сам подключить со своего компьютера, представившись кем-то другим? Т.е. скажем заменив свой адрес в пакетах на другой? Есть подобные проги? Мне кажется должны быть, ведь это очень полезно для наладки iptables

Аватар пользователя DRVTiny

Re: доступ к сервисам

Всё элементарно просто: к Вам люди пытаются подключиться по пассивному FTP, т.е. сначала они коннектятся на 21-й порт сервера, получают от Вашего сервера произвольный номер, соответствующий непривиллегированному порту (номера от 1024 до 65535), коннектятся к нему (Ваш сервер запомнил IP-адрес клиента, с которым договаривался о подключении на неприв. порт) по этому номеру. Иными словами, правила для iptables у Вас должны быть такими:

iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT # Зря Вы это делаете, червь запросто может пробраться к Вам по уже установленному Вами же соединению и открыть порт с Вашей стороны, с которого будет периодически пытаться коннектиться на порты хакерского компьютера для докачки своего тела. Лучше открывайте OUTPUT (хотя бы для SYN-пакетов) только на те порты, которые Вам действительно нужны и ни на йоту больше!
iptables -A INPUT -p tcp --sport 1024: --dport 1024: -j ACCEPT
iptables -A INPUT -p tcp --sport 1024: --dport 21 -j ACCEPT
# Раскомментируйте, если с Вашим FTP-сервером кто-то будет устанавливать активное соединение (что сомнительно)
# iptables -A INPUT -p tcp --sport 1024: --dport 20 -j ACCEPT

Аватар пользователя DRVTiny

Re: доступ к сервисам

Цитата:
В нашем случае нужен модуль ip-nat-ftp, остальные модули (по зависимости) догрузятся автоматически.
В /etc/sysconfig/iptables-config добавим|допишем/исправим:

Ну, не знаю, во всяком случае у меня на интернет-шлюзе добавление этого модуля с целью разрешить клиентам пассивный коннект на FTP-сервера без необходимости открывать SYN-FORWARD на произвольные непривиллегированные порты (что грозит самыми неприятными последствиями), ничем не помогло Грустный Не знаю, может, это помогает на самих серверах (ни разу не пробовал, не представлялось такой возможности)? В любом случае, Вашу реплику про модуль FTP-NAT Alexey явно пропустил мимо ушей...

Аватар пользователя woodoo

Re: доступ к сервисам

Alexey

Цитата:
Кто по интерфейсу eth0

Об интерфейсе eth0 речи не было.

DRVTiny

Цитата:
Ну, не знаю, во всяком случае у меня на интернет-шлюзе добавление этого модуля с целью разрешить клиентам пассивный коннект на FTP-сервера без необходимости открывать SYN-FORWARD на произвольные непривиллегированные порты (что грозит самыми неприятными последствиями), ничем не помогло

А какой диапазон upper ports используется самим ftp-сервером?

Аватар пользователя Alexey

Re: доступ к сервисам

woodoo

Цитата:
Об интерфейсе eth0 речи не было.

Об этом было в начале
woodoo

Цитата:
А какой диапазон upper ports используется самим ftp-сервером?

Это не имеет значения, я просто спросил пакетам с интерфейса ppp0 дойти до интерфейса eth0 а ответу вернуться назад. Я уже нашел ответ, надо использовать NAT, только мне не понятно, с чего это vsftpd решил, что он должен обслуживать только eth0? откуда он это взял?

Аватар пользователя sergeil

Re: доступ к сервисам

Alexey

Цитата:
с чего это vsftpd решил, что он должен обслуживать только eth0? откуда он это взял?

man vsftpd.conf

listen_address
If vsftpd is in standalone mode, the default listen address (of all local interfaces) may be overridden by this setting. Provide a numeric IP address.
Default: (none)

Смотрите свой /etc/vsftpd/vsftpd.conf

Аватар пользователя Alexey

Re: доступ к сервисам

Решил проблему, бред какой-то Грустный

Аватар пользователя sergeil

Re: доступ к сервисам

Alexey

Цитата:
Решил проблему, бред какой-то Грустный

И как решил?

Аватар пользователя Alexey

Re: доступ к сервисам

все по порядку:
1. Я разрешил все output, а то сервер vsftpd на мой взгляд не корректно работает с соединениями, ну ладно это вопрос логический, спорный и все такое. Но порт стал открываться и качать list Уже кое-что. В общем соединениям не присваивается эстеблишен в тех случаях когда я этого ожидаю, и они не подпадают под дейтвие этого правила. Это я сделал в принципе через 10 мин, еще до того как сюда написал.
2. Для там всего одна папка(для пробы), называется Масяня, права корректные и все такое. Она открывается, но файлы из нее не качаются. Я все башку свернул почему. Из остальных качает.
3. Думал весь вечер, клиент gFTP 2.0.18 Зашел случайно, firefox все качается. Что за ...?
4. После внимательного осмотра заключаю, что gFTP 2.0.18 эту самую папку видит как /Масяяняя . Ясно что из этой папки ни одного файла не скачать!
5. И вообще он удваивает буквы "я" в названиях папок. Проверял.
Так как подключался к серверу удаленно не я сам (я после только попробовал), комп в другом доме стоит, изменяя настройки firewall от друга по телефону я слышал одно: некачает (он gFTP 2.0.18 использует), а я сам до того запарился с этим iptables что ни про что другое думать уже не мог, все мерещилось, что дело в настройка сначал по 21 порт, а потом по 20.
Тупо конечно, но зато жизненно.

Аватар пользователя woodoo

Re: доступ к сервисам

Alexey

Цитата:
4. После внимательного осмотра заключаю, что gFTP 2.0.18 эту самую папку видит как /Масяяняя . Ясно что из этой папки ни одного файла не скачать!

ftp не гарантирует правильную работу с "нелатинскими" символами в именах файлов и каталогов.
Эта проблема неоднократно обсуждалась на форумах community.asplinux.ru
http://community.asplinux.ru/forum/3/1391/1730/#R1730

Аватар пользователя Alexey

Re: доступ к сервисам

woodoo

Цитата:
ftp не гарантирует правильную работу с "нелатинскими" символами в именах файлов и каталогов.

Разве разговор о ftp? Я говорю о баге в клиенте gFTP 2.0.18 В firefox, opera и wincomander(под виндой тоже проверил) этого нет.
А на счет не гарантированности работы, этот вопрос многократно обсуждался, и не только по этой ссылке, но каждый остался при своем мнение, плюс к этому есть сотни рускоязычных ftp серверов, которые работают.

Аватар пользователя woodoo

Re: доступ к сервисам

Хорошо, "кратко" намекнуть не получилось. Улыбка
Попытаюсь объяснить на примере "пчелок, бабочек и... бегемотиков".

Цитата:
У армянского радио спрашивают:
- Вчера наблюдали бегемота в столичном зоопарке. Удивительное явление: хвост опускает - пасть раскрывается, пасть закрывает - хвост задирается. Чем можно объяснить этот парадокс?
Комментатор радио:
- ...нехваткой кожи.

Цитата:
Alexey пишет:
woodoo

Цитата:
ftp не гарантирует правильную работу с "нелатинскими" символами в именах файлов и каталогов.

Разве разговор о ftp? Я говорю о баге в клиенте gFTP 2.0.18 В firefox, opera и wincomander(под виндой тоже проверил) этого нет.

Нет, разговор не об ftp. Разговор, скорее, о telnet и его ограничениях - символ с кодом 255 (в cp1251 - это символ "я") - служебный символ IAC.
Речь не об ftp, а о протоколе, который он использует в командном интерфейсе. Для решения передачи именно символа с кодом 255 придуман трюк - посылка double IAC.
Т.е. вместо "я" посылается "яя". Ничего не напоминает? Но тут мы приближаемс к "пчелкам и бабочкам" - такой workaraund должен поддерживаться как сервером, так и клиентом того самого ftp-протокола, о котором "мы вообще не говорим".
Хорошо, с момента поста, ссылку на который я давал прошло 2 года и я уже неоднократно убедился, что "подпатчили" не только серверы (пасть открывается), но и клиенты (пасть закрывается).
Это дало гарантию от проблем?
Нет. Потому что "нехватка кожи" - проблема не в реализации, а в принципе. То тут, то там будут выползать косяки.
Хочешь называть это "багом клиента" - называй.

"Инициативная группа <Гринпис> наконец-то нашла основной недостаток железнодорожного транспорта: он не способен выйти на орбиту!" Катается от смеха

Цитата:
А на счет не гарантированности работы, этот вопрос многократно обсуждался, и не только по этой ссылке, но каждый остался при своем мнение, плюс к этому есть сотни рускоязычных ftp серверов, которые работают.

Я ничего не собираюсь доказывать в данном случае. "У меня все работает. От частных патчей зависимости нет". (с)

Аватар пользователя Alexey

Re: доступ к сервисам

woodoo

Цитата:
Нет. Потому что "нехватка кожи" - проблема не в реализации, а в принципе. То тут, то там будут выползать косяки.
Хочешь называть это "багом клиента" - называй.

Мне тоже кажется, что протоколы разработаны достаточно "странные", подходящие на 100% только для англоязычных стран. Интересно когда увидят свет новые стандарты? Мне кажется что восточным странам с их богатым алфавитом еще труднее приходится. Но ftp то пользоваться будем, куда деваться, никто уже не станет разбирать каракули английские.

Аватар пользователя woodoo

Re: доступ к сервисам

Alexey

Цитата:
Мне тоже кажется, что протоколы разработаны достаточно "странные", подходящие на 100% только для

Это вопросы "временных промежутков". Когда-то никто не мог предусмотреть "проблему 2000" или дефицит ip адресов в ipv4.

RSS-материал