'전체 보기'에 해당되는 글 186건

  1. 2015.04.09 간단한 bash쉘 스크립트 작성 요령
  2. 2015.04.09 L2, L3, L4, L7 Switch에 대한 고찰
  3. 2015.04.09 Docker in CentOS 7 minimal
  4. 2015.04.09 [20] 실전문제, DNS 라운드 로빈
  5. 2015.04.09 [19] GNS 이용한 통신 설정
  6. 2015.04.09 GPO 정책 적용 확인
  7. 2015.04.09 CentOS 를 Windows의 Active Directory에 Join 시키기
  8. 2015.04.09 Samba server - Windows에서 리눅스 공유폴더 사용
  9. 2015.04.09 [17] 원격 server 로그 보기, DHCP 릴레이 실전 문제
  10. 2015.04.09 CentOS 6, 7 Minimal 에 Desktop(GUI 환경) 설치

간단한 bash쉘 스크립트 작성 요령

|


- 2015.02.04


출처 : http://koreahojin.egloos.com/1249277




#!/bin/bash로 시작하기.

- 스크립트 파일은 첫라인에서 #!/bin/bash 로 시작

- vi 편접기에서 # 기호는 주석을 의미하지만 첫라인에서는 주석 표시가 아님

- 첫라인을 안써 줘도 스크립트 파일이 실행되는 경우가 있는데 현재 사용자의 기본적으로 배쉬 쉘을 사용한다면  

  가능하다.

- #!/bin/bash 대신에 #!/bin/sh 로 써도 된다. sh는 bash 의 심볼릭 링크 이기 ㅤㄸㅒㅤ문이다.


스크립트 파일의 실행방법.

