'Study'에 해당되는 글 93건

  1. 2015.04.06 [37] mysql(2), mysql password 분실 시 대처 방법, myphpadmin(1)
  2. 2015.04.06 [36] Apache_VirtualHosts, user directory, mysql(1)
  3. 2015.04.06 [35] 종합 중간점검, Apache_Alias
  4. 2015.04.06 [34] Apache
  5. 2015.04.06 [33] DNS 실습, static ip 설정, interface 이름 변경
  6. 2015.04.06 [32] DNS 실습 with VNC
  7. 2015.04.06 [31] bind, DNS실습
  8. 2015.04.06 [30] nfs_autofs 실습, dns
  9. 2015.04.04 [29] autofs(2), su - 명령어 제한
  10. 2015.04.04 [28] nfs(2), nfs auto mount, autofs(1)

[37] mysql(2), mysql password 분실 시 대처 방법, myphpadmin(1)

|


- 2014.12.29




1. mysql


[문제]


mysql에 있는 samadal 관련 모든 정보 삭제 후 아래와 같이 설정

DB : dbtest

user : usertest

table : tbtest

fields : num int(10), name char(10), addr char(20), phone int(20)

values : 3개 아무거나



# service mysqld start

mysqld (을)를 시작 중:                                     [  OK  ]

# chkconfig mysqld on

# mysql -u root -p mysql


db 삭제


mysql> drop database dbsamadal;


mysql의 db 테이블 확인하여 해당 정보 삭제


mysql> desc db;

mysql> select host, db, user from db;

mysql> delete from db where user='usersamadal';


mysql의 user 테이블 확인하여 해당 정보 삭제


mysql> desc user;

mysql> select host, user, password from user;

mysql> delete from user where user='usersamadal';


db 생성 및 비어있는 테이블 확인


mysql> create database dbtest;

mysql> use dbtest;

mysql> show tables;

Empty set (0.00 sec)


mysql db 의 user 테이블에 usertest 라는 사용자 생성


mysql> use mysql;

mysql> desc user;

mysql> select host, user, password from user;

mysql> insert into user(host, user, password) values('localhost', 'usertest', password('samadal'));


생성한 사용자를 아까 만든 db와 연동


mysql> desc db;

mysql> select host, db, user from db;

mysql> insert into db values('localhost', 'dbtest', 'usertest',

    -> 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y');

mysql> Bye


# /etc/rc.d/init.d/mysqld restart


usertest 사용자를 이용하여 dbtest db 편집

# mysql -u usertest -p dbtest


조건에 맞는 테이블 생성


mysql> show tables;

mysql> create table tbtest(num int(10), name char(10), addr char(20), phone int(20));

mysql> show tables;


테이블 상세 정보 확인


mysql> desc tbtest;

mysql> select num, name, addr, phone from tbtest;


values 입력


mysql> insert into tbtest(num, name, addr, phone) values(1, 'user1', 'seoul', '010-1111-1111');

mysql> insert into tbtest(num, name, addr, phone) values(2, 'user2', 'busan', '010-2222-2222');

mysql> insert into tbtest(num, name, addr, phone) values(3, 'user3', 'incheon', '010-3333-3333');

mysql> insert into tbtest(num, name, addr, phone) values(4, 'user4', 'daegu', '010-4444-4444');


mysql> select * from tbtest;

+------+---------+----------+---------+

| num  | name | addr     | phone |

+------+---------+----------+---------+

|      1 | user1 | seoul     |      10 |

|      2 | user2 | busan    |      10 |

|      3 | user3 | incheon |      10 |

|      4 | user4 | daegu    |      10 |

+------+--------+-----------+---------+


=> phone 값의 values가 이상하다..?! phone의 type을 잘못 지정했기 때문에 이런 문제 발생.



[수정]


num => id char(10)

phone => char (20)

변경 후 전화번호가 정상적으로 뜨도록 설정




이름 및 타입 변경


mysql> alter table tbtest change num id char(10);

mysql> alter table tbtest modify phone char(20);


새로 phone 값 update


mysql> update tbtest set phone='010-1111-1111' where id='1';

mysql> update tbtest set phone='010-2222-2222' where id='2';

mysql> update tbtest set phone='010-3333-3333' where id='3';

mysql> update tbtest set phone='010-4444-4444' where id='4';


mysql> desc tbtest;

+---------+-----------+--------+------+----------+--------+

| Field   | Type      | Null    | Key | Default | Extra |

+---------+-----------+--------+-----+-----------+--------+

| id        | char(10) | YES  |       | NULL    |           |

| name  | char(10) | YES  |       | NULL    |           |

| add r   | char(20) | YES  |       | NULL    |           |

| phone | char(20) | YES  |       | NULL    |           |

+---------+-----------+--------+-----+-----------+--------+


mysql> select * from tbtest;

+----+---------+-----------+---------------------+

| id   | name  | addr      | phone               |

+----+---------+-----------+---------------------+

| 1    | user1 | seoul     | 010-1111-1111 |

| 2    | user2 | busan    | 010-2222-2222 |

| 3    | user3 | incheon | 010-3333-3333 |

| 4    | user4 | daegu    | 010-4444-4444 |

+----+---------+-----------+---------------------+


=> int형은 오른쪽 정렬이지만 char 형은 왼쪽 정렬인 것도 확인할 수 있다.




[문제]


mysql에 있는 test 관련 정보 삭제 후 아래와 같이 설정

DB : dbtiger

user : usertiger

table : tbtiger

fields : id char(10), name char(10), addr char(50), tel char(20)

values : 3개 아무거나




삭제


# mysql -u root -p mysql

mysql> show databases;

mysql> drop database dbtest;

mysql> show tables;


mysql> desc user;

mysql> delete from user where user='usertest';

mysql> desc db;

mysql> delete from db where db='dbtest';


생성


mysql> create database dbtiger;

mysql> desc user;

mysql> insert into user(host, user, password) values('localhost', 'usertiger', password('samadal'));

mysql> select host, user, password from user;

mysql> desc db;

mysql> insert into db values('localhost', 'dbtiger', 'usertiger',

    -> 'y','y','y','y','y','y','y','y','y','y',

    -> 'y','y','y','y','y','y','y','y','y');

mysql> Bye


# service mysqld restart


# mysql -u usertiger -p dbtiger

mysql> create table tbtiger(id char(10), name char(10), addr char(50), tel char(20));

mysql> desc tbtiger;

mysql> insert into tbtiger values('1', 'aaa', 'seoul', '010-1111-1111');

mysql> insert into tbtiger values('1', 'aaa', 'seoul', '010-2222-2222');

mysql> insert into tbtiger values('1', 'aaa', 'seoul', '010-3333-3333');

mysql> insert into tbtiger values('1', 'aaa', 'seoul', '010-4444-4444');

mysql> select * from tbtiger;




[Tip]


db까지 만든 후 계정생성 및 연동까지 한번에 하는 명령어. (데몬 재시작 필요 없음)

                                      db  table       user         host                                pw

grant all privileges on dbtiger.* to 'usertiger'@'localhost' identified by 'samadal' with grant option;

(db 부분도 * 해버리면 관리자 만드는 것과 똑같은 효과.)




[Tip]


Table 이름 변경

ex)

mysql> rename table tbtiger to tbsilti




[Tip]


데몬 재실행 없이 재실행 효과 주는 명령어. (관리자 계정 이용)

mysql> flush privileges;




[Tip]


mysql 접속시 오류 중 111이 뜰 경우 /var/lib/mysql/mysql.sock 파일 삭제 후 데몬 재실행

만약 오류가 뜨는데 mysql.sock 파일이 없는 경우는 시스템 재부팅 후 연결




2. mysql password 분실 시 대처방법


# netstat -lntup | grep mysqld

# /etc/rc.d/init.d/mysqld stop


안전모드 들어가기 위해 종료되었는지 확인


# netstat -lntup | grep mysqld


# mysqld_safe --skip-grant-tables &


이제 패스워드 없이 접속 된다.


# mysql


mysql> use mysql;

mysql> select host, user, password from user;

mysql> update user set password='' where user='usertiger';

mysql> Bye

# /etc/rc.d/init.d/mysqld restart


-정리

1) mysql 데몬 정지

2) mysqld_safe --skip-grant-tables &

3) mysql

4) 수정

5) mysql 데몬 활성

/usr/bin/mysqld_safe 에 있는 듯한데 관리자만 실행 가능하도록 권한 설정 해야 보안이 더 완벽할듯





3. myphpadmin


mysql 을 그래픽 환경에서 관리할 수 있는 툴.

현재 우리가 사용하고 있는 mysql 버전에 맞게 phpmyadmin 다운로드.


[실습]


phpMyAdmin-4.0.10.7-all-languages 중에 linux에서 압축 풀수 있는 것 1개 다운 받아 업로드 후

internet expoler에서 linux_ip/myadmin 접속 시 페이지 뜰 수 있도록 설정



다운로드 하여 리눅스로 업로드


압축 해제


# tar xvfz phpMyAdmin-4.0.10.7-all-languages.tar.gz

# mv ./phpMyAdmin-4.0.10.7-all-languages/ /myadmin


# vi /etc/httpd/conf/httpd.conf

    556 Alias /myadmin "/myadmin"


# /etc/rc.d/init.d/httpd restart


※ Alias 방식으로 해도 되지만 기존 설정되어있는 메인페이지 디렉터리 안 /myadmin 디렉터리에 압축을 풀어도 된다.




'Study > CentOS' 카테고리의 다른 글

[39] 종합문제(1)_nfs, automount, dns, Apache, mysql  (0) 2015.04.06
[38] myphpadmin(2), xe  (0) 2015.04.06
[36] Apache_VirtualHosts, user directory, mysql(1)  (0) 2015.04.06
[35] 종합 중간점검, Apache_Alias  (0) 2015.04.06
[34] Apache  (0) 2015.04.06
And


[36] Apache_VirtualHosts, user directory, mysql(1)

|


- 2014.12.26




1. Apache


1) Section 3 : Virtual Hosts


한 시스템에서 여러 개의 도메인과 호스트 이름을 구분하여 웹 서비스 가능. 이름 기반의 버추얼 호스팅

도메인 앞에 cafe 등의 호스트를 붙여 쓰는 것



