보안

1.서버 정보 숨기기


/etc/apache2/conf-available/security.conf

1
ServerTokens Os

Copy of ServerTokens 값

2. 디렉토리 인덱싱 차단


디렉토리 내에 있는 파일에 접근할 수 있어 설정을 통해 막는다.

/etc/apache2/apache2.conf

1
2
3
4
5
<Directory /var/www/>
	Options Indexes FollowSymLinks
	AllowOverride None
	Require all granted
</Directory>

에서 Options 의 Indexes 부분을 삭제

3. 심볼릭 링크 차단


웹 루트에서 root라는 폴더로 이동시 루트 폴더 열람이 가능하다.

/etc/apache2/apache2.conf

1
2
3
4
5
<Direcotry /var/www/>
	Options None
	AllowOverried None
	Require all granted
</Directory>

Options에 FollowSymLinks를 삭제하고 허용할 옵션이 없다면 None

4. 웹 서버 프로세스 권한 제한


root 권한으로 데몬이 실행되는 경우 root권한을 취득할 수 잇다.

1
useradd -s /sbin/nologin 사용자명

을 통해 쉘 권한을 제거한 사용자를 생성하면 ssh는 접근 불가능해진다.

/etc/apache2/apache2.conf

1
2
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}

을 위에서 생성한 사용자로 설정한다.

재실행 후

1
ps -aux | grep apache

www-data 권한으로 실행되는걸 볼수 잇다.

5. HTTP Method 제한


HTTP Method 중에 GET, POST를 제외한 Method를 제한 하는 것이 좋다.

/etc/apache2/apache2.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
<Directory />
	Options None
	AllowOverride None
	Require all denied
	<Limit GET POST>
		Order deny,allow
		Allow from all
	<Limit>
	<LimitExcept GET POST>
		Order deny,allow
		Deny from all
	</LimitExcept>
</Directory>

6. 에러페이지 설정


에러 코드와 페이지에 있는 정보들은 공격자에게 정보를 제공해준다.

이를 위해 /etc/apache2/sites-available/ 에 있는 각 설정파일에

1
2
ErrorDocument 404 /404.html
ErrorDocument 403 [http://localhost.com/404.html](http://localhost.com/404.html) 

웹루트를 기준으로 하여 커스텀 페이지를 보여줄 수 있다.

파일 위치 대신에 url 호출도 가능하다.