- sh 명령어 사용 ( # sh 파일 이름 )

- 퍼미션 변경 후 실행 ( 실행 권한을 부여 )

-------------참고--------------

.bash_profile 파일에 PATH를 적어 주면 현재 있는 디렉토리의 위치와 상과없이 파일을 실행 시킬수 있음

----------------------------------------



[echo 기본 출력]


- echo 는 화면에 원하는 문자열을 출력시킨다.

- 출력 하고자 하는 문자열 공백이 있다면 전체를 "   " 묶어 주면 된다.

- 예 : echo " bye bye "


변수를 만들고 사용하기

- 형식 :  변수명=변수값

- 사용예 : korea="GOOD"

- 적용예 : echo $korea

- 주의점 : 변수명 다음에 오는 '=' 의 좌우로 공백이 있으면 안된다.

- 변수를 지정할 때는 $를 사용하지 않지만, 변수를 사용할 때는 $ 기호를 변수 앞에 붙여서 사용합니다.

-  C언어 에서 전역변수라고 불리는 것을 쉘 스크립트에서는 환경 변수라고 한다. 환경변수는 export 명령을 사용하여 만든다. 사용자가 로그인을 할때 읽어 들이는 파일중에 /etc/profile 파일이 있다. 이곳을 보면 export로 환경 변수를 만드는 것을 찾을 수 있다.


- example

[root@localhost ~]# cat > example

#!/bin/bash

color=red

korea="good"

echo $color

echo "$color is red"

echo $korea

You have new mail in /var/spool/mail/root

[root@localhost ~]# sh example

red

red is red

good




[read의 사용]


- read 문은 사용자의 표준입력을 받아들여 변수로 저장하는 역할을 한다. 먼저 아래의 예제를 실행해보자

[root@localhost ~]# cat > readsh

#!/bin/bash

echo -n "age: "

read x

echo "Your are $x years old"

[root@localhost ~]# sh readsh

age: 22

Your are 22 years old


- 스크립트 파일을 실행할 때. read문을 만나면 화면상에 커서가 깜박이면 대기상태로 있다.

입력한 값을 read 다음에 오는 변수명(x)에 대입한다.

echo -n 에서 옵션 -n은  줄바꿈을 하지 않도록.




[argument (인자값)]


- 스크립트 파일을 실행하기전에 특수한 값을 동시에 입력하여 결과를 얻을수 있게 할수있다.

- C언어에서 main() 함수의 전달값으로 생각하면된다.

- 예를 들어 # /etc/rc.d/init.d/network start 여기서 netwrok는 스크립트 파일이다. 이파일을 실행하면서 뒷부분에 restart라는 argumnet를 주었다.

- 아직도 먼 말인지 모르겠다면 예제를 만들어 실행해 보자.

[root@localhost ~]# cat > argumentsh

#!/bin/bash


echo "argumnet1 : $1"

echo "argument2 : $2"

echo "argument3 : $3"

echo "Total argument number : $#"

echo "File name : $0"

[root@localhost ~]# sh argumentsh 1arg 2arg 3arg

argumnet1 : 1arg

argument2 : 2arg

argument3 : 3arg

Total argument number : 3

File name : argumentsh

[root@localhost ~]#     


$1 은 첫번째 argument를 나타내며 $2는 두번째, $3은 세번째 argument를 나타낸다.

argument를 입력하지 않을경우, 오류가 나는 것이 아니라 값이 대입되지 않는다.

$#은 전체 argument의 개수를 나타내며 $0은 스크립트 파일의 이름을 나타낸다.




* 현재 디렉터리의 모든 파일 압축


출처 : https://kldp.org/node/69623

현재 디렉터리의 모든 파일을 지정할떄는 보통 * 와일드카드 문자로 가능하지만 히든파일까지는 선택이 안된다.

tar cf test.tar . 명령어로 가능하지만 ls 와 묶어서 사용하는 방법도 있다.


ls -1A | tar cvjf bak.tbz2 -X exclude -T -


1은 한줄에 파일 하나 출력, A는 a와 같지만 . , .. 를 제외.

-T는 묶을 목록을 파일에서 받기 - 는 표준 입력.




And


L2, L3, L4, L7 Switch에 대한 고찰

|


- 2015.02.03


먼저 이 글은 내 개인적인 생각일 뿐이며 정답이 아닐 수 있다는 것을 밝힌다.


출처 : http://xinet.kr/tc/47

       http://soul0.tistory.com/140

       http://doodle.com.ne.kr/L4Switching.htm

       http://koreahojin.egloos.com/2341317




CCNA 시험을 위해 Network 책을 보던 중 L4 스위치는 왜 필요할까에 대한 궁금증이 들었다.

왜냐하면 나는 여태껏 L2, L3 스위치 및 Router에 대한 것만 배웠지, L4 스위치는 수업시간에 전혀 들어보지 못했기 때문이다.

하지만 분명 현업에선 L4 스위치를 많이 쓴다고 들었다. 내가 회사 다닐 때에도 분명 존재 했었고 말이다.

즉, L4 스위치가 하는 역할이 분명 있기 때문일 것이다. (너무 당연한가..ㅎㅎ)


여러 글을 읽어 본 나의 결론은 '속도'가 키워드인것 같다. (확장하면 로드밸런싱일 것이다.)

L3 스위치가 생겨난 이유도 보면 기존 라우터는 패킷을 소프트웨어적으로 분석하여 포워딩하는 일을 하였지만,

기술이 발전함에 따라 하드웨어적으로 IP를 분석하여 경로를 설정하고 포워딩할 수 있게 되었다고 한다.

즉 다양한 기능 보단 퍼포먼스에 중점을 둔 녀석이 L3 스위치 인것 같다.


L4 스위치 역시 늘어나는 트래픽을 감당하기 위해 로드밸런싱을 하고자 하는데

로드밸런싱 시 TCP/UDP Header를 확인 후 이것을 우선시 해서 로드밸런싱을 한다.

즉 4계층의 헤더를 분석하여 스위칭 하기 때문에 L4 스위치인 것이다.


헌데 L7 스위치는 속도보다는 보안에 중점을 둔 것 같다.

L7 스위치는 7계층의 패킷 중 웜이나 E-mail 바이러스와 같이 특정한 패턴을 같고 있는 패킷을 막아 네트워크에 불필요한 트래픽을 제거한다.

최근에는 L7 스위치 업체와 바이러스 차단업체들이 서로 제휴를 통해 새로운 바이러스 패턴을 빠르게 업데이트해 네트워크를 보호한다.

또한 Dos/DDos와 같은 부분도 해결하여 트래픽의 유입수준을 일정정도로 제한, 서버의 정상적인 서비스를 제공하게끔 보고한다.



따라서, 실무자에게 필요한 것은 제공하는 서비스에 따라, 또한 사내 네트워크 망 구성에 따라 적절한 장비를 선택하여 셋팅하는 것인 듯하다.




'Network' 카테고리의 다른 글

로드밸런서, 오픈 소스 로드 밸런서 HAProxy == 메모  (0) 2015.05.07
And


Docker in CentOS 7 minimal

|


출처 : http://www.server-world.info/en/note?os=CentOS_7&p=docker&f=1





0. 사전 설치


CentOS 7 minimal 설치 및 준비

 

필요 PKG 설치 및 업데이트

# yum install -y ntp wget; yum update -y   

# systemctl enable ntpd; systemctl start ntpd

   


   

1. 방화벽 해제 및 SELinux 해제

# systemctl stop firewalld

# systemctl disable firewalld


# vi /etc/sysconfig/selinux

      7 SELINUX=disabled



SELinux 는 재시작 해야 풀린다.

# reboot





2. Docker 설치


# yum -y install docker

# systemctl enable docker

# systemctl start docker



host로 사용할 centos 공식 이미지 Container 생성, 환영 문구 입력

# docker run centos /bin/echo "Welcome to the Docker World" 





3. Docker 실행


i와 t 옵션을 주어 centos 이미지를 bash 쉘로 docker 실행

(옵션 주지 않으면 들어가지지 않는다. 옵션에 대한 연군 필요)

# docker run -i -t centos /bin/bash



Docker system 의 정보 확인


[root@0cf52e8ba14a /]# uname -a

Linux 0cf52e8ba14a 3.10.0-123.el7.x86_64 #1 SMP Mon Jun 30 12:09:22 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux



세션 종료


[root@0cf52e8ba14a /]# exit

exit

#





4. Docker 세션 관리


세션 종료 없이 로그아웃 하기 : Ctrl+p, Ctrl+q 차례대로 입력


[root@d4add7d10c96 /]# [root@localhost ~]# 



세션 종료 없이 종료한, 즉 docker 의 실행 중인 프로세스 확인


# docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

d4add7d10c96        centos:7               "/bin/bash"          4 minutes ago       Up 4 minutes                                  thirsty_bartik



다시 해당 세션으로 붙기 (Container ID 필요)

# docker attach d4add7d10c96



세션 연결되어 있는, 실행 되어 있는 컨테이너 shutdown

# docker kill d4add7d10c96

# docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES





5. 이미지 관리


존재하는 이미지 보기

# docker images



centos 이미지에게 직접 명령어 실행

# docker run centos /bin/bash -c "yum -y update; yum -y install httpd"



내가 최근에 쳤던 명령어가 작동 했다는 것 확인

# docker ps -a | head -2

CONTAINER ID        IMAGE               COMMAND                CREATED                  STATUS                      PORTS               NAMES

b0eef33afa44         centos:7            "/bin/bash -c 'yum -    2 minutes ago       Exited (0) 56 seconds ago                       thirsty_albattani



지금 상태의 이미지를 새로운 이미지로 저장 - 스냅샷

# docker commit b0eef33afa44 my_image/centos_httpd

48a0f44b93a5a85cee79add36686c6e590463092cb96bf80a5dbc1c156f3d278



새롭게 추가된 이미지가 보인다.

# docker images

REPOSITORY                   TAG                 IMAGE ID                   CREATED              VIRTUAL SIZE

my_image/centos_httpd    latest               48a0f44b93a5        About a minute ago        478.2 MB

centos                                  7                   8efe422e6104            3 weeks ago                  224 MB

centos                             centos7             8efe422e6104            3 weeks ago                   224 MB

centos                                latest              8efe422e6104            3 weeks ago                    224 MB



내가 만든 이미지에 /usr/bin/which httpd 명령어를 실행 한 결과

# docker run my_image/centos_httpd /usr/bin/which httpd

/usr/sbin/httpd





[실습]


내 8081번 포트를 이미지의 80번 포트와 매핑시키면서 이미지에 접근


# docker run -it -p 8081:80 my_image/centos_httpd /bin/bash

[root@d4add7d10c96 /]# /usr/sbin/httpd &

[root@d4add7d10c96 /]# echo "httpd on Docker Container" > /var/www/html/index.html



세션 종료 없이 로그아웃(Ctrl+p, Ctrl+q 차례대로 입력)해서 실행되고 있는 상황 확인

[root@d4add7d10c96 /]# [root@localhost ~]#


# docker ps

CONTAINER ID                 IMAGE                          COMMAND              CREATED             STATUS                 PORTS                     NAMES

bf5e6b508e53        my_image/centos_httpd:latest   "/bin/bash"         10 minutes ago      Up 10 minutes       0.0.0.0:8081->80/tcp   ecstatic_mcclintock



이제 같은 네트워크단에 있는 pc의 웹 브라우저에서 docker server ip:8081 로 들어가면 제대로 사용되고 있는 것을 알 수 있다.





[etc]


1) Ubuntu 14.04 install & Setting