[/etc/httpd/conf/httpd.conf] 설정


# vi /etc/httpd/conf/httpd.conf

    975 ### Section 3: Virtual Hosts

    992 #NameVirtualHost *:80

    993 NameVirtualHost 192.168.1.24:80



1006 줄 아래로 7줄을 복사 및 수정해서 아래와 같이 버츄얼 호스트 설정

   1014 <VirtualHost 192.168.1.24:80>

   1015     DocumentRoot /export/home/main/public_html

   1016     ServerName www.hatms.com

   1017 </VirtualHost>

   1018

   1019 <VirtualHost 192.168.1.24:80>

   1020     DocumentRoot /export/home/main/public_html

   1021     ServerName hatms.com

   1022 </VirtualHost>

   1023

   1024 <VirtualHost 192.168.1.24:80>

   1025     DocumentRoot /subhost

   1026     ServerName sub.hatms.com

   1027 </VirtualHost>


# mkdir /subhost/

# cat > /subhost/index.html

<center><H1>Sub Page</H1></center>

# /etc/rc.d/init.d/httpd restart


하지만 sub.hatms.com 페이지가 작동하지 않는다. => DNS 설정 필요.


# vi /var/named/ha.z

     12 sub     IN      A       192.168.1.24

# vi /var/named/ha.r

     12 24      IN      PTR     sub.hatms.com.

# /etc/rc.d/init.d/named restart




[주의]


헌데 버츄얼 호스트를 사용하면 2 section 이 무시되고 바로 버츄얼 호스트가 먹힌다.

따라서 기존의 hostname(www, 없는것) 도 버츄얼호스트 맨 밑에 추가하자.





2. Apache_user directory


user directory 사용하기 (ex www.abc.com/~user)

    367     #UserDir disabled

    368     UserDir enabled


# service httpd restart

httpd 를 정지 중:                                    [  OK  ]

httpd (을)를 시작 중: Syntax error on line 368 of /etc/httpd/conf/httpd.conf:

UserDir "enable" keyword requires a list of usernames

                                                     [실패]


enable 은 아니다. 사용자 명으로 진행


    368     UserDir samadal


# service httpd restart


재시작은 성공했지만 www.hatms.com/~samadal 은 안됨.

index.html 페이지를 생성 안했다.


# cd ~samadal

# cat > ./index.html

<center><H1>samadal main</H1></center>

    375     UserDir public_html

# service httpd restart


여전히 되지 않는다? 아마 public_html 디렉터리에 만들어야 하는듯.

# pwd

/home/samadal

# mkdir ./public_html/

# cat > ./public_html/index.html

<center><H1>samadal public page</H1></center>


이제서야 페이지가 들어가진다. 즉 public_html 디렉터리 안에 해야하는 것이다.

public_html 말고 자기 자신 홈 디렉터리를 사용하려면 아래처럼 사용하면 된다.


    375     # UserDir public_html

    376     UserDir /export/home

     => samadal 홈 디렉터리 앞쪽에 있는 경로까지 절대경로로 지정


좀더 나은 보안을 위해 다른 계정은 막지만 samadal만 허용하는 스크립트 기재.

    367     UserDir disabled

    368     UserDir samadal


root만 막는 것은 아래처럼 하면 된다

    367     UserDir disabled root





3. Mysql


[구조]


database        table           field           value

Linux반         지웅            인간성          Good

                                    학습력          Good



Mysql 은 R-DBMS(Relationed DabaBase Manage System) 이다.



[DB server 종류]


MySQL : 무료, 오픈소스, 중소형 급

Oracle, MSSQL : 엔터프라이즈급의 대형 DB 서버. 유료



[실습]


cd 안에 있는 mysql* PKG 설치

- mysql-connector-java 는 --nodeps 로 진행

- 이전 mysql 설치했던 것 참조, test 도 nodeps 로 지우고 설치




# /etc/rc.d/init.d/mysqld restart

mysqld 를 정지 중:                                         [  OK  ]

MySQL 데이타베이스 초기화 중:  WARNING: The host 'samadal.madalgyo' could not be looked up with resolveip.

This probably means that your libc libraries are not 100 % compatible

with this binary MySQL version. The MySQL daemon, mysqld, should work

normally with the exception that host name resolving will not work.

This means that you should use IP addresses instead of hostnames

when specifying MySQL privileges !

Installing MySQL system tables...

OK

Filling help tables...

OK

To start mysqld at boot time you have to copy

support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !

To do so, start the server, then issue the following commands:

/usr/bin/mysqladmin -u root password 'new-password'

/usr/bin/mysqladmin -u root -h samadal.madalgyo password 'new-password'

Alternatively you can run:

/usr/bin/mysql_secure_installation

which will also give you the option of removing the test

databases and anonymous user created by default.  This is

strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:

cd /usr ; /usr/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl

cd /usr/mysql-test ; perl mysql-test-run.pl

Please report any problems with the /usr/bin/mysqlbug script!

                                                           [  OK  ]

mysqld (을)를 시작 중:                                     [  OK  ]




[Tip]


mysql 은 서버와 맞물려있기 때문에 완전히 못지운다.

자동 줄바꿈 사용하지 않는 것이 좋으며 줄이 넘어갈것 같으면 엔터 치고 진행. 행의 마지막은 ; 로 종료.

엔터와 스페이스는 같다. 단어를 엔터로 나누지 말아라.


Mysql 명령어 사용 가능 표


                D/B     Table

creat           O        O

drop            O       O

select          X        O

update         X        O

insert           X        O

delete          X        O

show           O        O

desc           X         O

use            O          X

alter            X         O



# mysql -u root -p mysql

            user          ----- db 명

(/etc/passwd user와 mysql user는 다르다.)


초기 password 는 없다. 엔터치면 됨


만들어진 database 목록 보기


mysql> show databases;

+----------------------------+

| Database                   |

+----------------------------+

| information_schema  |

| mysql                        |

| test                           |

+---------------------------+

3 rows in set (0.00 sec)


mysql database 로 이동.

use 명령어는 cd 명령어라고 이해하면 된다.


mysql> use mysql;

Database changed


mysql database 안에 있는 table 들 목록 확인


mysql> show tables;

+-------------------------------------+

| Tables_in_mysql                  |

+------------------------------------+

| columns_priv                       |

| db                                        |  => 사용자와 db를 연결시켜주는 table

| event                                    |

                . . .                           

| time_zone_transition           |

| time_zone_transition_type  |

| user                                     |  => 사용자

+------------------------------------+

23 rows in set (0.00 sec)


table 내의 user 항목으로 이동하려 했으나 실패!

즉 use 명령어가 cd 랑 비슷한 역할이라고 한다면 database 는 directory, table 은 file 이라 생각하면 될듯.

file 은 당연히 cd 로 볼 수 없으니까.


mysql> use user;

ERROR 1049 (42000): Unknown database 'user'


따라서 테이블 내의 항목(필드 & 타입)을 확인하는 명령어인 desc 사용.


mysql> desc user;

+-------------------------------+----------------------------+--------+--------+-----------+---------+

| Field                              | Type                          | Null    | Key   | Default  | Extra   |

+-------------------------------+-----------------------------+-------+--------+-----------+---------+

| Host                               | char(60)                    | NO     | PRI  |               |           |

| User                               | char(16)                    | NO     | PRI  |               |           |

| Password                       | char(41)                    | NO     |        |               |           |

                                                       .    .    .                                                           

| max_connections           | int(11) unsigned       | NO     |        | 0            |           |

| max_user_connections  | int(11) unsigned       | NO     |        | 0           |            |

+-----------------------+------------------------------------+--------+-------+----------+---------+

39 rows in set (0.00 sec)



dbsamadal 이라는 새로운 database를 생성해보자.


mysql> create database dbsamadal;

Query OK, 1 row affected (0.00 sec)


mysql> show databases;

+----------------------------+

| Database                   |

+----------------------------+

| information_schema  |

| dbsamadal                 |

| mysql                         |

| test                            |

+----------------------------+

4 rows in set (0.01 sec)


새로 만든 dbsamadal database로 이동


mysql> use dbsamadal;

Database changed


mysql> show tables;

Empty set (0.00 sec)


새로 만들었으니 당연히 table도 비어있다. tbsamadal 이라는 table 생성


mysql> create table tbsamadal;

ERROR 1113 (42000): A table must have at least 1 column


하지만 생성에 오류가 떴다. 적어도 1개 이상의 field & type 이 있어야 한다.

정수형의 num, 문자형의 name 항목 생성. 괄호 안에 있는 것은 인수 개수를 뜻함.


mysql> create table tbsamadal(num int(2), name char(10));

Query OK, 0 rows affected (0.01 sec)


잘 만들어진 것 확인할 수 있다.


mysql> show tables;

+-------------------------------+

| Tables_in_dbsamadal   |

+-------------------------------+

| tbsamadal                     |

+-------------------------------+

1 row in set (0.00 sec)


tbsamadal 테이블에 제대로 num과 name이 있는지 확인.


mysql> desc tbsamadal;

+--------+----------+-------+------+-----------+-------+

| Field  | Type    | Null   | Key | Default  | Extra|

+-------+-----------+-------+------+-----------+-------+

| num  | int(2)     | YES |        | NULL     |          |

| name| char(10)| YES |        | NULL     |          |

+-------+-----------+-------+-----+------------+-------+

2 rows in set (0.01 sec)


헌데 이 테이블에 전화번호도 추가했으면 좋겠다. 정수형으로 16개를 받자.


mysql> alter table tbsamadal add tel int(16);

Query OK, 0 rows affected (0.01 sec)

Records: 0  Duplicates: 0  Warnings: 0


잘 추가 되었는지 확인.


mysql> desc tbsamadal;


헌데 이름이 char형 10개면 한글로는 5글자이다. 20으로 늘려 10글자 한글 이름도 가능하게 변경


mysql> alter table tbsamadal modify name char(20);

                                         ------- type 변경 시 사용

Query OK, 0 rows affected (0.01 sec)

Records: 0  Duplicates: 0  Warnings: 0


확인은 필수.


mysql> desc tbsamadal;


num 대신 id 라는 것으로 바꾸면서 type도 char 형으로 변경


mysql> alter table tbsamadal change num id char(10);

                                     ------ field & type 변경

