- 메인 서버에서 사용중인 php 계정을 락 걸리게 하는 방법.
1) passwd -l php
해제) passwd -u php
2) usermod -L php
해제) usermid -U php
-100.100.100.1의 competition.st.kr 웹 접속 차단
competition.st.kr로 웹 접속.
> nano /etc/apache2/sites-available/hosting.conf
<VirtualHost *:80>
DocumentRoot /home/competition/public_html
ServerName competition.st.kr
ServerAdmin competition@competition.st.kr
ErrorLog /home/competition/public_html/logs/error.log
CustomLog /home/competition/public_html/logs/access.log combined
</VirtualHost>
> nano /etc/bind/st.kr.zone
competition IN A 125.246.95.152 추가
systemctl restart named
systemctl restart apache2
웹에서 index.html 혹은 index.php가 반응하여 백지가 뜨는데,
index.html과 index.php를 삭제할 경우 디렉터리 리스트가 표시된다.
/etc/apache2/sites-available/hosting.conf
<Directory "/home/competition/public_html">
Options Indexes
</Directory>
로 주면 디렉터리 리스트가 뜬다.
그러므로 Options None으로 바꾸어주면 Fobbiden으로 바뀐 것을 볼 수 있다.
이 상태에서 index.html을 만들어주면 다시 백지가 뜨는 것을 볼 수 있다.
접속 허용
<Directory "/home/competition/public_html">
Options None
Order Allow,Deny
Allow from all
</Directory>
접속 차단
<Directory "/home/competition/public_html">
Options None
Order Allow,Deny
Allow from all
Deny from 100.100.100.1/32
</Directory>
root 계정 로그아웃 시간 설정 (3분)
> nano /etc/profile
TMOUT=180 추가
100.100.100.1의 메일 송신 차단.
> nano /etc/mail/access
st.kr RELAY 주석처리
100.100.100.1 REJECT 추가
> makemap hash /etc/mail/access < /etc/mail/access
> systemctl restart sendmail
Access denied가 뜨면서 정상적으로 차단 된 것을 확인할 수 있다.
메일 거부
-REJECT (거부 메세지 출력)
-DISCARD (거부 메세지 미출력)
내부 사용자들의 암호 강도 강화
> nano /etc/login.defs
추가 > PASS_MIN_LEN 8
+ UMASK 022 추가하면 기본으로 파일이 생성될 때 파일은 644, 디렉터리는 755로 만들어진다.
+ LOG_OK_LOGINS yes
source /etc/login.defs
reboot
마운트
/etc/fstab
계정 정보
/etc/passwd
암호 강도 설정
/etc/login.defs
메일 차단
/etc/mail/access - sendmail 설치 시 생성되는 파일
----
shop.st.kr 접속 & 워드프레스 설치
adduser shop
cd /home/word/public_html
cp word.zip /home/shop/public_html
cd /home/shop/public_html
chown shop:shop word.zip
unzip word.zip
nano /etc/apache2/sites-available/hosting.conf
<VirtualHost *:80>
DocumentRoot /home/shop/public_html/wordpress
ServerName shop.st.kr
ServerAdmin shop@shop.st.kr
ErrorLog /home/shop/public_html/logs/error.log
CustomLog /home/shop/public_html/logs/access.log combined
</VirtualHost>
root > mysql
CREATE DATABASE shop;
CREATE USER 'shop'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON shop.* TO 'shop'@'localhost';
FLUSH PRIVILEGES;
word > cd /home/word/public_html/wordpress
word > cp wp-config-sample.php wp-config.php
word > nano wp-config.php
웹 새로고침
공격
> ping shop.st.kr
해커의 IP(100.100.100.1)가 쉽게 노출된다.
> hping3 shop.st.kr -S -i u50 -c 5
> nikto -host shop.st.kr
wordpress 사용 확인.
/home/shop/public_html/logs/access.log 확인.
> wpscan --url shop.st.kr -U user.txt -P passwd.txt
admin / 123456 확인.
공격 후 여기까지 기록된 로그 (access.log) 확보 > 관리자 pc 로컬로 가져오기
cmd > ftp 10.0.2.15
shop , 123456
> dir
> cd logs
> dir
> get access.log
이렇게 하면 로컬로 가져와지는데, 위치는 cmd에서 ftp를 접속할 때 위치해있던 곳으로 가져와진다.
예를들어, C:에서 실행했으면 C:에 저장되고, C:\Users\Manager에서 실행했으면 저 위치에 저장된다.
지금은 C:\Users\Manager에서 실행했기 때문에 저 위치에 저장된다.
shop에 대한 웹 파일과 DB 백업 후 관리자 PC에 저장
/etc/skel에 backup.sh 만들어놓기.