# docker run -t -i ubuntu:14.04 /bin/bash


root@3eaaa23a2e66:/# ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime

root@3eaaa23a2e66:/# date

Sat Jan 31 00:43:44 KST 2015

root@3eaaa23a2e66:/# apt-get install ntp -y

root@3eaaa23a2e66:/# service ntp start

 * Starting NTP server ntpd  

root@3eaaa23a2e66:/# update-rc.d ntp defaults


And


[20] 실전문제, DNS 라운드 로빈

|


- 2015.01.30




[실전 문제 1]







Server1

ip : 10.10.10.10 / 24

g/w : 10.10.10.254

dns : 127.0.0.1


DNS 역할 추가 : 20.20.20.20 <-> www.samadal.com



Server2

ip : 20.20.20.20 / 24

g/w : 20.20.20.254

dns : 10.10.10.10


C:\itbank 폴더 만들어 공유 설정



Router1 - 시리얼 모듈 1개 추가

en

conf t

int f 0/0      !! Server1 과 연결됨

 ip add 10.10.10.254 255.255.255.0

 dup auto

 no shut

 exit

int f 0/1      !! Server2 와 연결됨

 ip add 20.20.20.254 255.255.255.0

 dup auto

 no shut

 exit

int s 0/0      !! Router2 와 연결됨

 ip add 200.200.200.1 255.255.255.0

 no shut

 exit