Query OK, 0 rows affected (0.01 sec)

Records: 0  Duplicates: 0  Warnings: 0


역시나 확인.


mysql> desc tbsamadal;


전화번호에 대한 내용을 삭제해보자.


mysql> alter table tbsamadal drop tel;


Query OK, 0 rows affected (0.01 sec)

Records: 0  Duplicates: 0  Warnings: 0

mysql> desc tbsamadal;


table 자체를 삭제해보자.


mysql> show tables;

mysql> drop table tbsamadal;


mysql> show tables;

Empty set (0.00 sec)


작업할 db를 mysql로 변경


mysql> use mysql

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> show tables;

mysql> desc user;


테이블의 내용 중 내가 보고 싶은 것들만 골라서 보기


mysql> select host, user, password from user;


password라는 함수를 통해 암호화 하는데 user의 root 에게 주겠다.


mysql> update user set password=password('samadal') where user='root';

Query OK, 3 rows affected (0.00 sec)

Rows matched: 3  Changed: 3  Warnings: 0

mysql> select host, user, password from user;


user 테이블에서 user 항목이 빈칸으로 되어 있는 것들을 지우라는 명령어


mysql> delete from user where user='';

mysql> select host, user, password from user;


테이블에 내가 원하는 값을 입력. password는 password라는 함수를 이용하여 암호화 한 값을 저장


mysql> insert into user(host, user, password) values('localhost', 'usersamadal', password('samadal'));

mysql> select host, user, password from user;




이제 사용자와 database 를 연결시켜줘야한다.


mysql> desc db;

mysql> select host, db, user from db;

+-------+-----------+-------+

| host   | db         | user |

+-------+-----------+-------+

| %       | test       |         |

| %       | test_% |         |

+--------+----------+-------+

2 rows in set (0.00 sec)


쓰레기 값이 들어가있다. db 테이블 중 host 에 %가 들어가 있는 것 삭제


mysql> delete from db where host='%';


mysql> select host, db, user from db;

Empty set (0.00 sec)


이제 사용자와 db를 연결시켜주기 위해 host, db명, user명 및 user가 갖게 될 권한에 y 를 준다.


mysql> insert into db values('localhost', 'dbsamadal', 'usersamadal',

    -> 'y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y');



확인.


mysql> select host, db, user from db;

+------------+----------------+-----------------+

| host         | db              | user               |

+------------+----------------+-----------------+

| localhost | dbsamadal | usersamadal |

+------------+----------------+-----------------+

1 row in set (0.00 sec)

mysql> Bye


# /etc/rc.d/init.d/mysqld restart


새로 만든 계정과 db가 연동되는지 확인


# mysql -u usersamadal -p dbsamadal

                                   --------- 뒤에 db명을 적어주지 않아도 되지만

                                                  작업위해 어차피 use db명으로 이동해야 함

Enter password:


mysql> show databases;

+---------------------------+

| Database                  |

+---------------------------+

| information_schema |

| dbsamadal                |

+---------------------------+




And


[35] 종합 중간점검, Apache_Alias

|


- 2014.12.24




[문제]


웹 기본경로 : /export/home/main/public_html 기존에 설정한 내용들 모두 삭제 후 진행


- 조건

host : ns, www

domain : hatms.com

user : main

skel : /sam/

auto creating directory : public_html

ip : 192.168.1.24

index : main.html

hdd : 1G, SCSI : 100, 200, 200, 300, 200

automount, nfs, autofs 설정 partition : 300M - main 계정 생성




ip 변경

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

      5 IPADDR=192.168.1.24

      8 DNS1=192.168.1.24

     11 DOMAIN=hatms.com


1G SCSI HDD 추가, fdisk, mkfs 진행

        => 이전 실습 문서 참조


기존 samadal 계정 $HOME = /home/samadal 로 이동

# usermod -d /home/samadal samadal

# mv /export/home/samadal/ /home/


nfs, autofs 관련 PKG 설치 및 실행

        => 설치 되어 있음

# /etc/rc.d/init.d/nfs restart

# chkconfig nfs on

# /etc/rc.d/init.d/autofs restart

# chkfonfig autofs on


nfs export 설정, server측 automount 설정

# mkdir /sdb

# cd /sdb/

# mkdir 1 2 3 5 6

# vi /etc/fstab

     19 /dev/sdb1       /sdb/1  ext4    defaults                1 2

     20 /dev/sdb2       /sdb/2  ext4    defaults                1 2

     21 /dev/sdb3       /sdb/3  ext4    defaults                1 2

     22 /dev/sdb5       /sdb/5  ext4    defaults                1 2

     23 /dev/sdb6       /sdb/6  ext4    defaults                1 2


# mount -a


# vi /etc/exports

      1 /sdb/1  192.168.1.0/24(rw,no_root_squash,sync)

      2 /sdb/2  192.168.1.0/24(rw,no_root_squash,sync)

      3 /sdb/3  192.168.1.0/24(rw,no_root_squash,sync)

      4 /sdb/5  192.168.1.0/24(rw,no_root_squash,sync)

      5 /sdb/6  192.168.1.0/24(rw,no_root_squash,sync)


# exportfs -ra

# exportfs -v


nfs 방화벽 오픈

# system-config-firewall

        => NFS4 체크


client측 automount : 100, 200, 300(/export/home)

# vi /etc/fstab

     24 192.168.1.24:/sdb/1     /nfs_client/1     nfs             defaults         1 2

     25 192.168.1.24:/sdb/2     /nfs_client/2     nfs             defaults         1 2

     26 192.168.1.24:/sdb/5     /export/home    nfs             defaults         1 2


autofs : 200, 200

# vi /etc/autofs.conf

     38 browse_mode = yes


# vi /etc/auto.misc

     16 sdb3            -rw,hard,intr           192.16        8.1.24:/sdb/3

     17 sdb6            -rw,hard,intr           192.16        8.1.24:/sdb/6


auto creating directory & skel 생성

# cp -r /etc/skel/ /sam/

# mkdir /sam/public_html


main 계정 생성

# useradd -d /export/home/main -m -k /sam main


tip) autofs 로 300M 마운트 하는 방법

# vi /etc/auto.master

      7 /export   /etc/auto.misc

# vi /etc/auto.misc

     18 home            -rw,hard,intr           192.16        8.1.24:/sdb/5

# /etc/rc.d/init.d/autofs restart

# useradd -d /export/home/main -m -k /sam main



DNS & Web 설정

# vi /etc/named.rfc1912.zones

     43 zone "hatms.com" IN {

     44         type master;

     45         file "ha.z";

     46         allow-update { none; };

     47 };

     48

     49 zone "1.168.192.in-addr.arpa" IN {

     50         type master;

     51         file "ha.r";

     52         allow-update { none; };

     53 };


# vi /var/named/ha.z

      1 $TTL 1D

      2 @       IN      SOA     ns.hatms.com. root.hat        ms.com(

      3                         2014122401

      4                         3H

      5                         15M

      6                         1W

      7                         1D)

      8         IN      NS      ns.hatms.com.

      9         IN      A       192.168.1.24

     10 ns      IN      A       192.168.1.24

     11 www     IN      A       192.168.1.24


# vi /var/named/ha.r

      1 $TTL 1D

      2 @       IN      SOA     ns.hatms.com. root.hat        ms.com(

      3                         2014122301

      4                         3H

      5                         15M

      6                         1W

      7                         1D)

      8         IN      NS      ns.hatms.com.

      9         IN      A       192.168.1.145

     10 24      IN      PTR     ns.hatms.com.

     11 24      IN      PTR     www.hatms.com.


# chmod 660 /var/named/ha*

# chown .named /var/named/ha*


# vi /etc/httpd/conf/httpd.conf

    262 ServerAdmin root@hatms.com

    277 ServerName www.hatms.com:80

    293 DocumentRoot "/export/home/main/public_html"

    403 DirectoryIndex index.html index.php index.html        .var main.html


# vi /export/home/main/public_html/main.html

      1 <html>

      2 <head></head>

      3 <body><H1>main page</H1></body>

      4 </html>


# chmod 701 /export/home/main/

# /etc/rc.d/init.d/httpd restart

# chkfonfig httpd on




[문제]


www.hatms.com

www.hatms.com/user1

두개의 내용이 다르게 뜨도록 설정


# cd ~main/public_html/

# mkdir user1

# cp ./main.html ./user1/



[ Apache_Alias ]


# vi /etc/httpd/conf/httpd.conf

    552 Alias /icons/ "/var/www/icons/"

    553 Alias /0g "/gongG/"

# /etc/rc.d/init.d/httd restart


# mkdir /gongG/

# cat > /gongG/index.html

<cetner><H1> gong~~~ gong~~~ </H1></center>



아래 페이지들 접속하여 확인해보기.

www.hatms.com/0g

www.hatms.com/icons

=> Alias 뒤 디렉터리에 / 붙이면 꼭 / 까지 붙여야 접속이 되고 / 안붙이면 /를 안붙여도 접속이 된다.




And


[34] Apache

|


- 2014.12.23


기존 사용하던 server 삭제 후 새로운 압축 해제




1. Apache


웹 서비스를 제공하는 서버

HTML, PHP 및 JSP 페이지가 실행 될 수 있는 환경을 제공하는 '웹 서버 프로그램'



1) 웹 서버의 기본적인 동작


웹 브라우저로 Client가 페이지 요청

HTTP(Hypertext Transfer Protocol)을 사용하여 웹 브라우저와 웹 서버간 의사소통 - 80번 포트




2) Apache 특징


공개형 웹서버 프로그램

다양한 플랫폼에서 동작하는 유연한 설계




[실습]


cd 안에 있는 httpd* PKG 설치

=> 최신 패키지가 있는 것은 nodeps 옵션으로 제거 후 재설치




3) Apache 설정 파일


/etc/httpd/conf/httpd.conf


[ Section1 : 전역 환경 설정 ]


ServerTokens 지시어 : 서버 HTTP 응답 헤더를 설정, 오류문 등 서버 메시지에 출력되는 서버에 대한 정보 설정


Full : 아파치 서버 버전, 운영체제, 모듈 정보 등을 모두 출력

OS : 아파치 서버 버전과 운영체제 정보만을 출력

Minor : 아파치 서버의 하위 버전까지 출력

