Categories
K/Ubuntu Linux

Ubuntu 12.04 – 500 OOPS: vsftpd: refusing to run with writable root inside chroot ()

W ostatnim czasie przytrafił mi się upgrade Ubuntu do wersji 12.04. Wraz z ugrade pojawiła się nowa wersja VSFTPD 2.3.5. Niby wszystko fajnie ale po kilku dniach zorientowałem się że coś ftp zaczął szwankować.

Wpisanie w Google komunikatu “500 OOPS: vsftpd: refusing to run with writable root inside chroot ()” wyświetliło całą masę rozwiązań… Zainteresowanych odsyłam do poszperania…

Tylko że niekoniecznie mam ochotę i czas kombinować z czymś co działało dobrze i spełniało moje oczekiwania.

Rozwiązanie:

  1. Deinstalacja vsftpd – apt-get remove vsftpd
  2. Ściągnięcie poprzedniej wersji z repozytorium Ubuntu (2.3.2-3ubuntu5)
  3. Instalacja dpkg -i nazwapakietu
  4. Oznaczenie żeby system wspaniałomyślnie nie próbował zaktualizować vsftpd: echo vsftpd hold | dpkg --set-selections

…i życie stało się prostsze.
Poprzednia wersja działa jak należy, upgrade nie próbuje mi zaktualizować vsftpd.
Oczywiście to tylko jedna z dostępnych metod – nie chciało mi się kombinować…

 

Categories
Linux

Fail2ban – automatyczne banowanie nieproszonych gości

Fail2ban jest narzędziem pomagającym zabezpieczyć serwery działające w oparciu o uniksopodobne systemy operacyjne (dostępne paczki na większość dystrybucji Linuksa oraz FreeBSD i Mac OS X). Po krótce fail2ban skanuje logi (np logi serwera ssh lub ftp), wyszukując błędy autentykacji, po czym wykonuje update ustawień firewalla żeby odrzucał cały ruch z danego IP.
Aplikacja jest napisana w Pythonie, blokowanie odbywa się poprzez dodanie reguł do Iptables lub do /etc/hosts.deny.

System bazowy: Debian Lenny, na pokładzie Iptables i Python, sshd, vsftpd

Instalacja z paczek:
apt-get install fail2ban

Konfiguracja:
Znajduje się w /etc/fail2ban, zalecane skopiowanie jail.conf > jail.local i ustawienie danych (np wyjątków nieblokowanych IP), które nie zostaną zmienione w przypadku przypadkowej podmiany podczas aktualizacji wersji.

U mnie /etc/jail2ban/jail.local wygląda tak:

[DEFAULT]

# “ignoreip” can be an IP address, a CIDR mask or a DNS host
ignoreip = 127.0.0.1 192.168.0.0/24
bantime = 86400
maxretry = 5

[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5

[vsftpd]
enabled = true
port = ftp,ftp-data,ftps,ftps-data
filter = vsftpd
logpath = /var/log/vsftpd.log
maxretry = 5

Następnie wykonujemy restart usługi:
/etc/init.d/fail2ban restart
… i mamy działającą maszynkę do banowania.

Log znajduje się w /var/log/fail2ban.log, domyślne logi są w statusach INFO, natomiast banowanie jest zapisywanie jako WARNING

2009-11-03 11:42:06,382 fail2ban.actions: WARNING [ssh] Ban 78.93.50.11

Akurat trafił mi się chętny do zablokowania 🙂

Wyświetlenie reguł:
iptables -L

(....cut....)
Chain fail2ban-ssh (1 references)
target prot opt source destination
DROP all -- 78.93.50.11 anywhere
RETURN all -- anywhere anywhere

Chain fail2ban-vsftpd (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere

W przypadku konieczności ręcznego odbanowania IP piszemy:
iptables -D fail2ban-ssh 1 (gdzie 1 – to numer linii w danej sekcji)

I to by było na tyle. Powodzenia!