router eigrp 1

 no auto

 network 10.10.10.0

 network 20.20.20.0

 network 200.200.200.0

end


Router2 - 시리얼 모듈 1개 추가

en

conf t

int f 0/0      !! Server3과 연결됨

 ip add 100.100.100.254 255.255.255.0

 dup auto

 no shut

 exit

int s 0/0      !! Router1 와 연결됨

 ip add 200.200.200.2 255.255.255.0

 no shut

 exit

router eigrp 1

 no auto

 network 100.100.100.0

 network 200.200.200.0

end





DNS 라운드 로빈


server1 과 server2 에 같은 웹 페이지로 서비스 하고 있고, server3에 DNS를 구축하여 라운드로빈을 적용하면

client는 server1 과 server2 에 번갈아 가면서 접속한다. 즉 A 레코드를 1개 추가하는 것 만으로 로드밸런싱 구축 가능.

그러나 DNS 서버는 server1 과 server2의 장애 및 ip 주소 변경을 체크할 수 없다는 단점이 있다.

(But, 실제로는 네트워크 장비단에서 server1 과 server2 로 접속을 돌리는 로드밸런싱을 주로 사용한다. - 고가)



[사용 방법]


DNS 관리자 에서 server1 속성 - 고급 - 라운드 로빈 사용 이 기본 체크 되어있다.



[실습]


역할 추가 : IIS 웹서비스 - ASP.NET - 설치



같은 도메인 주소에 대해 각기 다른 server의 ip를 중복 입력한 뒤 라운드 로빈 설정



And


[19] GNS 이용한 통신 설정

|


- 2015.01.29




[GNS 이용한 통신 실습 연습]


1) GNS 설치 및 셋팅