Min : 아파치 서버의 모든 정보만을 출력

Major : 아파치 서버의 주 버전 정보만을 출력

Prod : 아파치 서버의 정보만을 보여줌


VM 내 브라우저에서 ip주소/asdfasdfasdf 치면 오류 뜨는데 너무 자세한 정보가 나옴

보안상의 이유로 OS -> Prod 로 변경


# vi /etc/httpd/conf/httpd.conf

     44 ServerTokens OS

# /etc/rc.d/init.d/httpd restart

=> VM 내 브라우저에서 이상한 주소 입력해도 최소의 정보만 출력됨


Apache 서버가 설치된 곳 & 사용하는 pid 정보 저장 위치

# vi /etc/httpd/conf/httpd.conf

     57 ServerRoot "/etc/httpd"

     65 PidFile run/httpd.pid

        => /etc/httpd/run/httpd.pid


사용자의 움직임 없을 시 접속 끊을 시간

     70 Timeout 60


페이지를 띄울 때마다 새로운 process 받을 것인지에 대한 여부

     76 KeepAlive Off


76번줄 on 으로 설정했을 시 먹힘. 최대 요청 개수 및 지속시간.

76번 on으로 하면 89번은 짧게 주는 것이 좋음(2~3초)yy

     83 MaxKeepAliveRequests 100

     89 KeepAliveTimeout 15


Apache 접근 포트 변경, 변경하는 경우 방화벽에 등록해야 함

    136 Listen 80


# /etc/rc.d/init.d/httpd restart




[ Section2 ]


문제 생겼을 시 받을 관리자 이메일

    262 ServerAdmin root@localhost


# /etc/rc.d/init.d/httpd restart

httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

해당 오류 해결 위해 276번 복사, 주석 삭제 후 원하는 도메인 입력

    277 ServerName www.samadal.com:80


웹페이지 기본 경로

    293 DocumentRoot "/var/www/html"


기본이 안될때 보여줄 곳

    318 <Directory "/var/www/html">


293의 디렉터리 안에 어떤 파일을 올릴 것인지

    403 DirectoryIndex index.html index.php index.html.var




[문제]


host : ns, www

domain : samadal.com

Firefox에서 www.samadal.com 을 입력하면 아파치 화면이 아닌 글이나 그림 둘 중 한개가 뜨도록 설정



# vi /etc/resolv.conf

      4 nameserver 192.168.1.145

      5 nameserver 192.168.1.2

      6 nameserver 168.128.63.1


DNS 설정은 이전 실습 파일 참조


# vi /etc/named.conf

# vi /etc/named.rfc1912.zones

# /etc/rc.d/init.d/named restart


# vi /etc/httpd/conf/httpd.conf

    136 Listen 80

    277 ServerName www.samadal.com:80


# /etc/rc.d/init.d/httpd restart




[실습]


samadal 계정 경로 : /home/samadal => /export/home/samadal

웹 기본경로 : /var/www/html => /export/home/samadal

index.html -> sama.html 로 변경 후 내용이 뜨도록 설정


# mkdir -p /export/home/

# mv /home/samadal/ /export/home/

# usermod -d /export/home/samadal samadal


# mv /var/www/html/* /export/home/samadal/sama.html


# vi /etc/httpd/conf/httpd.conf

    293 DocumentRoot "/export/home/samadal"

    403 DirectoryIndex index.html index.php index.html.var sama.html


# chmod 711 /export/home/samadal


# /etc/rc.d/init.d/httpd restart




And


[33] DNS 실습, static ip 설정, interface 이름 변경

|


- 2014.12.22



[DNS 실습]


/etc/resolv.conf 파일 초기화 되어있다.

지난 실습처럼 만들어놓자.


# vi /etc/resolv.conf

      1 # Generated by NetworkManager

      2 domain silti.kr

      3 search silti.kr

      4 nameserver 192.168.1.141

      5 nameserver 192.168.1.2

      6 nameserver 168.126.63.1




[문제]


host : ns, www

domain : silti.kr



나는 지난 실습에서 이렇게 되도록 이미 실습해보았다.

오늘 수업시간을 통해 지난 시간 혼자 했던 설정이 맞는지 확인 가능할듯.


# vi /var/named/sil.z

     10 ns      IN      A       192.168.1.141

     11 www     IN      A       192.168.1.141

# vi /var/named/sil.r

     11 141     IN      PTR     www.silti.kr.

     12 141     IN      PTR     ns.siilti.kr.


확인 완료





1. 고정ip 설정


/etc/sysconfig/network-scripts/ifcfg-* 파일에서 설정 가능.

/etc/sysconfig/network-scripts/ifcfg-eth0 파일로 진행해보자.


# vi /etc/sysconfig/network-scripts/ifcfg-eth0

      1 DEVICE=eth0

      2 TYPE=Ethernet

      3 UUID=b05a4530-2bf0-4eef-b1ef-1675803276d9

      4 ONBOOT=no

      5 NM_CONTROLLED=yes

      6 BOOTPROTO=dhcp

      7 DEFROUTE=yes

      8 IPV4_FAILURE_FATAL=yes

      9 IPV6INIT=no

     10 NAME="System eth0"

     11 HWADDR=00:0C:29:CE:BA:EE

     12 PEERDNS=yes

     13 PEERROUTES=yes

     14 LAST_CONNECT=1414576968


위 내용을 하나씩 수정해 나갈 예정 예정

현재 사용중인 장치명 확인


# ip link

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

2: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000

    link/ether 00:0c:29:3b:00:4b brd ff:ff:ff:ff:ff:ff


현재 사용중인 장치가 eth2 이므로 eth2에 대한 설정을 할 것이라는걸 명시한다.

그 뒤 필수 부분에 대하여 적는다.


# vi /etc/sysconfig/network-scripts/ifcfg-eth0

      1 DEVICE=eth2

      2 TYPE=Ethernet

      3 ONBOOT=yes

      4 BOOTPROTO=none

      5 IPADDR=192.168.1.77

      6 NETMASK=255.255.255.0 // = PRIFIX=24

      7 GATEWAY=192.168.1.2


# /etc/rc.d/init.d/network restart


바뀐 ip로 putty 재 접속하여 resolv conf 파일을 보았다.

# vi /etc/reslov.conf

      1 # Generated by NetworkManager

      2 search madalgyo

      3

      4

      5 # No nameservers found; try putting DNS servers into your

      6 # ifcfg files in /etc/sysconfig/network-scripts like so:

      7 #

      8 # DNS1=xxx.xxx.xxx.xxx

      9 # DNS2=xxx.xxx.xxx.xxx

     10 # DOMAIN=lab.foo.com bar.foo.com


파일을 확인 해보니 완벽한 설정은 아닌 듯 싶다.

NIC 설정 파일을 수정

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

      8 DNS1=192.168.1.77

      9 DNS2=192.168.1.2

     10 DNS3=168.126.63.1

(=> DNS는 최대 3개까지 기재 가능하다고는 하나 DNS4를 적은 후 network restart 했을 때 오류는 없다.)


네트워크 재시작 후 resolv.conf 확인 해보니 정상적이다.

# vi /etc/resolv.conf

      1 # Generated by NetworkManager

      2 search madalgyo

      3 nameserver 192.168.1.77

      4 nameserver 192.168.1.2

      5 nameserver 168.126.63.1




[문제]


기존에 설정했던 DNS 관련 PKG 및 정보 삭제 후 아래와 같이 설정하세요

host : ns,www

domain : delete.com

ip : 192.168.1.44



ip, dns, domain 설정


# vi /etc/sysconfig/network-scripts/ifcfg-eth0

      5 IPADDR=192.168.1.44

      8 DNS1=192.168.1.44


# /etc/rc.d/init.d/network restart


설치 된 패키지 삭제 후 재설치


# rpm -qa | grep bind

# rpm -e bind-utils

# rpm -e bind-chroot

# rpm -e bind-dyndb-ldap

# rpm -e bind

경고: /etc/named.rfc1912.zones(이)가 /etc/named.rfc1912.zones.rpmsave(으)로 저장되었습니다

경고: /etc/named.conf(이)가 /etc/named.conf.rpmsave(으)로 저장되었습니다

# rpm -e bind-libs

# rm /etc/named.rfc1912.zones.rpmsave /etc/named.conf.rpmsave


# mount /dev/cdrom /cd

# cd /cd/Packages/

# ls bind*

# rpm -ivh bind-libs

# rpm -ivh bind-9.8.2-0.30.rc1.el6.i686.rpm

# rpm -ivh bind-chroot-9.8.2-0.30.rc1.el6.i686.rpm

# rpm -ivh bind-dyndb-ldap-2.3-5.el6.i686.rpm

# rpm -ivh bind-utils-9.8.2-0.30.rc1.el6.i686.rpm

/etc/resolv.conf 는 우리가 고정값을 쓰기 때문에 구지 쓸 필요 없다.


named 관련 파일 설정

# vi /etc/named.conf

     11         listen-on port 53 { any; };

     12         listen-on-v6 port 53 { any; };

     17         allow-query     { any; };

     18         recursion no;


# vi /etc/named.rfc1912.zones

     44 zone "delete.com" IN {

     45         type master;

     46         file "del.z";

     47         allow-update { none; };

     48 };

     49

     50 zone "1.168.192.in-addr.arpa" IN {

     51         type master;

     52         file "del.r";

     53         allow-update { none; };

     54 };


# vi /var/named/del.z

      1 $TTL 1D

      2 @       IN      SOA     ns.delete.com. root.delete.com. (

      3                         20141222

      4                         3H

      5                         15M

      6                         1W

      7                         1D

      8                         )

      9         IN      NS      ns.delete.com.

     10         IN      A       192.168.1.44

     11 ns      IN      A       192.168.1.44

     12 www     IN      A       192.168.1.44


# cp /var/named/del.z /var/named/del.r

# vi /var/named/del.r

      1 $TTL 1D

      2 @       IN      SOA     ns.delete.com. root.delete.com. (

      3                         20141222

      4                         3H

      5                         15M

      6                         1W

      7                         1D

      8                         )

      9         IN      NS      ns.delete.com.

     10         IN      A       192.168.1.44

     11 44      IN      PTR     ns.delete.com.

     12 44      IN      PTR     www.delete.com.


# chmod 660 /var/named/de*

