Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: abadon в Mar 09, 2007, 19:21



Титла: Два въпроса относно debian sid
Публикувано от: abadon в Mar 09, 2007, 19:21
Здравейте

Започнах плавен преход от SuSE Линукс към Debian. До тук всичко върви гладко и Debian-а много ми харесва, но останаха два проблема които не мога да реша сам (по всяка вероятност са елементарни но просто не знам къде да търся отговорите им).
1. Въпрос как мога да си направя защитна стена която да блокира всички портове? Смисъл такъв, че при SuSE-то YaST firewall-а блокира всички портове, с изключение на тези които съм ги посочил изрично като отворени. Такава защитна стена може ли да се изгради лесно при Debian-а, защото сега всяка програма си отворя портове на поразия а аз не искам да е така.

2. въпрос като напиша в конзолата когато съм root (примерно xterm, console и т.н.) името на някоя програма която има графичен интерфейс тя не се стартира ми ми дава следната грешка:
Цитат
Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified

kate: cannot connect to X server :0.0

ако напиша името на същата програма само че да не съм root тя си се стартира без проблем.

Предварително благодаря!





Титла: Два въпроса относно debian sid
Публикувано от: phantomlord в Mar 09, 2007, 19:29
1.
Примерен код
apt-get install firestarter

Firestarter e firewall c GUI.
2. На твоя root му е забранено да влиза в графична среда. Кой dm ползваш - kdm/gdm? Можеш и просто да си конфигурираш sudo.





Титла: Два въпроса относно debian sid
Публикувано от: mikis в Mar 09, 2007, 20:02
По втория въпрос виж отговор №3 в тази тема.





Титла: Два въпроса относно debian sid
Публикувано от: abadon в Mar 09, 2007, 20:23
Цитат (phantomlord @ Март 09 2007,19:29)
1.
Примерен код
apt-get install firestarter

Firestarter e firewall c GUI.
2. На твоя root му е забранено да влиза в графична среда. Кой dm ползваш - kdm/gdm? Можеш и просто да си конфигурираш sudo.

Сега ще е разгледам тази Firestarter но за момента не виждам да могат да се блокират определени портове.

Иначе ползвам kdm като графичен мениджър.
mikis — ще прочета и изпробвам и съветите дето си ми ги дал.


Титла: Два въпроса относно debian sid
Публикувано от: phantomlord в Mar 09, 2007, 20:41
Могат да се блокират, виж Policy.


Титла: Два въпроса относно debian sid
Публикувано от: aaaaaa в Mar 09, 2007, 21:01
До колкото знам firestarter по подразбиране провежда рестриктивна политика - всички освен най - необходимите портове са затворени.


Титла: Два въпроса относно debian sid
Публикувано от: ivo1204 в Mar 10, 2007, 00:02
B kdm да не влизаш като "роот" ти е забранено в "/etc/kde3/kdm/kdmrc"
.................................................
ред 245 :  
          # Allow root logins?
           # Default is true
            AllowRootLogin=fаlse  <------------смени с "true"
            .................................


Титла: Два въпроса относно debian sid
Публикувано от: neter в Mar 10, 2007, 01:04
Защо го карате човека да използва някакви програми за firewall, след като е толкова лесно човек сам да си го създаде. Прочети за iptables. Много полезен инструмент. Ето пример как да процедираш, щом искаш да забраниш всичко (входящо предполагам, ако не рутираш) и след това да позволиш само определени неща. Отвори като root файла /etc/init.d/rc.local (или си направи изпълним файл в /etc/init.d и му задай да се изпълнява при boot) и най-отдолу в него започни да въвеждаш следните команди. За забраняване на всичко, въведи командата
/sbin/iptables --policy INPUT DROP
Под нея започни да изреждаш правила за позволяване на портове, хостове и т.н. Ето пример как ще позволя входяща конекция към порт 80, на който ми слуша http сървъра, като ще дам позволение само на IP 111.222.333.444
/sbin/iptables -A INPUT -s 111.222.333.444 -p tcp -m tcp --dport 80 -j ACCEPT
Ако искаш да дадеш позволение на всички, пропусни опцията -s и IP-то след нея. Ако искаш да позволиш ping-а към твоята машина
/sbin/iptables -A INPUT -s 111.222.333.444 -p icmp -j ACCEPT
и т.н. Постепенно ще изградиш нещата така, както искаш да са. Предимството е, че не си пълниш машината с допълнителни файлове, чието съдържание така и няма да разбереш и да го контролираш. Още едно предимство е, че ще се научиш как да използваш iptables, а е много полезно да се знаят поне основни неща от него. Има ръководства за iptables, питай бай Google. А ако някъде се запънеш, питай и ще помагаме.

P.S.: Така зададени в rc.local, правилата ще се задействат след като рестартираш машината. Ако искаш да се задействат още преди да си рестартирал, изпълни същите команди в конзолата като root.





