Guten Morgen,
ich habe Probleme beim Einrichten vom TFTP-Server auf meiner RedHat-Maschine (
RHEL 6 - Kernel 2.6.32-71 - 64 Bit).
1. Zuerst habe ich meine Firewall deaktiviert.
|
Quellcode
|
1
|
iptables -F
|
2. Eingerichtet habe ich es normal: TFTP-Server (
tftp-server-0.49-5.1.el6.x86_64.rpm) und NFS-Server (
nfs-utils-lib-1.1.4-8.1.el6.x86_64.rpm) installiert.
3. freigegebenes TFTP-Verzeichnis erstellt
|
Quellcode
|
1
|
mkdir /tftpboot
|
4. Datei hinzugefügt (
/tftpboot/test mit
"Hello" als Inhalt)
5. die
/etc/xinetd.d/tftp geändert:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
|
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
}
|
6. XInetd und NFS-Server neugestartet
|
Quellcode
|
1
2
|
# /etc/init.d/xinetd restart
# /etc/init.d/nfs restart
|
Der Neustart läuft problemlos. Lediglich der NFS-Server wurde nicht automatisch beim Systemstart gestartet. Deswegen kann er mit restart nicht beendet werden, wird aber gestartet.
Der Restart von XInetd und NFS-Server gibt mir in der
/var/log/messages folgendes
|
Quellcode
|
1
2
3
4
5
6
|
xinetd[1621]: Exiting...
xinetd[3002]: xinetd Version 2.3.14 started with libwrap loadavg labeled-networking options compiled in.
xinetd[3002]: Started working: 1 available service
kernel: Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
kernel: NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
kernel: NFSD: starting 90-second grace period
|
7. Nun wird TFTP gestartet:
|
Quellcode
|
1
2
3
4
5
6
7
|
# tftp localhost
tftp> status
Connected to localhost.localdomain.
Mode: netascii Verbose: off Tracing: off Literal: off
Rexmt-interval: 5 seconds, Max-timeout: 25 seconds
tftp> get test
Transfer timed out
|
Leider läuft dabei was schief.
8. Die
/var/log/messages liefert folgendes:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
xinetd[3002]: START: tftp pid=3375 from=127.0.0.1
in.tftpd[3375]: /tftpboot: Permission denied
kernel: type=1400 audit(1315465999.026:27758): avc: denied { search } for pid=3375 comm="in.tftpd" name="tftpboot" dev=dm-0 ino=1438981 scontext=unconfined_u:system_r:tftpd_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:default_t:s0 tclass=dir
xinetd[3002]: EXIT: tftp status=66 pid=3375 duration=1(sec)
xinetd[3002]: START: tftp pid=3378 from=127.0.0.1
kernel: type=1400 audit(1315466003.992:27759): avc: denied { search } for pid=3378 comm="in.tftpd" name="tftpboot" dev=dm-0 ino=1438981 scontext=unconfined_u:system_r:tftpd_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:default_t:s0 tclass=dir
in.tftpd[3378]: /tftpboot: Permission denied
xinetd[3002]: EXIT: tftp status=66 pid=3378 duration=0(sec)
xinetd[3002]: START: tftp pid=3389 from=127.0.0.1
in.tftpd[3389]: /tftpboot: Permission denied
kernel: type=1400 audit(1315466008.991:27760): avc: denied { search } for pid=3389 comm="in.tftpd" name="tftpboot" dev=dm-0 ino=1438981 scontext=unconfined_u:system_r:tftpd_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:default_t:s0 tclass=dir
xinetd[3002]: EXIT: tftp status=66 pid=3389 duration=0(sec)
xinetd[3002]: START: tftp pid=3390 from=127.0.0.1
in.tftpd[3390]: /tftpboot: Permission denied
xinetd[3002]: EXIT: tftp status=66 pid=3390 duration=0(sec)
kernel: type=1400 audit(1315466013.992:27761): avc: denied { search } for pid=3390 comm="in.tftpd" name="tftpboot" dev=dm-0 ino=1438981 scontext=unconfined_u:system_r:tftpd_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:default_t:s0 tclass=dir
xinetd[3002]: START: tftp pid=3391 from=127.0.0.1
kernel: type=1400 audit(1315466018.992:27762): avc: denied { search } for pid=3391 comm="in.tftpd" name="tftpboot" dev=dm-0 ino=1438981 scontext=unconfined_u:system_r:tftpd_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:default_t:s0 tclass=dir
in.tftpd[3391]: /tftpboot: Permission denied
xinetd[3002]: EXIT: tftp status=66 pid=3391 duration=0(sec)
|
Welches Problem übersehe ich? =(
Grüßle David
EDIT 1:
Habe jetzt mit
|
Quellcode
|
1
2
|
chmod 777 /tftpboot
chmod 777 /tftpboot/test
|
die Rechte gesetzt.
Danach noch kurz:
|
Quellcode
|
1
|
setenforce 0
|
Jetzt kommt kein Timeout mehr. Ebenso ist das
Permission denied weg. Leider werden noch keine Daten übertragen. Das Log jetzt:
|
Quellcode
|
1
2
3
4
5
|
xinetd[3002]: START: tftp pid=4511 from=127.0.0.1
kernel: type=1400 audit(1315469853.196:27769): avc: denied { search } for pid=4511 comm="in.tftpd" name="tftpboot" dev=dm-0 ino=1438981 scontext=unconfined_u:system_r:tftpd_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:default_t:s0 tclass=dir
kernel: type=1400 audit(1315469853.200:27770): avc: denied { read } for pid=4512 comm="in.tftpd" name="test" dev=dm-0 ino=1438980 scontext=unconfined_u:system_r:tftpd_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:default_t:s0 tclass=file
kernel: type=1400 audit(1315469853.200:27771): avc: denied { open } for pid=4512 comm="in.tftpd" name="test" dev=dm-0 ino=1438980 scontext=unconfined_u:system_r:tftpd_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:default_t:s0 tclass=file
kernel: type=1400 audit(1315469853.200:27772): avc: denied { getattr } for pid=4512 comm="in.tftpd" path="/test" dev=dm-0 ino=1438980 scontext=unconfined_u:system_r:tftpd_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:default_t:s0 tclass=file
|
EDIT 2:
Das Problem habe ich gelöst. Für alle, die wissen wollen, wieso: Es lag an SELinux. Deaktiviert habe ich es mit dem Bearbeiten der
/etc/selinux/config:
|
Quellcode
|
1
2
3
|
[...]
SELINUX=disabled
[...]
|
Danach ein Restart