# chown .named /var/named/de*

# /etc/rc.d/init.d/named restart


확인

# nslookup

> www.delete.com

Server:         192.168.1.44

Address:        192.168.1.44#53

Name:   www.delete.com

Address: 192.168.1.44

> 192.168.1.44

Server:         192.168.1.44

Address:        192.168.1.44#53

44.1.168.192.in-addr.arpa       name = www.delete.com.

44.1.168.192.in-addr.arpa       name = ns.delete.com.





2. interface 장치명 바꾸기


# ifconfig eth2 down

# ip link set eth2 name eth0

# ifconfig eth0 up


하지만 실패. 아래 파일에서 MAC주소에 맞게 주소 변경해주기.

# vi /etc/udev/rules.d/70-persistent-net.rules


# vi /etc/sysconfig/network-scripts/ifcfg-eth0

      1 DEVICE=eth0

# reboot




[정리]


1) ifconfig [i/f name] down

2) ip link set [old i/f name] name [new i/f name]

3) vi /etc/udev/rules.d/70-persistent-net.rules 에서

   장치 이름과 mac 주소를 일치시킨다.

4) 시스템 재부팅

만약 고정값을 쓴다면 /etc/sysconfig/network-scripts/ifcfg-* 에서 DEVICE도 변경해준다.

인터페이스 환경 초기화는

# rm /etc/udev/rules.d/70-persistent-net.rules

# reboot




'Study > CentOS' 카테고리의 다른 글

[35] 종합 중간점검, Apache_Alias  (0) 2015.04.06
[34] Apache  (0) 2015.04.06
[32] DNS 실습 with VNC  (0) 2015.04.06
[31] bind, DNS실습  (0) 2015.04.06
[30] nfs_autofs 실습, dns  (0) 2015.04.06
And


[32] DNS 실습 with VNC

|


- 2014.12.19




[실습]


기존에 작업했던 DNS 관련 모든 설정 및 PKG 삭제 후 아래와 같이 설정하세요.

host : www

domain : tiger.com

단, cd에 있는 PKG 이용하지 말고 PKG site에서 다운받아 설치


# rpm -e bind* ~~~~

# rm /var/named/192.168.1.zone /var/named/samadal.com


Mirror list 중 아무데서나 bind* 다운로드하여 설치.

(Tip cmd - ftp - prompt 하면 대화형 끌 수 있음.)

중간에 libpq.so.5 필요한데 이건 --nodeps 처리



# vi /etc/resolv.conf

      1 # Generated by NetworkManager

      2 domain tiger.com

      3 search tiger.com

      4 nameserver 192.168.1.141

      5 nameserver 192.168.1.2

      6 nameserver 168.126.63.1


# vi /etc/named.conf

     11         listen-on port 53 { any; };

     12         listen-on-v6 port 53 { any; };

     17         allow-query     { any; };

     18         recursion no;


# vi /etc/named.rfc1912.zones

     44 zone "tiger.com" IN {

     45         type master;

     46         file "tiger.f";

     47         allow-update { none; };

     48 };

     49

     50 zone "1.168.192.in-addr.arpa" IN {

     51         type master;

     52         file "tiger.r";

     53         allow-update { none; };

     54 };


# vi /var/named/tiger.f

      1 $TTL 1D

      2 @       IN      SOA     www.tiger.com. root.tiger.com.(

      3                                 2014121901

      4                                 3H

      5                                 15M

      6                                 2W

      7                                 1D

      8                                 )

      9         IN      NS      www.tiger.com.

     10         IN      A       192.168.1.141

     11 www     IN      A       192.168.1.141


# cp /var/named/tiger.f /var/named/tiger.r

# vi /var/named/tiger.r

      1 $TTL 1D

      2 @       IN      SOA     www.tiger.com. root.tiger.com.(

      3                                 2014121901

      4                                 3H

      5                                 15M

      6                                 2W

      7                                 1D

      8                                 )

      9         IN      NS      www.tiger.com.

     10         IN      A       192.168.1.141

     11 141     IN      PTR     www.tiger.com.


# chmod 660 /var/named/tiger*

# chown .named /var/named/tiger*

# ll /var/named/

# /etc/rc.d/init.d/named restart

named 정지 중:                                             [  OK  ]

named 시작 중: /usr/sbin/named-sdb: error while loading shared libraries: libpq.so.5: cannot open shared object file: No such file or directory

                                                           [실패]


구글링 통해 libpq.so.5 설치


# wget ftp://fr2.rpmfind.net/linux/centos/6.5/updates/i386/Packages/postgresql-libs-8.4.20-1.el6_5.i686.rpm

# rpm -ivh postgresql-libs-8.4.20-1.el6_5.i686.rpm

# /etc/rc.d/init.d/named restart

named 정지 중:                                             [  OK  ]

named 시작 중:                                             [  OK  ]


# nslookup

> tiger.com

Server:         192.168.1.141

Address:        192.168.1.141#53

Name:   tiger.com

Address: 192.168.1.141

> www.tiger.com

Server:         192.168.1.141

Address:        192.168.1.141#53

Name:   www.tiger.com

Address: 192.168.1.141

> 192.168.1.141

Server:         192.168.1.141

Address:        192.168.1.141#53

141.1.168.192.in-addr.arpa      name = www.tiger.com.

> exit


의존성 문제 있을 때 postgresql 을 설치하면 된다고 한다.

(내가 구글링해서 설치한 것도 이 PKG 이지만 나는 -libs를 설치함.)




[문제]


기존에 작업했던 DNS 관련 모든 설정 및 PKG 삭제 후 아래와 같이 설정

D드라이브에 다운받은 모든 파일 삭제

host : www

domain : silti.kr

위와 같은 설정을 하는데 vnc를 이요한 설치

삭제 및 vnc 설정은 putty에서 작업 후

dns 설정은 alftp를 이용, 121.134.147.130에 익명을 연결

tiger_ftp에 있는 util에서 vnc P/G 다운받아 windows용 vnc를 이용해 작업




[Tip]


vnc 설치 PKG : tigervnc

vnc 설정

     # vncserver

     # vi /etc/sysconfig/vncservers




'Study > CentOS' 카테고리의 다른 글

[34] Apache  (0) 2015.04.06
[33] DNS 실습, static ip 설정, interface 이름 변경  (0) 2015.04.06
[31] bind, DNS실습  (0) 2015.04.06
[30] nfs_autofs 실습, dns  (0) 2015.04.06
[29] autofs(2), su - 명령어 제한  (0) 2015.04.04
And


[31] bind, DNS실습

|


- 2014.12.18



[Remark]


# vi /etc/resolv.conf

      1 # Generated by NetworkManager

      2 domain mydomain.co.kr

      3 search mydomain.co.kr

      4 nameserver 192.168.1.140        NS_IP

      5 nameserver 192.168.1.2           GATEWAY_IP

      6 nameserver 168.126.63.1         SUPERDNS




1. BIND


[실습]


cd 안에 있는 bind* PKG 설치

(caching-nameserver PKG 는 6.대부터 bind 안에 포함됨)


# mkdir /cd/

# mount /dev/sr0 /cd


# cd /cd/Packages/

# ls bind*

# rpm -qa | grep bind


# rpm -ivh bind-9.8.2-0.30.rc1.el6.i686.rpm

오류: Failed dependencies:

        bind-libs = 32:9.8.2-0.30.rc1.el6 is needed by bind-32:9.8.2-0.30.rc1.el6.i686

# rpm -ivh bind-libs-9.8.2-0.30.rc1.el6.i686.rpm

# rpm -ivh bind-9.8.2-0.30.rc1.el6.i686.rpm

# rpm -ivh bind-chroot-9.8.2-0.30.rc1.el6.i686.rpm bind-dyndb-ldap-2.3-5.el6.i686.rpm bind-utils-9.8.2-0.30.rc1.el6.i686.rpm




[BIND의 설정파일]


DNS는 자기 자신에게 53번 포트로 열려있다.

누구나 들어올 수 있도록 any 를 적어줘야 함

# vi /etc/named.conf

     10 options {

     11         listen-on port 53 { any; };

     12         listen-on-v6 port 53 { any; };


누구나 질의할 수 있도록 설정한다.

     17         allow-query     { any; };


외부에서 내 DNS를 고정으로 사용하지 못하도록 no 로 바꿈

     18         recursion no;


Caching-nameseerver 정보는 이미 적혀있다.

     37 zone "." IN {

     38         type hint;

     39         file "named.ca";

     40 };


5점대는 /etc/named.conf 수정하지만 6점대는 아래 파일을 수정, 맨 아래쪽에 추가

# vi /etc/named.rfc1912.zones

     45 zone "linux.edu.kr" IN {

     46         type master;                        // ns 정의파일

     47         file "linux.edu.kr.zone";       // 정방향역정의(forword_zone)

     48         allow-update { any; };         // update 누구나

     49         allow-transfer { any; };       // 변경도 누구나

     50 };

     51


아래 디렉터리에 해당 ns 정의 파일을 넣으면 된다.

# vi /etc/named.conf

     13         directory       "/var/named";




[NS 설정, forword zone 설정 (정방향영역 설정)]


# vi /var/named/linux.edu.kr.zone

      1 $TTL 86400      ; 1day  // time to live 데이터의 수명

         ---------------- 이 문서가 살아있는 시간, 1 Day

      2 @       IN      SOA     ns.linux.edu.kr. root(

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

기본도메인 인터넷   인증                          e-mail

      3                         77      ; serial  - 현제 데이터의 버전, YYYYMMDD+NN

                                                                    ex) 2014121801

      4                         10800   ; refresh (3 hours)  - slave 측에서 master에 바뀐게 있나 확인하기

      5                         900     ; retry (15 minutes)  - 실패 시 15분 후에 다시 시도

      6                         604800  ; expire (1 week)

                                               ; 헌데 이렇게 1주일동안 계속 실패면 master에서 가져온 정보를 모두 파기

      7                         86400   ; minimum (1 day)  - 외부에서 이 문서 가져다 쓰는 시간

      8                         )

      9         IN      NS      ns.linux.edu.kr.    // 인터넷에서 쓸 Nameserver

     10         IN      A       192.168.1.140      // 인터넷에서 쓸 주소

        #             위쪽은 NameServer 설정, 아래쪽은 Host 설정

     11 www     IN      A       192.168.1.140




