linux學習筆記

yum -y install httpd  在線安裝httpd
 
yum -y install php  在線安裝PHP
 
vi /etc/httpd/conf/httpd.conf
 
AddDefaultCharset GB2312  添加GB2312爲默認編碼
安全配置
ServerTokens Prod   在出現錯誤頁的時候不顯示服務器操作系統的名稱
ServerSignature Off  在錯誤頁中不顯示Apache的版本
<Directory "/var/www/icons"> 不在瀏覽器上顯示樹狀目錄結構
  Options Indexes MultiViews  將Indexes刪除
擴展配置
Options Includes ExecCGI FollowSymLinks  允許服務器執行CGI及SSI
AddHandler cgi-script .cgi .pl  允許擴展名爲.pl的CGI腳本運行
AllowOverride All  變爲此狀態,允許.htaccess
 
 
php open_basedir 目錄限制
方法一:在php.ini裏配置
open_basedir = .:/tmp/
方法二:在Apache的VirtualHost裏設置
php_admin_value open_basedir .:/tmp/
方法三:在Apache的Directory裏設置
php_admin_value open_basedir .:/tmp/
 
 
Linux下Apache設置umask
在 /usr/local/apache/bin/envvars 或 /etc/sysconfig/httpd
添加 umask 000
 
 
 
 
semanage port -a -t http_port_t -p tcp [port] selinux允許apache監聽其他端口
 
chkconfig httpd on  設置HTTP服務自啓動
 
chkconfig --list httpd   檢測是否開機啓動
 
/etc/rc.d/init.d/httpd start 或 service httpd start 啓動HTTP服務
 
 
 
 
 
yum -y install vsftpd  在線安裝vsftpd
 
/etc/vsftpd/vsftpd.conf 配置文件
 
useradd -d [目錄] -g ftp -s /sbin/nologin -M [用戶名]   添加不允許ssh登陸的ftp用戶
 
setsebool -P ftp_home_dir 1 配置selinux允許進入ftp_home
 
pasv_enable=YES
pasv_min_port=[MinPort]
pasv_max_port=[MaxPort]
 
 
 
 
 
/etc/ssh/sshd_config SSH配置
Protocol 2
ServerKeyBits 1024
PermitRootLogin no
PermitEmptyPasswords no
 
 
 
 
 
 
cat /etc/issue 查看系統版本
 
uname -a 查看內核版本
 
/etc/inittab 啓動選項(文本或窗口)
 
 
 
service network restart       重啓全部網卡
 
setup 修改ip 重啓網卡生效 
 
/etc/sysconfig/network-scripts/ifcfg-eth0  eth0配置文件
 
ifdown [設備名如eth0] 關閉eth0
 
ifup [設備名如eth0] 啓動eth0
 
cp ifcfg-eth0 ifcfg-eth0:x x爲0-255 一個網卡設置多個IP
修改ifcfg-eth0:x的DEVICE=eth0爲DEVICE=eth0:x與IPADDR即可
 
ifconfig -a 查看ip
 
route -n 查看路由
 
route add -net [目標IP網絡號] netmask [子網掩碼] gw [網關ip地址] 添加路由
route del -net [目標IP網絡號] netmask [子網掩碼] gw [網關ip地址] 刪除路由
 
/etc/resolv.conf 修改全局DNS
nameserver 8.8.8.8  #google域名服務器
 
如果要爲網卡單獨設置DNS
向網卡配置文件如/etc/sysconfig/network-scripts/ifcfg-eth0添加
PEERDNS=yes
DNS1=8.8.8.8
DNS2=8.8.4.4
 
 
/var/log/ 系統日誌保存文件夾
 
/etc/syslog.conf 系統日誌配置文件,配置完重啓 service syslog restart
 
/etc/logrotate.conf 日誌文件管理工具配置文件
 
 
 
iptables -L -n 查看防火牆規則
 
 
 
只對終端有效,Xwindows無效
who 查詢在線用戶
w 查詢在線用戶當前動作
last 查詢曾登陸過的用戶
 
who -a  查詢終端pid
kill -9 [pid]  踢用戶
 
 
 
