VirtualBox 玩 Centos (6.8) 筆記,資料來源參考多方網路資源,只在內部做測試開發平台使用。
- 安裝 CentOS 6.8 i386 版本
- sftp
- Apache
- MySql
[硬碟分割]
- /boot ext4 2048
- /home ext4 5120
- 4096 swap
- / 其他全部
[新增使用者]
第一次使用 root 登入後,先建立一個新帳號做為管理使用的帳號。
$ useradd -G wheel godspeed
$ passwd godspeed
Changing password for user godspeed.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[關閉 SELinux]
$ cp /etc/sysconfig/selinux /etc/sysconfig/selinux.bak
$ vi /etc/sysconfig/selinux
SELINUX=enforcing 改成--> SELINUX=disabled
- enforcing
- permissive
- disabled
[設定 SSH 服務]
SSH 服務的設定檔 /etc/ssh/sshd_config
透過 SSH 服務的設定檔來增加安全性,目標作以下幾項變更:
- 更改 SSH Port 22 為其他 Port (防止掃瞄Port)
- use Protocol 2
- 不允許 root 登入 SSH ,用另外建立的帳號來登入
- 關閉 DNS反查 (加快登入速度)
- 不允許空白密碼
- 指定可以登入 SSH 的帳號
- 關閉 IP 反查和 GSS API auth, SSH 預設連線模式會進行 IP反查及GSS API auth,所以會花掉一些時間等待查詢,很多Linux服務都會設定反查,不用特別關閉也沒關係。
- use sftp
- restart SSH service #/etc/rc.d/init.d/sshd restart
$ cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
$ vi /etc/ssh/sshd_config
- Port 8022
- Protocol 2
- PermitRootLogin no
- UseDNS no
- PermitEmptyPasswords no
- AllowUsers sysadmin godspeed 若有多個帳號可以登入,就用空格隔開
-
UseDNS no
GSSAPIAuthentication no -
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
Match Group sftponly (Group 可更改為 User 針對單一帳號)
ChrootDirectory /home/%u // 鎖定登入者家目錄
X11Forwording no
AllowTcpForwarding no
ForceCommand internal-sftp - service ssh restart (/etc/rc.d/init.d/sshd restart)
設定完後要重啟 SSH 服務才會生效,可以透過 netstat 指令來確認重啟後的 SSH 服務是否以 Port 8022 來接受連線
$ netstat -ant | grep :8022
ssh 可以使用 ssh -vvv 來 debug
$ ssh -vvv 192.168.1.20
[Chroot 重要的二句話]
- ChrootDirectory 指定的目錄開始到系統根目錄,目錄的擁有者只能是 root
- 同上 ChrootDirectory 指定的目錄開始到系統根目錄,都不能有群組寫入的權限
[網路設定]
詳細的設定檔資訊可以參考/usr/share/doc/initscripts-*/sysconfig.txt
/etc/sysconfig/network-scripts/ifcfg-eth** // *=0,1,2... 表示那一張網路卡
- 第一張網卡 [固定IP]
- DEVICE=eth0 // 網路卡代號,須與 /etc/sysconfig/network-scripts/ifcfg-eth0 對應
- TYPE=Ethernet // 網路類別
- HWADDR=08:00:27:71:85:BD // 網路卡MAC位址
- NM_CONTROLLED=yes // 是否受其他網路管理軟體控管
- ONBOOT=yes // 預設是否啟用-開機自動啟用=yes
- BOOTPROTO=none // 取得IP的方式 dhcp / none 手動輸入
- IPADDR=192.168.1.20 // 指定 IP
- NETMASK=255.255.255.0 // 子網路遮罩
- GATEWAY=192.168.1.254 // 預設路由
- NETWORK=192.168.0.0 // 該網段第一個 IP,可省略
- BROADCAST=192.168.0.255 // 廣播位址,可省略
- MTU=1500 // 最大傳輸單元,可省略
- DNS1=168.95.1.1 //名稱解析伺服器,此設定也可以在 resolv.conf 設定
- IPV6INIT=no // 不使用 IPV6INIT
- ARPCHECK=no // 出現 bring up interface ip address is already in use for device eth0 在網卡中加上此設定 不檢查 ARP
- 第二張網卡 [DHCP]
- DEVICE=eth1
- TYPE=Ethernet
- HWADDR=08:00:27:71:85:xx
- NM_CONTROLLED=yes
- ONBOOT=yes
- BOOTPROTO=dhcp
[DNS Server]
# vi /etc/resolv.conf
- nameserver 168.95.1.1
- nameserver 168.95.192.1
[主機名稱]
# vi /etc/sysconfig/network
- NETWORKING=yes
- HOSTNAME=cafe.my.home
# vi /etc/hosts
保留原來內容,新增以下資料
- 192.168.1.20 cafe.my.home
重啟網卡
$ service network restart ( /etc/init.d/network restart)
[VirtualBox 重製後找不到網卡]
- 開機時會出現「Device eth0 does not seem to be present, delaying initialization.」的錯誤訊息。
- 將網卡設定中的 HWADDR=xx:xx:xx:xx:xx:xx 移除
- # vi /etc/sysconfig/network-scripts/ifcfg-eth*
接著編輯 - # vi /etc/udev/rules.d/70-persistent-net.rules
- 將原來的網卡資料刪除,留下新的網卡資料,並將新的網卡資料中的網卡名稱更改為原來的網卡名稱
- SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="xx:xx:xx:xx:xx:xx", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" // 刪除此筆
- SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="yy:yy:yy:yy:yy:yy", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1" // 將新的網卡資料的 NAME 改成 eth0
- reboot
[防火牆]
netstat -tunpl // 瞭解各服務監聽的Port
查看目前的 iptables 設定 iptables -L -n
# vi /etc/sysconfig/iptables
### 允許本機和已經建立連線的封包通過 ###
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
### icmp 全部開放 ###
-A INPUT -p icmp -j ACCEPT
### sshd 內網 開放 ###
-A INPUT -i eth0 -p tcp -s 192.168.1.0/24 --dport 8022 -j ACCEPT
# service iptables restart (重新啟動防火牆)
[安裝系統設定套件]
- 系統設定套件 - setup 工具包
# yum -y install setuptool
- 系統設定套件 - 服務套件
- # yum -y install ntsysv
- 系統設定套件 - 網路管理
- # yum -y install system-config-network-tui
- 系統設定套件 - 防火牆設定
- #yum -y install system-config-firewall-tui
- 系統設定套件 - 安全性設定
- yum -y install system-config-securitylevel-tui
- yum -y install dbus-python
- yum -y install dbus-python-devel
- service messagebus start
- chkconfig messagebus on
[安裝 Apache(httpd)]
# yum -y install httpd
# vi /etc/httpd/conf/httpd.conf 編輯設定檔
# service httpd start (/etc/init.d/httpd start) 啟動 httpd 服務
# /etc/init.d/httpd configtest 測試設定檔語法
# chkconfig httpd on 加入開機自動啟動
[安裝 MySQL]
# yum -y install mysql mysql-server
# service mysqld start (/etc/init.d/mysqld start) 啟動 mysql 服務
#chkconfig mysqld on 開機自動啟動
[設定 MySQL (root) 密碼]
# mysqladmin -u root password 'mysql新密碼' ;設定mysql的密碼
# mysql -u root -p ;輸入密碼驗證是否用新密碼可進入
mysql> show databases; // 顯示資料庫
mysql> drop database test; // 刪除 test 測試資料表
mysql> exit;
[查詢使用者訊息]
- mysql> SELECT user,host,password FROM mysql.user;
[刪除暱名使用者]
- mysql> DELETE FROM mysql.user WHERE user='';
- mysql> FLUSH PRIVILEGES;
[更改暱名使用者密碼]
- mysql> SET PASSWORD FOR ''@localhost = password('fs_^s%d1L3');
- mysql> FLUSH PRIVILEGES;
[新增使用者,給予資料庫所有權限]
- use mysql;
- INSERT INTO user(host, user, password) VALUES('%','帳號',password('密碼'));
- GRANT ALL ON *.* TO 'godspeed'@localhost IDENTIFIED BY 'godspeed' WITH GRANT OPTION;
- FLUSH PRIVILEGES;
[只給予帳號部份資料庫權限]
- GRANT SELECT, INSERT, UPDATE, DELETE, CREATE ON dbname.* TO '帳號'@localhost IDENTIFIED BY '密碼';
[安裝 PHP]
# yum -y install php php-devel
其他的依需求安裝 php-mysql php-ldap php-odbc php-mbstring php-gd libjpeg* php-pear php-xml php-xmlrpc php-bcmath php-mhash
# rpm -qa | grep php 查看已安裝的php套件
# rpm -qa 查看所有已安裝套件,
# rpm -qi php-mysql 查詢特定套件安裝資訊(以php-mysql為例),
# rpm -ql php-mysql 查詢套件所安裝的檔案(以php-mysql為例)
# service httpd restart (/etc/init.d/httpd restart) 重新啟動 httpd 服務
# vi /etc/php.ini ;編輯設定檔
測試 php
#vim /var/www/html/phpinfo.php ;寫一個測試php的網頁放入主站台內
<?php phpinfo (); ?>
留言列表