[리버스 매핑 설정 (역방향영역 설정)]


정의는 /etc/named.rfc1912.conf 에, 설정은  /var/named/192.168.8.zone 에 한다.

# vi /etc/named.rfc1912.zones

     53 zone "1.168.192.in-addr.arpa" IN {

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

            호스트는 적지 않고 역으로 적는다.

     54         type master;            // ns 정의 파일

     55         file "192.168.1.zone";  // 역방향 정의(reverse_zone)

     56         allow-update {any; };

     57         allow-transfer {any; };

     58 };


# vi /var/named/192.168.0.zone

      $TTL 86400 ;(= $TTL 1D)

      @       IN      SOA     ns.linux.edu.kr. root(

                              42      ; serial (d. adams)

                              3H      ; refresh

                              15M     ; retry

                              1W      ; expire

                              1D      ; minimum

                              )

              IN      NS      ns.linux.edu.kr.

              IN      A       192.168.1.140

     

      140     IN      PTR     www.linux.edu.kr.

          ---- host       ------ PTR(Point Record) : IP주소에 대해 도메인 명을 매핑 하여 주며, Reverse Zone 파일에서 사용


zone link file 생성은 5점대까지는 수동으로 해줘야 하지만 6점대부턴 자동으로 된다.


zonefile 소유권과 권한값 변경

# chmod 660 /var/named/192.168.1.zone /var/named/linux.edu.kr.zone

# chown .named /var/named/192.168.1.zone /var/named/linux.edu.kr.zone


# /etc/rc.d/init.d/named restart

_default/1.168.192.in-addr.arpa/IN: bad zone

                                                           [실패]


안되는 이유를 찾아보자

1. /etc/hosts

2. /etc/resolv.conf

3. /etc/named.conf

4. /etc/named.rfc1912.zone

5. NS설정 정방향 (/var/named/)

6. NS설정 역방향 (/var/named/)

        ns(소문자) -> www

        mydomain.co.kr -> linux.edu.kr



# vi /etc/hosts

      4 192.168.1.140   www.linux.edu.kr        linux


# vi /etc/reslov.conf

      2 domain linux.edu.kr

      3 search linux.edu.kr


# vi /etc/named.conf

# vi /etc/named.rfc1912.zone


# vi /var/named/192.168.1.zone

      2 @       IN      SOA     www.linux.edu.kr. root(

      9         IN      NS      www.linux.edu.kr


# vi /var/named/linux.edu.kr.zone

      2 @       IN      SOA     www.linux.edu.kr. root(

      9         IN      NS      www.linux.edu.kr


# /etc/rc.d/init.d/named restart


설정 잘 되어있나 ip 및 주소 넣어서 확인

# nslookup




[실습]


지금 까지 설정한 모든 설정 내용 및 DNS 관련 PKG 모두 삭제하세요


# vi /etc/hosts

# vi /etc/resolv.conf

# vi /etc/named.conf

# vi /etc/named.rfc1912.zones

# rpm -e bind-utils

# rpm -e bind-chroot

# rpm -e bind-dyndb-ldap

# rpm -e bind

경고: /etc/named.conf(이)가 /etc/named.conf.rpmsave(으)로 저장되었습니다

# rm /etc/named.conf.rpmsave

# rpm -e bind-libs

# rm /var/named/192.168.1.zone /var/named/linux.edu.kr.zone




[문제]


host : www

domain : samadal.com

위와 같이 설정해서 nslookup으로 확인 시 정상적으로 나오도록 해보세요


# mount /dev/sr0 /cd

# cd /cd/Packages/

# ls bind*

# rpm -ivh bind-libs-9.8.2-0.30.rc1.el6.i686.rpm

...

# vi /etc/hosts

      3 192.168.1.141   www.samadal.com         samadal.com


# vi /etc/resolv.conf

      2 domain samadal.com

      3 search samadal.com

      4 nameserver 192.168.1.141

      5 nameserver 192.168.1.2

      6 nameserver 168.126.63.1


# vi /etc/named.conf

     11         listen-on port 53 { any; };

     12         listen-on-v6 port 53 { any; };

     17         allow-query     { any; };

     18         recursion no;


# vi /etc/named.rfc1912.zones

     44 zone "samadal.com" IN {

     45         type master;

     46         file "samadal.com";

     47         allow-update { none; };

     48 };

     49

     50 zone "1.168.192.in-addr.arpa" IN {

     51         type master;

     52         file "192.168.1.zone";

     53         allow-update { none; };

     54 };


# vi /var/named/samadal.com

      1 $TTL 1D

      2 @       IN      SOA     www.samadal.com. root(

      3                         77

      4                         3H

      5                         15M

      6                         1W

      7                         1D

      8                         )

      9         IN      NS      www.samadal.com.

     10         IN      A       192.168.1.141

     11 www     IN      A       192.168.1.141


# cp /var/named/samadal.com /var/named/192.168.1.zone


# vi /var/named/192.168.1.zone

      1 $TTL 1D

      2 @       IN      SOA     www.samadal.com. root(

      3                         42

      4                         3H

      5                         15M

      6                         1W

      7                         1D

      8                         )

      9         IN      NS      www.samadal.com.

     10         IN      A       192.168.1.141

     11 141     IN      PTR     www.samadal.com.


# chmod 660 /var/named/samadal.com /var/named/192.168.1.zone

# chown .named /var/named/samadal.com /var/named/192.168.1.zone


# /etc/rc.d/init.d/named restart




And


[30] nfs_autofs 실습, dns

|


- 2014.12.17




1. NFS_autofs 실습


기존에 사용하던 VMware 모두 제거하고 압축(class2) 2개 풀기


                       server             client

1. HDD          1G, SCSI

2. automount    600, 400

3. Packages     nfs               nfs, autofs

4. mount                            600(normal nfs), 400(autofs)

5. daemon       O                      O

6. user                               600(user1), 400(user2)



server VM 에 SCSI HDD 추가

각각 root password 재설정, init 5 부팅, grub 암호 설정

network setting 및 putty 연결 설정



1) server


HDD fdisk 및 포맷

# fdisk -l

# fdisk /dev/sdb

# mkfs.ext4 /dev/sdb1

# mkfs.ext4 /dev/sdb2


automount 설정 및 확인

# mkdir /sdb1 /sdb2

# vi /etc/fstab

     19 /dev/sdb1       /sdb1   ext4    defaults        1 2

     20 /dev/sdb2       /sdb2   ext4    defaults        1 2


# mount -a

# df -h


공유 설정

# vi /etc/exports

      1 /sdb1   192.168.1.141(rw,no_root_squash,sync)

      2 /sdb2   192.168.1.141(rw,no_root_squash,sync)


작동 잘 되는지 확인

# exportfs -ra

# exportfs -v

# rpcinfo -p


NFS 서비스에 대한 방화벽 설정

# system-config-firewall

        NFS4 체크

        111 / tcp 추가 : portmap 인데 추가 안하면 Client 측에서 확인이 불가하나, NFS4 만 해도 서비스는 가능하다.


daemon 설정 후 NFS 서비스 마지막으로 재시작

# chkconfig nfs on

        = # ntsysv 에서 nfs 체크

# /etc/rc.d/init.d/nfs restart




2) client


Package 확인 및 설치

# rpm -qa | grep nfs

# rpm -qa | grep autofs


normal nfs 방식으로 mount

# mkdir /nfs_sdb1

# mount -t nfs 192.168.1.140:/sdb1 /nfs_sdb1

# df -h


autofs 방식으로 마운트

# vi /etc/autofs.conf

     38 browse_mode = yes


# vi /etc/auto.misc

     16 nfs_sdb2        -rw,hard,intr           192.168.1.140:/sdb2


daemon 설정 및 autofs 재시작

# chkconfig nfs on

# chkconfig autofs on

# /etc/rc.d/init.d/autofs restart


autofs 방식 mount 확인

# ll /misc/nfs_sdb2/

# df -h


사용자 추가

# useradd -d /nfs_sdb1/user1 user1

# useradd -d /misc/nfs_sdb2/user2 user2

# passwd user1

# passwd user2


하지만 user의 홈 디렉터리를 보면 skel 들의 소유자가 nobody 이다.

그 이유는 클라이언트 쪽에서 사용자를 만들었지만 그 사용자를 서버에선 알지 못하기 때문이다.


서버에 같은 user를 추가한다.

# useradd -d /sdb1/user1 -u 501 user1

# useradd -d /sdb2/user2 -u 502 user2


하지만 실제로 이런 방식을 사용하지 않는다.


부팅 시 자동 마운트 되도록 설정하려면 아래처럼 설정한다.

# vi /etc/fstab

     19 192.168.1.140:/sdb1     /nfs_sdb1       nfs     defaults        1 2





2. DNS


DNS : Domain Name Server(Service)

IP Address 를 사용자가 알기 쉬운 Domain 형식으로 변환해주는 인터넷에 있어 가장 중심적이고 핵심적인 서비스이다.


Domain Name?

네트워크에 연결되어 있는 모든 시스템에는 숫자의 조합으로 구성된 주소를 가지고 있다. 하지만 이러한 주소를 다 외우기란 불가능하므로 알파벳으로 이루어진 도메인 이름을 사용한다.


도메인 등록 원칙

도메인 이름은 영문자(a-z) 26개, 숫자(0-9) 10개, 특수기호 (-) 1개를 합쳐 총 37개의 글자 조합으로 나타낼 수 있다. 영문자의 경우 대문자 소문자의 구별은 하지 않으며 특수기호인 (-)은 도메인의 처음과 끝에 올 수 없다.

도메인의 이름의 체계는 피라미드 구조를 하고 있으며, 각 단계별로 독자적으로 관리한다.


www.whois.co.kr 에서 Domain 정보 확인 가능



1) /etc/hosts 파일 내용


# vi /etc/hosts

      3 #[IP-Address]          [FQDN]                    [Alias]

      4 192.168.1.140   www.mydomain.co.kr      mydomain




2) /etc/resolv.conf 파일 내용


호스트가 사용할 DNS 서버의 주소를 설정하여 준다.

자신의 호스트가 DNS 서버라면 자신의 IP 주소를 적어줘야 한다.