id 查看該用戶的UID、GID及所歸屬的用戶組
id [name] 查看name用戶的UID、GID及所歸屬的用戶組
 
finger 查看當前登陸用戶
finger [name] 查看name用戶LoginTime、Name、Directory、Shell
 
groups     顯示該用戶所屬的用戶組
groups [GroupName] 查詢用戶組有哪些用戶
pwconv 讓/etc/passwd和/etc/shadow同步
grpconv 讓/etc/group和/etc/gshadow同步
 
su             用戶切換
newgrp 切換用戶組
 
touch -c -m -t 201101011200 test.txt 修改時間
 
ls -la 查看隱藏文件
ls -ld 查看當前目錄屬性
 
tar -zcvf [文件或文件夾] 壓縮
tar -zxvf [文件] 解壓
 
rm -rf [文件或文件夾] 刪除文件
 
cp [源文件] [目的文件] 複製文件
 
mv [源文件] [目的文件] 移動文件或者文件夾
 
chmod -R 777 [文件或文件夾] 設置權限包括子目錄
 
diff [file1] [file2] 找出兩個文件不同之處
 
file [file1] 顯示文件類型
 
find / -iname [文件名] 全盤查找文件
 
find / -iname "*" | xargs grep '內容'
 
find / -type d -perm 777 快速查找可寫目錄
 
ln -s [目標文件夾或文件的絕對地址] [文件] 創建鏈接
 
whereis [程序名] 查詢程序所在路徑
 
 
cat /proc/cpuinfo | grep model 查看CPU型號
 
 
 
df 查看磁盤空間總佔用
 
du 查看文件夾佔用空間
 
top 查看CPU情況
 
free 查看內存使用量
 
ps 查看終端前臺進程
ps -aux 查看終端後臺進程
 
kill -9 [PID] 終止進程
 
 
 
history 查看shell記錄
history -c 刪除shell記錄
 
 
cal 顯示日期
 
hwclock --show 查看硬件時間
hwclock --set --date="月/日/年 時:分:秒" 設置硬件時間
hwclock --hctosys 將系統時間與硬件時間同步
date 查看系統時間
 
 
netstat -ant 顯示TCP端口
netstat -i 查看網卡傳送接收數據包
 
 
 
mii-tool -v 查看網卡信息
 
 
write [username] 跟在線的用戶通訊
 
wall 廣播給所有在線用戶
 
 
 
fg 前臺運行
& 或 bg 後臺運行
jobs 後臺運行清單
 
 
 
 
fdisk -l 打印當前的磁盤分區表
fdisk /dev/sd[x] m n p    w
mkfs -t ext3  /dev/sd[x]1
mount /dev/sd[x]1  /mnt
 
 
 
 
 
tcpdump 抓取所有流量
tcpdump -i [eth0] 指定網卡設備
tcpdump {src、dst}host [hostname] 指定主機 來源、目標
tcpdump {src、dst}port [port] 指定端口 來源、目標
tcpdump -i [eth0] host [hostname] and port [port] 指定網卡、主機、端口
 
 
 
 
 
 
 
 
 
./configure 配置
make 編譯
make install 安裝
make clean 刪除安裝時產生的臨時文件
make uninstall 卸載(不一定提供該功能)
 
 
 
rpm -ivh [軟件包名] RPM安裝軟件   
--force   忽略軟件包及文件的衝突
--nodeps  不檢查依賴性關係
--nopgp   不校驗PGP簽名
rpm -e [軟件名] RPM卸載軟件
安裝前查詢  
rpm -qpi [絕對路徑文件名.rpm] 查詢rpm包的相關信息  
rpm -qpl [絕對路徑文件名.rpm] 查詢rpm包包含哪些文件 (顯安裝路徑) 
rpm -qpR [絕對路徑文件名.rpm] 查詢RPM軟件包依賴哪些文件
rpm -qpc [絕對路徑文件名.rpm] 查看配置信息
安裝後查詢  
rpm -qf [絕對路徑如/etc/rc.d/init.d/sshd] 查詢屬於哪個軟件包  (顯邏輯包名)
rpm -qa |more 查詢全部已安裝的軟件包
rpm -qa |grep [邏輯包名||不完整] 查詢該包是否安裝  (顯完整包名)
rpm -qi [邏輯包名] 查詢rpm包的相關信息
rpm -ql [邏輯包名] 查詢rpm包包含哪些文件 (顯安裝路徑) 
rpm -qR [邏輯包名] 查詢RPM軟件包依賴哪些文件
rpm -qd [邏輯包名] 查看document安裝在哪裏 
rpm -qc [邏輯包名] 查看配置信息
 
 
 