2) VMware 의 2개 서버에 각각 다른 2개의 NIC 연결


3) GNS 에서 클라우드 2개를 꺼내 각각 NIC에 연결


4) GNS 내 라우터를 꺼내 클라우드 - 라우터 - 클라우드 연결


5) GNS의 라우터는 CPU를 잡아먹는다. 라우터 오른클릭 - IDLE PC values 값 조정하면서 CPU 사용량 조정


6) VM1은 라우터의 f0/0으로, VM2는 f0/1 로 설정


7) 라우터 오른 클릭하여 콘솔 실행한 뒤 아래와 같은 명령어 입력

en

conf t

int f 0/0

 ip add 100.100.100.254 255.255.255.0

 no shut

int f 0/1

 ip add 200.200.200.254 255.255.255.0

 no shut

end





[GNS를 이용한 통신 실습]


server1 - VM1 - (f0/0)라우터1(f0/1) - (f0/0)라우터2(f0/1) - VM2 - server2

             10번대                          20번대                            30번대

 

1) server1 설정

ip : 10.10.10.10

netmask : 255.255.255.0

gateway : 10.10.10.254


2) 라우터1 설정

en

conf t

int f 0/0

 ip add 10.10.10.254 255.255.255.0

 no shut

 exit

int f 0/1

 ip add 20.20.20.1 255.255.255.0

 no shut

 exit

ip route 30.30.30.0 255.255.255.0 f0/1

end


3) 라우터2 설정

en

conf t

int f 0/0

 ip add 20.20.20.2 255.255.255.0

 no shut

 exit

int f 0/1

 ip add 30.30.30.254 255.255.255.0

 no shut

 exit

ip route 10.10.10.0 255.255.255.0 f0/0

end


4) server2 설정

ip : 30.30.30.30

netmask : 255.255.255.0

gateway : 30.30.30.254




And


GPO 정책 적용 확인

|


- 2015.01.28



[AD의 GPO(그룹정책)이 Client에 적용 되었는지 확인]


* Client측 PC에서도 확인 가능


시작 - mmc - 파일 - 스냅인 추가 제거 - 정책 결과 집합 추가 - 확인

동작 - RSoP 데이터 만들기 - 로깅 모드 - 이 컴퓨터 - 원하는 사용자 선택 - 확인




And


CentOS 를 Windows의 Active Directory에 Join 시키기

|


출처 : http://social.technet.microsoft.com/wiki/contents/articles/25944.how-to-join-unix-linux-to-active-directory.aspx

          http://in-transit.me/data-center/ubuntu/active-directory-login/

          http://arstechnica.com/civis/viewtopic.php?f=16&t=1187287

          http://www.kiloroot.com/add-ubuntu-14-04-lts-server-to-a-windows-active-directory-domain-fullest-integration/

          http://www.golinuxhub.com/2014/05/how-to-configure-linux-client-to-join.html

          http://serverfault.com/questions/630746/pbis-open-ad-authentication-stops-working-on-ubuntu-with-errors-user-accout-ha




0. 사전 설치


CentOS 7 minimal 설치 및 준비


네트워크 설정. 특히 DNS 를 AD server로 두기

# nmcli c modify eth0 ipv4.dns 10.0.0.100


특별히 원하는 PC의 이름이 있다면 아래 파일을 수정하여 hostname을 변경하자.

# vi /etc/hostname

     cli.kanziw.com



필요 PKG 설치 및 업데이트

# yum install -y ntp wget; yum update -y

# systemctl enable ntpd; systemctl start ntpd





1. 방화벽 해제 및 SELinux 해제


# systemctl stop firewalld

# systemctl disable firewalld


# vi /etc/sysconfig/selinux

      7 SELINUX=disabled


SELinux 는 재시작 해야 풀린다.

# reboot





2. 프로그램 다운로드


http://download1.beyondtrust.com/Technical-Support/Downloads/PowerBroker-Identity-Services-Open-Edition/?Pass=True


위 페이지에 방문하여 자신의 OS 및 커널에 맞는 프로그램 다운로드 주소 복사하여 리눅스에 다운로드