# vi /etc/resolv.conf

      1 # Generated by NetworkManager

      2 domain mydomain.co.kr

      3 search mydomain.co.kr

      4 nameserver 192.168.1.140        NS_IP

      5 nameserver 192.168.1.2          NS_GW

      6 nameserver 168.126.63.1         Super DNS

위 순서대로 적용되기 때문에 이대로 적어줘야 한다.


시스템 종료되면 /etc/resolv.conf 파일은 초기화 된다.

자세한 /etc/resolv.conf 실습은 다음 시간에 이어서 한다.




'Study > CentOS' 카테고리의 다른 글

[32] DNS 실습 with VNC  (0) 2015.04.06
[31] bind, DNS실습  (0) 2015.04.06
[29] autofs(2), su - 명령어 제한  (0) 2015.04.04
[28] nfs(2), nfs auto mount, autofs(1)  (0) 2015.04.04
[27] auto mount, 응급복구, nfs(1)  (0) 2015.03.28
And


[29] autofs(2), su - 명령어 제한

|


- 2014.12.16




1. autofs


[환경설정]


HDD : 1G, SCSI

Partition : 100, 200, 300, 400

automount 및 autofs 설정, userpartition : 100M

모든 설정 완료 후 계정 samadal의 정보를 변경하세요~~!!!




시스템 종료하고 HDD 추가, 다시 켠 다음 fdisk로 파티션설정 후 mkfs로 포맷


mount point(/SCSI/sdb1~4) 생성 후 automount 설정

# vi /etc/fstab

     19 /dev/sdb1               /SCSI/sdb1              ext4    defaults                1 2

     20 /dev/sdb2               /SCSI/sdb2              ext4    defaults                1 2

     21 /dev/sdb3               /SCSI/sdb3              ext4    defaults                1 2

     22 /dev/sdb4               /SCSI/sdb4              ext4    defaults                1 2


마운트 잘 되나 확인

# mount -a

# df -h


fstab 의 경우는 재부팅 해주는 것이 좋다.

# init 6




[autofs server 측 설정]


nfs service 설치 되어있나 확인 후 nfs 설정 및 서비스 시작

# rpm -qa | grep nfs

# vi /etc/exports

      1 /SCSI/sdb1      192.168.1.0/24(rw,no_root_squash,sync)

      2 /SCSI/sdb2      192.168.1.139(rw,no_root_squash,sync)

      3 /SCSI/sdb3      192.168.1.139(rw,no_root_squash,sync)

      4 /SCSI/sdb4      *(rw,no_root_squash,sync)


# /etc/rc.d/init.d/nfs restart


exports 변경에 대한 적용은 restart 말고 아래 명령어로도 진행 가능하다.

# exportfs -ra



시스템 시작 시 nfs 및 autofs 서비스 자동 실행 설정

# chkconfig nfs on

# chkconfig autofs on


다시 한번 전체적으로 확인

# exportfs -ra

# exportfs -v

# rpcinfo -p




[autofs client 측 설정]


autofs 사용 설정

# vi /etc/autofs.conf

     38 browse_mode = yes


마운트 설정 적용 후 데몬 재시작

# vi /etc/auto.misc

     17 sdb1            -rw,hard,intr           192.168.1.139:/SCSI/sdb1

     18 sdb2            -rw,hard,intr           192.168.1.139:/SCSI/sdb2

     19 sdb3            -rw,hard,intr           192.168.1.139:/SCSI/sdb3

     20 sdb4            -rw,hard,intr           192.168.1.139:/SCSI/sdb4


# /etc/rc.d/init.d/autofs restart


설정 잘 되었는지 확인

# ll /misc/

# mount

mount 로 확인하려면 디렉터리에 접근 후 확인 가능하다. 일정시간 지나거나 접근이 없으면 마운트를 자동 해제하기 때문.

# df -h /misc/sdb1





[실습]


위 파티션 에 200(user1), 400(user2) 생성


# useradd -d /misc/sdb2/user1 user1

# useradd -d /misc/sdb4/user2 user2

# passwd user1

# passwd user2




* autofs 특징


일정 시간 이용하지 않으면 마운트 해제하여 리소스를 줄여준다.

다시 접근하려고 하면 다시 마운트 한다.




[문제]


기존 사용자는 유지

SCSI HDD 제거 후 아래와 같이 작업.

HDD(1G, IDE) : 500(Pri.), 300(Log.), 200(Pri.)

normal nfs : 500(samadal)

autofs : 300(user1), 200(user2)



client 측 기존 사용자 설정 백업

# mv /misc/sdb1/samadal/ /home/

# mv /misc/sdb2/user1/ /home/

# mv /misc/sdb4/user2/ /home/



server 측 설정


기존 설정들 주석 처리

# vi /etc/fstab

# vi /etc/exports

# vi /etc/auto.misc


시스템 종료하고 하드 추가, fdisk 및 mkfs 설정

mkdir(/IDE/sda1,3,5 /nfs_client/sda1 후 automount 설정

# vi /etc/fstab

     23 /dev/sda1               /IDE/sda1               ext4    defaults        1 2

     24 /dev/sda3               /IDE/sda3               ext4    defaults        1 2

     25 /dev/sda5               /IDE/sda5               ext4    defaults        1 2

# vi /etc/exports

      4 /IDE/sda1       192.168.1.139(rw,no_root_squash,sync)

      5 /IDE/sda3       192.168.1.139(rw,no_root_squash,sync)

      6 /IDE/sda5       192.168.1.139(rw,no_root_squash,sync)


재설정한 exports 항목 적용

# exportfs -ra

# exportfs -v



client 측 설정


서버측 설정 확인

# rpcinfo -p 192.168.1.139


normal nfs 방식으로 sda1 mount 및 확인

# mount -t nfs 192.168.1.139:/IDE/sda1 /nfs_client/sda1

# df -h


autofs 방식을 sda3, sda5 마운트

# vi /etc/auto.misc

     21 IDE_sda3        -rw,hard,intr           192.168.1.139:/IDE/sda3

     22 IDE_sda5        -rw,hard,intr           192.168.1.139:/IDE/sda5


server의 nfs, client의 autofs 서비스 재시작

# /etc/rc.d/init.d/autofs restart

# /etc/rc.d/init.d/nfs restart



사용자 계정 살리기

# mv /home/samadal/ /nfs_client/sda1/

# mv /home/user1/ /misc/IDE_sda5/

# mv /home/user2/ /misc/IDE_sda3/

# usermod -d /nfs_client/sda1/samadal samadal

# usermod -d /misc/IDE_sda5/user1 user1

# usermod -d /misc/IDE_sda3/user2 user2


헌데 user1도, user2도 su - 명령어로 root 권한 얻을 수 있다.

특정 사용자만 관리자 권한 얻을 수 있도록 변경해보자.





2. su - 명령어 제한


ssh 보안 접속 되는 계정 : user1

ssh 보안 접속 안되는 계정 : 그 외 계정


먼저 su 명령어 위치 확인해야한다.


# find / -name su -exec ls -l {} ;

/bin/su 에 있는 것을 알았다. 정보를 보니 SetUID 설정 되어 있는 것 확인 가능.


wheel 이라는 기존 그룹을 통해 관리자 명령어를 쓸 수 있게 해주자.

(다른 임의의 그룹을 통해 진행해도 된다.)

# chown .wheel /bin/su

# chmod 4750 /bin/su

# usermod -G wheel user1




'Study > CentOS' 카테고리의 다른 글

[31] bind, DNS실습  (0) 2015.04.06
[30] nfs_autofs 실습, dns  (0) 2015.04.06
[28] nfs(2), nfs auto mount, autofs(1)  (0) 2015.04.04
[27] auto mount, 응급복구, nfs(1)  (0) 2015.03.28
[26] vnc(2), vnc with ssh, ftp  (0) 2015.03.28
And


[28] nfs(2), nfs auto mount, autofs(1)

|


- 2014.12.15




1. nfs Server



NFS : Network File System


1) /etc/export 설정


NFS Service 를 구성하기 위한 설정내용을 작성하는 NFS의 주 설정 파일이며, 기본적으로 아무런 데이터도 입력되어 있지 않다.


아래 내용 입력

# vi /etc/exports

      1 # NFS configure file (/etc/exports)

      2

      3 # [Share dir]   [access allow host/network] (option)

      4 /nfs_server      192.168.1.134 (ro,no_root_squash,sync)

      5 # /nfs_server1  192.168.1.0/255.255.255.0 (rw,sync)

      6 # /nfs_server2  *(sync) //all network allow

          공유 디렉터리            Client ip (option)



※ nfs option

ro : 읽기 전용으로만 연결을 허용한다.

rw : 읽기 쓰기 가능하게 연결을 허용한다.

root_squash : NFS 설정 시 기본값이 되며 클라이언트측에 관리자가 접속 요청을 했을 때 익명 계정으로 연결을 허용한다.

no_root_squash : 클라이언트 측에 관리자가 접속 요청을 했을 때 서버 측에서의 관리자 계정으로 매핑을 시켜 연결을 허용한다.

no_all_squash :  NFS 설정 시 기본값이 되며 클라이언트 측에 사용자가 접속 요청을 했을 때 서버 측에 동일한 사용자가 있으면 동일한 계정으로 연결을 허용한다.

해당 계정이 존재하지 않을 경우는 클라이언트의 UID, GID 값이 동일한 사용자로 연결 허용한다.

all_squash : 클라이언트 측에서 사용자로 접근 요청 했을 떄 익명 계정으로 연결을 허용한다.

anonuid=[UID] : 클라이언트 측에서 익명으로 접근 요청 시 지정한 UID 값의 계정으로 연결하게 된다.

anongid=[GID] : 클라이언트 측에서 익명으로 접근 요청 시 지정한 GID 값의 그룹으로 연결하게 된다.

noaccess : 공유 디렉터리 내에서 접근을 거부할 디렉터리가 있으면 사용한다.

sync : server & client 동기화시키기.




2) portmap 데몬의 동작 여부 확인


5 이전 버전의 경우 portmap service를 따로 재시작 해줘야한다.

# /etc/rc.d/init.d/portmap restart


portmap 데몬의 동작 여부 확인

# rpminfo -p




3) NFS 데몬 실행


portmap 동작이 확인 되었으면 NFS 서비스를 동작 시킨다.

