LinuxForum.Fans
Тема

proftpd не хочет работать через service в centos 5.5

Автор: xxfatumxx 27 сообщений 10136 просмотров
#75150

Проблема вот в чем, если запускать не демон, а собственно /usr/sbin/proftpd, то все работает с вот этим конфигом:

proftpd.conf:

text
# This is the ProFTPD configuration file
ServerName “ProFTPD server”
ServerType standalone
#ServerIdent on “FTP Server ready.”
#ServerAdmin root@testdomain
DefaultServer on

# Cause every FTP user except adm to be chrooted into their home directory # Aliasing /etc/security/pam_env.conf into the chroot allows pam_env to # work at session-end time (http://bugzilla.redhat.com/477120) #VRootEngine on DefaultRoot ~ #VRootAlias etc/security/pam_env.conf

DenyFilter \*.*/ # Use pam to authenticate (default) and be authoritative AuthPAMConfig proftpd AuthOrder mod_auth_pam.c* mod_auth_unix.c # If you use NIS/YP/LDAP you may need to disable PersistentPasswd #PersistentPasswd off #AuthPAMAuthorative off # Don’t do reverse DNS lookups (hangs on DNS problems) UseReverseDNS off

Port 21

# Set the user and group that the server runs as User nobody Group nobody

MaxInstances 20 UseSendfile off

# Define the log formats LogFormat default “%h %l %u %t \”%r\” %s %b” LogFormat auth “%v [%P] %h %t \”%r\” %s”

TransferLog /var/log/proftpd/proftpd-transfer.log SystemLog /var/log/proftpd/proftpd-error.log #<IfDefine DYNAMIC_BAN_LISTS> #LoadModule mod_ban.c #BanEngine on #BanLog /var/log/proftpd/ban.log #BanTable /var/run/proftpd/ban.tab

# If the same client reaches the MaxLoginAttempts limit 2 times # within 10 minutes, automatically add a ban for that client that # will expire after one hour. #BanOnEvent MaxLoginAttempts 2/00:10:00 01:00:00

# Allow the FTP admin to manually add/remove bans #BanControlsACLs all allow user ftpadm #</IfDefine>

<Global>

# Umask 022 is a good standard umask to prevent new dirs and files # from being group and world writable Umask 022

# Don’t do ident queries (hangs when the port is filtered) IdentLookups off

# Allow users to overwrite files and change permissions AllowOverwrite yes <Limit ALL SITE_CHMOD> Allow all </Limit> </Global>

Но стоит запустить его через service proftpd start выдает следующее

text
fatum@fatum-laptop:~$ ftp 192.168.56.3
Connected to 192.168.56.3.
220 ProFTPD 1.3.2 Server (“ProFTPD) [::ffff:192.168.56.3]
Name (192.168.56.3:fatum): fatum
331 Password required for fatum
Password:
530 Login incorrect.
Login failed.
421 Service not available, remote server has closed connection
ftp> 

Отсюда сделал вывод, что через service используется еще какой-то механизм запуска. из-за которого proftpd не видит пользователей, но вот какой... Помогите, очень прошу.

