반응형

* apache 설치/삭제

sudo apt-get install apache2

sudo apt-get remove apache2

(브라우저로 서버 IP 또는 도메인으로 접속하여 정상 설치 여부 확인)

 

- apache 홈 디렉토리 변경

vi /etc/apache2/apache2.conf

<Directory /var/www/> <= 원하는 경로로 변경

vi /etc/apache2/sites-available/default-ssl.conf

DocumentRoot /var/www/html <= 원하는 경로로 변경

vi /etc/apache2/sites-available/000-default.conf

DocumentRoot /var/www/html <= 원하는 경로로 변경

sudo service apache2 restart

 

* PHP 설치/삭제

sudo apt-get install php

sudo apt-get remove php

 

 

* MYSQL 설치/삭제 (오픈소스이며 mysql과 100% 호환되는 mariadb 설치)

sudo apt-cache search mysql-server   버젼 확인 (여러 버젼 있음)

sudo apt-get install mariadb-server

sudo apt-get remove mariadb-server

 

 

* APM 연동 모듈 설치/삭제

sudo apt-get install libapache2-mod-php php-mysql

sudo apt-get remove libapache2-mod-php php-mysql

반응형

'컴퓨터 & 프로그래밍' 카테고리의 다른 글

php.ini 위치 확인  (0) 2017.12.29
gz 파일 mysql 실행  (0) 2017.12.29
우분투 UFW  (0) 2017.12.28
우분투 IP Table  (0) 2017.12.28
리눅스 SWAP SIZE 변경  (0) 2017.12.28
Posted by 얀웬리
:

     

     


반응형

CentOS뿐만 아니라 Ubuntu에서도 iptables를 이용하기 때문에 ufw 방화벽을 사용하기 위해서는 활성화를 시켜줘야 합니다. 단순히 ufw만 활성화시켜서 사용하려고 할 경우 정상적으로 이용이 불가능하며, 아래 패키지들을 삭제한 후 진행하여야 합니다. 패키지 삭제 후 정상적으로 시스템이 작동하지 않을 가능성이 존재하기 때문에 서비스를 본격적으로 제공하기 전에 진행하는 것을 권장합니다. 본 내용은 우분투 16.04 64bit, 우분투 14.04 64bit 이미지에서 테스트를 진행한 후 작성되었습니다.

 

1. iptables-persistent, netfilter-persistent 패키지 삭제
[우분투 16.04]

root@localhost:~# dpkg -r iptables-persistent
root@localhost:~# dpkg -r netfilter-persistent

[우분투 14.04](부득이하게 apt remove를 사용하였으며, 의존성을 확인하지 않은채 진행할 경우, 문제가 발생할 수 있습니다.) 

root@localhost:~# dpkg -r netfilter-persistent
root@localhost:~# apt remove –purge iptables-persistent
*purge 옵션의 경우 대시(-) 2개를 필요로 합니다. 워드프레스 버그로 인해 제대로 표현이 안되고 있습니다.

 

2. ufw 활성화 및 22번 포트 오픈

root@localhost:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

root@localhost:~# ufw allow 22/tcp

 

3. 리부팅 후 정상적으로 작동하는지 확인

root@localhost:~# reboot
root@localhost:~# ufw status
Status: active
To Action From
— —— —-
22/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)

반응형

'컴퓨터 & 프로그래밍' 카테고리의 다른 글

gz 파일 mysql 실행  (0) 2017.12.29
우분투 리눅스 APACHE PHP MYSQL 설치/삭제  (0) 2017.12.29
우분투 IP Table  (0) 2017.12.28
리눅스 SWAP SIZE 변경  (0) 2017.12.28
우분투 80 포트 이용  (0) 2017.12.28
Posted by 얀웬리
:

     

     


반응형

iptables 방화벽 개요


 

  

테이블 (table)

: 각 테이블 마다 기능이 다르고 사용자의 용도에 따라 알맞은 테이블을 선택하면 된다.

filter

패킷을 필터링 할때 사용됨

 

nat

패킷의 방향이나 주소를 변경

 

mangle

패킷의 상태를 변경

 

raw

패킷이 커널에 의해 처리되기 전에 필터링

∗ 기본적으로 서버에 대한 접근제한은 filter 테이블에서 이뤄진다. ( 본 문서는 filter 테이블을 기준으로 설명한다)

 

 

 체인 (chain)

INPUT : 외부에서 서버로 들어오는 연결에 대한 필터링

OUTPUT : 서버에서 외부로 나가는 연결에 대한 필터링

FORWARD : 외부에서 들어온 연결이 다시 외부로 향하는 연결에 대한 필터링

∗ 위 체인은 filter 테이블에 포함되어 있으며 필요에 따라 별도의 체인을 생성 할 수 있다. (본 문서는 INPUT 체인 기준으로 설명한다)

  

 

그리고 몇가지 문법들로 구성되는데 자주 사용되는것들은 아래와 같다

-p [프로토콜 번호]

-s [출발지 아이피]

-d [목적지 아이피]

--sport [출발지 포트번호]

--dport [목적지 포트번호]

-j ACCEPT : 허용

-j DROP : 차단

-m [모듈이름] : iptables에서 확장모듈을 사용할 때 사용

 ∗ 위 옵션들만 알고 있으면 서버에 대한 간단한 접근 정책 설정은 무난히 진행 할 수 있다.

 

 

방화벽 실행 및 중지 스크립트

#실행

$ /etc/init.d/iptables start

 

#중지

$ /etc/init.d/iptables stop

 