Титла: Два въпроса относно debian sid
Публикувано от: abadon в Mar 11, 2007, 13:37
Цитат (ivo1204 @ Март 10 2007,00:02)
B kdm да не влизаш като "роот" ти е забранено в "/etc/kde3/kdm/kdmrc"
.................................................
ред 245 :  
          # Allow root logins?
           # Default is true
            AllowRootLogin=fаlse  <------------смени с "true"
            .................................

Благодарение на тези команди и на линка даден ми от mikis си оправих нещата с графичните програми и сега мога да си ги пускам и като root без проблем.

Благодаря Ви момчета!

P.S>Сори, че се забавих но просто не бях пред компа.


Титла: Два въпроса относно debian sid
Публикувано от: abadon в Mar 11, 2007, 13:45
Цитат (neter @ Март 10 2007,01:04)
Защо го карате човека да използва някакви програми за firewall, след като е толкова лесно човек сам да си го създаде. Прочети за iptables. Много полезен инструмент. Ето пример как да процедираш, щом искаш да забраниш всичко (входящо предполагам, ако не рутираш) и след това да позволиш само определени неща. Отвори като root файла /etc/init.d/rc.local (или си направи изпълним файл в /etc/init.d и му задай да се изпълнява при boot) и най-отдолу в него започни да въвеждаш следните команди. За забраняване на всичко, въведи командата
/sbin/iptables --policy INPUT DROP
Под нея започни да изреждаш правила за позволяване на портове, хостове и т.н. Ето пример как ще позволя входяща конекция към порт 80, на който ми слуша http сървъра, като ще дам позволение само на IP 111.222.333.444
/sbin/iptables -A INPUT -s 111.222.333.444 -p tcp -m tcp --dport 80 -j ACCEPT
Ако искаш да дадеш позволение на всички, пропусни опцията -s и IP-то след нея. Ако искаш да позволиш ping-а към твоята машина
/sbin/iptables -A INPUT -s 111.222.333.444 -p icmp -j ACCEPT
и т.н. Постепенно ще изградиш нещата така, както искаш да са. Предимството е, че не си пълниш машината с допълнителни файлове, чието съдържание така и няма да разбереш и да го контролираш. Още едно предимство е, че ще се научиш как да използваш iptables, а е много полезно да се знаят поне основни неща от него. Има ръководства за iptables, питай бай Google. А ако някъде се запънеш, питай и ще помагаме.

P.S.: Така зададени в rc.local, правилата ще се задействат след като рестартираш машината. Ако искаш да се задействат още преди да си рестартирал, изпълни същите команди в конзолата като root.

neter напълно си прав точно такова решиние като твоето исках, но нещо не работи или аз не го правя както трябва  ;)
Значи сканирам с nmap портовете си и виждам:
Цитат
PORT      STATE SERVICE
номера на порта/tcp open  unknown
..........

След това изпълнявам като root командата /sbin/iptables --policy INPUT DROP
Сканирам с nmap, но резултата не се променя.  ;)  А аз искам да се промени на:
Цитат
PORT      STATE  SERVICE
номера на порта/tcp closed unknown

При SuSE-то докато не пусна от защитната стена даден порт като отворен, независимо какво слуша на него при сканиране ми дава винаги — closed


Титла: Два въпроса относно debian sid
Публикувано от: neter в Mar 11, 2007, 15:19
Защитната стена се грижи за контрол на достъпа до и от машината от/към някъде. Това кой порт ще бъде отворен или затворен си е работа на приложенията и сървърите, които ги ползват. Дори и някой порт да бъде отворен, ако в защитната стена е зададено да няма достъп до него от никъде, не виждам какъв е проблема. Ако искаш да затвориш порта, просто редактирай настройките или спри приложението или сървъра, който го ползва. На мен не ми изглежда логично при зададен --policy INPUT DROP порта да се затваря или nmap да го показва като затворен, след като той си е отворен, нищо че никой няма достъп до него. Не би ми и харесало защитната стена да ми отваря и затваря портовете, защото така се губи гъвкавостта на действие. Когато тестваш сигурността си, тествай я от външна машина, а не от localhost-а. А ако искаш да затвориш някой порт, действай на ниво приложение, а не на ниво защитна стена  ;)


Титла: Два въпроса относно debian sid
Публикувано от: abadon в Mar 11, 2007, 16:43
Премахнах firestarter-а защото явно той беше напраскал някакви правила та беше станало мацало.. :crazy:
След това си направих следната защитна стена:
Цитат
iptables -P INPUT DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

И сега като се сканирам (локално и отдалечено) nmap-а ми дава:
Цитат
PORT    STATE    SERVICE
номера на порта/tcp filtered rpcbind

въпреки че на дадения порт стои някаква услуга.
Сложих и в /etc/hosts.deny — ALL : ALL с което мисля че съм изградил достатъчно добра защита за личен компютър?

P.S>Интересно как защитната стена на SuSE-то филтрира нещата толкова яко, че винаги при сканиране състоянието на порта е closed независимо има или няма услуга зад него. При SuSE-то порта или е отворен или затворен, филтирано полужение няма.