Fedora Pure-FTDd

Próbálgatom itt a Fedorát VirtualBoxon.

Ezerszer állítottam be már Debian, sőt Windows alatt pure-ftpd-t.
Fedora rendszeren viszont nincs gyakorlatom, most telepítettem
netinstallról először magát a rendszert. Csak a kíváncsiság vezérel,
hogy ne "fikázzam" Debianosként a Fedorát, de megakadtam.

Telepítettem: yum install pure-ftpd

Indítás: service pure-ftpd start

Beállítások:

/etc/pure-ftpd/

Tűzfal, hogy távolról is elérhessük:

Itt:

/etc/sysconfig/iptables

Ezt hozzáadtam:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -p TCP --dport 20 -m state --state ESTABLISHED, RELATED -j ACCEPT
-A INPUT -p TCP --sport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT

Javítottam itt:
/etc/sysconfig/iptables-config

A következőre:

IPTABLES_MODULES="ip_conntrack_ftp"

Ezek után teszteltem:

ftp 192.168.1.107
Connected to 192.168.1.107.
220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
220-You are user number 1 of 50 allowed.
220-Local time is now 21:37. Server port: 21.
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
Name (192.168.1.107:andras): andras
331 User andras OK. Password required
Password:
421 Service not available, remote server has closed connection
Login failed.
No control connection for command: No such file or directory
ftp>

Gondoltam elrontottam a tűzfal szabályokat, ezért kikapcsoltam a tűzfalat.

A gond az, hogy ugyanez van, kikapcsolt tűzfal esetén is, és localhoston is:
ftp localhost

Olyankor szoktam ilyet látni pure-ftpd esetén, ha nincs beállítva a
DontResolve = yes

De néztem, a Fedora alaptelepítés így van beállítva, azaz DontResolve = yes

Az andras egy linuxos felhasználó.

Mellesleg néha elfogadja a jelszót, de akkor az ls prancsra:

ls
421 Service not available, remote server has closed connection

Mit hagyok ki? Fedorán van még valamire szükség a működéshez?

Néhány próbálkozás a /var/log/messages fájlban:
Aug 2 23:15:43 feher pure-ftpd: (?@192.168.1.4) [INFO] New connection from 192.168.1.4
Aug 2 23:15:51 feher systemd-logind[324]: New session c6 of user andras.
Aug 2 23:15:51 feher systemd-logind[324]: Removed session c6.
Aug 2 23:15:51 feher pure-ftpd: (?@192.168.1.4) [INFO] andras is now logged in
Aug 2 23:16:10 feher pure-ftpd: (?@192.168.1.4) [INFO] New connection from 192.168.1.4
Aug 2 23:16:17 feher systemd-logind[324]: New session c7 of user andras.
Aug 2 23:16:17 feher systemd-logind[324]: Removed session c7.

Hozzászólások

Sürün belefutok ilyesmibe, de mindig elfelejtem hogyan oldom meg :)
Ha jól emlékszem az alábbiak közül szokott lenni valamelyik a gond:
- selinux (próbáld setenforce 0-val kikapcsolni legalább ideiglenesen)
- user felvétel (home mappa, shell)
- pure-ftpd passive portok
Ha egyik sem, akkor kapcsold be a verbose log-ot, hátha elárul valamit.

A Selinuxot kikapcsoltam, és semmi. A user ok. A passzív portok beállítását kerestem,
amikor támadt egy ötletem. Átállítottam PAM azonosítás helyett Unix azonosítást (Pure-FTPd-ben).
Ezek után működik ftp localhost, de távolról is. Ezek szerint a PAM beállítások nem teszik lehetővé a linuxos felhasználók bejelentkezését alapból, vagy csak nem jól van beállítva. Még nem néztem át a PAM-ot.

Köszönöm a gyors választ és az ötleteket.

Indítás: service pure-ftpd start

Meglehet, egyre inkább így illendő:

systemctl start pure-ftpd.service

Már feltéve, hogy így hívják az illető szolgáltatást.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Ha csak simán service pure-ftpd start parancsot írok azt írja tájékoztatásként:
Redirecting to /bin/systemctl start pure-ftpd.service
Egyébként meg doksikban erre már rátaláltam korábban, így ezt is próbáltam.
Vagyis ez nem segít.

Azt viszont megtaláltam melyik PAM modul felelős ezért.

A /etc/pam.d/password-auth-ac fájlban (mert be van építve ez is) van egy
ilyen sor:
-session optional pam_systemd.so

Ennek megjegyzésbe tétele szintén megoldja a problémát.

De ez csak egy megkerülő eljárás (ha csak nem tévedésből van ott a
fenti beállítás).

A /var/log/messages fájlból látszik, hogy a systemd-logind modul
törli a munkamenetet.

Így rátaláltam a következő kézikönyvre:
man systemd-logind
E szerint PolicyKiit alapú hozzáférés vezérlés van a felhasználók
számára. Az is kiderült, hogy van egy ilyen konfigfájl:
/etc/systemd/systemd-logind.conf
Ennek is van kézikönyve. De a kézikönyv csak annyit mond el, hogy
hogyan állíthatom be, például milyen folyamatokat kell kilőni a
felhasználó kilépése után.

Googlet használtam ezerrel. Nem ismerem a systemd-logindt, és
mára sok is lett nekem.

Ha valaki tud a megkerülő megoldáson kívül mást is, akkor azért
ne kíméljen.