yum install [軟件名] yum安裝
yum remove [軟件名] yum卸載
yum check-update [軟件名] 查詢可更新的軟件 (去掉軟件名查詢所有)
yum update [軟件名] 更新指定軟件  (去掉軟件名更新所有)
yum list [軟件名] 列出資源庫中可安裝或更新及已經安裝的rpm包 (去掉軟件名列出所有)
yum search [軟件名] 搜索匹配特定字符的rpm包
yum info updates 列出資源庫中所有可更新的rpm包的信息
yum info installed 列出已經安裝的所有的rpm包的信息
yum info extras 列出已經安裝的但是不包含在資源庫中的rpm包的信息
yum info [軟件名] 列出指定軟件的rpm包信息
 
 
 
apt-get install [軟件名] apt-get在線安裝
 
 
 
./[名稱.bin] bin二進制安裝
 
 
 
dpkg -i [軟件包名] deb安裝軟件
dpkg -e [軟件名] deb卸載軟件
 
 
 
 
 
 
 
 
 
 
/etc/rc.d/rc.local 開機啓動配置文件 加入啓動命令即可 如 /usr/local/apache/bin/apachectl  start
 
/etc/rc.d/init.d   該文件夾下爲系統服務    把程序放進去然後編輯程序 如 #chkconfig:345 61 61 #description:Apache httpd
 
 
 
 
 
 
 
 
 
 
./configure --prefix=/usr/local/apache --enable-so  安裝apache 
make
make install
 
cp /usr/local/apache/bin/apachectl  /etc/rc.d/init.d/httpd 開機啓動
編輯/etc/rc.d/init.d/httpd
在#!/bin/bash下添加
#chkconfig:345 61 61   //345在哪些運行級別啓動,啓動序號(S61),關閉序號(K61)
#description:Apache httpd   //此行必寫,描述服務
 
chkconfig --add httpd 添加系統服務
 
編輯/usr/local/apache/conf/httpd.conf 配置apache
#ServerName www.example.com:80  改成  ServerName *:80  
刪除內<Directory />中Options選項的 Indexes 禁止目錄顯示
DirectoryIndex index.html index.php
 
 
 
 
 
 
 
每個虛擬主機獨立用戶
http://mpm-itk.sesse.net/
mkdir /tmp/apache-itk
cd /tmp/apache-itk
tar -zxvf httpd-xxxxxx.tar.gz
cd httpd-xxxxxx
patch -p1 < ../apache2.2-mpm-itk-xxxxxxx.patch
autoconf
./configure --with-mpm=itk
make ; make install
 
<VirtualHost *:80>
<IfModule mpm_itk_module>
AssignUserId [name] [group]
</IfModule>
</VirtualHost>
 
 
 
 
 
 
 
 
/var/lib/mysql 數據庫存儲目錄
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf 設置字符集
在[client]和[mysqld]下添加
default-character-set=utf8
 
show variables like 'collation_%'; 查看字符集設置
show variables like 'character_set_%';
 
use mysql 修改root密碼
update user set password=password("新密碼") where user="root"; 
delete from user where user="";
flush privileges;
 
