Ubuntu10.04 FTPサーバーと共有ファイル
Ubuntu10.04 FTPサーバー
参考サイト様
vsftpdのインストール - PukiWiki
インストール
# aptitude -y install vsftpd
vsftp再起動
# service vsftpd restart
"/etc/vsftpd.user_list"で指定したユーザだけ上位のディレクトリ(/var/www)にアクセスできるようにしたいので一部コンフィグを下記に変更
userlist_enable=YES
userlist_deny=NO
chroot_list_enable=YES
chroot_list_enable=YES
これで"/var/www"にアクセスできるようになったw
あと、iptablet(/etc/network/if-pre-up.d/iptables)のFTPポート(20.21番)の許可も必要かな。
windows(ffftp)設定
参考サイト様
Ubuntu 10.04 LTS - FTPサーバー - FTPクライアント - FFFTP
共有ファイル設定
Ubuntu10.04のGUIだとwindowsみたいに”共有したいファイルを右クリック”→”プロパティ選択”→”共有”でwindowsみたいに共有ができる「おっ便利だなw」思ってやってみたのだが・・・
こういうエラーがでてしまい共有ができない。
共有したいファイルは"/var/www"。(上の写真はフォルダが違いますが。。)
ググってると"www"はフォルダの権限がrootになってるので・・・などあって権限など変えてみたのだがだめ。
というか普通に作ったファイルさえ同じエラーがでるのでこれは"www"が特殊だからってことでもなさそう。
んで↓
参考サイト様
ubuntuの共有でエラー?
上記の方法で"www"を共有ファイルにしてwindowsから自由にファイル移動出きるようになった。
提供(参考サイト様)
Ubuntu ファイアーウォール (iptables設定)
参考サイト様
Linuxルーター構築(rp-pppoe+iptables) - CentOSで自宅サーバー構築
上記のiptablesの設定を参考と言うよりお借りいたしました。あとは環境に合わせて修正したり削ったり。
#!/bin/bash
# インターフェイスを定義する
WAN='ppp0' # 外部インタフェース
LAN1='eth1' # 内部1インタフェース
# ローカル・ネットワーク・アドレスの設定
LOCALNET1='192.168.1.0/24' # ローカル・ネットワーク・アドレス
# すべてのルールをクリア
iptables -F
# デフォルトルール設定(最初に全て拒否ってだんだんと穴を開けていく)
iptables -P INPUT DROP # 受信はすべて破棄
iptables -P FORWARD DROP # 通過はすべて破棄
iptables -P OUTPUT ACCEPT # 送信はすべて許可
# ループバックアドレスからのアクセスをすべて許可
iptables -A INPUT -i lo -j ACCEPT
# ローカルネットワーク内からのアクセスをすべて許可
iptables -A INPUT -i $LAN1 -j ACCEPT
iptables -A FORWARD -i $LAN1 -j ACCEPT
# SYN Cookiesを有効にする
sysctl -w net.ipv4.tcp_syncookies=1 > /dev/null
sed -i '/net.ipv4.tcp_syncookies/d' /etc/sysctl.conf
echo "net.ipv4.tcp_syncookies=1" >> /etc/sysctl.conf
# ブロードキャストアドレス宛pingには応答しない
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1 > /dev/null
sed -i '/net.ipv4.icmp_echo_ignore_broadcasts/d' /etc/sysctl.conf
echo "net.ipv4.icmp_echo_ignore_broadcasts=1" >> /etc/sysctl.conf
# ICMP Redirectパケットは拒否
sed -i '/net.ipv4.conf.*.accept_redirects/d' /etc/sysctl.conf
for dev in `ls /proc/sys/net/ipv4/conf/`
do
sysctl -w net.ipv4.conf.$dev.accept_redirects=0 > /dev/null
echo "net.ipv4.conf.$dev.accept_redirects=0" >> /etc/sysctl.conf
done
# Source Routedパケットは拒否
sed -i '/net.ipv4.conf.*.accept_source_route/d' /etc/sysctl.conf
for dev in `ls /proc/sys/net/ipv4/conf/`
do
sysctl -w net.ipv4.conf.$dev.accept_source_route=0 > /dev/null
echo "net.ipv4.conf.$dev.accept_source_route=0" >> /etc/sysctl.conf
done
# フラグメント化されたパケットはログを記録して破棄
iptables -N LOG_FRAGMENT
iptables -A LOG_FRAGMENT -j LOG --log-tcp-options --log-ip-options --log-prefix '[IPTABLES FRAGMENT] : '
iptables -A LOG_FRAGMENT -j DROP
iptables -A INPUT -f -j LOG_FRAGMENT
# 外部とのNetBIOS関連のアクセスはログを記録せずに破棄
iptables -A INPUT -s ! $LOCALNET1 -p tcp -m multiport --dports 135,137,138,139,445 -j DROP
iptables -A INPUT -s ! $LOCALNET1 -p udp -m multiport --dports 135,137,138,139,445 -j DROP
iptables -A OUTPUT -d ! $LOCALNET1 -p tcp -m multiport --sports 135,137,138,139,445 -j DROP
iptables -A OUTPUT -d ! $LOCALNET1 -p udp -m multiport --sports 135,137,138,139,445 -j DROP
#Ping of Death攻撃対策
iptables -N LOG_PINGDEATH
iptables -A LOG_PINGDEATH -m limit --limit 1/s --limit-burst 4 -j ACCEPT
iptables -A LOG_PINGDEATH -j LOG --log-tcp-options --log-ip-options --log-prefix '[IPTABLES PINGDEATH] : '
iptables -A LOG_PINGDEATH -j DROP
iptables -A INPUT -p icmp --icmp-type echo-request -j LOG_PINGDEATH
# ローカルネットワーク内からのインターネット接続を許可
iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE
# 内部から行ったアクセスに対する外部からの応答アクセスを許可
iptables -A INPUT -i $WAN -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $WAN -m state --state ESTABLISHED,RELATED -j ACCEPT
# 内部から行ったアクセスに対する外部からの返答アクセスを許可
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# ブロードキャストアドレス、マルチキャストアドレス宛パケットはログを記録しない
iptables -A INPUT -d 255.255.255.255 -j DROP
iptables -A INPUT -d 224.0.0.1 -j DROP
# 113番ポート(IDENT)へのアクセスには拒否応答
iptables -A INPUT -p tcp --dport 113 -j REJECT --reject-with tcp-reset
#######################################################
# WAN側ポート開放設定 #
#######################################################
# HTTP(80番ポート)をすべて許可
iptables -A INPUT -i $WAN -p tcp --dport 80 -j ACCEPT
# HTTPS(443番ポート)をすべて許可
# ※HTTPSを使う場合
iptables -A INPUT -i $WAN -p tcp --dport 443 -j ACCEPT
# ssh(22番ポート)を許可
iptables -A INPUT -i $WAN -p tcp --dport 22 -j ACCEPT
#FTP(21番ポートの許可)
iptables -A INPUT -i $WAN -p tcp --dport 21 -j ACCEPT
ファイアウォール - ITNAVI.net
開放ポート番号記載など参考にさせていただきました。