# wget http://download.beyondtrust.com/PBISO/8.2.1/linux.rpm.x64/pbis-open-8.2.1.2979.linux.x86_64.rpm.sh


다운로드 한 파일에 실행 권한 부여

# chmod +x pbis-open-8.2.1.2979.linux.x86_64.rpm.sh





3. 설치


실행 권한 부연받은 스크립트 실행


# ./pbis-open-8.2.1.2979.linux.x86_64.rpm.sh


Creating directory pbis-open-8.2.1.2979.linux.x86_64.rpm

Verifying archive integrity... All good.

Uncompressing pbis-open-8.2.1.2979.linux.x86_64.rpm............

Would you like to install package for legacy links? (i.e.  /opt/likewise/bin/lw-find-user-by-name -> /opt/pbis/bin/find-user-by-name) (yes/no) yes

Would you like to install now? (yes/no) yes

Installing packages and old packages will be removed


                   .  .  .                 


Installing Packages was successful


New libraries and configurations have been installed for PAM and NSS.

Please reboot so that all processes pick up the new versions.


As root, run domainjoin-gui or domainjoin-cli to join a domain so you can log on

with Active Directory credentials. Example:

domainjoin-cli join MYDOMAIN.COM MyJoinAccount





4. Join


AD 의 도메인 및 Join 시 사용할 계정 명을 옵션으로 줘서 Join


# domainjoin-cli join kanziw.com administrator

Joining to AD Domain:   kanziw.com

With Computer DNS Name: cli.kanziw.com


administrator@KANZIW.COM's password:

Warning: System restart required

Your system has been configured to authenticate to Active Directory for the

first time.  It is recommended that you restart your system to ensure that all

applications recognize the new settings.


SUCCESS



계정들이 사용할 기본 쉘을 /bin/bash 로 변경

# /opt/pbis/bin/config LoginShellTemplate /bin/bash


Active Directory의 계정들이 CentOS 의 기본 도메인이 되도록 설정

# /opt/pbis/bin/config AssumeDefaultDomain true


Active Directory의 계정들이 sudo 명령어 사용할 수 있도록 하는 설정

그룹에 제한을 두고 싶으면 AD에서 따로 그룹을 만들어 진한 부분을 해당 그룹 명으로 바꿔주면 된다.

# echo "%domain^admins ALL=(ALL) ALL" >> /etc/sudoers




재부팅 하면 끗. 이제 AD의 계정으로 로그인이 가능하다..!

# reboot



login as: administrator

Using keyboard-interactive authentication.

Password:

[administrator@cent7 ~]$



이제 리눅스의 모든 로컬 계정을 삭제한 뒤 AD 계정만 살리고

각 계정별로 로그인 가능/불가 등의 정책과, 리눅스 상에서 계정별 명령어의 제약을 두어 사용하게 하면 될듯 싶다.



[Tip]


1) domain^admins : Active Directory 의 관리자 그룹

2) domain^users : Acive Directory 의 일반 유저 그룹

3) AD에서 추가하는 그룹은 Linux에도 반영된다.

4) Linux의 Local 계정과 AD의 계정을 다시 구분지어 표시하고 싶으면 아래 명령어를 사용하면 된다.

# /opt/pbis/bin/config UserDomainPrefix domain_name

이렇게 되면 AD의 계정 혹은 그룹을 표시할 때 domain_name\user_name 이라 해야 한다.

5) AD 의 계정 정보 확인

# /opt/pbis/bin/find-user-by-name domain_name\user_name

6) 고급 사용자용 설정 명령어 확인

# /opt/pbis/bin/config --dump

7) AD 연동 - LSA Server 관련 정보 확인

# /opt/pbis/bin/get-status

8) 기타 정보 확인

# /opt/pbis/bin/find-objects --help

ex) # /opt/pbis/bin/find-objects --user USERNAME

# vi /etc/pbis/pbis-krb5-ad.conf





[부족한 점]


1) AD 와의 연결이 끊어진 상태에서 로그인 불가 - Local계정 모두 삭제 및 Root로의 SSH 연결 막았다면 원격지에서 리눅스 이용 불가.

