Linuxos FTP szerver? Naná!

Wired to FTPLehet, hogy már kezd nevetségessé válni az én linux-debian mániám, de láthatjátok, hogy rengeteg célfeladatra kiváló teljesítményt és minőséget nyújt.

Tehát arról van szó, hogyha egy dedikált ftp szervert szeretnénk üzemeltetni akkor lehet okosabb dolog lenne adatbázisban tárolni a júzerek adatait.

Az ftpd és mysql-re fog az egész épülni. Hajrá, kezdjünk neki:

apt-get install pure-ftpd-mysql mysql-server mysql-client

Létre kell hozni csoportot és egy felhasználót a rendszerben:
groupadd -g 2001 ftpgroup
useradd -u 2001 -s /bin/false -d /bin/null -c “pureftpd user” -g ftpgroup ftpuser

Jelentkezzünk be parancssorból mysql-be:
mysql -u root -p

Adjuk meg a root jelszót, aztán végezzük el az alábbi parancsokat:
GRANT SELECT ON ftpd.* TO vhosts@localhost IDENTIFIED BY ‘mypasswd’;
FLUSH PRIVILEGES;
CREATE DATABASE ftpd;
USE ftpd;

CREATE TABLE users (
user varchar(30) NOT NULL,
password varchar(64) NOT NULL,
home varchar(128) NOT NULL,
bandwidth_limit_upload smallint(5) NOT NULL default 0,
bandwidth_limit_download smallint(5) NOT NULL default 0,
ip_allow varchar(15) NOT NULL default ‘any’,
quota smallint(5) NOT NULL default ‘0’,
quota_files int(11) NOT NULL default 0,
active enum(‘yes’,’no’) NOT NULL default ‘yes’,
PRIMARY KEY (user),
UNIQUE KEY User (user)
) TYPE=MyISAM;

INSERT INTO users (user, password, home) VALUES (‘username’, MD5(‘mypasswd’), ‘/home/username’);

quit;

Most létrehoztuk a szükséges táblákat és egy próbarekordot, amit majd később esetleg módosíthatunk.

Futtassuk ezeket:
echo “” >> /etc/pure-ftpd/db/mysql.conf

Szerkesszük a fent kiürített file-t:
pico /etc/pure-ftpd/db/mysql.conf

Másoljuk be az alábbi sorokat a megnyitott szerkesztőbe:
MYSQLSocket /var/run/mysqld/mysqld.sock

MYSQLUser vhosts
MYSQLPassword mypasswd
MYSQLDatabase ftpd
MYSQLCrypt md5
MYSQLDefaultUID 2001
MYSQLDefaultGID 2001
MYSQLGetPW SELECT password FROM users WHERE user = “\L” AND active = “yes” AND (ip_allow = “any” OR ip_allow LIKE “\R”)
MYSQLGetDir SELECT home FROM users WHERE user = “\L”AND active = “yes” AND (ip_allow = “any” OR ip_allow LIKE “\R”)
MySQLGetBandwidthUL SELECT bandwidth_limit_upload FROM users WHERE user = “\L”AND active = “yes” AND (ip_allow = “any” OR ip_allow LIKE “\R”)
MySQLGetBandwidthDL SELECT bandwidth_limit_download FROM users WHERE user = “\L”AND active = “yes” AND (ip_allow = “any” OR ip_allow LIKE “\R”)
MySQLGetQTASZ SELECT quota FROM users WHERE user = “\L”AND active = “yes” AND (ip_allow = “any” OR ip_allow LIKE “\R”)
MySQLGetQTAFS SELECT quota_files FROM users WHERE user = “\L”AND active = “yes” AND (ip_allow = “any” OR ip_allow LIKE “\R”)

Végezzünk el néhány beállítást ismét:
echo “yes” > /etc/pure-ftpd/conf/DontResolve
echo “yes” > /etc/pure-ftpd/conf/ChrootEveryone

Ha nem tetszik az alapértelmezett 21-es port akkor meg lehet változtatni:

echo “port” > /etc/pure-ftpd/conf/Bind

Ha tűzfal van és gondok adódnak a csatlakozással (passzív mód) érdemes megadni az ftpd-nek a port range-t:

echo “porttól portig” > /etc/pure-ftpd/conf/PassivePortRange

pl.: echo “29799 29899” > /etc/pure-ftpd/conf/PassivePortRange, tehát nem kell a két portszám közé se kötőjel, se semmi, csak szóköz.

 

Ha mindennel végeztünk újraindítjuk az ftpd szervert:
/etc/init.d/pure-ftpd-mysql restart

 

Ha nem szeretnénk szívni később parancssori mysql-el a felhasználók menedzselését illetőleg telepítsük fel az alábbi csomagokat:

aptitude install apache2
aptitude install php5 libapache2-mod-php5

apt-get install php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-json
apt-get install phpmyadmin

/etc/init.d/apache2 restart

 

Ezek után a http://szerver-ip-címe/phpmyadmin címen tudunk a mysql root felhasználóval bejelentkezni és az ftpd táblában ügyködni.

Fontos! Ha jelszót viszünk be ne felejtsünk el md5 kódolást beállítani!

Biztonsági mentés debianon

Backup_center_iconKomplett webszerver költöztetésekor adódott a kérdés, hogy tényleg – hogy is kellene lementeni a komplett linux rendszert működés közben. Legegyszerűbb és legnagyszerűbb megoldás tar.gz-vel becsomagolni.

Mentés készítése

tar –exclude=/var/run –exclude=/var/tmp –exclude=/dev –exclude=/mnt –exclude=/proc –exclude=/tmp –exclude=/sys –exclude=/var/backups/full_backup  -czpvf /var/backups/full_backup/full_backup.tar.gz /

Az –exclude=…-ban megadott könyvtárak tömörítésből kihagyásra kerülnek (mert amúgy feleslegesek).

Visszaállítás, kicsomagolás

cd /
tar -xvf /var/backups/full_backup/full_backup.tar.gz

 

A megoldásért köszönet Lukács István kollégámnak! 🙂

Debian 6 – hálókártya csere

Gondolná az ember, hogy ha van parancssori linux gépe és megdöglik benne a hálókártya akkor csak annyi a dolga, hogy kiveszi az előzőt és beteszi az újat, meg esetleg a routeren beállítja az új MAC címet és kész. Ezt talán nem is kell mondanom, hogy kicsit túl egyszerűen hangzik, ugye? 🙂

 

Egy délután alatt kellett rájönnöm arra, hogy az új kártya nem azért nem működik, mert az is hibás, vagy az alaplappal van baj…és nem újratelepítés jön, hanem csak üzembe kell helyezni.

Néhány egyszerű lépés az egész, természetesen root módban mindent:

  1. lspci paranccsal először derítsük ki, hogy a gép az új kártyát egyáltalán látja-e.
    Ha nem látja bukta, ha látja örülünk és megyünk tovább…
  2. Az ifconfig-nak van egy -a kapcsolója is, tehát ifconfig -a, és látjuk itt is a behelyezett hálókártyánkat és csekkolhatjuk az eth számot is. Például lehet eth1-et kapott? Akkor jön a 3-as pont.
  3. nano /etc/network/interfaces és írd át az ethx értéket a régiről az újra.
  4. Végül kapcsold be a kártyát a következő módon: ifup ethx (az x természetesen a kapott számot jelöli)

Ezek után már azonnal kellene, hogy legyen hálózat. Ki lehet próbálni egy ping vagy wget http://google.com parancsokkal.

Észrevételeket fogadok a hozzászólásoknál!

Helló világ!

Nos, életem első komolyan gondolt blogja rólam fog szólni. A hétköznapi maszekolásokról, hogy mi történt velem, mit csináltam, stb. Mindenféle olyan dolgokról, ami érdekes, ami valami új. Semmi olyanról, ami hétköznapi, közhely.

Szeretek foglalkozni szoftverekkel, hardverekkel, érdekelnek a webes alkalmazások, a cloud technológiák.

Mindezidáig pc szerű szerverekkel foglalkoztam, természetesen hobbyszinten. Volt tervben egy webhostinggal foglalkozó cég indítása is, de sokat számolgatva rájöttem, hogy a túlzottan teli piacon elég nehéz lenne fennmaradni.

 

Amúgy a Miskolci Egyetemen vagyok jelenleg, mint harmadéves egyetemista, nagyon érdekelnek a hálózati kommunikációs protokollok, a szerverek, a web és a webes alkalmazások fejlesztése. Hogy miért pont alkalmazások? Mert pocsék grafikus volnék, ha amúgy ezt kéne csinálnom. Tehát inkább egy unix-shell féle programozó vagyok, akit amúgy nem csak a szoftver, hanem a hardver is érdekel. Ezért is vagyok jelenleg a mérnök informatikusi vonalon. :)

No, visszatérve  még a szerver témához – 2 db szerverem volt eddig, amit nyüstöltem, teszteltem egészen különböző területeken – és ezek segítségével szedtem össze némi gyakorlati tudást is az üzemeltetést illetőleg.

Blogom erről is szólni fog. Meg esetleg olyasmi dolgokról is, ami érdekel, amire rájöttem, ami tetszik. 😉

Tartsatok velem!