На ошибки в proftpd.conf реагирует как /usr/sbin/proftpd (пишет в какой строке ошибка), так и service proftpd start (пишет сбой). Этот конфиг - правильный. Его принимает без ошибок как /usr/sbin/proftpd/ так и service proftpd start, но законнектится при запуске через service proftpd start я так и не могу :(

#75151

Ошибки при запуске через service есть какие-нибудь?
Запуская просто бинарник, Вы запускаете сервер от имени пользователя root, при запуске через service он запускается от nobody:nobody
Показывайте настройки PAM и рассказывайте точно, что и как настраивали вместе с конфигами

#75152

Кстати, если запускать просто бинарник пользователем можно зайти?
По идее, он должен тоже не пускать.

#75164

В том-то и беда, через бинарник он пускает без проблем, как я и писал.

Вот настройки /etc/pam.d/proftpd

text

#%PAM-1.0
auth       required    pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
auth       required    pam_stack.so service=system-auth
auth       required    pam_shells.so
account    required    pam_stack.so service=system-auth
session    required    pam_stack.so service=system-auth

Логи пустые, точнее в них пишется все тот же Login incorrect. Да, кстати, через service не пускает не только пользователя fatum, но и анонима, и вообще кого-угодно.
В ftpusers закомментировал nobody - не помогло, расскомментировал обратно.

Плюс вот что выдает lsof при запуске с бинарника
[console][root@centosserver pam.d]# proftpd -d 10
- using TCP receive buffer size of 87380 bytes
- using TCP send buffer size of 16384 bytes
- testing Unix domain socket using S_ISFIFO
- testing Unix domain socket using S_ISSOCK
- using S_ISSOCK macro for Unix domain socket detection
- mod_tls/2.2.1: using OpenSSL 0.9.8b 04 May 2006
- DenyFilter: compiling deny regex '\*.*/'
- retrieved UID 99 for user 'nobody'
- retrieved GID 99 for group 'nobody'
centosserver.testdomain -
centosserver.testdomain - Config for “ProFTPD:
centosserver.testdomain - DefaultServer
centosserver.testdomain - DefaultRoot
centosserver.testdomain - DenyFilter
centosserver.testdomain - AuthPAMConfig
centosserver.testdomain - AuthOrder
centosserver.testdomain - UserID
centosserver.testdomain - UserName
centosserver.testdomain - GroupID
centosserver.testdomain - GroupName
centosserver.testdomain - UseSendfile
centosserver.testdomain - TransferLog
centosserver.testdomain - Limit
centosserver.testdomain - Allow
centosserver.testdomain - Umask
centosserver.testdomain - IdentLookups
centosserver.testdomain - IdentLookups
centosserver.testdomain - AllowOverwrite
centosserver.testdomain - ROOT PRIVS at mod_delay.c:307
centosserver.testdomain - RELINQUISH PRIVS at mod_delay.c:309
centosserver.testdomain - ROOT PRIVS at mod_ctrls.c:1504
centosserver.testdomain - RELINQUISH PRIVS at mod_ctrls.c:1506
centosserver.testdomain - retrieved group ID: 99
centosserver.testdomain - setting group ID: 99
centosserver.testdomain - SETUP PRIVS at main.c:3002
centosserver.testdomain - ROOT PRIVS at main.c:2112
centosserver.testdomain - RELINQUISH PRIVS at main.c:2119
[root@centosserver pam.d]# lsof -i -P
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
dhclient 1610 root 4u IPv4 6250 UDP *:68
portmap 1867 rpc 3u IPv4 6768 UDP *:111
portmap 1867 rpc 4u IPv4 6769 TCP *:111 (LISTEN)
rpc.statd 1903 root 3u IPv4 6912 UDP *:810
rpc.statd 1903 root 6u IPv4 6885 UDP *:807
rpc.statd 1903 root 7u IPv4 6915 TCP *:813 (LISTEN)
sshd 2116 root 3u IPv6 8231 TCP *:22 (LISTEN)
cupsd 2149 root 4u IPv4 8311 TCP centosserver.testdomain:631 (LISTEN)
cupsd 2149 root 6u IPv4 8314 UDP *:631
mysqld 2239 mysql 10u IPv4 8441 TCP *:3306 (LISTEN)
mysqld 2239 mysql 29u IPv4 11353 TCP 192.168.56.3:39851->fatum-laptop.testdomain:3306 (ESTABLISHED)
sendmail 2296 root 4u IPv4 8617 TCP centosserver.testdomain:25 (LISTEN)
httpd 2333 root 3u IPv6 8703 TCP *:80 (LISTEN)
httpd 2357 apache 3u IPv6 8703 TCP *:80 (LISTEN)
httpd 2358 apache 3u IPv6 8703 TCP *:80 (LISTEN)
httpd 2359 apache 3u IPv6 8703 TCP *:80 (LISTEN)
httpd 2360 apache 3u IPv6 8703 TCP *:80 (LISTEN)
httpd 2361 apache 3u IPv6 8703 TCP *:80 (LISTEN)
httpd 2367 apache 3u IPv6 8703 TCP *:80 (LISTEN)
httpd 2368 apache 3u IPv6 8703 TCP *:80 (LISTEN)
httpd 2369 apache 3u IPv6 8703 TCP *:80 (LISTEN)
avahi-dae 2432 avahi 13u IPv4 9152 UDP *:5353
avahi-dae 2432 avahi 14u IPv6 9153 UDP *:5353
avahi-dae 2432 avahi 15u IPv4 9154 UDP *:35470
avahi-dae 2432 avahi 16u IPv6 9155 UDP *:33474
sshd 2523 root 3u IPv6 9642 TCP 192.168.56.3:22->fatum-laptop.testdomain:43446 (ESTABLISHED)
sshd 2525 fatum 3u IPv6 9642 TCP 192.168.56.3:22->fatum-laptop.testdomain:43446 (ESTABLISHED)
mc 3332 root 5u IPv4 11433 TCP 192.168.56.3:38180->fatum-laptop.testdomain:21 (ESTABLISHED)
proftpd 3384 nobody 0u IPv6 12360 TCP *:21 (LISTEN)

[/console]

И вот что при запуске с service
[console][root@centosserver pam.d]# service proftpd start
Запускается proftpd: [ OK ]
[root@centosserver pam.d]# lsof -i -P
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
dhclient 1610 root 4u IPv4 6250 UDP *:68
portmap 1867 rpc 3u IPv4 6768 UDP *:111
portmap 1867 rpc 4u IPv4 6769 TCP *:111 (LISTEN)
rpc.statd 1903 root 3u IPv4 6912 UDP *:810
rpc.statd 1903 root 6u IPv4 6885 UDP *:807
rpc.statd 1903 root 7u IPv4 6915 TCP *:813 (LISTEN)
sshd 2116 root 3u IPv6 8231 TCP *:22 (LISTEN)
cupsd 2149 root 4u IPv4 8311 TCP centosserver.testdomain:631 (LISTEN)
cupsd 2149 root 6u IPv4 8314 UDP *:631
mysqld 2239 mysql 10u IPv4 8441 TCP *:3306 (LISTEN)
mysqld 2239 mysql 29u IPv4 11353 TCP 192.168.56.3:39851->fatum-laptop.testdomain:3306 (ESTABLISHED)
sendmail 2296 root 4u IPv4 8617 TCP centosserver.testdomain:25 (LISTEN)
httpd 2333 root 3u IPv6 8703 TCP *:80 (LISTEN)
httpd 2357 apache 3u IPv6 8703 TCP *:80 (LISTEN)
httpd 2358 apache 3u IPv6 8703 TCP *:80 (LISTEN)
httpd 2359 apache 3u IPv6 8703 TCP *:80 (LISTEN)
httpd 2360 apache 3u IPv6 8703 TCP *:80 (LISTEN)
httpd 2361 apache 3u IPv6 8703 TCP *:80 (LISTEN)
httpd 2367 apache 3u IPv6 8703 TCP *:80 (LISTEN)
httpd 2368 apache 3u IPv6 8703 TCP *:80 (LISTEN)
httpd 2369 apache 3u IPv6 8703 TCP *:80 (LISTEN)
avahi-dae 2432 avahi 13u IPv4 9152 UDP *:5353
avahi-dae 2432 avahi 14u IPv6 9153 UDP *:5353
avahi-dae 2432 avahi 15u IPv4 9154 UDP *:35470
avahi-dae 2432 avahi 16u IPv6 9155 UDP *:33474
sshd 2523 root 3u IPv6 9642 TCP 192.168.56.3:22->fatum-laptop.testdomain:43446 (ESTABLISHED)
sshd 2525 fatum 3u IPv6 9642 TCP 192.168.56.3:22->fatum-laptop.testdomain:43446 (ESTABLISHED)
mc 3332 root 5u IPv4 11433 TCP 192.168.56.3:38180->fatum-laptop.testdomain:21 (ESTABLISHED)
proftpd 3401 nobody 0u IPv6 12439 TCP *:21 (LISTEN)
[/console]

Как видно пользователь один и тот же - nobody

На счет того, что и как:

proftpd ставил из RPMForge. Конфиг копипастил (но потом изменял) отсюда http://www.f1.kz/?page_id=730 пользователь fatum был прописан в группах wheel и nobody, так все. Дальше родилась проблема и с ней занимаюсь любовью уже четвертые сутки.

#75166

Вы каким пользователем зайти пытаетесь? Точнее, он в /etc/passwd присутствует?

#75167

Конечно, из настроек видно, что аутентификация идет через PAM

собственно вот /etc/passwd

text
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
news:x:9:13:news:/etc/news:
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
nscd:x:28:28:NSCD Daemon:/:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin
mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin
smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin
pcap:x:77:77::/var/arpwatch:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
avahi:x:70:70:Avahi daemon:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin
fatum:x:500:500::/home/fatum:/bin/bash
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash
apache:x:48:48:Apache:/var/www:/sbin/nologin
#75168

Если у Вас пользователи системные, зачем Вам PAM? ProFTPd по умолчанию работает с системными пользователями

#75169

А если все же хотите через PAM - настраивайте /etc/pam.d/proftpd

#75170

Кстати, SELinux включен у Вас?

#75172

Указывая на то, что аутентификация идет через PAM, я хотел сказать, чтоидет именно через PAM, а не через MySQL или LDAP wink
То, что практически все ftp-серверы работают c системными пользователями по умолчанию я и так знаю. Вопрос в том, почему он с ними не хочет работать через service?

Да, включен.

#75174

Судя по тому, что при запуске бинарника пускает и анонимусов, то в таком случае ему пофигу на Ваш конфиг просто. Поэтому смотрите, что я написал выше.
Посему, или настраивайте PAM, или убирайте из конфига:

text
AuthPAMConfig proftpd
AuthOrder mod_auth_pam.c* mod_auth_unix.c
#75175

Нет, нет, нет, при данной настройке анонимусов он не пускает и как я писал выше, реагируют на конфиг как бинарник, так и демон.

А вот на счет последнего сейчас попробуем :)