2) 계정 로그인 보안이 어떤 방식을 쓰는지 잘 모른다. Kerberos 를 사용하려나..?

    로그인 시 Using keyboard-interactive authentication. 라고 뜨는데 이 것은 어떤 의미를 담고 있을 지도 알아봐야 한다.

3) AD의 강력한 기능인 GPO는 거의 무용지물. 서버 내에서 GPO로 리눅스는 관리가 되지 않는다.


물론 이러한 개선점들은 유료 프로그램에서 지원해준다고 하긴 한다..ㅎㅎㅎㅎ




And


Samba server - Windows에서 리눅스 공유폴더 사용

|


출처 : http://www.server-world.info/en/note?os=CentOS_7&p=samba&f=1




0. 사전 설치


CentOS 7 minimal 설치


네트워크 설정


필요 PKG 설치 및 업데이트

# yum install -y ntp samba samba-client; yum update -y

# systemctl enable ntpd; systemctl start ntpd





1. 누구나 접근 가능한 공유폴더 생성 및 설정


# mkdir /home/share 

# chmod 777 /home/share 

# vi /etc/samba/smb.conf

     66 unix charset = UTF-8                          // 이 부분 추가

     89         workgroup = WORKGROUP         // Windows Default

     95         hosts allow = 127. 192.168.1.

     97         max protocol = SMB2

    125         map to guest = Bad User           // 추가


2. 공유 폴더 속성 정의

맨 아랫줄에 아래의 옵션을 넣어 작성한다.


[Share]                               // 공유 되어질 이름

   path = /home/share        // 공유 폴더 경로

   writable = yes                  // 쓰기 가능

   guest ok = yes                // guest OK

   guest only = yes             // guest only

   create mode = 0777        // 모든 권한 가능

   directory mode = 0777    // 모든 권한 가능# fully accessed

   share modes = yes         // warn if some people access to a file (?)



# systemctl start smb nmb

# systemctl enable smb nmb 





3. 방화벽 해제 및 SELinux 해제


# systemctl stop firewalld

# systemctl disable firewalld


# vi /etc/sysconfig/selinux

      7 SELINUX=disabled


SELinux 는 재시작 해야 풀린다.

# reboot





4. 공유폴더 접근


이제 같은 대역대에 있는 컴퓨터에서는 누구나 공유 폴더로 접근이 가능하다.


\\server_ip[내가 입력한 이름] 으로 접속하면 된다.

ex) \\192.168.1.21\share





5. 로그인이 필요한 공유폴더 설정


먼저 특정 그룹만 사용 가능토록 하기 위한 보안 그룹 생성

# groupadd security


공유 할 폴더 생성 및 해당 그룹의 기본디렉터리 설정, 권한 설정

# mkdir /home/security 

# chgrp security /home/security 

# chmod 770 /home/security 



smb.conf 파일 설정

# vi /etc/samba/smb.conf

     66 unix charset = UTF-8                  // 추가

     67 dos charset = CP932                   // 추가

     90 workgroup = WORKGROUP          // Windows Default

     96 hosts allow = 127. 192.168.1.

     98 max protocol = SMB2


맨 아랫줄에 추가 설정

[Security]                                   // 보여질 디렉터리 이름

   path = /home/security          // 경로

   writable = yes

   create mode = 0770              // 권한

   directory mode = 0770          // 권한

   share modes = yes

   guest ok = no                         // guest 접근 금지

   valid users = @security        // 접근 가능한 그룹 명


데몬 재시작 및 자동 실행 설정

# systemctl restart smb nmb

# systemctl enable smb nmb 


공유폴더 사용 가능 유저 생성 및 그룹 가입

# useradd -G security cent

# smbpasswd -a cent

New SMB password:                       // set password

Retype new SMB password:           // confirm

Added user cent.


이제 지정한 계정 및 패스워드로 해당 공유 폴더 접근하면 된다.





6. Active Directory 에 Join 하여 사용하는 경우


$ sudo chown .domain^users /home/security/


$ sudo vi /etc/samba/smb.conf

[Security]

   path = /home/security

   writable = yes

   create mode = 0770

   directory mode = 0770

   share modes = yes

   guest ok = no

   valid users = @domain^users