show databases;
use 數據庫名;
show tables;
describe 表名;
 
 
 
 
 
 
 
 
 
 
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/include/mysql --enable-mbstring=all
cp php.ini-development /usr/local/php/lib/php.ini
修改date.timezone=PRC
修改short_open_tag=On
添加zend_extension=/usr/local/apache/modules/ZendGuardLoader.so   路徑自行修改,ZendGuardLoader到zend下載
編輯/usr/local/apache/conf/httpd.conf
添加AddType application/x-httpd-php .php
 
 
 
 
 
 
./configure --prefix=/usr/local/php --with-curl --with-gettext --with-bz2 --with-mysql -enable-shmop --enable-calendar --with-openssl --enable-ftp --with-openssl --with-zlib --enable-exif --with-gmp --enable-sysvmsg --enable-sockets --enable-wddx --with-xsl --with-mcrypt=/usr/local/libmcrypt --with-mysqli --with-mime_magic --with-pdo-mysql --with-gd --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-apxs2=/usr/sbin/apxs --without-sqlite --enable-mbstring --enable-so
 
 
 
 
 
 
 
 
 
 
 
 
make
-------------------
useradd  nobody
mkdir /usr/share/empty/
mkdir /var/ftp/
useradd -d /var/ftp ftp
-------------------
make install
cp vsftpd.conf /etc/
cp RedHat/vsftpd.pam /etc/pam.d/ftp
 
vi /etc/vsftpd.conf
chroot_local_user=YES 限制用戶跨目錄
 
userlist_enable=YES 只允許特定的用戶登陸ftp
userlist_deny=NO
userlist_file=/etc/vsftpd.userlist
新建/etc/vsftpd.userlist文件 把用戶名寫入
 
pasv_enable=YES 設置PASV模式
pasv_min_port=[MinPort]
pasv_max_port=[MaxPort]
 
listen_port=5555 修改端口
 
echo "/usr/local/sbin/vsftpd &" >> /etc/rc.local 開機啓動vsftpd
 
 
 
 
 
 
 
 
 
 
/etc/yum.repos.d/CentOS-Base.repo 修改yum鏡像站點 centos.ustc.edu.cn
註釋所有 mirrorlist=
允許所有 baseurl= 並且把 mirror.centos.org 修改成 centos.ustc.edu.cn
修改所有 gpgkey=http://centos.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5
 
 
 
 
 
 
 
 
 
 
 
 
***     端口1723
下載pptpd http://poptop.sourceforge.net/yum/stable/packages/
安裝pptpd rpm -ivh pptpd-*.rpm
 
主要相關配置文件
/etc/pptpd.conf
/etc/ppp/options.pptpd
/etc/ppp/chap-secrets
 
編輯 /etc/pptpd.conf
localip 88.88.88.88 配置連接IP地址
remoteip 192.168.99.1-255 配置分配IP網段
 
編輯 /etc/ppp/options.pptpd
ms-dns 配置DNS
 
編輯 /etc/ppp/chap-secrets  
guet pptpd sec * 配置用戶 賬戶guet密碼sec
 
編輯 /etc/sysctl.conf
net.ipv4.ip_forward = 1 打開永久轉發功能  
sysctl -p 執行立即生效
 
chkconfig pptpd on 加入開機啓動
 
service pptpd restart 重啓pptpd
 
 
 
 
 
 
 
 
 
 
 
 
VNC端口爲5900-
 
編輯 .vnc/xstartup
去掉#註釋
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc
在twm &上面添加
gnome-session gnome
 
vncserver 創建vnc桌面  
 
編輯/etc/sysconfig/vncservers 開機自動創建vnc桌面
VNCSERVERS="1:root 2:root"
VNCSERVERARGS[1]="-geometry 1024x768"
VNCSERVERARGS[2]="-geometry 1024x768"
 
 
 
 
 
 
 
 
yum install dhcp 安裝DHCP服務器
yun install dhcp-devel
 
cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf
編輯/etc/dhcpd.conf
 
單網段
subnet                                客戶機獲得的IP地址的網段
netmask                              客戶機獲得的IP地址的子網掩碼
options domain-name                  爲客戶機指定DNS服務器名稱
options domain-name-servers          爲客戶機指定DNS服務器IP地址
options  routers                     爲客戶機指定默認網關的IP地址
options  subnet-mask                 默認網關IP地址的子網掩碼
range                             用於說明客戶機所得到的IP地址的範圍
default-lease-time                   指定默認地址租約(秒爲單位)
max-lease-time                       指定最大地址租約(秒爲單位)
host                                 爲特定的DHCP客戶機提供IP網絡參數
hardware                             特定客戶機的MAC地址
fixed-address                        爲特定客戶機指定IP地址
 
