30. august 2005 - 14:14Der er
33 kommentarer og 1 løsning
hosts.deny logik
Hej Eksperter,
Jeg har lidt svært ved at gennemskue logikken i de to filer hosts.deny og hosts.allow. Hvad skal jeg skrive hvis jeg nu kun vil tillade 192.168.1.102 og 80.x.x.x at få ssh adgang. Jeg troede at jeg kunne skrive
ALL:ALL EXCEPT 127.0.0.1:DENY
i hosts.deny
og
ALL: x.x.x.x, x.x.x.x, x.x.x.x
i hosts.allow og så forhindre alle andre end dem som står i hosts.allow i at connecte
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
princippet er, at tcpd gennemgår de 2 filer - først allow og derefter deny. Hvis du er registreret i allow (som positiv) så kommer du på - er du registreret i deny (som negativ) så kommer du ikke på.
EXCEPT er hver gang "omvendt" - altså i allow er EXCEPT ikke-godkendte - og i deny er EXCEPT godkendte.
ALL: betyder alle services som kører igennem tcpd (tcp_wrapper) - der burde ikke stå ALL: men i stedet de enkelte services - f.eks. plejer ssh at hedde sshd: - ftp hedder in.ftpd, men du kan blive klogere i logfilen /var/log/secure - her ser du du accept og afvisninger.
Du kan aldrig bruge syntax "ALL:ALL EXCEPT 127.0.0.1:DENY" - lad være med at rette i, hvad systemet selv laver for dig (EXCEPT 127.0.0.1). Generelt bør 127.0.0.1 have adgang til ALT - ellers får du mærkelige fejl på linux, som du ikke kan forstå.
Token ALL betyder alt - i den position som ALL befinder sig - venstre for : betyder det alle service - højre for betyder det alle ip-adresser (mv.).
Når du angiver domæner, så skal ip-adresserne kunne slås op i dns (reverse) - ellers er det dømt til at fejle.
Det er nemt nok - men check din log - så bliver du klogere - og drop ALL alle andre steder end i hosts.deny.
det lader ikke til at du bruger google, men her er eksempler:
hosts.deny: # # hosts.deny This file describes the names of the hosts which are # *not* allowed to use the local INET services, as decided # by the '/usr/sbin/tcpd' server. # # deny all by default, only allowing hosts or domains listed in hosts.allow.
ALL: ALL
hosts.allow - eksempel: # # hosts.allow This file describes the names of the hosts which are # allowed to use the local INET services, as decided # by the '/usr/sbin/tcpd' server. #
sshd: 127.0.0.1 # localhost sshd: 1.2.3.0/255.255.255.0 # local lan sshd: 2.3.4.0/255.255.255.128 # local lan
in.telnetd: 127.0.0.1 # localhost in.telnetd: 1.2.3.0/255.255.255.0 # local lan in.telnetd: 2.3.4.0/255.255.255.128 # local lan
in.ftpd: 1.2.3.0/255.255.255.0 # local lan in.ftpd: 2.3.4.0/255.255.255.128 # local lan sendmail: 127.0.0.1 # mailserver
ikke rigtigt. Det jeg gerne ville have opnået var at det kun er specifikke IP'ere og domæner som kan få ssh adgang. Jeg har sat det op efter bedste evne, men det ser ikke ud til at virke.
hvordan kommer den til at se ud - således: ALL:ALL EXCEPT 127.0.0.1:DENY
i så fald prøv at rette til: ALL:ALL EXCEPT 127.0.0.1
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.