Автор Тема: firewall -> iptables  (Прочетена 10806 пъти)

anakinn

  • Напреднали
  • *****
  • Публикации: 190
    • Профил
firewall -> iptables
« -: Nov 30, 2005, 16:37 »
Здравейте !

Искам да си настроя някакъв прост firewall. Използвам Linux Gentoo 2005.1 Linux kernel 2-6.12 iptables.
Идеята, която искам да постигна е нещо от рода на ...отказ на всичко, освен на някои нужни портове - 80,443..

Прегледах man iptables,малко из гугъл и много из форума '<img'>
Пробвах с нещо, което беше обявено като просто и работещо:
iptables -P INPUT DROP
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT

След всичко това...направо загубих връзка към машината си '<img'>)
Имам само една мрежова карта, не искам правя някакви пренасочвания и т.н. (не е рутер).
Тъй като машината ще се вижда през интернет, искам да е поне малко засигурен.
Дори пробвам неща от типа на фтп да не е на 21 порт а на 3321 например.
Може ли някой да ми помогне с помощен скрипт, или поне да ме насочи някъде, където е по... по за прости хора написано така да се каже '<img'>

Благодаря!
Активен

vlad73

  • Напреднали
  • *****
  • Публикации: 130
    • Профил
firewall -> iptables
« Отговор #1 -: Nov 30, 2005, 17:31 »
iptables -P INPUT DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
Активен

  • Гост
firewall -> iptables
« Отговор #2 -: Nov 30, 2005, 21:22 »
Цитат (anakinn @ Ноември 30 2005,17:37)
Здравейте !

Искам да си настроя някакъв прост firewall. Използвам Linux Gentoo 2005.1 Linux kernel 2-6.12 iptables.
Идеята, която искам да постигна е нещо от рода на ...отказ на всичко, освен на някои нужни портове - 80,443..

Прегледах man iptables,малко из гугъл и много из форума '<img'>
Пробвах с нещо, което беше обявено като просто и работещо:
iptables -P INPUT DROP
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT

След всичко това...направо загубих връзка към машината си '<img'>)
Имам само една мрежова карта, не искам правя някакви пренасочвания и т.н. (не е рутер).
Тъй като машината ще се вижда през интернет, искам да е поне малко засигурен.
Дори пробвам неща от типа на фтп да не е на 21 порт а на 3321 например.
Може ли някой да ми помогне с помощен скрипт, или поне да ме насочи някъде, където е по... по за прости хора написано така да се каже '<img'>

Благодаря!

Аз също се боря със същия проблем. При мен се получава, че скрипта работи, защитава машината, но не отваря нужните ми портове. Смятам да пусна ftp server на порт 21000, но като пусна скрипта ми дава грешка 425.
Ето моя скрипт, ако с нещо може да ти е полезен и ако се сетиш нещо за решение пиши:

#!/bin/bash
IPTABLES='/sbin/iptables'
# Set interface values
EXTIF='eth0'

# flush rules and delete chains
$IPTABLES -F
$IPTABLES -X
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPTABLES -A INPUT  -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT

#echo -e "       - Allowing access to the Skype"
$IPTABLES -A INPUT --protocol tcp --dport 48420 -j ACCEPT

#echo -e "       - Allowing access to the Webmin"
$IPTABLES -A INPUT --protocol tcp --dport 10000 -j ACCEPT

#echo -e "       - Allowing access to the FTP server"
$IPTABLES -A INPUT --protocol tcp --dport 21000 -j ACCEPT

#echo -e "       - Allowing access to the FTP server"
$IPTABLES -A INPUT --protocol tcp --dport 21 -j ACCEPT

#echo -e "       - Allowing access to the SSH server"
$IPTABLES -A INPUT --protocol tcp --dport 22 -j ACCEPT

#echo -e "       - Allowing access to the SSH server"
$IPTABLES -A INPUT --protocol tcp --dport 22000 -j ACCEPT

#echo -e "       - Allowing access to the HTTP server"
$IPTABLES -A INPUT --protocol tcp --dport 80 -j ACCEPT

# block out all other Internet access on $EXTIF
$IPTABLES -A INPUT -i $EXTIF -m state --state NEW,INVALID -j DROP
$IPTABLES -A FORWARD -i $EXTIF -m state --state NEW,INVALID -j DROP
Активен

anakinn

  • Напреднали
  • *****
  • Публикации: 190
    • Профил