多網段
DHCP服務器
把多個subnet{}放到shared-network dhcp{}裏
 
DHCP中繼服務器
編輯/etc/sysconfig/dhcrelay 
INTERFACES="eth1 eth2" 向接口提供dhcp
DHCPSERVERS="192.168.1.1" dhcp服務器IP
service dhcrelay restart
 
 
 
 
 
 
DNS 端口53
yum install bind*
yum install caching-nameserver
 
cd /var/named/chroot/etc/
cp -p named.caching-nameserver.conf named.conf
vi named.conf 
listen-on port 53 { any; };
allow-query     { any; };
match-clients         { any; };
match-destinations { any; };
vi named.rfc1912.zones
zone "test.com" IN {
    type master;
    file "test.com.zone";
    allow-update { none; };
};
zone "1.168.192.in-addr.arpa" IN {
    type master;
    file "192.168.1.zone";
    allow-update { none; };
};
cd /var/named/chroot/var/named/
cp -p localdomain.zone test.com.zone
cp -p named.local 192.168.1.zone
vi test.com.zone
  添加 www    IN A        192.168.1.1
ftp    IN A        192.168.1.2
vi 192.168.1.zone
  修改 IN      NS      test.com.
  添加 1       IN      PTR     www.test.com.
2       IN      PTR     ftp.test.com.
 
 
 
 
 
 
 
 
 
 
 
 
保存爲squid.conf 替換/etc/squid/squid.conf
 
#squid主機名稱
visible_hostname squid.guetsec.com
 
#ip、主機名
cache_peer 192.168.9.2 parent 80 0 no-query originserver name=www
cache_peer 88.88.88.88 parent 80 0 no-query originserver name=web
 
#主機名對應的域名
cache_peer_domain www www.guetsec.com
cache_peer_domain web web.guetsec.com
 
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access allow all
icp_access allow all
 
#訪問權限的控制 主機名
cache_peer_access www allow all
cache_peer_access web allow all
 
#監聽端口 支持虛擬機
http_port 80 vhost
 
hierarchy_stoplist cgi-bin ?
access_log /var/log/squid/access.log squid
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern .               0       20%     4320
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
 
 
 
 
 
 
 
 
 
iptables開放內網FTP
 
modprobe ip_nat_ftp 臨時加載  iptables重啓丟失
 
編輯/etc/sysconfig/iptables-config   添加 ip_nat_ftp 永久加載
IPTABLES_MODULES="ip_conntrack_netbios_ns ip_conntrack_ftp ip_nat_ftp"
 
iptables -t nat -A PREROUTING -i eth0 -d 88.88.88.88 -p tcp --dport 21 -j DNAT --to 192.168.9.2
 
 
 
iptables開放內網SSH
iptables -t nat -A PREROUTING -i eth0 -d 88.88.88.88 -p tcp --dport 22 -j DNAT --to 192.168.9.2
 
 
 
允許內網上網 域名解析需要iptables允許tcp53 udp53
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.9.0/24 -j MASQUERADE     
 
 
 
/etc/sysconfig/iptables 防火牆規則配置文件 重啓起效
 
 
 
 
 
 
 
 
 
 
 
 
 
getenforce 查看SELinux模式
 
sestatus 查看SELinux政策
 
setenforce [0|1] 將SELinux在permissive與Enforcing之間切換 無需重啓生效
 
編輯/etc/selinux/config
SELINUX=[enforcing|disabled|permissive] 設置SELinux模式
 
id -Z 檢查帳號的安全上下文
ps -Z 檢查進程的安全上下文
ls -Z 檢查文件與目錄的安全上下文
 
chcon -R -u [user] -r [role] -t [type] [文件或目錄] 修改文件/目錄安全上下文
       
getsebool -a 查看selinux全部策略值
getsebool 名稱 查看selinux指定策略值
 
setsebool -P 名稱=[0|1] 設置selinux指定策略值
 
 
 
 
 
 
 
 
 
 
Crontab 定時任務管理
crontab -e
01 03 * * * /root/mysql.sh
0~59 表示分
1~23 表示小時
1~31 表示日
1~12 表示月份
0~6  表示星期(其中0表示星期日)
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章