슥훌(phps.kr) 가상서버호스팅 구입 후 세팅

2016. 6. 22. 22:36개발/리눅스

반응형

// 개인적으로 운영하던 홈페이지에 쓴 글을 블로그로 이전 & 살짝 수정. 뒤에 추가 작업한 것도 있지만 이 글에는 안 적음.

 

 


phps.kr(스쿨호스팅)에 가상서버 우분투 12.04, 보안, apm설치(rpm)  로 신청 후 여기 저기 찾아보며 적용했던 내용을 기록했던 글입니다.

 

 

1. 설치된 파일 항목 다운
dpkg --get-selections | grep -v deinstall > deinstall.txt

2. lynx 설치 (apt-get install lynx)
- mod_status 확인 ssh에서 $ lynx http://localhost/server-status
- http://webdir.tistory.com/212 참고

3. 디렉토리 리스팅 막기
- /etc/apache2/sites-available/default 파일에서 Indexs 삭제

4. vsftp 설정
local_root=/home 추가 (ftp 접속시 사용자가 home폴더 위로 이동못하게)
anonymous_enable=NO => 기본 yes 로 되어 있어서 no로 변경
local_enable=YES => 주석해제
write_enable=YES => 주석해제
local_umask=022 => 022로 변경(폴더업로드 권한 777-022 = 755)
file_open_mode=0644 => 파일업로드시,생성시 권한
chroot_local_user=YES => 주석해제

5. 사용자계정 생성
adduser 사용자명
=> /home/사용자명 으로 폴더가 생성됨

6. mysql db 생성
mysql> use mysql;
mysql> create database 계정이름;

mysql> Grant ALL ON 계정이름 TO 계정이름@localhost IDENTIFIED BY \r\n\'비밀번호\';
mysql> insert into db values('%','생성할디비이름','계정이름','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
-> y컬럼 갯수확인은 desc db; 로 확인가능. Y옵션이 19개였음

mysql> Grant ALL privileges ON 계정이름(db명).* TO 계정이름@localhost IDENTIFIED BY '비밀번호';

mysql> flush privileges;

7. 홈폴더 수정 - 기본 /var/www 로 되어 있음.
/etc/apache2/site-available/default 파일에 /var/www 를 /home/사용자계정/www 로 변경 후
/etc/init.d/apache2 restart 아파치 재시작 후 웹브라우저에서 확인
* 사용자 추가 시 /etc/apache2/site-available/default 파일에 DocumentRoot /home/userid 추가

8. ufw 설정
ufw enable
ufw default deny
ufw allow 80
ufw allow 22
ufw allow 21

* 특정 아이피 차단 시
ufw deny from 111.111.111.111

설정 확인 : ufw status

9. 사용자 계정용 서브도메인 설정
vim /etc/site-avs~~/default

<VirtualHost *:80>
    ServerName xx.example.com
    DocumentRoot /home/username/www
</VirtualHost>

- 저장 후 apache2 재시작 sudo service apache2 restart // or /etc/init.d/apache2 restart

- 해당 홈 폴더에 index.html 등 파일 생성 후 http://xx.example.com 로 접속해서 확인

10. httpd.conf
ErrorDocument 404 \"404 not found\" 추가
ErrorDocument 401, 403, 500 도 추가함

11. ssh 설정
/etc/ssh/sshd_config 파일 수정
PermitRootLogin yes => no 로 변경 : root 아이디 ssh 접근 차단
=> /etc/sudoers 파일에 별도 아이디 추가 해당 아이디로 접속 후 관리권한 필요시 sudo, su 사용

ssh 접속시 home 상위 이동 막아야 됨..

12. syn flloding 관련
cat /proc/sys/net/ipv4/tcp_max_syn_backlog => 기본 512로 되어 있어서 1024로 변경
sysctl -w net.ipv4.tcp_max_syn_backlog=1024

cat /proc/sys/net/ipv4/tcp_syncookies => 1로 되어 있음(내가 바꾼건지 슥훌 기본인지 기억안남)
sysctl -w net.ipv4.tcp_fin_timeout=20 => 기본 60으로 되어 있어서 20초로 변경

추가보안사항은 http://net2free.tistory.com/m/post/245 참고


13. 에러로그 확인
 /var/log/apache2/error.log => 루트권한필요
 /var/log/access.log 등등 확인 가능
 
14. fail2ban 설정 - 기본 설치되어 있음
/etc/fail2ban/jail.conf 에서 vsftpd true 변경 등등 수정 후 service fail2ban restart



* 참고링크

- http://ioriy2k.pe.kr/archives/7307 : 보안관련 설정에 대해 잘 정리되어 있음.


##############################################################################

 

 

 

 

계정 삭제해버림.. 그리고..

 

 

 

 

 

삭제하기 전 러시안룰렛 놀이~

 

 

 

 

 

 실 서버에서는 절대 하지 마세요~ㅎㅎ

 

 

 

 

Centos 가상서버 세팅한 것도 곧 등록하겠습니다~

 

 

 

반응형