firewall -> iptables
« Отговор #3 -: Dec 01, 2005, 12:56 »
vlad73:
Перфектно '<img'>
Благодаря много
явно този ред, които си маркирал оправя нещата
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Само един проблем имам
пуснал сум proftpd na 2221 порт и от ftp клиента взимам следното съобщение:
Connecting to 192.168.1.99:2221 ...
Status:   Connected with 192.168.1.99:2221. Waiting for welcome message...
Response:   220 ProFTPD 1.2.10 Server (ProFTPD Default Installation) [192.168.1.99]
Command:   USER simo
Response:   331 Password required for simo.
Command:   PASS *******
Response:   230 User simo logged in.
Command:   FEAT
Response:   211-Features:
Response:    MDTM
Response:    REST STREAM
Response:    SIZE
Response:   211 End
Command:   SYST
Response:   215 UNIX Type: L8
Status:   Connected
Status:   Retrieving directory listing...
Command:   PWD
Response:   257 "/" is current directory.
Command:   TYPE A
Response:   200 Type set to A
Command:   PASV
Response:   227 Entering Passive Mode (192,168,1,99,129,247).
Command:   LIST
Error:   Transfer channel can't be opened. Reason: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
Error:   Could not retrieve directory listing

В man iptables намерих:

string  can  be  "ftp"  for  packets related to a ftp-session on
              default port.  For other ports append -portnr to the value,  ie.
              "ftp-2121".

Но нещо не успях да го добавя

На какво може да се дължи?
ftp-то бачка, щото като спра iptables-restore /etc/iptables.bak
и няма проблем
Активен

NaDa

  • Напреднали
  • *****
  • Публикации: 94
    • Профил
firewall -> iptables
« Отговор #4 -: Dec 01, 2005, 13:20 »
От твойта си машина ли се връзваш? Защото ако е така, трябва да отвориш 20 (фтп-дата) порт, предполагам?
Активен

Hapkoc

  • Напреднали
  • *****
  • Публикации: 2117
    • Профил
firewall -> iptables
« Отговор #5 -: Dec 01, 2005, 13:21 »
доколкото ми е известно ftp протокола използва два порта (по подразбиране 20 и 21). порт 21 се използва за логин и изпращане на команди и получаване на резултат от командите. порт 20 се използва за трансфер на данни.

в случая ми се струва, че в момента, в който подадеш get (или в случая list) командата клиента се опитва да се свърже на порт 20, който предполагам е затворен.

с ftp сървъри не съм си играл много, но вероятно или трябва да отвориш 20-ти порт през iptables или да го прехвърлиш (от конфигурацията на ftp сървъра) на друг порт и да укажеш на клиента кой му е ftp-data порт-а, или да укажеш на клиента да използва passive mode за файлови трансфери. последното мисля, че в command-line ftp клиента се прави с командата passive и указва ,че при поискване на файл от сървъра същия трябва да инициира връзката към клиента.

ако съм допуснал някоя неточност моля да бъда коригиран.

поздрави

п.с.: поради дължината на моя отговор и лаконичността на NaDa последния ме е изпреварил/а '<img'>
Активен

anakinn

  • Напреднали
  • *****
  • Публикации: 190
    • Профил
firewall -> iptables
« Отговор #6 -: Dec 01, 2005, 13:31 »
ftp-то ще се ползва само от локалната мрежа
аз разрешавам 1 Ip
iptables - D INPUT -p tcp --dport 2221 -s 192.168.1.200 -j ACCEPT
iptables - D INPUT -p tcp --dport 20 -s 192.168.1.200 -j ACCEPT

клиента е настроен в passive mode

пробвах, но пак не става....

В FileZilla виждам следното
227 Entering Passive Mode (192,168,1,99,130,19)

като дам нова връзка
227 Entering Passive Mode (192,168,1,99,130,21)

пак нова връзка
227 Entering Passive Mode (192,168,1,99,130,23)
и т.н.
Активен

Hapkoc

  • Напреднали
  • *****
  • Публикации: 2117
    • Профил
firewall -> iptables
« Отговор #7 -: Dec 01, 2005, 13:56 »
Добре, какво става при опит за download на файл?

В смисъл, това съобщение по моите разбирания идва да покаже, че клиента влиза в passive mode.
Активен

vlad73

  • Напреднали
  • *****
  • Публикации: 130
    • Профил