# /etc/rc.d/init.d/nfs restart


헌데 아래와 같은 오류 메세지가 출력된다.

exportfs: Failed to stat /nfs_server: No such file or directory

exportfs: No host name given with /nfs_server (ro,no_root_squash,sync), suggest *(ro,no_root_squash,sync) to avoid warning

exportfs: Failed to stat /nfs_server: No such file or directory


먼저는 /nfs_server 라는 디렉터리가 없다고 하니 디렉터리 생성 후에 다시 재시작 해보자.

# mkdir /nfs_server

# /etc/rc.d/init.d/nfs restart


하지만 여전히 나오는 에러 메세지. read only 옵션이 문제인가? 해서 rw로 수정.

exportfs: No host name given with /nfs_server (ro,no_root_squash,sync), suggest *(ro,no_root_squash,sync) to avoid warning


# vi /etc/exports

      4 /nfs_server     192.168.1.134 (rw,no_root_squash,sync)


# /etc/rc.d/init.d/nfs restart


여전히 오류난다.

알고보니 ip 와 옵션() 사이에 공백이 있으면 안되는 것. 공백 수정 후 리스타트하면 성공이다.


# vi /etc/exports

      4 /nfs_server     192.168.1.134(rw,no_root_squash,sync)




4) NFS 동작 여부 확인


# netstat -lntup | grep nfs


NFS 서비스는 netstat으로 확인 불가하다. 아래 명령어로 확인 가능하다.

# rpcinfo -p




5) NFS 서버 확인


공유정보 확인

# exportfs -v


NFS의 설정(/etc/exports) 정보가 변경되었을 경우 NFS 서비스를 재시작 할 필요 없이 아래 명령어를 사용하여 변경된 내용을 적용할 수 있다.

# exportfs -ra





2. nfs - Client


NFS 서버가 정상적으로 동작하는지 확인

# rpcinfo -p 192.168.1.134

                        서버 ip


마운트포인트 생성

# mkdir /nfs_client/


# mount -t nfs 192.168.1.134:/nfs_server /nfs_client

          type option          server                   client mp



마운트 내역 확인

# df -h




[실습]


samadal 계정정보를 마운트시킨 /nfs_client 로 정보변경 후 samadal이 정상 로그인되는지 확인


# cp ./* ./.* /nfs_client

# mv /export/home/samadal/ /nfs_client/

# usermod -d /nfs_client/samadal samadal


# df -h

Filesystem            Size  Used Avail Use% Mounted on

192.168.1.134:/nfs_server

                      7.6G  336M  6.9G   5% /nfs_client


근데 최상위가 있는 파티션을 빌려줬다...?

=> nfs는 디렉터리를 빌려주는 것이 아니라 마운트 된 디렉터리가 있는 파티션을 빌려주기 때문.




[문제]


samadal을 제외한 모든 사용자 삭제 및 IDE HDD 제거하신 후 HDD SCSI 1G : 100(user1), 200, 300, 400

자동마운트, nfs server 설정 후 user1 생성하세요



/etc/fstab 내용에 추가한 것 삭제하여 부팅 시 오류 발생을 막는다.

# vi /etc/fstab


계정 삭제 위해 계정 정보 확인

# tail /etc/passwd


# userdel -r user1

# userdel -r clang1

# userdel -r clang2

# userdel -r linux1

# userdel -r linux2

# userdel -r ms1

# userdel -r ms2

# userdel -r na

# userdel -r np


시스템 종료

# init 0


HDD 삭제 및 추가, 재부팅 하여 필요 없는 mount point 삭제

# rm -rf /Anon/ /Clang/ /Linux/ /Ms/ /Net/


새로 추가한 HDD의 파티션 및 포맷 설정

# fdisk -l

# fdisk /dev/sdb

# mkfs.ext4 /dev/sdb 1~4


mount point 생성 후 auto mount 설정

# mkdir /SCSI/

# cd /SCSI/

# mkdir sdb1 sdb2 sdb3 sdb4


# vi /etc/fstab

     19 /dev/sdb1       /SCSI/sdb1      ext4    defaults        1 2

     20 /dev/sdb2       /SCSI/sdb2      ext4    defaults        1 2

     21 /dev/sdb3       /SCSI/sdb3      ext4    defaults        1 2

     22 /dev/sdb4       /SCSI/sdb4      ext4    defaults        1 2


# mount -a

# df -h


마운트 되는 것 확인하면 재부팅 해보는 것이 좋다.



[NFS Server 측 설정]


# vi /etc/exports

      4 /SCSI/sdb1      192.168.1.134(rw,no_root_squash,sync)

      5 /SCSI/sdb2      192.168.1.0/255.255.255.0(rw,no_root_squash,sync)

      6 /SCSI/sdb3      *(rw,no_root_squash,sync)

      7 /SCSI/sdb4      192.168.1.0/24(rw,no_root_squash,sync)


변경사항 적용 및 확인

# exportfs -ra

# exportfs -v



[NFS Client 측 설정]


Server 및 mount point 확인

# rpcinfo -p 192.168.1.134

# cd /nfs_client

# mkdir sdb1 sdb2 sdb3 sdb4


마운트 후 확인

# mount -t nfs 192.168.1.134:/SCSI/sdb1 /nfs_client/sdb1

# df -h


계정 추가

# useradd -d /nfs_client/sdb1/user1 user1

# passwd user1




[ nfs auto mount ]


서버 재부팅 후에도 자동으로 마운트 되도록 설정할 수 있다.

그렇다면 서버측에서 nfs 서비스를 서버 재시작 시 자동 실행되게끔 해야한다.

# chkconfig nfs on




[문제]


기존 HDD SCSI 1G : 100(user1), 200(samadal), 300(user2), 400(user3)

자동마운트, nfs server 설정 후 사용자 생성하세요



/etc/fstab 의 마운트 타입을 수정하여 기재.

# vi /etc/fstab

     23 192.168.1.134:/SCSI/sdb1        /nfs_client/sdb1        nfs     defaults        1 2

     24 192.168.1.134:/SCSI/sdb2        /nfs_client/sdb2        nfs     defaults        1 2

     25 192.168.1.134:/SCSI/sdb3        /nfs_client/sdb3        nfs     defaults        1 2

     26 192.168.1.134:/SCSI/sdb4        /nfs_client/sdb4        nfs     defaults        1 2


계정 정보 설정

# mv /nfs_server/samadal/ /nfs_client/sdb2/

# usermod -d /nfs_client/sdb2/samadal samadal

# useradd -d /nfs_client/sdb3/user2 user2

# useradd -d /nfs_client/sdb4/user3 user3


특정 마운트 용량 확인

# df -h /nfs_client/sdb1





3. autofs


[실습 전 작업]


기존 VMware 삭제, 기존에 client 로 남겨두었던 VMware 실행

putty로 root 정상 로그인 되도록 설정

test 계정 삭제, samadal 계정 생성


이전엔 ssh로의 root 접근을 막았다.

root로 접근 가능하도록 42번줄 앞에 # 붙이기


# vi /etc/ssh/sshd_config

   42 #PermitRootLogin yes


# userdel -r test

# useradd samadal

# passwd samadal




[autofs 란?

자동 마운트 데몬의 작동을 제어하는 프로그램

자동 마운트 데몬은 자동으로 사용 시 파일 시스템을 마운트로 하고 일정시간동안 사용을 하지 않으면 언마운트 하는 데몬

주로 NFS나 cd/dvd rom 장치, floopy 등의 자주 사용되지 않는 마운트 할 때 사용하는 데몬




[Client 쪽 설정]


6.5 버전 까지는 /etc/sysconfig/autofs 였으나

6.6 부터는 /etc/autofs.conf 파일이다.


autofs 사용 여부, 사용할 것이니 yes로 변경

# vi /etc/autofs.conf

     38 browse_mode = yes



실제 마운트에 관한 정보 입력

# vi /etc/auto.misc

     16 /nfs_client     -ro,hard,intr           192.168.1.139:/nfs_server

           Client 측           option                         Server측


실제 마운트시킬 디렉터리와 mount point 생성

# mkdir /nfs_server/ /nfs_client/


재시작 시 autofs 자동 실행 되도록 설정

# chkconfig autofs on


헌데 재부팅 했는데도 마운트가 되지 않는다. 혹시나 해서 -ro -> -rw 로 변경 후 재부팅

# vi /etc/auto.misc

     16 /nfs_client     -rw,hard,intr           192.168.1.139:/nfs_server


하지만 여전히 안됨.



# ll /misc/


디렉터리 내용물 한번 확인(?) 해보고 다시 auto.misc 파일 수정. client 측 주소에서 / 를 뺐다.

# vi /etc/auto.misc

     16 nfs_client     -rw,hard,intr           192.168.1.139:/nfs_server


하지만 또 안된다.

아까 확인했던 디렉터리 가보니 nfs_client 디렉터리가 생성되었다.

# ll /misc/

합계 0

dr-xr-xr-x 2 root root 0 2014-12-15 15:14 cd

dr-xr-xr-x 2 root root 0 2014-12-15 15:14 nfs_client


기존에 만들었던 mount point를 삭제

# rm -rf /nfs_client/


/etc/auto.master 파일 보면 auto.misc에 있는 내용을 /misc에다 알아서 적용하라는 내용이 있다.

즉, /misc = autofs base mount point


# vi /etc/auto.master

      7 /misc   /etc/auto.misc


/etc/auto.misc 에만 적으면 mount point 따로 만들어 줄 필요 없이 자동으로 master에 적혀있는 위치에 자동으로 mount point를 만들어준다.


autofs에 관한 자세한 설명은 다음 시간에 계속




[다음 실습을 위한 준비]


samadal 계정의 홈 디렉터리를 /misc/nfs_client/ 로 설정


# mv /home/samadal/ /misc/nfs_client/




'Study > CentOS' 카테고리의 다른 글

[30] nfs_autofs 실습, dns  (0) 2015.04.06
[29] autofs(2), su - 명령어 제한  (0) 2015.04.04
[27] auto mount, 응급복구, nfs(1)  (0) 2015.03.28
[26] vnc(2), vnc with ssh, ftp  (0) 2015.03.28
[25] vnc(1)  (0) 2015.03.28
And


prev | 1 | ··· | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | next