wtorek, 23 lipca 2013
środa, 10 lipca 2013
LVM - Logical Volume Management
1) Fdisk (początkowe zarządzenie dyskiem, dyskami)
fdisk /dev/sda
(LVM typ 8e )
2) Tworzenie woluminu fizycznego (formatowanie)
pvcreate /dev/sda1
odpowiednio
pvcreate /dev/sdaX X=[1,2,3,4,5,...,n]
informacje o woluminach
pvdisplay
3) Tworzenie grupy:
vgcreate moje_dane /dev/sda1
lub
vgcreate moje_dane /dev/sda1 /dev/sda2 /dev/sda3
lub
vgcreate moje_dane /dev/sda1 /dev/sdb1 /dev/sdc1
sprawdzamy
vgscan
lub
vgdisplay
lub
vgdisplay moje_dane
4) Tworzenie woluminu logicznego.
tworzymy 100GB o nazwie partycja1 (dla LVM moje_dane)
lvcreate -n partycja1 --size 100g moje_dane
sprawdzamy
lvdisplay
5) Formatiren ;)
mkfs.ext4 /dev/moje_dane/partycja1
6) Montowanie
mkdir /mnt/partycja1/
vi /etc/fstab (jeśli chcemy aby sie montowało podczas startu maszyny)
/dev/moje_dane/partycja1 /mnt/partycja1/ ext4 auto,users,rw,exec,dev,relatime 0 2
Ustawmy uprawnienia (kto może czytać/pisać w tym zasobie)
chown gienek:users /mnt/partycja1
chmod 775 /mnt/partycja1
7) Zmiana rozmiaru wolumenów
:zwiekszanie ze 100 do 300
umount /mnt/partycja1/
lvextend -L+200g /dev/moje_dane/partycja1
e2fsck -f /dev/moje_dane/partycja1
resize2fs /dev/moje_dane/partycja1
mount /mnt/partycja1
:zmniejszanie z 100 do 50
umount /mnt/partycja1/
e2fsck -f /dev/moje_dane/partycja1
resize2fs /dev/moje_dane/partycja1 50g
lvreduce -L-50g /dev/moje_dane/partycja1
resize2fs /dev/moje_dane/partycja1
mount /mnt/partycja1
Montowanie obrazów dysków KVM opartych na LVM
kpartx -av /dev/mapper/vgname/vlname
stworzone zostaną dowiązania do stworzonych w /vgname/vlname partycji
np. /vgname/vlname-home itd.
teraz możemy już traktować te dowiązania jak zwykłe urządzenia blokowe typu /dev/sda1 itd.
np.
mount /dev/mapper/vgname/vlname-home /home
fsck.ext4 /dev/mapper/vgname/vlname-home
fdisk /dev/sda
(LVM typ 8e )
2) Tworzenie woluminu fizycznego (formatowanie)
pvcreate /dev/sda1
odpowiednio
pvcreate /dev/sdaX X=[1,2,3,4,5,...,n]
informacje o woluminach
pvdisplay
3) Tworzenie grupy:
vgcreate moje_dane /dev/sda1
lub
vgcreate moje_dane /dev/sda1 /dev/sda2 /dev/sda3
lub
vgcreate moje_dane /dev/sda1 /dev/sdb1 /dev/sdc1
sprawdzamy
vgscan
lub
vgdisplay
lub
vgdisplay moje_dane
4) Tworzenie woluminu logicznego.
tworzymy 100GB o nazwie partycja1 (dla LVM moje_dane)
lvcreate -n partycja1 --size 100g moje_dane
sprawdzamy
lvdisplay
5) Formatiren ;)
mkfs.ext4 /dev/moje_dane/partycja1
6) Montowanie
mkdir /mnt/partycja1/
vi /etc/fstab (jeśli chcemy aby sie montowało podczas startu maszyny)
/dev/moje_dane/partycja1 /mnt/partycja1/ ext4 auto,users,rw,exec,dev,relatime 0 2
Ustawmy uprawnienia (kto może czytać/pisać w tym zasobie)
chown gienek:users /mnt/partycja1
chmod 775 /mnt/partycja1
7) Zmiana rozmiaru wolumenów
:zwiekszanie ze 100 do 300
umount /mnt/partycja1/
lvextend -L+200g /dev/moje_dane/partycja1
e2fsck -f /dev/moje_dane/partycja1
resize2fs /dev/moje_dane/partycja1
mount /mnt/partycja1
:zmniejszanie z 100 do 50
umount /mnt/partycja1/
e2fsck -f /dev/moje_dane/partycja1
resize2fs /dev/moje_dane/partycja1 50g
lvreduce -L-50g /dev/moje_dane/partycja1
resize2fs /dev/moje_dane/partycja1
mount /mnt/partycja1
Montowanie obrazów dysków KVM opartych na LVM
kpartx -av /dev/mapper/vgname/vlname
stworzone zostaną dowiązania do stworzonych w /vgname/vlname partycji
np. /vgname/vlname-home itd.
teraz możemy już traktować te dowiązania jak zwykłe urządzenia blokowe typu /dev/sda1 itd.
np.
mount /dev/mapper/vgname/vlname-home /home
fsck.ext4 /dev/mapper/vgname/vlname-home
czwartek, 27 czerwca 2013
Szyfrowanie swap - ecrypt
Aby włączyć/wyłączyć szyfrowanie swap w systemie linux , postępuj z poniższymi instrukcjami
TURN ON
TURN ON
sudo ecryptfs-setup-swap
TURN OFF
sudo swapoff -a
sudo cryptsetup remove /dev/mapper/cryptswap1
sudo vim /etc/crypttab
(*usunac/zahaszować wpis dla swap /dev/sda5* )
sudo /sbin/mkswap /dev/sda5
sudo swapon /dev/sda5
sudo vim /etc/fstab
(*zamienić /dev/mapper/cryptswap1 na /dev/sda5*)
niedziela, 23 czerwca 2013
Maszyna virtualna - KVM
URUCHAMIANIE KVM (ubuntu)
sudo apt-get install kvm
sudo apt-get install bridge-utils
Edycja /etc/network/interfaces
Edycja /etc/qemu-ifup
Teraz musimy stworzyć virtualny dysk:
mamy 2 możliwości
1) tworzymy dysk o stałej wielkości 4GB (dysk fizycznie tyle zajmie na dysku)
dd if=/dev/zero of=disk01.img bs=1G count=4
2) tworzymy dysk o interesującej nas wielkości ale wielkość nie będzie alokowana (załóżmy ze chcemy dysk 10GB)
qemu-img create -f qcow2 disk01.qcow2 10G
Teraz instalujemy system na virtualnym dysku
1) z obrazu instalacyjnego w pliku
kvm -hda disk01.img -cdrom os.iso -m 512 -boot d -vnc IP:1
2) z dysku cdrom
kvm -cdrom /dev/cdrom -m 1024 -boot d -vnc IP:1 disk01.qcow2
(po instalacji)
Teraz mamy zamiar uruchomić maszynę wirtualną z obsługą sieci. Możemy przypisać do niej adresu MAC dla interfejsu sieciowego VM.
Jest to ważne, jeśli używamy więcej niż 1 VM. Każda maszyna wirtualna powinna mieć inny mac-address.
kvm -hda disk01.img -m 512 -boot c -net nic,vlan=0,macaddr=00:16:3e:00:00:01 -net tap -nographic -daemonize
powinniśmy mieć już możliwość podłączenia się po ssh do naszej maszyny , jeśli występują problemy można dołożyć podgląd vnc
(czasami gdy są problemy z dostepem do sieci możan sprobować tak)
kvm -hda disk01.img -m 512 -boot c -net nic,vlan=0,macaddr=00:16:3e:00:00:01,model=rtl8139 -net tap -nographic -daemonize
******
Konwertowanie obrazów:
virtualbox --> kvm
Przykłady uruchomień kvm:
Przenoszenie działających obrazów systemu pliku do KVM opartych na LVM.
1. chyba najlepsze rozwiązanie (po sieci)
Na maszynie docelowej:
iptables -I INPUT -p tcp --dport 9897 -s IP_ZRODLA -j ACCEPT
nc -l -p 9897 |dd of=/dev/mapper/vgname/lvname
Na maszynie źródła:
(wyłączamy bez błędów maszynę virtualną która chcemy skopiować.)
dd if=/dev/mapper/vgname/lvname | nc IP_DOCELOWEJ 9897
[Enter]
i czekamy w zależność od ilości danych i łącza, np. przy łączy 1,5Mbit i 40GB danych to czas około 1h
2. możemy użyć komendy rsync
na maszynie docelowej:
tworzymy partycje na naszym pustym wolumenie LVM identyczna jak na maszynie źródłowej (nie konieczne ale wskazane, nie trzeba zmieniać wówczas /etc/fstab)
fdisk /dev/mapper/vgname/lvname
używamy komendy kpartx aby zobaczyć stworzone partycje
kpartx -av /dev/mapper/vgname/lvname
teraz powinniśmy w /dev/mapper/ odnaleźć odnośniki do naszych partycji
dalej postępujemy już jak z urządzeniami blokowymi (dyskami)
tworzymy system plików
np.
mkfs.ext4 /dev/mapper/vgname/lvname-home
itd.
tworzymy jakiś punkt montowania np. nowy
mkdir /nowy/
cd nowy
tworzymy katalogi które będą montowane np. home , var
mkdir home var
na maszynie źródła (na działającym virtualu):
rsync -avz -e ssh root@IP_ZDALNEGOKOMPA:/ /nowy/
i czekamy aż się zrobi
następnie należy uruchomić kvm z butowaniem się cdrom z obrazem np. knoppixa i uaktualnić wpis w MBR dla grub'a lub lilo.
np.
qemu-system-x86_64 -cdrom knoppix.iso -m 1096 -vnc :1 -boot d -drive file=/dev/mapper/vgname/lvname
,cache=none,if=virtio -pidfile /home/test.pid
dla lilo wystarczy uruchomić komendę
lilo
dla grub uruchomić komendę
grub-install /dev/vda1 (podać poprawny dysk)
sudo apt-get install kvm
sudo apt-get install bridge-utils
Edycja /etc/network/interfaces
auto lo
iface lo inet loopback
auto br0
iface br0 inet static
address xxx.xxx.xxx.xxx
netmask xxx.xxx.xxx.xxx
gateway xxx.xxx.xxx.xxx
bridge_ports eth0
bridge_stp off
bridge_maxwait 5
Edycja /etc/qemu-ifup
#!/bin/sh
/sbin/ifconfig $1 0.0.0.0 promisc up
/usr/sbin/brctl addif br0 $1
sleep 2
Teraz musimy stworzyć virtualny dysk:
mamy 2 możliwości
1) tworzymy dysk o stałej wielkości 4GB (dysk fizycznie tyle zajmie na dysku)
dd if=/dev/zero of=disk01.img bs=1G count=4
2) tworzymy dysk o interesującej nas wielkości ale wielkość nie będzie alokowana (załóżmy ze chcemy dysk 10GB)
qemu-img create -f qcow2 disk01.qcow2 10G
Teraz instalujemy system na virtualnym dysku
1) z obrazu instalacyjnego w pliku
kvm -hda disk01.img -cdrom os.iso -m 512 -boot d -vnc IP:1
2) z dysku cdrom
kvm -cdrom /dev/cdrom -m 1024 -boot d -vnc IP:1 disk01.qcow2
(po instalacji)
Teraz mamy zamiar uruchomić maszynę wirtualną z obsługą sieci. Możemy przypisać do niej adresu MAC dla interfejsu sieciowego VM.
Jest to ważne, jeśli używamy więcej niż 1 VM. Każda maszyna wirtualna powinna mieć inny mac-address.
kvm -hda disk01.img -m 512 -boot c -net nic,vlan=0,macaddr=00:16:3e:00:00:01 -net tap -nographic -daemonize
powinniśmy mieć już możliwość podłączenia się po ssh do naszej maszyny , jeśli występują problemy można dołożyć podgląd vnc
(czasami gdy są problemy z dostepem do sieci możan sprobować tak)
kvm -hda disk01.img -m 512 -boot c -net nic,vlan=0,macaddr=00:16:3e:00:00:01,model=rtl8139 -net tap -nographic -daemonize
******
Konwertowanie obrazów:
virtualbox --> kvm
- najpierw konwersja na obraz typu IMG
VBoxManage clonehd /sciezka/do/obraz.vdi /sciezka/do/obraz.img --format raw
- teraz konwersja z obrazu IMG na format którego używa KVM
qemu-img convert -f raw obraz.img -O qcow2 obraz.qcow2
Przykłady uruchomień kvm:
kvm -hda /sciezka/disk1.qcow -hdb
/sciezka/disk2.qcow -m 2048 -vga none -usb -usbdevice tablet -net
nic -net user,hostfwd=tcp:192.168.1.2:2228-:22
*****************
Przenoszenie działających obrazów systemu pliku do KVM opartych na LVM.
1. chyba najlepsze rozwiązanie (po sieci)
Na maszynie docelowej:
iptables -I INPUT -p tcp --dport 9897 -s IP_ZRODLA -j ACCEPT
nc -l -p 9897 |dd of=/dev/mapper/vgname/lvname
Na maszynie źródła:
(wyłączamy bez błędów maszynę virtualną która chcemy skopiować.)
dd if=/dev/mapper/vgname/lvname | nc IP_DOCELOWEJ 9897
[Enter]
i czekamy w zależność od ilości danych i łącza, np. przy łączy 1,5Mbit i 40GB danych to czas około 1h
2. możemy użyć komendy rsync
na maszynie docelowej:
tworzymy partycje na naszym pustym wolumenie LVM identyczna jak na maszynie źródłowej (nie konieczne ale wskazane, nie trzeba zmieniać wówczas /etc/fstab)
fdisk /dev/mapper/vgname/lvname
używamy komendy kpartx aby zobaczyć stworzone partycje
kpartx -av /dev/mapper/vgname/lvname
teraz powinniśmy w /dev/mapper/ odnaleźć odnośniki do naszych partycji
dalej postępujemy już jak z urządzeniami blokowymi (dyskami)
tworzymy system plików
np.
mkfs.ext4 /dev/mapper/vgname/lvname-home
itd.
tworzymy jakiś punkt montowania np. nowy
mkdir /nowy/
cd nowy
tworzymy katalogi które będą montowane np. home , var
mkdir home var
na maszynie źródła (na działającym virtualu):
rsync -avz -e ssh root@IP_ZDALNEGOKOMPA:/ /nowy/
i czekamy aż się zrobi
następnie należy uruchomić kvm z butowaniem się cdrom z obrazem np. knoppixa i uaktualnić wpis w MBR dla grub'a lub lilo.
np.
qemu-system-x86_64 -cdrom knoppix.iso -m 1096 -vnc :1 -boot d -drive file=/dev/mapper/vgname/lvname
,cache=none,if=virtio -pidfile /home/test.pid
dla lilo wystarczy uruchomić komendę
lilo
dla grub uruchomić komendę
grub-install /dev/vda1 (podać poprawny dysk)
niedziela, 12 maja 2013
Usuwanie plikow starszych niż ....
Czasami zachodzi potrzeba kasowania plików których "świeżość" ;) przekroczyła pewną ilość dni.
np.
choćby stare backupy , lub stare zdjęcia, cokolwiek
oto kilka prostych porad jak się do tego zabrać:
1)
możemy wykorzystać do tego startego poczciwego find'a
find . -ctime +30 -delete
lub jeśli szukamy tylko np. archiwum tar.gz
find . -name '*.tar.gz' -ctime +30 -delete
(kasowanie nastąpi w bieżącym katalogu dla plików starszych i równych 30 dni)
jeśli chcemy w innym katalogu to zamiast . po find wpisujemy zadany katalog
np.
find /tmp -name '*.tar.gz' -ctime +30 -delete
(skasujemy wszystkie swoje pliki tar.tgz z katalogu /tmp , starsze niż 30 dni)
2)
możemy też wykorzystać skrypt w bash'u
vi kasuj_30dni.sh
(stwórz plik z zawartością (poniżej))
#!/bin/sh DZIS=`date +%s` DOBA=86400 ls $1 | while read file do STATE=`stat --format=%Y ${file}` PARAMETR=$(((DZIS-STATE)/DOBA)) if [ $PARAMETR -gt 30 ] then echo "Kasuje plik ${file} ktory jest starszy niz 30 dni" rm -f -v ${file} fi done
dodajmy uprawnienia dla pliku:
chmod u+x kasuj_30dni.sh
i bęc uruchamiamy (tylko ostrożnie bo skasuje nam wszystko powyżej 30 dni w bieżącym katalogu)
./kasuj_30dni.sh
Andrzej Tarnowiecki
Usługi Informatyczne - tarnet.eu.org
piątek, 10 maja 2013
Grub – konfiguracja
Konfiguracja GRUBA
GRUB (GRand Unified Bootloader) jest bootloaderem, które zastąpił nieco starsze poczciwe LILO.
Standardowa zawartość katalogu /boot/grub
[root@localhost grub]# ls
device.map grub.conf minix_stage1_5 stage2 e2fs_stage1_5 iso9660_stage1_5
reiserfs_stage1_5 ufs2_stage1_5 fat_stage1_5 jfs_stage1_5 splash.xpm.gz vstafs_stage1_5 ffs_stage1_5 menu.lst stage1 xfs_stage1_5 |
Przykładową , standardowa konfiguracja
[root@localhost grub]# cat menu.lst
(hd0,0) # kernel /boot/vmlinuz-version ro root=/dev/sda1 # initrd /boot/initrd-version.img default=0 timeout=5 splashimage=(hd0,0)/boot/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.18-194.32.1.el5) root (hd0,0) kernel /boot/vmlinuz-2.6.18-194.32.1.el5 ro root=LABEL=/ initrd /boot/initrd-2.6.18-194.32.1.el5.img title CentOS (2.6.18-194.el5) root (hd0,0) kernel /boot/vmlinuz-2.6.18-194.el5 ro root=LABEL=/ initrd /boot/initrd-2.6.18-194.el5.img |
OPIS parametrów:
default
– w menu GRUB’a oznacza system, który zaznaczony jest jako
automatycznie ładowany przy starcie. Cyfra oznacza numer systemu w
konfiguracji. Liczenie zaczyna się od 0, a nie od 1.
timeout – czas podawany w
sekundach do uruchomienia bootowania systemu. Jeżeli nie zmienimy
wybory, automatycznie wystartuje system default. Przerwanie odliczania
można zatrzymać po kliknięciu dowolnego klawisza, z jednym wyjątkiem [ENTER]. Klikniecie [ENTER] zatwierdzi i przejdzie od razu do bootowania.
hiddenmenu – jeżeli ta opcja jest widoczna to znaczy, że menu GRUB’a wyświetli się dopiero po naciśnięciu klawisza ESC.
Dodawanie linijek z bootowaniem WINDOWS:
Z Windows na oddzielnym dysku. Dysk Linux musi być ustawiony na primary i boot.
(hd0,0) = /dev/hda1 #komentarz – pierwszy dysk, pierwsza partycja (Linux)
(hd1,2) = /dev/hdb1 # drugi dysk, trzecia partycja (Windows)
(hd2,1) = /dev/hdc3 # trzeci dysk , druga parycja (jakis inny system)
title Windows # nazwa jaka będzie wyswietlana podczas wyboru menu(hd1,2) = /dev/hdb1 # drugi dysk, trzecia partycja (Windows)
(hd2,1) = /dev/hdc3 # trzeci dysk , druga parycja (jakis inny system)
map (hd0) (hd1) # zmiana kolejności dysków
map (hd1) (hd0) # System Windows uzna, że bottoje się z dysku PRIMARY
rootnoverify (hd1,0)
chainloader +1 przekazanie kontroli do następnego bootloadera w tym wypadku windowsa
UWAGA: poniedzy konfiguracjami systemów musi wystapić przynajmniej 1 linijka przerwy
Z FreeBSD na oddzielnym dysku:
Systemy z rodziny *BSD nazywaja dyski nie cyframi a literami alfabetu.
np. hd1.a , hd1,b
title FreeBSD np. hd1.a , hd1,b
root (hd1,a)
kernel /boot/loader root
środa, 17 kwietnia 2013
Serwer vsFTPd
Czasami tak zdawała by się prosta rzecz jak FTP psuje cały humorek porannej kawy.
Co zrobić by serwer FTP zadziałał na naszym LINUX np. Centos 6.0
(Zalecanym przez korporację RedHat serwerem FTP jest VSFTPD czyli Very Secure Ftp Daemon)
1. Instalujemy VSFTPD na naszym serwerze:
yum update
yum install vsftpd
2. Konfigurujemy nasz serwer
plik konfiguracyjny znajdziemy w /etc/:
najpierw robimy kopie:
cd /etc/vsftpd
cp vsftpd.conf vsftpd.conf.bac
teraz edytujemy:
vi /etc/vsftpd/vsftpd.conf
(a) wariant pierwszy (tylko lokalni użytkownicy)
( konfiguracja serwera FTP pozwoli na łączenie się użytkowników do swoich katalogów domowych. Będą mogli oni pobierać i wysyłać na swoje konta dane z prędkością do 20 KB/s w obie strony, czasami się przydaje by nie wysycili nam łącza. Po zalogowaniu się do swoich kont, serwer FTP zastosuje zasadę chroot i zamknie możliwość poruszania się tylko do katalogu domowego, a więc user nie będzie mógł go opuścić, jest to dobra i bezpieczna opcja. Istnieje oczywiście możliwość dodania użytkowników którzy będą mogli poruszać się poza swoim katalogiem domowym. Nie ma możliwości logowania się ANONYMOUS. )
(b) wariant drugi (tylko anonimowi goście, bez możliwości zapisu)
( przydatne gdy chcemy udostępnić dla ogółu jakieś pliki , logujemy się wówczas na login ftp i hasło puste lub można podać swój adres e-mail )
(c) wariant trzeci ( lokalni użytkownicy i goście - uprawnienia pełen zapis)
( zezwalamy na zapis zarówno lokalnym użytkownikom jak i anonimowym , wszyscy są zamknięci we własnych katalogach , w przypadku anonimowych jest to katalog
najpierw tworzymy niezbędny katalog
mkdir /var/chroot/vsftpd
Powyższe konfiguracje są poglądowe, warto wykorzystać je do pomieszania i stworzenia własnej unikatowej konfiguracji.
2. Uruchamianie serwera FTP
/etc/init.d/vsftpd start
Uruchamianie vsftpd dla vsftpd: [ OK ]
lub jeśli już jest proces uruchomiony (sprawdzamy)
ps ax | grep vsftpd
28018 ? Ss 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
( widać, że uruchomiony jako process 28018)
lub
/etc/init.d/vsftpd status
vsftpd (pid 30688) jest uruchomiony...
to wpisujemy
/etc/init.d/vsftpd restart
Wyłączanie vsftpd: [ OK ]
Uruchamianie vsftpd dla vsftpd: [ OK ]
3. Firewall - otwieranie usługi FTP na świat
niezapomnijmy o otwarciu jeszcze niezbędnych portów:
(musimy dopisać odpowiednie linijki do naszego firewalla)
#port 21 (TCP) - negocjacyjny
iptables -A INPUT -s 0/0 -p tcp --dport 21 -j ACCEPT
#port 20 (TCP) - transmisji danych (w trybie aktywnym)
iptables -A INPUT -s 0/0 -p tcp --dport 20 -j ACCEPT
#porty od 1024 do 65530 - transmisji danych (w trybie pasywnym)
iptables -A INPUT -s 0/0 -p tcp --dport 1024:65530 -j ACCEPT
4. Sprawdzamy naszego FTP
(najszybciej starym poczciwym telnet'em)
telnet localhost 21
Trying 127.0.0.1...
Connected to localhost (127.0.0.1).
Escape character is '^]'.
220 Witamy - tarnet.eu.org
aby wyjsć z telnetu naciskamy [CTRL} + ]
i wpisujemy quit
i mamy serwer gotowy :)
Tarnek oKRUTNIK
http://tarnet.eu.org
http://tarnet.eu.org/linux
Co zrobić by serwer FTP zadziałał na naszym LINUX np. Centos 6.0
(Zalecanym przez korporację RedHat serwerem FTP jest VSFTPD czyli Very Secure Ftp Daemon)
1. Instalujemy VSFTPD na naszym serwerze:
yum update
yum install vsftpd
2. Konfigurujemy nasz serwer
plik konfiguracyjny znajdziemy w /etc/:
najpierw robimy kopie:
cd /etc/vsftpd
cp vsftpd.conf vsftpd.conf.bac
teraz edytujemy:
vi /etc/vsftpd/vsftpd.conf
(a) wariant pierwszy (tylko lokalni użytkownicy)
( konfiguracja serwera FTP pozwoli na łączenie się użytkowników do swoich katalogów domowych. Będą mogli oni pobierać i wysyłać na swoje konta dane z prędkością do 20 KB/s w obie strony, czasami się przydaje by nie wysycili nam łącza. Po zalogowaniu się do swoich kont, serwer FTP zastosuje zasadę chroot i zamknie możliwość poruszania się tylko do katalogu domowego, a więc user nie będzie mógł go opuścić, jest to dobra i bezpieczna opcja. Istnieje oczywiście możliwość dodania użytkowników którzy będą mogli poruszać się poza swoim katalogiem domowym. Nie ma możliwości logowania się ANONYMOUS. )
nopriv_user=ftp
listen=YES # nasłuchuj w trybie standalone
listen_port=21 # nasłuchuj na porcie 21
anonymous_enable=NO # wyłącz logowania kont ANONYMOUS
local_enable=YES
write_enable=YES
local_umask=022
local_max_rate=20480
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log # zapisuj logi do
max_clients=100 # maksylmanie wszystkich połączeń
max_per_ip=4 # maksymalnie 4 połączenia na raz
banner_file=/etc/vsftpd/vsftpd.banner # pokaż tekst powitalny z pliku
chroot_local_user=YES # włącz tryb chroot chroot_list_enable=YES # włącz liste dla których userow
# stosować regule chroot
chroot_list_file=/etc/vsftpd/chroot.list # lista userów
(b) wariant drugi (tylko anonimowi goście, bez możliwości zapisu)
( przydatne gdy chcemy udostępnić dla ogółu jakieś pliki , logujemy się wówczas na login ftp i hasło puste lub można podać swój adres e-mail )
listen=YES
anonymous_enable=YES # włączamy możliwość logowania się gości
ftp_username=ftp # jako użytkownicy ftp
write_enable=NO # zabraniamy zapisu
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
anon_world_readable_only=YES
idle_session_timeout=350
connect_from_port_20=YES
port_enable=YES
hide_ids=NO
log_ftp_protocol=NO
syslog_enable=YES
max_per_ip=4
local_root=/usr/share/empty
nopriv_user=nobody
ftpd_banner=(vsFTPd nazwa_naszego_serwera)
(c) wariant trzeci ( lokalni użytkownicy i goście - uprawnienia pełen zapis)
( zezwalamy na zapis zarówno lokalnym użytkownikom jak i anonimowym , wszyscy są zamknięci we własnych katalogach , w przypadku anonimowych jest to katalog
/var/chroot/vsftpd , dodatkowo wprowadzamy ograniczenia na możliwość UPLOAD'owanie plików, zabraniamy wysyłać pliki typu mp3 i avi , oraz ukrywamy pliki typu txt i vcs )
najpierw tworzymy niezbędny katalog
mkdir /var/chroot/vsftpd
nopriv_user=ftp
listen=YES
listen_port=21
anonymous_enable=YES
local_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/xferlog.log
xferlog_std_format=YES
chroot_local_user=YES
secure_chroot_dir=
/var/chroot/vsftpd
no_anon_password=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=NO
hide_ids=YES
local_umask=022
anon_umask=022
deny_file={*.mp3,*.avi}
hide_file={*.txt,*.vcs}
Powyższe konfiguracje są poglądowe, warto wykorzystać je do pomieszania i stworzenia własnej unikatowej konfiguracji.
2. Uruchamianie serwera FTP
/etc/init.d/vsftpd start
Uruchamianie vsftpd dla vsftpd: [ OK ]
lub jeśli już jest proces uruchomiony (sprawdzamy)
ps ax | grep vsftpd
28018 ? Ss 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
( widać, że uruchomiony jako process 28018)
lub
/etc/init.d/vsftpd status
vsftpd (pid 30688) jest uruchomiony...
to wpisujemy
/etc/init.d/vsftpd restart
Wyłączanie vsftpd: [ OK ]
Uruchamianie vsftpd dla vsftpd: [ OK ]
3. Firewall - otwieranie usługi FTP na świat
niezapomnijmy o otwarciu jeszcze niezbędnych portów:
(musimy dopisać odpowiednie linijki do naszego firewalla)
#port 21 (TCP) - negocjacyjny
iptables -A INPUT -s 0/0 -p tcp --dport 21 -j ACCEPT
#port 20 (TCP) - transmisji danych (w trybie aktywnym)
iptables -A INPUT -s 0/0 -p tcp --dport 20 -j ACCEPT
#porty od 1024 do 65530 - transmisji danych (w trybie pasywnym)
iptables -A INPUT -s 0/0 -p tcp --dport 1024:65530 -j ACCEPT
4. Sprawdzamy naszego FTP
(najszybciej starym poczciwym telnet'em)
telnet localhost 21
Trying 127.0.0.1...
Connected to localhost (127.0.0.1).
Escape character is '^]'.
220 Witamy - tarnet.eu.org
aby wyjsć z telnetu naciskamy [CTRL} + ]
i wpisujemy quit
i mamy serwer gotowy :)
Tarnek oKRUTNIK
http://tarnet.eu.org
http://tarnet.eu.org/linux
Subskrybuj:
Posty (Atom)