(권한을 적절히 수정한 다음 @domain^users 에 계정 이름을 넣으면 그 계정만 사용할 수 있는 공유폴더가 생성된다.)



Active Directory 에 계정이 있다 하더라도 samba server를 이용하려면 smbpaasswd 로 계정을 생성해줘야한다.

Active Directory 계정과 같은 계정으로 생성을 하게 되면 리눅스 내의 자기 홈 디렉터리와 공유 폴더에 접근 가능하다.

(이 때 생성하는 비밀번호는 Active Directory의 계정과 같을 필요는 없다.)


$ sudo smbpasswd -a username

$ sudo systemctl restart smb nmb




And


[17] 원격 server 로그 보기, DHCP 릴레이 실전 문제

|


- 2015.01.27



[원격 컴퓨터 로그 보기 in AD]


원격지 PC 에서 방화벽 설정을 해줘야 한다.

시작 - 고급 보안이 포함된 Windows 방화벽 - 인바운드 - 원격 관리(RPC) 규칙사용


관리자 PC

시작 - mmc - 파일 - 스냅인 추가 - 이벤트 뷰어 추가 - 다른 컴퓨터(SERVER2)




[DHCP 릴레이 실전 문제]





[Tip]


1) 라우팅 및 원격 액세스 - ... - DHCP 릴레이 에이전트에 추가할 인터페이스는 실제 DHCP가 작동하는 인터페이스이다.

2) Client 측에서 ipconfig /all 을 했을때 DHCP 서버는 비활성화된 서버가 나오는데,

   그 이유는 릴레이 시켜 간접적으로 ip 할당을 하긴 하지만 릴레이 해서 받아온 ip를 주는 서버는 동일하기 때문이다.

3) 새로 추가한 SW 마다(server의 NIC) IP 설정 필요 - 해당 ip 를 해당 서브넷의 게이트웨이로 꼭 줘야 한다.

4) Backup 할 DHCP server 에도 원래 서버와 동일한 ip 대역대 설정 - 로드밸런싱 목적이 아니기 때문




And


CentOS 6, 7 Minimal 에 Desktop(GUI 환경) 설치

|


출처 : https://www.centos.org/forums/viewtopic.php?f=47&t=47088

          http://blog.nowherelan.com/2013/12/24/install-a-desktop-environment-on-centos-minimal-install/



나의 경우는 CentOS 7 Minimal virsion 이다.

(아래에 CentOS 6 방법도 적었다.)


Minimal server 를 운영 중, GUI 환경의 같은 네트워크 상에 있는 브라우저에서 GUI 셋팅을 진행할 수도 있지만

가끔은 server 자체에서 GUI 환경으로 설정을 진행해야 할 때가 있다.




1. 패키지 설치


# yum groupinstall "X Window System"

# yum install gnome-classic-session gnome-terminal nautilus-open-terminal control-center liberation-mono-fonts



평소에는 CUI 환경으로 사용하다가 필요 시 그래픽환경으로 접속하려면 CUI 환경에서 아래 명령어를 치면 GUI 로 접속된다.

# init 5


이런 경우 GUI 로의 부팅 설정은 따로 필요 없다.





2. GUI 로의 부팅 설정


CentOS 7 부터는 init 을 이용한 부팅이 아니다. 따라서 부팅 설정 방법도 바뀌었다. 아래 파일을 열어보면 방법이 나와있다.

# vi /etc/inittab


아래 디렉터리 안에 있는, 내가 원하는 부팅 방법을 심볼릭 링크로 만들어주면 된다.

# ll /lib/systemd/system/ 


# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target

(# ln -sf /lib/systemd/system/<target name>.target /etc/systemd/system/default.target   형식)





3. 재부팅


# reboot






[Tip] In Cent OS 6



1) 패키지 설치

# yum groupinstall -y "Desktop" "Desktop Platform" "X Window System" "Fonts"



2) GUI 실행

$ startx

or

$ /sbin/telinit 5



3) GUI 로의 부팅 설정

# vi /etc/inittab

     id:3:initdefault:    =>    id:5:initdefault:




And


prev | 1 | ··· | 5 | 6 | 7 | 8 | 9 | 10 | 11 | ··· | 19 | next