firewall -> iptables
« Отговор #8 -: Dec 01, 2005, 14:02 »
Aми има един модул: ip_conntrack_ftp, негова работа е да се грижи общо взето далаверките по ftp-то, най-вече да разпознае пакетите по втория канал като "Related" към първия. Зареди го с "modprobe ip_conntrack_ftp" и виж дали ще има промяна. В man-a на iptables се говори и за helpers, не съм го ползвал, но се споменаваше, че можеш да заредиш ftp-helper с конкретен порт на който да следи контролната връзка, може би трябва да се провери и това.
Аз си реших малко хамалски този въпрос - просто разреших порта, който ми трябваше за data-connection в output-a на filter, фиксирах изходящия порт на сървъра и забраних passv '<img'>
Успех на всички борещи ftp-то! '<img'>
Активен

anakinn

  • Напреднали
  • *****
  • Публикации: 190
    • Профил
firewall -> iptables
« Отговор #9 -: Dec 01, 2005, 14:17 »
Hapkoc:
не се стига до там.
Точно преди командата /list спира... и след малк изкарва гореспоменатата грешка.

vlad73:
Ще пробвам с ip_conntrack_ftp...
А как точно си го направил?
В смисъл допуснал си 20порт, аз пробвах така, но уви '<img'>
Активен

vlad73

  • Напреднали
  • *****
  • Публикации: 130
    • Профил
firewall -> iptables
« Отговор #10 -: Dec 01, 2005, 14:33 »
Ами не точно: във vsftpd.conf указах, че искам фиксиран порт за data-connection и кой е този порт, при мен е от нерпивелигированите - 2120 в случая, просто с 21 и 20 имах проблем с един Вин - имаше firewall, a човека на него твърдеше, че няма и отказваше да коригира каквото и да е, оказа се, че като минах на "горни портове" (след 1023) нещата си станаха, изглежда win-a преживява по-лесно връзка от непривелигирован порт, отколкото от привелигирован.  '<img'>
Активен

anakinn

  • Напреднали
  • *****
  • Публикации: 190
    • Профил
firewall -> iptables
« Отговор #11 -: Dec 01, 2005, 15:20 »
И мене ме устройва да го направя по този начин.
Нещо се затруднявам да намеря в proftpd такава секция...
Активен

vlad73

  • Напреднали
  • *****
  • Публикации: 130
    • Профил
firewall -> iptables
« Отговор #12 -: Dec 01, 2005, 15:38 »
ами може и да няма смисъл от такава опция, трябва да се пробва, просто data-connection почти винаги е на порт с 1 по-малък от този на control connection, при vsftpd това явно не е задължително, та затова си има опция, при proftpd може да си фиксиран порта
netstat ще ти свърши работа в случая
Активен

anakinn

  • Напреднали
  • *****
  • Публикации: 190
    • Профил
firewall -> iptables
« Отговор #13 -: Dec 01, 2005, 15:56 »
33325
33327
33329
при всеки следващ опит нарастват
значи са на рандом порт...
отвратителна работа '<img'>
Активен

vlad73

  • Напреднали
  • *****
  • Публикации: 130
    • Профил
firewall -> iptables
« Отговор #14 -: Dec 01, 2005, 17:31 »
Зареждането на ip_conntrack_ftp не помага ли?
A това чудо, наречено helper?
виж какво пише в man-a за него:
Примерен код
  helper
       This module matches packets related to a specific conntrack-helper.

       --helper string
              Matches packets related to the specified conntrack-helper.

              string  can  be  "ftp"  for packets related to a ftp-session on
              default port.  For other ports append -portnr to the value, ie.
              "ftp-2121".

              Same rules apply for other conntrack-helpers.

И виж дали ако свалиш firewall-a на "клиента" няма да се променят нещата, не е казано, че само сървъра прецаква нещата.
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Iptables Firewall Script
Настройка на програми
Vasil_T 5 4049 Последна публикация Sep 01, 2004, 17:06
от Vasil_T
Arno-iptables-firewall
Настройка на програми
limbozon 4 3334 Последна публикация Apr 11, 2010, 15:33
от limbozon
Arno-iptables-firewall въпрос
Настройка на програми
limbozon 5 3978 Последна публикация Apr 19, 2010, 19:15
от borovaka
Помощ за iptables firewall.
Настройка на програми
v13 1 2467 Последна публикация Dec 24, 2011, 23:07
от Bogo
Iptables Firewall Examples
Настройка на програми
User13 7 3716 Последна публикация Jun 14, 2017, 08:12
от User13