Strona 1 z 2
[+] Edycja plików konfiguracyjnych
: 11 października 2016, 08:05
autor: ano
Witam
ostatnio borykam się z problemem edycji wielu plików konfiguracyjnych, postanowiłem coś z tym zrobić.
Mam na przykład bezpośrednie pozwolenie na logowanie roota
i teraz się zastanawiam jak to jest robione profesjonalnie, bo ja zazwyczaj podmieniam całe pliki bo tak łatwiej, ale ostatnio już tak nie mogę robić tylko muszę ręcznie zmieniać wartości. zastanawiałem się nad grepowaniem tnięciem ale nie wydaje mi się żeby tak było profesjonalnie. może jest już jakaś funkcja która się tym zajmuję albo ktoś wie jakie funkcje są używane przy automatycznej zmianie konfiguracji jakiegoś programu?
Thx z góry za odpowiedzi
Re: Edycja plików konfiguracyjnych
: 11 października 2016, 08:12
autor: dedito
Zainteresuj się programem np. sed, który potrafi zamieniać określone frazy w pliku.
Re: Edycja plików konfiguracyjnych
: 11 października 2016, 11:39
autor: lizard
Studium przypadku.
PHPMyAdmin (na serwerze o publicznym adresie IP) dopuszcza połączenia tylko z sieci lokalnej. Czasem potrzeba dostać się do niego na chwilę z zewnątrz.
W pliku /etc/phpmyadmin/apache.conf umieściłem ograniczenie dostępu tylko z sieci lokalnej:
Kod: Zaznacz cały
Order deny,allow
Deny from all
Allow from 10.
Na serwerze umieściłem skrypt, który na koniec linii "Allow from" dopisuje adres IP bieżącego połączenia SSH:
Kod: Zaznacz cały
#!/bin/sh
case ${1} in
up)
sed -i "s/\(^[[:space:]]*Allow from 10\.\).*/\1 ${SSH_CLIENT%% *}/" /etc/phpmyadmin/apache.conf ;;
down)
sed -i 's/\(^[[:space:]]*Allow from 10\.\).*/\1/' /etc/phpmyadmin/apache.conf ;;
*)
echo "Usage: ${0} <up|down>"
exit
esac
systemctl restart apache2
Polecenia
sed odpowiednio dodają (parametr "up" skryptu) i usuwają (parametr "down") adres IP klienta SSH bezpośrednio w pliku konfiguracyjnym. Na koniec serwer jest restartowany dla zastosowania zmian.
Re: Edycja plików konfiguracyjnych
: 11 października 2016, 16:12
autor: ano
Thx za podpowiedz, jak przetestuję to polecenie to się odezwę
nie rozumiem
lizard pisze:Studium przypadku.
Przy okazji to nie lepiej już dać dostęp wszystkim?
można zabezpieczyć stronę .htaccess
zmienić domyślną lokalizację katalogu
zmodyfikować tak byś miał dostęp tylko po zalogowaniu się użytkownika na stronie www
bo jeżeli dobrze zrozumiałem to i tak jakoś musisz przesyłać IP jeżeli chcesz mu dać dostęp, więc i tak musisz to robić ręcznie, najlepszym rozwiązaniem jest .htaccess w takiej sytuacji
lizard pisze:PHPMyAdmin (na serwerze o publicznym adresie IP) dopuszcza połączenia tylko z sieci lokalnej. Czasem potrzeba dostać się do niego na chwilę z zewnątrz.
Nie zauważyłem, domyślnie dopuszcza, a przynajmniej jak teraz instalowałem to zawsze mam od razu dostęp, bez zadnego konfigurowania, a mam vpsa
Re: Edycja plików konfiguracyjnych
: 11 października 2016, 16:48
autor: lizard
To był tylko przykład modyfikacji plików konfiguracyjnych w locie.
Offtopic:
Nie jestem zwolennikiem grzebania w /usr, którego zawartość może być zmieniana podczas aktualizacji systemu. Ograniczenie dostępu do sieci lokalnej ogranicza pokusę brute force'a. Adres IP "przesyłany" jest podczas połączenia SSH: ssh
www.domena.pl ./skrypt.sh up.
Re: Edycja plików konfiguracyjnych
: 16 października 2016, 21:50
autor: ano
Witam z powrotem, zapomniałem się odezwać, oczywiście ze mi działa sed, thx
Problem miałem kiedy musiałem użyć \ w ciągu ale wystarczy podać \/ i działa (wymyśliłem bo nigdzie o tym nie pisało, albo nie znalazłem)
teraz mam pytanko odnośnie jak programy czytają pliki konfiguracyjne?
bo chyba nie grepują, bo jak za komentujesz linie to program nie odczyta tego configu
chodzi mi dokładnie jakiej funkcji używają aby odczytać daną konfigurację
Offtopic:
lizard, po naszej rozmowie przyznaję, że użycie klucza też jest bezpieczne
Re: Edycja plików konfiguracyjnych
: 01 listopada 2016, 22:10
autor: ano
witam ponownie
mam problem z zmianą pliku poprzez komendę sed
Kod: Zaznacz cały
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride none
Require all granted
</Directory>
Chodzi mi o zmianę słowa none na AuthConfig, problem polega na tym ze jest kilka takich wierszy a ja chcę tylko zmienić jeden, i nie jest to pierwszy
Kod: Zaznacz cały
sudo sed -i 's/<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride none Require all granted</Directory>/<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride AuthConfig Require all granted</Directory>/' /etc/ssh/sshd_config
chodzi mi o coś w ten deseń, nie wiem jak mam ustawić entery i inne białe znaki, ktoś by mógł mi pomóc? (czyli napisać bo sam nie umiem)
Re: Edycja plików konfiguracyjnych
: 01 listopada 2016, 22:20
autor: marcin1982
Re: Edycja plików konfiguracyjnych
: 01 listopada 2016, 22:30
autor: ano
chodzi mi o zmianę none na AuthConfig tylko po wystąpieniu <Directory /var/www/>, nie wiem jak to zrobić, przykłady odnoszą się do linii/wierszy nie do bloków tekstowych
thx za linki ale nie potrafię ich wykorzystać
Kod: Zaznacz cały
sudo sed -e 's/AllowOverride None/AllowOverride AuthConfig/3' /etc/apache2/apache2.conf
nie zmienia mi nic
Kod: Zaznacz cały
sudo sed -e 's/AllowOverride None/AllowOverride AuthConfig/1' /etc/apache2/apache2.conf
zmienia mi wszystko
Re: Edycja plików konfiguracyjnych
: 02 listopada 2016, 08:58
autor: dedito
sed jest edytorem wierszowym i to co chcesz osiągnąć przełącznikami /1 i /3 dotyczy wystąpienia ciągu w wierszu.
Musiałbyś sobie ograniczyć zakres do konkretnych wierszy lub zdefiniować w których blokach tekstu (np. zdefiniowanych na znacznikach directory) ma nastąpić zastąpienie.
Literatura (pkt 1.3 i 1.4)
http://www.elpro.pl/dokumentacje/80-sed ... czescdruga
Załącz źródło /etc/apache2/apache2.conf, bo ciężko coś sprawdzać nie mając pliku na którym operujesz.