#75176

Та же борода, разве что ответ немного поменялся

[console]fatum@fatum-laptop:~$ ftp 192.168.56.3
Connected to 192.168.56.3.
220 ProFTPD 1.3.2 Server (“ProFTPD) [::ffff:192.168.56.3]
Name (192.168.56.3:fatum): fatum
331 Password required for fatum
Password:
530 Login incorrect.
Login failed.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
[/console]

#75178

А Вы уверены, что не зашли при этом? ls выдает что-нибудь?

#75181

[console]ftp> ls
530 Please login with USER and PASS
ftp: bind: Address already in use
ftp>
[/console]

Судя по ответу сервера - нет smile

#75182

А что насчет SELinux?

#75189

/etc/selinux/config

text

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#    enforcing - SELinux security policy is enforced.
#    permissive - SELinux prints warnings instead of enforcing.
#    disabled - SELinux is fully disabled.
SELINUX=enforcing
# SELINUXTYPE= type of policy in use. Possible values are:
#    targeted - Only targeted network daemons are protected.
#    strict - Full SELinux protection.
SELINUXTYPE=targeted

Может его вырубить?

#75190

Попробуйте. У многих проблемы из-за него

#75191

Не помогло :wall:

#75193

Попробуйте этот конфиг:

text
ServerName                      "default"
ServerType                      standalone
DefaultServer                   on
ScoreboardFile          /var/run/proftpd/proftpd.scoreboard
Port                            21
Umask                           022
MaxInstances                    30
CommandBufferSize       512
User                            nobody
Group                           nobody
AllowOverwrite          on
DefaultRoot ~

по минимуму

Войдите или зарегистрируйтесь, чтобы ответить.