14. februar 2006 - 21:17Der er
29 kommentarer og 1 løsning
ip, route og iptables commads
Hej igen
Jeg har lidt problemmer med netconfigurings-kommandoerne. Jeg skulle have iproute og iptables installeret på min linux 2.6, men hverken ip, route, iptables eller ifconfig virker. Den skrives blot:
bash: ip: command not found [emil@pc-10-98 ~]$ route
hvilket er lidt underligt. Jeg kan godt finde "man ip", "man iproute" osv. men ikke bruges commands. Er der nogen der kan hjælpe?
godt forslag... men min program er installeret med yum til fedora som jeg går ud fra er tilsvarende debians apt-get. Desuden tjekkede jeg lige mine services og iptables kører... øv
Et par ting her: Ja, den skal ligge i /sbin/iptables - brug feks "which iptables" næste gang du leder efter en specifik eksekverbar fil på dit system. I og med at den ligger i /sbin så er det kun root der kan køre den, så du skal være root. iptables er ikke hverken en daemon eller en service. Det er et lille program til at manipulere den firewall der er indbygget i Linux kernel ved navn Netfilter. Netfilter = firewall iptables = kommando til at konfigurere Netfilter.
En firewall kræver typisk en driver, og iptables er i de færdigpakkede distroer typisk med som moduler. Prøv først lsmod (som root) for at se om din ip_tables og iptable_filter moduler er loadede. Disse er en forudsætning for at Netfilter kan virke. Hvis de ikke er der, forsøg "modprobe ip_tables" (igen, som root). Hvis den siger at den ikke har modprobe kommandoen skal du installere module-init-tools pakken.
de køre begge fint ser det ud til. nu vil jeg bare gerne kunne skrive dem ind i $PATH så jeg ikke behøver at skrive /sbin/ip for at køre kommandoerne. Kan det ikke lade sig gøre?
prøv først "echo $PATH" som root, for at se om /sbin er i root's path (skulle den meget meget meget gerne være). en anden brugbar kommando er "env" som viser hele dit environment. Vær opmærksom på at den afhænger af hvilken bruger du er logget ind som.
moduler er ikke eksekverbare, så du skal egentlig ikke skrives ind i nogen path. Linux er intelligent nok til automatisk at indlæse moduler når du benytter iptables kommandoen (ok.. det er ikke 100% rigtigt, men det er forklaring nok for nu - Jeg ved at du lige installerede linux her i weekenden). Der er typisk en modules.conf fil hvor man kan lægge navne på de moduler man gerne vil have indlæst under boot. Kig i /etc hvor alle conf filerne er.
Jeg måtte en tur til bogen her, og så vidt jeg kan konstatere så må det gøres på samme måde som når man vil have java tilføjet i path.
Der findes en folder i Fedora som hedder /etc/profile.d/ Prøv at smide en tekstfil ind i den og i filen skal der kun være en linje som siger: PATH=/sbin:$PATH Kald feks filen path.sh, og så skriv chmod 755 /etc/profile.d/path.sh Log ud af terminalen (kommando: exit), og log ind i en ny terminal.
"bash - missing command" - ja, det er jo træls at få at vide man har lavet en fejl.
Men ok, jeg siger det er rart, men det er faktisk mere end det. Det er mere sikkert at skrive /sbin/iptables hver gang
1) Hvis du lader bash finde iptables i din søgesti (PATH) hver gang, ved du ikke om den kommer fra /sbin. En ihærdig hacker, der kommer ind på din maskine uden root-adgang kan formentlig søgestien for dig eller for root. Hvis der deri er et katalog før /sbin, som han med sin ikke-root adgang har skriverettigheder i, kan han lægge et dummyscript med navnet iptables, som så bliver udført i stedet for det rigtige script. Derved har du ingen firewall-beskyttelse efter næste genstart. Selv om det ikke gælder for din søgesti i dag, kan det ske engang i fremtiden, og så kan det principielt gælde for alle programmer i /sbin.
2) Hvis du nu staver forkert i en kommando, kan du komme til at udføre et program fra /sbin uden at ønske det. Og er du root kan det jo have sjove konsekvenser.
Så: Nej tak til /sbin i søgestien, og skriv /sbin hver gang du skal bruge noget derfra. Der er (ofte) gode grunde til de standard opsætninger man møder. Eller også er jeg bare paranoid.
Du er paranoid Erik ;) Der er nogle folk som sidder med en masse beslutningskraft når de forskellige distroer udformes som er yderst anale omkring sikkerhed. Så meget at det skaber forvirring blandt noobs. Har hørt disse argumenter før, og synes de er lidt søgte. Det bliver først grimt når "." er i ens path, men det er så selvfølgelig bare min mening..
NB. Konsekvensen af at have . i sin path er at en bruger kunne lægge et script i sin home folder og kalde det feks "ls". Root går ind i folderen og skriver ls for lige at checke på brugeren en dag, og så er der insta-root til brugeren, hvis han ellers har scriptet ordentligt. Dette vil jeg kalde en reel trussel, meeeen det andet kommer man vist om ved bare med aktiv brug af tab completion.
Iøvrigt Ingerslev, hvis man kan tillade sig skamløs selvpromovering her, så vil du muligvis have glæde af at læse den her: http://www.eksperten.dk/artikler/313 En artikel jeg skrev for længe siden her, og det er min opfattelse at nogle folk har haft god fornøjelse af den. Faktisk har 208 E-brugere allerede læst den kan jeg se.
Det ser jo meget interessant ud. Har kigget i smule på bash før, men nåede ikke så meget. Ligger den lige som bookmark så jeg kan læse den en anden gang, for jeg har et par afleveringer der skal skrives i LaTeX, og for alle som har prøvet det, ved de nok at det tager lidt tid, hvis man ikke er helt inde i det :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.