728x90

CentOS 6.X 방화벽 설정


방화벽은 서버와 클라이언트(User)간에 통신하는 포트를 제한하는 관문이다.

서비스마다 사용하는 포트가 다르다. 해당 포트를 막으면 통신을 할 수가 없다. 꼭 필요한 포트만 열어서 보안을 철저하게 해야 한다.

아래 설정은 CentOS 6.5 에서 설정해본 사항이다. 아직도 모르는게 많아서 구글링을 하면서 배우는 중이다.


// 열린 포트 확인
service iptables status

// iptables 설치 확인
rpm -qa | grep iptables


INPUT - 호스트 컴퓨터를 향한 모든 패킷

OUTPUT -  호스트 컴퓨터에서 발생하는 모든 패킷
FORWARD - 호스트 컴퓨터가 목적지가 아닌 모든 패킷, 즉 라우터로 사용되는 호스트 컴퓨터를 통과하는 패킷


포트 80,3306 추가

80 포트는 인터넷 브라우저에서 접속하는 포트이며,

3306 포트는 MySQL 접속 포트이다. 보안을 위해서 다른 포트로 변경하여 사용할 수도 있다.


//방화벽 설정

# vi /etc/sysconfig/iptables


FTP 통신을 위한 포트를 추가하고 싶다면 20번, 21번 두개의 포트를 추가해야 한다.:

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 20 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT


네임서버

-A RH-Firewall-1-INPUT -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT


POP3

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 110 -j ACCEPT


IMAP

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 143 -j ACCEPT


Secure IMAP

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 993 -j ACCEPT


웹서버에 SSL 인증서가 설치되어 https 주소로 서비스하는 경우 TCP 443 추가
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT


# service iptables restart

또는

# /etc/init.d/iptables restart

방화벽 설정 내용을 변경했다면 restart 를 해준다.




방화벽 변경한 정보를 저장하려면 반드시 수정한 방화벽 세팅을 restart 하고 나서

# service iptables save

해줘야 된다.


# service iptables stop

또는

# /etc/init.d/iptables stop

방화벽 끄기


방화벽 설정 파일은 파일접속권한이 0600 이다.

설정파일을 PC에서 수정해서 SFTP 등으로 올렸다면 모드가 어떤 상태인지 확인을 해야 한다.




이것저것 고민하기  싫다면 아래와 같이 해주면 된다.

1. CentOS 6.6을 설치하면 기본적으로 22번 포트만 open 되어 있다.

2. vi /etc/sysconfig/iptables

기본설정정보를 모두 지우고 아래 내용을 복사하여 붙여넣기하고 저장한다.
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:INPUT - [0:0]
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#-A INPUT -p tcp -m state --state NEW -m tcp --dport 20 -j ACCEPT
#-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP
-A INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT


3. # /etc/init.d/iptables restart (방화벽 재시작)

4. # service iptables save (변경한 정보 저장)

5. 이걸로 방화벽 세팅 설정 끝.

    22번 포트, Web 포트 80, https 443 포트 이것만 오픈하고 해킹공격 관련된 코드를 추가한 것이라고 보면 된다.


블로그 이미지

Link2Me

,
728x90

리눅스 기본 명령어


리눅스는 계층적인 디렉토리 구조로 파일을 구성한다.

파일의 최상위 디렉토리를 root 디렉토리라고 한다.

현재 작업 디렉토리에 있는 파일과 하위 디렉토리를 표시할 때는 ls 명령어를 사용한다.


디렉토리 구조
/           : 루트 디렉토리
/bin        : 시스템 부팅과 실행에필요한 바이너리(프로그램)들을 포함하고 있다
/boot       : 부트 관련파일
/etc        : 시스템 전반의 환경설정파일이 들어있다
/home       : 사용자 로그인 디렉토리. 각 사용자마다 /home 디렉토리를 갖게 된다.
/proc       : 메모리 내용을 보여주는 가상 디렉토리
/sbin       : 슈퍼 유저가 실행하는 명령
/usr        : 일반 사용자가 사용하는 모든 프로그램과 지원 파일들이 모두 들어있다.
/usr/bin    : 사용중인 리눅스 배포판이 설치된 실행파일
/usr/local  : 관리자 설치파일
/usr/sbin   : 시스템 관리 프로그램이 들어있다
/var/log    : 시스템의 활동을 기록하는 로그파일들이 들어있다.

/var        : 내용이 변경되는 작업파일
/tmp        : 임시파일
             -> 만드는건 누구든지 가능하지만 지울때는 만든 사람만 지울수 있다(stiky bit 설정되어 있다)


경로명
절대경로명 : 경로명의 시작이 / 로 시작되는 경로명
상대경로명 : 경로명의 시작이 / 로 시작되지 "않은" 경로명

    . : 현재 디렉토리

   .. : 상위 디렉토리



명령어 -옵션 명령인자

※ 명렁어만으로 실행되는 경우도 있고, 명령어 -옵션 명령인자 를 다 넣어야 실행되는 경우도 있다.


# pwd                : 작업을 할 때는 항상 현재 디렉토리가 어디인지 확인을 해줘야 한다.
                          이동한 경우에는 항상 pwd 로 현재 작업 디렉토리를 확인해야 한다.
                          잘못하면 엉뚱한 데이터를 몽땅 날릴 수도 있다.


# cd                  : 작업 디렉토리를 홈 디렉토리로 변경한다.

# cd -                : 작업 디렉토리를 이전 작업 디렉토리로 변경

# cd ~username  : username 의 홈 디렉토리로 작업 디렉토리로 변경



주로 많이 사용하는 ls 옵션

ls : 디렉토리 내용 나열하기

옵션 : 명령어 행동에 영향을 끼치는 요소(앞에 - 붙여줌, 결합가능)

 -a    : 모든 파일보기. 숨김파일까지도 표시

 -F    : 디렉토리명이면 끝에 / 를 표시해 줌

 -l     : 좀 더 자세한 정보를 출력

 -d    : l 과 같이 사용되며,

 -r     : 역순으로 표시

 -R    : 전부다 표시


# ls -l

# ls -aF

# ll -F


# cat /etc/passwd | grep ftp    // /passwd 파일을 전부 보여주고 그 중에서 ftp 라는 글자만 찾아서 보여줘라

# grep ftp /etc/passwd    // passwd 파일에서 ftp 라는 단어를 검색해서 보여줘라.








블로그 이미지

Link2Me

,
728x90

MySQL 사용자 계정 패스워드 변경



리눅스에서 MySQL 사용자의 패스워드를 변경하고자 할 경우


# mysql -u root -p    // root 계정으로 접속한다.

# mysql -u userid -p    // userid 계정으로 접속할 경우

mysql > use mysql;    // mysql DB 로 접속 변경
mysql > update user set password=password('패스워드') where user='userid';



사용자 계정 패스워드를 변경했으면

mysql > flush privileges;

해 주어야 권한 변경사항이 적용된다.




블로그 이미지

Link2Me

,