#재시작

$ /etc/init.d/iptables restart

∗ 시작, 재시작은 아래 파일 경로 (/etc/sysconfig/iptables 파일 설정을 가지고 와서 정책으로 로드한다) 

  

 

iptables 정책 파일 위치

  • /etc/sysconfig/iptables

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

∗ iptables 명령으로 하나하나 정책을 추가하거나 삭제하는 방법과 위 파일을 수정한 다음 iptables 재시작하는 방법 2가지가 있다.

 

 

만약 리눅스 서버에 네임서버가 운영 중이라면 아래와 같이 설정하면 된다.

  • vi /etc/sysconfig/iptables (파일 내용 추가)

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT (라인 추가)
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

∗ 파일 수정후 iptables 재시작 스크립트 (/etc/init.d/iptables restart) 를 실행하면 적용된다.

 

 

iptables 는 정책이 순차적으로 필터링 되는데 일반적으로 위에서 아래 방향으로 패킷이 지나간다고 생각하면 된다.

위 예제에서는 제일 마지막 정책은 모든 패킷을 차단하는 정책이다.

-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited

∗ 일반적으로는 위쪽에는 방화벽 허용 정책을 아래쪽에는 차단하는 정책을 배치시킨다.

 

 

방화벽 재시작

$ /etc/init.d/iptables restart
iptables: 방화벽 규칙 적용 중: [ OK ]

 

 

방화벽 정책 파일을 잘못수정하거나 문법이 틀린경우 열번호와 함께 에러를 출력한다.

$ /etc/init.d/iptables start
iptables: 방화벽 규칙 적용 중: Bad argument `123123123123123'
Error occurred at line: 26
Try `iptables-restore -h' or 'iptables-restore --help' for more information.
                                                                                    [실패]

∗ 위와 같이 26번째 라인 에러 발생시에는 그 앞뒤 전후 라인 정책들도 같이 확인하는것이 좋다.

 

: 문법적으로 틀린 부분과 라인번호를 출력해주므로 사용하자는 에러 메세지를 참고하여 재수정하고 iptables 다시 시작한다.

 

 

방화벽 설정을 위해서는 서비스 포트 번호를 알아야 하는데 리눅스 서버에서는 아래 파일에서 확인 가능하다.

  • cat /etc/services

......

http 80/tcp www www-http # WorldWideWeb HTTP
http 80/udp www www-http # HyperText Transfer Protocol
http 80/sctp # HyperText Transfer Protocol
kerberos 88/tcp kerberos5 krb5 # Kerberos v5
kerberos 88/udp kerberos5 krb5 # Kerberos v5

......

 

 

ex) 서버의 ssh 접근을 특정 아이피 (192.168.0.1) 에서만 접근 가능하도록 한다면 아래와 같은 정책을 만들수 있다.

-A INPUT -m state --state NEW -m tcp -p tcp -s 192.168.0.1 --dport 22 -j ACCEPT

 

 

iptables 는 방화벽 정책을 적용하고 실제로 패킷이 차단하는지 다른서버나 외부에서 테스팅을 해야 한다.

실제로 문법은 틀린게 없지만 옵션 등의 문제로 인해 차단 정책을 하고 나서 외부에서 접근이 되는 경우도 종종 발생하기 때문이다.

 

 

NOTE

방화벽 설정을 잘못 하는 경우 서버와의 연결이 끊어져서 접속이 안되는 경우가 발생한다.

 

반응형

'컴퓨터 & 프로그래밍' 카테고리의 다른 글

우분투 리눅스 APACHE PHP MYSQL 설치/삭제  (0) 2017.12.29
우분투 UFW  (0) 2017.12.28
리눅스 SWAP SIZE 변경  (0) 2017.12.28
우분투 80 포트 이용  (0) 2017.12.28
blicoin-cli 명령어  (0) 2017.12.18
Posted by 얀웬리
:

     

     


반응형
# sudo swapon -s
Filename                Type        Size    Used    Priority
/swapfile                               file        1048572 0   -1
# sudo swapoff /swapfile
# sudo fallocate -l 4G /swapfile
# sudo mkswap /swapfile
Setting up swapspace version 1, size = 4194300 KiB
no label, UUID=fb0aadaf-b52f-4928-b57f-c60ef7a0bd49
# sudo swapon /swapfile
# sudo swapon -s
Filename                Type        Size    Used    Priority
/swapfile                               file        4194300 0   -1

 

반응형

'컴퓨터 & 프로그래밍' 카테고리의 다른 글

우분투 UFW  (0) 2017.12.28
우분투 IP Table  (0) 2017.12.28
우분투 80 포트 이용  (0) 2017.12.28
blicoin-cli 명령어  (0) 2017.12.18
REDIS - get keys and values at command prompt  (0) 2017.12.15
Posted by 얀웬리
:

BLOG main image
여행 맛집 소소한 일상 선물옵션 투자 재테크 잡다한 이야기 by 얀웬리

공지사항

카테고리

전체분류 보기 (75)
온라인 페이먼트 (3)
FX (Foreign Exchange) (2)
여행 & 맛집 (9)
코인 가상화폐 투자 (1)
해외 사이트 소개 (5)
음악 & 영상 (0)
선물 & 옵션 (2)
컴퓨터 & 프로그래밍 (30)
블로그 관리 (3)
소소한 일상 (3)
잡다한 이야기 (5)
함께 웃어요^^ (1)
건강 (0)
독도 - Dokdo Islands (4)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

Total :
Today : Yesterday :