Próbuję skonfigurować FTP na Amazon Cloud Server, ale bez powodzenia. Przeszukuję sieć i nie ma konkretnych kroków, jak to zrobić.
Znalazłem te polecenia do uruchomienia:
$ yum install vsftpd
$ ec2-authorize default -p 20-21
$ ec2-authorize default -p 1024-1048
$ vi /etc/vsftpd/vsftpd.conf
#<em>---Add following lines at the end of file---</em>
pasv_enable=YES
pasv_min_port=1024
pasv_max_port=1048
pasv_address=<Public IP of your instance>
$ /etc/init.d/vsftpd restart
Ale nie wiem, gdzie je napisać.
linux
amazon-web-services
amazon-s3
amazon-ec2
ftp
SharkTheDark
źródło
źródło
Odpowiedzi:
Jaminto wykonał świetną robotę, odpowiadając na pytanie, ale ostatnio sam to przeszedłem i chciałem rozwinąć odpowiedź Jaminto.
Zakładam, że masz już utworzoną instancję EC2 i przypisałeś do niej elastyczny adres IP.
Krok # 1: Zainstaluj vsftpd
SSH do twojego serwera EC2. Rodzaj:
To powinno zainstalować vsftpd.
Krok # 2: Otwórz porty FTP w instancji EC2
Następnie musisz otworzyć porty FTP na serwerze EC2. Zaloguj się do konsoli zarządzania AWS EC2 i wybierz Grupy bezpieczeństwa z drzewa nawigacji po lewej stronie. Wybierz grupę zabezpieczeń przypisaną do instancji EC2. Następnie wybierz kartę Przychodzące, a następnie kliknij Edytuj:
Dodaj dwie niestandardowe reguły TCP z zakresami portów 20–21 i 1024–1048. W polu Źródło możesz wybrać opcję „Anywhere”. Jeśli zdecydujesz się ustawić Source na własny adres IP, pamiętaj, że twój adres IP może się zmienić, jeśli zostanie przypisany przez DHCP.
Krok # 3: Zaktualizuj plik vsftpd.conf
Edytuj plik conf vsftpd, wpisując:
Wyłącz anonimowy FTP, zmieniając ten wiersz:
do
Następnie dodaj następujące wiersze na dole pliku vsftpd.conf:
Twój plik vsftpd.conf powinien wyglądać mniej więcej tak: pamiętaj, aby zastąpić adres pasv_adres swoim publicznym adresem IP:
Aby zapisać zmiany, naciśnij klawisz Escape, następnie wpisz
:wq
, a następnie naciśnij klawisz Enter.Krok # 4: Uruchom ponownie vsftpd
Uruchom ponownie vsftpd, wpisując:
Powinieneś zobaczyć komunikat, który wygląda następująco:
Jeśli to nie zadziała, spróbuj:
Krok # 5: Utwórz użytkownika FTP
Jeśli spojrzysz na / etc / vsftpd / user_list, zobaczysz następujące informacje:
To w zasadzie mówi: „Nie zezwalaj tym użytkownikom na dostęp FTP”. vsftpd pozwoli na dostęp FTP każdemu użytkownikowi spoza tej listy.
Dlatego w celu utworzenia nowego konta FTP może być konieczne utworzenie nowego użytkownika na serwerze. (Lub, jeśli masz już konto użytkownika, którego nie ma na liście / etc / vsftpd / user_list, możesz przejść do następnego kroku.)
Utworzenie nowego użytkownika w instancji EC2 jest dość proste. Na przykład, aby utworzyć użytkownika „bret”, wpisz:
Oto jak to będzie wyglądać:
Krok # 6: Ograniczanie użytkowników do ich katalogów domowych
W tym momencie użytkownicy FTP nie są ograniczeni do swoich katalogów domowych. To nie jest bardzo bezpieczne, ale możemy to łatwo naprawić.
Zmodyfikuj ponownie plik conf vsftpd, wpisując:
Cofnij komentarz:
Po zakończeniu powinno wyglądać tak:
Uruchom ponownie serwer vsftpd w następujący sposób:
Wszystko gotowe!
Dodatek A: Przeżycie ponownego uruchomienia
vsftpd nie uruchamia się automatycznie po uruchomieniu serwera. Jeśli jesteś podobny do mnie, oznacza to, że po ponownym uruchomieniu instancji EC2 poczujesz chwilę przerażenia, gdy FTP wydaje się być zepsuty - ale w rzeczywistości po prostu nie działa !. Oto przydatny sposób, aby to naprawić:
Alternatywnie, jeśli używasz redhat, innym sposobem zarządzania swoimi usługami jest użycie tego sprytnego graficznego interfejsu użytkownika do kontrolowania, które usługi powinny się automatycznie uruchamiać:
Teraz vsftpd uruchomi się automatycznie po uruchomieniu serwera.
Dodatek B: Zmiana katalogu domowego FTP użytkownika
* UWAGA: Iman Sedighi opublikował bardziej eleganckie rozwiązanie ograniczające dostęp użytkowników do określonego katalogu. Proszę odnieść się do jego doskonałego rozwiązania opublikowanego jako odpowiedź *
Możesz utworzyć użytkownika i ograniczyć jego dostęp FTP do określonego folderu, takiego jak / var / www. Aby to zrobić, musisz zmienić domyślny katalog domowy użytkownika:
W tym konkretnym przykładzie typowe jest udzielanie użytkownikom uprawnień do grupy „www”, która często jest powiązana z folderem / var / www:
źródło
step 3
jaki sposób mogę zapisać po dodaniu wierszy do pliku?Aby włączyć pasywne ftp na serwerze EC2, musisz skonfigurować porty, których serwer ftp powinien używać do połączeń przychodzących, a następnie otworzyć listę dostępnych portów dla połączeń danych klienta ftp.
Nie jestem zaznajomiony z Linuksem, ale opublikowane polecenia to kroki, aby zainstalować serwer ftp, skonfigurować reguły zapory ec2 (za pośrednictwem interfejsu API AWS), a następnie skonfigurować serwer ftp, aby korzystał z portów dozwolonych w zaporze ec2 .
Więc ten krok instaluje klienta ftp (VSFTP)
> yum install vsftpd
Te kroki konfigurują klienta ftp
ale pozostałe dwa kroki są łatwiejsze do wykonania za pośrednictwem konsoli Amazon w ramach grup zabezpieczeń EC2. Tam należy skonfigurować grupę zabezpieczeń przypisaną do serwera, aby zezwalać na połączenia na portach 20, 21 i 1024-1048
źródło
Dzięki @ clone45 za fajne rozwiązanie. Ale miałem tylko jeden ważny problem z Załącznikiem b jego rozwiązania. Natychmiast po zmianie katalogu domowego na var / www / html nie mogłem połączyć się z serwerem przez ssh i sftp, ponieważ zawsze pokazuje następujące błędy
lub w FileZilla otrzymałem ten błąd:
Ale mogłem uzyskać dostęp do serwera przez normalne połączenie FTP.
Jeśli napotkałeś ten sam błąd, po prostu cofnij dodatek b rozwiązania @ clone45, ustawiając domyślny katalog domowy użytkownika:
Ale po ustawieniu domyślnego katalogu domowego użytkownika użytkownik ma dostęp do wielu innych folderów poza / var / www / http. Aby zabezpieczyć serwer, wykonaj następujące kroki:
1- Stwórz grupę sftponly Stwórz grupę dla wszystkich użytkowników, których chcesz ograniczyć dostęp tylko do ftp i sftp do var / www / html. aby utworzyć grupę:
2- Więzienie chroota Aby ograniczyć dostęp tej grupy do serwera za pośrednictwem sftp, musisz uwięzić chroota, aby nie pozwolić użytkownikom grupy na dostęp do żadnego folderu z wyjątkiem folderu HTML w jego katalogu domowym. aby to zrobić otwórz /etc/ssh/sshd.config w vimie z sudo. Na końcu pliku skomentuj ten wiersz:
A następnie dodaj ten wiersz poniżej:
Więc zastąpiliśmy podsystem wewnętrznym sftp. Następnie dodaj następujące wiersze poniżej:
Po dodaniu tego wiersza zapisałem moje zmiany, a następnie ponownie uruchomiłem usługę ssh poprzez:
3- Dodaj użytkownika do grupy sftponly Każdy użytkownik, którego chcesz ograniczyć dostęp, musi być członkiem grupy sftponly. Dlatego dołączamy do sftponly przez: sudo usermod -G sftponly nazwa użytkownika
4- Ogranicz dostęp użytkownika do tylko var / www / html Aby ograniczyć dostęp użytkownika do folderu var / www / html, musimy utworzyć katalog w katalogu domowym (o nazwie „html”) tego użytkownika, a następnie zamontować / var / www do / home / nazwa użytkownika / html w następujący sposób:
5- Ustaw dostęp do zapisu Jeśli użytkownik potrzebuje dostępu do zapisu do / var / www / html, musisz uwięzić użytkownika w / var / www, który musi mieć uprawnienia root: root i uprawnienia 755. Następnie musisz dać / var / www / html własność root: sftponly i uprawnienia 775 przez dodanie następujących wierszy:
6- Zablokuj dostęp do powłoki Jeśli chcesz ograniczyć dostęp, aby nie mieć dostępu do powłoki, aby była bardziej bezpieczna, po prostu zmień domyślną powłokę na bin / false w następujący sposób:
źródło
sudo mount --bind /var/www /home/username/html
otrzymuję informację, że nie ma folderu www. Zakładam, że odbywa się to z poziomu katalogu głównego (gdzie znajduje się folder / home)?sudo chown root:www /var/www/html
stwierdza chown: niepoprawna grupa: 'root: www'sudo usermod -s /sbin/nologin username
z powodu domyślnych ograniczeń powłoki pam modułu vsftpd (i w moim przypadku wydaje się, że działa to lepiej). I część 4mount
musi być wykonywana przy każdym ponownym uruchomieniu, więc dobrym pomysłem jest umieszczenie go w rc.local.Świetny artykuł ... działał jak wiatr na Amazon Linux AMI.
Dwa kolejne przydatne polecenia:
Aby zmienić domyślny folder przesyłania FTP
Krok 1:
Krok 2: Utwórz nowy wpis na dole strony:
Aby zastosować odczyt, zapis, usuń uprawnienia do plików w folderze, aby móc zarządzać za pomocą urządzenia FTP
źródło
Jeśli masz włączone ufw, pamiętaj o dodaniu ftp:
Zrozumienie, że włączyłem ufw, zajęło mi 2 dni.
źródło
Nie będzie dobrze, dopóki nie dodasz użytkownika do grupy www za pomocą następujących poleceń:
To rozwiązuje problem z uprawnieniami.
Ustaw domyślną ścieżkę, dodając to:
źródło
Nie zapomnij zaktualizować zapory iptables, jeśli masz taką, która pozwala na zakresy 20–21 i 1024–1048.
Zrób to z / etc / sysconfig / iptables
Dodanie takich wierszy:
Uruchom ponownie iptables za pomocą polecenia:
źródło
Uprościłem klon 45 kroków:
Otwórz porty, jak wspomniał
źródło
Postępowałem zgodnie z odpowiedzią clone45 aż do końca. Świetny artykuł! Ponieważ potrzebowałem dostępu FTP, aby zainstalować wtyczki na jednej z moich stron Wordpress, zmieniłem katalog domowy na / var / www / mysitename. Następnie kontynuowałem dodawanie mojego użytkownika ftp do grupy apache (lub www) w następujący sposób:
Po tym nadal widziałem ten błąd na stronie instalacyjnej wtyczki WP: „Nie można znaleźć katalogu zawartości WordPress (wp-content)”. Przeszukałem i znalazłem to rozwiązanie podczas sesji pytań i odpowiedzi wp.org: https://wordpress.org/support/topic/unable-to-locate-wordpress-content-directory-wp-content i dodałem następujące informacje na końcu wp- config.php:
Następnie moja wtyczka WP została pomyślnie zainstalowana.
źródło
może warto wspomnieć oprócz odpowiedzi clone45 :
Uwaga: problemy z uprawnieniami do zapisu mogą być wyświetlane jako następujące błędy FileZilla :
Odnośniki:
Naprawianie uprawnień do zapisu dla chrootowanych użytkowników FTP w vsftpd
VSFTPd przestało działać po aktualizacji
źródło
W przypadku otrzymania nieprawidłowego hasła 530
Potrzebny jest jeszcze 1 krok
w pliku / etc / shells
Dodaj następujący wiersz
/ bin / false
źródło
FileZila jest dobrym narzędziem FTP do konfiguracji z Amazon Cloud.
Musisz wykonać te kroki tylko 1 raz, później prześle zawartość na ten sam adres IP i tę samą stronę.
źródło